drm/etnaviv: Don't ignore errors on getting clocks
authorLubomir Rintel <lkundrak@v3.sk>
Tue, 16 Jun 2020 21:21:25 +0000 (23:21 +0200)
committerLucas Stach <l.stach@pengutronix.de>
Thu, 18 Jun 2020 12:23:11 +0000 (14:23 +0200)
There might be good reasons why the getting a clock failed. To treat the
clocks as optional we're specifically only interested in ignoring -ENOENT,
and devm_clk_get_optional() does just that.

Note that this preserves the original behavior of all clocks being
optional. The binding document mandates the "bus" clock while the dove
machine only specifies "core".

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
drivers/gpu/drm/etnaviv/etnaviv_gpu.c

index c6dacfe..f303172 100644 (file)
@@ -1786,26 +1786,26 @@ static int etnaviv_gpu_platform_probe(struct platform_device *pdev)
        }
 
        /* Get Clocks: */
-       gpu->clk_reg = devm_clk_get(&pdev->dev, "reg");
+       gpu->clk_reg = devm_clk_get_optional(&pdev->dev, "reg");
        DBG("clk_reg: %p", gpu->clk_reg);
        if (IS_ERR(gpu->clk_reg))
-               gpu->clk_reg = NULL;
+               return PTR_ERR(gpu->clk_reg);
 
-       gpu->clk_bus = devm_clk_get(&pdev->dev, "bus");
+       gpu->clk_bus = devm_clk_get_optional(&pdev->dev, "bus");
        DBG("clk_bus: %p", gpu->clk_bus);
        if (IS_ERR(gpu->clk_bus))
-               gpu->clk_bus = NULL;
+               return PTR_ERR(gpu->clk_bus);
 
-       gpu->clk_core = devm_clk_get(&pdev->dev, "core");
+       gpu->clk_core = devm_clk_get_optional(&pdev->dev, "core");
        DBG("clk_core: %p", gpu->clk_core);
        if (IS_ERR(gpu->clk_core))
-               gpu->clk_core = NULL;
+               return PTR_ERR(gpu->clk_core);
        gpu->base_rate_core = clk_get_rate(gpu->clk_core);
 
-       gpu->clk_shader = devm_clk_get(&pdev->dev, "shader");
+       gpu->clk_shader = devm_clk_get_optional(&pdev->dev, "shader");
        DBG("clk_shader: %p", gpu->clk_shader);
        if (IS_ERR(gpu->clk_shader))
-               gpu->clk_shader = NULL;
+               return PTR_ERR(gpu->clk_shader);
        gpu->base_rate_shader = clk_get_rate(gpu->clk_shader);
 
        /* TODO: figure out max mapped size */