[Freedreno] Reboot crash at msm_atomic_commit_tail
Rob Clark
robdclark at gmail.com
Tue Jan 19 16:43:14 UTC 2021
forgot to CC Krishna
On Tue, Jan 19, 2021 at 8:34 AM Rob Clark <robdclark at gmail.com> wrote:
>
> On Mon, Jan 18, 2021 at 11:00 PM Daniel Vetter <daniel at ffwll.ch> wrote:
> >
> > On Mon, Jan 18, 2021 at 11:00 PM Fabio Estevam <festevam at gmail.com> wrote:
> > >
> > > On Mon, Jan 18, 2021 at 6:44 PM Fabio Estevam <festevam at gmail.com> wrote:
> > > >
> > > > Adding some more folks in case anyone has any suggestions to fix this
> > > > reboot hang.
> > >
> > > Not sure if this is a valid fix, but the change below makes reboot
> > > works correctly.
> > >
> > > kmscube still works.
> > >
> > > --- a/drivers/gpu/drm/msm/msm_atomic.c
> > > +++ b/drivers/gpu/drm/msm/msm_atomic.c
> > > @@ -207,8 +207,12 @@ void msm_atomic_commit_tail(struct drm_atomic_state *state)
> > > struct msm_kms *kms = priv->kms;
> > > struct drm_crtc *async_crtc = NULL;
> > > unsigned crtc_mask = get_crtc_mask(state);
> > > - bool async = kms->funcs->vsync_time &&
> > > - can_do_async(state, &async_crtc);
> > > + bool async;
> > > +
> > > + if (!kms)
> > > + return;
> >
> > That looks a bit like a hack papering over the real issue.
> >
> > From your report it sounds like earlier kernels worked, did you
> > attempt bisecting? Also for regressions put regressions into the
> > subject, it's the magic work that gets much more attention.
>
> the root issue is how are we doing KMS stuff on imx (where drm/msm is
> only used for gpu).. which I think is this commit:
>
> ----------
> commit 9d5cbf5fe46e350715389d89d0c350d83289a102
> Author: Krishna Manikandan <mkrishn at codeaurora.org>
> AuthorDate: Mon Jun 1 16:33:22 2020 +0530
> Commit: Rob Clark <robdclark at chromium.org>
> CommitDate: Tue Aug 18 08:09:01 2020 -0700
>
> drm/msm: add shutdown support for display platform_driver
>
> Define shutdown callback for display drm driver,
> so as to disable all the CRTCS when shutdown
> notification is received by the driver.
>
> This change will turn off the timing engine so
> that no display transactions are requested
> while mmu translations are getting disabled
> during reboot sequence.
>
> Signed-off-by: Krishna Manikandan <mkrishn at codeaurora.org>
>
> Changes in v2:
> - Remove NULL check from msm_pdev_shutdown (Stephen Boyd)
> - Change commit text to reflect when this issue
> was uncovered (Sai Prakash Ranjan)
>
> Signed-off-by: Rob Clark <robdclark at chromium.org>
> ----------
>
> I suppose we should do the drm_atomic_helper_shutdown() conditionally?
> Or the helper should bail if there is no kms?
>
> BR,
> -R
>
> > -Daniel
> >
> > > +
> > > + async = kms->funcs->vsync_time && can_do_async(state, &async_crtc);
> > >
> > > trace_msm_atomic_commit_tail_start(async, crtc_mask);
> > >
> > > Any comments?
> > >
> > > Thanks
> > > _______________________________________________
> > > dri-devel mailing list
> > > dri-devel at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/dri-devel
> >
> >
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
More information about the Freedreno
mailing list