ASoC: sun4i-spdif: Always set the valid data to be the MSB
authorMarcus Cooper <codekipper@gmail.com>
Mon, 11 Nov 2024 16:55:30 +0000 (17:55 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 9 Dec 2024 14:07:57 +0000 (14:07 +0000)
This doesn't affect 16bit formats and allows us to properly run
24bit formats.

Signed-off-by: Marcus Cooper <codekipper@gmail.com>
Link: https://patch.msgid.link/20241111165600.57219-3-codekipper@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sunxi/sun4i-spdif.c

index 7cf623cbe9ed4b505652ef679293a2b9afce13ee..5a9407aaa1a1959fa8bbab6758e59c79890ccc67 100644 (file)
@@ -202,6 +202,10 @@ static void sun4i_spdif_configure(struct sun4i_spdif_dev *host)
        regmap_update_bits(host->regmap, SUN4I_SPDIF_FCTL,
                           quirks->val_fctl_ftx, quirks->val_fctl_ftx);
 
+       /* Valid data at the MSB of TXFIFO Register */
+       regmap_update_bits(host->regmap, SUN4I_SPDIF_FCTL,
+                          SUN4I_SPDIF_FCTL_TXIM, 0);
+
        /* clear TX counter */
        regmap_write(host->regmap, SUN4I_SPDIF_TXCNT, 0);
 }
@@ -323,9 +327,6 @@ static int sun4i_spdif_hw_params(struct snd_pcm_substream *substream,
                return ret;
        }
 
-       regmap_update_bits(host->regmap, SUN4I_SPDIF_FCTL,
-                          SUN4I_SPDIF_FCTL_TXIM, SUN4I_SPDIF_FCTL_TXIM);
-
        switch (rate) {
        case 22050:
        case 24000: