diff --git a/arch/arm/mach-rk30/board-pmu-tps65910.c b/arch/arm/mach-rk30/board-pmu-tps65910.c index 73b2ccd8fa70..f63239d165e4 100755 --- a/arch/arm/mach-rk30/board-pmu-tps65910.c +++ b/arch/arm/mach-rk30/board-pmu-tps65910.c @@ -565,7 +565,7 @@ static struct regulator_init_data tps65910_ldo8 = { .min_uV = 1000000, .max_uV = 2500000, .apply_uV = 1, - .always_on = 1, +// .always_on = 1, .valid_ops_mask = REGULATOR_CHANGE_STATUS | REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE, .valid_modes_mask = REGULATOR_MODE_STANDBY | REGULATOR_MODE_NORMAL, diff --git a/arch/arm/mach-rk3026/clock_data.c b/arch/arm/mach-rk3026/clock_data.c index 1d540c549325..9025337825d5 100755 --- a/arch/arm/mach-rk3026/clock_data.c +++ b/arch/arm/mach-rk3026/clock_data.c @@ -2864,8 +2864,8 @@ static void __init rk2928_clock_common_init(unsigned long gpll_rate, unsigned lo clk_set_parent_nolock(&aclk_vepu, &codec_pll_clk); clk_set_parent_nolock(&aclk_vdpu, &codec_pll_clk); - clk_set_rate_nolock(&aclk_vepu, 200 * MHZ); - clk_set_rate_nolock(&aclk_vdpu, 200 * MHZ); + clk_set_rate_nolock(&aclk_vepu, 400 * MHZ); + clk_set_rate_nolock(&aclk_vdpu, 400 * MHZ); //gpu auto sel //clk_set_parent_nolock(&clk_gpu_pre, &general_pll_clk); clk_set_rate_nolock(&clk_gpu_pre, 133 * MHZ); diff --git a/drivers/media/video/rk30_camera_oneframe.c b/drivers/media/video/rk30_camera_oneframe.c index 7571cb4eecbb..a7f9b743474c 100755 --- a/drivers/media/video/rk30_camera_oneframe.c +++ b/drivers/media/video/rk30_camera_oneframe.c @@ -1441,6 +1441,7 @@ static int rk_camera_mclk_ctrl(int cif_idx, int on, int clk_rate) { int err = 0,cif; struct rk_cif_clk *clk; + struct clk *cif_clk_out_div; cif = cif_idx - RK29_CAM_PLATFORM_DEV_ID; if ((cif<0)||(cif>1)) { @@ -1474,10 +1475,17 @@ static int rk_camera_mclk_ctrl(int cif_idx, int on, int clk_rate) clk_disable(clk->pd_cif); clk->on = false; if(cif){ - err = clk_set_parent(clk->cif_clk_out, clk_get(NULL, "cif1_out_div")); + cif_clk_out_div = clk_get(NULL, "cif1_out_div"); + err = clk_set_parent(clk->cif_clk_out,cif_clk_out_div); }else{ - err = clk_set_parent(clk->cif_clk_out, clk_get(NULL, "cif0_out_div")); + cif_clk_out_div = clk_get(NULL, "cif0_out_div"); + if(IS_ERR_OR_NULL(cif_clk_out_div)){ + cif_clk_out_div = clk_get(NULL, "cif_out_div"); + } + err = clk_set_parent(clk->cif_clk_out, cif_clk_out_div); } + if(err) + RKCAMERA_TR("WARNING %s_%s_%d: camera sensor mclk maybe not close, please check!!!\n", __FILE__, __FUNCTION__, __LINE__); } spin_unlock(&clk->lock); rk_camera_clk_ctrl_end: