--- lm_sensors-2.7.0/kernel/busses/i2c-sis645.c	2002-12-01 22:02:46.000000000 +0100
+++ lm_sensors-2.7.0.new/kernel/busses/i2c-sis645.c	2003-02-26 23:04:17.000000000 +0100
@@ -62,6 +62,11 @@
 #define PCI_DEVICE_ID_SI_646 0x0646
 #endif
 
+/* SiS648 north bridge */
+#ifndef PCI_DEVICE_ID_SI_648
+#define PCI_DEVICE_ID_SI_648 0x0648
+#endif
+
 /* SiS650 north bridge */
 #ifndef PCI_DEVICE_ID_SI_650
 #define PCI_DEVICE_ID_SI_650 0x0650
@@ -77,6 +82,11 @@
 #define PCI_DEVICE_ID_SI_961 0x0961
 #endif
 
+/* SiS963 south bridge */
+#ifndef PCI_DEVICE_ID_SI_963
+#define PCI_DEVICE_ID_SI_963 0x0963
+#endif
+
 #define PCI_DEVICE_ID_SI_SMBUS 0x16
 
 /* base address register in PCI config space */
@@ -262,6 +272,11 @@
 		printk("i2c-sis645.o: Found SiS961 south bridge.\n");
 	}
 
+	if (SIS645_ISA_dev = pci_find_device(PCI_VENDOR_ID_SI,
+		        PCI_DEVICE_ID_SI_963, NULL)) {
+	        printk("i2c-sis645.o: Found SiS963 south bridge.\n");
+        }
+
 	else if (SIS645_ISA_dev = pci_find_device(PCI_VENDOR_ID_SI,
 			PCI_DEVICE_ID_SI_503, NULL)) {
 		printk("i2c-sis645.o: Found SiS south bridge in compatability mode(?)\n");

