summaryrefslogtreecommitdiff
path: root/drivers/pinctrl/pinctrl-uclass.c
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2019-01-09 23:05:02 +0100
committerTom Rini <trini@konsulko.com>2019-01-11 10:03:42 -0500
commitb6a6238f0455db4ad9f447a4424cb5f56e47cd60 (patch)
tree1876fa1bd65888e92cfbbe636ce2a98b334d85a4 /drivers/pinctrl/pinctrl-uclass.c
parent64abfc9b6bb3721621d5132e112ae2e91c57d8bb (diff)
Revert "dm: pinctrl: Prevent (re-)configuring pins when already done before relocation"
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>
Diffstat (limited to 'drivers/pinctrl/pinctrl-uclass.c')
-rw-r--r--drivers/pinctrl/pinctrl-uclass.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index c8b38d78f6..0e3260afd1 100644
--- a/drivers/pinctrl/pinctrl-uclass.c
+++ b/drivers/pinctrl/pinctrl-uclass.c
@@ -139,9 +139,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.