提交 2f92ea21 编写于 作者: H Hector Martin 提交者: Thomas Zimmermann

of: Move simple-framebuffer device handling from simplefb to of

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: NHector Martin <marcan@marcan.st>
Reviewed-by: NRob Herring <robh@kernel.org>
Acked-by: NThomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: NThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/20211212062407.138309-2-marcan@marcan.st
上级 938db276
...@@ -540,6 +540,10 @@ static int __init of_platform_default_populate_init(void) ...@@ -540,6 +540,10 @@ static int __init of_platform_default_populate_init(void)
of_node_put(node); 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. */ /* Populate everything else. */
of_platform_default_populate(NULL, NULL, NULL); of_platform_default_populate(NULL, NULL, NULL);
......
...@@ -530,26 +530,7 @@ static struct platform_driver simplefb_driver = { ...@@ -530,26 +530,7 @@ static struct platform_driver simplefb_driver = {
.remove = simplefb_remove, .remove = simplefb_remove,
}; };
static int __init simplefb_init(void) module_platform_driver(simplefb_driver);
{
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_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>"); MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>");
MODULE_DESCRIPTION("Simple framebuffer driver"); MODULE_DESCRIPTION("Simple framebuffer driver");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册