Message ID | 20220707212003.1710163-1-robdclark@gmail.com |
---|---|
State | New |
Headers | show |
Series | drm/msm/dpu: Fix for non-visible planes | expand |
On 08/07/2022 00:20, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > Fixes `kms_cursor_crc --run-subtest cursor-offscreen`.. when the cursor > moves offscreen the plane becomes non-visible, so we need to skip over > it in crtc atomic test and mixer setup. > > Signed-off-by: Rob Clark <robdclark@chromium.org> Fixes: 25fdd5933e4c ("drm/msm: Add SDM845 DPU support") Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index 4dd0ce09ca74..4ba000951a90 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -422,6 +422,9 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc, > if (!state) > continue; > > + if (!state->visible) > + continue; > + > pstate = to_dpu_plane_state(state); > fb = state->fb; > > @@ -1195,6 +1198,9 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc, > if (cnt >= DPU_STAGE_MAX * 4) > continue; > > + if (!pstate->visible) > + continue; > + > pstates[cnt].dpu_pstate = dpu_pstate; > pstates[cnt].drm_pstate = pstate; > pstates[cnt].stage = pstate->normalized_zpos;
On 7/7/2022 2:20 PM, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > Fixes `kms_cursor_crc --run-subtest cursor-offscreen`.. when the cursor > moves offscreen the plane becomes non-visible, so we need to skip over > it in crtc atomic test and mixer setup. > > Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Will pick up the fixes tag from Dmitry's r-b. > --- > drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > index 4dd0ce09ca74..4ba000951a90 100644 > --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c > @@ -422,6 +422,9 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc, > if (!state) > continue; > > + if (!state->visible) > + continue; > + > pstate = to_dpu_plane_state(state); > fb = state->fb; > > @@ -1195,6 +1198,9 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc, > if (cnt >= DPU_STAGE_MAX * 4) > continue; > > + if (!pstate->visible) > + continue; > + > pstates[cnt].dpu_pstate = dpu_pstate; > pstates[cnt].drm_pstate = pstate; > pstates[cnt].stage = pstate->normalized_zpos;
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c index 4dd0ce09ca74..4ba000951a90 100644 --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -422,6 +422,9 @@ static void _dpu_crtc_blend_setup_mixer(struct drm_crtc *crtc, if (!state) continue; + if (!state->visible) + continue; + pstate = to_dpu_plane_state(state); fb = state->fb; @@ -1195,6 +1198,9 @@ static int dpu_crtc_atomic_check(struct drm_crtc *crtc, if (cnt >= DPU_STAGE_MAX * 4) continue; + if (!pstate->visible) + continue; + pstates[cnt].dpu_pstate = dpu_pstate; pstates[cnt].drm_pstate = pstate; pstates[cnt].stage = pstate->normalized_zpos;