aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/sun4i/sun8i_tcon_top.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
index fc36e0c10a37..b1e7c76e9c17 100644
--- a/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
+++ b/drivers/gpu/drm/sun4i/sun8i_tcon_top.c
@@ -227,7 +227,7 @@ static int sun8i_tcon_top_bind(struct device *dev, struct device *master,
227 227
228err_unregister_gates: 228err_unregister_gates:
229 for (i = 0; i < CLK_NUM; i++) 229 for (i = 0; i < CLK_NUM; i++)
230 if (clk_data->hws[i]) 230 if (!IS_ERR_OR_NULL(clk_data->hws[i]))
231 clk_hw_unregister_gate(clk_data->hws[i]); 231 clk_hw_unregister_gate(clk_data->hws[i]);
232 clk_disable_unprepare(tcon_top->bus); 232 clk_disable_unprepare(tcon_top->bus);
233err_assert_reset: 233err_assert_reset:
@@ -245,7 +245,8 @@ static void sun8i_tcon_top_unbind(struct device *dev, struct device *master,
245 245
246 of_clk_del_provider(dev->of_node); 246 of_clk_del_provider(dev->of_node);
247 for (i = 0; i < CLK_NUM; i++) 247 for (i = 0; i < CLK_NUM; i++)
248 clk_hw_unregister_gate(clk_data->hws[i]); 248 if (clk_data->hws[i])
249 clk_hw_unregister_gate(clk_data->hws[i]);
249 250
250 clk_disable_unprepare(tcon_top->bus); 251 clk_disable_unprepare(tcon_top->bus);
251 reset_control_assert(tcon_top->rst); 252 reset_control_assert(tcon_top->rst);