On Fri, May 14, 2021 at 03:57:39PM +0300, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > The intention was to check whether the primary plane is enabled > without any sprites planes being enabled. Instead we ended up checking > whether just any one of the planes is enabled. g4x isn't vlv/chv and > cxsr only works with the primary plane. Fix the check to examine the > bitmask of active planes rather than the number of bits set in said > bitmask. > > Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/intel_pm.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c > index 00a5fe424c5a..2fb496fbed43 100644 > --- a/drivers/gpu/drm/i915/intel_pm.c > +++ b/drivers/gpu/drm/i915/intel_pm.c > @@ -1376,8 +1376,7 @@ static int g4x_compute_pipe_wm(struct intel_crtc_state *crtc_state) > struct intel_atomic_state *state = > to_intel_atomic_state(crtc_state->uapi.state); > struct g4x_wm_state *wm_state = &crtc_state->wm.g4x.optimal; > - int num_active_planes = hweight8(crtc_state->active_planes & > - ~BIT(PLANE_CURSOR)); > + u8 active_planes = crtc_state->active_planes & ~BIT(PLANE_CURSOR); > const struct g4x_pipe_wm *raw; > const struct intel_plane_state *old_plane_state; > const struct intel_plane_state *new_plane_state; > @@ -1417,7 +1416,7 @@ static int g4x_compute_pipe_wm(struct intel_crtc_state *crtc_state) > wm_state->sr.cursor = raw->plane[PLANE_CURSOR]; > wm_state->sr.fbc = raw->fbc; > > - wm_state->cxsr = num_active_planes == BIT(PLANE_PRIMARY); > + wm_state->cxsr = active_planes == BIT(PLANE_PRIMARY); Shouldn't this be "active_planes & BIT(PLANE_PRIMARY)" as we might have other non-cursor planes enabled, which will then fail or am I missing something? Stan > > level = G4X_WM_LEVEL_HPLL; > if (!g4x_raw_crtc_wm_is_valid(crtc_state, level)) > -- > 2.26.3 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx