@@ -209,15 +209,8 @@ static int rmi_i2c_probe(struct i2c_client *client,
rmi_i2c->xport.proto_name = "i2c";
rmi_i2c->xport.ops = &rmi_i2c_ops;
- /*
- * Setting the page to zero will (a) make sure the PSR is in a
- * known state, and (b) make sure we can talk to the device.
- */
- retval = rmi_set_page(rmi_i2c, 0);
- if (retval) {
- dev_err(&client->dev, "Failed to set page select to 0.\n");
- return retval;
- }
+ /* make sure we set the page on the first write */
+ rmi_i2c->page = -1;
retval = rmi_register_transport_device(&rmi_i2c->xport);
if (retval) {
Since at the point of I2C probe, we cannot know if the voltage regulators are on, wait until the physical driver requests a read before setting the page. Cc: Christopher Heiny <cheiny@synaptics.com> Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Courtney Cavin <courtney.cavin@sonymobile.com> --- drivers/input/rmi4/rmi_i2c.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-)