* [PATCH v5 2/5] of.h: Keep extern declaration of of_* variables when !CONFIG_OF
[not found] ` <1415962996-31712-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2014-11-14 11:03 ` Hans de Goede
2014-11-14 11:03 ` [PATCH v5 3/5] simplefb: Add support for enumerating simplefb dt nodes in /chosen Hans de Goede
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2014-11-14 11:03 UTC (permalink / raw)
To: Tomi Valkeinen
Cc: Stephen Warren, Jean-Christophe Plagniol-Villard, Grant Likely,
Rob Herring, Luc Verhaegen, Maxime Ripard, David Herrmann,
Geert Uytterhoeven, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Hans de Goede
Keep the extern declaration of of_allnodes and friends, when building without
of support, this way code using them can be written like this:
if (IS_ENABLED(CONFIG_OF_PLATFORM) && of_chosen) {
for_each_child_of_node(of_chosen, np)
...
}
And rely on the compiler optimizing it away, avoiding the need for #ifdef-ery.
Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
include/linux/of.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/linux/of.h b/include/linux/of.h
index 6545e7a..f83ca9d 100644
--- a/include/linux/of.h
+++ b/include/linux/of.h
@@ -105,8 +105,6 @@ static inline struct device_node *of_node_get(struct device_node *node)
static inline void of_node_put(struct device_node *node) { }
#endif /* !CONFIG_OF_DYNAMIC */
-#ifdef CONFIG_OF
-
/* Pointer for first entry in chain of all nodes. */
extern struct device_node *of_allnodes;
extern struct device_node *of_chosen;
@@ -114,6 +112,7 @@ extern struct device_node *of_aliases;
extern struct device_node *of_stdout;
extern raw_spinlock_t devtree_lock;
+#ifdef CONFIG_OF
static inline bool of_have_populated_dt(void)
{
return of_allnodes != NULL;
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v5 3/5] simplefb: Add support for enumerating simplefb dt nodes in /chosen
[not found] ` <1415962996-31712-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-14 11:03 ` [PATCH v5 2/5] of.h: Keep extern declaration of of_* variables when !CONFIG_OF Hans de Goede
@ 2014-11-14 11:03 ` Hans de Goede
2014-11-14 11:03 ` [PATCH v5 4/5] fbcon: Change fbcon_init from module_init to fs_initcall Hans de Goede
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2014-11-14 11:03 UTC (permalink / raw)
To: Tomi Valkeinen
Cc: Stephen Warren, Jean-Christophe Plagniol-Villard, Grant Likely,
Rob Herring, Luc Verhaegen, Maxime Ripard, David Herrmann,
Geert Uytterhoeven, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Hans de Goede
Update simplefb to support the new preferred location for simplefb dt nodes
under /chosen.
Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
--
Changes in v2:
-Make name array larger in case we ever encounter more then 10000 framebuffers
Changes in v3:
-Switch to for_each_child_of_node to loop over the nodes under chosen
Changes in v4:
-Wrap the chosen enumeration code in #ifdef CONFIG_OF, as simplefb is used on
non devicetree platforms too
-simplefb can only be built-in, so drop the module_exit function calling
platform_driver_unregister
Changes in v5:
-Cleanup #ifdef CONFIG_OF handling
---
drivers/video/fbdev/simplefb.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index d192946..74c5edd 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -27,6 +27,7 @@
#include <linux/platform_data/simplefb.h>
#include <linux/platform_device.h>
#include <linux/clk-provider.h>
+#include <linux/of_platform.h>
static struct fb_fix_screeninfo simplefb_fix = {
.id = "simple",
@@ -392,7 +393,27 @@ static struct platform_driver simplefb_driver = {
.probe = simplefb_probe,
.remove = simplefb_remove,
};
-module_platform_driver(simplefb_driver);
+
+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) && 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;
+}
+
+module_init(simplefb_init);
MODULE_AUTHOR("Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>");
MODULE_DESCRIPTION("Simple framebuffer driver");
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v5 4/5] fbcon: Change fbcon_init from module_init to fs_initcall
[not found] ` <1415962996-31712-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-14 11:03 ` [PATCH v5 2/5] of.h: Keep extern declaration of of_* variables when !CONFIG_OF Hans de Goede
2014-11-14 11:03 ` [PATCH v5 3/5] simplefb: Add support for enumerating simplefb dt nodes in /chosen Hans de Goede
@ 2014-11-14 11:03 ` Hans de Goede
2014-11-14 11:03 ` [PATCH v5 5/5] simplefb: Change simplefb_init " Hans de Goede
2014-11-14 14:24 ` [PATCH v5 1/5] dt-bindings: simplefb: Specify node location and handoff related properties Tomi Valkeinen
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2014-11-14 11:03 UTC (permalink / raw)
To: Tomi Valkeinen
Cc: Stephen Warren, Jean-Christophe Plagniol-Villard, Grant Likely,
Rob Herring, Luc Verhaegen, Maxime Ripard, David Herrmann,
Geert Uytterhoeven, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Hans de Goede
Various fb drivers register themselves before module_init so as to have a
console as early as possible, this is of little use if fbcon does not
initialize early too.
Fbcon cannot initialize earlier then fs_initcall, because then the creation
of /sys/class/graphics/fbcon will fail.
Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
drivers/video/console/fbcon.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
index eb976ee..ea43724 100644
--- a/drivers/video/console/fbcon.c
+++ b/drivers/video/console/fbcon.c
@@ -3624,7 +3624,7 @@ static int __init fb_console_init(void)
return 0;
}
-module_init(fb_console_init);
+fs_initcall(fb_console_init);
#ifdef MODULE
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH v5 5/5] simplefb: Change simplefb_init from module_init to fs_initcall
[not found] ` <1415962996-31712-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
` (2 preceding siblings ...)
2014-11-14 11:03 ` [PATCH v5 4/5] fbcon: Change fbcon_init from module_init to fs_initcall Hans de Goede
@ 2014-11-14 11:03 ` Hans de Goede
2014-11-14 14:24 ` [PATCH v5 1/5] dt-bindings: simplefb: Specify node location and handoff related properties Tomi Valkeinen
4 siblings, 0 replies; 6+ messages in thread
From: Hans de Goede @ 2014-11-14 11:03 UTC (permalink / raw)
To: Tomi Valkeinen
Cc: Stephen Warren, Jean-Christophe Plagniol-Villard, Grant Likely,
Rob Herring, Luc Verhaegen, Maxime Ripard, David Herrmann,
Geert Uytterhoeven, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw, Hans de Goede
One of the reasons for having the simplefb nodes in /chosen, and doing
explicit enumeration of the nodes there, is too allow enumerating them sooner,
so that we get a console earlier on.
Doing this earlier then fs_initcall is not useful, since the fb only turns
into a console when fbcon intializes, which is a fs_initcall too.
Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
--
Changes in v4 (of the patch-set):
-Drop the comment about using fs_initcall vs module_exit, as we no longer have
a module_exit
---
drivers/video/fbdev/simplefb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c
index 74c5edd..8be9754 100644
--- a/drivers/video/fbdev/simplefb.c
+++ b/drivers/video/fbdev/simplefb.c
@@ -413,7 +413,7 @@ static int __init simplefb_init(void)
return 0;
}
-module_init(simplefb_init);
+fs_initcall(simplefb_init);
MODULE_AUTHOR("Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>");
MODULE_DESCRIPTION("Simple framebuffer driver");
--
2.1.0
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH v5 1/5] dt-bindings: simplefb: Specify node location and handoff related properties
[not found] ` <1415962996-31712-1-git-send-email-hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
` (3 preceding siblings ...)
2014-11-14 11:03 ` [PATCH v5 5/5] simplefb: Change simplefb_init " Hans de Goede
@ 2014-11-14 14:24 ` Tomi Valkeinen
4 siblings, 0 replies; 6+ messages in thread
From: Tomi Valkeinen @ 2014-11-14 14:24 UTC (permalink / raw)
To: Hans de Goede
Cc: Stephen Warren, Jean-Christophe Plagniol-Villard, Grant Likely,
Rob Herring, Luc Verhaegen, Maxime Ripard, David Herrmann,
Geert Uytterhoeven, linux-fbdev-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, devicetree,
linux-sunxi-/JYPxA39Uh5TLH3MbocFFw
[-- Attachment #1: Type: text/plain, Size: 1134 bytes --]
On 14/11/14 13:03, Hans de Goede wrote:
> Since simplefb nodes do not relate directly to hw typically they have been
> placed in the root of the devicetree. As the represent runtime information
> having them as sub-nodes of /chosen is more logical, specify this.
>
> Also specify when to set the chosen stdout-path property to a simplefb node.
>
> For reliable handover to a hardware specific driver, that driver needs to
> know which simplefb to unregister when taking over, specify how the hw driver
> can find the matching simplefb node.
>
> Last add some advice on how to fill and use simplefb nodes from a firmware
> pov.
>
> Signed-off-by: Hans de Goede <hdegoede-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> Acked-by: Geert Uytterhoeven <geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
> Acked-by: Maxime Ripard <maxime.ripard-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org>
Ok, so I have pushed this and the other simplefb series to fbdev for-next.
I can still refresh the whole series if need be, but if possible I'd
rather take any new changes as patches on top of the current ones.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread