msm: hdmi: edid: always add timings parsed from DTD to reserved list

Resolutions listed in the Detailed Timing Descriptor (DTD) have
detailed information about all the timings. Current implementation
attempts to match the parsed resolution with the resolution database
based on just the Video Information Code (VIC). This can potentially
overlook mismatches in certain parameters such as refresh rates and
can cause unintended results. Fix this by always adding the resolutions
parsed from the DTDs to the reserved timing list.

CRs-Fixed: 1109812
Change-Id: I8b926f08ce9b44c4a16a32fed26fedd351d77ae8
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
This commit is contained in:
Aravind Venkateswaran 2017-01-15 15:22:46 -08:00
parent 1507849767
commit bc176f3364

View file

@ -1607,9 +1607,14 @@ static void hdmi_edid_detail_desc(struct hdmi_edid_ctrl *edid_ctrl,
(timing.refresh_rate % 100) / 10,
timing.refresh_rate % 10);
rc = hdmi_get_video_id_code(&timing, NULL);
if (rc < 0)
rc = hdmi_set_resv_timing_info(&timing);
/*
* Always add resolutions parsed from DTD in the reserved
* timing info. This can avoid matching resolutions that have
* a non-integral fps denominators with corresponding
* resolutions that have an integral fps denominator.
* For example - 640x480p@59.94Hz --> 640x480p@60Hz
*/
rc = hdmi_set_resv_timing_info(&timing);
} else {
rc = -EINVAL;
}