The reset line is deasserted at bind, and asserted if we ever encounter an
error there. However, it's never asserted in unbind which will lead to a
resource unbalance.

Signed-off-by: Maxime Ripard <max...@cerno.tech>
Reviewed-by: Jernej Skrabec <jernej.skra...@gmail.com>

diff --git a/drivers/gpu/drm/sun4i/sun4i_tv.c b/drivers/gpu/drm/sun4i/sun4i_tv.c
index ad6a3739bfa9..74ff5ad6a8b9 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tv.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tv.c
@@ -605,6 +605,7 @@ static void sun4i_tv_unbind(struct device *dev, struct 
device *master,
        drm_connector_cleanup(&tv->connector);
        drm_encoder_cleanup(&tv->encoder);
        clk_disable_unprepare(tv->clk);
+       reset_control_assert(tv->reset);
 }
 
 static const struct component_ops sun4i_tv_ops = {

-- 
b4 0.10.0-dev-65ba7

Reply via email to