Message ID | 20210923194617.69136-5-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/7] drm/i915/display: Wait PSR2 get out of deep sleep to update pipe | expand |
On Thu, Sep 23, 2021 at 12:46:15PM -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 biplanar > formats but until proper handle is added we can workaround it by > doing full frames fetch when state has biplanar formats. > > 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 356e0e96abf4e..001d81f128989 100644 > --- a/drivers/gpu/drm/i915/display/intel_psr.c > +++ b/drivers/gpu/drm/i915/display/intel_psr.c > @@ -1579,6 +1579,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 biplanar 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. > @@ -1588,6 +1591,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->is_yuv || is_yuv != planar > 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 356e0e96abf4e..001d81f128989 100644 --- a/drivers/gpu/drm/i915/display/intel_psr.c +++ b/drivers/gpu/drm/i915/display/intel_psr.c @@ -1579,6 +1579,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 biplanar 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. @@ -1588,6 +1591,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->is_yuv || plane_state->uapi.rotation != DRM_MODE_ROTATE_0) return false;