diff options
| -rw-r--r-- | drivers/video/ipu_common.c | 12 | ||||
| -rw-r--r-- | drivers/video/ipu_disp.c | 3 | 
2 files changed, 12 insertions, 3 deletions
| diff --git a/drivers/video/ipu_common.c b/drivers/video/ipu_common.c index e43a6ecde..2020da98d 100644 --- a/drivers/video/ipu_common.c +++ b/drivers/video/ipu_common.c @@ -219,8 +219,15 @@ static struct clk ipu_clk = {  	.usecount = 0,  }; +static struct clk ldb_clk = { +	.name = "ldb_clk", +	.rate = 65000000, +	.usecount = 0, +}; +  /* Globals */  struct clk *g_ipu_clk; +struct clk *g_ldb_clk;  unsigned char g_ipu_clk_enabled;  struct clk *g_di_clk[2];  struct clk *g_pixel_clk[2]; @@ -343,7 +350,7 @@ static int ipu_pixel_clk_set_parent(struct clk *clk, struct clk *parent)  	if (parent == g_ipu_clk)  		di_gen &= ~DI_GEN_DI_CLK_EXT; -	else if (!IS_ERR(g_di_clk[clk->id]) && parent == g_di_clk[clk->id]) +	else if (!IS_ERR(g_di_clk[clk->id]) && parent == g_ldb_clk)  		di_gen |= DI_GEN_DI_CLK_EXT;  	else  		return -EINVAL; @@ -429,7 +436,8 @@ int ipu_probe(void)  	g_ipu_clk = &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));  	ipu_reset();  	clk_set_parent(g_pixel_clk[0], g_ipu_clk); diff --git a/drivers/video/ipu_disp.c b/drivers/video/ipu_disp.c index fa8fb2c35..b4116df8c 100644 --- a/drivers/video/ipu_disp.c +++ b/drivers/video/ipu_disp.c @@ -64,6 +64,7 @@ static int dmfc_size_28, dmfc_size_29, dmfc_size_24, dmfc_size_27, dmfc_size_23;  int g_di1_tvout;  extern struct clk *g_ipu_clk; +extern struct clk *g_ldb_clk;  extern struct clk *g_di_clk[2];  extern struct clk *g_pixel_clk[2]; @@ -941,7 +942,7 @@ int32_t ipu_init_sync_panel(int disp, uint32_t pixel_clk,  				udelay(10000);  			}  		} -		clk_set_parent(g_pixel_clk[disp], g_di_clk[disp]); +		clk_set_parent(g_pixel_clk[disp], g_ldb_clk);  	} else {  		if (clk_get_usecount(g_pixel_clk[disp]) != 0)  			clk_set_parent(g_pixel_clk[disp], g_ipu_clk); |