Преглед на файлове

soundwire: return error if vote for LPASS HW Core fails

Before proceeding with handling soundwire interrupt check
return value of vote for LPASS HW core and handle
error scenarios.

Change-Id: I0f19a5ddb0af82f33a8d004d008eda9baa40c036
Signed-off-by: Karthikeyan Mani <[email protected]>
Karthikeyan Mani преди 6 години
родител
ревизия
035c50b0bd
променени са 1 файла, в които са добавени 10 реда и са изтрити 2 реда
  1. 10 2
      soc/swr-mstr-ctrl.c

+ 10 - 2
soc/swr-mstr-ctrl.c

@@ -1441,8 +1441,15 @@ static irqreturn_t swr_mstr_interrupt_v2(int irq, void *dev)
 	}
 
 	mutex_lock(&swrm->reslock);
-	if (swrm->lpass_core_hw_vote)
-		clk_prepare_enable(swrm->lpass_core_hw_vote);
+	if (swrm->lpass_core_hw_vote) {
+		ret = clk_prepare_enable(swrm->lpass_core_hw_vote);
+		if (ret < 0) {
+			dev_err(dev, "%s:lpass core hw enable failed\n",
+				__func__);
+			ret = IRQ_NONE;
+			goto exit;
+		}
+	}
 	swrm_clk_request(swrm, true);
 	mutex_unlock(&swrm->reslock);
 
@@ -1612,6 +1619,7 @@ handle_irq:
 	swrm_clk_request(swrm, false);
 	if (swrm->lpass_core_hw_vote)
 		clk_disable_unprepare(swrm->lpass_core_hw_vote);
+exit:
 	mutex_unlock(&swrm->reslock);
 	swrm_unlock_sleep(swrm);
 	return ret;