From: root Date: Tue, 12 Jun 2012 09:34:13 +0000 (+0800) Subject: camera rk30 : not call pmu_set_idle_request when cif reset;fix null point in rk_cif_p... X-Git-Tag: firefly_0821_release~9107 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5978ba8cac672c35a82867c7de1e40ef004a9d14;p=firefly-linux-kernel-4.4.55.git camera rk30 : not call pmu_set_idle_request when cif reset;fix null point in rk_cif_power function --- diff --git a/arch/arm/mach-rk30/board-rk30-sdk.c b/arch/arm/mach-rk30/board-rk30-sdk.c index 672cca2cb17d..6454798c5e2a 100755 --- a/arch/arm/mach-rk30/board-rk30-sdk.c +++ b/arch/arm/mach-rk30/board-rk30-sdk.c @@ -220,7 +220,10 @@ static void rk_cif_power(int on) struct regulator *ldo_18,*ldo_28; ldo_28 = regulator_get(NULL, "ldo7"); // vcc28_cif ldo_18 = regulator_get(NULL, "ldo1"); // vcc18_cif - + if (ldo_28 == NULL || IS_ERR(ldo_28) || ldo_18 == NULL || IS_ERR(ldo_18)){ + printk("get cif ldo failed!\n"); + return; + } if(on == 0){ regulator_disable(ldo_28); regulator_put(ldo_28); @@ -231,13 +234,13 @@ static void rk_cif_power(int on) else{ regulator_set_voltage(ldo_28, 2800000, 2800000); regulator_enable(ldo_28); - // printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28)); + // printk("%s set ldo7 vcc28_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_28)); regulator_put(ldo_28); regulator_set_voltage(ldo_18, 1800000, 1800000); // regulator_set_suspend_voltage(ldo, 1800000); regulator_enable(ldo_18); - // printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo)); + // printk("%s set ldo1 vcc18_cif=%dmV end\n", __func__, regulator_get_voltage(ldo_18)); regulator_put(ldo_18); } } diff --git a/drivers/media/video/rk30_camera_oneframe.c b/drivers/media/video/rk30_camera_oneframe.c index 07180f588edc..4ae49bec4371 100755 --- a/drivers/media/video/rk30_camera_oneframe.c +++ b/drivers/media/video/rk30_camera_oneframe.c @@ -1246,18 +1246,18 @@ static void rk_camera_setup_format(struct soc_camera_device *icd, __u32 host_pix { mdelay(100); if(IS_CIF0()){ - pmu_set_idle_request(IDLE_REQ_VIO, true); + // pmu_set_idle_request(IDLE_REQ_VIO, true); cru_set_soft_reset(SOFT_RST_CIF0, true); udelay(5); cru_set_soft_reset(SOFT_RST_CIF0, false); - pmu_set_idle_request(IDLE_REQ_VIO, false); + // pmu_set_idle_request(IDLE_REQ_VIO, false); }else{ - pmu_set_idle_request(IDLE_REQ_VIO, true); + // pmu_set_idle_request(IDLE_REQ_VIO, true); cru_set_soft_reset(SOFT_RST_CIF1, true); udelay(5); cru_set_soft_reset(SOFT_RST_CIF1, false); - pmu_set_idle_request(IDLE_REQ_VIO, false); + // pmu_set_idle_request(IDLE_REQ_VIO, false); } } write_cif_reg(pcdev->base,CIF_CIF_CTRL,AXI_BURST_16|MODE_ONEFRAME|DISABLE_CAPTURE); /* ddl@rock-chips.com : vip ahb burst 16 */