of: Move simple-framebuffer device handling from simplefb to of
authorHector Martin <marcan@marcan.st>
Sun, 12 Dec 2021 06:24:05 +0000 (15:24 +0900)
committerThomas Zimmermann <tzimmermann@suse.de>
Thu, 16 Dec 2021 09:55:26 +0000 (10:55 +0100)
This code is required for both simplefb and simpledrm, so let's move it
into the OF core instead of having it as an ad-hoc initcall in the
drivers.

Signed-off-by: Hector Martin <marcan@marcan.st>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20211212062407.138309-2-marcan@marcan.st
drivers/of/platform.c
drivers/video/fbdev/simplefb.c

index b3faf89..7933500 100644 (file)
@@ -540,6 +540,10 @@ static int __init of_platform_default_populate_init(void)
                of_node_put(node);
        }
 
+       node = of_get_compatible_child(of_chosen, "simple-framebuffer");
+       of_platform_device_create(node, NULL, NULL);
+       of_node_put(node);
+
        /* Populate everything else. */
        of_platform_default_populate(NULL, NULL, NULL);
 
index 62f0ded..ee8b441 100644 (file)
@@ -530,26 +530,7 @@ static struct platform_driver simplefb_driver = {
        .remove = simplefb_remove,
 };
 
-static int __init simplefb_init(void)
-{
-       int ret;
-       struct device_node *np;
-
-       ret = platform_driver_register(&simplefb_driver);
-       if (ret)
-               return ret;
-
-       if (IS_ENABLED(CONFIG_OF_ADDRESS) && of_chosen) {
-               for_each_child_of_node(of_chosen, np) {
-                       if (of_device_is_compatible(np, "simple-framebuffer"))
-                               of_platform_device_create(np, NULL, NULL);
-               }
-       }
-
-       return 0;
-}
-
-fs_initcall(simplefb_init);
+module_platform_driver(simplefb_driver);
 
 MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>");
 MODULE_DESCRIPTION("Simple framebuffer driver");