diff --git a/drivers/external_drivers/intel_media/video/vsp/vsp.c b/drivers/external_drivers/intel_media/video/vsp/vsp.c
index 162cc7a..3ae40d0 100755
--- a/drivers/external_drivers/intel_media/video/vsp/vsp.c
+++ b/drivers/external_drivers/intel_media/video/vsp/vsp.c
@@ -1072,12 +1072,14 @@
 		return -1;
 	}
 
+	mutex_lock(&vsp_priv->vsp_mutex);
 	if (VAEntrypointEncSlice == ctx_type) {
 		vsp_priv->context_vp8_num++;
 		if (vsp_priv->context_vp8_num > MAX_VP8_CONTEXT_NUM) {
 			DRM_ERROR("VSP: Only support 3 vp8 encoding!\n");
 			/* store the 4th vp8 encoding fd for remove context use */
 			vsp_priv->vp8_filp[3] = filp;
+			mutex_unlock(&vsp_priv->vsp_mutex);
 			return -1;
 		}
 
@@ -1103,6 +1105,7 @@
 		DRM_ERROR("VSP: couldn't support the context %x\n", ctx_type);
 		ret = -1;
 	}
+	mutex_unlock(&vsp_priv->vsp_mutex);
 
 	VSP_DEBUG("context_vp8_num %d, context_vpp_num %d\n",
 			vsp_priv->context_vp8_num, vsp_priv->context_vpp_num);
@@ -1131,6 +1134,7 @@
 		return;
 	}
 
+	mutex_lock(&vsp_priv->vsp_mutex);
 	if (vsp_priv->ctrl == NULL) {
 		for (i = 0; i < MAX_VP8_CONTEXT_NUM + 1; i++) {
 			if (filp == vsp_priv->vp8_filp[i])
@@ -1143,13 +1147,13 @@
 		} else if (ctx_type == VAEntrypointVideoProc)
 			if (vsp_priv->context_vpp_num > 0)
 				vsp_priv->context_vpp_num--;
+		mutex_unlock(&vsp_priv->vsp_mutex);
 		return;
 	}
 
 	VSP_DEBUG("ctx_type=%d\n", ctx_type);
 
 	if (VAEntrypointEncSlice == ctx_type && filp != vsp_priv->vp8_filp[3]) {
-		mutex_lock(&vsp_priv->vsp_mutex);
 		/* power on again to send VssGenDestroyContext to firmware */
 		if (power_island_get(OSPM_VIDEO_VPP_ISLAND) == false) {
 			tmp = -EBUSY;
@@ -1196,7 +1200,7 @@
 			PSB_UDELAY(6);
 		}
 
-
+		mutex_lock(&vsp_priv->vsp_mutex);
 		vsp_priv->context_vp8_num--;
 		if (count == 20000) {
 			DRM_ERROR("Failed to handle sigint event\n");
@@ -1213,17 +1217,18 @@
 	if (vsp_priv->context_vp8_num > 0 || vsp_priv->context_vpp_num > 0) {
 		VSP_DEBUG("context_vp8_num %d, context_vpp_num %d\n",
 			vsp_priv->context_vp8_num, vsp_priv->context_vpp_num);
+		mutex_unlock(&vsp_priv->vsp_mutex);
 		return;
 	}
 
 	vsp_priv->ctrl->entry_kind = vsp_exit;
+	mutex_unlock(&vsp_priv->vsp_mutex);
 
 	/* in case of power mode 0, HW always active,
 	 * * in case got no response from FW, vsp_state=hang but could not be powered off,
 	 * * force state to down */
 	vsp_priv->vsp_state = VSP_STATE_DOWN;
 	ospm_apm_power_down_vsp(dev);
-
 	vsp_priv->vsp_state = VSP_STATE_DOWN;
 
 	if (ret == false)
