[Intel-gfx] [PATCH 8/9] drm/i915: Deal with bigjoiner vs. DRRS
Navare, Manasi
manasi.d.navare at intel.com
Tue Mar 15 18:24:35 UTC 2022
On Tue, Mar 15, 2022 at 03:27:51PM +0200, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala at linux.intel.com>
>
> DRRS operates on transcoder level, so we should only poke at it from
> the master crtc rather than letting every joined pipe give it
> potentially conflicting input.
>
> Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
Looks good
Reviewed-by: Manasi Navare <manasi.d.navare at intel.com>
Manasi
> ---
> drivers/gpu/drm/i915/display/intel_drrs.c | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c
> index 44c9af8f8b9b..9a341ab1a848 100644
> --- a/drivers/gpu/drm/i915/display/intel_drrs.c
> +++ b/drivers/gpu/drm/i915/display/intel_drrs.c
> @@ -176,8 +176,16 @@ static void intel_drrs_schedule_work(struct intel_crtc *crtc)
> static unsigned int intel_drrs_frontbuffer_bits(const struct intel_crtc_state *crtc_state)
> {
> struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
> + struct drm_i915_private *i915 = to_i915(crtc->base.dev);
> + unsigned int frontbuffer_bits;
>
> - return INTEL_FRONTBUFFER_ALL_MASK(crtc->pipe);
> + frontbuffer_bits = INTEL_FRONTBUFFER_ALL_MASK(crtc->pipe);
> +
> + for_each_intel_crtc_in_pipe_mask(&i915->drm, crtc,
> + crtc_state->bigjoiner_pipes)
> + frontbuffer_bits |= INTEL_FRONTBUFFER_ALL_MASK(crtc->pipe);
> +
> + return frontbuffer_bits;
> }
>
> /**
> @@ -196,6 +204,9 @@ void intel_drrs_enable(const struct intel_crtc_state *crtc_state)
> if (!crtc_state->hw.active)
> return;
>
> + if (intel_crtc_is_bigjoiner_slave(crtc_state))
> + return;
> +
> mutex_lock(&crtc->drrs.mutex);
>
> crtc->drrs.cpu_transcoder = crtc_state->cpu_transcoder;
> @@ -223,6 +234,9 @@ void intel_drrs_disable(const struct intel_crtc_state *old_crtc_state)
> if (!old_crtc_state->hw.active)
> return;
>
> + if (intel_crtc_is_bigjoiner_slave(old_crtc_state))
> + return;
> +
> mutex_lock(&crtc->drrs.mutex);
>
> if (intel_drrs_is_enabled(crtc))
> --
> 2.34.1
>
More information about the Intel-gfx
mailing list