WSL2-Linux-Kernel/drivers/gpu/drm/sun4i
XuDong Liu 6b5a02a572 drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks`
[ Upstream commit 123ee07ba5 ]

Smatch reports:
drivers/gpu/drm/sun4i/sun4i_tcon.c:805 sun4i_tcon_init_clocks() warn:
'tcon->clk' from clk_prepare_enable() not released on lines: 792,801.

In the function sun4i_tcon_init_clocks(), tcon->clk and tcon->sclk0 are
not disabled in the error handling, which affects the release of
these variable. Although sun4i_tcon_bind(), which calls
sun4i_tcon_init_clocks(), use sun4i_tcon_free_clocks to disable the
variables mentioned, but the error handling branch of
sun4i_tcon_init_clocks() ignores the required disable process.

To fix this issue, use the devm_clk_get_enabled to automatically
balance enable and disabled calls. As original implementation use
sun4i_tcon_free_clocks() to disable clk explicitly, we delete the
related calls and error handling that are no longer needed.

Fixes: 9026e0d122 ("drm: Add Allwinner A10 Display Engine support")
Fixes: b14e945bda ("drm/sun4i: tcon: Prepare and enable TCON channel 0 clock at init")
Fixes: 8e92404725 ("drm/sun4i: support TCONs without channel 1")
Fixes: 34d698f6e3 ("drm/sun4i: Add has_channel_0 TCON quirk")
Signed-off-by: XuDong Liu <m202071377@hust.edu.cn>
Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
Signed-off-by: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20230430112347.4689-1-m202071377@hust.edu.cn
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-23 13:46:59 +02:00
..
Kconfig
Makefile
sun4i_backend.c
sun4i_backend.h
sun4i_crtc.c
sun4i_crtc.h
sun4i_dotclock.c
sun4i_dotclock.h
sun4i_drv.c drm/sun4i: fix missing component unbind on bind errors 2023-03-22 13:31:34 +01:00
sun4i_drv.h
sun4i_framebuffer.c
sun4i_framebuffer.h
sun4i_frontend.c
sun4i_frontend.h
sun4i_hdmi.h
sun4i_hdmi_ddc_clk.c
sun4i_hdmi_enc.c
sun4i_hdmi_i2c.c
sun4i_hdmi_tmds_clk.c
sun4i_layer.c
sun4i_layer.h
sun4i_lvds.c
sun4i_lvds.h
sun4i_rgb.c
sun4i_rgb.h
sun4i_tcon.c drm: sun4i_tcon: use devm_clk_get_enabled in `sun4i_tcon_init_clocks` 2023-07-23 13:46:59 +02:00
sun4i_tcon.h
sun4i_tv.c
sun6i_drc.c
sun6i_mipi_dsi.c drm/sun4i: dsi: Prevent underflow when computing packet sizes 2022-08-25 11:40:29 +02:00
sun6i_mipi_dsi.h
sun8i_csc.c
sun8i_csc.h
sun8i_dw_hdmi.c
sun8i_dw_hdmi.h
sun8i_hdmi_phy.c
sun8i_hdmi_phy_clk.c
sun8i_mixer.c
sun8i_mixer.h
sun8i_tcon_top.c
sun8i_tcon_top.h
sun8i_ui_layer.c
sun8i_ui_layer.h
sun8i_ui_scaler.c
sun8i_ui_scaler.h
sun8i_vi_layer.c
sun8i_vi_layer.h
sun8i_vi_scaler.c
sun8i_vi_scaler.h
sunxi_engine.h