Skip to content

Commit

Permalink
Input: elan_i2c - clear INT before resetting controller
Browse files Browse the repository at this point in the history
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 <kt.liao@emc.com.tw>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
  • Loading branch information
KT Liao authored and Dmitry Torokhov committed May 25, 2017
1 parent 089b50d commit 4b3c7db
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion drivers/input/mouse/elan_i2c_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 4b3c7db

Please sign in to comment.