fbdev/vga16fb: Auto-generate module init/exit code
authorThomas Zimmermann <tzimmermann@suse.de>
Mon, 18 Jul 2022 07:23:14 +0000 (09:23 +0200)
committerThomas Zimmermann <tzimmermann@suse.de>
Tue, 19 Jul 2022 11:19:11 +0000 (13:19 +0200)
Move vgag16fb's option parsing into the driver's probe function and
generate the rest of the module's init/exit functions from macros.
Keep the options code, although there are no options defined.

v2:
* no options are supported, remove the code (Javier)

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220718072322.8927-4-tzimmermann@suse.de
drivers/video/fbdev/vga16fb.c

index 9e614c1..3312b6a 100644 (file)
@@ -1304,21 +1304,6 @@ static const struct fb_ops vga16fb_ops = {
        .fb_imageblit   = vga16fb_imageblit,
 };
 
-#ifndef MODULE
-static int __init vga16fb_setup(char *options)
-{
-       char *this_opt;
-
-       if (!options || !*options)
-               return 0;
-
-       while ((this_opt = strsep(&options, ",")) != NULL) {
-               if (!*this_opt) continue;
-       }
-       return 0;
-}
-#endif
-
 static int vga16fb_probe(struct platform_device *dev)
 {
        struct screen_info *si;
@@ -1449,31 +1434,7 @@ static struct platform_driver vga16fb_driver = {
        .id_table = vga16fb_driver_id_table,
 };
 
-static int __init vga16fb_init(void)
-{
-       int ret;
-#ifndef MODULE
-       char *option = NULL;
-
-       if (fb_get_options("vga16fb", &option))
-               return -ENODEV;
-
-       vga16fb_setup(option);
-#endif
-
-       ret = platform_driver_register(&vga16fb_driver);
-       if (ret)
-               return ret;
-
-       return 0;
-}
-
-static void __exit vga16fb_exit(void)
-{
-       platform_driver_unregister(&vga16fb_driver);
-}
+module_platform_driver(vga16fb_driver);
 
 MODULE_DESCRIPTION("Legacy VGA framebuffer device driver");
 MODULE_LICENSE("GPL");
-module_init(vga16fb_init);
-module_exit(vga16fb_exit);