When the FB driver has not been initialized, booting Linux will hang
the system when ipuv3_fb_shutdown() is called from arch_preboot_os()
because clk_enable(g_ipu_clk) is a NOP with g_ipu_clk == NULL.
There is no need to initialize these variables at runtime, so use
static initialization to prevent this problem.
-struct clk *g_ipu_clk;
-struct clk *g_ldb_clk;
+struct clk *g_ipu_clk = &ipu_clk;
+struct clk *g_ldb_clk = &ldb_clk;
struct clk *g_di_clk[2];
struct clk *g_pixel_clk[2];
unsigned char g_dc_di_assignment[10];
struct clk *g_di_clk[2];
struct clk *g_pixel_clk[2];
unsigned char g_dc_di_assignment[10];
g_di_clk[1] = &di_clk[1];
g_di_clk[di]->rate = di_clk_val;
g_di_clk[1] = &di_clk[1];
g_di_clk[di]->rate = di_clk_val;
debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk));
debug("ipu_clk = %u\n", clk_get_rate(g_ipu_clk));
-
- g_ldb_clk = &ldb_clk;
debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk));
ret = clk_enable(g_ipu_clk);
debug("ldb_clk = %u\n", clk_get_rate(g_ldb_clk));
ret = clk_enable(g_ipu_clk);