aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2010-01-18 02:20:07 -0500
committerDavid S. Miller <davem@davemloft.net>2010-01-19 04:41:59 -0500
commit5b6c82ea0fd130a9f0bb7f4d86f6dbbf2fdaaa04 (patch)
treefa40bd14e23624739ea81106be6ba66770fc1fea /drivers/ide
parentf931a5d5785d7b7c44871bd7ad2762e29dfddf29 (diff)
via82cxxx: add support for vt8261 and future chips
Based on commit e4d866c for pata_via host driver. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/via82cxxx.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c
index 46e8ddbdf031..1a3214389ffb 100644
--- a/drivers/ide/via82cxxx.c
+++ b/drivers/ide/via82cxxx.c
@@ -75,6 +75,7 @@ static struct via_isa_bridge {
75 { "vx855", PCI_DEVICE_ID_VIA_VX855, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA }, 75 { "vx855", PCI_DEVICE_ID_VIA_VX855, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA },
76 { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA }, 76 { "vx800", PCI_DEVICE_ID_VIA_VX800, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA },
77 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA }, 77 { "cx700", PCI_DEVICE_ID_VIA_CX700, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST | VIA_SATA_PATA },
78 { "vt8261", PCI_DEVICE_ID_VIA_8261, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
78 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 79 { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
79 { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 80 { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
80 { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, 81 { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
@@ -97,6 +98,7 @@ static struct via_isa_bridge {
97 { "vt82c586", PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, 0x00, VIA_SET_FIFO }, 98 { "vt82c586", PCI_DEVICE_ID_VIA_82C586_0, 0x00, 0x0f, 0x00, VIA_SET_FIFO },
98 { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, 0x00, VIA_SET_FIFO | VIA_NO_UNMASK }, 99 { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, 0x00, VIA_SET_FIFO | VIA_NO_UNMASK },
99 { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, 0x00, VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID }, 100 { "vt82c576", PCI_DEVICE_ID_VIA_82C576, 0x00, 0x2f, 0x00, VIA_SET_FIFO | VIA_NO_UNMASK | VIA_BAD_ID },
101 { "vtxxxx", PCI_DEVICE_ID_VIA_ANON, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
100 { NULL } 102 { NULL }
101}; 103};
102 104
@@ -205,7 +207,8 @@ static struct via_isa_bridge *via_config_find(struct pci_dev **isa)
205{ 207{
206 struct via_isa_bridge *via_config; 208 struct via_isa_bridge *via_config;
207 209
208 for (via_config = via_isa_bridges; via_config->id; via_config++) 210 for (via_config = via_isa_bridges;
211 via_config->id != PCI_DEVICE_ID_VIA_ANON; via_config++)
209 if ((*isa = pci_get_device(PCI_VENDOR_ID_VIA + 212 if ((*isa = pci_get_device(PCI_VENDOR_ID_VIA +
210 !!(via_config->flags & VIA_BAD_ID), 213 !!(via_config->flags & VIA_BAD_ID),
211 via_config->id, NULL))) { 214 via_config->id, NULL))) {
@@ -467,11 +470,6 @@ static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_i
467 * Find the ISA bridge and check we know what it is. 470 * Find the ISA bridge and check we know what it is.
468 */ 471 */
469 via_config = via_config_find(&isa); 472 via_config = via_config_find(&isa);
470 if (!via_config->id) {
471 printk(KERN_WARNING DRV_NAME " %s: unknown chipset, skipping\n",
472 pci_name(dev));
473 return -ENODEV;
474 }
475 473
476 /* 474 /*
477 * Print the boot message. 475 * Print the boot message.