瀏覽代碼

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);