diff --git a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c index 7cd461bda5c0..439c9bdba1c7 100644 --- a/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c +++ b/drivers/media/platform/msm/camera_v2/pproc/cpp/msm_cpp.c @@ -1189,17 +1189,22 @@ remap_failed: msm_cam_clk_enable(&cpp_dev->pdev->dev, cpp_clk_info, cpp_dev->cpp_clk, cpp_dev->num_clk, 0); clk_failed: - regulator_disable(cpp_dev->fs_cpp); - regulator_put(cpp_dev->fs_cpp); + if (cpp_dev->fs_cpp) { + regulator_disable(cpp_dev->fs_cpp); + regulator_put(cpp_dev->fs_cpp); + cpp_dev->fs_cpp = NULL; + } fs_failed: if (cpp_dev->fs_camss) { regulator_disable(cpp_dev->fs_camss); regulator_put(cpp_dev->fs_camss); + cpp_dev->fs_camss = NULL; } fs_camss_failed: if (cpp_dev->fs_mmagic_camss) { regulator_disable(cpp_dev->fs_mmagic_camss); regulator_put(cpp_dev->fs_mmagic_camss); + cpp_dev->fs_mmagic_camss = NULL; } fs_mmagic_failed: if (cpp_dev->bus_master_flag) @@ -4332,6 +4337,9 @@ static int cpp_probe(struct platform_device *pdev) setup_timer(&cpp_timer.cpp_timer, cpp_timer_callback, (unsigned long)&cpp_timer); cpp_dev->fw_name_bin = NULL; + cpp_dev->fs_cpp = NULL; + cpp_dev->fs_camss = NULL; + cpp_dev->fs_mmagic_camss = NULL; cpp_dev->max_timeout_trial_cnt = MSM_CPP_MAX_TIMEOUT_TRIAL; if (rc == 0) CPP_DBG("SUCCESS.");