From: Hans de Goede <hdegoede@redhat.com>
To: Jiri Kosina <jikos@kernel.org>,
Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Hans de Goede <hdegoede@redhat.com>,
Douglas Anderson <dianders@chromium.org>,
Julian Sax <jsbc@gmx.de>,
ahormann@gmx.net, Bruno Jesus <bruno.fl.jesus@gmail.com>,
Dietrich <enaut.w@googlemail.com>,
kloxdami@yahoo.com, Tim Aldridge <taldridge@mac.com>,
Rene Wagner <redhatbugzilla@callerid.de>,
Federico Ricchiuto <fed.ricchiuto@gmail.com>,
linux-input@vger.kernel.org
Subject: [PATCH 0/7] HID: i2c-hid: Rework wait for reset to match Windows
Date: Sat, 4 Nov 2023 12:17:36 +0100 [thread overview]
Message-ID: <20231104111743.14668-1-hdegoede@redhat.com> (raw)
Hi All,
Looking at:
"2247751 - Touchpad not working on Lenovo Thinkbook 15 Gen 5"
https://bugzilla.redhat.com/show_bug.cgi?id=2247751
I thought at first that this was another touchpad needing
a I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirk, further testing
has shown this seems to be an IRQ not working issue though,
so this series does not help for that bug.
The bug has made me revisit I2C_HID_QUIRK_NO_IRQ_AFTER_RESET though and it
made me look at Microsoft's i2c-hid docs again and I noticed the following:
"""
4. Issue a RESET (Host Initiated Reset) to the Device.
5. Retrieve report descriptor from the device.
Note: Steps 4 and 5 may be done in parallel to optimize for time on I²C.
Since report descriptors are (a) static and (b) quite long, Windows 8 may
issue a request for 5 while it is waiting for a response from the device
on 4.
"""
which made me think that maybe on some touchpads the reset ack is delayed
till after the report descriptor is read ?
Testing a T-BAO Tbook Air 12.5 with a 0911:5288 (SIPODEV SP1064?) touchpad,
for which the I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirk was first introduced,
shows that about 1 ms after the report descriptor read finishes the reset
indeed does get acked.
So this series refactors the reset handling to move the waiting for
the ack to after reading the report-descriptor, so that
the I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirk is no longer necessary.
Julian, I've added you to the Cc because you developed the code
for touchpads where the HID report descriptors are missing and are
provided by the kernel through a DMI quirk. The behavior for these
touchpads should be unchanged, but if you can test on a laptop
with such a touchpad that would be great.
Regards,
Hans
Hans de Goede (7):
HID: i2c-hid: Fold i2c_hid_execute_reset() into i2c_hid_hwreset()
HID: i2c-hid: Split i2c_hid_hwreset() in start() and finish()
functions
HID: i2c-hid: Switch i2c_hid_parse() to goto style error handling
HID: i2c-hid: Move i2c_hid_finish_hwreset() to after reading the
report-descriptor
HID: i2c-hid: Remove I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirks
HID: i2c-hid: Remove I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV quirk
HID: i2c-hid: Renumber I2C_HID_QUIRK_ defines
drivers/hid/i2c-hid/i2c-hid-core.c | 155 +++++++++++++++--------------
1 file changed, 79 insertions(+), 76 deletions(-)
--
2.41.0
next reply other threads:[~2023-11-04 11:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-04 11:17 Hans de Goede [this message]
2023-11-04 11:17 ` [PATCH 1/7] HID: i2c-hid: Fold i2c_hid_execute_reset() into i2c_hid_hwreset() Hans de Goede
2023-11-06 18:50 ` Doug Anderson
2023-11-17 19:34 ` Hans de Goede
2023-11-04 11:17 ` [PATCH 2/7] HID: i2c-hid: Split i2c_hid_hwreset() in start() and finish() functions Hans de Goede
2023-11-06 18:53 ` Doug Anderson
2023-11-17 19:37 ` Hans de Goede
2023-11-04 11:17 ` [PATCH 3/7] HID: i2c-hid: Switch i2c_hid_parse() to goto style error handling Hans de Goede
2023-11-06 18:53 ` Doug Anderson
2023-11-04 11:17 ` [PATCH 4/7] HID: i2c-hid: Move i2c_hid_finish_hwreset() to after reading the report-descriptor Hans de Goede
2023-11-06 18:53 ` Doug Anderson
2023-11-17 19:42 ` Hans de Goede
2023-11-04 11:17 ` [PATCH 5/7] HID: i2c-hid: Remove I2C_HID_QUIRK_NO_IRQ_AFTER_RESET quirks Hans de Goede
2023-11-06 18:54 ` Doug Anderson
2023-11-04 11:17 ` [PATCH 6/7] HID: i2c-hid: Remove I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV quirk Hans de Goede
2023-11-06 18:55 ` Doug Anderson
2023-11-04 11:17 ` [PATCH 7/7] HID: i2c-hid: Renumber I2C_HID_QUIRK_ defines Hans de Goede
2023-11-06 18:55 ` Doug Anderson
2023-11-08 20:41 ` [PATCH 0/7] HID: i2c-hid: Rework wait for reset to match Windows Julian Sax
2023-11-16 16:46 ` Hans de Goede
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231104111743.14668-1-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=ahormann@gmx.net \
--cc=benjamin.tissoires@redhat.com \
--cc=bruno.fl.jesus@gmail.com \
--cc=dianders@chromium.org \
--cc=enaut.w@googlemail.com \
--cc=fed.ricchiuto@gmail.com \
--cc=jikos@kernel.org \
--cc=jsbc@gmx.de \
--cc=kloxdami@yahoo.com \
--cc=linux-input@vger.kernel.org \
--cc=redhatbugzilla@callerid.de \
--cc=taldridge@mac.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).