serial: stm32: rework wakeup management
Rework wakeup management by activating uart as wakeup source when usart device OR its tty virtual device parent is wakeup source. This patch aim to avoid potential misalignment between serial and tty wakeup flags. Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Signed-off-by: Alexandre Torgue <alexandre.torgue@foss.st.com> Signed-off-by: Erwan Le Ray <erwan.leray@foss.st.com> Link: https://lore.kernel.org/r/20210319184253.5841-2-erwan.leray@foss.st.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0ae798fd96
commit
1631eeeaf0
@ -1534,7 +1534,7 @@ static int __maybe_unused stm32_usart_serial_suspend(struct device *dev)
|
||||
|
||||
uart_suspend_port(&stm32_usart_driver, port);
|
||||
|
||||
if (device_may_wakeup(dev))
|
||||
if (device_may_wakeup(dev) || device_wakeup_path(dev))
|
||||
stm32_usart_serial_en_wakeup(port, true);
|
||||
else
|
||||
stm32_usart_serial_en_wakeup(port, false);
|
||||
@ -1546,7 +1546,7 @@ static int __maybe_unused stm32_usart_serial_suspend(struct device *dev)
|
||||
* capabilities.
|
||||
*/
|
||||
if (console_suspend_enabled || !uart_console(port)) {
|
||||
if (device_may_wakeup(dev))
|
||||
if (device_may_wakeup(dev) || device_wakeup_path(dev))
|
||||
pinctrl_pm_select_idle_state(dev);
|
||||
else
|
||||
pinctrl_pm_select_sleep_state(dev);
|
||||
@ -1561,7 +1561,7 @@ static int __maybe_unused stm32_usart_serial_resume(struct device *dev)
|
||||
|
||||
pinctrl_pm_select_default_state(dev);
|
||||
|
||||
if (device_may_wakeup(dev))
|
||||
if (device_may_wakeup(dev) || device_wakeup_path(dev))
|
||||
stm32_usart_serial_en_wakeup(port, false);
|
||||
|
||||
return uart_resume_port(&stm32_usart_driver, port);
|
||||
|
Loading…
Reference in New Issue
Block a user