Skip to contentSkip to conversation

i810 watchdog driver: support for i815/i8[2456]0 chipsets

PATCH New [email protected] 1 participant 1 message Jun 21, 2001 Char and misc drivers

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i810 watchdog driver: support for i815/i8[2456]0 chipsets

Hi all,

this small patch (2.4.5-ac16) adds Intel i815/i820/i840/i850/i860 chipsets support into i810 TCO watchdog driver, also MODULE_DEVICE_TABLE added.

Should work but untested (can't stop server just to test it :)

Best regards.

Signature · 2 lines
Andrey Panin            | Embedded systems software engineer
[email protected]        | PGP key: http://www.orbita1.ru/~pazke/AndreyPanin.asc
drivers/char/i810-tco.c +26 -4
diff -ur linux.vanilla/drivers/char/i810-tco.c linux/drivers/char/i810-tco.c
@@ -232,18 +232,40 @@
 	}
 }
 
+/*
+ * Data for PCI driver interface
+ *
+ * This data only exists for exporting the supported
+ * PCI ids via MODULE_DEVICE_TABLE.  We do not actually
+ * register a pci_driver, because someone else might one day
+ * want to register another driver on the same PCI id.
+ */
+static struct pci_device_id i810tco_pci_tbl[] __initdata = {
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0,	PCI_ANY_ID, PCI_ANY_ID, },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0,	PCI_ANY_ID, PCI_ANY_ID, },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0,	PCI_ANY_ID, PCI_ANY_ID, },
+	{ PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_10,	PCI_ANY_ID, PCI_ANY_ID, },
+	{ 0, },
+};
+MODULE_DEVICE_TABLE (pci, i810tco_pci_tbl);
+
 static struct pci_dev *i810tco_pci;
 
 static unsigned char i810tco_getdevice (void)
 {
+	struct pci_dev *dev;
 	u8 val1, val2;
 	u16 badr;
 	/*
-	 *      Find the PCI device which has vendor id 0x8086
-	 *      and device ID 0x2410
+	 *      Find the PCI device
 	 */
-	i810tco_pci = pci_find_device (PCI_VENDOR_ID_INTEL,
-				       PCI_DEVICE_ID_INTEL_82801AA_0, NULL);
+
+	pci_for_each_dev(dev) {
+		i810tco_pci = pci_match_device(i810tco_pci_tbl, dev);
+		if (i810tco_pci != NULL)
+			break;
+	}
+
 	if (i810tco_pci) {
 		/*
 		 *      Find the ACPI base I/O address which is the base