Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
[libata] ahci: add ATI SB800 PCI IDs
libata-sff: Fix documentation
libata: Update the blacklist with a few more devices

+14 -5
+6 -4
drivers/ata/ahci.c
··· 418 418 419 419 /* ATI */ 420 420 { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */ 421 - { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700 IDE */ 422 - { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb600 }, /* ATI SB700 AHCI */ 423 - { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb600 }, /* ATI SB700 nraid5 */ 424 - { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb600 }, /* ATI SB700 raid5 */ 421 + { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700/800 */ 422 + { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb600 }, /* ATI SB700/800 */ 423 + { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb600 }, /* ATI SB700/800 */ 424 + { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb600 }, /* ATI SB700/800 */ 425 + { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb600 }, /* ATI SB700/800 */ 426 + { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb600 }, /* ATI SB700/800 */ 425 427 426 428 /* VIA */ 427 429 { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */
+4
drivers/ata/libata-core.c
··· 3778 3778 { "Maxtor 6L250S0", "BANC1G10", ATA_HORKAGE_NONCQ }, 3779 3779 { "Maxtor 6B200M0", "BANC1BM0", ATA_HORKAGE_NONCQ }, 3780 3780 { "Maxtor 6B200M0", "BANC1B10", ATA_HORKAGE_NONCQ }, 3781 + { "Maxtor 7B250S0", "BANC1B70", ATA_HORKAGE_NONCQ, }, 3782 + { "Maxtor 7B300S0", "BANC1B70", ATA_HORKAGE_NONCQ }, 3783 + { "Maxtor 7V300F0", "VA111630", ATA_HORKAGE_NONCQ }, 3781 3784 { "HITACHI HDS7250SASUN500G 0621KTAWSD", "K2AOAJ0AHITACHI", 3782 3785 ATA_HORKAGE_NONCQ }, 3783 3786 /* NCQ hard hangs device under heavier load, needs hard power cycle */ ··· 3797 3794 { "WDC WD740ADFD-00NLR1", NULL, ATA_HORKAGE_NONCQ, }, 3798 3795 { "FUJITSU MHV2080BH", "00840028", ATA_HORKAGE_NONCQ, }, 3799 3796 { "ST9160821AS", "3.CLF", ATA_HORKAGE_NONCQ, }, 3797 + { "ST3160812AS", "3.AD", ATA_HORKAGE_NONCQ, }, 3800 3798 { "SAMSUNG HD401LJ", "ZZ100-15", ATA_HORKAGE_NONCQ, }, 3801 3799 3802 3800 /* devices which puke on READ_NATIVE_MAX */
+4 -1
drivers/ata/libata-sff.c
··· 297 297 dmactl = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); 298 298 iowrite8(dmactl | ATA_DMA_START, ap->ioaddr.bmdma_addr + ATA_DMA_CMD); 299 299 300 - /* Strictly, one may wish to issue a readb() here, to 300 + /* Strictly, one may wish to issue an ioread8() here, to 301 301 * flush the mmio write. However, control also passes 302 302 * to the hardware at this point, and it will interrupt 303 303 * us when we are to resume control. So, in effect, ··· 307 307 * is expected, so I think it is best to not add a readb() 308 308 * without first all the MMIO ATA cards/mobos. 309 309 * Or maybe I'm just being paranoid. 310 + * 311 + * FIXME: The posting of this write means I/O starts are 312 + * unneccessarily delayed for MMIO 310 313 */ 311 314 } 312 315