Ver código fonte

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 anos atrás
pai
commit
c3b3df985d
1 arquivos alterados com 10 adições e 0 exclusões
  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);