diff options
| -rw-r--r-- | drivers/video/fbdev/simplefb.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/drivers/video/fbdev/simplefb.c b/drivers/video/fbdev/simplefb.c index d19294635a42..74c5edd38518 100644 --- a/drivers/video/fbdev/simplefb.c +++ b/drivers/video/fbdev/simplefb.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/platform_data/simplefb.h> | 27 | #include <linux/platform_data/simplefb.h> |
| 28 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
| 29 | #include <linux/clk-provider.h> | 29 | #include <linux/clk-provider.h> |
| 30 | #include <linux/of_platform.h> | ||
| 30 | 31 | ||
| 31 | static struct fb_fix_screeninfo simplefb_fix = { | 32 | static struct fb_fix_screeninfo simplefb_fix = { |
| 32 | .id = "simple", | 33 | .id = "simple", |
| @@ -392,7 +393,27 @@ static struct platform_driver simplefb_driver = { | |||
| 392 | .probe = simplefb_probe, | 393 | .probe = simplefb_probe, |
| 393 | .remove = simplefb_remove, | 394 | .remove = simplefb_remove, |
| 394 | }; | 395 | }; |
| 395 | module_platform_driver(simplefb_driver); | 396 | |
| 397 | static int __init simplefb_init(void) | ||
| 398 | { | ||
| 399 | int ret; | ||
| 400 | struct device_node *np; | ||
| 401 | |||
| 402 | ret = platform_driver_register(&simplefb_driver); | ||
| 403 | if (ret) | ||
| 404 | return ret; | ||
| 405 | |||
| 406 | if (IS_ENABLED(CONFIG_OF) && of_chosen) { | ||
| 407 | for_each_child_of_node(of_chosen, np) { | ||
| 408 | if (of_device_is_compatible(np, "simple-framebuffer")) | ||
| 409 | of_platform_device_create(np, NULL, NULL); | ||
| 410 | } | ||
| 411 | } | ||
| 412 | |||
| 413 | return 0; | ||
| 414 | } | ||
| 415 | |||
| 416 | module_init(simplefb_init); | ||
| 396 | 417 | ||
| 397 | MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>"); | 418 | MODULE_AUTHOR("Stephen Warren <swarren@wwwdotorg.org>"); |
| 398 | MODULE_DESCRIPTION("Simple framebuffer driver"); | 419 | MODULE_DESCRIPTION("Simple framebuffer driver"); |
