Unverified Commit 017a716e authored by Jernej Skrabec's avatar Jernej Skrabec Committed by Maxime Ripard
Browse files

bus: sunxi-rsb: Fix shutdown



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: 4a0dbc12 ("bus: sunxi-rsb: Implement runtime power management")
Signed-off-by: default avatarJernej Skrabec <jernej.skrabec@gmail.com>
Signed-off-by: default avatarMaxime Ripard <maxime@cerno.tech>
Link: https://lore.kernel.org/r/20211121083537.612473-1-jernej.skrabec@gmail.com
parent fa55b7dc
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -687,10 +687,10 @@ 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);

	/* Keep the clock and PM reference counts consistent. */
	if (!pm_runtime_status_suspended(rsb->dev))
		clk_disable_unprepare(rsb->clk);
}