Skip to content

Commit 937844d

Browse files
committed
drm/amd/display: handle range offsets in VRR ranges
Need to check the offset bits for values greater than 255. v2: also update amdgpu_dm_connector values. Suggested-by: Mano Ségransan <[email protected]> Tested-by: Mano Ségransan <[email protected]> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/3203 Reviewed-by: Harry Wentland <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected]
1 parent e9098cc commit 937844d

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11169,14 +11169,23 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
1116911169
if (range->flags != 1)
1117011170
continue;
1117111171

11172-
amdgpu_dm_connector->min_vfreq = range->min_vfreq;
11173-
amdgpu_dm_connector->max_vfreq = range->max_vfreq;
11174-
amdgpu_dm_connector->pixel_clock_mhz =
11175-
range->pixel_clock_mhz * 10;
11176-
1117711172
connector->display_info.monitor_range.min_vfreq = range->min_vfreq;
1117811173
connector->display_info.monitor_range.max_vfreq = range->max_vfreq;
1117911174

11175+
if (edid->revision >= 4) {
11176+
if (data->pad2 & DRM_EDID_RANGE_OFFSET_MIN_VFREQ)
11177+
connector->display_info.monitor_range.min_vfreq += 255;
11178+
if (data->pad2 & DRM_EDID_RANGE_OFFSET_MAX_VFREQ)
11179+
connector->display_info.monitor_range.max_vfreq += 255;
11180+
}
11181+
11182+
amdgpu_dm_connector->min_vfreq =
11183+
connector->display_info.monitor_range.min_vfreq;
11184+
amdgpu_dm_connector->max_vfreq =
11185+
connector->display_info.monitor_range.max_vfreq;
11186+
amdgpu_dm_connector->pixel_clock_mhz =
11187+
range->pixel_clock_mhz * 10;
11188+
1118011189
break;
1118111190
}
1118211191

0 commit comments

Comments
 (0)