]> Git Repo - linux.git/commitdiff
Input: elan_i2c - clear INT before resetting controller
authorKT Liao <[email protected]>
Thu, 25 May 2017 17:06:21 +0000 (10:06 -0700)
committerDmitry Torokhov <[email protected]>
Thu, 25 May 2017 17:11:34 +0000 (10:11 -0700)
Some old touchpad FWs need to have interrupt cleared before issuing reset
command after updating firmware. We clear interrupt by attempting to read
full report from the controller, and discarding any data read.

Signed-off-by: KT Liao <[email protected]>
Signed-off-by: Dmitry Torokhov <[email protected]>
drivers/input/mouse/elan_i2c_i2c.c

index a679e56c44cd49ddea4361aebdb97d4fe7f1e12e..765879dcaf854481402952bc2af08be74d6f915f 100644 (file)
@@ -557,7 +557,14 @@ static int elan_i2c_finish_fw_update(struct i2c_client *client,
        long ret;
        int error;
        int len;
-       u8 buffer[ETP_I2C_INF_LENGTH];
+       u8 buffer[ETP_I2C_REPORT_LEN];
+
+       len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_LEN);
+       if (len != ETP_I2C_REPORT_LEN) {
+               error = len < 0 ? len : -EIO;
+               dev_warn(dev, "failed to read I2C data after FW WDT reset: %d (%d)\n",
+                       error, len);
+       }
 
        reinit_completion(completion);
        enable_irq(client->irq);
This page took 0.051648 seconds and 4 git commands to generate.