hwmon: (s3c-hwmon) Ignore invalid divider settings
[safe/jmp/linux-2.6] / drivers / hwmon / smsc47b397.c
index 54187bf..f46d936 100644 (file)
 #include <linux/err.h>
 #include <linux/init.h>
 #include <linux/mutex.h>
-#include <asm/io.h>
+#include <linux/acpi.h>
+#include <linux/io.h>
+
+static unsigned short force_id;
+module_param(force_id, ushort, 0);
+MODULE_PARM_DESC(force_id, "Override the detected device ID");
 
 static struct platform_device *pdev;
 
@@ -299,6 +304,10 @@ static int __init smsc47b397_device_add(unsigned short address)
        };
        int err;
 
+       err = acpi_check_resource_conflict(&res);
+       if (err)
+               goto exit;
+
        pdev = platform_device_alloc(DRVNAME, address);
        if (!pdev) {
                err = -ENOMEM;
@@ -334,7 +343,7 @@ static int __init smsc47b397_find(unsigned short *addr)
        char *name;
 
        superio_enter();
-       id = superio_inb(SUPERIO_REG_DEVID);
+       id = force_id ? force_id : superio_inb(SUPERIO_REG_DEVID);
 
        switch(id) {
        case 0x81: