Hi Email,

20. 5. 18. 오전 4:36에 Emil Velikov 이(가) 쓴 글:
> Platform drivers now have the option to have the platform core create
> and remove any needed sysfs attribute files.  So take advantage of that
> and do not register "by hand" a sysfs file.
> 
> Cc: Inki Dae <inki....@samsung.com>
> Cc: Joonyoung Shim <jy0922.s...@samsung.com>
> Cc: Seung-Woo Kim <sw0312....@samsung.com>
> Cc: Kyungmin Park <kyungmin.p...@samsung.com>
> Cc: dri-devel@lists.freedesktop.org
> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com>
> ---
> Compile tested only. Please test locally and merge through your tree.

Thanks for taking care of this. Tested and worked well like below,
# echo 1 > /sys/devices/platform/exynos-drm-vidi/connection
# modetest -M exynos -v -s 91@89:1920x1080 -s 77@54:1440x2560
setting mode 1920x1080-60Hz@XR24 on connectors 91, crtc 89
setting mode 1440x2560-60Hz@XR24 on connectors 77, crtc 54
freq: 60.22Hz
freq: 50.44Hz
freq: 59.78Hz
freq: 50.00Hz
freq: 59.77Hz
freq: 50.00Hz

Ps. 91 is connector ID of exynos-drm-vidi


Merged.

Thanks,
Inki Dae

> ---
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c | 26 ++++++++----------------
>  1 file changed, 8 insertions(+), 18 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c 
> b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index 282467121699..e5662bdcbbde 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -214,6 +214,12 @@ static ssize_t vidi_store_connection(struct device *dev,
>  static DEVICE_ATTR(connection, 0644, vidi_show_connection,
>                       vidi_store_connection);
>  
> +static struct attribute *vidi_attrs[] = {
> +     &dev_attr_connection.attr,
> +     NULL,
> +};
> +ATTRIBUTE_GROUPS(vidi);
> +
>  int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
>                               struct drm_file *file_priv)
>  {
> @@ -439,7 +445,6 @@ static int vidi_probe(struct platform_device *pdev)
>  {
>       struct vidi_context *ctx;
>       struct device *dev = &pdev->dev;
> -     int ret;
>  
>       ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
>       if (!ctx)
> @@ -453,23 +458,7 @@ static int vidi_probe(struct platform_device *pdev)
>  
>       platform_set_drvdata(pdev, ctx);
>  
> -     ret = device_create_file(dev, &dev_attr_connection);
> -     if (ret < 0) {
> -             DRM_DEV_ERROR(dev,
> -                           "failed to create connection sysfs.\n");
> -             return ret;
> -     }
> -
> -     ret = component_add(dev, &vidi_component_ops);
> -     if (ret)
> -             goto err_remove_file;
> -
> -     return ret;
> -
> -err_remove_file:
> -     device_remove_file(dev, &dev_attr_connection);
> -
> -     return ret;
> +     return component_add(dev, &vidi_component_ops);
>  }
>  
>  static int vidi_remove(struct platform_device *pdev)
> @@ -494,5 +483,6 @@ struct platform_driver vidi_driver = {
>       .driver         = {
>               .name   = "exynos-drm-vidi",
>               .owner  = THIS_MODULE,
> +             .dev_groups = vidi_groups,
>       },
>  };
> 
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to