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: 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
fc8df75217
commit
576e5bda70
|
@ -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 = {
|
||||||
.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)
|
||||||
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)
|
||||||
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 {
|
||||||
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
|
||||||
|
|
Loading…
Reference in New Issue