From 585b441136ff4fc69159edeca702bcccdcf83af4 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 15 Jan 2005 04:16:30 +0100 Subject: [ide] make try_to_flush_leftover_data() static Hi, now that you cleaned up the ide-io.c code to be all in the right file, try_to_flush_leftover_data can become static since all users are in this file now. bart: also remove declaration from Signed-off-by: Arjan van de Ven Signed-off-by: Bartlomiej Zolnierkiewicz --- include/linux/ide.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'include/linux') diff --git a/include/linux/ide.h b/include/linux/ide.h index c863ab98f1e2..7adabd327b04 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -1250,8 +1250,6 @@ extern int ide_do_drive_cmd(ide_drive_t *, struct request *, ide_action_t); */ extern void ide_end_drive_cmd(ide_drive_t *, u8, u8); -extern void try_to_flush_leftover_data(ide_drive_t *); - /* * Issue ATA command and wait for completion. * Use for implementing commands in kernel -- cgit v1.2.3 From 0c7dd5bd81b55513eadf20c3d3764cb6954f840e Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 15 Jan 2005 04:49:16 +0100 Subject: [ide] piix: add Intel 82801DBL IDE Controller support From: Zhongjun, Wang Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ide/pci/piix.c | 3 +++ drivers/ide/pci/piix.h | 1 + drivers/pci/pci.ids | 1 + include/linux/pci_ids.h | 1 + 4 files changed, 6 insertions(+) (limited to 'include/linux') diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c index 7be71917ed42..bde44877bb97 100644 --- a/drivers/ide/pci/piix.c +++ b/drivers/ide/pci/piix.c @@ -129,6 +129,7 @@ static u8 piix_ratemask (ide_drive_t *drive) case PCI_DEVICE_ID_INTEL_82801CA_10: case PCI_DEVICE_ID_INTEL_82801CA_11: case PCI_DEVICE_ID_INTEL_82801E_11: + case PCI_DEVICE_ID_INTEL_82801DB_1: case PCI_DEVICE_ID_INTEL_82801DB_10: case PCI_DEVICE_ID_INTEL_82801DB_11: case PCI_DEVICE_ID_INTEL_82801EB_11: @@ -440,6 +441,7 @@ static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char case PCI_DEVICE_ID_INTEL_82801BA_9: case PCI_DEVICE_ID_INTEL_82801CA_10: case PCI_DEVICE_ID_INTEL_82801CA_11: + case PCI_DEVICE_ID_INTEL_82801DB_1: case PCI_DEVICE_ID_INTEL_82801DB_10: case PCI_DEVICE_ID_INTEL_82801DB_11: case PCI_DEVICE_ID_INTEL_82801EB_11: @@ -614,6 +616,7 @@ static struct pci_device_id piix_pci_tbl[] = { { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19}, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_19, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 20}, { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 21}, + { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 22}, { 0, }, }; MODULE_DEVICE_TABLE(pci, piix_pci_tbl); diff --git a/drivers/ide/pci/piix.h b/drivers/ide/pci/piix.h index d3f24732f1d0..fc207f5486b6 100644 --- a/drivers/ide/pci/piix.h +++ b/drivers/ide/pci/piix.h @@ -59,6 +59,7 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = { /* 19 */ DECLARE_PIIX_DEV("ICH5"), /* 20 */ DECLARE_PIIX_DEV("ICH6"), /* 21 */ DECLARE_PIIX_DEV("ICH7"), + /* 22 */ DECLARE_PIIX_DEV("ICH4"), }; #endif /* PIIX_H */ diff --git a/drivers/pci/pci.ids b/drivers/pci/pci.ids index 7427c23113df..7c1cbd0707d8 100644 --- a/drivers/pci/pci.ids +++ b/drivers/pci/pci.ids @@ -8088,6 +8088,7 @@ 24c0 82801DB/DBL (ICH4/ICH4-L) LPC Bridge 1014 0267 NetVista A30p 1462 5800 845PE Max (MS-6580) + 24c1 82801DBL (ICH4-L) IDE Controller 24c2 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 1014 0267 NetVista A30p 1071 8160 MIM2000 diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 791a795862c2..7d01f86d45f7 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -2178,6 +2178,7 @@ #define PCI_DEVICE_ID_INTEL_82801CA_11 0x248b #define PCI_DEVICE_ID_INTEL_82801CA_12 0x248c #define PCI_DEVICE_ID_INTEL_82801DB_0 0x24c0 +#define PCI_DEVICE_ID_INTEL_82801DB_1 0x24c1 #define PCI_DEVICE_ID_INTEL_82801DB_2 0x24c2 #define PCI_DEVICE_ID_INTEL_82801DB_3 0x24c3 #define PCI_DEVICE_ID_INTEL_82801DB_4 0x24c4 -- cgit v1.2.3 From d5033980631526581489e61267e66d1476675e43 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 15 Jan 2005 05:09:12 +0100 Subject: [ide] atiixp: add IXP400 support From: Enrico Scholz add IXP400 ID From: Frederick Li update PCI IDs Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ide/pci/atiixp.c | 5 +++-- include/linux/pci_ids.h | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'include/linux') diff --git a/drivers/ide/pci/atiixp.c b/drivers/ide/pci/atiixp.c index 10e438c964ea..df9ee9a78435 100644 --- a/drivers/ide/pci/atiixp.c +++ b/drivers/ide/pci/atiixp.c @@ -345,8 +345,9 @@ static int __devinit atiixp_init_one(struct pci_dev *dev, const struct pci_devic } static struct pci_device_id atiixp_pci_tbl[] = { - { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, - { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP2_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, + { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP200_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, + { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP300_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, + { PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_IXP400_IDE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, { 0, }, }; MODULE_DEVICE_TABLE(pci, atiixp_pci_tbl); diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 7d01f86d45f7..9f6d4812646a 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h @@ -353,8 +353,9 @@ #define PCI_DEVICE_ID_ATI_RS300_166 0x5832 #define PCI_DEVICE_ID_ATI_RS300_200 0x5833 /* ATI IXP Chipset */ -#define PCI_DEVICE_ID_ATI_IXP_IDE 0x4349 -#define PCI_DEVICE_ID_ATI_IXP2_IDE 0x4369 /* True name not yet sure */ +#define PCI_DEVICE_ID_ATI_IXP200_IDE 0x4349 +#define PCI_DEVICE_ID_ATI_IXP300_IDE 0x4369 +#define PCI_DEVICE_ID_ATI_IXP400_IDE 0x4376 #define PCI_VENDOR_ID_VLSI 0x1004 #define PCI_DEVICE_ID_VLSI_82C592 0x0005 -- cgit v1.2.3 From c08ec83ebeabf78aa8fcc8739a350f97367323e2 Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 15 Jan 2005 05:11:30 +0100 Subject: [ide] kill ide_drive_t->suspend_reset This cruft pre-dates benh's PowerManagement code. Moreover ->suspend_reset is always equal to zero. Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ide/ide-io.c | 7 ------- drivers/ide/ide.c | 14 +------------- include/linux/ide.h | 1 - 3 files changed, 1 insertion(+), 21 deletions(-) (limited to 'include/linux') diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 0a4ee5766f23..b839d34e7dee 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c @@ -852,13 +852,6 @@ static ide_startstop_t start_request (ide_drive_t *drive, struct request *rq) goto kill_rq; } - /* - * bail early if we've sent a device to sleep, however how to wake - * this needs to be a masked flag. FIXME for proper operations. - */ - if (drive->suspend_reset) - goto kill_rq; - block = rq->sector; if (blk_fs_request(rq) && (drive->media == ide_disk || drive->media == ide_floppy)) { diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 7f867df01a56..83dc9af31b27 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c @@ -1554,18 +1554,7 @@ int generic_ide_ioctl(struct file *file, struct block_device *bdev, HWGROUP(drive)->busy = 1; spin_unlock_irqrestore(&ide_lock, flags); (void) ide_do_reset(drive); - if (drive->suspend_reset) { -/* - * APM WAKE UP todo !! - * int nogoodpower = 1; - * while(nogoodpower) { - * check_power1() or check_power2() - * nogoodpower = 0; - * } - * HWIF(drive)->multiproc(drive); - */ - return ioctl_by_bdev(bdev, BLKRRPART, 0); - } + return 0; } @@ -2133,7 +2122,6 @@ int ide_register_subdriver(ide_drive_t *drive, ide_driver_t *driver) drive->dsc_overlap = (drive->next != drive && driver->supports_dsc_overlap); drive->nice1 = 1; } - drive->suspend_reset = 0; #ifdef CONFIG_PROC_FS if (drive->driver != &idedefault_driver) { ide_add_proc_entries(drive->proc, generic_subdriver_entries, drive); diff --git a/include/linux/ide.h b/include/linux/ide.h index 7adabd327b04..9e25df705ae2 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -723,7 +723,6 @@ typedef struct ide_drive_s { unsigned scsi : 1; /* 0=default, 1=ide-scsi emulation */ u8 quirk_list; /* considered quirky, set for a specific host */ - u8 suspend_reset; /* drive suspend mode flag, soft-reset recovers */ u8 init_speed; /* transfer rate set at boot */ u8 pio_speed; /* unused by core, used by some drivers for fallback from DMA */ u8 current_speed; /* current transfer rate set */ -- cgit v1.2.3 From 5f72bd084034879a7121b3a9f70ebfd5abb6af5e Mon Sep 17 00:00:00 2001 From: Bartlomiej Zolnierkiewicz Date: Sat, 15 Jan 2005 05:18:16 +0100 Subject: [ide] icside: use ide_dma_intr() Make ide_dma_intr() always available if CONFIG_BLK_DEV_IDEDMA=y and use it instead of icside_dmaintr(). Acked by Russell. Signed-off-by: Bartlomiej Zolnierkiewicz --- drivers/ide/arm/icside.c | 31 +------------------------------ drivers/ide/ide-dma.c | 2 +- include/linux/ide.h | 2 +- 3 files changed, 3 insertions(+), 32 deletions(-) (limited to 'include/linux') diff --git a/drivers/ide/arm/icside.c b/drivers/ide/arm/icside.c index 82817bc7ff61..e63ff1db270d 100644 --- a/drivers/ide/arm/icside.c +++ b/drivers/ide/arm/icside.c @@ -397,35 +397,6 @@ static void icside_dma_start(ide_drive_t *drive) enable_dma(hwif->hw.dma); } -/* - * dma_intr() is the handler for disk read/write DMA interrupts - */ -static ide_startstop_t icside_dmaintr(ide_drive_t *drive) -{ - unsigned int stat; - int dma_stat; - - dma_stat = icside_dma_end(drive); - stat = HWIF(drive)->INB(IDE_STATUS_REG); - if (OK_STAT(stat, DRIVE_READY, drive->bad_wstat | DRQ_STAT)) { - if (!dma_stat) { - struct request *rq = HWGROUP(drive)->rq; - int i; - - for (i = rq->nr_sectors; i > 0; ) { - i -= rq->current_nr_sectors; - DRIVER(drive)->end_request(drive, 1, rq->nr_sectors); - } - - return ide_stopped; - } - printk(KERN_ERR "%s: bad DMA status (dma_stat=%x)\n", - drive->name, dma_stat); - } - - return ide_error(drive, __FUNCTION__, stat); -} - static int icside_dma_setup(ide_drive_t *drive) { ide_hwif_t *hwif = HWIF(drive); @@ -474,7 +445,7 @@ static int icside_dma_setup(ide_drive_t *drive) static void icside_dma_exec_cmd(ide_drive_t *drive, u8 cmd) { /* issue cmd to drive */ - ide_execute_command(drive, cmd, icside_dmaintr, 2*WAIT_CMD, NULL); + ide_execute_command(drive, cmd, ide_dma_intr, 2 * WAIT_CMD, NULL); } static int icside_dma_test_irq(ide_drive_t *drive) diff --git a/drivers/ide/ide-dma.c b/drivers/ide/ide-dma.c index 560e483eb63d..d40a08f41d43 100644 --- a/drivers/ide/ide-dma.c +++ b/drivers/ide/ide-dma.c @@ -158,7 +158,6 @@ static int in_drive_list(struct hd_driveid *id, const struct drive_list_entry *d return 0; } -#ifdef CONFIG_BLK_DEV_IDEDMA_PCI /** * ide_dma_intr - IDE DMA interrupt handler * @drive: the drive the interrupt is for @@ -188,6 +187,7 @@ ide_startstop_t ide_dma_intr (ide_drive_t *drive) EXPORT_SYMBOL_GPL(ide_dma_intr); +#ifdef CONFIG_BLK_DEV_IDEDMA_PCI /** * ide_build_sglist - map IDE scatter gather for DMA I/O * @drive: the drive to build the DMA table for diff --git a/include/linux/ide.h b/include/linux/ide.h index 9e25df705ae2..567443038d9b 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -1441,12 +1441,12 @@ int __ide_dma_good_drive(ide_drive_t *); int ide_use_dma(ide_drive_t *); int __ide_dma_off(ide_drive_t *); void ide_dma_verbose(ide_drive_t *); +ide_startstop_t ide_dma_intr(ide_drive_t *); #ifdef CONFIG_BLK_DEV_IDEDMA_PCI extern int ide_build_sglist(ide_drive_t *, struct request *); extern int ide_build_dmatable(ide_drive_t *, struct request *); extern void ide_destroy_dmatable(ide_drive_t *); -extern ide_startstop_t ide_dma_intr(ide_drive_t *); extern int ide_release_dma(ide_hwif_t *); extern void ide_setup_dma(ide_hwif_t *, unsigned long, unsigned int); -- cgit v1.2.3