|
@@ -331,11 +331,23 @@ exit:
|
|
|
static int __init smsc47b397_find(unsigned short *addr)
|
|
|
{
|
|
|
u8 id, rev;
|
|
|
+ char *name;
|
|
|
|
|
|
superio_enter();
|
|
|
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;
|
|
|
}
|
|
@@ -348,8 +360,7 @@ static int __init smsc47b397_find(unsigned short *addr)
|
|
|
|
|
|
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;
|