Commit fc8df752 authored by Archit Taneja's avatar Archit Taneja Committed by Tony Lindgren
Browse files

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: default avatarArchit Taneja <archit@ti.com>
Acked-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
parent 7a59743d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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;
}

+2 −0
Original line number Diff line number Diff line
@@ -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
+7 −7
Original line number Diff line number Diff line
@@ -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