]> www.infradead.org Git - users/hch/misc.git/commitdiff
HID: intel-thc-hid: Intel-quickspi: switch first interrupt from level to edge detection
authorEven Xu <even.xu@intel.com>
Fri, 19 Sep 2025 07:09:39 +0000 (15:09 +0800)
committerJiri Kosina <jkosina@suse.com>
Tue, 14 Oct 2025 09:28:17 +0000 (11:28 +0200)
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>
drivers/hid/intel-thc-hid/intel-quickspi/quickspi-protocol.c

index e6ba2ddcc9cbc60a18dc6583aab09200466d5425..16f780bc879b1217ff6b483fb50bdf2e93aca91b 100644 (file)
@@ -280,8 +280,7 @@ int reset_tic(struct quickspi_device *qsdev)
 
        qsdev->reset_ack = false;
 
-       /* First interrupt uses level trigger to avoid missing interrupt */
-       thc_int_trigger_type_select(qsdev->thc_hw, false);
+       thc_int_trigger_type_select(qsdev->thc_hw, true);
 
        ret = acpi_tic_reset(qsdev);
        if (ret)