Skip to content

Commit 4ba38ee

Browse files
EvenxfJiri Kosina
authored andcommitted
HID: intel-thc-hid: Intel-quickspi: Improve power management for touch devices
Enhance power management with two key improvements: 1. Hibernate support: Send POWER_OFF command when entering hibernate mode. 2. Conditional sleep commands: Only send POWER_SLEEP/POWER_ON commands during system suspend/resume when the touch device is not configured as a wake source, preserving Wake-on-Touch (WoT) functionality. This ensures proper power states while maintaining expected wake behavior. Signed-off-by: Even Xu <even.xu@intel.com> Tested-by: Rui Zhang <rui1.zhang@intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
1 parent f0caa1d commit 4ba38ee

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

drivers/hid/intel-thc-hid/intel-quickspi/pci-quickspi.c

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -749,9 +749,11 @@ static int quickspi_suspend(struct device *device)
749749
if (!qsdev)
750750
return -ENODEV;
751751

752-
ret = quickspi_set_power(qsdev, HIDSPI_SLEEP);
753-
if (ret)
754-
return ret;
752+
if (!device_may_wakeup(qsdev->dev)) {
753+
ret = quickspi_set_power(qsdev, HIDSPI_SLEEP);
754+
if (ret)
755+
return ret;
756+
}
755757

756758
ret = thc_interrupt_quiesce(qsdev->thc_hw, true);
757759
if (ret)
@@ -790,9 +792,8 @@ static int quickspi_resume(struct device *device)
790792
if (ret)
791793
return ret;
792794

793-
ret = quickspi_set_power(qsdev, HIDSPI_ON);
794-
if (ret)
795-
return ret;
795+
if (!device_may_wakeup(qsdev->dev))
796+
return quickspi_set_power(qsdev, HIDSPI_ON);
796797

797798
return 0;
798799
}
@@ -851,6 +852,9 @@ static int quickspi_poweroff(struct device *device)
851852
if (!qsdev)
852853
return -ENODEV;
853854

855+
/* Ignore the return value as platform will be poweroff soon */
856+
quickspi_set_power(qsdev, HIDSPI_OFF);
857+
854858
ret = thc_interrupt_quiesce(qsdev->thc_hw, true);
855859
if (ret)
856860
return ret;

0 commit comments

Comments
 (0)