I had a meeting with an Intel Display Architect.  The expected behavior for the 
driver is PSR2-SU enabling should disable FBC.  I will update the patch to 
limit fbc disabling for PSR2-SU only, not PSR1.  Please look at the HSD below 
for expected driver implementation.  
https://hsdes.intel.com/appstore/article/#/14010265390  
Thanks,
Jason

-----Original Message-----
From: Souza, Jose <jose.so...@intel.com> 
Sent: Monday, June 08, 2020 9:52 AM
To: Le, Jason V <jason.v...@intel.com>; intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] drm/i915/display: Avoid PSR and FBC features 
concurently.

On Sun, 2020-06-07 at 23:56 -0700, Jason Le wrote:
> Issue: Enble both PSR and FBC caused some fickers on some eDP panels 
> (eg. Panel GIS 13.5" QHD Glare NE135FBM-N41/NC135GFL02).  Disbling 
> either PSR or FBC will solve this flicker issue.
> 
> Both PSR and FBC features save power when render is not busy. When PSR 
> is active, saving power achieved  by source turning off source 
> transmitter and main link, putting memory on self-refresh mode. 
> Therefore with PSR enabled, FBC role is minimized since PSR power 
> saving already covers most what FBC does.  Disabling FBC in case to 
> avoid conflict between PSR and FBC which causes display anomaly in some 
> scenarios.

The combination of both saves even more power so no to this, we should fix the 
issue not disable features because of a single panel having issues.

A PSR2 fix was merged yesterday "drm/i915/psr: Program default IO buffer Wake 
and Fast Wake" try with that, if just that don't fix try set 
psr_safest_params=1.
If this do not helps, please file a bug, add debug information and then we 
proceed from that.

> 
> Tests:
> Booted system with PSR enabled, verified FBC disabled.
> Disabled PSR with disabled (i915.enable_psr=0), verified FBC enabled.
> ---
>  drivers/gpu/drm/i915/display/intel_fbc.c | 6 ++++++  
> drivers/gpu/drm/i915/display/intel_psr.c | 4 +++-
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c 
> b/drivers/gpu/drm/i915/display/intel_fbc.c
> index 1c26673acb2d..52bc7483adb5 100644
> --- a/drivers/gpu/drm/i915/display/intel_fbc.c
> +++ b/drivers/gpu/drm/i915/display/intel_fbc.c
> @@ -1419,6 +1419,12 @@ void intel_fbc_init(struct drm_i915_private *dev_priv)
>       drm_dbg_kms(&dev_priv->drm, "Sanitized enable_fbc value: %d\n",
>                   i915_modparams.enable_fbc);
>  
> +     if (i915_modparams.enable_psr) {
> +               i915_modparams.enable_fbc = 0;
> +                DRM_DEBUG_KMS("PSR enabled. FBC no longer needed.  Disable 
> FBC. \n");
> +     }
> +
> +
>       if (!HAS_FBC(dev_priv)) {
>               fbc->no_fbc_reason = "unsupported by this chipset";
>               return;
> diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
> b/drivers/gpu/drm/i915/display/intel_psr.c
> index b7a2c102648a..25accfdd5ad3 100644
> --- a/drivers/gpu/drm/i915/display/intel_psr.c
> +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> @@ -1439,8 +1439,10 @@ void intel_psr_init(struct drm_i915_private *dev_priv)
>       if (!HAS_PSR(dev_priv))
>               return;
>  
> -     if (!dev_priv->psr.sink_support)
> +     if (!dev_priv->psr.sink_support) {
> +             i915_modparams.enable_psr = 0;
>               return;
> +     }
>  
>       if (IS_HASWELL(dev_priv))
>               /*

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to