Input: ili210x - reorder probe
authorMarek Vasut <marex@denx.de>
Thu, 7 Feb 2019 06:01:30 +0000 (22:01 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Thu, 7 Feb 2019 06:18:13 +0000 (22:18 -0800)
Perform the register access only after the I2C client data are set,
this is only done in preparation for the subsequent patch which
uses the I2C client data in the register IO function.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/ili210x.c

index c345d6df783f2ffc64a67c52f98b016e7180366e..ba263458236474e2d52a48d7a2e80a43a2b3e7c4 100644 (file)
@@ -223,6 +223,22 @@ static int ili210x_i2c_probe(struct i2c_client *client,
                msleep(100);
        }
 
+       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
+       if (!priv)
+               return -ENOMEM;
+
+       input = devm_input_allocate_device(dev);
+       if (!input)
+               return -ENOMEM;
+
+       priv->client = client;
+       priv->input = input;
+       priv->poll_period = DEFAULT_POLL_PERIOD;
+       INIT_DELAYED_WORK(&priv->dwork, ili210x_work);
+       priv->reset_gpio = reset_gpio;
+
+       i2c_set_clientdata(client, priv);
+
        /* Get firmware version */
        error = ili210x_read_reg(client, REG_FIRMWARE_VERSION,
                                 &firmware, sizeof(firmware));
@@ -243,20 +259,6 @@ static int ili210x_i2c_probe(struct i2c_client *client,
        xmax = panel.x_low | (panel.x_high << 8);
        ymax = panel.y_low | (panel.y_high << 8);
 
-       priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
-       if (!priv)
-               return -ENOMEM;
-
-       input = devm_input_allocate_device(dev);
-       if (!input)
-               return -ENOMEM;
-
-       priv->client = client;
-       priv->input = input;
-       priv->poll_period = DEFAULT_POLL_PERIOD;
-       INIT_DELAYED_WORK(&priv->dwork, ili210x_work);
-       priv->reset_gpio = reset_gpio;
-
        /* Setup input device */
        input->name = "ILI210x Touchscreen";
        input->id.bustype = BUS_I2C;
@@ -276,8 +278,6 @@ static int ili210x_i2c_probe(struct i2c_client *client,
        input_set_abs_params(input, ABS_MT_POSITION_X, 0, xmax, 0, 0);
        input_set_abs_params(input, ABS_MT_POSITION_Y, 0, ymax, 0, 0);
 
-       i2c_set_clientdata(client, priv);
-
        error = devm_add_action(dev, ili210x_cancel_work, priv);
        if (error)
                return error;