diff options
-rw-r--r-- | drivers/ata/ahci.c | 10 | ||||
-rw-r--r-- | drivers/ata/libata-core.c | 4 | ||||
-rw-r--r-- | drivers/ata/libata-sff.c | 5 |
3 files changed, 14 insertions, 5 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 06f212ff2b4f..c16820325d7b 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -418,10 +418,12 @@ static const struct pci_device_id ahci_pci_tbl[] = { | |||
418 | 418 | ||
419 | /* ATI */ | 419 | /* ATI */ |
420 | { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */ | 420 | { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */ |
421 | { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700 IDE */ | 421 | { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700/800 */ |
422 | { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb600 }, /* ATI SB700 AHCI */ | 422 | { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb600 }, /* ATI SB700/800 */ |
423 | { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb600 }, /* ATI SB700 nraid5 */ | 423 | { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb600 }, /* ATI SB700/800 */ |
424 | { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb600 }, /* ATI SB700 raid5 */ | 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 | /* VIA */ | 428 | /* VIA */ |
427 | { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */ | 429 | { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */ |
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c index c43de9a710db..772be09b4689 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c | |||
@@ -3778,6 +3778,9 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { | |||
3778 | { "Maxtor 6L250S0", "BANC1G10", ATA_HORKAGE_NONCQ }, | 3778 | { "Maxtor 6L250S0", "BANC1G10", ATA_HORKAGE_NONCQ }, |
3779 | { "Maxtor 6B200M0", "BANC1BM0", ATA_HORKAGE_NONCQ }, | 3779 | { "Maxtor 6B200M0", "BANC1BM0", ATA_HORKAGE_NONCQ }, |
3780 | { "Maxtor 6B200M0", "BANC1B10", ATA_HORKAGE_NONCQ }, | 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 | { "HITACHI HDS7250SASUN500G 0621KTAWSD", "K2AOAJ0AHITACHI", | 3784 | { "HITACHI HDS7250SASUN500G 0621KTAWSD", "K2AOAJ0AHITACHI", |
3782 | ATA_HORKAGE_NONCQ }, | 3785 | ATA_HORKAGE_NONCQ }, |
3783 | /* NCQ hard hangs device under heavier load, needs hard power cycle */ | 3786 | /* NCQ hard hangs device under heavier load, needs hard power cycle */ |
@@ -3794,6 +3797,7 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { | |||
3794 | { "WDC WD740ADFD-00NLR1", NULL, ATA_HORKAGE_NONCQ, }, | 3797 | { "WDC WD740ADFD-00NLR1", NULL, ATA_HORKAGE_NONCQ, }, |
3795 | { "FUJITSU MHV2080BH", "00840028", ATA_HORKAGE_NONCQ, }, | 3798 | { "FUJITSU MHV2080BH", "00840028", ATA_HORKAGE_NONCQ, }, |
3796 | { "ST9160821AS", "3.CLF", ATA_HORKAGE_NONCQ, }, | 3799 | { "ST9160821AS", "3.CLF", ATA_HORKAGE_NONCQ, }, |
3800 | { "ST3160812AS", "3.AD", ATA_HORKAGE_NONCQ, }, | ||
3797 | { "SAMSUNG HD401LJ", "ZZ100-15", ATA_HORKAGE_NONCQ, }, | 3801 | { "SAMSUNG HD401LJ", "ZZ100-15", ATA_HORKAGE_NONCQ, }, |
3798 | 3802 | ||
3799 | /* devices which puke on READ_NATIVE_MAX */ | 3803 | /* devices which puke on READ_NATIVE_MAX */ |
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 1cce2198baaf..8023167bbbeb 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -297,7 +297,7 @@ void ata_bmdma_start (struct ata_queued_cmd *qc) | |||
297 | dmactl = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); | 297 | dmactl = ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); |
298 | iowrite8(dmactl | ATA_DMA_START, ap->ioaddr.bmdma_addr + ATA_DMA_CMD); | 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 | * flush the mmio write. However, control also passes | 301 | * flush the mmio write. However, control also passes |
302 | * to the hardware at this point, and it will interrupt | 302 | * to the hardware at this point, and it will interrupt |
303 | * us when we are to resume control. So, in effect, | 303 | * us when we are to resume control. So, in effect, |
@@ -307,6 +307,9 @@ void ata_bmdma_start (struct ata_queued_cmd *qc) | |||
307 | * is expected, so I think it is best to not add a readb() | 307 | * is expected, so I think it is best to not add a readb() |
308 | * without first all the MMIO ATA cards/mobos. | 308 | * without first all the MMIO ATA cards/mobos. |
309 | * Or maybe I'm just being paranoid. | 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 | ||