On Mon, May 10, 2021 at 9:08 PM Stephen Boyd <swboyd@xxxxxxxxxxxx> wrote: [cut] > > > > > > I will try it, but then I wonder about things like system wide > > > suspend/resume too. The drm encoder chain would need to reimplement the > > > logic for system wide suspend/resume so that any PM ops attached to the > > > msm device run in the correct order. Right now the bridge PM ops will > > > run, the i2c bus PM ops will run, and then the msm PM ops will run. > > > After this change, the msm PM ops will run, the bridge PM ops will run, > > > and then the i2c bus PM ops will run. It feels like that could be a > > > problem if we're suspending the DSI encoder while the bridge is still > > > active. > > > > Yup suspend/resume has the exact same problem as shutdown. > > I think suspend/resume has the exact opposite problem. At least I think > the correct order is to suspend the bridge, then the encoder, i.e. DSI, > like is happening today. It looks like drm_atomic_helper_shutdown() > operates from the top down when we want bottom up? I admit I have no > idea what is supposed to happen here. Why would the system-wide suspend ordering be different from the shutdown ordering?