Pārlūkot izejas kodu

msm: eva: Fix power collapse failure

In case there is a live but unused DSP session.

Change-Id: I7dd0d7baeb89365a2d8ba6905ddffd1e5569c872
Signed-off-by: George Shen <[email protected]>
George Shen 3 gadi atpakaļ
vecāks
revīzija
98cd09c61f
3 mainītis faili ar 7 papildinājumiem un 9 dzēšanām
  1. 2 2
      msm/eva/cvp_hfi.c
  2. 4 3
      msm/eva/msm_cvp_core.c
  3. 1 4
      msm/eva/msm_cvp_dsp.c

+ 2 - 2
msm/eva/cvp_hfi.c

@@ -241,8 +241,8 @@ static int __dsp_suspend(struct iris_hfi_device *device, bool force, u32 flags)
 		/* don't suspend if cvp session is not paused */
 		if (!(temp->flags & SESSION_PAUSE)) {
 			dprintk(CVP_DSP,
-				"%s: cvp session %x not paused\n",
-				__func__, hash32_ptr(temp));
+				"%s: cvp session %x not paused %d\n",
+				__func__, hash32_ptr(temp), gfa_cv.state);
 			return -EBUSY;
 		}
 	}

+ 4 - 3
msm/eva/msm_cvp_core.c

@@ -168,7 +168,8 @@ void *msm_cvp_open(int core_id, int session_type)
 	}
 
 	pr_info_ratelimited(
-		CVP_DBG_TAG "Opening cvp instance: %pK\n", "sess", inst);
+		CVP_DBG_TAG "Opening cvp instance: %pK type %d\n",
+		"sess", inst, session_type);
 	mutex_init(&inst->sync_lock);
 	mutex_init(&inst->lock);
 	spin_lock_init(&inst->event_handler.lock);
@@ -385,8 +386,8 @@ int msm_cvp_destroy(struct msm_cvp_inst *inst)
 	core->synx_ftbl->cvp_sess_deinit_synx(inst);
 
 	pr_info_ratelimited(
-		CVP_DBG_TAG "Closed cvp instance: %pK session_id = %d\n",
-		"sess", inst, hash32_ptr(inst->session));
+		CVP_DBG_TAG "Closed cvp instance: %pK session_id = %d type %d\n",
+		"sess", inst, hash32_ptr(inst->session), inst->session_type);
 	inst->session = (void *)0xdeadbeef;
 	kfree(inst);
 	return 0;

+ 1 - 4
msm/eva/msm_cvp_dsp.c

@@ -500,11 +500,8 @@ int cvp_dsp_resume(uint32_t session_flag)
 	 * Probably get rid of this entirely as discussed before
 	 */
 	if (me->state != DSP_SUSPEND)
-		goto exit;
-
-	me->state = DSP_READY;
+		dprintk(CVP_WARN, "%s DSP not in SUSPEND state\n", __func__);
 
-exit:
 	return rc;
 }