AHB-I/X bus clocks inside LPASS coreis not a mandatory clocks for newer lpass variants, hence make it an optional one. Signed-off-by: Ajit Pandey <ajitp@xxxxxxxxxxxxxx> --- sound/soc/qcom/lpass-cpu.c | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 492f27b..f177932 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -504,26 +504,31 @@ int asoc_qcom_lpass_cpu_platform_probe(struct platform_device *pdev) return ret; } - drvdata->ahbix_clk = devm_clk_get(&pdev->dev, "ahbix-clk"); + drvdata->ahbix_clk = devm_clk_get_optional(&pdev->dev, "ahbix-clk"); if (IS_ERR(drvdata->ahbix_clk)) { dev_err(&pdev->dev, "error getting ahbix-clk: %ld\n", PTR_ERR(drvdata->ahbix_clk)); return PTR_ERR(drvdata->ahbix_clk); } - ret = clk_set_rate(drvdata->ahbix_clk, LPASS_AHBIX_CLOCK_FREQUENCY); - if (ret) { - dev_err(&pdev->dev, "error setting rate on ahbix_clk: %d\n", - ret); - return ret; - } - dev_dbg(&pdev->dev, "set ahbix_clk rate to %lu\n", - clk_get_rate(drvdata->ahbix_clk)); + if (drvdata->ahbix_clk != NULL) { + ret = clk_set_rate(drvdata->ahbix_clk, + LPASS_AHBIX_CLOCK_FREQUENCY); + if (ret) { + dev_err(&pdev->dev, + "error setting rate on ahbix_clk: %d\n", ret); + return ret; + } - ret = clk_prepare_enable(drvdata->ahbix_clk); - if (ret) { - dev_err(&pdev->dev, "error enabling ahbix_clk: %d\n", ret); - return ret; + dev_dbg(&pdev->dev, "set ahbix_clk rate to %lu\n", + clk_get_rate(drvdata->ahbix_clk)); + + ret = clk_prepare_enable(drvdata->ahbix_clk); + if (ret) { + dev_err(&pdev->dev, + "error enabling ahbix_clk: %d\n", ret); + return ret; + } } ret = devm_snd_soc_register_component(&pdev->dev, -- 1.9.1