diff -Naur linux-2.4.25-libata1/drivers/scsi/ata_piix.c linux-2.4.25-libata1-ich6r/drivers/scsi/ata_piix.c --- linux-2.4.25-libata1/drivers/scsi/ata_piix.c 2004-02-20 22:41:05.000000000 +0000 +++ linux-2.4.25-libata1-ich6r/drivers/scsi/ata_piix.c 2004-02-20 23:03:57.000000000 +0000 @@ -45,6 +45,7 @@ ich5_pata = 0, ich5_sata = 1, piix4_pata = 2, + ich6_sata = 3, }; static int piix_init_one (struct pci_dev *pdev, @@ -71,6 +72,7 @@ { 0x8086, 0x24df, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata }, { 0x8086, 0x25a3, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata }, { 0x8086, 0x25b0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich5_sata }, + { 0x8086, 0x2652, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata }, { } /* terminate list */ }; @@ -175,6 +177,17 @@ .udma_mask = ATA_UDMA_MASK_40C, /* FIXME: cbl det */ .port_ops = &piix_pata_ops, }, + + /* ich6_sata */ + { + .sht = &piix_sht, + .host_flags = ATA_FLAG_SATA | PIIX_FLAG_COMBINED | + ATA_FLAG_SRST | ATA_FLAG_SLAVE_POSS | + ATA_FLAG_NO_LEGACY, + .pio_mask = 0x03, /* pio3-4 */ + .udma_mask = 0x7f, /* udma0-6 ; FIXME */ + .port_ops = &piix_sata_ops, + }, }; static struct pci_bits piix_enable_bits[] = {