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 bunch of sysfs files.

Cc: Bartlomiej Zolnierkiewicz <b.zolnier...@samsung.com>
Cc: dri-devel@lists.freedesktop.org
Cc: linux-fb...@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
---
 drivers/video/fbdev/sm501fb.c | 37 +++++++++--------------------------
 1 file changed, 9 insertions(+), 28 deletions(-)

diff --git a/drivers/video/fbdev/sm501fb.c b/drivers/video/fbdev/sm501fb.c
index dde52d027416..c633ee76a73d 100644
--- a/drivers/video/fbdev/sm501fb.c
+++ b/drivers/video/fbdev/sm501fb.c
@@ -1274,6 +1274,14 @@ static ssize_t sm501fb_debug_show_pnl(struct device *dev,
 
 static DEVICE_ATTR(fbregs_pnl, 0444, sm501fb_debug_show_pnl, NULL);
 
+static struct attribute *sm501fb_attrs[] = {
+       &dev_attr_crt_src.attr,
+       &dev_attr_fbregs_pnl.attr,
+       &dev_attr_fbregs_crt.attr,
+       NULL,
+};
+ATTRIBUTE_GROUPS(sm501fb);
+
 /* acceleration operations */
 static int sm501fb_sync(struct fb_info *info)
 {
@@ -2016,33 +2024,9 @@ static int sm501fb_probe(struct platform_device *pdev)
                goto err_started_crt;
        }
 
-       /* create device files */
-
-       ret = device_create_file(dev, &dev_attr_crt_src);
-       if (ret)
-               goto err_started_panel;
-
-       ret = device_create_file(dev, &dev_attr_fbregs_pnl);
-       if (ret)
-               goto err_attached_crtsrc_file;
-
-       ret = device_create_file(dev, &dev_attr_fbregs_crt);
-       if (ret)
-               goto err_attached_pnlregs_file;
-
        /* we registered, return ok */
        return 0;
 
-err_attached_pnlregs_file:
-       device_remove_file(dev, &dev_attr_fbregs_pnl);
-
-err_attached_crtsrc_file:
-       device_remove_file(dev, &dev_attr_crt_src);
-
-err_started_panel:
-       unregister_framebuffer(info->fb[HEAD_PANEL]);
-       sm501_free_init_fb(info, HEAD_PANEL);
-
 err_started_crt:
        unregister_framebuffer(info->fb[HEAD_CRT]);
        sm501_free_init_fb(info, HEAD_CRT);
@@ -2072,10 +2056,6 @@ static int sm501fb_remove(struct platform_device *pdev)
        struct fb_info     *fbinfo_crt = info->fb[0];
        struct fb_info     *fbinfo_pnl = info->fb[1];
 
-       device_remove_file(&pdev->dev, &dev_attr_fbregs_crt);
-       device_remove_file(&pdev->dev, &dev_attr_fbregs_pnl);
-       device_remove_file(&pdev->dev, &dev_attr_crt_src);
-
        sm501_free_init_fb(info, HEAD_CRT);
        sm501_free_init_fb(info, HEAD_PANEL);
 
@@ -2233,6 +2213,7 @@ static int sm501fb_resume(struct platform_device *pdev)
 #endif
 
 static struct platform_driver sm501fb_driver = {
+       .dev_groups     = sm501fb_groups,
        .probe          = sm501fb_probe,
        .remove         = sm501fb_remove,
        .suspend        = sm501fb_suspend,
-- 
2.22.0

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to