[PATCH 3/3] drm/exynos-vidi: convert platform driver to use dev_groups
Inki Dae
inki.dae at samsung.com
Mon May 18 05:03:04 UTC 2020
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.dae at samsung.com>
> Cc: Joonyoung Shim <jy0922.shim at samsung.com>
> Cc: Seung-Woo Kim <sw0312.kim at samsung.com>
> Cc: Kyungmin Park <kyungmin.park at samsung.com>
> Cc: dri-devel at lists.freedesktop.org
> Signed-off-by: Emil Velikov <emil.l.velikov at 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 at 89:1920x1080 -s 77 at 54:1440x2560
setting mode 1920x1080-60Hz at XR24 on connectors 91, crtc 89
setting mode 1440x2560-60Hz at 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,
> },
> };
>
More information about the dri-devel
mailing list