ASoC: codecs: lpass-tx-macro: set active_decimator correct default value
authorNeil Armstrong <neil.armstrong@linaro.org>
Thu, 16 Nov 2023 16:44:21 +0000 (17:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Dec 2023 17:45:15 +0000 (18:45 +0100)
[ Upstream commit a2f35ed1d237c459100adb0c39bb811d7f170977 ]

The -1 value for active_decimator[dai_id] is considered as "not set",
but at probe the table is initialized a 0, this prevents enabling the
DEC0 Mixer since it will be considered as already set.

Initialize the table entries as -1 to fix tx_macro_tx_mixer_put().

Fixes: 1c6a7f5250ce ("ASoC: codecs: tx-macro: fix active_decimator array")
Fixes: c1057a08af43 ("ASoC: codecs: tx-macro: fix kcontrol put")
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20231116-topic-sm8x50-upstream-tx-macro-fix-active-decimator-set-v1-1-6edf402f4b6f@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/lpass-tx-macro.c

index 3e33418..ebddfa7 100644 (file)
@@ -2021,6 +2021,11 @@ static int tx_macro_probe(struct platform_device *pdev)
 
        tx->dev = dev;
 
+       /* Set active_decimator default value */
+       tx->active_decimator[TX_MACRO_AIF1_CAP] = -1;
+       tx->active_decimator[TX_MACRO_AIF2_CAP] = -1;
+       tx->active_decimator[TX_MACRO_AIF3_CAP] = -1;
+
        /* set MCLK and NPL rates */
        clk_set_rate(tx->mclk, MCLK_FREQ);
        clk_set_rate(tx->npl, MCLK_FREQ);