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 | ||
