Commit 576e5bda authored by Archit Taneja's avatar Archit Taneja Committed by Tony Lindgren

ARM: OMAP2+: display: Create omap_vout device inside omap_display_init

Move omap_vout 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_vout
will create a omapdrm platform device on a AM33xx platform even though it
doesn't have a 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 fc8df752
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "mux.h" #include "mux.h"
#include "control.h" #include "control.h"
#include "devices.h" #include "devices.h"
#include "display.h"
#define L3_MODULES_MAX_LEN 12 #define L3_MODULES_MAX_LEN 12
#define L3_MODULES 3 #define L3_MODULES 3
...@@ -466,13 +467,13 @@ static struct platform_device omap_vout_device = { ...@@ -466,13 +467,13 @@ static struct platform_device omap_vout_device = {
.resource = &omap_vout_resource[0], .resource = &omap_vout_resource[0],
.id = -1, .id = -1,
}; };
static void omap_init_vout(void)
int __init omap_init_vout(void)
{ {
if (platform_device_register(&omap_vout_device) < 0) return platform_device_register(&omap_vout_device);
printk(KERN_ERR "Unable to register OMAP-VOUT device\n");
} }
#else #else
static inline void omap_init_vout(void) {} int __init omap_init_vout(void) { return 0; }
#endif #endif
#if IS_ENABLED(CONFIG_WL12XX) #if IS_ENABLED(CONFIG_WL12XX)
...@@ -536,7 +537,6 @@ static int __init omap2_init_devices(void) ...@@ -536,7 +537,6 @@ static int __init omap2_init_devices(void)
omap_init_wl12xx_of(); omap_init_wl12xx_of();
} }
omap_init_sti(); omap_init_sti();
omap_init_vout();
return 0; return 0;
} }
......
...@@ -437,6 +437,13 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) ...@@ -437,6 +437,13 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
return r; return r;
} }
/* create V4L2 display device */
r = omap_init_vout();
if (r < 0) {
pr_err("Unable to register omap_vout device\n");
return r;
}
return 0; return 0;
} }
......
...@@ -29,4 +29,5 @@ struct omap_dss_dispc_dev_attr { ...@@ -29,4 +29,5 @@ struct omap_dss_dispc_dev_attr {
int omap_init_drm(void); int omap_init_drm(void);
int omap_init_vrfb(void); int omap_init_vrfb(void);
int omap_init_fb(void); int omap_init_fb(void);
int omap_init_vout(void);
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment