On 1/8/21 11:01 PM, Jiri Kosina wrote:
On Thu, 7 Jan 2021, Hui Wang wrote:
On the latest Thinkpad Yoga laptop, the touchscreen module is wacom
I2C WACF2200 (056a:5276), we found the touchscreen could not work
after rebooting, needs to poweroff the machine then poweron the
machine to let it work.
It is highly possible that this is a BIOS issue, but the windows
doesn't have this problem with the same BIOS.
If keeping the power on when calling shutdown, the touchscreen could
work after rebooting. Let us add a quirk for it and apply the quirk
to this machine only.
I wonder what do Windows do differently here. Perhaps they never put the
i2c device to sleep while in shutdown anyway? Is there any downside to
(not) doing the same?
It is highly possible the Windows doesn't sleep the i2c device in shutdown.
When calling shutdown, it usually means reboot or poweroff the machine, so the
sleep is meaningless in this situation. In other situations like users
manually unload the i2c driver, maybe it will add a bit power consumption
without sleeping the device.
Agreed, but if windows really don't put the device to sleep before
shutting down, odds are there will be more devices behaving the same, and
therefore we'd rather make it the default case instead of growing just
another quirk list.
Got the feedback from the ODM, the root cause of this issue is the I2C
device will send clock stretching when changing from PWR_SLEEP to
PWR_ON, but the driver in the BIOS doesn't handle the clock stretching
or the timeout is not enough. ODM already provided a testing BIOS and
this issue is fixed by the testing BIOS.
And ODM captured the I2C data transfer log under Windows, according to
the log, the Windows also set the I2C touchscreen to PWR_SLEEP before
rebooting, it is same as the current Linux hid i2c driver.
Regards,
Hui.
Anyway, I will try to ask for help from vendor, maybe they could provide
how Windows do when shutdown.
Thank you,