diff --git a/drivers/media/platform/msm/cvp/msm_cvp.c b/drivers/media/platform/msm/cvp/msm_cvp.c index 719ee46b10ff..edf654adcb17 100644 --- a/drivers/media/platform/msm/cvp/msm_cvp.c +++ b/drivers/media/platform/msm/cvp/msm_cvp.c @@ -758,6 +758,7 @@ static void aggregate_power_update(struct msm_cvp_core *core, core->dyn_clk.sum_fps[HFI_HW_OD] = 0; core->dyn_clk.sum_fps[HFI_HW_ICA] = 0; + mutex_lock(&core->lock); list_for_each_entry(inst, &core->instances, list) { if (inst->state == MSM_CVP_CORE_INVALID || inst->state == MSM_CVP_CORE_UNINIT || @@ -828,6 +829,8 @@ static void aggregate_power_update(struct msm_cvp_core *core, core->dyn_clk.sum_fps[HFI_HW_ICA]); } + mutex_unlock(&core->lock); + for (i = 0; i < 2; i++) { fdu_sum[i] = max_3(fdu_sum[i], od_sum[i], mpu_sum[i]); fdu_sum[i] = max_3(fdu_sum[i], ica_sum[i], fw_sum[i]);