ARM: OMAP2+: display: Create omapvrfb and omapfb devices inside omap_display_init
Move omapfb and omapvrfb device creation inside the omap_display_init so that we can correctly create the device based on the presence of omapdss within the platform. For example, on a kernel image supporting multiple platforms, omap_init_vrfb and omap_init_fb will create omapvrfb and omapfb platform devices respectively on a AM33xx platform even though it doesn't have a VRFB or DSS block. Signed-off-by: Archit Taneja <archit@ti.com> Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
7a59743d0c
commit
fc8df75217
|
@ -423,6 +423,20 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
|
|||
return r;
|
||||
}
|
||||
|
||||
/* create vrfb device */
|
||||
r = omap_init_vrfb();
|
||||
if (r < 0) {
|
||||
pr_err("Unable to register omapvrfb device\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
/* create FB device */
|
||||
r = omap_init_fb();
|
||||
if (r < 0) {
|
||||
pr_err("Unable to register omapfb device\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,4 +27,6 @@ struct omap_dss_dispc_dev_attr {
|
|||
};
|
||||
|
||||
int omap_init_drm(void);
|
||||
int omap_init_vrfb(void);
|
||||
int omap_init_fb(void);
|
||||
#endif
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include <asm/mach/map.h>
|
||||
|
||||
#include "soc.h"
|
||||
#include "display.h"
|
||||
|
||||
#ifdef CONFIG_OMAP2_VRFB
|
||||
|
||||
|
@ -64,7 +65,7 @@ static const struct resource omap3_vrfb_resources[] = {
|
|||
DEFINE_RES_MEM_NAMED(0xfc000000u, 0x4000000, "vrfb-area-11"),
|
||||
};
|
||||
|
||||
static int __init omap_init_vrfb(void)
|
||||
int __init omap_init_vrfb(void)
|
||||
{
|
||||
struct platform_device *pdev;
|
||||
const struct resource *res;
|
||||
|
@ -85,8 +86,8 @@ static int __init omap_init_vrfb(void)
|
|||
|
||||
return PTR_RET(pdev);
|
||||
}
|
||||
|
||||
omap_arch_initcall(omap_init_vrfb);
|
||||
#else
|
||||
int __init omap_init_vrfb(void) { return 0; }
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
|
||||
|
@ -105,11 +106,10 @@ static struct platform_device omap_fb_device = {
|
|||
.num_resources = 0,
|
||||
};
|
||||
|
||||
static int __init omap_init_fb(void)
|
||||
int __init omap_init_fb(void)
|
||||
{
|
||||
return platform_device_register(&omap_fb_device);
|
||||
}
|
||||
|
||||
omap_arch_initcall(omap_init_fb);
|
||||
|
||||
#else
|
||||
int __init omap_init_fb(void) { return 0; }
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue