소스 검색

asoc: codecs: probe defer till mclk is available for wcd9360

Sometimes codec enumerates before APPS APR communication happens
with ADSP. Since wcd9360 MCLK request goes through APR, defer the
codec probe till mclk is available.

Change-Id: Ief5bb80f4c62fcf58a8cc93f11a9b4536f883d1e
Signed-off-by: Vidyakumar Athota <[email protected]>
Vidyakumar Athota 7 년 전
부모
커밋
c3b3df985d
1개의 변경된 파일10개의 추가작업 그리고 0개의 파일을 삭제
  1. 10 0
      asoc/codecs/wcd9360/wcd9360.c

+ 10 - 0
asoc/codecs/wcd9360/wcd9360.c

@@ -8013,6 +8013,16 @@ static int pahu_probe(struct platform_device *pdev)
 	pahu->wcd_ext_clk = wcd_ext_clk;
 	dev_dbg(&pdev->dev, "%s: MCLK Rate = %x\n", __func__,
 		pahu->wcd9xxx->mclk_rate);
+	/* Probe defer if mlck is failed */
+	ret = clk_prepare_enable(pahu->wcd_ext_clk);
+	if (ret) {
+		dev_dbg(pahu->dev, "%s: ext clk enable failed\n",
+			__func__);
+		ret = -EPROBE_DEFER;
+		goto err_cdc_reg;
+	}
+	clk_disable_unprepare(pahu->wcd_ext_clk);
+
 	/* Update codec register default values */
 	pahu_update_reg_defaults(pahu);
 	__pahu_enable_efuse_sensing(pahu);