Re: Patch to make VIA sata board bootable again.

Johnny Strom
2006-09-01T10:48:54Z

[-- Attachment #1: Type: text/plain, Size: 942 bytes --]

Andrew Morton wrote:
> On Fri, 01 Sep 2006 11:15:17 +0300
> Johnny Strom <johnny.strom@osp.fi> 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

[-- Attachment #2: quirks.c-via-fix.diff --]
[-- Type: text/x-patch, Size: 1093 bytes --]

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