diff mbox

[4/7] drm/exynos: add exynos_dp_panel driver registration to drm driver

Message ID 1397658786-26138-5-git-send-email-ajaykumar.rs@samsung.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ajay Kumar April 16, 2014, 2:33 p.m. UTC
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@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 +++++++++++
 drivers/gpu/drm/exynos/exynos_drm_drv.h |  1 +
 2 files changed, 12 insertions(+)

Comments

Jingoo Han April 18, 2014, 8:57 a.m. UTC | #1
On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:
> 
> 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@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 +++++++++++
>  drivers/gpu/drm/exynos/exynos_drm_drv.h |  1 +
>  2 files changed, 12 insertions(+)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 1d1c604..47266e7 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -560,12 +560,23 @@ static int exynos_drm_platform_probe(struct platform_device *pdev)
>  		goto err_unregister_ipp;
>  #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

Please add platform_driver_unregister() to exynos_drm_platform_remove(),
as well as exynos_drm_platform_probe().

Best regards,
Jingoo Han

> +
>  #ifdef CONFIG_DRM_EXYNOS_IPP
>  	exynos_platform_device_ipp_unregister();
>  err_unregister_ipp:
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> index 257ce09..f606290 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.8.1.2
Ajay kumar April 18, 2014, 7:50 p.m. UTC | #2
Hi Jingoo,


On Fri, Apr 18, 2014 at 2:27 PM, Jingoo Han <jg1.han@samsung.com> wrote:

> On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:
> >
> > 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@samsung.com>
> > ---
> >  drivers/gpu/drm/exynos/exynos_drm_drv.c | 11 +++++++++++
> >  drivers/gpu/drm/exynos/exynos_drm_drv.h |  1 +
> >  2 files changed, 12 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> > index 1d1c604..47266e7 100644
> > --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> > +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> > @@ -560,12 +560,23 @@ static int exynos_drm_platform_probe(struct
> platform_device *pdev)
> >               goto err_unregister_ipp;
> >  #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
>
> Please add platform_driver_unregister() to exynos_drm_platform_remove(),
>
Right, I have missed adding it in exynos_drm_platform_remove().

as well as exynos_drm_platform_probe().
>
> I have already added for this case!


> Best regards,
> Jingoo Han
>
> > +
> >  #ifdef CONFIG_DRM_EXYNOS_IPP
> >       exynos_platform_device_ipp_unregister();
> >  err_unregister_ipp:
> > diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h
> b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> > index 257ce09..f606290 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.8.1.2
>
>
Thanks and Regards,
Ajay Kumar
Jingoo Han April 21, 2014, 12:29 a.m. UTC | #3
On Saturday, April 19, 2014 4:51 AM, Ajay Kumar wrote:
> On Fri, Apr 18, 2014 at 2:27 PM, Jingoo Han <jg1.han@samsung.com> wrote:
> > On Wednesday, April 16, 2014 11:33 PM, Ajay Kumar wrote:

[.....]

> > > +#ifdef CONFIG_DRM_PANEL_EXYNOS_DP
> > > +     platform_driver_unregister(&exynos_dp_panel_driver);
> > > +err_unregister_dp_panel:
> > > +#endif
> > Please add platform_driver_unregister() to exynos_drm_platform_remove(),
> Right, I have missed adding it in exynos_drm_platform_remove().
> > as well as exynos_drm_platform_probe().
> I have already added for this case!

What I wanted to say is that
"Please add platform_driver_unregister() to exynos_drm_platform_remove(),
as you added it to exynos_drm_platform_probe()."

Best regards,
Jingoo Han
diff mbox

Patch

diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 1d1c604..47266e7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -560,12 +560,23 @@  static int exynos_drm_platform_probe(struct platform_device *pdev)
 		goto err_unregister_ipp;
 #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
 	exynos_platform_device_ipp_unregister();
 err_unregister_ipp:
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index 257ce09..f606290 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