rk610:fix bug DVI and HDMI mode switch err
authoryzq <yzq@rockchips.com>
Mon, 7 May 2012 08:06:24 +0000 (16:06 +0800)
committeryzq <yzq@rockchips.com>
Mon, 7 May 2012 08:06:24 +0000 (16:06 +0800)
drivers/video/hdmi/chips/rk610/rk610_hdmi_hw.c
drivers/video/hdmi/chips/rk610/rk610_hdmi_hw.h

index d3c72aca9e0962dee3f60fb1e2000743b47afd87..bdfe2aed5c90c77fa23310fbd1c06893a8c28574 100644 (file)
@@ -955,7 +955,10 @@ static int Rk610_hdmi_Display_switch(struct i2c_client *client)
     int mode;\r
     mode = (g_edid.HDMI_Sink == TRUE)? DISPLAY_HDMI:DISPLAY_DVI;\r
     ret = Rk610_hdmi_i2c_read_p0_reg(client, 0x52, &c);\r
-    c &= ((~(1<<1))| mode<<1);\r
+       if(mode == DISPLAY_HDMI)\r
+               c |= DISPLAY_MODE; \r
+       else \r
+               c &= ~DISPLAY_MODE;\r
     ret = Rk610_hdmi_i2c_write_p0_reg(client, 0x52, &c);\r
     RK610_DBG(&client->dev,">>>%s mode=%d,c=%x",__func__,mode,c);\r
     return ret;\r
index bc84f151fa30e84f66c7313e82d2f815c8bf08d5..15a5014568fbdf9e914bba65e24d2bd8086e25c5 100644 (file)
@@ -97,7 +97,7 @@ enum{
 //output mode 0x52\r
 #define DISPLAY_DVI         0\r
 #define DISPLAY_HDMI        1\r
-\r
+#define DISPLAY_MODE           (1<<1)
 //0x00\r
 #define RK610_INT_POL       1\r
 #define RK610_SYS_PWR_ON    0\r