[PATCH 09/12] fb: add bus device

Jean-Christophe PLAGNIOL-VILLARD plagnioj at jcrosoft.com
Sun Oct 14 17:01:15 EDT 2012


automatically add it as parent of any fb device

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
 drivers/video/fb.c |   17 +++++++++++++----
 include/fb.h       |    3 ++-
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/drivers/video/fb.c b/drivers/video/fb.c
index ee53272..0933a57 100644
--- a/drivers/video/fb.c
+++ b/drivers/video/fb.c
@@ -125,7 +125,10 @@ int register_framebuffer(struct fb_info *info)
 
 	sprintf(dev->name, "fb");
 
-	info->dev.bus = &fb_bus;
+	info->dev.bus = &fb_bus_type;
+	info->dev.parent = &fb_bus;
+	dev_add_child(info->dev.parent, &info->dev);
+
 	register_device(&info->dev);
 
 	return 0;
@@ -181,7 +184,12 @@ static void fb_remove(struct device_d *dev)
 {
 }
 
-struct bus_type fb_bus = {
+struct device_d fb_bus = {
+	.name = "fb",
+	.id = DEVICE_ID_SINGLE,
+};
+
+struct bus_type fb_bus_type = {
 	.name = "fb",
 	.match = fb_match,
 	.probe = fb_probe,
@@ -190,13 +198,14 @@ struct bus_type fb_bus = {
 
 static int fb_bus_init(void)
 {
-	return bus_register(&fb_bus);
+	register_device(&fb_bus);
+	return bus_register(&fb_bus_type);
 }
 pure_initcall(fb_bus_init);
 
 static int fb_init_driver(void)
 {
-	fb_driver.bus = &fb_bus;
+	fb_driver.bus = &fb_bus_type;
 	register_driver(&fb_driver);
 	return 0;
 }
diff --git a/include/fb.h b/include/fb.h
index c594418..9631733 100644
--- a/include/fb.h
+++ b/include/fb.h
@@ -110,7 +110,8 @@ int register_framebuffer(struct fb_info *info);
 #define	FBIO_ENABLE		_IO('F', 2)
 #define	FBIO_DISABLE		_IO('F', 3)
 
-extern struct bus_type fb_bus;
+extern struct device_d fb_bus;
+extern struct bus_type fb_bus_type;
 
 #endif /* __FB_H */
 
-- 
1.7.10.4




More information about the barebox mailing list