On Thu, Apr 14, 2022 at 09:28:30PM +0300, Andy Shevchenko wrote: > On Thu, Apr 14, 2022 at 07:06:21PM +0300, Andy Shevchenko wrote: > > On Thu, Apr 14, 2022 at 6:32 PM Martin Blumenstingl > > <martin.blumenstingl@xxxxxxxxxxxxxx> wrote: > > > On Thu, Apr 14, 2022 at 3:51 PM Andy Shevchenko > > > <andy.shevchenko@xxxxxxxxx> wrote: > > > [...] > > > > > This patch landed in linux next-20220413 as commit 88834c75cae5 > > > > > ("pinctrl: meson: Replace custom code by gpiochip_node_count() call"). > > > > > Unfortunately it breaks booting of all my Amlogic-based test boards > > > > > (Odroid C4, N2, Khadas VIM3, VIM3l). MMC driver is no longer probed and > > > > > boards are unable to mount rootfs. Reverting this patch on top of > > > > > linux-next fixes the issue. > > > > > > > > Thank you for letting me know, I'll withdraw it and investigate. > > > If needed I can investigate further later today/tomorrow. I think the > > > problem is that our node name doesn't follow the .dts recommendation. > > > > > > For GXL (arch/arm64/boot/dts/amlogic/meson-gxl.dtsi) the GPIO > > > controller nodes are for example: > > > gpio: bank@4b0 { > > > ... > > > } > > > and > > > gpio_ao: bank@14 { > > > ... > > > } > > > > > > See also: > > > $ git grep -C6 gpio-controller arch/arm64/boot/dts/amlogic/*.dtsi > > > > > > Marek did not state which error he's getting but I suspect it fails > > > with "no gpio node found". > > > > Would be interesting to know that, yeah. > > > > The subtle difference between the patched and unpatched version is > > that the former uses only available nodes, it means that node is not > > available by some reason and then the error would be the one you > > guessed. > > Looking into the difference between iterating via available nodes I have found > nothing suspicious. Your DTSes do not have status property, so it assumes the > node is available. > > I'm quite puzzled what's going on there. Because I can't see what the logical > difference the patch brought in. > > P.S. In any case it's withdrawn now and shouldn't appear in the next Linux > Next. But I would really appreciate more input on this. Okay, now I got it. The "name" of the node is not the same as containing the property with a given name. So, the faulting line of the code is this one: gpio_np = to_of_node(device_get_named_child_node(pc->dev, "gpio-controller")); -- With Best Regards, Andy Shevchenko