ASoC: codecs: lpass: fix incorrect mclk rate
authorSrinivas Kandagatla <srinivas.kandagatla@linaro.org>
Thu, 9 Feb 2023 12:28:04 +0000 (12:28 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:39:29 +0000 (09:39 +0100)
[ Upstream commit e7621434378c40b62ef858c14ae6415fb6469a8e ]

For some reason we ended up with incorrect mclk rate which should be
1920000 instead of 96000, So far we were getting lucky as the same clk
is set to 192000 by wsa and va macro. This issue is discovered when there
is no wsa macro active and only rx or tx path is tested.
Fix this by setting correct rate.

Fixes: c39667ddcfc5 ("ASoC: codecs: lpass-tx-macro: add support for lpass tx macro")
Fixes: af3d54b99764 ("ASoC: codecs: lpass-rx-macro: add support for lpass rx macro")
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Link: https://lore.kernel.org/r/20230209122806.18923-7-srinivas.kandagatla@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/lpass-rx-macro.c
sound/soc/codecs/lpass-tx-macro.c

index 213ededb6f9ee00594f48745d8d700e88d9238d2..72a0db09c7131ba420d3cdd4bd28d7db1c68ab3e 100644 (file)
 #define CDC_RX_DSD1_CFG2                       (0x0F8C)
 #define RX_MAX_OFFSET                          (0x0F8C)
 
-#define MCLK_FREQ              9600000
+#define MCLK_FREQ              19200000
 
 #define RX_MACRO_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 |\
                        SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 |\
@@ -3565,7 +3565,7 @@ static int rx_macro_probe(struct platform_device *pdev)
 
        /* set MCLK and NPL rates */
        clk_set_rate(rx->mclk, MCLK_FREQ);
-       clk_set_rate(rx->npl, 2 * MCLK_FREQ);
+       clk_set_rate(rx->npl, MCLK_FREQ);
 
        ret = clk_prepare_enable(rx->macro);
        if (ret)
index d604e2b0109b05ee85effbe5e41d14caa0e40f24..2b7ba78551fabe338a3cb8a6f53895bc9f8a0451 100644 (file)
 #define TX_MACRO_AMIC_UNMUTE_DELAY_MS  100
 #define TX_MACRO_DMIC_HPF_DELAY_MS     300
 #define TX_MACRO_AMIC_HPF_DELAY_MS     300
-#define MCLK_FREQ              9600000
+#define MCLK_FREQ              19200000
 
 enum {
        TX_MACRO_AIF_INVALID = 0,
@@ -1832,7 +1832,7 @@ static int tx_macro_probe(struct platform_device *pdev)
 
        /* set MCLK and NPL rates */
        clk_set_rate(tx->mclk, MCLK_FREQ);
-       clk_set_rate(tx->npl, 2 * MCLK_FREQ);
+       clk_set_rate(tx->npl, MCLK_FREQ);
 
        ret = clk_prepare_enable(tx->macro);
        if (ret)