diff mbox series

[v2,2/2] drm/i915/fbc: remove panel_replay dependency from fbc wa checks

Message ID 20250319135130.122703-3-vinod.govindapillai@intel.com (mailing list archive)
State New
Headers show
Series update to FBC, PSR combo handling in xe2lpd | expand

Commit Message

Vinod Govindapillai March 19, 2025, 1:51 p.m. UTC
Panel replay is supported from display 14 onwards. So no need
to check the panel replay status in the previous gen workarounds.
In the newer panel replay, selective update is supported and it
is suffice to check selective update status for the workarounds
in FBC use cases.

Bspec: 66624, 50442
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
 drivers/gpu/drm/i915/display/intel_fbc.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

Comments

Hogander, Jouni March 20, 2025, 10:12 a.m. UTC | #1
On Wed, 2025-03-19 at 15:51 +0200, Vinod Govindapillai wrote:
> Panel replay is supported from display 14 onwards. So no need
> to check the panel replay status in the previous gen workarounds.
> In the newer panel replay, selective update is supported and it
> is suffice to check selective update status for the workarounds
> in FBC use cases.
> 
> Bspec: 66624, 50442
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 92b00da4c0ab..2dc8ff734b11 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1471,8 +1471,7 @@ static int intel_fbc_check_plane(struct
> intel_atomic_state *state,
>  	 * disabling PSR2, keep FBC disabled in case of selective
> update is on
>  	 * until the selection logic is implemented.
>  	 */
> -	if (DISPLAY_VER(display) >= 12 && crtc_state->has_sel_update
> &&
> -	    !crtc_state->has_panel_replay) {
> +	if (DISPLAY_VER(display) >= 12 && crtc_state-
> >has_sel_update) {
>  		plane_state->no_fbc_reason = "PSR2 enabled";

Probably you are sending update anyways so I think you could update
no_fbc_reason. E.g. Selective fetch/update enabled?

>  		return 0;
>  	}
> @@ -1480,7 +1479,7 @@ static int intel_fbc_check_plane(struct
> intel_atomic_state *state,
>  	/* Wa_14016291713 */
>  	if ((IS_DISPLAY_VER(display, 12, 13) ||
>  	     IS_DISPLAY_VERx100_STEP(display, 1400, STEP_A0,
> STEP_C0)) &&
> -	    crtc_state->has_psr && !crtc_state->has_panel_replay) {
> +	    crtc_state->has_psr) {

I don't think this is needed for Panel Replay.

BR,

Jouni Högander

>  		plane_state->no_fbc_reason = "PSR1 enabled
> (Wa_14016291713)";
>  		return 0;
>  	}
Vinod Govindapillai March 20, 2025, 10:42 a.m. UTC | #2
On Thu, 2025-03-20 at 10:12 +0000, Hogander, Jouni wrote:
> On Wed, 2025-03-19 at 15:51 +0200, Vinod Govindapillai wrote:
> > Panel replay is supported from display 14 onwards. So no need
> > to check the panel replay status in the previous gen workarounds.
> > In the newer panel replay, selective update is supported and it
> > is suffice to check selective update status for the workarounds
> > in FBC use cases.
> > 
> > Bspec: 66624, 50442
> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > ---
> >  drivers/gpu/drm/i915/display/intel_fbc.c | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c
> > b/drivers/gpu/drm/i915/display/intel_fbc.c
> > index 92b00da4c0ab..2dc8ff734b11 100644
> > --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> > @@ -1471,8 +1471,7 @@ static int intel_fbc_check_plane(struct
> > intel_atomic_state *state,
> >  	 * disabling PSR2, keep FBC disabled in case of selective
> > update is on
> >  	 * until the selection logic is implemented.
> >  	 */
> > -	if (DISPLAY_VER(display) >= 12 && crtc_state->has_sel_update
> > &&
> > -	    !crtc_state->has_panel_replay) {
> > +	if (DISPLAY_VER(display) >= 12 && crtc_state-
> > > has_sel_update) {
> >  		plane_state->no_fbc_reason = "PSR2 enabled";
> 
> Probably you are sending update anyways so I think you could update
> no_fbc_reason. E.g. Selective fetch/update enabled?
Ack

> 
> >  		return 0;
> >  	}
> > @@ -1480,7 +1479,7 @@ static int intel_fbc_check_plane(struct
> > intel_atomic_state *state,
> >  	/* Wa_14016291713 */
> >  	if ((IS_DISPLAY_VER(display, 12, 13) ||
> >  	     IS_DISPLAY_VERx100_STEP(display, 1400, STEP_A0,
> > STEP_C0)) &&
> > sep !0 

Yes. I will update that and patch description!

RB-ed with that change?

BR
Vinod
> 
> BR,
> 
> Jouni Högander
> 
> >  		plane_state->no_fbc_reason = "PSR1 enabled
> > (Wa_14016291713)";
> >  		return 0;
> >  	}
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c
index 92b00da4c0ab..2dc8ff734b11 100644
--- a/drivers/gpu/drm/i915/display/intel_fbc.c
+++ b/drivers/gpu/drm/i915/display/intel_fbc.c
@@ -1471,8 +1471,7 @@  static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	 * disabling PSR2, keep FBC disabled in case of selective update is on
 	 * until the selection logic is implemented.
 	 */
-	if (DISPLAY_VER(display) >= 12 && crtc_state->has_sel_update &&
-	    !crtc_state->has_panel_replay) {
+	if (DISPLAY_VER(display) >= 12 && crtc_state->has_sel_update) {
 		plane_state->no_fbc_reason = "PSR2 enabled";
 		return 0;
 	}
@@ -1480,7 +1479,7 @@  static int intel_fbc_check_plane(struct intel_atomic_state *state,
 	/* Wa_14016291713 */
 	if ((IS_DISPLAY_VER(display, 12, 13) ||
 	     IS_DISPLAY_VERx100_STEP(display, 1400, STEP_A0, STEP_C0)) &&
-	    crtc_state->has_psr && !crtc_state->has_panel_replay) {
+	    crtc_state->has_psr) {
 		plane_state->no_fbc_reason = "PSR1 enabled (Wa_14016291713)";
 		return 0;
 	}