Message ID | 20211121083537.612473-1-jernej.skrabec@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | bus: sunxi-rsb: Fix shutdown | expand |
On Sun, 21 Nov 2021 09:35:37 +0100, Jernej Skrabec wrote: > Function sunxi_rsb_hw_exit() is sometimes called with pm runtime > disabled, so in such cases pm_runtime_resume() will fail with -EACCES. > > Instead of doing whole dance of enabling pm runtime and thus clock just > to disable it again immediately, just check if disabling clock is > needed. That way calling pm_runtime_resume() is not needed at all. > > [...] Applied to sunxi/linux.git (sunxi/drivers-for-5.17). Thanks! Maxime
diff --git a/drivers/bus/sunxi-rsb.c b/drivers/bus/sunxi-rsb.c index 6f225dddc74f..4566e730ef2b 100644 --- a/drivers/bus/sunxi-rsb.c +++ b/drivers/bus/sunxi-rsb.c @@ -687,11 +687,11 @@ static int sunxi_rsb_hw_init(struct sunxi_rsb *rsb) static void sunxi_rsb_hw_exit(struct sunxi_rsb *rsb) { - /* Keep the clock and PM reference counts consistent. */ - if (pm_runtime_status_suspended(rsb->dev)) - pm_runtime_resume(rsb->dev); reset_control_assert(rsb->rstc); - clk_disable_unprepare(rsb->clk); + + /* Keep the clock and PM reference counts consistent. */ + if (!pm_runtime_status_suspended(rsb->dev)) + clk_disable_unprepare(rsb->clk); } static int __maybe_unused sunxi_rsb_runtime_suspend(struct device *dev)
Function sunxi_rsb_hw_exit() is sometimes called with pm runtime disabled, so in such cases pm_runtime_resume() will fail with -EACCES. Instead of doing whole dance of enabling pm runtime and thus clock just to disable it again immediately, just check if disabling clock is needed. That way calling pm_runtime_resume() is not needed at all. Fixes: 4a0dbc12e618 ("bus: sunxi-rsb: Implement runtime power management") Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com> --- drivers/bus/sunxi-rsb.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)