Only fill it in for pre-1.1 monitors - when GTF hadn't yet been defined - or for EDID 1.4's explicit "just a range, not a timing formula" case.
Bugzilla: https://bugs.freedesktop.org/51146 Signed-off-by: Adam Jackson <ajax at redhat.com> --- drivers/gpu/drm/drm_edid.c | 14 +++++++++----- 1 files changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index eb92fe2..062dd06 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -1138,12 +1138,12 @@ do_inferred_modes(struct detailed_timing *timing, void *c) if (data->type != EDID_DETAIL_MONITOR_RANGE) return; - closure->modes += drm_dmt_modes_for_range(closure->connector, - closure->edid, - timing); - - if (!version_greater(closure->edid, 1, 1)) + if (!version_greater(closure->edid, 1, 1)) { + closure->modes += drm_dmt_modes_for_range(closure->connector, + closure->edid, + timing); return; /* GTF not defined yet */ + } switch (range->flags) { case 0x02: /* secondary gtf, XXX could do more */ @@ -1161,6 +1161,10 @@ do_inferred_modes(struct detailed_timing *timing, void *c) timing); break; case 0x01: /* just the ranges, no formula */ + closure->modes += drm_dmt_modes_for_range(closure->connector, + closure->edid, + timing); + break; default: break; } -- 1.7.7.6