OSDN Git Service

drm/exynos-vidi: convert platform driver to use dev_groups
authorEmil Velikov <emil.l.velikov@gmail.com>
Sun, 17 May 2020 19:36:55 +0000 (20:36 +0100)
committerInki Dae <inki.dae@samsung.com>
Mon, 18 May 2020 04:19:18 +0000 (13:19 +0900)
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@samsung.com>
Cc: Joonyoung Shim <jy0922.shim@samsung.com>
Cc: Seung-Woo Kim <sw0312.kim@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
drivers/gpu/drm/exynos/exynos_drm_vidi.c

index 2824671..e5662bd 100644 (file)
@@ -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,
        },
 };