automatically add it as parent of any fb device Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> --- 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 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox