The standard way of putting a PHY device into loopback is most often
suitable for testing. This is going to be necessary in a subsequent
patch that adds RGII debugging capability using the loopback feature.

Clause 45 PHYs are not supported through a generic method yet.

Signed-off-by: Florian Fainelli <[email protected]>
---
 drivers/net/phy/phy_device.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 9d2bbb13293e..7fa728c44632 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1513,8 +1513,10 @@ int phy_loopback(struct phy_device *phydev, bool enable)
 
        if (phydev->drv && phydrv->set_loopback)
                ret = phydrv->set_loopback(phydev, enable);
-       else
+       else if (phydev->is_c45)
                ret = -EOPNOTSUPP;
+       else
+               ret = genphy_loopback(phydev, enable);
 
        if (ret)
                goto out;
-- 
2.17.1

Reply via email to