Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:
IDE: fix sparse signed-ness errors with host->host_busy
ide: fix suspend regression
tx4938ide: Fix build error due to read_sff_dma_status moving
ide: remove unused CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ
sl82c105: remove dead code
via82cxxx: fix cable warning message
ide: can't use SSD/non-rotational queue flag for all CFA devices
it821x.c: use dev->revision instead of pci_read_config_byte
it821x: Add ultra_mask quirk for Vortex86SX
ide: fix accidental LOCKDEP breakage caused by local_irq_set() removal

+27 -27
+1 -5
Documentation/mips/AU1xxx_IDE.README
··· 52 52 b) 'drivers/ide/mips/au1xxx-ide.c' 53 53 contains the functionality of the AU1XXX IDE driver 54 54 55 - Four configs variables are introduced: 55 + Following extra configs variables are introduced: 56 56 57 57 CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA - enable the PIO+DBDMA mode 58 58 CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA - enable the MWDMA mode 59 59 CONFIG_BLK_DEV_IDE_AU1XXX_BURSTABLE_ON - set Burstable FIFO in DBDMA 60 60 controller 61 - CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ - maximum transfer size 62 - per descriptor 63 61 64 62 65 63 SUPPORTED IDE MODES ··· 85 87 CONFIG_IDEDMA_PCI_AUTO=y 86 88 CONFIG_BLK_DEV_IDE_AU1XXX=y 87 89 CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y 88 - CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 89 90 CONFIG_BLK_DEV_IDEDMA=y 90 91 CONFIG_IDEDMA_AUTO=y 91 92 ··· 102 105 CONFIG_IDEDMA_PCI_AUTO=y 103 106 CONFIG_BLK_DEV_IDE_AU1XXX=y 104 107 CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA=y 105 - CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128 106 108 CONFIG_BLK_DEV_IDEDMA=y 107 109 CONFIG_IDEDMA_AUTO=y 108 110
-5
drivers/ide/Kconfig
··· 701 701 depends on SOC_AU1200 && BLK_DEV_IDE_AU1XXX 702 702 endchoice 703 703 704 - config BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ 705 - int "Maximum transfer size (KB) per request (up to 128)" 706 - default "128" 707 - depends on BLK_DEV_IDE_AU1XXX 708 - 709 704 config BLK_DEV_IDE_TX4938 710 705 tristate "TX4938 internal IDE support" 711 706 depends on SOC_TX4938
+1 -1
drivers/ide/ide-disk.c
··· 633 633 printk(KERN_INFO "%s: max request size: %dKiB\n", drive->name, 634 634 q->max_sectors / 2); 635 635 636 - if (ata_id_is_ssd(id) || ata_id_is_cfa(id)) 636 + if (ata_id_is_ssd(id)) 637 637 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); 638 638 639 639 /* calculate drive capacity, and select LBA if possible */
+1 -1
drivers/ide/ide-iops.c
··· 493 493 stat = tp_ops->read_status(hwif); 494 494 495 495 if (stat & ATA_BUSY) { 496 - local_irq_save(flags); 496 + local_save_flags(flags); 497 497 local_irq_enable_in_hardirq(); 498 498 timeout += jiffies; 499 499 while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) {
+8 -4
drivers/ide/ide-pm.c
··· 186 186 blk_pm_suspend_request(rq) ? "suspend" : "resume"); 187 187 #endif 188 188 spin_lock_irqsave(q->queue_lock, flags); 189 - if (blk_pm_suspend_request(rq)) { 189 + if (blk_pm_suspend_request(rq)) 190 190 blk_stop_queue(q); 191 - } else { 191 + else 192 192 drive->dev_flags &= ~IDE_DFLAG_BLOCKED; 193 - blk_start_queue(q); 194 - } 195 193 spin_unlock_irqrestore(q->queue_lock, flags); 196 194 197 195 drive->hwif->rq = NULL; ··· 217 219 * point. 218 220 */ 219 221 ide_hwif_t *hwif = drive->hwif; 222 + struct request_queue *q = drive->queue; 223 + unsigned long flags; 220 224 int rc; 221 225 #ifdef DEBUG_PM 222 226 printk("%s: Wakeup request inited, waiting for !BSY...\n", drive->name); ··· 231 231 rc = ide_wait_not_busy(hwif, 100000); 232 232 if (rc) 233 233 printk(KERN_WARNING "%s: drive not ready on wakeup\n", drive->name); 234 + 235 + spin_lock_irqsave(q->queue_lock, flags); 236 + blk_start_queue(q); 237 + spin_unlock_irqrestore(q->queue_lock, flags); 234 238 } 235 239 }
+1 -1
drivers/ide/ide-probe.c
··· 796 796 if (irqd) 797 797 disable_irq(hwif->irq); 798 798 799 - local_irq_save(flags); 799 + local_save_flags(flags); 800 800 local_irq_enable_in_hardirq(); 801 801 802 802 if (ide_port_wait_ready(hwif) == -EBUSY)
+13 -2
drivers/ide/it821x.c
··· 68 68 69 69 #define DRV_NAME "it821x" 70 70 71 + #define QUIRK_VORTEX86 1 72 + 71 73 struct it821x_dev 72 74 { 73 75 unsigned int smart:1, /* Are we in smart raid mode */ ··· 81 79 u16 pio[2]; /* Cached PIO values */ 82 80 u16 mwdma[2]; /* Cached MWDMA values */ 83 81 u16 udma[2]; /* Cached UDMA values (per drive) */ 82 + u16 quirks; 84 83 }; 85 84 86 85 #define ATA_66 0 ··· 560 557 * this is necessary. 561 558 */ 562 559 563 - pci_read_config_byte(dev, 0x08, &conf); 564 - if (conf == 0x10) { 560 + if (dev->revision == 0x10) { 565 561 idev->timing10 = 1; 566 562 hwif->host_flags |= IDE_HFLAG_NO_ATAPI_DMA; 567 563 if (idev->smart == 0) ··· 579 577 580 578 hwif->ultra_mask = ATA_UDMA6; 581 579 hwif->mwdma_mask = ATA_MWDMA2; 580 + 581 + /* Vortex86SX quirk: prevent Ultra-DMA mode to fix BadCRC issue */ 582 + if (idev->quirks & QUIRK_VORTEX86) { 583 + if (dev->revision == 0x11) 584 + hwif->ultra_mask = 0; 585 + } 582 586 } 583 587 584 588 static void it8212_disable_raid(struct pci_dev *dev) ··· 657 649 return -ENOMEM; 658 650 } 659 651 652 + itdevs->quirks = id->driver_data; 653 + 660 654 rc = ide_pci_init_one(dev, &it821x_chipset, itdevs); 661 655 if (rc) 662 656 kfree(itdevs); ··· 678 668 static const struct pci_device_id it821x_pci_tbl[] = { 679 669 { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8211), 0 }, 680 670 { PCI_VDEVICE(ITE, PCI_DEVICE_ID_ITE_8212), 0 }, 671 + { PCI_VDEVICE(RDC, PCI_DEVICE_ID_RDC_D1010), QUIRK_VORTEX86 }, 681 672 { 0, }, 682 673 }; 683 674
-4
drivers/ide/sl82c105.c
··· 310 310 .dma_ops = &sl82c105_dma_ops, 311 311 .host_flags = IDE_HFLAG_IO_32BIT | 312 312 IDE_HFLAG_UNMASK_IRQS | 313 - /* FIXME: check for Compatibility mode in generic IDE PCI code */ 314 - #if defined(CONFIG_LOPEC) || defined(CONFIG_SANDPOINT) 315 - IDE_HFLAG_FORCE_LEGACY_IRQS | 316 - #endif 317 313 IDE_HFLAG_SERIALIZE_DMA | 318 314 IDE_HFLAG_NO_AUTODMA, 319 315 .pio_mask = ATA_PIO5,
-1
drivers/ide/tx4938ide.c
··· 202 202 .exec_command = ide_exec_command, 203 203 .read_status = ide_read_status, 204 204 .read_altstatus = ide_read_altstatus, 205 - .read_sff_dma_status = ide_read_sff_dma_status, 206 205 207 206 .set_irq = ide_set_irq, 208 207
-2
drivers/ide/via82cxxx.c
··· 432 432 if (via_clock < 20000 || via_clock > 50000) { 433 433 printk(KERN_WARNING DRV_NAME ": User given PCI clock speed " 434 434 "impossible (%d), using 33 MHz instead.\n", via_clock); 435 - printk(KERN_WARNING DRV_NAME ": Use ide0=ata66 if you want " 436 - "to assume 80-wire cable.\n"); 437 435 via_clock = 33333; 438 436 } 439 437
+1 -1
include/linux/ide.h
··· 871 871 ide_hwif_t *cur_port; /* for hosts requiring serialization */ 872 872 873 873 /* used for hosts requiring serialization */ 874 - volatile long host_busy; 874 + volatile unsigned long host_busy; 875 875 }; 876 876 877 877 #define IDE_HOST_BUSY 0
+1
include/linux/pci_ids.h
··· 2174 2174 #define PCI_DEVICE_ID_RDC_R6040 0x6040 2175 2175 #define PCI_DEVICE_ID_RDC_R6060 0x6060 2176 2176 #define PCI_DEVICE_ID_RDC_R6061 0x6061 2177 + #define PCI_DEVICE_ID_RDC_D1010 0x1010 2177 2178 2178 2179 #define PCI_VENDOR_ID_LENOVO 0x17aa 2179 2180