On Thu, Jun 11, 2015 at 12:17 PM, Alexander Holler holler@ahsoftware.de wrote:
Am 11.06.2015 um 10:12 schrieb Linus Walleij:
On Wed, Jun 10, 2015 at 10:28 AM, Alexander Holler holler@ahsoftware.de wrote:
You would end up with the same problem of deadlocks as currently, and you would still need something ugly like the defered probe brutforce to avoid them.
Sorry I don't get that. Care to elaborate on why?
Because loading/initializing on demand doesn't give you any solved order of drivers to initialize. And it can't because it has no idea about the requirements of other drivers. The reason why it might work better in the case of the tegra is that it might give you another initialization order than the one which is currently choosen, which, by luck, might be a better one.
But maybe I missed something, I haven't looked at the patches at all. But just loading on demand, can't magically give you a working order of drivers to initialize. E.g. how do you choose the first driver to initialize?
So the current patch set introduces dependencies (just for device tree) and Tomeu is working on a more generic dependency approach for any HW description.
The first driver to initialize will be as usual the first one in the list for that initlevel, then walking up the initilevels.
However if any driver runs into a resource roadblock it will postpone and wait for dependencies to probe first.
Certainly it is possible to create deadlocks in this scenario, but the scope is not to create an ubreakable system.
Yours, Linus Walleij