On Fri, 31 Mar 2023 at 16:59, Vinod Polimera <quic_vpolimer@xxxxxxxxxxx> wrote: > > In certain CPU stress conditions, there can be a delay in scheduling commit > work and it was observed that PSR commit from a different work queue was > scheduled. Avoid these commits as display is already in PSR mode. > > Signed-off-by: Vinod Polimera <quic_vpolimer@xxxxxxxxxxx> > --- > drivers/gpu/drm/msm/msm_atomic.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/msm/msm_atomic.c b/drivers/gpu/drm/msm/msm_atomic.c > index 645fe53..f8141bb 100644 > --- a/drivers/gpu/drm/msm/msm_atomic.c > +++ b/drivers/gpu/drm/msm/msm_atomic.c > @@ -192,6 +192,9 @@ int msm_atomic_check(struct drm_device *dev, struct drm_atomic_state *state) > new_crtc_state->mode_changed = true; > state->allow_modeset = true; > } > + > + if (old_crtc_state->self_refresh_active && new_crtc_state->self_refresh_active) > + return -EINVAL; EINVAL here means that atomic_check will fail if both old and new states are in SR mode. For example, there might be a mode set for another CRTC (while keeping this one in SR mode). I don't think this is correct. We should skip/shortcut the commit, that's true. But I doubt that returning an error here is a proper way to do this. Please correct me if I'm wrong. > } > > return drm_atomic_helper_check(dev, state); > -- > 2.7.4 > -- With best wishes Dmitry