From: Jason Gaston Add the Intel ICH8 DID's to the ata_piix.c and quirks.c file for IDE mode SATA support. Signed-off-by:  Jason Gaston Signed-off-by: Andrew Morton --- drivers/pci/quirks.c | 5 ++++- drivers/scsi/ata_piix.c | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff -puN drivers/pci/quirks.c~ata_piix-ide-mode-sata-patch-for-intel-ich8 drivers/pci/quirks.c --- devel/drivers/pci/quirks.c~ata_piix-ide-mode-sata-patch-for-intel-ich8 2006-01-10 14:45:51.000000000 -0800 +++ devel-akpm/drivers/pci/quirks.c 2006-01-10 14:45:51.000000000 -0800 @@ -1142,6 +1142,9 @@ static void __devinit quirk_intel_ide_co case 0x27c4: ich = 7; break; + case 0x2828: /* ICH8M */ + ich = 8; + break; default: /* we do not handle this PCI device */ return; @@ -1161,7 +1164,7 @@ static void __devinit quirk_intel_ide_co else return; /* not in combined mode */ } else { - WARN_ON((ich != 6) && (ich != 7)); + WARN_ON((ich != 6) && (ich != 7) && (ich != 8)); tmp &= 0x3; /* interesting bits 1:0 */ if (tmp & (1 << 0)) comb = (1 << 2); /* PATA port 0, SATA port 1 */ diff -puN drivers/scsi/ata_piix.c~ata_piix-ide-mode-sata-patch-for-intel-ich8 drivers/scsi/ata_piix.c --- devel/drivers/scsi/ata_piix.c~ata_piix-ide-mode-sata-patch-for-intel-ich8 2006-01-10 14:45:51.000000000 -0800 +++ devel-akpm/drivers/scsi/ata_piix.c 2006-01-10 14:45:51.000000000 -0800 @@ -122,6 +122,7 @@ enum { piix4_pata = 2, ich6_sata = 3, ich6_sata_ahci = 4, + ich8_sata = 5, PIIX_AHCI_DEVICE = 6, }; @@ -157,6 +158,9 @@ static const struct pci_device_id piix_p { 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, { 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_ahci }, + { 0x8086, 0x2820, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, + { 0x8086, 0x2825, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, + { 0x8086, 0x2828, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata }, { } /* terminate list */ }; @@ -313,6 +317,18 @@ static struct ata_port_info piix_port_in .udma_mask = 0x7f, /* udma0-6 */ .port_ops = &piix_sata_ops, }, + + /* ich8_sata */ + { + .sht = &piix_sht, + .host_flags = ATA_FLAG_SATA | ATA_FLAG_SRST | + PIIX_FLAG_COMBINED | PIIX_FLAG_CHECKINTR | + ATA_FLAG_SLAVE_POSS | PIIX_FLAG_AHCI, + .pio_mask = 0x1f, /* pio0-4 */ + .mwdma_mask = 0x07, /* mwdma0-2 */ + .udma_mask = 0x7f, /* udma0-6 */ + .port_ops = &piix_sata_ops, + }, }; static struct pci_bits piix_enable_bits[] = { _