mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-23 12:43:55 +08:00
drm/edid: Fix the HDTV hack.
Standard timings don't let you say 1366. Both 1360 and 1368 have been seen in the wild. So invent a CVT timing for it. CVT will round 1366 up to 1368; we'll then manually underscan it. Split this into two parts, since we need to do something sneaky between them in the future. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
b17e52ef7e
commit
a0910c8e37
@ -765,15 +765,25 @@ struct drm_display_mode *drm_mode_std(struct drm_device *dev,
|
|||||||
vsize = (hsize * 4) / 5;
|
vsize = (hsize * 4) / 5;
|
||||||
else
|
else
|
||||||
vsize = (hsize * 9) / 16;
|
vsize = (hsize * 9) / 16;
|
||||||
/* HDTV hack */
|
|
||||||
if (hsize == 1360 && vsize == 765 && vrefresh_rate == 60) {
|
/* HDTV hack, part 1 */
|
||||||
mode = drm_cvt_mode(dev, hsize, vsize, vrefresh_rate, 0, 0,
|
if (vrefresh_rate == 60 &&
|
||||||
|
((hsize == 1360 && vsize == 765) ||
|
||||||
|
(hsize == 1368 && vsize == 769))) {
|
||||||
|
hsize = 1366;
|
||||||
|
vsize = 768;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* HDTV hack, part 2 */
|
||||||
|
if (hsize == 1366 && vsize == 768 && vrefresh_rate == 60) {
|
||||||
|
mode = drm_cvt_mode(dev, 1366, 768, vrefresh_rate, 0, 0,
|
||||||
false);
|
false);
|
||||||
mode->hdisplay = 1366;
|
mode->hdisplay = 1366;
|
||||||
mode->vsync_start = mode->vsync_start - 1;
|
mode->vsync_start = mode->vsync_start - 1;
|
||||||
mode->vsync_end = mode->vsync_end - 1;
|
mode->vsync_end = mode->vsync_end - 1;
|
||||||
return mode;
|
return mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
mode = NULL;
|
mode = NULL;
|
||||||
/* check whether it can be found in default mode table */
|
/* check whether it can be found in default mode table */
|
||||||
mode = drm_find_dmt(dev, hsize, vsize, vrefresh_rate);
|
mode = drm_find_dmt(dev, hsize, vsize, vrefresh_rate);
|
||||||
|
Loading…
Reference in New Issue
Block a user