]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/i2c: tda998x: adjust the audio clock divider for S/PDIF
authorJean-Francois Moine <moinejf@free.fr>
Sat, 25 Jan 2014 17:14:36 +0000 (18:14 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 13 Feb 2014 19:43:46 +0000 (19:43 +0000)
According to some tests on the Cubox (Marvell Armada 510 + TDA19988),
the S/PDIF input asks for a greater audio clock divider.

Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/gpu/drm/i2c/tda998x_drv.c

index 666ee24329b9c05602ffc93402f6fb2407599d93..d0f3a4cbb8665ad7512d813ce19ab205ba29b889 100644 (file)
@@ -680,10 +680,14 @@ tda998x_configure_audio(struct tda998x_priv *priv,
         * There is no detailed info in the datasheet, so we just
         * assume 100MHz requires larger divider.
         */
+       adiv = AUDIO_DIV_SERCLK_8;
        if (mode->clock > 100000)
-               adiv = AUDIO_DIV_SERCLK_16;
-       else
-               adiv = AUDIO_DIV_SERCLK_8;
+               adiv++;                 /* AUDIO_DIV_SERCLK_16 */
+
+       /* S/PDIF asks for a larger divider */
+       if (p->audio_format == AFMT_SPDIF)
+               adiv++;                 /* AUDIO_DIV_SERCLK_16 or _32 */
+
        reg_write(priv, REG_AUDIO_DIV, adiv);
 
        /*