diff options
author | Javi Merino <javi.merino@arm.com> | 2015-06-03 11:10:36 +0100 |
---|---|---|
committer | Jon Medhurst <tixy@linaro.org> | 2015-09-02 16:38:16 +0100 |
commit | 7d8b1ff6d34e3cfca9d89921c53cfdad68e220a7 (patch) | |
tree | d696009bbf1b39932e06a4d34d5601572480203a | |
parent | 7bbc659fe93918f2614a385e6957b6532f17f255 (diff) |
mali: defer driver registration until the clock has been registered
Clocks are also registered as a module platform driver and you can't
ensure that the clocks will be registered before the Mali driver so
defer the probe of the Mali driver until the clocks are ready.
Signed-off-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Jon Medhurst <tixy@linaro.org>
-rw-r--r-- | drivers/gpu/arm/midgard/mali_kbase_core_linux.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/arm/midgard/mali_kbase_core_linux.c b/drivers/gpu/arm/midgard/mali_kbase_core_linux.c index 8cffa55fa98..2a611c252e6 100644 --- a/drivers/gpu/arm/midgard/mali_kbase_core_linux.c +++ b/drivers/gpu/arm/midgard/mali_kbase_core_linux.c @@ -3513,6 +3513,9 @@ static int kbase_platform_device_probe(struct platform_device *pdev) #endif kbdev->clock = clk_get(kbdev->dev, "clk_mali"); if (IS_ERR_OR_NULL(kbdev->clock)) { + err = PTR_ERR(kbdev->clock); + if (err == -EPROBE_DEFER) + goto out_regulator_get; dev_info(kbdev->dev, "Continuing without Mali clock control\n"); kbdev->clock = NULL; /* Allow probe to continue without clock. */ @@ -3544,6 +3547,7 @@ out_common_init: clk_disable_unprepare(kbdev->clock); out_clock_prepare: clk_put(kbdev->clock); +out_regulator_get: #ifdef CONFIG_MALI_PLATFORM_DEVICETREE pm_runtime_disable(kbdev->dev); #endif |