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:
Can Peng 2026-07-22 15:56:25 +08:00 committed by Daniel Lezcano
parent 6b73e78462
commit fcbf9964b6
No known key found for this signature in database
GPG Key ID: A832238A2A4FE84F

View File

@ -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,