tle> https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.19.y 2025-10-17T15:47:53Z HID: intel-ish-hid: Add ishtp_get_connection_state() interface 2025-10-17T15:47:53Z Zhang Lixu lixu.zhang@intel.com 2025-10-17T02:22:13Z urn:sha1:011aa2aa2c4c2b3356c32f195f306df6e177ac38 Add the ishtp_get_connection_state() function for struct ishtp_cl, allowing ishtp client drivers to retrieve the current connection state. Signed-off-by: Zhang Lixu <lixu.zhang@intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> HID: intel-ish-hid: Use dedicated unbound workqueues to prevent resume blocking 2025-10-17T15:47:07Z Zhang Lixu lixu.zhang@intel.com 2025-10-10T05:52:54Z urn:sha1:0d30dae38fe01cd1de358c6039a0b1184689fe51 During suspend/resume tests with S2IDLE, some ISH functional failures were observed because of delay in executing ISH resume handler. Here schedule_work() is used from resume handler to do actual work. schedule_work() uses system_wq, which is a per CPU work queue. Although the queuing is not bound to a CPU, but it prefers local CPU of the caller, unless prohibited. Users of this work queue are not supposed to queue long running work. But in practice, there are scenarios where long running work items are queued on other unbound workqueues, occupying the CPU. As a result, the ISH resume handler may not get a chance to execute in a timely manner. In one scenario, one of the ish_resume_handler() executions was delayed nearly 1 second because another work item on an unbound workqueue occupied the same CPU. This delay causes ISH functionality failures. A similar issue was previously observed where the ISH HID driver timed out while getting the HID descriptor during S4 resume in the recovery kernel, likely caused by the same workqueue contention problem. Create dedicated unbound workqueues for all ISH operations to allow work items to execute on any available CPU, eliminating CPU-specific bottlenecks and improving resume reliability under varying system loads. Also ISH has three different components, a bus driver which implements ISH protocols, a PCI interface layer and HID interface. Use one dedicated work queue for all of them. Signed-off-by: Zhang Lixu <lixu.zhang@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com> HID: intel-ish-hid: Remove unused ishtp_cl_tx_empty 2025-01-09T09:09:11Z Dr. David Alan Gilbert linux@treblig.org 2024-12-25T01:55:08Z urn:sha1:6657d899ce35a313d7e0e7ddc0988aa80d304ca8 ishtp_cl_tx_empty() was added in 2018 by commit a1c40ce62fd2 ("HID: intel-ish-hid: ishtp: add helper functions for client buffer operation") but has remained unused. Remove it. Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>