i2c: dln2: make use of the new infrastructure for quirks
authorWolfram Sang <wsa@the-dreams.de>
Wed, 7 Jan 2015 11:24:10 +0000 (12:24 +0100)
committerWolfram Sang <wsa@the-dreams.de>
Fri, 13 Mar 2015 14:10:56 +0000 (15:10 +0100)
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-dln2.c

index b3fb86af4cbb14d0cf75cfbc90e53b53382eab9b..b6f9ba7eb175641d12be32664c7172091c43ea6f 100644 (file)
@@ -144,7 +144,6 @@ static int dln2_i2c_xfer(struct i2c_adapter *adapter,
 {
        struct dln2_i2c *dln2 = i2c_get_adapdata(adapter);
        struct i2c_msg *pmsg;
-       struct device *dev = &dln2->adapter.dev;
        int i;
 
        for (i = 0; i < num; i++) {
@@ -152,11 +151,6 @@ static int dln2_i2c_xfer(struct i2c_adapter *adapter,
 
                pmsg = &msgs[i];
 
-               if (pmsg->len > DLN2_I2C_MAX_XFER_SIZE) {
-                       dev_warn(dev, "maximum transfer size exceeded\n");
-                       return -EOPNOTSUPP;
-               }
-
                if (pmsg->flags & I2C_M_RD) {
                        ret = dln2_i2c_read(dln2, pmsg->addr, pmsg->buf,
                                            pmsg->len);
@@ -187,6 +181,11 @@ static const struct i2c_algorithm dln2_i2c_usb_algorithm = {
        .functionality = dln2_i2c_func,
 };
 
+static struct i2c_adapter_quirks dln2_i2c_quirks = {
+       .max_read_len = DLN2_I2C_MAX_XFER_SIZE,
+       .max_write_len = DLN2_I2C_MAX_XFER_SIZE,
+};
+
 static int dln2_i2c_probe(struct platform_device *pdev)
 {
        int ret;
@@ -209,6 +208,7 @@ static int dln2_i2c_probe(struct platform_device *pdev)
        dln2->adapter.owner = THIS_MODULE;
        dln2->adapter.class = I2C_CLASS_HWMON;
        dln2->adapter.algo = &dln2_i2c_usb_algorithm;
+       dln2->adapter.quirks = &dln2_i2c_quirks;
        dln2->adapter.dev.parent = dev;
        i2c_set_adapdata(&dln2->adapter, dln2);
        snprintf(dln2->adapter.name, sizeof(dln2->adapter.name), "%s-%s-%d",