ASoC: codecs: lpass: Log clk_get() failures
authorBjorn Andersson <quic_bjorande@quicinc.com>
Fri, 21 Jul 2023 16:50:27 +0000 (09:50 -0700)
committerMark Brown <broonie@kernel.org>
Sun, 23 Jul 2023 22:40:27 +0000 (23:40 +0100)
The LPASS macro drivers all acquire a number of clocks, but give no
indication when clk_get() fails, making it hard to identify and debug
system configuration issues.  Make these drivers provide useful debug
information when this happens.

Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
Link: https://lore.kernel.org/r/20230721165027.2155528-1-quic_bjorande@quicinc.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/lpass-rx-macro.c
sound/soc/codecs/lpass-tx-macro.c
sound/soc/codecs/lpass-va-macro.c
sound/soc/codecs/lpass-wsa-macro.c

index 685ca95..29197d3 100644 (file)
@@ -3537,25 +3537,25 @@ static int rx_macro_probe(struct platform_device *pdev)
 
        rx->macro = devm_clk_get_optional(dev, "macro");
        if (IS_ERR(rx->macro))
-               return PTR_ERR(rx->macro);
+               return dev_err_probe(dev, PTR_ERR(rx->macro), "unable to get macro clock\n");
 
        rx->dcodec = devm_clk_get_optional(dev, "dcodec");
        if (IS_ERR(rx->dcodec))
-               return PTR_ERR(rx->dcodec);
+               return dev_err_probe(dev, PTR_ERR(rx->dcodec), "unable to get dcodec clock\n");
 
        rx->mclk = devm_clk_get(dev, "mclk");
        if (IS_ERR(rx->mclk))
-               return PTR_ERR(rx->mclk);
+               return dev_err_probe(dev, PTR_ERR(rx->mclk), "unable to get mclk clock\n");
 
        if (flags & LPASS_MACRO_FLAG_HAS_NPL_CLOCK) {
                rx->npl = devm_clk_get(dev, "npl");
                if (IS_ERR(rx->npl))
-                       return PTR_ERR(rx->npl);
+                       return dev_err_probe(dev, PTR_ERR(rx->npl), "unable to get npl clock\n");
        }
 
        rx->fsgen = devm_clk_get(dev, "fsgen");
        if (IS_ERR(rx->fsgen))
-               return PTR_ERR(rx->fsgen);
+               return dev_err_probe(dev, PTR_ERR(rx->fsgen), "unable to get fsgen clock\n");
 
        rx->pds = lpass_macro_pds_init(dev);
        if (IS_ERR(rx->pds))
index de978c3..3e33418 100644 (file)
@@ -1967,25 +1967,25 @@ static int tx_macro_probe(struct platform_device *pdev)
 
        tx->macro = devm_clk_get_optional(dev, "macro");
        if (IS_ERR(tx->macro))
-               return PTR_ERR(tx->macro);
+               return dev_err_probe(dev, PTR_ERR(tx->macro), "unable to get macro clock\n");
 
        tx->dcodec = devm_clk_get_optional(dev, "dcodec");
        if (IS_ERR(tx->dcodec))
-               return PTR_ERR(tx->dcodec);
+               return dev_err_probe(dev, PTR_ERR(tx->dcodec), "unable to get dcodec clock\n");
 
        tx->mclk = devm_clk_get(dev, "mclk");
        if (IS_ERR(tx->mclk))
-               return PTR_ERR(tx->mclk);
+               return dev_err_probe(dev, PTR_ERR(tx->mclk), "unable to get mclk clock\n");
 
        if (flags & LPASS_MACRO_FLAG_HAS_NPL_CLOCK) {
                tx->npl = devm_clk_get(dev, "npl");
                if (IS_ERR(tx->npl))
-                       return PTR_ERR(tx->npl);
+                       return dev_err_probe(dev, PTR_ERR(tx->npl), "unable to get npl clock\n");
        }
 
        tx->fsgen = devm_clk_get(dev, "fsgen");
        if (IS_ERR(tx->fsgen))
-               return PTR_ERR(tx->fsgen);
+               return dev_err_probe(dev, PTR_ERR(tx->fsgen), "unable to get fsgen clock\n");
 
        tx->pds = lpass_macro_pds_init(dev);
        if (IS_ERR(tx->pds))
index 7472444..b71ef03 100644 (file)
@@ -1457,15 +1457,15 @@ static int va_macro_probe(struct platform_device *pdev)
 
        va->macro = devm_clk_get_optional(dev, "macro");
        if (IS_ERR(va->macro))
-               return PTR_ERR(va->macro);
+               return dev_err_probe(dev, PTR_ERR(va->macro), "unable to get macro clock\n");
 
        va->dcodec = devm_clk_get_optional(dev, "dcodec");
        if (IS_ERR(va->dcodec))
-               return PTR_ERR(va->dcodec);
+               return dev_err_probe(dev, PTR_ERR(va->dcodec), "unable to get dcodec clock\n");
 
        va->mclk = devm_clk_get(dev, "mclk");
        if (IS_ERR(va->mclk))
-               return PTR_ERR(va->mclk);
+               return dev_err_probe(dev, PTR_ERR(va->mclk), "unable to get mclk clock\n");
 
        va->pds = lpass_macro_pds_init(dev);
        if (IS_ERR(va->pds))
index 8ba7dc8..ec6859e 100644 (file)
@@ -2396,25 +2396,25 @@ static int wsa_macro_probe(struct platform_device *pdev)
 
        wsa->macro = devm_clk_get_optional(dev, "macro");
        if (IS_ERR(wsa->macro))
-               return PTR_ERR(wsa->macro);
+               return dev_err_probe(dev, PTR_ERR(wsa->macro), "unable to get macro clock\n");
 
        wsa->dcodec = devm_clk_get_optional(dev, "dcodec");
        if (IS_ERR(wsa->dcodec))
-               return PTR_ERR(wsa->dcodec);
+               return dev_err_probe(dev, PTR_ERR(wsa->dcodec), "unable to get dcodec clock\n");
 
        wsa->mclk = devm_clk_get(dev, "mclk");
        if (IS_ERR(wsa->mclk))
-               return PTR_ERR(wsa->mclk);
+               return dev_err_probe(dev, PTR_ERR(wsa->mclk), "unable to get mclk clock\n");
 
        if (flags & LPASS_MACRO_FLAG_HAS_NPL_CLOCK) {
                wsa->npl = devm_clk_get(dev, "npl");
                if (IS_ERR(wsa->npl))
-                       return PTR_ERR(wsa->npl);
+                       return dev_err_probe(dev, PTR_ERR(wsa->npl), "unable to get npl clock\n");
        }
 
        wsa->fsgen = devm_clk_get(dev, "fsgen");
        if (IS_ERR(wsa->fsgen))
-               return PTR_ERR(wsa->fsgen);
+               return dev_err_probe(dev, PTR_ERR(wsa->fsgen), "unable to get fsgen clock\n");
 
        base = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(base))