Messages in this thread | | | From | Saravana Kannan <> | Date | Wed, 24 Jun 2020 16:22:40 -0700 | Subject | Re: [PATCH v1 4/4] of: platform: Batch fwnode parsing when adding all top level devices |
| |
On Mon, Jun 22, 2020 at 8:49 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Saravana, > > On Sat, Jun 20, 2020 at 4:33 AM Saravana Kannan <saravanak@google.com> wrote: > > On Fri, Jun 19, 2020 at 1:07 PM Saravana Kannan <saravanak@google.com> wrote: > > > I think instead of deferred_probe_work_func() moving the device to the > > > end of the dpm_list, I think the device probing successfully is what > > > should move it to the end of the dpm_list. That way, the dpm_list is > > > actually ordered by when the devices become functional and not the > > > random order in DT or random probe order which can get pretty > > > convoluted with multiple deferred probes. This feels right and will > > > make suspend/resume more robust against DT ordering -- but I'm not > > > sure what other wide ranging impact this has for other platforms. > > > > If you want to play around with a potential fix to test my hypothesis, > > I think it's just adding this one line to driver_bound(): > > ============ > > klist_add_tail(&dev->p->knode_driver, &dev->driver->p->klist_devices); > > device_links_driver_bound(dev); > > +device_pm_move_to_tail(dev); > > > > device_pm_check_callbacks(dev); > > ============ > > Thanks, that seems to fix the issue for me, on both affected systems! > Note that this has quite some impact on the order devices are suspended, > but this seems harmless. > > Will try on more systems later...
Thanks for testing. Maybe I should just send that change as a patch and see what Greg/Rafael have to say to that.
It's a general fix anyway. So, might as well send it out.
-Saravana
| |