I still do not understand what will break in this case - won't the
external device just ignore the value which the quirk will write into
its PCI_INTERRUPT_LINE register?
Can someone point me at examples of breakage caused by the original
quirk matching non-builtin devices? The examples of breakage caused by
missing devices are everywhere now :(
Now this changelog is obviously wrong...
This table is even more incomplete than the original. I found these ISA
bridge IDs from VIA in my copy of pci.ids:
0586 VT82C586/A/B PCI-to-ISA [Apollo VP]
0596 VT82C596 ISA [Mobile South]
0686 VT82C686 [Apollo Super South]
3074 VT8233 PCI to ISA Bridge
3109 VT8233C PCI to ISA Bridge
3147 VT8233A ISA Bridge
3177 VT8235 ISA Bridge
3227 VT8237 ISA bridge [KT600/K8T800/K8T890 South]
3287 VT8251 PCI to ISA Bridge
3337 VT8237A PCI to ISA Bridge
8231 VT8231 [PCI-to-ISA Bridge]
The major problem with this approach is that this PCI ID list will
inevitably get stale, and there will be no easy way to boot the kernel
on a newer system. And there is no sign that VIA turns away from their
habit of using PCI_INTERRUPT_LINE for IRQ routing...
However, what about triggering the quirk on any ISA bridge from VIA:
{
.vendor = PCI_VENDOR_ID_VIA,
.device = PCI_ANY_ID,
.subvendor = PCI_ANY_ID,
.subdevice = PCI_ANY_ID,
.class = PCI_CLASS_BRIDGE_ISA << 8,
.class_mask = 0xffff00,
}