in aspeed_gfx_load(), clk_prepare_enable() might return an
unexpected value. using devm_clk_get_enabled() instead of
devm_clk_get() and clk_prepare_enable() can avoid this problem.

Fixes: 4f2a8f5898ec ("drm: Add ASPEED GFX driver")
Signed-off-by: Yuanjun Gong <ruc_gongyuan...@163.com>
---
 drivers/gpu/drm/aspeed/aspeed_gfx_drv.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c 
b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
index c8c7f8215155..3d3ee70fb5ea 100644
--- a/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
+++ b/drivers/gpu/drm/aspeed/aspeed_gfx_drv.c
@@ -193,13 +193,12 @@ static int aspeed_gfx_load(struct drm_device *drm)
        }
        reset_control_deassert(priv->rst);
 
-       priv->clk = devm_clk_get(drm->dev, NULL);
+       priv->clk = devm_clk_get_enabled(drm->dev, NULL);
        if (IS_ERR(priv->clk)) {
                dev_err(&pdev->dev,
                        "missing or invalid clk device tree entry");
                return PTR_ERR(priv->clk);
        }
-       clk_prepare_enable(priv->clk);
 
        /* Sanitize control registers */
        writel(0, priv->base + CRT_CTRL1);
-- 
2.17.1

Reply via email to