[parisc-linux] SuckyIO support

Matthew Wilcox matthew@wil.cx
Sat, 23 Dec 2000 09:15:21 +0000


On Tue, Dec 19, 2000 at 09:42:51AM +0000, Matthew Wilcox wrote:
> 
> Wow, this is a really sucky chip :-)
> 
> OK, here's a first stab at some support for it.  Could someone with a
> B/C/J `thousand' class machine please give it a try, and let me see the
> relevant portions of their bootlog?

See if this is a better quirk.

Index: drivers/pci/quirks.c
===================================================================
RCS file: /home/cvs/parisc/linux/drivers/pci/quirks.c,v
retrieving revision 1.6
diff -u -p -r1.6 quirks.c
--- quirks.c	2000/11/10 21:43:18	1.6
+++ quirks.c	2000/12/23 09:10:55
@@ -234,6 +234,32 @@ static void __init quirk_vt82c598_id(str
 	pci_read_config_word(dev, PCI_DEVICE_ID, &dev->device);
 }
 
+static void __init quirk_ns_87560(struct pci_dev *dev)
+{
+	static int count = 0; /* So we don't lose if they reuse their IDs. */
+	switch (dev->device)
+	{
+		case PCI_DEVICE_ID_NS_87415:
+		case PCI_DEVICE_ID_NS_87560_LIO:
+			count++;
+			break;
+		case PCI_DEVICE_ID_NS_87560_USB:
+			if (count != 2) {
+				count = 0;
+				break;
+			}
+			{
+				struct pci_dev *old_dev;
+				old_dev = pci_dev_b(dev->bus_list.prev);
+				old_dev->irq = dev->irq;
+				old_dev = pci_dev_b(old_dev->bus_list.prev);
+				old_dev->irq = dev->irq;
+				printk("Assigned IRQ %d to SuckyIO\n", dev->irq);
+			}
+			break;
+	}
+}
+
 /*
  *  The main table of quirks.
  */
@@ -269,6 +295,7 @@ static struct pci_fixup pci_fixups[] __i
 	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_AL,	PCI_DEVICE_ID_AL_M7101,		quirk_ali7101_acpi },
  	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_82371SB_2,	quirk_piix3_usb },
 	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_INTEL,	PCI_DEVICE_ID_INTEL_82371AB_2,	quirk_piix3_usb },
+	{ PCI_FIXUP_HEADER,	PCI_VENDOR_ID_NS,	PCI_ANY_ID,	quirk_ns_87560 },
 	{ 0 }
 };
 

-- 
Revolutions do not require corporate support.