Explorar o código

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>
Inki Dae %!s(int64=10) %!d(string=hai) anos
pai
achega
f7c2f36f43
Modificáronse 1 ficheiros con 6 adicións e 0 borrados
  1. 6 0
      drivers/gpu/drm/exynos/exynos_drm_drv.c

+ 6 - 0
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);
 	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) {
 	list_for_each_entry(cdev, &drm_component_list, list) {
 		/*
 		/*
 		 * Add components to master only in case that crtc and
 		 * Add components to master only in case that crtc and