Input: atmel_mxt_ts - improve device tree parsing
authorNick Dyer <nick.dyer@itdev.co.uk>
Tue, 4 Aug 2015 23:53:16 +0000 (16:53 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 5 Aug 2015 00:03:53 +0000 (17:03 -0700)
Use function rather than loop, define np to reduce wrapping.

Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/atmel_mxt_ts.c

index cf66ba1bbf0ca08cc479f2ef9544905066927079..08d9a0921798200bc46a7689cacd2f2977ca8542 100644 (file)
@@ -2409,19 +2409,18 @@ static void mxt_input_close(struct input_dev *dev)
 static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
 {
        struct mxt_platform_data *pdata;
+       struct device_node *np = client->dev.of_node;
        u32 *keymap;
-       u32 keycode;
-       int proplen, i, ret;
+       int proplen, ret;
 
-       if (!client->dev.of_node)
+       if (!np)
                return ERR_PTR(-ENOENT);
 
        pdata = devm_kzalloc(&client->dev, sizeof(*pdata), GFP_KERNEL);
        if (!pdata)
                return ERR_PTR(-ENOMEM);
 
-       if (of_find_property(client->dev.of_node, "linux,gpio-keymap",
-                            &proplen)) {
+       if (of_find_property(np, "linux,gpio-keymap", &proplen)) {
                pdata->t19_num_keys = proplen / sizeof(u32);
 
                keymap = devm_kzalloc(&client->dev,
@@ -2430,14 +2429,11 @@ static const struct mxt_platform_data *mxt_parse_dt(struct i2c_client *client)
                if (!keymap)
                        return ERR_PTR(-ENOMEM);
 
-               for (i = 0; i < pdata->t19_num_keys; i++) {
-                       ret = of_property_read_u32_index(client->dev.of_node,
-                                       "linux,gpio-keymap", i, &keycode);
-                       if (ret)
-                               keycode = KEY_RESERVED;
-
-                       keymap[i] = keycode;
-               }
+               ret = of_property_read_u32_array(np, "linux,gpio-keymap",
+                                                keymap, pdata->t19_num_keys);
+               if (ret)
+                       dev_warn(&client->dev,
+                                "Couldn't read linux,gpio-keymap: %d\n", ret);
 
                pdata->t19_keymap = keymap;
        }