Re: Patch to make VIA sata board bootable again.

From: Johnny Strom
Date: Fri Sep 01 2006 - 06:46:04 EST


Andrew Morton wrote:
On Fri, 01 Sep 2006 11:15:17 +0300
Johnny Strom <johnny.strom@xxxxxx> wrote:



Hello

The quirks.c update that went into 2.6.16.17 made an VIA machine here non bootable from an sata drive (via_sata), the error is:

"ATA1 qc timout"
"Failed to set xfermode".


argh.

Does 2.6.18-rc5 work?


No it is the same problem with 2.6.18-rc5.


And later kernel panic becouse no sata disk was found.
I tracked it down to the quirk update in 2.6.16.17. Below is a patch against 2.6.17.11 that reverses the uppdate and makse the system bootable again.

Another option is to find out the PCI_DEVICE_ID_VIA for the motherboard in question but I could not get that info. Dose someone have an idea how to find that info? then I can provide an patch that adds the right PCI_DEVICE_ID_VIA for my motherboard.


That's wordwrapped.


Attached an new diff.


Johnny diff -ur linux-2.6.17.11-org/drivers/pci/quirks.c linux-2.6.17.11/drivers/pci/quirks.c
--- linux-2.6.17.11-org/drivers/pci/quirks.c 2006-09-01 10:38:31.135747500 +0300
+++ linux-2.6.17.11/drivers/pci/quirks.c 2006-09-01 10:42:28.870605000 +0300
@@ -652,13 +652,7 @@
pci_write_config_byte(dev, PCI_INTERRUPT_LINE, new_irq);
}
}
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_0, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_2, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_3, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_4, quirk_via_irq);
-DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, quirk_via_irq);
+DECLARE_PCI_FIXUP_ENABLE(PCI_VENDOR_ID_VIA, PCI_ANY_ID, quirk_via_irq);

/*
* VIA VT82C598 has its device ID settable and many BIOSes