| 6761f9cc | 22-Dec-2025 |
Even Xu <even.xu@intel.com> |
HID: Intel-thc-hid: Intel-quicki2c: Add power management for touch device
Send POWER_SLEEP command to touch device when system enters into sleep mode or hibernate mode to save more power; and send P
HID: Intel-thc-hid: Intel-quicki2c: Add power management for touch device
Send POWER_SLEEP command to touch device when system enters into sleep mode or hibernate mode to save more power; and send POWER_ON command to take device back when system exits sleep mode.
Signed-off-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| a788b205 | 09-Dec-2025 |
Even Xu <even.xu@intel.com> |
HID: Intel-thc-hid: Intel-quicki2c: Add output report support
Add support for HID output reports in the intel-quicki2c driver by implementing the output_report callback in the HID low-level driver i
HID: Intel-thc-hid: Intel-quicki2c: Add output report support
Add support for HID output reports in the intel-quicki2c driver by implementing the output_report callback in the HID low-level driver interface.
This enables proper communication with HID devices that require output report functionality, such as setting device configuration or updating device firmware.
Tested-by: Rui Zhang <rui1.zhang@intel.com> Signed-off-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| e149af9c | 09-Dec-2025 |
Even Xu <even.xu@intel.com> |
HID: Intel-thc-hid: Intel-quicki2c: Support writing output report format
There are two output formats requested in the HID-over-I2C specification: - Command format (set feature/set report): encoded
HID: Intel-thc-hid: Intel-quicki2c: Support writing output report format
There are two output formats requested in the HID-over-I2C specification: - Command format (set feature/set report): encoded command written to command register, followed by data written to data register - Output report format: all data written directly to output register
Current quicki2c_init_write_buf() implementation only supports the command format.
Extend quicki2c_init_write_buf() to automatically detect the output format based on the presence of command parameters and prepare the appropriate output buffer accordingly.
Tested-by: Rui Zhang <rui1.zhang@intel.com> Signed-off-by: Even Xu <even.xu@intel.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| 678cbaa2 | 09-Dec-2025 |
Even Xu <even.xu@intel.com> |
HID: Intel-thc-hid: Intel-quicki2c: Use put_unaligned_le16 for __le16 writes
Replace memcpy operations with put_unaligned_le16() when writing 16-bit little-endian values to the write buffer.
This c
HID: Intel-thc-hid: Intel-quicki2c: Use put_unaligned_le16 for __le16 writes
Replace memcpy operations with put_unaligned_le16() when writing 16-bit little-endian values to the write buffer.
This change improves code clarity and ensures proper handling of unaligned memory access.
Signed-off-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| a9a91799 | 26-Dec-2025 |
Even Xu <even.xu@intel.com> |
HID: Intel-thc-hid: Intel-thc: Add safety check for reading DMA buffer
Add DMA buffer readiness check before reading DMA buffer to avoid unexpected NULL pointer accessing.
Signed-off-by: Even Xu <e
HID: Intel-thc-hid: Intel-thc: Add safety check for reading DMA buffer
Add DMA buffer readiness check before reading DMA buffer to avoid unexpected NULL pointer accessing.
Signed-off-by: Even Xu <even.xu@intel.com> Tested-by: Rui Zhang <rui1.zhang@intel.com> Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
show more ...
|
| 50f1f782 | 24-Sep-2025 |
Abhishek Tamboli <abhishektamboli9@gmail.com> |
HID: intel-thc-hid: intel-quickspi: Add ARL PCI Device Id's
Add the missing PCI ID for the quickspi device used on the Lenovo Yoga Pro 9i 16IAH10.
Buglink: https://bugzilla.kernel.org/show_bug.cgi?
HID: intel-thc-hid: intel-quickspi: Add ARL PCI Device Id's
Add the missing PCI ID for the quickspi device used on the Lenovo Yoga Pro 9i 16IAH10.
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=220567
Signed-off-by: Abhishek Tamboli <abhishektamboli9@gmail.com> Reviewed-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| 8fe2cd8e | 19-Sep-2025 |
Even Xu <even.xu@intel.com> |
HID: intel-thc-hid: Intel-quickspi: switch first interrupt from level to edge detection
The original implementation used level detection for the first interrupt after device reset to avoid potential
HID: intel-thc-hid: Intel-quickspi: switch first interrupt from level to edge detection
The original implementation used level detection for the first interrupt after device reset to avoid potential interrupt line noise and missed interrupts during the initialization phase. However, this approach introduced unintended side effects when tested with certain touch panels, including: - Delayed hardware interrupt response - Multiple spurious interrupt triggers
Switching back to edge detection for the first interrupt resolves these issues while maintaining reliable interrupt handling.
Extensive testing across multiple platforms with touch panels from various vendors confirms this change introduces no regressions.
[jkosina@suse.com: properly capitalize shortlog] Fixes: 9d8d51735a3a ("HID: intel-thc-hid: intel-quickspi: Add HIDSPI protocol implementation") Tested-by: Rui Zhang <rui1.zhang@intel.com> Signed-off-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| 0b1fca9d | 17-Sep-2025 |
Xinpeng Sun <xinpeng.sun@intel.com> |
HID: intel-thc-hid: intel-quicki2c: support ACPI config for advanced features
There is a new BIOS enhancement that adds the capability to configure the following two features of I2C subsystem introd
HID: intel-thc-hid: intel-quicki2c: support ACPI config for advanced features
There is a new BIOS enhancement that adds the capability to configure the following two features of I2C subsystem introduced in commit 1ed0b48 ("Intel-thc: Introduce max input size control") and commit 3f2a921 ("Intel-thc: Introduce interrupt delay control"): - Max input size control - Interrupt delay control
As BIOS is used for the configuration of these two features, change driver data usage to indicate hardware capability, and add corresponding ACPI configuration support in QuickI2C driver.
Signed-off-by: Xinpeng Sun <xinpeng.sun@intel.com> Tested-by: Rui Zhang <rui1.zhang@intel.com> Reviewed-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| afa17a09 | 06-Aug-2025 |
Even Xu <even.xu@intel.com> |
HID: intel-thc-hid: Intel-quicki2c: Enhance driver re-install flow
After driver module is removed and during re-install stage, if there is continueous user touching on the screen, it is a risk impac
HID: intel-thc-hid: Intel-quicki2c: Enhance driver re-install flow
After driver module is removed and during re-install stage, if there is continueous user touching on the screen, it is a risk impacting THC hardware initialization which causes driver installation failure.
This patch enhances this flow by quiescing the external touch interrupt after driver is removed which keeps THC hardware ignore external interrupt during this remove and re-install stage.
Signed-off-by: Even Xu <even.xu@intel.com> Tested-by: Rui Zhang <rui1.zhang@intel.com> Fixes: 66b59bfce6d9 ("HID: intel-thc-hid: intel-quicki2c: Complete THC QuickI2C driver") Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|
| a7fc15ed | 03-Aug-2025 |
Aaron Ma <aaron.ma@canonical.com> |
HID: intel-thc-hid: intel-thc: Fix incorrect pointer arithmetic in I2C regs save
Improper use of secondary pointer (&dev->i2c_subip_regs) caused kernel crash and out-of-bounds error:
BUG: KASAN: s
HID: intel-thc-hid: intel-thc: Fix incorrect pointer arithmetic in I2C regs save
Improper use of secondary pointer (&dev->i2c_subip_regs) caused kernel crash and out-of-bounds error:
BUG: KASAN: slab-out-of-bounds in _regmap_bulk_read+0x449/0x510 Write of size 4 at addr ffff888136005dc0 by task kworker/u33:5/5107
CPU: 3 UID: 0 PID: 5107 Comm: kworker/u33:5 Not tainted 6.16.0+ #3 PREEMPT(voluntary) Workqueue: async async_run_entry_fn Call Trace: <TASK> dump_stack_lvl+0x76/0xa0 print_report+0xd1/0x660 ? __pfx__raw_spin_lock_irqsave+0x10/0x10 ? kasan_complete_mode_report_info+0x26/0x200 kasan_report+0xe1/0x120 ? _regmap_bulk_read+0x449/0x510 ? _regmap_bulk_read+0x449/0x510 __asan_report_store4_noabort+0x17/0x30 _regmap_bulk_read+0x449/0x510 ? __pfx__regmap_bulk_read+0x10/0x10 regmap_bulk_read+0x270/0x3d0 pio_complete+0x1ee/0x2c0 [intel_thc] ? __pfx_pio_complete+0x10/0x10 [intel_thc] ? __pfx_pio_wait+0x10/0x10 [intel_thc] ? regmap_update_bits_base+0x13b/0x1f0 thc_i2c_subip_pio_read+0x117/0x270 [intel_thc] thc_i2c_subip_regs_save+0xc2/0x140 [intel_thc] ? __pfx_thc_i2c_subip_regs_save+0x10/0x10 [intel_thc] [...] The buggy address belongs to the object at ffff888136005d00 which belongs to the cache kmalloc-rnd-12-192 of size 192 The buggy address is located 0 bytes to the right of allocated 192-byte region [ffff888136005d00, ffff888136005dc0)
Replaced with direct array indexing (&dev->i2c_subip_regs[i]) to ensure safe memory access.
Fixes: 4228966def884 ("HID: intel-thc-hid: intel-thc: Add THC I2C config interfaces") Signed-off-by: Aaron Ma <aaron.ma@canonical.com> Reviewed-by: Even Xu <even.xu@intel.com> Tested-by: Even Xu <even.xu@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
show more ...
|