When the link is down, disable the RGMII interface to conserve as much
power as possible. We re-enable the RGMII interface whenever the link is
detected.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                port_mode = EXT_REVMII;
                break;
        default:
+               /* All other PHYs: internal and MoCA */
+               goto force_link;
+       }
+
+       /* If the link is down, just disable the interface to conserve power */
+       if (!phydev->link) {
+               reg = reg_readl(priv, REG_RGMII_CNTRL_P(port));
+               reg &= ~RGMII_MODE_EN;
+               reg_writel(priv, reg, REG_RGMII_CNTRL_P(port));
                goto force_link;
        }