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@xxxxxxxxxxx> > Cc: Joonyoung Shim <jy0922.shim@xxxxxxxxxxx> > Cc: Seung-Woo Kim <sw0312.kim@xxxxxxxxxxx> > Cc: Kyungmin Park <kyungmin.park@xxxxxxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Emil Velikov <emil.l.velikov@xxxxxxxxx> > --- > 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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel