aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/exynos
diff options
context:
space:
mode:
authorInki Dae <inki.dae@samsung.com>2014-11-06 23:00:37 +0900
committerInki Dae <inki.dae@samsung.com>2014-11-10 14:40:07 +0900
commitf7c2f36f4395f12d8ecb25c28ee88ec87b457089 (patch)
tree2db70f742362394dbc4496cc3c5c5fad0abdd6bb /drivers/gpu/drm/exynos
parentdrm/exynos: resolve infinite loop issue on multi-platform (diff)
downloadlinux-dev-f7c2f36f4395f12d8ecb25c28ee88ec87b457089.tar.xz
linux-dev-f7c2f36f4395f12d8ecb25c28ee88ec87b457089.zip
drm/exynos: resolve infinite loop issue on non multi-platform
This patch resovles the infinite loop issue incurred when Exyno drm driver is enabled but all kms drivers are disabled on Exynos board by returning -EPROBE_DEFER only in case that there is kms device registered. Signed-off-by: Inki Dae <inki.dae@samsung.com>
Diffstat (limited to 'drivers/gpu/drm/exynos')
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index d41aae0dcc60..b8abbc4a3d8b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -495,6 +495,12 @@ static struct component_match *exynos_drm_match_add(struct device *dev)
mutex_lock(&drm_component_lock);
+ /* Do not retry to probe if there is no any kms driver regitered. */
+ if (list_empty(&drm_component_list)) {
+ mutex_unlock(&drm_component_lock);
+ return ERR_PTR(-ENODEV);
+ }
+
list_for_each_entry(cdev, &drm_component_list, list) {
/*
* Add components to master only in case that crtc and