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@xxxxxxxxxxx> --- 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 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel