[U-Boot] [PATCH] Revert "dm: pinctrl: Prevent (re-)configuring pins when already done before relocation"
Lukasz Majewski
lukma at denx.de
Wed Jan 9 22:05:02 UTC 2019
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 at gmail.com>
Signed-off-by: Lukasz Majewski <lukma at denx.de>
---
drivers/pinctrl/pinctrl-uclass.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
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.
--
2.11.0
More information about the U-Boot
mailing list