Re: [PATCH] HID: i2c-hid: Disable runtime PM on Goodix touchpad

From: Kai-Heng Feng
Date: Thu Jan 17 2019 - 06:41:21 EST




> On Jan 17, 2019, at 16:06, Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> wrote:
>
> On Thu, Jan 17, 2019 at 6:02 AM Kai-Heng Feng
> <kai.heng.feng@xxxxxxxxxxxxx> wrote:
[snipped]
>> Goodix says the firmware needs at least 60ms to fully respond ON and
>> SLEEP command.
>
> I was about to say that this is not conformant to the specification.
> But looking at 7.2.8 SET_POWER of
> https://docs.microsoft.com/en-us/previous-versions/windows/hardware/design/dn642101(v=vs.85)
>
> They say:
> "The DEVICE must ensure that it transitions to the HOST specified
> Power State in under 1 second. "
> But in the RESPONSE paragraph: "The DEVICE shall not respond back
> after receiving the command. The DEVICE is mandated to enter that
> power state imminently."
>
> My interpretation was always that the device has to be in a ready
> state for new commands "immediately".
> However, the first sentence may suggest that the driver would block
> any command to the device before the 1 second timestamp.
>
>>
>> Iâll see if an 200ms autosuspend can solve all Goodix, LG and Raydium
>> touchpanels.
>
> We already have a I2C_HID_QUIRK_DELAY_AFTER_SLEEP quirk that delay
> operations after sleep by 20ms. Maybe we can keep the runtime PM but
> use the same timers to not confuse the hardware.

Yes, but wouldnât use pm_*_autosuspend() helpers can both solve the issue
and make the code more cleaner?

Kai-Heng

>
> Cheers,
> Benjamin