[PATCH] via82cxxx: add VIA VT6410 IDE support
authorMathias Kretschmer <posting@blx4.net>
Sat, 19 Nov 2005 20:32:38 +0000 (21:32 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Sat, 19 Nov 2005 20:32:38 +0000 (21:32 +0100)
From: Mathias Kretschmer <posting@blx4.net>

Signed-off-by: Daniel Drake <dsd@gentoo.org>
Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/pci/via82cxxx.c
include/linux/pci_ids.h

index cee2c37..7161ce0 100644 (file)
@@ -79,6 +79,7 @@ static struct via_isa_bridge {
        u8 rev_max;
        u16 flags;
 } via_isa_bridges[] = {
+       { "vt6410",     PCI_DEVICE_ID_VIA_6410,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8237",     PCI_DEVICE_ID_VIA_8237,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8235",     PCI_DEVICE_ID_VIA_8235,     0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
        { "vt8233a",    PCI_DEVICE_ID_VIA_8233A,    0x00, 0x2f, VIA_UDMA_133 | VIA_BAD_AST },
@@ -467,24 +468,35 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
        hwif->drives[1].autodma = hwif->autodma;
 }
 
-static ide_pci_device_t via82cxxx_chipset __devinitdata = {
-       .name           = "VP_IDE",
-       .init_chipset   = init_chipset_via82cxxx,
-       .init_hwif      = init_hwif_via82cxxx,
-       .channels       = 2,
-       .autodma        = NOAUTODMA,
-       .enablebits     = {{0x40,0x02,0x02}, {0x40,0x01,0x01}},
-       .bootable       = ON_BOARD,
+static ide_pci_device_t via82cxxx_chipsets[] __devinitdata = {
+       {       /* 0 */
+               .name           = "VP_IDE",
+               .init_chipset   = init_chipset_via82cxxx,
+               .init_hwif      = init_hwif_via82cxxx,
+               .channels       = 2,
+               .autodma        = NOAUTODMA,
+               .enablebits     = {{0x40,0x02,0x02}, {0x40,0x01,0x01}},
+               .bootable       = ON_BOARD
+       },{     /* 1 */
+               .name           = "VP_IDE",
+               .init_chipset   = init_chipset_via82cxxx,
+               .init_hwif      = init_hwif_via82cxxx,
+               .channels       = 2,
+               .autodma        = AUTODMA,
+               .enablebits     = {{0x00,0x00,0x00}, {0x00,0x00,0x00}},
+               .bootable       = ON_BOARD,
+       }
 };
 
 static int __devinit via_init_one(struct pci_dev *dev, const struct pci_device_id *id)
 {
-       return ide_setup_pci_device(dev, &via82cxxx_chipset);
+       return ide_setup_pci_device(dev, &via82cxxx_chipsets[id->driver_data]);
 }
 
 static struct pci_device_id via_pci_tbl[] = {
        { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
        { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+       { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_6410,     PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
        { 0, },
 };
 MODULE_DEVICE_TABLE(pci, via_pci_tbl);
index 7b387fa..e34d96d 100644 (file)
 #define PCI_DEVICE_ID_VIA_8703_51_0    0x3148
 #define PCI_DEVICE_ID_VIA_8237_SATA    0x3149
 #define PCI_DEVICE_ID_VIA_XN266                0x3156
+#define PCI_DEVICE_ID_VIA_6410         0x3164
 #define PCI_DEVICE_ID_VIA_8754C_0      0x3168
 #define PCI_DEVICE_ID_VIA_8235         0x3177
 #define PCI_DEVICE_ID_VIA_8385_0       0x3188