Message ID | 20210930001409.254817-2-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2,1/9] drm/i915/display/psr: Handle plane and pipe restrictions at every page flip | expand |
On Wed, Sep 29, 2021 at 05:14:02PM -0700, José Roberto de Souza wrote: > From: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> > > We are still missing the PSR2 selective fetch handling of multi-planar > formats but until proper handle is added we can workaround it by > doing full frames fetch when state has such formats. > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> > Signed-off-by: Gwan-gyeong Mun <gwan-gyeong.mun@intel.com> > --- > drivers/gpu/drm/i915/display/intel_psr.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c > index e3af1dc358bd2..8534cbb0d5144 100644 > --- a/drivers/gpu/drm/i915/display/intel_psr.c > +++ b/drivers/gpu/drm/i915/display/intel_psr.c > @@ -1573,6 +1573,9 @@ static void cursor_area_workaround(const struct intel_plane_state *new_plane_sta > * also planes are not updated if they have a negative X > * position so for now doing a full update in this cases > * > + * TODO: We are missing multi-planar formats handling, until it is > + * implemented it will send full frame updates. > + * > * Plane scaling and rotation is not supported by selective fetch and both > * properties can change without a modeset, so need to be check at every > * atomic commmit. > @@ -1582,6 +1585,7 @@ static bool psr2_sel_fetch_plane_state_supported(const struct intel_plane_state > if (plane_state->uapi.dst.y1 < 0 || > plane_state->uapi.dst.x1 < 0 || > plane_state->scaler_id >= 0 || > + plane_state->hw.fb->format->num_planes > 1 || This also catches ccs forrmats, but I guess for the moment that's what we want if we haven't thought about AUX_DIST and whatnot in relation to selective fetch. Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > plane_state->uapi.rotation != DRM_MODE_ROTATE_0) > return false; > > -- > 2.33.0
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c b/drivers/gpu/drm/i915/display/intel_psr.c index e3af1dc358bd2..8534cbb0d5144 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1573,6 +1573,9 @@ static void cursor_area_workaround(const struct intel_plane_state *new_plane_sta * also planes are not updated if they have a negative X * position so for now doing a full update in this cases * + * TODO: We are missing multi-planar formats handling, until it is + * implemented it will send full frame updates. + * * Plane scaling and rotation is not supported by selective fetch and both * properties can change without a modeset, so need to be check at every * atomic commmit. @@ -1582,6 +1585,7 @@ static bool psr2_sel_fetch_plane_state_supported(const struct intel_plane_state if (plane_state->uapi.dst.y1 < 0 || plane_state->uapi.dst.x1 < 0 || plane_state->scaler_id >= 0 || + plane_state->hw.fb->format->num_planes > 1 || plane_state->uapi.rotation != DRM_MODE_ROTATE_0) return false;