Message ID | 20211207072943.121961-2-marcan@marcan.st (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/simpledrm: Apple M1 / DT platform support fixes | expand |
Hi Am 07.12.21 um 08:29 schrieb Hector Martin: > 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> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> This looks much better than before. Thank you. > --- > drivers/of/platform.c | 5 +++++ > drivers/video/fbdev/simplefb.c | 21 +-------------------- > 2 files changed, 6 insertions(+), 20 deletions(-) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index b3faf89744aa..e097f40b03c0 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -540,6 +540,11 @@ static int __init of_platform_default_populate_init(void) > of_node_put(node); > } > > + for_each_child_of_node(of_chosen, node) { > + if (of_device_is_compatible(node, "simple-framebuffer")) > + of_platform_device_create(node, NULL, NULL); > + } > + > /* Populate everything else. */ > of_platform_default_populate(NULL, NULL, NULL); > > diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c > index b63074fd892e..57541887188b 100644 > --- a/drivers/video/fbdev/simplefb.c > +++ b/drivers/video/fbdev/simplefb.c > @@ -541,26 +541,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"); >
Am 07.12.21 um 10:02 schrieb Thomas Zimmermann: > Hi > > Am 07.12.21 um 08:29 schrieb Hector Martin: >> 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> > > Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Well, please don't take this as a review. :) > > This looks much better than before. Thank you. > >> --- >> drivers/of/platform.c | 5 +++++ >> drivers/video/fbdev/simplefb.c | 21 +-------------------- >> 2 files changed, 6 insertions(+), 20 deletions(-) >> >> diff --git a/drivers/of/platform.c b/drivers/of/platform.c >> index b3faf89744aa..e097f40b03c0 100644 >> --- a/drivers/of/platform.c >> +++ b/drivers/of/platform.c >> @@ -540,6 +540,11 @@ static int __init >> of_platform_default_populate_init(void) >> of_node_put(node); >> } >> + for_each_child_of_node(of_chosen, node) { >> + if (of_device_is_compatible(node, "simple-framebuffer")) >> + of_platform_device_create(node, NULL, NULL); >> + } >> + >> /* Populate everything else. */ >> of_platform_default_populate(NULL, NULL, NULL); >> diff --git a/drivers/video/fbdev/simplefb.c >> b/drivers/video/fbdev/simplefb.c >> index b63074fd892e..57541887188b 100644 >> --- a/drivers/video/fbdev/simplefb.c >> +++ b/drivers/video/fbdev/simplefb.c >> @@ -541,26 +541,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"); >> >
On Tue, Dec 7, 2021 at 1:31 AM Hector Martin <marcan@marcan.st> wrote: > > 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> > --- > drivers/of/platform.c | 5 +++++ > drivers/video/fbdev/simplefb.c | 21 +-------------------- > 2 files changed, 6 insertions(+), 20 deletions(-) > > diff --git a/drivers/of/platform.c b/drivers/of/platform.c > index b3faf89744aa..e097f40b03c0 100644 > --- a/drivers/of/platform.c > +++ b/drivers/of/platform.c > @@ -540,6 +540,11 @@ static int __init of_platform_default_populate_init(void) > of_node_put(node); > } > > + for_each_child_of_node(of_chosen, node) { > + if (of_device_is_compatible(node, "simple-framebuffer")) node = of_get_compatible_child(of_chosen, "simple-framebuffer"); of_platform_device_create(node, NULL, NULL); of_node_put(node); Please Cc the DT list. Looks like this patch can be applied independently. (Better get the other 2 into drm-misc soon or it will miss 5.17). Rob
Hi Am 08.12.21 um 18:49 schrieb Rob Herring: > On Tue, Dec 7, 2021 at 1:31 AM Hector Martin <marcan@marcan.st> wrote: >> >> 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> >> --- >> drivers/of/platform.c | 5 +++++ >> drivers/video/fbdev/simplefb.c | 21 +-------------------- >> 2 files changed, 6 insertions(+), 20 deletions(-) >> >> diff --git a/drivers/of/platform.c b/drivers/of/platform.c >> index b3faf89744aa..e097f40b03c0 100644 >> --- a/drivers/of/platform.c >> +++ b/drivers/of/platform.c >> @@ -540,6 +540,11 @@ static int __init of_platform_default_populate_init(void) >> of_node_put(node); >> } >> >> + for_each_child_of_node(of_chosen, node) { >> + if (of_device_is_compatible(node, "simple-framebuffer")) > > node = of_get_compatible_child(of_chosen, "simple-framebuffer"); > of_platform_device_create(node, NULL, NULL); > of_node_put(node); > > Please Cc the DT list. Looks like this patch can be applied > independently. (Better get the other 2 into drm-misc soon or it will > miss 5.17). Can we merge the whole patchset through drm-misc? Patches 2 and 3 are useless without the first one. Best regards Thomas > > Rob >
diff --git a/drivers/of/platform.c b/drivers/of/platform.c index b3faf89744aa..e097f40b03c0 100644 --- a/drivers/of/platform.c +++ b/drivers/of/platform.c @@ -540,6 +540,11 @@ static int __init of_platform_default_populate_init(void) of_node_put(node); } + for_each_child_of_node(of_chosen, node) { + if (of_device_is_compatible(node, "simple-framebuffer")) + of_platform_device_create(node, NULL, NULL); + } + /* Populate everything else. */ of_platform_default_populate(NULL, NULL, NULL); diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c index b63074fd892e..57541887188b 100644 --- a/drivers/video/fbdev/simplefb.c +++ b/drivers/video/fbdev/simplefb.c @@ -541,26 +541,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");
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> --- drivers/of/platform.c | 5 +++++ drivers/video/fbdev/simplefb.c | 21 +-------------------- 2 files changed, 6 insertions(+), 20 deletions(-)