lkml.org 
[lkml]   [2022]   [Aug]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v4] regulator: core: Resolve supply name earlier to prevent double-init
From
Hi Mark,

On 25.08.2022 14:21, Mark Brown wrote:
> On Thu, Aug 25, 2022 at 01:32:50PM +0200, Marek Szyprowski wrote:
>
>> This patch landed recently in linux next as commit 8a866d527ac0
>> ("regulator: core: Resolve supply name earlier to prevent double-init").
>> Unfortunately it breaks booting of Samsung Exynos 5800 based Peach-Pi
>> (arch/arm/boot/dts/exynos5800-peach-pi.dts) and Peach-Pit
>> (arch/arm/boot/dts/exynos5420-peach-pit.dts) Chromebooks. The last
>> message in the kernel log is a message about disabling 'vdd_1v2'
>> regulator. This regulator is not used directly, however it is a supply
>> for other critical regulators.
> This suggests that supplies are ending up not getting bound. Could you
> perhaps add logging to check that we're attempting to resolve the supply
> (in the
>
>
> + if ((rdev->supply_name && !rdev->supply) &&
> + (rdev->constraints->always_on ||
> + rdev->constraints->boot_on)) {
>
> block)?


I've spent a little time debugging this issue and here are my findings.
The problem is during the 'vdd_mif' regulator registration. It has one
supply called 'inb1' and provided by 'vdd_1v2' regulator. Both 'vdd_mif'
and 'vdd_1v2' regulators are provided by the same PMIC.

The problem is that 'inb1' supply is being routed to dummy regulator
after this change. The regulator_resolve_supply(), which is just after
the above mentioned check, returns 0 and bounds 'vdd_mif' supply to
dummy-regulator. This happens because regulator_dev_lookup() called in
regulator_resolve_supply() returns -19, what in turn lets the code to
use dummy-regulator. I didn't check why it doesn't return -EPROBE_DEFER
in that case yet.

> I'd also note that it's useful to paste the actual error
> messages you're seeing rather than just a description of them.

There is really nothing more that I can paste here:

[   32.306264] systemd-logind[1375]: New seat seat0.
[   32.331790] systemd-logind[1375]: Watching system buttons on
/dev/input/event1 (gpio-keys)
[   32.550686] systemd-logind[1375]: Watching system buttons on
/dev/input/event0 (cros_ec)
[   32.570493] systemd-logind[1375]: Failed to start user service,
ignoring: Unknown unit: user@0.service
[   32.750913] systemd-logind[1375]: New session c1 of user root.
[   35.070357] vdd_1v2:

--- EOF ---


Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland

\
 
 \ /
  Last update: 2022-08-25 16:25    [W:0.083 / U:0.744 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site