Re: via 6420 pata/sata controller

kern.petr
2005-03-04T14:11:13Z

I downloaded new kernel 2.6.11, applied your's via82cxxx.c patch and
compiled it (.config was derived "make oldconfig" from 2.6.8 kernel from
Debian Sarge 3.1).

I created initrd.img with this settings:
/etc/mkinitrd/mkinitrd.conf
--- cut here ---
MODULES=dep
--- cut here ---

/etc/mkinitrd/modules
###
jbd
ext3
ide-core
via82cxxx

I boot PC with this settings:
/etc/modules
###
ide-cd
via82cxxx

Results:
Everything is the same, dmesg, lspci, lspci -n, cat /proc/ioports, lsmod
as the last email.

Controller still don't working :'(.

PS: I don't add anything into pci_ids.h, I only applied your's
via82cxxx.c patch:
#define PCI_DEVICE_ID_VIA_6420 0x4149

Your's Sincerely
Petr Novák
kern.petr@seznam.cz

Jeff Garzik napsal(a):

> If I had to guess, I would try the attached patch. The via82cxxx.c
> driver is a bit annoying in that, here we do not talk to the ISA
> bridge but to the PCI device 0x4149 itself.
>
> 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);
>