From c3b3df985d5b3574288f7f09e6675104e643363b Mon Sep 17 00:00:00 2001 From: Vidyakumar Athota Date: Tue, 27 Mar 2018 20:50:35 -0700 Subject: [PATCH] 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 --- asoc/codecs/wcd9360/wcd9360.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/asoc/codecs/wcd9360/wcd9360.c b/asoc/codecs/wcd9360/wcd9360.c index 5b8da208a61b..7c9421f30b40 100644 --- a/asoc/codecs/wcd9360/wcd9360.c +++ b/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);