Merge tag 'v5.2' into next
[sfrench/cifs-2.6.git] / drivers / input / touchscreen / iqs5xx.c
index 158707897c2dd8ba10020dc8ffbc83643db3e174..5875bb1099a84e1741e0a70ce6cae78662577aa6 100644 (file)
@@ -502,14 +502,6 @@ static int iqs5xx_axis_init(struct i2c_client *client)
                input_set_capability(input, EV_ABS, ABS_MT_POSITION_Y);
                input_set_capability(input, EV_ABS, ABS_MT_PRESSURE);
 
-               error = input_mt_init_slots(input,
-                               IQS5XX_NUM_CONTACTS, INPUT_MT_DIRECT);
-               if (error) {
-                       dev_err(&client->dev,
-                               "Failed to initialize slots: %d\n", error);
-                       return error;
-               }
-
                input_set_drvdata(input, iqs5xx);
                iqs5xx->input = input;
        }
@@ -591,9 +583,19 @@ static int iqs5xx_axis_init(struct i2c_client *client)
        if (error)
                return error;
 
-       return iqs5xx_write_word(client,
-                                prop.swap_x_y ? IQS5XX_X_RES : IQS5XX_Y_RES,
-                                max_y);
+       error = iqs5xx_write_word(client,
+                                 prop.swap_x_y ? IQS5XX_X_RES : IQS5XX_Y_RES,
+                                 max_y);
+       if (error)
+               return error;
+
+       error = input_mt_init_slots(iqs5xx->input, IQS5XX_NUM_CONTACTS,
+                                   INPUT_MT_DIRECT);
+       if (error)
+               dev_err(&client->dev, "Failed to initialize slots: %d\n",
+                       error);
+
+       return error;
 }
 
 static int iqs5xx_dev_init(struct i2c_client *client)