mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 20:14:06 +02:00
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>
This commit is contained in:
parent
f0caa1d49c
commit
4ba38ee380
|
|
@ -749,9 +749,11 @@ static int quickspi_suspend(struct device *device)
|
|||
if (!qsdev)
|
||||
return -ENODEV;
|
||||
|
||||
ret = quickspi_set_power(qsdev, HIDSPI_SLEEP);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (!device_may_wakeup(qsdev->dev)) {
|
||||
ret = quickspi_set_power(qsdev, HIDSPI_SLEEP);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = thc_interrupt_quiesce(qsdev->thc_hw, true);
|
||||
if (ret)
|
||||
|
|
@ -790,9 +792,8 @@ static int quickspi_resume(struct device *device)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
ret = quickspi_set_power(qsdev, HIDSPI_ON);
|
||||
if (ret)
|
||||
return ret;
|
||||
if (!device_may_wakeup(qsdev->dev))
|
||||
return quickspi_set_power(qsdev, HIDSPI_ON);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -851,6 +852,9 @@ static int quickspi_poweroff(struct device *device)
|
|||
if (!qsdev)
|
||||
return -ENODEV;
|
||||
|
||||
/* Ignore the return value as platform will be poweroff soon */
|
||||
quickspi_set_power(qsdev, HIDSPI_OFF);
|
||||
|
||||
ret = thc_interrupt_quiesce(qsdev->thc_hw, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user