[v2] drm/amd/display: only fill dirty rectangles when PSR is enabled

Message ID 20221109182010.171534-1-hamza.mahfooz@amd.com
State New
Headers
Series [v2] drm/amd/display: only fill dirty rectangles when PSR is enabled |

Commit Message

Hamza Mahfooz Nov. 9, 2022, 6:20 p.m. UTC
  Currently, we are calling fill_dc_dirty_rects() even if PSR isn't
supported by the relevant link in amdgpu_dm_commit_planes(), this is
undesirable especially because when drm.debug is enabled we are printing
messages in fill_dc_dirty_rects() that are only useful for debugging PSR
(and confusing otherwise). So, we can instead limit the filling of dirty
rectangles to only when PSR is enabled.

Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>
---
v2: give a more concrete reason.
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Leo Li Nov. 9, 2022, 7:25 p.m. UTC | #1
On 11/9/22 13:20, Hamza Mahfooz wrote:
> Currently, we are calling fill_dc_dirty_rects() even if PSR isn't
> supported by the relevant link in amdgpu_dm_commit_planes(), this is
> undesirable especially because when drm.debug is enabled we are printing
> messages in fill_dc_dirty_rects() that are only useful for debugging PSR
> (and confusing otherwise). So, we can instead limit the filling of dirty
> rectangles to only when PSR is enabled.
> 
> Signed-off-by: Hamza Mahfooz <hamza.mahfooz@amd.com>

Reviewed-by: Leo Li <sunpeng.li@amd.com>
Thanks

> ---
> v2: give a more concrete reason.
> ---
>   drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 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 66eb16fbe09f..956a6e494709 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -7697,9 +7697,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
>   		bundle->surface_updates[planes_count].plane_info =
>   			&bundle->plane_infos[planes_count];
>   
> -		fill_dc_dirty_rects(plane, old_plane_state, new_plane_state,
> -				    new_crtc_state,
> -				    &bundle->flip_addrs[planes_count]);
> +		if (acrtc_state->stream->link->psr_settings.psr_feature_enabled)
> +			fill_dc_dirty_rects(plane, old_plane_state,
> +					    new_plane_state, new_crtc_state,
> +					    &bundle->flip_addrs[planes_count]);
>   
>   		/*
>   		 * Only allow immediate flips for fast updates that don't
  

Patch

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 66eb16fbe09f..956a6e494709 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -7697,9 +7697,10 @@  static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
 		bundle->surface_updates[planes_count].plane_info =
 			&bundle->plane_infos[planes_count];
 
-		fill_dc_dirty_rects(plane, old_plane_state, new_plane_state,
-				    new_crtc_state,
-				    &bundle->flip_addrs[planes_count]);
+		if (acrtc_state->stream->link->psr_settings.psr_feature_enabled)
+			fill_dc_dirty_rects(plane, old_plane_state,
+					    new_plane_state, new_crtc_state,
+					    &bundle->flip_addrs[planes_count]);
 
 		/*
 		 * Only allow immediate flips for fast updates that don't