diff options
author | Tejun Heo <tj@kernel.org> | 2010-07-24 10:53:48 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2010-08-25 19:24:16 -0400 |
commit | 5f173107ecad83a50fc297f5a99bcda961501fc9 (patch) | |
tree | 02b2ef16c50af54dcffd009233a8cd9767115e2e /drivers/ata/ahci.c | |
parent | 6d981b9a91be29c0deae5ac794a4fe885027032f (diff) |
ahci: add HFLAG_YES_FBS and apply it to 88SE9128
88SE9128 can do FBS and sets it in HOST_CAP but forgets to set FBSCP
in PORT_CMD. Implement AHCI_HFLAG_YES_FBS and apply it to 88SE9128.
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata/ahci.c')
-rw-r--r-- | drivers/ata/ahci.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index fe75d8befc3a..013727b20417 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -60,6 +60,7 @@ enum board_ids { | |||
60 | board_ahci, | 60 | board_ahci, |
61 | board_ahci_ign_iferr, | 61 | board_ahci_ign_iferr, |
62 | board_ahci_nosntf, | 62 | board_ahci_nosntf, |
63 | board_ahci_yes_fbs, | ||
63 | 64 | ||
64 | /* board IDs for specific chipsets in alphabetical order */ | 65 | /* board IDs for specific chipsets in alphabetical order */ |
65 | board_ahci_mcp65, | 66 | board_ahci_mcp65, |
@@ -132,6 +133,14 @@ static const struct ata_port_info ahci_port_info[] = { | |||
132 | .udma_mask = ATA_UDMA6, | 133 | .udma_mask = ATA_UDMA6, |
133 | .port_ops = &ahci_ops, | 134 | .port_ops = &ahci_ops, |
134 | }, | 135 | }, |
136 | [board_ahci_yes_fbs] = | ||
137 | { | ||
138 | AHCI_HFLAGS (AHCI_HFLAG_YES_FBS), | ||
139 | .flags = AHCI_FLAG_COMMON, | ||
140 | .pio_mask = ATA_PIO4, | ||
141 | .udma_mask = ATA_UDMA6, | ||
142 | .port_ops = &ahci_ops, | ||
143 | }, | ||
135 | /* by chipsets */ | 144 | /* by chipsets */ |
136 | [board_ahci_mcp65] = | 145 | [board_ahci_mcp65] = |
137 | { | 146 | { |
@@ -362,6 +371,8 @@ static const struct pci_device_id ahci_pci_tbl[] = { | |||
362 | /* Marvell */ | 371 | /* Marvell */ |
363 | { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ | 372 | { PCI_VDEVICE(MARVELL, 0x6145), board_ahci_mv }, /* 6145 */ |
364 | { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv }, /* 6121 */ | 373 | { PCI_VDEVICE(MARVELL, 0x6121), board_ahci_mv }, /* 6121 */ |
374 | { PCI_DEVICE(0x1b4b, 0x9123), | ||
375 | .driver_data = board_ahci_yes_fbs }, /* 88se9128 */ | ||
365 | 376 | ||
366 | /* Promise */ | 377 | /* Promise */ |
367 | { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ | 378 | { PCI_VDEVICE(PROMISE, 0x3f20), board_ahci }, /* PDC42819 */ |