Merge branch 'linus' into sched/core
[linux-3.10.git] / drivers / i2c / busses / scx200_acb.c
index f5e7a70..684395b 100644 (file)
@@ -31,6 +31,7 @@
 #include <linux/pci.h>
 #include <linux/delay.h>
 #include <linux/mutex.h>
+#include <linux/slab.h>
 #include <asm/io.h>
 
 #include <linux/scx200.h>
@@ -217,8 +218,10 @@ static void scx200_acb_machine(struct scx200_acb_iface *iface, u8 status)
        return;
 
  error:
-       dev_err(&iface->adapter.dev, "%s in state %s\n", errmsg,
-               scx200_acb_state_name[iface->state]);
+       dev_err(&iface->adapter.dev,
+               "%s in state %s (addr=0x%02x, len=%d, status=0x%02x)\n", errmsg,
+               scx200_acb_state_name[iface->state], iface->address_byte,
+               iface->len, status);
 
        iface->state = state_idle;
        iface->result = -EIO;
@@ -440,9 +443,8 @@ static __init struct scx200_acb_iface *scx200_create_iface(const char *text,
        i2c_set_adapdata(adapter, iface);
        snprintf(adapter->name, sizeof(adapter->name), "%s ACB%d", text, index);
        adapter->owner = THIS_MODULE;
-       adapter->id = I2C_HW_SMBUS_SCX200;
        adapter->algo = &scx200_acb_algorithm;
-       adapter->class = I2C_CLASS_HWMON;
+       adapter->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
        adapter->dev.parent = dev;
 
        mutex_init(&iface->mutex);
@@ -527,7 +529,7 @@ static int __init scx200_create_isa(const char *text, unsigned long base,
        if (iface == NULL)
                return -ENOMEM;
 
-       if (request_region(base, 8, iface->adapter.name) == 0) {
+       if (!request_region(base, 8, iface->adapter.name)) {
                printk(KERN_ERR NAME ": can't allocate io 0x%lx-0x%lx\n",
                       base, base + 8 - 1);
                rc = -EBUSY;