hwmon: (dme1737) probe all addresses
authorJuerg Haefliger <juergh@gmail.com>
Fri, 4 Apr 2008 04:34:19 +0000 (21:34 -0700)
committerMark M. Hoffman <mhoffman@lightlink.com>
Fri, 1 Aug 2008 03:44:02 +0000 (23:44 -0400)
This patch adds a module load parameter to enable probing of
non-standard LPC addresses 0x162e and 0x164e when scanning for supported
ISA chips.

Signed-Off-By: Juerg Haefliger <juergh at gmail.com>
Acked-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
Documentation/hwmon/dme1737
drivers/hwmon/dme1737.c

index 8f446070e64a56ebc2c19a98c3f5e40688648b06..b1fe009994396030943ad570ddb84abe42611de5 100644 (file)
@@ -22,6 +22,10 @@ Module Parameters
                        and PWM output control functions. Using this parameter
                        shouldn't be required since the BIOS usually takes care
                        of this.
+* probe_all_addr: bool Include non-standard LPC addresses 0x162e and 0x164e
+                       when probing for ISA devices. This is required for the
+                       following boards:
+                       - VIA EPIA SN18000
 
 Note that there is no need to use this parameter if the driver loads without
 complaining. The driver will say so if it is necessary.
index c24b5b370daa81a9d4275ac159886d53a96ee3d7..5a3d41fbdb3c65eb4a20932af5f800e3ca6fd450 100644 (file)
@@ -48,6 +48,11 @@ static unsigned short force_id;
 module_param(force_id, ushort, 0);
 MODULE_PARM_DESC(force_id, "Override the detected device ID");
 
+static int probe_all_addr;
+module_param(probe_all_addr, bool, 0);
+MODULE_PARM_DESC(probe_all_addr, "Include probing of non-standard LPC "
+                "addresses");
+
 /* Addresses to scan */
 static const unsigned short normal_i2c[] = {0x2c, 0x2d, 0x2e, I2C_CLIENT_END};
 
@@ -2430,7 +2435,10 @@ static int __init dme1737_init(void)
        }
 
        if (dme1737_isa_detect(0x2e, &addr) &&
-           dme1737_isa_detect(0x4e, &addr)) {
+           dme1737_isa_detect(0x4e, &addr) &&
+           (!probe_all_addr ||
+            (dme1737_isa_detect(0x162e, &addr) &&
+             dme1737_isa_detect(0x164e, &addr)))) {
                /* Return 0 if we didn't find an ISA device */
                return 0;
        }