mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-18 06:33:43 -04:00
drm/amd/display: Don't adjust VRR unnecessarily
[why] Do not need to spend time reprogramming DRR if there were no updates to the parameters. [how] Compare the current stream state to the requested one to determine if an update is required. In amdgpu_dm the timing_changed flag is set but never used so can remove it. Similarly, the stream update for VRR is done after dc_commit and should not update its adjust field until after the update is completed. The adjust field is managed by dc_stream_adjust_vmin_vmax and should not be manually updated in amdgpu_dm. Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Reviewed-by: Anthony Koo <Anthony.Koo@amd.com> Acked-by: Pavle Kotarac <Pavle.Kotarac@amd.com> Signed-off-by: Aric Cyr <aric.cyr@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -7370,11 +7370,6 @@ static void update_freesync_state_on_stream(
|
||||
&vrr_infopacket,
|
||||
pack_sdp_v1_3);
|
||||
|
||||
new_crtc_state->freesync_timing_changed |=
|
||||
(memcmp(&acrtc->dm_irq_params.vrr_params.adjust,
|
||||
&vrr_params.adjust,
|
||||
sizeof(vrr_params.adjust)) != 0);
|
||||
|
||||
new_crtc_state->freesync_vrr_info_changed |=
|
||||
(memcmp(&new_crtc_state->vrr_infopacket,
|
||||
&vrr_infopacket,
|
||||
@@ -7383,7 +7378,6 @@ static void update_freesync_state_on_stream(
|
||||
acrtc->dm_irq_params.vrr_params = vrr_params;
|
||||
new_crtc_state->vrr_infopacket = vrr_infopacket;
|
||||
|
||||
new_stream->adjust = acrtc->dm_irq_params.vrr_params.adjust;
|
||||
new_stream->vrr_infopacket = vrr_infopacket;
|
||||
|
||||
if (new_crtc_state->freesync_vrr_info_changed)
|
||||
@@ -7446,10 +7440,6 @@ static void update_stream_irq_parameters(
|
||||
new_stream,
|
||||
&config, &vrr_params);
|
||||
|
||||
new_crtc_state->freesync_timing_changed |=
|
||||
(memcmp(&acrtc->dm_irq_params.vrr_params.adjust,
|
||||
&vrr_params.adjust, sizeof(vrr_params.adjust)) != 0);
|
||||
|
||||
new_crtc_state->freesync_config = config;
|
||||
/* Copy state for access from DM IRQ handler */
|
||||
acrtc->dm_irq_params.freesync_config = config;
|
||||
|
||||
Reference in New Issue
Block a user