[PATCH V2 4/9] drm/exynos: add exynos_dp_panel driver registration to drm driver
Ajay Kumar
ajaykumar.rs at samsung.com
Mon Apr 21 15:39:13 PDT 2014
Register exynos_dp_panel before the list of exynos crtcs and
connectors are probed.
This is needed because exynos_dp_panel should be registered to
the drm_panel list via panel-exynos-dp probe, i.e much before
exynos_dp_bind calls of_drm_find_panel().
Signed-off-by: Ajay Kumar <ajaykumar.rs at samsung.com>
---
Changes since V1:
Added platform_driver_unregister(&exynos_dp_panel_driver) to
exynos_drm_platform_remove as per Jingoo Han's correction
drivers/gpu/drm/exynos/exynos_drm_drv.c | 15 +++++++++++++++
drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 +
2 files changed, 16 insertions(+)
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 1d653f8..2db7f67 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -530,12 +530,23 @@ static int exynos_drm_platform_probe(struct platform_device *pdev)
goto err_unregister_ipp_drv;
#endif
+#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
+ ret = platform_driver_register(&exynos_dp_panel_driver);
+ if (ret < 0)
+ goto err_unregister_dp_panel;
+#endif
+
ret = component_master_add(&pdev->dev, &exynos_drm_ops);
if (ret < 0)
DRM_DEBUG_KMS("re-tried by last sub driver probed later.\n");
return 0;
+#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
+ platform_driver_unregister(&exynos_dp_panel_driver);
+err_unregister_dp_panel:
+#endif
+
#ifdef CONFIG_DRM_EXYNOS_IPP
err_unregister_ipp_drv:
platform_driver_unregister(&ipp_driver);
@@ -587,6 +598,10 @@ err_unregister_fimd_drv:
static int exynos_drm_platform_remove(struct platform_device *pdev)
{
+#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
+ platform_driver_unregister(&exynos_dp_panel_driver);
+#endif
+
#ifdef CONFIG_DRM_EXYNOS_IPP
exynos_platform_device_ipp_unregister();
platform_driver_unregister(&ipp_driver);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index fc15fe6..b33050d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -368,4 +368,5 @@ extern struct platform_driver fimc_driver;
extern struct platform_driver rotator_driver;
extern struct platform_driver gsc_driver;
extern struct platform_driver ipp_driver;
+extern struct platform_driver exynos_dp_panel_driver;
#endif
--
1.7.9.5
More information about the dri-devel
mailing list