Merge branch 'smsc47b397-new-id' into release
authorMark M. Hoffman <mhoffman@lightlink.com>
Thu, 1 May 2008 11:33:17 +0000 (07:33 -0400)
committerMark M. Hoffman <mhoffman@lightlink.com>
Thu, 1 May 2008 11:33:17 +0000 (07:33 -0400)
1  2 
drivers/hwmon/smsc47b397.c

  #include <linux/mutex.h>
  #include <asm/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;
  
  #define DRVNAME "smsc47b397"
@@@ -335,11 -331,23 +335,23 @@@ exit
  static int __init smsc47b397_find(unsigned short *addr)
  {
        u8 id, rev;
+       char *name;
  
        superio_enter();
 -      id = superio_inb(SUPERIO_REG_DEVID);
 +      id = force_id ? force_id : superio_inb(SUPERIO_REG_DEVID);
  
-       if ((id != 0x6f) && (id != 0x81) && (id != 0x85)) {
+       switch(id) {
+       case 0x81:
+               name = "SCH5307-NS";
+               break;
+       case 0x6f:
+               name = "LPC47B397-NC";
+               break;
+       case 0x85:
+       case 0x8c:
+               name = "SCH5317";
+               break;
+       default:
                superio_exit();
                return -ENODEV;
        }
  
        printk(KERN_INFO DRVNAME ": found SMSC %s "
                "(base address 0x%04x, revision %u)\n",
-               id == 0x81 ? "SCH5307-NS" : id == 0x85 ? "SCH5317" :
-              "LPC47B397-NC", *addr, rev);
+               name, *addr, rev);
  
        superio_exit();
        return 0;