diff options
author | Sandor Yu <R01008@freescale.com> | 2015-07-02 18:45:38 +0800 |
---|---|---|
committer | Sandor Yu <R01008@freescale.com> | 2015-07-03 11:03:41 +0800 |
commit | 89a73d50385c380e456ed57d9eae382bde73cb8a (patch) | |
tree | 95beea45ce53e19033f1ef5bc13ad4a6786a5416 | |
parent | 68af93647354087a55c86c58be48e8802c98aa3d (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.c | 6 |
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 */ |