diff options
author | Shane Huang <ati.shane@gmail.com> | 2008-02-22 08:00:31 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2008-02-24 00:28:44 -0500 |
commit | e39fc8c9fd0bb6f4018186801e4a53a5eccaaf70 (patch) | |
tree | a697763c7714bb8e44c841d03e074e9415919614 /drivers/ata/ahci.c | |
parent | 39f25e70ca37b8a719e8274e6f3ec2ce2ea8df04 (diff) |
[libata] ahci: AMD SB700/SB800 SATA support 64bit DMA
SB700 SATA controller can support 64 bit DMA, the previous commit
badc2341579511a247f5993865aa68379e283c5c was added with
careless reference to SB600, which should be modified by this patch.
Signed-off-by: Shane Huang <shane.huang@amd.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/ahci.c')
-rw-r--r-- | drivers/ata/ahci.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index 6dd12f7019a0..1db93b619074 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -85,6 +85,7 @@ enum { | |||
85 | board_ahci_ign_iferr = 2, | 85 | board_ahci_ign_iferr = 2, |
86 | board_ahci_sb600 = 3, | 86 | board_ahci_sb600 = 3, |
87 | board_ahci_mv = 4, | 87 | board_ahci_mv = 4, |
88 | board_ahci_sb700 = 5, | ||
88 | 89 | ||
89 | /* global controller registers */ | 90 | /* global controller registers */ |
90 | HOST_CAP = 0x00, /* host capabilities */ | 91 | HOST_CAP = 0x00, /* host capabilities */ |
@@ -442,6 +443,16 @@ static const struct ata_port_info ahci_port_info[] = { | |||
442 | .udma_mask = ATA_UDMA6, | 443 | .udma_mask = ATA_UDMA6, |
443 | .port_ops = &ahci_ops, | 444 | .port_ops = &ahci_ops, |
444 | }, | 445 | }, |
446 | /* board_ahci_sb700 */ | ||
447 | { | ||
448 | AHCI_HFLAGS (AHCI_HFLAG_IGN_SERR_INTERNAL | | ||
449 | AHCI_HFLAG_NO_PMP), | ||
450 | .flags = AHCI_FLAG_COMMON, | ||
451 | .link_flags = AHCI_LFLAG_COMMON, | ||
452 | .pio_mask = 0x1f, /* pio0-4 */ | ||
453 | .udma_mask = ATA_UDMA6, | ||
454 | .port_ops = &ahci_ops, | ||
455 | }, | ||
445 | }; | 456 | }; |
446 | 457 | ||
447 | static const struct pci_device_id ahci_pci_tbl[] = { | 458 | static const struct pci_device_id ahci_pci_tbl[] = { |
@@ -484,12 +495,12 @@ static const struct pci_device_id ahci_pci_tbl[] = { | |||
484 | 495 | ||
485 | /* ATI */ | 496 | /* ATI */ |
486 | { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */ | 497 | { PCI_VDEVICE(ATI, 0x4380), board_ahci_sb600 }, /* ATI SB600 */ |
487 | { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb600 }, /* ATI SB700/800 */ | 498 | { PCI_VDEVICE(ATI, 0x4390), board_ahci_sb700 }, /* ATI SB700/800 */ |
488 | { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb600 }, /* ATI SB700/800 */ | 499 | { PCI_VDEVICE(ATI, 0x4391), board_ahci_sb700 }, /* ATI SB700/800 */ |
489 | { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb600 }, /* ATI SB700/800 */ | 500 | { PCI_VDEVICE(ATI, 0x4392), board_ahci_sb700 }, /* ATI SB700/800 */ |
490 | { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb600 }, /* ATI SB700/800 */ | 501 | { PCI_VDEVICE(ATI, 0x4393), board_ahci_sb700 }, /* ATI SB700/800 */ |
491 | { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb600 }, /* ATI SB700/800 */ | 502 | { PCI_VDEVICE(ATI, 0x4394), board_ahci_sb700 }, /* ATI SB700/800 */ |
492 | { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb600 }, /* ATI SB700/800 */ | 503 | { PCI_VDEVICE(ATI, 0x4395), board_ahci_sb700 }, /* ATI SB700/800 */ |
493 | 504 | ||
494 | /* VIA */ | 505 | /* VIA */ |
495 | { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */ | 506 | { PCI_VDEVICE(VIA, 0x3349), board_ahci_vt8251 }, /* VIA VT8251 */ |