msm: mdss: hdmi: fall back to legacy block when CEA block is bad

In case of CEA extension block is not correct or corrupted, fall
back to block 0 to read the resolutions supported.

Change-Id: I2b63ff1f918b3ece89ab35eb4a64d4ac96aaeabe
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
This commit is contained in:
Ajay Singh Parmar 2014-12-17 12:29:20 -08:00 committed by David Keitel
parent a163df5139
commit 5b421e1edc

View file

@ -1539,6 +1539,7 @@ static void hdmi_edid_get_display_mode(struct hdmi_edid_ctrl *edid_ctrl,
const u8 *svd = NULL;
u32 has60hz_mode = false;
u32 has50hz_mode = false;
bool read_block0_res = false;
struct hdmi_edid_sink_data *sink_data = NULL;
if (!edid_ctrl || !data_buf) {
@ -1553,9 +1554,9 @@ static void hdmi_edid_get_display_mode(struct hdmi_edid_ctrl *edid_ctrl,
VIDEO_DATA_BLOCK, &len) : NULL;
if (num_of_cea_blocks && (len == 0 || len > MAX_DATA_BLOCK_SIZE)) {
DEV_DBG("%s: No/Invalid Video Data Block\n",
__func__);
return;
DEV_DBG("%s: fall back to block 0 res\n", __func__);
svd = NULL;
read_block0_res = true;
}
sink_data = &edid_ctrl->sink_data;
@ -1599,7 +1600,7 @@ static void hdmi_edid_get_display_mode(struct hdmi_edid_ctrl *edid_ctrl,
if (video_format == HDMI_VFRMT_640x480p60_4_3)
has480p = true;
}
} else if (!num_of_cea_blocks) {
} else if (!num_of_cea_blocks || read_block0_res) {
/* Detailed timing descriptors */
u32 desc_offset = 0;
/*