Re: [PATCH] HID: i2c-hid: Remove RESEND_REPORT_DESCR quirk and its handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Sep 9, 2018 at 12:50 PM Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
>
> Commit 52cf93e63ee6 ("HID: i2c-hid: Don't reset device upon system resume")
> removes the need for the RESEND_REPORT_DESCR quirk for Raydium devices, but
> kept it for the SIS device id 10FB touchscreens, as the author of that
> commit could not determine if the quirk is still necessary there.
>
> I've tested suspend/resume on a Toshiba Click Mini L9W-B which is the
> device for which this quirk was added in the first place and with the
> "Don't reset device upon system resume" fix the quirk is no longer
> necessary, so this commit removes it.
>
> Note even better I also had some other devices with SIS touchscreens which
> suspend/resume issues, where the RESEND_REPORT_DESCR quirk did not help.
>
> I've also tested these devices with the "Don't reset device upon system
> resume" fix and I'm happy to report that that fix also fixes touchscreen
> resume on the following devices:
>
> Asus T100HA
> Asus T200TA
> Peaq C1010
>
> Cc: Kai-Heng Feng <kai.heng.feng@xxxxxxxxxxxxx>
> Signed-off-by: Hans de Goede <hdegoede@xxxxxxxxxx>
> ---

Acked-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx>

Cheers,
Benjamin

>  drivers/hid/hid-ids.h         |  1 -
>  drivers/hid/i2c-hid/i2c-hid.c | 16 ++--------------
>  2 files changed, 2 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
> index 5faffb5d4fb0..286a56415905 100644
> --- a/drivers/hid/hid-ids.h
> +++ b/drivers/hid/hid-ids.h
> @@ -973,7 +973,6 @@
>  #define USB_DEVICE_ID_SIS817_TOUCH     0x0817
>  #define USB_DEVICE_ID_SIS_TS           0x1013
>  #define USB_DEVICE_ID_SIS1030_TOUCH    0x1030
> -#define USB_DEVICE_ID_SIS10FB_TOUCH    0x10fb
>
>  #define USB_VENDOR_ID_SKYCABLE                 0x1223
>  #define        USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER       0x3F07
> diff --git a/drivers/hid/i2c-hid/i2c-hid.c b/drivers/hid/i2c-hid/i2c-hid.c
> index f3076659361a..9e1800a74bbe 100644
> --- a/drivers/hid/i2c-hid/i2c-hid.c
> +++ b/drivers/hid/i2c-hid/i2c-hid.c
> @@ -47,7 +47,6 @@
>  /* quirks to control the device */
>  #define I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV       BIT(0)
>  #define I2C_HID_QUIRK_NO_IRQ_AFTER_RESET       BIT(1)
> -#define I2C_HID_QUIRK_RESEND_REPORT_DESCR      BIT(2)
>
>  /* flags */
>  #define I2C_HID_STARTED                0
> @@ -170,8 +169,6 @@ static const struct i2c_hid_quirks {
>                 I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV },
>         { I2C_VENDOR_ID_HANTICK, I2C_PRODUCT_ID_HANTICK_5288,
>                 I2C_HID_QUIRK_NO_IRQ_AFTER_RESET },
> -       { USB_VENDOR_ID_SIS_TOUCH, USB_DEVICE_ID_SIS10FB_TOUCH,
> -               I2C_HID_QUIRK_RESEND_REPORT_DESCR },
>         { 0, 0 }
>  };
>
> @@ -1236,22 +1233,13 @@ static int i2c_hid_resume(struct device *dev)
>
>         /* Instead of resetting device, simply powers the device on. This
>          * solves "incomplete reports" on Raydium devices 2386:3118 and
> -        * 2386:4B33
> +        * 2386:4B33 and fixes various SIS touchscreens no longer sending
> +        * data after a suspend/resume.
>          */
>         ret = i2c_hid_set_power(client, I2C_HID_PWR_ON);
>         if (ret)
>                 return ret;
>
> -       /* Some devices need to re-send report descr cmd
> -        * after resume, after this it will be back normal.
> -        * otherwise it issues too many incomplete reports.
> -        */
> -       if (ihid->quirks & I2C_HID_QUIRK_RESEND_REPORT_DESCR) {
> -               ret = i2c_hid_command(client, &hid_report_descr_cmd, NULL, 0);
> -               if (ret)
> -                       return ret;
> -       }
> -
>         if (hid->driver && hid->driver->reset_resume) {
>                 ret = hid->driver->reset_resume(hid);
>                 return ret;
> --
> 2.19.0.rc0
>



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux