[PATCH] drm/amd/display: Get min/max vfreq from display_info

Harry Wentland harry.wentland at amd.com
Tue Mar 12 15:28:57 UTC 2024



On 2024-03-12 10:58, Alex Deucher wrote:
> On Tue, Mar 12, 2024 at 9:57 AM Harry Wentland <harry.wentland at amd.com> wrote:
>>
>> We need the min/max vfreq on the amdgpu_dm_connector in order to
>> program VRR.
>>
>> Fixes: db3e4f1cbb84 ("drm/amd/display: Use freesync when `DRM_EDID_FEATURE_CONTINUOUS_FREQ` found")
>> Signed-off-by: Harry Wentland <harry.wentland at amd.com>
>> ---
>>  drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 +++++--
>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> index b1ca0aee0b30..cffb2655177c 100644
>> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
>> @@ -11278,12 +11278,15 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,
>>
>>                 if (is_dp_capable_without_timing_msa(adev->dm.dc,
>>                                                      amdgpu_dm_connector)) {
>> -                       if (edid->features & DRM_EDID_FEATURE_CONTINUOUS_FREQ)
>> +                       if (edid->features & DRM_EDID_FEATURE_CONTINUOUS_FREQ) {
>>                                 freesync_capable = true;
>> -                       else
>> +                               amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq;
>> +                               amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq;
> 
> Does this need special handling for DRM_EDID_RANGE_OFFSET_MIN_VFREQ
> and DRM_EDID_RANGE_OFFSET_MAX_VFREQ as well (similar to the code below
> it)?
> 

get_monitor_range in drm_edid.c already handles it. I'm actually wondering
if the "else" and "edid_check_required" case is still required now, as it
essentially just duplicates the drm_edid code. But I don't want to rip it
out in the same patch and without a bit of testing.

Harry

> Alex
> 
>> +                       } else {
>>                                 edid_check_required = edid->version > 1 ||
>>                                                       (edid->version == 1 &&
>>                                                        edid->revision > 1);
>> +                       }
>>                 }
>>
>>                 if (edid_check_required) {
>> --
>> 2.44.0
>>



More information about the amd-gfx mailing list