OMAPDSS: move 'dss_initialized' to dss driver

We have a flag, 'dss_initialized', which tells omapfb and omapdrm if
omapdss is available. At the moment it can be set even if the dss
submodules are not all ready, in case something gets deferred.

Move the flag to dss_core driver so that it'll signal the availability
of the dss drivers move accurately.

For now, it'll signal that dss_core is ready, which is not quite correct
but still better than previously.  The following patches will add
component system to omapdss, and after those patches 'dss_initialized'
will signal that all the submodules are ready.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Tomi Valkeinen 2015-06-04 12:35:42 +03:00
parent c65b99f046
commit f99467b354
2 changed files with 12 additions and 10 deletions

View File

@ -50,8 +50,6 @@ static char *def_disp_name;
module_param_named(def_disp, def_disp_name, charp, 0); module_param_named(def_disp, def_disp_name, charp, 0);
MODULE_PARM_DESC(def_disp, "default display name"); MODULE_PARM_DESC(def_disp, "default display name");
static bool dss_initialized;
const char *omapdss_get_default_display_name(void) const char *omapdss_get_default_display_name(void)
{ {
return core.default_display_name; return core.default_display_name;
@ -65,12 +63,6 @@ enum omapdss_version omapdss_get_version(void)
} }
EXPORT_SYMBOL(omapdss_get_version); EXPORT_SYMBOL(omapdss_get_version);
bool omapdss_is_initialized(void)
{
return dss_initialized;
}
EXPORT_SYMBOL(omapdss_is_initialized);
struct platform_device *dss_get_core_pdev(void) struct platform_device *dss_get_core_pdev(void)
{ {
return core.pdev; return core.pdev;
@ -333,8 +325,6 @@ static int __init omap_dss_init(void)
dss_output_drv_loaded[i] = true; dss_output_drv_loaded[i] = true;
} }
dss_initialized = true;
return 0; return 0;
err_dispc: err_dispc:

View File

@ -111,6 +111,14 @@ static const char * const dss_generic_clk_source_names[] = {
[OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI] = "DSI_PLL2_HSDIV_DSI", [OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI] = "DSI_PLL2_HSDIV_DSI",
}; };
static bool dss_initialized;
bool omapdss_is_initialized(void)
{
return dss_initialized;
}
EXPORT_SYMBOL(omapdss_is_initialized);
static inline void dss_write_reg(const struct dss_reg idx, u32 val) static inline void dss_write_reg(const struct dss_reg idx, u32 val)
{ {
__raw_writel(val, dss.base + idx.idx); __raw_writel(val, dss.base + idx.idx);
@ -1141,6 +1149,8 @@ static int __init omap_dsshw_probe(struct platform_device *pdev)
pm_set_vt_switch(0); pm_set_vt_switch(0);
dss_initialized = true;
return 0; return 0;
err_pll_init: err_pll_init:
@ -1158,6 +1168,8 @@ static int __init omap_dsshw_probe(struct platform_device *pdev)
static int __exit omap_dsshw_remove(struct platform_device *pdev) static int __exit omap_dsshw_remove(struct platform_device *pdev)
{ {
dss_initialized = false;
if (dss.video1_pll) if (dss.video1_pll)
dss_video_pll_uninit(dss.video1_pll); dss_video_pll_uninit(dss.video1_pll);