If this doesn't work, I could probably whip together a quick PATA driver for libata that works on this hardware.
Jeff
===== drivers/ide/pci/via82cxxx.c 1.27 vs edited ===== --- 1.27/drivers/ide/pci/via82cxxx.c 2005-02-03 02:24:29 -05:00 +++ edited/drivers/ide/pci/via82cxxx.c 2005-03-02 01:28:26 -05:00 @@ -79,6 +79,7 @@ u8 rev_max; u16 flags; } via_isa_bridges[] = { + { "vt6420", 0x4149, 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 }, @@ -635,9 +636,10 @@ } 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}, - { 0, }, + { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C576_1) }, + { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1) }, + { PCI_DEVICE(PCI_VENDOR_ID_VIA, 0x4149) }, + { }, /* terminate list */ }; MODULE_DEVICE_TABLE(pci, via_pci_tbl);