[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <66ae2ae3-7fac-76f2-6897-3b0a9dc46111@osg.samsung.com>
Date: Thu, 16 Feb 2017 14:24:54 -0300
From: Javier Martinez Canillas <javier@....samsung.com>
To: linux-kernel@...r.kernel.org
Cc: Mauro Carvalho Chehab <mchehab@...pensource.com>,
Andi Shyti <andi.shyti@...sung.com>,
Mark Brown <broonie@...nel.org>,
Shuah Khan <shuahkh@....samsung.com>,
Inki Dae <inki.dae@...sung.com>,
Jon Hunter <jonathanh@...dia.com>,
Liam Girdwood <lgirdwood@...il.com>
Subject: Re: [PATCH] regulator: core: Resolve supplies before disabling unused
regulators
Hello,
On 02/16/2017 02:06 PM, Javier Martinez Canillas wrote:
> After commit 66d228a2bf03 ("regulator: core: Don't use regulators as
> supplies until the parent is bound"), input supplies aren't resolved
> if the input supplies parent device has not been bound. This prevent
> regulators to hold an invalid reference if its supply parent device
> driver probe is deferred.
>
> But this causes issues on some boards where a PMIC's regulator use as
> input supply a regulator from another PMIC whose driver is registered
> after the driver for the former.
>
> In this case the regulators for the first PMIC will fail to resolve
> input supplies on regulators registration (since the other PMIC wasn't
> probed yet). And when the core attempts to resolve again latter when
> the other PMIC registers its own regulators, it will fail again since
> the parent device isn't bound yet.
>
> This will cause some parent supplies to never be resolved and wrongly
> be disabled on boot due taking them as unused.
>
> To solve this problem don't attempt to resolve the pending regulators
> input supplies on regulator registration, but instead do it just once
> before disabling the unused regulators.
>
> This also makes the regulator resolve logic more efficient since there
> is no need to attempt to resolve the input supplies on each regulator
> registration, and doing it once before disabling the unused is enough.
>
I just noticed that this last paragraph is not true. Removing the input
supply resolve logic from regulator_registration() may cause issues for
modules, since these will register regulators after late_initcall().
So I'll post a v2 leaving this part. Sorry for the noise.
> Signed-off-by: Javier Martinez Canillas <javier@....samsung.com>
>
Best regards,
--
Javier Martinez Canillas
Open Source Group
Samsung Research America
Powered by blists - more mailing lists