summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/pci/quirks.c1
-rw-r--r--drivers/scsi/ata_piix.c14
2 files changed, 15 insertions, 0 deletions
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index 1cfe9538fd1..15a39805168 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1189,6 +1189,7 @@ static void __devinit quirk_intel_ide_combined(struct pci_dev *pdev)
case 0x2651:
case 0x2652:
case 0x2653:
+ case 0x2680: /* ESB2 */
ich = 6;
break;
case 0x27c0:
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c
index ce19728aa8a..3867f91ef8c 100644
--- a/drivers/scsi/ata_piix.c
+++ b/drivers/scsi/ata_piix.c
@@ -61,6 +61,7 @@ enum {
ich6_sata = 3,
ich6_sata_rm = 4,
ich7_sata = 5,
+ esb2_sata = 6,
};
static int piix_init_one (struct pci_dev *pdev,
@@ -93,6 +94,7 @@ static struct pci_device_id piix_pci_tbl[] = {
{ 0x8086, 0x2653, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich6_sata_rm },
{ 0x8086, 0x27c0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
{ 0x8086, 0x27c4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich7_sata },
+ { 0x8086, 0x2680, PCI_ANY_ID, PCI_ANY_ID, 0, 0, esb2_sata },
{ } /* terminate list */
};
@@ -256,6 +258,18 @@ static struct ata_port_info piix_port_info[] = {
.udma_mask = 0x7f, /* udma0-6 */
.port_ops = &piix_sata_ops,
},
+
+ /* esb2_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[] = {