The return value of elants_i2c_initialize() was always 0. It maybe register input device when initialize fail. Signed-off-by: Johnny Chuang <johnny.chuang@xxxxxxxxxx> --- drivers/input/touchscreen/elants_i2c.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/input/touchscreen/elants_i2c.c b/drivers/input/touchscreen/elants_i2c.c index d4ad24e..9c9816f 100644 --- a/drivers/input/touchscreen/elants_i2c.c +++ b/drivers/input/touchscreen/elants_i2c.c @@ -571,7 +571,7 @@ static int elants_i2c_initialize(struct elants_data *ts) if (error) ts->iap_mode = ELAN_IAP_RECOVERY; - return 0; + return error; } /* -- 2.7.4