Re: [PATCH 2/2] regulator: core: Ensure we are at least in bounds for our constraints

From: Krzysztof Kozlowski
Date: Thu Mar 24 2016 - 03:18:36 EST


On Thu, Mar 24, 2016 at 3:11 PM, Krzysztof Kozlowski
<k.kozlowski@xxxxxxxxxxx> wrote:
> On Tue, Mar 22, 2016 at 6:06 AM, Ivaylo Dimitrov
> <ivo.g.dimitrov.75@xxxxxxxxx> wrote:
>> Hi,
>>
>> On 21.03.2016 21:18, Mark Brown wrote:
>>>
>>> Currently we only attempt to set the voltage during constraints
>>> application if an exact voltage is specified. Extend this so that if
>>> the currently set voltage for the regualtor is outside the bounds set in
>>
>>
>> regulator
>>
>>> constraints we will move the voltage to the nearest constraint, raising
>>> to the minimum or lowering to the maximum as needed. This ensures that
>>> drivers can probe without the hardware being driven out of spec.
>>>
>>> Reported-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@xxxxxxxxx>
>>> Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
>>> ---
>>>
>>> Untested so far, will give it a spin later/tomorrow.
>>>
>>> drivers/regulator/core.c | 32 +++++++++++++++++++++++++-------
>>> 1 file changed, 25 insertions(+), 7 deletions(-)
>>>
>>
>> Patch 1 does not apply cleanly on 4.5-rc5, so I applied it by hand, however,
>> you may add:
>>
>> Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@xxxxxxxxx>
>
>
> Cc: Ulf, mmc
>
> I bisected today's next MMC/SD card failure to this patch. Plugging a
> SD card on Odroid XU3/XU4 (Exynos5422) causes:
> [ 11.759954] mmc1: card never left busy state
> [ 11.762795] mmc1: error -110 whilst initialising SD card
>
> Full log (for booting from SD but it happens also when plugging the
> card to the board booted from eMMC):
> http://www.krzk.eu/builders/boot-odroid-xu3-multi_v7/builds/538/steps/Boot%20odroid/logs/serial

+Cc: linux-samsung-soc, Javier and Marek.

Although bisect complained about this patch but I am not convinced
that it is the cause. Before the patch the constraints were not
applied. To none of the regulators. With the patch the constraints are
applied to bucks... which are not directly used by SD card.

Instead some of the bucks are apparently supplying other LDOs. I
suspect buck9 which is mentioned as a supply for VDD 2.8V (2.8V
happens to be also the voltage of regulators going to SD card).
With the patch following constraints are applied:
target_min, target max, current
setting BUCK1 to 1100000 1100000 1100000
setting BUCK2 to 1000000 1000000 1000000
setting BUCK3 to 1000000 1000000 1000000
setting BUCK4 to 1000000 1000000 1000000
setting BUCK5 to 1200000 1200000 1200000
setting BUCK6 to 1025000 1025000 1025000
setting BUCK7 to 900000 900000 900000
setting BUCK8 to 1225000 1225000 1225000
setting BUCK9 to 3750000 3750000 5000000

Why the heck current_uV is 5V? I'll try to figure this out...

Best regards,
Krzysztof