imx-drm: imx-hdmi: clean up setting of vp_conf
authorRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 4 Nov 2013 12:55:30 +0000 (12:55 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 24 Feb 2014 12:03:44 +0000 (12:03 +0000)
Acked-by: Philipp Zabel <p.zabel@pengutronix.de>
Acked-by: Shawn Guo <shawn.guo@linaro.org>
Reviewed-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
drivers/staging/imx-drm/imx-hdmi.c

index 2fa8658cebd4efe02b6b43108b691e7eab25da3e..ec5b5e2ada34766718d735e2b4ff567008a426a5 100644 (file)
@@ -555,7 +555,7 @@ static void hdmi_video_packetize(struct imx_hdmi *hdmi)
        unsigned int remap_size = HDMI_VP_REMAP_YCC422_16bit;
        unsigned int output_select = HDMI_VP_CONF_OUTPUT_SELECTOR_PP;
        struct hdmi_data_info *hdmi_data = &hdmi->hdmi_data;
-       u8 val;
+       u8 val, vp_conf;
 
        if (hdmi_data->enc_out_format == RGB
                || hdmi_data->enc_out_format == YCBCR444) {
@@ -599,47 +599,42 @@ static void hdmi_video_packetize(struct imx_hdmi *hdmi)
 
        /* Data from pixel repeater block */
        if (hdmi_data->pix_repet_factor > 1) {
-               hdmi_modb(hdmi, HDMI_VP_CONF_PR_EN_ENABLE |
-                               HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER,
-                         HDMI_VP_CONF_PR_EN_MASK |
-                         HDMI_VP_CONF_BYPASS_SELECT_MASK, HDMI_VP_CONF);
+               vp_conf = HDMI_VP_CONF_PR_EN_ENABLE |
+                         HDMI_VP_CONF_BYPASS_SELECT_PIX_REPEATER;
        } else { /* data from packetizer block */
-               hdmi_modb(hdmi, HDMI_VP_CONF_PR_EN_DISABLE |
-                               HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER,
-                         HDMI_VP_CONF_PR_EN_MASK |
-                         HDMI_VP_CONF_BYPASS_SELECT_MASK, HDMI_VP_CONF);
+               vp_conf = HDMI_VP_CONF_PR_EN_DISABLE |
+                         HDMI_VP_CONF_BYPASS_SELECT_VID_PACKETIZER;
        }
 
+       hdmi_modb(hdmi, vp_conf,
+                 HDMI_VP_CONF_PR_EN_MASK |
+                 HDMI_VP_CONF_BYPASS_SELECT_MASK, HDMI_VP_CONF);
+
        hdmi_modb(hdmi, 1 << HDMI_VP_STUFF_IDEFAULT_PHASE_OFFSET,
                  HDMI_VP_STUFF_IDEFAULT_PHASE_MASK, HDMI_VP_STUFF);
 
        hdmi_writeb(hdmi, remap_size, HDMI_VP_REMAP);
 
        if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_PP) {
-               hdmi_modb(hdmi, HDMI_VP_CONF_BYPASS_EN_DISABLE |
-                               HDMI_VP_CONF_PP_EN_ENABLE |
-                               HDMI_VP_CONF_YCC422_EN_DISABLE,
-                         HDMI_VP_CONF_BYPASS_EN_MASK |
-                         HDMI_VP_CONF_PP_EN_ENMASK |
-                         HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF);
+               vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE |
+                         HDMI_VP_CONF_PP_EN_ENABLE |
+                         HDMI_VP_CONF_YCC422_EN_DISABLE;
        } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_YCC422) {
-               hdmi_modb(hdmi, HDMI_VP_CONF_BYPASS_EN_DISABLE |
-                               HDMI_VP_CONF_PP_EN_DISABLE |
-                               HDMI_VP_CONF_YCC422_EN_ENABLE,
-                         HDMI_VP_CONF_BYPASS_EN_MASK |
-                         HDMI_VP_CONF_PP_EN_ENMASK |
-                         HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF);
+               vp_conf = HDMI_VP_CONF_BYPASS_EN_DISABLE |
+                         HDMI_VP_CONF_PP_EN_DISABLE |
+                         HDMI_VP_CONF_YCC422_EN_ENABLE;
        } else if (output_select == HDMI_VP_CONF_OUTPUT_SELECTOR_BYPASS) {
-               hdmi_modb(hdmi, HDMI_VP_CONF_BYPASS_EN_ENABLE |
-                               HDMI_VP_CONF_PP_EN_DISABLE |
-                               HDMI_VP_CONF_YCC422_EN_DISABLE,
-                         HDMI_VP_CONF_BYPASS_EN_MASK |
-                         HDMI_VP_CONF_PP_EN_ENMASK |
-                         HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF);
+               vp_conf = HDMI_VP_CONF_BYPASS_EN_ENABLE |
+                         HDMI_VP_CONF_PP_EN_DISABLE |
+                         HDMI_VP_CONF_YCC422_EN_DISABLE;
        } else {
                return;
        }
 
+       hdmi_modb(hdmi, vp_conf,
+                 HDMI_VP_CONF_BYPASS_EN_MASK | HDMI_VP_CONF_PP_EN_ENMASK |
+                 HDMI_VP_CONF_YCC422_EN_MASK, HDMI_VP_CONF);
+
        hdmi_modb(hdmi, HDMI_VP_STUFF_PP_STUFFING_STUFFING_MODE |
                        HDMI_VP_STUFF_YCC422_STUFFING_STUFFING_MODE,
                  HDMI_VP_STUFF_PP_STUFFING_MASK |