summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandor Yu <R01008@freescale.com>2015-07-02 18:45:38 +0800
committerSandor Yu <R01008@freescale.com>2015-07-03 11:03:41 +0800
commit89a73d50385c380e456ed57d9eae382bde73cb8a (patch)
tree95beea45ce53e19033f1ef5bc13ad4a6786a5416
parent68af93647354087a55c86c58be48e8802c98aa3d (diff)
MLK-11215: hdmi: Fix hdmi hang issue on some specific monitor
hdmi will hang when cable connect from DVI monitor to some specific hdmi monitor. The issue can duplicate as followed steps: 1. boot up device, hdmi display as second display. 2. unblank hdmi display, then connect cable to DVI monitor. 3. connect cable to HDMI monitor. After the cable connect changed, hdmi work mode will change from DVI to hdmi mode, but video mode is not changed. hdmi overflow interrupter can't been clean in such process. Check hdmi work mode, and reconfigure fb and hdmi if work mode change. Signed-off-by: Sandor Yu <R01008@freescale.com>
-rw-r--r--drivers/video/mxc/mxc_hdmi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/video/mxc/mxc_hdmi.c b/drivers/video/mxc/mxc_hdmi.c
index 10b54fb5fe33..2706df1e8be9 100644
--- a/drivers/video/mxc/mxc_hdmi.c
+++ b/drivers/video/mxc/mxc_hdmi.c
@@ -1894,8 +1894,10 @@ static void mxc_hdmi_set_mode(struct mxc_hdmi *hdmi)
return;
}
- /* If video mode same as previous, init HDMI again */
- if (fb_mode_is_equal(&hdmi->previous_non_vga_mode, mode)) {
+ /* If both video mode and work mode same as previous,
+ * init HDMI again */
+ if (fb_mode_is_equal(&hdmi->previous_non_vga_mode, mode) &&
+ (hdmi->edid_cfg.hdmi_cap != hdmi->hdmi_data.video_mode.mDVI)) {
dev_dbg(&hdmi->pdev->dev,
"%s: Video mode same as previous\n", __func__);
/* update fbi mode in case modelist is updated */