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