[PATCH 2/2] drm: exynos: moved exynos drm hdmi device registration to drm driver

Inki Dae inki.dae at samsung.com
Thu Oct 11 17:52:25 PDT 2012


2012년 10월 12일 금요일에 Rahul Sharma님이 작성:

> This patch moved the exynos-drm-hdmi platform device registration to the
> drm
> driver. When DT is enabled, platform devices needs to be registered within
> the
> driver code. This patch fits the requirement of both DT and Non DT based
> drm
> drivers.
>
> Signed-off-by: Rahul Sharma <rahul.sharma at samsung.com <javascript:;>>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_drv.c |   15 ++++++++++++++-
>  1 files changed, 14 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> index 4200f15..643c47f 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
> @@ -53,6 +53,9 @@
>  /* platform device pointer for eynos drm device. */
>  static struct platform_device *exynos_drm_pdev;
>
> +/* platform device pointer for common drm hdmi device. */
> +static struct platform_device *exynos_drm_hdmi_pdev;


Is exynos_drm_hdmi_pdev related to exynos_drm_drv? I don't really like such
thing. let's comply with layer rule. so how about moving
exynos_drm_hdmi_pdev into exynos_drm_hdmi layer and just calling
platform_device_hdmi_register instead of platform_device_register_simple?
for this, exynos_drm_hdmi_pdev should be defined and declared in
exynos_drm_hdmi layer. it means that we have one wrapper to common hdmi
layer.

+
>  static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
>  {
>         struct exynos_drm_private *private;
> @@ -329,6 +332,13 @@ static int __init exynos_drm_init(void)
>         ret = platform_driver_register(&exynos_drm_common_hdmi_driver);
>         if (ret < 0)
>                 goto out_common_hdmi;
> +
> +       exynos_drm_hdmi_pdev = platform_device_register_simple(
> +                       "exynos-drm-hdmi", -1, NULL, 0);
> +       if (IS_ERR_OR_NULL(exynos_drm_hdmi_pdev)) {
> +               ret = PTR_ERR(exynos_drm_hdmi_pdev);
> +               goto out_common_hdmi_dev;
> +       }
>  #endif
>
>  #ifdef CONFIG_DRM_EXYNOS_VIDI
> @@ -366,11 +376,13 @@ out_g2d:
>  #endif
>
>  #ifdef CONFIG_DRM_EXYNOS_VIDI
> -out_vidi:
>         platform_driver_unregister(&vidi_driver);
> +out_vidi:
>  #endif
>
>  #ifdef CONFIG_DRM_EXYNOS_HDMI
> +       platform_device_unregister(exynos_drm_hdmi_pdev);
> +out_common_hdmi_dev:
>         platform_driver_unregister(&exynos_drm_common_hdmi_driver);
>  out_common_hdmi:
>         platform_driver_unregister(&mixer_driver);
> @@ -399,6 +411,7 @@ static void __exit exynos_drm_exit(void)
>  #endif
>
>  #ifdef CONFIG_DRM_EXYNOS_HDMI
> +       platform_device_unregister(exynos_drm_hdmi_pdev);


ditto. let's call platform_device_hdmi_unregister instead.


>         platform_driver_unregister(&exynos_drm_common_hdmi_driver);
>         platform_driver_unregister(&mixer_driver);
>         platform_driver_unregister(&hdmi_driver);
> --
> 1.7.0.4
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org <javascript:;>
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20121012/9bac1e46/attachment.html>


More information about the dri-devel mailing list