i2c: axxia: 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:55 +0000 (15:10 +0100)
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
drivers/i2c/busses/i2c-axxia.c

index 768a598d8d03add09e3a0e454e031d3f728f7a2b..488c5d3bf9dba718eec541b317d0f125b4aa3fa0 100644 (file)
@@ -336,11 +336,6 @@ static int axxia_i2c_xfer_msg(struct axxia_i2c_dev *idev, struct i2c_msg *msg)
        u32 addr_1, addr_2;
        int ret;
 
-       if (msg->len > 255) {
-               dev_warn(idev->dev, "unsupported length %u\n", msg->len);
-               return -EINVAL;
-       }
-
        idev->msg = msg;
        idev->msg_xfrd = 0;
        idev->msg_err = 0;
@@ -454,6 +449,11 @@ static const struct i2c_algorithm axxia_i2c_algo = {
        .functionality = axxia_i2c_func,
 };
 
+static struct i2c_adapter_quirks axxia_i2c_quirks = {
+       .max_read_len = 255,
+       .max_write_len = 255,
+};
+
 static int axxia_i2c_probe(struct platform_device *pdev)
 {
        struct device_node *np = pdev->dev.of_node;
@@ -511,6 +511,7 @@ static int axxia_i2c_probe(struct platform_device *pdev)
        strlcpy(idev->adapter.name, pdev->name, sizeof(idev->adapter.name));
        idev->adapter.owner = THIS_MODULE;
        idev->adapter.algo = &axxia_i2c_algo;
+       idev->adapter.quirks = &axxia_i2c_quirks;
        idev->adapter.dev.parent = &pdev->dev;
        idev->adapter.dev.of_node = pdev->dev.of_node;