lkml.org 
[lkml]   [2018]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 111/310] Input: elan_i2c - clear INT before resetting controller
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: KT Liao <kt.liao@emc.com.tw>


    [ Upstream commit 4b3c7dbbfff0673e8a89575414b864d8b001d3bb ]

    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>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/input/mouse/elan_i2c_i2c.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    --- a/drivers/input/mouse/elan_i2c_i2c.c
    +++ b/drivers/input/mouse/elan_i2c_i2c.c
    @@ -557,7 +557,14 @@ static int elan_i2c_finish_fw_update(str
    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);

    \
     
     \ /
      Last update: 2018-04-11 21:55    [W:2.235 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site