net: stmmac: dwmac-rk: Don’t fail if phy regulator is absent [Linux 4.9.192]

This Linux kernel change "net: stmmac: dwmac-rk: Don’t fail if phy regulator is absent" is included in the Linux 4.9.192 release. This change is authored by Chen-Yu Tsai <wens [at]> on Thu Aug 29 11:17:24 2019 +0800. The commit for this change in Linux stable tree is 9e208cc (patch) which is from upstream commit 3b25528. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 3b25528.

net: stmmac: dwmac-rk: Don't fail if phy regulator is absent

[ Upstream commit 3b25528e1e355c803e73aa326ce657b5606cda73 ]

The devicetree binding lists the phy phy as optional. As such, the
driver should not bail out if it can't find a regulator. Instead it
should just skip the remaining regulator related code and continue
on normally.

Skip the remainder of phy_power_on() if a regulator supply isn't
available. This also gets rid of the bogus return code.

Fixes: 2e12f536635f ("net: stmmac: dwmac-rk: Use standard devicetree property for phy regulator")
Signed-off-by: Chen-Yu Tsai <>
Signed-off-by: David S. Miller <>
Signed-off-by: Greg Kroah-Hartman <>

There are 6 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 6e61bcc..15c0638 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -771,10 +771,8 @@ static int phy_power_on(struct rk_priv_data *bsp_priv, bool enable)
    int ret;
    struct device *dev = &bsp_priv->pdev->dev;

-   if (!ldo) {
-       dev_err(dev, "no regulator found\n");
-       return -1;
-   }
+   if (!ldo)
+       return 0;

    if (enable) {
        ret = regulator_enable(ldo);

Leave a Reply

Your email address will not be published. Required fields are marked *