rk30 hdmi:
authorZheng Yang <zhengyang@rock-chips.com>
Thu, 16 Aug 2012 09:45:11 +0000 (17:45 +0800)
committerZheng Yang <zhengyang@rock-chips.com>
Thu, 16 Aug 2012 09:45:11 +0000 (17:45 +0800)
1. Need not take tmds_clk pull up to 3.3V as a hdmi connection condition.
2. When parse unkown edid extensions, return false and set it as a hdmi sink.

drivers/video/rockchip/hdmi/rk30_hdmi_edid.c
drivers/video/rockchip/hdmi/rk30_hdmi_hw.c

index 9fec195fea3cc03bc307bf4f118c1ddcf28b2f19..7a25775493e189cc17be7e18f1a49fd17e346fa3 100755 (executable)
@@ -345,8 +345,8 @@ static int hdmi_edid_parse_extensions(unsigned char *buf, struct hdmi_edid *pedi
                hdmi_edid_debug("[EDID-EXTEND] It is a Digital Packet Video Link Extension.\n");\r
                break;\r
        default:\r
-               hdmi_edid_debug("[EDID-EXTEND] Unkowned extension.\n");\r
-               break;\r
+               hdmi_edid_error("[EDID-EXTEND] Unkowned extension.\n");\r
+               return E_HDMI_EDID_UNKOWNDATA;\r
     }\r
     \r
     return E_HDMI_EDID_SUCCESS;\r
index 8cb76ebfb14d1a8f37e47beab6ed50b935c07c5a..90bade5ae1bba6a8b3484c0fd48a309ff90de968 100755 (executable)
@@ -61,6 +61,8 @@ int rk30_hdmi_detect_hotplug(void)
        int value =     HDMIRdReg(HPD_MENS_STA);
        
        hdmi_dbg(hdmi->dev, "[%s] value %02x\n", __FUNCTION__, value);
+       #if 0
+       // When HPD and TMDS_CLK was high, HDMI is actived.
        value &= m_HOTPLUG_STATUS | m_MSEN_STATUS;
        if(value  == (m_HOTPLUG_STATUS | m_MSEN_STATUS) )
                return HDMI_HPD_ACTIVED;
@@ -68,6 +70,15 @@ int rk30_hdmi_detect_hotplug(void)
                return HDMI_HPD_INSERT;
        else
                return HDMI_HPD_REMOVED;
+       #else
+       // When HPD was high, HDMI is actived.
+       if(value & m_HOTPLUG_STATUS)
+               return HDMI_HPD_ACTIVED;
+       else if(value & m_MSEN_STATUS)
+               return HDMI_HPD_INSERT;
+       else
+               return HDMI_HPD_REMOVED;
+       #endif
 }
 
 #define HDMI_EDID_DDC_CLK      90000