]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/i2c: tda998x: code optimization
authorJean-Francois Moine <moinejf@free.fr>
Sat, 25 Jan 2014 17:14:39 +0000 (18:14 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 13 Feb 2014 19:43:43 +0000 (19:43 +0000)
This patch reduces the number of I2C exchanges by setting many bits in
one write and removing a useless write.

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 4352294d75cdd18c2a64963bcb093f59c0801428..666ee24329b9c05602ffc93402f6fb2407599d93 100644 (file)
@@ -669,10 +669,8 @@ tda998x_configure_audio(struct tda998x_priv *priv,
        }
 
        reg_write(priv, REG_AIP_CLKSEL, clksel_aip);
-       reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT);
-
-       /* Enable automatic CTS generation */
-       reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_ACR_MAN);
+       reg_clear(priv, REG_AIP_CNTRL_0, AIP_CNTRL_0_LAYOUT |
+                                       AIP_CNTRL_0_ACR_MAN);   /* auto CTS */
        reg_write(priv, REG_CTS_N, cts_n);
 
        /*
@@ -908,10 +906,10 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder,
        reg_write(priv, REG_VIP_CNTRL_5, VIP_CNTRL_5_SP_CNT(0));
        reg_write(priv, REG_VIP_CNTRL_4, VIP_CNTRL_4_BLANKIT(0) |
                        VIP_CNTRL_4_BLC(0));
-       reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_CCIR);
 
        reg_clear(priv, REG_PLL_SERIAL_1, PLL_SERIAL_1_SRL_MAN_IZ);
-       reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_DE);
+       reg_clear(priv, REG_PLL_SERIAL_3, PLL_SERIAL_3_SRL_CCIR |
+                                         PLL_SERIAL_3_SRL_DE);
        reg_write(priv, REG_SERIALIZER, 0);
        reg_write(priv, REG_HVF_CNTRL_1, HVF_CNTRL_1_VQR(0));
 
@@ -931,8 +929,6 @@ tda998x_encoder_mode_set(struct drm_encoder *encoder,
        /* set BIAS tmds value: */
        reg_write(priv, REG_ANA_GENERAL, 0x09);
 
-       reg_write(priv, REG_TBG_CNTRL_0, 0);
-
        /*
         * Sync on rising HSYNC/VSYNC
         */