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:
parent
66f5f70ce0
commit
926040da60
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user