diff options
Diffstat (limited to 'drivers/ata/ata_piix.c')
-rw-r--r-- | drivers/ata/ata_piix.c | 41 |
1 files changed, 7 insertions, 34 deletions
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c index 5719704eb0ee..720174d628fa 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 */ |
@@ -227,7 +226,7 @@ static const struct pci_device_id piix_pci_tbl[] = { | |||
227 | /* 82801GB/GR/GH (ICH7, identical to ICH6) */ | 226 | /* 82801GB/GR/GH (ICH7, identical to ICH6) */ |
228 | { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, | 227 | { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, |
229 | /* 2801GBM/GHM (ICH7M, identical to ICH6M) */ | 228 | /* 2801GBM/GHM (ICH7M, identical to ICH6M) */ |
230 | { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7m_sata_ahci }, | 229 | { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6m_sata_ahci }, |
231 | /* Enterprise Southbridge 2 (where's the datasheet?) */ | 230 | /* Enterprise Southbridge 2 (where's the datasheet?) */ |
232 | { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, | 231 | { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, |
233 | /* SATA Controller 1 IDE (ICH8, no datasheet yet) */ | 232 | /* SATA Controller 1 IDE (ICH8, no datasheet yet) */ |
@@ -399,23 +398,10 @@ static const struct piix_map_db ich6m_map_db = { | |||
399 | .mask = 0x3, | 398 | .mask = 0x3, |
400 | .port_enable = 0x5, | 399 | .port_enable = 0x5, |
401 | .present_shift = 4, | 400 | .present_shift = 4, |
402 | .map = { | ||
403 | /* PM PS SM SS MAP */ | ||
404 | { P0, P2, RV, RV }, /* 00b */ | ||
405 | { RV, RV, RV, RV }, | ||
406 | { P0, P2, IDE, IDE }, /* 10b */ | ||
407 | { RV, RV, RV, RV }, | ||
408 | }, | ||
409 | }; | ||
410 | |||
411 | static const struct piix_map_db ich7m_map_db = { | ||
412 | .mask = 0x3, | ||
413 | .port_enable = 0x5, | ||
414 | .present_shift = 4, | ||
415 | 401 | ||
416 | /* Map 01b isn't specified in the doc but some notebooks use | 402 | /* Map 01b isn't specified in the doc but some notebooks use |
417 | * it anyway. ATM, the only case spotted carries subsystem ID | 403 | * it anyway. MAP 01b have been spotted on both ICH6M and |
418 | * 1025:0107. This is the only difference from ich6m. | 404 | * ICH7M. |
419 | */ | 405 | */ |
420 | .map = { | 406 | .map = { |
421 | /* PM PS SM SS MAP */ | 407 | /* PM PS SM SS MAP */ |
@@ -432,9 +418,9 @@ static const struct piix_map_db ich8_map_db = { | |||
432 | .present_shift = 8, | 418 | .present_shift = 8, |
433 | .map = { | 419 | .map = { |
434 | /* PM PS SM SS MAP */ | 420 | /* PM PS SM SS MAP */ |
435 | { P0, NA, P1, NA }, /* 00b (hardwired) */ | 421 | { P0, P2, P1, P3 }, /* 00b (hardwired when in AHCI) */ |
436 | { RV, RV, RV, RV }, | 422 | { RV, RV, RV, RV }, |
437 | { RV, RV, RV, RV }, /* 10b (never) */ | 423 | { IDE, IDE, NA, NA }, /* 10b (IDE mode) */ |
438 | { RV, RV, RV, RV }, | 424 | { RV, RV, RV, RV }, |
439 | }, | 425 | }, |
440 | }; | 426 | }; |
@@ -445,7 +431,6 @@ static const struct piix_map_db *piix_map_db_table[] = { | |||
445 | [ich6_sata] = &ich6_map_db, | 431 | [ich6_sata] = &ich6_map_db, |
446 | [ich6_sata_ahci] = &ich6_map_db, | 432 | [ich6_sata_ahci] = &ich6_map_db, |
447 | [ich6m_sata_ahci] = &ich6m_map_db, | 433 | [ich6m_sata_ahci] = &ich6m_map_db, |
448 | [ich7m_sata_ahci] = &ich7m_map_db, | ||
449 | [ich8_sata_ahci] = &ich8_map_db, | 434 | [ich8_sata_ahci] = &ich8_map_db, |
450 | }; | 435 | }; |
451 | 436 | ||
@@ -556,19 +541,7 @@ static struct ata_port_info piix_port_info[] = { | |||
556 | .port_ops = &piix_sata_ops, | 541 | .port_ops = &piix_sata_ops, |
557 | }, | 542 | }, |
558 | 543 | ||
559 | /* ich7m_sata_ahci: 10 */ | 544 | /* ich8_sata_ahci: 10 */ |
560 | { | ||
561 | .sht = &piix_sht, | ||
562 | .flags = ATA_FLAG_SATA | | ||
563 | PIIX_FLAG_CHECKINTR | PIIX_FLAG_SCR | | ||
564 | PIIX_FLAG_AHCI, | ||
565 | .pio_mask = 0x1f, /* pio0-4 */ | ||
566 | .mwdma_mask = 0x07, /* mwdma0-2 */ | ||
567 | .udma_mask = 0x7f, /* udma0-6 */ | ||
568 | .port_ops = &piix_sata_ops, | ||
569 | }, | ||
570 | |||
571 | /* ich8_sata_ahci: 11 */ | ||
572 | { | 545 | { |
573 | .sht = &piix_sht, | 546 | .sht = &piix_sht, |
574 | .flags = ATA_FLAG_SATA | | 547 | .flags = ATA_FLAG_SATA | |