When adapter does not support required functionality (I2C_FUNC_I2C) we were returning 0 to the upper layers, making them believe that device bound successfully. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx> --- drivers/input/rmi4/rmi_i2c.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/input/rmi4/rmi_i2c.c b/drivers/input/rmi4/rmi_i2c.c index cdc8527..c176218 100644 --- a/drivers/input/rmi4/rmi_i2c.c +++ b/drivers/input/rmi4/rmi_i2c.c @@ -193,11 +193,10 @@ static int rmi_i2c_probe(struct i2c_client *client, pdata->sensor_name ? pdata->sensor_name : "-no name-", client->addr, pdata->attn_gpio); - retval = i2c_check_functionality(client->adapter, I2C_FUNC_I2C); - if (!retval) { - dev_err(&client->dev, "i2c_check_functionality error %d.\n", - retval); - return retval; + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { + dev_err(&client->dev, + "adapter does not support required functionality.\n"); + return -ENODEV; } if (pdata->gpio_config) { -- 1.8.4.2 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html