aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/ata_piix.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ata/ata_piix.c')
-rw-r--r--drivers/ata/ata_piix.c37
1 files changed, 5 insertions, 32 deletions
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 4fad8d2382ca..8385387c49cd 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -126,8 +126,7 @@ enum {
126 ich6_sata = 7, 126 ich6_sata = 7,
127 ich6_sata_ahci = 8, 127 ich6_sata_ahci = 8,
128 ich6m_sata_ahci = 9, 128 ich6m_sata_ahci = 9,
129 ich7m_sata_ahci = 10, 129 ich8_sata_ahci = 10,
130 ich8_sata_ahci = 11,
131 130
132 /* constants for mapping table */ 131 /* constants for mapping table */
133 P0 = 0, /* port 0 */ 132 P0 = 0, /* port 0 */
@@ -228,7 +227,7 @@ static const struct pci_device_id piix_pci_tbl[] = {
228 /* 82801GB/GR/GH (ICH7, identical to ICH6) */ 227 /* 82801GB/GR/GH (ICH7, identical to ICH6) */
229 { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, 228 { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
230 /* 2801GBM/GHM (ICH7M, identical to ICH6M) */ 229 /* 2801GBM/GHM (ICH7M, identical to ICH6M) */
231 { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7m_sata_ahci }, 230 { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6m_sata_ahci },
232 /* Enterprise Southbridge 2 (where's the datasheet?) */ 231 /* Enterprise Southbridge 2 (where's the datasheet?) */
233 { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, 232 { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci },
234 /* SATA Controller 1 IDE (ICH8, no datasheet yet) */ 233 /* SATA Controller 1 IDE (ICH8, no datasheet yet) */
@@ -400,23 +399,10 @@ static const struct piix_map_db ich6m_map_db = {
400 .mask = 0x3, 399 .mask = 0x3,
401 .port_enable = 0x5, 400 .port_enable = 0x5,
402 .present_shift = 4, 401 .present_shift = 4,
403 .map = {
404 /* PM PS SM SS MAP */
405 { P0, P2, RV, RV }, /* 00b */
406 { RV, RV, RV, RV },
407 { P0, P2, IDE, IDE }, /* 10b */
408 { RV, RV, RV, RV },
409 },
410};
411
412static const struct piix_map_db ich7m_map_db = {
413 .mask = 0x3,
414 .port_enable = 0x5,
415 .present_shift = 4,
416 402
417 /* Map 01b isn't specified in the doc but some notebooks use 403 /* Map 01b isn't specified in the doc but some notebooks use
418 * it anyway. ATM, the only case spotted carries subsystem ID 404 * it anyway. MAP 01b have been spotted on both ICH6M and
419 * 1025:0107. This is the only difference from ich6m. 405 * ICH7M.
420 */ 406 */
421 .map = { 407 .map = {
422 /* PM PS SM SS MAP */ 408 /* PM PS SM SS MAP */
@@ -446,7 +432,6 @@ static const struct piix_map_db *piix_map_db_table[] = {
446 [ich6_sata] = &ich6_map_db, 432 [ich6_sata] = &ich6_map_db,
447 [ich6_sata_ahci] = &ich6_map_db, 433 [ich6_sata_ahci] = &ich6_map_db,
448 [ich6m_sata_ahci] = &ich6m_map_db, 434 [ich6m_sata_ahci] = &ich6m_map_db,
449 [ich7m_sata_ahci] = &ich7m_map_db,
450 [ich8_sata_ahci] = &ich8_map_db, 435 [ich8_sata_ahci] = &ich8_map_db,
451}; 436};
452 437
@@ -557,19 +542,7 @@ static struct ata_port_info piix_port_info[] = {
557 .port_ops = &piix_sata_ops, 542 .port_ops = &piix_sata_ops,
558 }, 543 },
559 544
560 /* ich7m_sata_ahci: 10 */ 545 /* ich8_sata_ahci: 10 */
561 {
562 .sht = &piix_sht,
563 .flags = ATA_FLAG_SATA |
564 PIIX_FLAG_CHECKINTR | PIIX_FLAG_SCR |
565 PIIX_FLAG_AHCI,
566 .pio_mask = 0x1f, /* pio0-4 */
567 .mwdma_mask = 0x07, /* mwdma0-2 */
568 .udma_mask = 0x7f, /* udma0-6 */
569 .port_ops = &piix_sata_ops,
570 },
571
572 /* ich8_sata_ahci: 11 */
573 { 546 {
574 .sht = &piix_sht, 547 .sht = &piix_sht,
575 .flags = ATA_FLAG_SATA | 548 .flags = ATA_FLAG_SATA |