mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
thermal/drivers/qoriq: Disable clock on resume failure
qoriq_tmu_resume() enables the TMU clock before clearing the
power-down bit and enabling monitoring.
If either register update fails, the function returns with the clock
still enabled. This leaves the clock enable count unbalanced after a
failed resume.
Disable the clock on those failure paths before returning the error.
Fixes: 51904045d4 ("thermal: qoriq: Add clock operations")
Cc: stable@vger.kernel.org
Signed-off-by: Can Peng <pengcan@kylinos.cn>
Signed-off-by: Daniel Lezcano <daniel.lezcano@kernel.org>
Link: https://patch.msgid.link/20260722075625.452684-1-pengcan@kylinos.cn
This commit is contained in:
parent
6b73e78462
commit
fcbf9964b6
|
|
@ -415,11 +415,20 @@ static int qoriq_tmu_resume(struct device *dev)
|
|||
if (data->ver > TMU_VER1) {
|
||||
ret = regmap_clear_bits(data->regmap, REGS_TMR, TMR_CMD);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto disable_clk;
|
||||
}
|
||||
|
||||
/* Enable monitoring */
|
||||
return regmap_update_bits(data->regmap, REGS_TMR, TMR_ME, TMR_ME);
|
||||
ret = regmap_update_bits(data->regmap, REGS_TMR, TMR_ME, TMR_ME);
|
||||
if (ret)
|
||||
goto disable_clk;
|
||||
|
||||
return 0;
|
||||
|
||||
disable_clk:
|
||||
clk_disable_unprepare(data->clk);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static DEFINE_SIMPLE_DEV_PM_OPS(qoriq_tmu_pm_ops,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user