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)
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;
}
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;