Message ID | 20190109220502.5992-1-lukma@denx.de |
---|---|
State | Accepted |
Commit | b6a6238f0455db4ad9f447a4424cb5f56e47cd60 |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot] Revert "dm: pinctrl: Prevent (re-)configuring pins when already done before relocation" | expand |
On Wed, 9 Jan 2019 at 15:05, Lukasz Majewski <lukma@denx.de> wrote: > > This reverts commit a7f4b4b344396590845e6552c82829ef68ef9f89. > > As reported by Alex Kiernan the above optimization introduces a > regression in the below use case where: > > 1. Device has defined 'u-boot,dm-spl' property (@ eMMC DTS node) > > 2. The device downloads its MLO/SPL via UART (not eMMC - the eMMC pinmux > pins are NOT probed/configured in MLO/SPL). > > 3. The loaded via UART MLO/SPL wants to load Linux from eMMC. In this case > the DM core and pinctrl uclass checks 'u-boot,dm-spl' and don't > configure pins (as it thinks that those were initialized in MLO/SPL). > > As we are very close to release - please revert this commit. > > Reported-by: Alex Kiernan <alex.kiernan@gmail.com> > Signed-off-by: Lukasz Majewski <lukma@denx.de> > > --- > > drivers/pinctrl/pinctrl-uclass.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Reviewed-by: Simon Glass <sjg@chromium.org>
On Wed, Jan 09, 2019 at 11:05:02PM +0100, Lukasz Majewski wrote: > This reverts commit a7f4b4b344396590845e6552c82829ef68ef9f89. > > As reported by Alex Kiernan the above optimization introduces a > regression in the below use case where: > > 1. Device has defined 'u-boot,dm-spl' property (@ eMMC DTS node) > > 2. The device downloads its MLO/SPL via UART (not eMMC - the eMMC pinmux > pins are NOT probed/configured in MLO/SPL). > > 3. The loaded via UART MLO/SPL wants to load Linux from eMMC. In this case > the DM core and pinctrl uclass checks 'u-boot,dm-spl' and don't > configure pins (as it thinks that those were initialized in MLO/SPL). > > As we are very close to release - please revert this commit. > > Reported-by: Alex Kiernan <alex.kiernan@gmail.com> > Signed-off-by: Lukasz Majewski <lukma@denx.de> > Reviewed-by: Simon Glass <sjg@chromium.org> Applied to u-boot/master, thanks!
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c index 29c910c55f..6db0445067 100644 --- a/drivers/pinctrl/pinctrl-uclass.c +++ b/drivers/pinctrl/pinctrl-uclass.c @@ -117,9 +117,9 @@ static int pinconfig_post_bind(struct udevice *dev) int ret; dev_for_each_subnode(node, dev) { - if (pre_reloc_only ^ ofnode_pre_reloc(node)) + if (pre_reloc_only && + !ofnode_pre_reloc(node)) continue; - /* * If this node has "compatible" property, this is not * a pin configuration node, but a normal device. skip.
This reverts commit a7f4b4b344396590845e6552c82829ef68ef9f89. As reported by Alex Kiernan the above optimization introduces a regression in the below use case where: 1. Device has defined 'u-boot,dm-spl' property (@ eMMC DTS node) 2. The device downloads its MLO/SPL via UART (not eMMC - the eMMC pinmux pins are NOT probed/configured in MLO/SPL). 3. The loaded via UART MLO/SPL wants to load Linux from eMMC. In this case the DM core and pinctrl uclass checks 'u-boot,dm-spl' and don't configure pins (as it thinks that those were initialized in MLO/SPL). As we are very close to release - please revert this commit. Reported-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Lukasz Majewski <lukma@denx.de> --- drivers/pinctrl/pinctrl-uclass.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)