[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191130152700.GA14121@lst.de>
Date: Sat, 30 Nov 2019 16:27:00 +0100
From: Torsten Duwe <duwe@....de>
To: Mark Brown <broonie@...nel.org>
Cc: Liam Girdwood <lgirdwood@...il.com>, linux-kernel@...r.kernel.org,
stable@...r.kernel.org
Subject: Re: [PATCH] regulator: Defer init completion for a while after
late_initcall
On Mon, Nov 18, 2019 at 08:29:49PM +0000, Mark Brown wrote:
> On Mon, Nov 18, 2019 at 08:40:12PM +0100, Torsten Duwe wrote:
>
> > kernel: anx6345 0-0038: 0-0038 supply dvdd12-supply not found, using dummy regulator
> > kernel: anx6345 0-0038: 0-0038 supply dvdd25-supply not found, using dummy regulator
>
> > DT has:
> > dvdd25-supply = <®_dldo2>;
> > dvdd12-supply = <®_dldo3>;
Note these 4 lines...
> > It's only that the regulator driver module has not fully loaded at that point.
>
> We substitute in the dummy regulator in regulator_get() if
> regulator_dev_lookup() returns -ENODEV and a few other conditions are
> satisfied. When lookup up via DT regulator_dev_lookup() will use
> of_find_regulator_by_node() to look up the regulator, if that lookup
> fails it returns -EPROBE_DEFER. Until we get to of_find_regulator_by_node()
> we're just looking to see if nodes exist, not to see if anything is
> registered. What mechanism do you see causing issues? If there's
> something going wrong here it's in that area.
First of all: thanks a lot! This has put me onto the right track.
> As far as I can tell whatever is going on with your system it's only
> ever been working through luck.
Yes indeed. It turned out the regulators were still on from U-Boot
and that code never worked.
> Without any specific references to
> what's going on in the system it's hard to tell what might be happening,
Well, actually the 4 lines above give a good hint :) of_get_regulator()
will look for "dvdd25-supply-supply". I'm fairly relieved that even you
didn't spot this right away. The fix just went to dri-devel, you're Cc'ed.
Unfortunately the documentation for this is buried in the git commit log.
For the record: I'm still convinced that the original change can uncover
bugs unexpectedly, and is not suited for -stable.
Thanks for the help, and sorry for the non-standard nomenclature.
Torsten
Powered by blists - more mailing lists