Index: /lm-sensors/trunk/kernel/busses/i2c-piix4.c
===================================================================
--- /lm-sensors/trunk/kernel/busses/i2c-piix4.c	(revision 4050)
+++ /lm-sensors/trunk/kernel/busses/i2c-piix4.c	(revision 4051)
@@ -104,9 +104,4 @@
 		 "EXTREMELY DANGEROUS!");
 
-static int fix_hstcfg = 0;
-MODULE_PARM(fix_hstcfg, "i");
-MODULE_PARM_DESC(fix_hstcfg,
-		 "Fix config register. Needed on some boards (Force CPCI735).");
-
 static int piix4_transaction(void);
 
@@ -172,20 +167,4 @@
 
 	pci_read_config_byte(PIIX4_dev, SMBHSTCFG, &temp);
-
-	/* Some BIOS will set up the chipset incorrectly and leave a register
-	   in an undefined state (causing I2C to act very strangely). */
-	if (temp & 0x02) {
-		if (fix_hstcfg) {
-			printk(KERN_INFO "i2c-piix4.o: Working around buggy "
-				"BIOS (I2C)\n");
-			temp &= 0xfd;
-			pci_write_config_byte(PIIX4_dev, SMBHSTCFG, temp);
-		} else {
-			printk(KERN_INFO "i2c-piix4.o: Unusual config register "
-				"value\n");
-			printk(KERN_INFO "i2c-piix4.o: Try using fix_hstcfg=1 "
-				"if you experience problems\n");
-		}
-	}
 
 	/* If force_addr is set, we program the new address here. Just to make
@@ -221,5 +200,5 @@
 
 #ifdef DEBUG
-	if ((temp & 0x0E) == 8)
+	if (((temp & 0x0E) == 8) || ((temp & 0x0E) == 2))
 		printk(KERN_DEBUG "i2c-piix4.o: Using Interrupt 9 for "
 			"SMBus.\n");
Index: /lm-sensors/trunk/doc/busses/i2c-piix4
===================================================================
--- /lm-sensors/trunk/doc/busses/i2c-piix4	(revision 4050)
+++ /lm-sensors/trunk/doc/busses/i2c-piix4	(revision 4051)
@@ -26,6 +26,4 @@
 * force_addr: int
   Forcibly enable the PIIX4 at the given address. EXTREMELY DANGEROUS!
-* fix_hstcfg: int
-  Fix config register. Needed on some boards (Force CPCI735).
 
 
@@ -72,6 +70,18 @@
 and the Victory766 are identical to the PIIX4 in I2C/SMBus support.
 
-A few OSB4 southbridges are known to be misconfigured by the BIOS. In this
-case, you have you use the fix_hstcfg module parameter. Do not use it
-unless you know you have to, because in some cases it also breaks
-configuration on southbridges that don't need it.
+If you own Force CPCI735 motherboard or other OSB4 based systems you may need
+to change the SMBus Interrupt Select register so the SMBus controller uses
+the SMI mode.
+
+1) Use lspci command and locate the PCI device with the SMBus controller:
+   00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 4f)
+   The line may vary for different chipsets. Please consult the driver source
+   for all possible PCI ids (and lspci -n to match them). Lets assume the
+   device is located at 00:0f.0.
+2) Now you just need to change the value in 0xD2 register. Get it first with
+   command: lspci -xxx -s 00:0f.0
+   If the value is 0x3 then you need to change it to 0x1
+   setpci  -s 00:0f.0 d2.b=1
+
+Please note that you don't need to do that in all cases, just when the SMBus is
+not working properly.
Index: /lm-sensors/trunk/CHANGES
===================================================================
--- /lm-sensors/trunk/CHANGES	(revision 4050)
+++ /lm-sensors/trunk/CHANGES	(revision 4051)
@@ -18,4 +18,5 @@
   Module i2c-piix4: Add ServerWorks HT-1000 support (2.6 backport)
                     Add ATI IXP200, IXP300, IXP400 support (2.6 backport)
+                    Drop the fix_hstcfg parameter (2.6 backport)
   Module i2c-viapro: Fix compilation with kernels < 2.4.21
   Module lm83: Add LM82 support (2.6 backport)
