Commit 45c8034d authored by Christophe JAILLET's avatar Christophe JAILLET Committed by Thierry Reding

drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe()

If clk_get_sys(..., "pll_d2_out0") fails, the clk_get_sys() call must be
undone.

Add the missing clk_put and a new 'put_pll_d_out0' label in the error
handling path, and use it.

Fixes: 0c921b6d ("drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+")
Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/0182895ead4e4730426616b0d9995954c960b634.1693667005.git.christophe.jaillet@wanadoo.fr
parent bc456b5d
...@@ -254,7 +254,7 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) ...@@ -254,7 +254,7 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc)
if (IS_ERR(rgb->pll_d2_out0)) { if (IS_ERR(rgb->pll_d2_out0)) {
err = PTR_ERR(rgb->pll_d2_out0); err = PTR_ERR(rgb->pll_d2_out0);
dev_err(dc->dev, "failed to get pll_d2_out0: %d\n", err); dev_err(dc->dev, "failed to get pll_d2_out0: %d\n", err);
goto remove; goto put_pll;
} }
} }
...@@ -262,6 +262,8 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc) ...@@ -262,6 +262,8 @@ int tegra_dc_rgb_probe(struct tegra_dc *dc)
return 0; return 0;
put_pll:
clk_put(rgb->pll_d_out0);
remove: remove:
tegra_output_remove(&rgb->output); tegra_output_remove(&rgb->output);
return err; return err;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment