summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/phy/phy.c3
-rw-r--r--drivers/pinctrl/pinctrl-uclass.c4
-rw-r--r--drivers/power/regulator/regulator-uclass.c2
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index e837eb7688c..cda4caa8034 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -656,7 +656,8 @@ static struct phy_device *phy_device_create(struct mii_dev *bus, int addr,
phy_probe(dev);
- bus->phymap[addr] = dev;
+ if (addr >= 0 && addr < PHY_MAX_ADDR)
+ bus->phymap[addr] = dev;
return dev;
}
diff --git a/drivers/pinctrl/pinctrl-uclass.c b/drivers/pinctrl/pinctrl-uclass.c
index 6db04450670..29c910c55f3 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.
diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
index 4511625ff25..39e46279d53 100644
--- a/drivers/power/regulator/regulator-uclass.c
+++ b/drivers/power/regulator/regulator-uclass.c
@@ -113,7 +113,7 @@ int regulator_set_enable(struct udevice *dev, bool enable)
uc_pdata = dev_get_uclass_platdata(dev);
if (!enable && uc_pdata->always_on)
- return -EACCES;
+ return 0;
return ops->set_enable(dev, enable);
}