diff options
Diffstat (limited to 'drivers/ide')
| -rw-r--r-- | drivers/ide/Kconfig | 25 | ||||
| -rw-r--r-- | drivers/ide/ide-disk.c | 14 | ||||
| -rw-r--r-- | drivers/ide/ide-io.c | 5 | ||||
| -rw-r--r-- | drivers/ide/ide-iops.c | 1 | ||||
| -rw-r--r-- | drivers/ide/ide-probe.c | 51 | ||||
| -rw-r--r-- | drivers/ide/ide.c | 1 | ||||
| -rw-r--r-- | drivers/ide/pci/aec62xx.c | 15 | ||||
| -rw-r--r-- | drivers/ide/pci/hpt366.c | 4 | ||||
| -rw-r--r-- | drivers/ide/pci/it821x.c | 2 | ||||
| -rw-r--r-- | drivers/ide/pci/pdc202xx_new.c | 6 | ||||
| -rw-r--r-- | drivers/ide/pci/pdc202xx_old.c | 15 | ||||
| -rw-r--r-- | drivers/ide/pci/piix.c | 4 | ||||
| -rw-r--r-- | drivers/ide/pci/sgiioc4.c | 9 |
13 files changed, 54 insertions, 98 deletions
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig index 1c81174595b3..d633081fa4c5 100644 --- a/drivers/ide/Kconfig +++ b/drivers/ide/Kconfig | |||
| @@ -52,9 +52,9 @@ config IDE | |||
| 52 | 52 | ||
| 53 | if IDE | 53 | if IDE |
| 54 | 54 | ||
| 55 | config IDE_MAX_HWIFS | 55 | config IDE_MAX_HWIFS |
| 56 | int "Max IDE interfaces" | 56 | int "Max IDE interfaces" |
| 57 | depends on ALPHA || SUPERH | 57 | depends on ALPHA || SUPERH || IA64 |
| 58 | default 4 | 58 | default 4 |
| 59 | help | 59 | help |
| 60 | This is the maximum number of IDE hardware interfaces that will | 60 | This is the maximum number of IDE hardware interfaces that will |
| @@ -162,8 +162,8 @@ config BLK_DEV_IDECS | |||
| 162 | tristate "PCMCIA IDE support" | 162 | tristate "PCMCIA IDE support" |
| 163 | depends on PCMCIA | 163 | depends on PCMCIA |
| 164 | help | 164 | help |
| 165 | Support for outboard IDE disks, tape drives, and CD-ROM drives | 165 | Support for Compact Flash cards, outboard IDE disks, tape drives, |
| 166 | connected through a PCMCIA card. | 166 | and CD-ROM drives connected through a PCMCIA card. |
| 167 | 167 | ||
| 168 | config BLK_DEV_IDECD | 168 | config BLK_DEV_IDECD |
| 169 | tristate "Include IDE/ATAPI CDROM support" | 169 | tristate "Include IDE/ATAPI CDROM support" |
| @@ -267,7 +267,7 @@ config IDE_TASK_IOCTL | |||
| 267 | help | 267 | help |
| 268 | This is a direct raw access to the media. It is a complex but | 268 | This is a direct raw access to the media. It is a complex but |
| 269 | elegant solution to test and validate the domain of the hardware and | 269 | elegant solution to test and validate the domain of the hardware and |
| 270 | perform below the driver data recover if needed. This is the most | 270 | perform below the driver data recovery if needed. This is the most |
| 271 | basic form of media-forensics. | 271 | basic form of media-forensics. |
| 272 | 272 | ||
| 273 | If you are unsure, say N here. | 273 | If you are unsure, say N here. |
| @@ -525,7 +525,7 @@ config BLK_DEV_CS5520 | |||
| 525 | tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)" | 525 | tristate "Cyrix CS5510/20 MediaGX chipset support (VERY EXPERIMENTAL)" |
| 526 | depends on EXPERIMENTAL | 526 | depends on EXPERIMENTAL |
| 527 | help | 527 | help |
| 528 | Include support for PIO tuning an virtual DMA on the Cyrix MediaGX | 528 | Include support for PIO tuning and virtual DMA on the Cyrix MediaGX |
| 529 | 5510/5520 chipset. This will automatically be detected and | 529 | 5510/5520 chipset. This will automatically be detected and |
| 530 | configured if found. | 530 | configured if found. |
| 531 | 531 | ||
| @@ -662,7 +662,7 @@ config PDC202XX_BURST | |||
| 662 | 662 | ||
| 663 | It was originally designed for the PDC20246/Ultra33, whose BIOS will | 663 | It was originally designed for the PDC20246/Ultra33, whose BIOS will |
| 664 | only setup UDMA on the first two PDC20246 cards. It has also been | 664 | only setup UDMA on the first two PDC20246 cards. It has also been |
| 665 | used succesfully on a PDC20265/Ultra100, allowing use of UDMA modes | 665 | used successfully on a PDC20265/Ultra100, allowing use of UDMA modes |
| 666 | when the PDC20265 BIOS has been disabled (for faster boot up). | 666 | when the PDC20265 BIOS has been disabled (for faster boot up). |
| 667 | 667 | ||
| 668 | Please read the comments at the top of | 668 | Please read the comments at the top of |
| @@ -673,13 +673,6 @@ config PDC202XX_BURST | |||
| 673 | config BLK_DEV_PDC202XX_NEW | 673 | config BLK_DEV_PDC202XX_NEW |
| 674 | tristate "PROMISE PDC202{68|69|70|71|75|76|77} support" | 674 | tristate "PROMISE PDC202{68|69|70|71|75|76|77} support" |
| 675 | 675 | ||
| 676 | # FIXME - probably wants to be one for old and for new | ||
| 677 | config PDC202XX_FORCE | ||
| 678 | bool "Enable controller even if disabled by BIOS" | ||
| 679 | depends on BLK_DEV_PDC202XX_NEW | ||
| 680 | help | ||
| 681 | Enable the PDC202xx controller even if it has been disabled in the BIOS setup. | ||
| 682 | |||
| 683 | config BLK_DEV_SVWKS | 676 | config BLK_DEV_SVWKS |
| 684 | tristate "ServerWorks OSB4/CSB5/CSB6 chipsets support" | 677 | tristate "ServerWorks OSB4/CSB5/CSB6 chipsets support" |
| 685 | help | 678 | help |
| @@ -722,7 +715,7 @@ config BLK_DEV_SIS5513 | |||
| 722 | config BLK_DEV_SLC90E66 | 715 | config BLK_DEV_SLC90E66 |
| 723 | tristate "SLC90E66 chipset support" | 716 | tristate "SLC90E66 chipset support" |
| 724 | help | 717 | help |
| 725 | This driver ensures (U)DMA support for Victroy66 SouthBridges for | 718 | This driver ensures (U)DMA support for Victory66 SouthBridges for |
| 726 | SMsC with Intel NorthBridges. This is an Ultra66 based chipset. | 719 | SMsC with Intel NorthBridges. This is an Ultra66 based chipset. |
| 727 | The nice thing about it is that you can mix Ultra/DMA/PIO devices | 720 | The nice thing about it is that you can mix Ultra/DMA/PIO devices |
| 728 | and it will handle timing cycles. Since this is an improved | 721 | and it will handle timing cycles. Since this is an improved |
| @@ -1060,7 +1053,7 @@ config IDEDMA_IVB | |||
| 1060 | in that mode with an 80c ribbon. | 1053 | in that mode with an 80c ribbon. |
| 1061 | 1054 | ||
| 1062 | If you are experiencing compatibility or performance problems, you | 1055 | If you are experiencing compatibility or performance problems, you |
| 1063 | MAY try to answering Y here. However, it does not necessarily solve | 1056 | MAY try to answer Y here. However, it does not necessarily solve |
| 1064 | any of your problems, it could even cause more of them. | 1057 | any of your problems, it could even cause more of them. |
| 1065 | 1058 | ||
| 1066 | It is normally safe to answer Y; however, the default is N. | 1059 | It is normally safe to answer Y; however, the default is N. |
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index ca25f9e3d0f4..09086b8b6486 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c | |||
| @@ -190,7 +190,8 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq, | |||
| 190 | if (lba48) { | 190 | if (lba48) { |
| 191 | task_ioreg_t tasklets[10]; | 191 | task_ioreg_t tasklets[10]; |
| 192 | 192 | ||
| 193 | pr_debug("%s: LBA=0x%012llx\n", drive->name, block); | 193 | pr_debug("%s: LBA=0x%012llx\n", drive->name, |
| 194 | (unsigned long long)block); | ||
| 194 | 195 | ||
| 195 | tasklets[0] = 0; | 196 | tasklets[0] = 0; |
| 196 | tasklets[1] = 0; | 197 | tasklets[1] = 0; |
| @@ -317,7 +318,8 @@ static ide_startstop_t ide_do_rw_disk (ide_drive_t *drive, struct request *rq, s | |||
| 317 | 318 | ||
| 318 | pr_debug("%s: %sing: block=%llu, sectors=%lu, buffer=0x%08lx\n", | 319 | pr_debug("%s: %sing: block=%llu, sectors=%lu, buffer=0x%08lx\n", |
| 319 | drive->name, rq_data_dir(rq) == READ ? "read" : "writ", | 320 | drive->name, rq_data_dir(rq) == READ ? "read" : "writ", |
| 320 | block, rq->nr_sectors, (unsigned long)rq->buffer); | 321 | (unsigned long long)block, rq->nr_sectors, |
| 322 | (unsigned long)rq->buffer); | ||
| 321 | 323 | ||
| 322 | if (hwif->rw_disk) | 324 | if (hwif->rw_disk) |
| 323 | hwif->rw_disk(drive, rq); | 325 | hwif->rw_disk(drive, rq); |
| @@ -776,7 +778,7 @@ static void update_ordered(ide_drive_t *drive) | |||
| 776 | ide_id_has_flush_cache_ext(id)); | 778 | ide_id_has_flush_cache_ext(id)); |
| 777 | 779 | ||
| 778 | printk(KERN_INFO "%s: cache flushes %ssupported\n", | 780 | printk(KERN_INFO "%s: cache flushes %ssupported\n", |
| 779 | drive->name, barrier ? "" : "not"); | 781 | drive->name, barrier ? "" : "not "); |
| 780 | 782 | ||
| 781 | if (barrier) { | 783 | if (barrier) { |
| 782 | ordered = QUEUE_ORDERED_DRAIN_FLUSH; | 784 | ordered = QUEUE_ORDERED_DRAIN_FLUSH; |
| @@ -889,11 +891,7 @@ static void idedisk_setup (ide_drive_t *drive) | |||
| 889 | if (drive->id_read == 0) | 891 | if (drive->id_read == 0) |
| 890 | return; | 892 | return; |
| 891 | 893 | ||
| 892 | /* | 894 | if (drive->removable) { |
| 893 | * CompactFlash cards and their brethern look just like hard drives | ||
| 894 | * to us, but they are removable and don't have a doorlock mechanism. | ||
| 895 | */ | ||
| 896 | if (drive->removable && !(drive->is_flash)) { | ||
| 897 | /* | 895 | /* |
| 898 | * Removable disks (eg. SYQUEST); ignore 'WD' drives | 896 | * Removable disks (eg. SYQUEST); ignore 'WD' drives |
| 899 | */ | 897 | */ |
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c index 8d50df4526a4..c01615dec202 100644 --- a/drivers/ide/ide-io.c +++ b/drivers/ide/ide-io.c | |||
| @@ -55,8 +55,8 @@ | |||
| 55 | #include <asm/io.h> | 55 | #include <asm/io.h> |
| 56 | #include <asm/bitops.h> | 56 | #include <asm/bitops.h> |
| 57 | 57 | ||
| 58 | int __ide_end_request(ide_drive_t *drive, struct request *rq, int uptodate, | 58 | static int __ide_end_request(ide_drive_t *drive, struct request *rq, |
| 59 | int nr_sectors) | 59 | int uptodate, int nr_sectors) |
| 60 | { | 60 | { |
| 61 | int ret = 1; | 61 | int ret = 1; |
| 62 | 62 | ||
| @@ -91,7 +91,6 @@ int __ide_end_request(ide_drive_t *drive, struct request *rq, int uptodate, | |||
| 91 | 91 | ||
| 92 | return ret; | 92 | return ret; |
| 93 | } | 93 | } |
| 94 | EXPORT_SYMBOL(__ide_end_request); | ||
| 95 | 94 | ||
| 96 | /** | 95 | /** |
| 97 | * ide_end_request - complete an IDE I/O | 96 | * ide_end_request - complete an IDE I/O |
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c index af7af958ab3e..b72dde70840a 100644 --- a/drivers/ide/ide-iops.c +++ b/drivers/ide/ide-iops.c | |||
| @@ -1243,6 +1243,7 @@ int ide_wait_not_busy(ide_hwif_t *hwif, unsigned long timeout) | |||
| 1243 | */ | 1243 | */ |
| 1244 | if (stat == 0xff) | 1244 | if (stat == 0xff) |
| 1245 | return -ENODEV; | 1245 | return -ENODEV; |
| 1246 | touch_softlockup_watchdog(); | ||
| 1246 | } | 1247 | } |
| 1247 | return -EBUSY; | 1248 | return -EBUSY; |
| 1248 | } | 1249 | } |
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index e7425546b4b1..427d1c204174 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
| @@ -125,45 +125,6 @@ static void ide_disk_init_mult_count(ide_drive_t *drive) | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | /** | 127 | /** |
| 128 | * drive_is_flashcard - check for compact flash | ||
| 129 | * @drive: drive to check | ||
| 130 | * | ||
| 131 | * CompactFlash cards and their brethern pretend to be removable | ||
| 132 | * hard disks, except: | ||
| 133 | * (1) they never have a slave unit, and | ||
| 134 | * (2) they don't have doorlock mechanisms. | ||
| 135 | * This test catches them, and is invoked elsewhere when setting | ||
| 136 | * appropriate config bits. | ||
| 137 | * | ||
| 138 | * FIXME: This treatment is probably applicable for *all* PCMCIA (PC CARD) | ||
| 139 | * devices, so in linux 2.3.x we should change this to just treat all | ||
| 140 | * PCMCIA drives this way, and get rid of the model-name tests below | ||
| 141 | * (too big of an interface change for 2.4.x). | ||
| 142 | * At that time, we might also consider parameterizing the timeouts and | ||
| 143 | * retries, since these are MUCH faster than mechanical drives. -M.Lord | ||
| 144 | */ | ||
| 145 | |||
| 146 | static inline int drive_is_flashcard (ide_drive_t *drive) | ||
| 147 | { | ||
| 148 | struct hd_driveid *id = drive->id; | ||
| 149 | |||
| 150 | if (drive->removable) { | ||
| 151 | if (id->config == 0x848a) return 1; /* CompactFlash */ | ||
| 152 | if (!strncmp(id->model, "KODAK ATA_FLASH", 15) /* Kodak */ | ||
| 153 | || !strncmp(id->model, "Hitachi CV", 10) /* Hitachi */ | ||
| 154 | || !strncmp(id->model, "SunDisk SDCFB", 13) /* old SanDisk */ | ||
| 155 | || !strncmp(id->model, "SanDisk SDCFB", 13) /* SanDisk */ | ||
| 156 | || !strncmp(id->model, "HAGIWARA HPC", 12) /* Hagiwara */ | ||
| 157 | || !strncmp(id->model, "LEXAR ATA_FLASH", 15) /* Lexar */ | ||
| 158 | || !strncmp(id->model, "ATA_FLASH", 9)) /* Simple Tech */ | ||
| 159 | { | ||
| 160 | return 1; /* yes, it is a flash memory card */ | ||
| 161 | } | ||
| 162 | } | ||
| 163 | return 0; /* no, it is not a flash memory card */ | ||
| 164 | } | ||
| 165 | |||
| 166 | /** | ||
| 167 | * do_identify - identify a drive | 128 | * do_identify - identify a drive |
| 168 | * @drive: drive to identify | 129 | * @drive: drive to identify |
| 169 | * @cmd: command used | 130 | * @cmd: command used |
| @@ -278,13 +239,17 @@ static inline void do_identify (ide_drive_t *drive, u8 cmd) | |||
| 278 | /* | 239 | /* |
| 279 | * Not an ATAPI device: looks like a "regular" hard disk | 240 | * Not an ATAPI device: looks like a "regular" hard disk |
| 280 | */ | 241 | */ |
| 281 | if (id->config & (1<<7)) | 242 | |
| 243 | /* | ||
| 244 | * 0x848a = CompactFlash device | ||
| 245 | * These are *not* removable in Linux definition of the term | ||
| 246 | */ | ||
| 247 | |||
| 248 | if ((id->config != 0x848a) && (id->config & (1<<7))) | ||
| 282 | drive->removable = 1; | 249 | drive->removable = 1; |
| 283 | 250 | ||
| 284 | if (drive_is_flashcard(drive)) | ||
| 285 | drive->is_flash = 1; | ||
| 286 | drive->media = ide_disk; | 251 | drive->media = ide_disk; |
| 287 | printk("%s DISK drive\n", (drive->is_flash) ? "CFA" : "ATA" ); | 252 | printk("%s DISK drive\n", (id->config == 0x848a) ? "CFA" : "ATA" ); |
| 288 | QUIRK_LIST(drive); | 253 | QUIRK_LIST(drive); |
| 289 | return; | 254 | return; |
| 290 | 255 | ||
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index afeb02bbb722..b2cc43702f65 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
| @@ -242,7 +242,6 @@ static void init_hwif_data(ide_hwif_t *hwif, unsigned int index) | |||
| 242 | drive->name[2] = 'a' + (index * MAX_DRIVES) + unit; | 242 | drive->name[2] = 'a' + (index * MAX_DRIVES) + unit; |
| 243 | drive->max_failures = IDE_DEFAULT_MAX_FAILURES; | 243 | drive->max_failures = IDE_DEFAULT_MAX_FAILURES; |
| 244 | drive->using_dma = 0; | 244 | drive->using_dma = 0; |
| 245 | drive->is_flash = 0; | ||
| 246 | drive->vdma = 0; | 245 | drive->vdma = 0; |
| 247 | INIT_LIST_HEAD(&drive->list); | 246 | INIT_LIST_HEAD(&drive->list); |
| 248 | init_completion(&drive->gendev_rel_comp); | 247 | init_completion(&drive->gendev_rel_comp); |
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c index a21b1e11eef4..c743e68c33aa 100644 --- a/drivers/ide/pci/aec62xx.c +++ b/drivers/ide/pci/aec62xx.c | |||
| @@ -262,6 +262,21 @@ static unsigned int __devinit init_chipset_aec62xx(struct pci_dev *dev, const ch | |||
| 262 | else | 262 | else |
| 263 | pci_set_drvdata(dev, (void *) aec6xxx_34_base); | 263 | pci_set_drvdata(dev, (void *) aec6xxx_34_base); |
| 264 | 264 | ||
| 265 | /* These are necessary to get AEC6280 Macintosh cards to work */ | ||
| 266 | if ((dev->device == PCI_DEVICE_ID_ARTOP_ATP865) || | ||
| 267 | (dev->device == PCI_DEVICE_ID_ARTOP_ATP865R)) { | ||
| 268 | u8 reg49h = 0, reg4ah = 0; | ||
| 269 | /* Clear reset and test bits. */ | ||
| 270 | pci_read_config_byte(dev, 0x49, ®49h); | ||
| 271 | pci_write_config_byte(dev, 0x49, reg49h & ~0x30); | ||
| 272 | /* Enable chip interrupt output. */ | ||
| 273 | pci_read_config_byte(dev, 0x4a, ®4ah); | ||
| 274 | pci_write_config_byte(dev, 0x4a, reg4ah & ~0x01); | ||
| 275 | /* Enable burst mode. */ | ||
| 276 | pci_read_config_byte(dev, 0x4a, ®4ah); | ||
| 277 | pci_write_config_byte(dev, 0x4a, reg4ah | 0x80); | ||
| 278 | } | ||
| 279 | |||
| 265 | return dev->irq; | 280 | return dev->irq; |
| 266 | } | 281 | } |
| 267 | 282 | ||
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c index 7b589d948bf9..940bdd4c5784 100644 --- a/drivers/ide/pci/hpt366.c +++ b/drivers/ide/pci/hpt366.c | |||
| @@ -1288,6 +1288,10 @@ static void __devinit hpt37x_clocking(ide_hwif_t *hwif) | |||
| 1288 | goto init_hpt37X_done; | 1288 | goto init_hpt37X_done; |
| 1289 | } | 1289 | } |
| 1290 | } | 1290 | } |
| 1291 | if (!pci_get_drvdata(dev)) { | ||
| 1292 | printk("No Clock Stabilization!!!\n"); | ||
| 1293 | return; | ||
| 1294 | } | ||
| 1291 | pll_recal: | 1295 | pll_recal: |
| 1292 | if (adjust & 1) | 1296 | if (adjust & 1) |
| 1293 | pll -= (adjust >> 1); | 1297 | pll -= (adjust >> 1); |
diff --git a/drivers/ide/pci/it821x.c b/drivers/ide/pci/it821x.c index 108fda83fea4..38f41b377ff6 100644 --- a/drivers/ide/pci/it821x.c +++ b/drivers/ide/pci/it821x.c | |||
| @@ -733,7 +733,7 @@ static void __devinit it8212_disable_raid(struct pci_dev *dev) | |||
| 733 | 733 | ||
| 734 | pci_write_config_dword(dev,0x4C, 0x02040204); | 734 | pci_write_config_dword(dev,0x4C, 0x02040204); |
| 735 | pci_write_config_byte(dev, 0x42, 0x36); | 735 | pci_write_config_byte(dev, 0x42, 0x36); |
| 736 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0); | 736 | pci_write_config_byte(dev, PCI_LATENCY_TIMER, 0x20); |
| 737 | } | 737 | } |
| 738 | 738 | ||
| 739 | static unsigned int __devinit init_chipset_it821x(struct pci_dev *dev, const char *name) | 739 | static unsigned int __devinit init_chipset_it821x(struct pci_dev *dev, const char *name) |
diff --git a/drivers/ide/pci/pdc202xx_new.c b/drivers/ide/pci/pdc202xx_new.c index fe06ebb0e5bf..acd63173199b 100644 --- a/drivers/ide/pci/pdc202xx_new.c +++ b/drivers/ide/pci/pdc202xx_new.c | |||
| @@ -420,9 +420,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = { | |||
| 420 | .init_hwif = init_hwif_pdc202new, | 420 | .init_hwif = init_hwif_pdc202new, |
| 421 | .channels = 2, | 421 | .channels = 2, |
| 422 | .autodma = AUTODMA, | 422 | .autodma = AUTODMA, |
| 423 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 424 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 425 | #endif | ||
| 426 | .bootable = OFF_BOARD, | 423 | .bootable = OFF_BOARD, |
| 427 | },{ /* 3 */ | 424 | },{ /* 3 */ |
| 428 | .name = "PDC20271", | 425 | .name = "PDC20271", |
| @@ -447,9 +444,6 @@ static ide_pci_device_t pdcnew_chipsets[] __devinitdata = { | |||
| 447 | .init_hwif = init_hwif_pdc202new, | 444 | .init_hwif = init_hwif_pdc202new, |
| 448 | .channels = 2, | 445 | .channels = 2, |
| 449 | .autodma = AUTODMA, | 446 | .autodma = AUTODMA, |
| 450 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 451 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 452 | #endif | ||
| 453 | .bootable = OFF_BOARD, | 447 | .bootable = OFF_BOARD, |
| 454 | },{ /* 6 */ | 448 | },{ /* 6 */ |
| 455 | .name = "PDC20277", | 449 | .name = "PDC20277", |
diff --git a/drivers/ide/pci/pdc202xx_old.c b/drivers/ide/pci/pdc202xx_old.c index ad9d95817f95..6f8f8645b02c 100644 --- a/drivers/ide/pci/pdc202xx_old.c +++ b/drivers/ide/pci/pdc202xx_old.c | |||
| @@ -786,9 +786,6 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = { | |||
| 786 | .init_dma = init_dma_pdc202xx, | 786 | .init_dma = init_dma_pdc202xx, |
| 787 | .channels = 2, | 787 | .channels = 2, |
| 788 | .autodma = AUTODMA, | 788 | .autodma = AUTODMA, |
| 789 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 790 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 791 | #endif | ||
| 792 | .bootable = OFF_BOARD, | 789 | .bootable = OFF_BOARD, |
| 793 | .extra = 16, | 790 | .extra = 16, |
| 794 | },{ /* 1 */ | 791 | },{ /* 1 */ |
| @@ -799,9 +796,6 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = { | |||
| 799 | .init_dma = init_dma_pdc202xx, | 796 | .init_dma = init_dma_pdc202xx, |
| 800 | .channels = 2, | 797 | .channels = 2, |
| 801 | .autodma = AUTODMA, | 798 | .autodma = AUTODMA, |
| 802 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 803 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 804 | #endif | ||
| 805 | .bootable = OFF_BOARD, | 799 | .bootable = OFF_BOARD, |
| 806 | .extra = 48, | 800 | .extra = 48, |
| 807 | .flags = IDEPCI_FLAG_FORCE_PDC, | 801 | .flags = IDEPCI_FLAG_FORCE_PDC, |
| @@ -813,9 +807,6 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = { | |||
| 813 | .init_dma = init_dma_pdc202xx, | 807 | .init_dma = init_dma_pdc202xx, |
| 814 | .channels = 2, | 808 | .channels = 2, |
| 815 | .autodma = AUTODMA, | 809 | .autodma = AUTODMA, |
| 816 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 817 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 818 | #endif | ||
| 819 | .bootable = OFF_BOARD, | 810 | .bootable = OFF_BOARD, |
| 820 | .extra = 48, | 811 | .extra = 48, |
| 821 | },{ /* 3 */ | 812 | },{ /* 3 */ |
| @@ -826,9 +817,6 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = { | |||
| 826 | .init_dma = init_dma_pdc202xx, | 817 | .init_dma = init_dma_pdc202xx, |
| 827 | .channels = 2, | 818 | .channels = 2, |
| 828 | .autodma = AUTODMA, | 819 | .autodma = AUTODMA, |
| 829 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 830 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 831 | #endif | ||
| 832 | .bootable = OFF_BOARD, | 820 | .bootable = OFF_BOARD, |
| 833 | .extra = 48, | 821 | .extra = 48, |
| 834 | .flags = IDEPCI_FLAG_FORCE_PDC, | 822 | .flags = IDEPCI_FLAG_FORCE_PDC, |
| @@ -840,9 +828,6 @@ static ide_pci_device_t pdc202xx_chipsets[] __devinitdata = { | |||
| 840 | .init_dma = init_dma_pdc202xx, | 828 | .init_dma = init_dma_pdc202xx, |
| 841 | .channels = 2, | 829 | .channels = 2, |
| 842 | .autodma = AUTODMA, | 830 | .autodma = AUTODMA, |
| 843 | #ifndef CONFIG_PDC202XX_FORCE | ||
| 844 | .enablebits = {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, | ||
| 845 | #endif | ||
| 846 | .bootable = OFF_BOARD, | 831 | .bootable = OFF_BOARD, |
| 847 | .extra = 48, | 832 | .extra = 48, |
| 848 | } | 833 | } |
diff --git a/drivers/ide/pci/piix.c b/drivers/ide/pci/piix.c index b3e77df63cef..e9b83e1a3028 100644 --- a/drivers/ide/pci/piix.c +++ b/drivers/ide/pci/piix.c | |||
| @@ -135,6 +135,7 @@ static u8 piix_ratemask (ide_drive_t *drive) | |||
| 135 | case PCI_DEVICE_ID_INTEL_ICH6_19: | 135 | case PCI_DEVICE_ID_INTEL_ICH6_19: |
| 136 | case PCI_DEVICE_ID_INTEL_ICH7_21: | 136 | case PCI_DEVICE_ID_INTEL_ICH7_21: |
| 137 | case PCI_DEVICE_ID_INTEL_ESB2_18: | 137 | case PCI_DEVICE_ID_INTEL_ESB2_18: |
| 138 | case PCI_DEVICE_ID_INTEL_ICH8_6: | ||
| 138 | mode = 3; | 139 | mode = 3; |
| 139 | break; | 140 | break; |
| 140 | /* UDMA 66 capable */ | 141 | /* UDMA 66 capable */ |
| @@ -449,6 +450,7 @@ static unsigned int __devinit init_chipset_piix (struct pci_dev *dev, const char | |||
| 449 | case PCI_DEVICE_ID_INTEL_ICH6_19: | 450 | case PCI_DEVICE_ID_INTEL_ICH6_19: |
| 450 | case PCI_DEVICE_ID_INTEL_ICH7_21: | 451 | case PCI_DEVICE_ID_INTEL_ICH7_21: |
| 451 | case PCI_DEVICE_ID_INTEL_ESB2_18: | 452 | case PCI_DEVICE_ID_INTEL_ESB2_18: |
| 453 | case PCI_DEVICE_ID_INTEL_ICH8_6: | ||
| 452 | { | 454 | { |
| 453 | unsigned int extra = 0; | 455 | unsigned int extra = 0; |
| 454 | pci_read_config_dword(dev, 0x54, &extra); | 456 | pci_read_config_dword(dev, 0x54, &extra); |
| @@ -575,6 +577,7 @@ static ide_pci_device_t piix_pci_info[] __devinitdata = { | |||
| 575 | /* 21 */ DECLARE_PIIX_DEV("ICH7"), | 577 | /* 21 */ DECLARE_PIIX_DEV("ICH7"), |
| 576 | /* 22 */ DECLARE_PIIX_DEV("ICH4"), | 578 | /* 22 */ DECLARE_PIIX_DEV("ICH4"), |
| 577 | /* 23 */ DECLARE_PIIX_DEV("ESB2"), | 579 | /* 23 */ DECLARE_PIIX_DEV("ESB2"), |
| 580 | /* 24 */ DECLARE_PIIX_DEV("ICH8M"), | ||
| 578 | }; | 581 | }; |
| 579 | 582 | ||
| 580 | /** | 583 | /** |
| @@ -651,6 +654,7 @@ static struct pci_device_id piix_pci_tbl[] = { | |||
| 651 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 21}, | 654 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_21, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 21}, |
| 652 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 22}, | 655 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 22}, |
| 653 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_18, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 23}, | 656 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB2_18, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 23}, |
| 657 | { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 24}, | ||
| 654 | { 0, }, | 658 | { 0, }, |
| 655 | }; | 659 | }; |
| 656 | MODULE_DEVICE_TABLE(pci, piix_pci_tbl); | 660 | MODULE_DEVICE_TABLE(pci, piix_pci_tbl); |
diff --git a/drivers/ide/pci/sgiioc4.c b/drivers/ide/pci/sgiioc4.c index 4ee597d08797..2b286e865163 100644 --- a/drivers/ide/pci/sgiioc4.c +++ b/drivers/ide/pci/sgiioc4.c | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2003 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2003-2006 Silicon Graphics, Inc. All Rights Reserved. |
| 3 | * | 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
| 5 | * under the terms of version 2 of the GNU General Public License | 5 | * under the terms of version 2 of the GNU General Public License |
| @@ -510,7 +510,7 @@ sgiioc4_build_dma_table(ide_drive_t * drive, struct request *rq, int ddir) | |||
| 510 | drive->name); | 510 | drive->name); |
| 511 | goto use_pio_instead; | 511 | goto use_pio_instead; |
| 512 | } else { | 512 | } else { |
| 513 | u32 xcount, bcount = | 513 | u32 bcount = |
| 514 | 0x10000 - (cur_addr & 0xffff); | 514 | 0x10000 - (cur_addr & 0xffff); |
| 515 | 515 | ||
| 516 | if (bcount > cur_len) | 516 | if (bcount > cur_len) |
| @@ -525,8 +525,7 @@ sgiioc4_build_dma_table(ide_drive_t * drive, struct request *rq, int ddir) | |||
| 525 | *table = 0x0; | 525 | *table = 0x0; |
| 526 | table++; | 526 | table++; |
| 527 | 527 | ||
| 528 | xcount = bcount & 0xffff; | 528 | *table = cpu_to_be32(bcount); |
| 529 | *table = cpu_to_be32(xcount); | ||
| 530 | table++; | 529 | table++; |
| 531 | 530 | ||
| 532 | cur_addr += bcount; | 531 | cur_addr += bcount; |
| @@ -680,7 +679,7 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d) | |||
| 680 | return -EIO; | 679 | return -EIO; |
| 681 | 680 | ||
| 682 | /* Create /proc/ide entries */ | 681 | /* Create /proc/ide entries */ |
| 683 | create_proc_ide_interfaces(); | 682 | create_proc_ide_interfaces(); |
| 684 | 683 | ||
| 685 | return 0; | 684 | return 0; |
| 686 | } | 685 | } |
