1
0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2026-01-12 01:20:14 +00:00

serial: 8250_of: manage bus clock in suspend/resume

Save the bus clock pointer in the of_serial_info structure, and use
that to disable the bus clock on suspend and re-enable it on resume.

Signed-off-by: Alex Elder <elder@riscstar.com>
Reviewed-by: Andy Shevchenko <andy@kernel.org>
Reviewed-by: Yixun Lan <dlan@gentoo.org>
Link: https://lore.kernel.org/r/20250411203828.1491595-4-elder@riscstar.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alex Elder 2025-04-11 15:38:27 -05:00 committed by Greg Kroah-Hartman
parent 66f5f70ce0
commit 926040da60

View File

@ -24,6 +24,7 @@
struct of_serial_info {
struct clk *clk;
struct clk *bus_clk;
struct reset_control *rst;
int type;
int line;
@ -138,6 +139,7 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
goto err_pmruntime;
}
info->bus_clk = bus_clk;
port->uartclk = clk_get_rate(info->clk);
}
/* If current-speed was set, then try not to change it. */
@ -299,6 +301,7 @@ static int of_serial_suspend(struct device *dev)
if (!uart_console(port) || console_suspend_enabled) {
pm_runtime_put_sync(dev);
clk_disable_unprepare(info->clk);
clk_disable_unprepare(info->bus_clk);
}
return 0;
}
@ -311,6 +314,7 @@ static int of_serial_resume(struct device *dev)
if (!uart_console(port) || console_suspend_enabled) {
pm_runtime_get_sync(dev);
clk_prepare_enable(info->bus_clk);
clk_prepare_enable(info->clk);
}