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

RAHUL SHARMA rahul.sharma at samsung.com
Thu Oct 11 23:06:41 PDT 2012


On Fri, Oct 12, 2012 at 6:22 AM, Inki Dae <inki.dae at samsung.com> wrote:
>
>
> 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>
>> ---
>>  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.
>

Sure Mr. Dae,
I will move exynos_drm_hdmi_pdev to exynos_drm_hdmi.c and wrap platform_device_register_simple
in platform_device_hdmi_register in v1.
regards,
Rahul Sharma

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


More information about the dri-devel mailing list