lkml.org 
[lkml]   [2018]   [Aug]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 086/144] HID: i2c-hid: check if device is there before really probing
    Date
    4.9-stable review patch.  If anyone has any objections, please let me know.

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

    From: Dmitry Torokhov <dtor@chromium.org>

    [ Upstream commit b3a81b6c4fc6730ac49e20d789a93c0faabafc98 ]

    On many Chromebooks touch devices are multi-sourced; the components are
    electrically compatible and one can be freely swapped for another without
    changing the OS image or firmware.

    To avoid bunch of scary messages when device is not actually present in the
    system let's try testing basic communication with it and if there is no
    response terminate probe early with -ENXIO.

    Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/hid/i2c-hid/i2c-hid.c | 8 ++++++++
    1 file changed, 8 insertions(+)

    --- a/drivers/hid/i2c-hid/i2c-hid.c
    +++ b/drivers/hid/i2c-hid/i2c-hid.c
    @@ -1101,6 +1101,14 @@ static int i2c_hid_probe(struct i2c_clie
    pm_runtime_enable(&client->dev);
    device_enable_async_suspend(&client->dev);

    + /* Make sure there is something at this address */
    + ret = i2c_smbus_read_byte(client);
    + if (ret < 0) {
    + dev_dbg(&client->dev, "nothing at this address: %d\n", ret);
    + ret = -ENXIO;
    + goto err_pm;
    + }
    +
    ret = i2c_hid_fetch_hid_descriptor(ihid);
    if (ret < 0)
    goto err_pm;

    \
     
     \ /
      Last update: 2018-08-01 19:43    [W:4.770 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site