On 9/14/2019 8:29 AM, Andrew Lunn wrote: > On Thu, Sep 12, 2019 at 07:28:12PM +0300, Alexandru Ardelean wrote: > >> +static int adin_set_edpd(struct phy_device *phydev, u16 tx_interval) >> +{ >> + u16 val; >> + >> + if (tx_interval == ETHTOOL_PHY_EDPD_DISABLE) >> + return phy_clear_bits(phydev, ADIN1300_PHY_CTRL_STATUS2, >> + (ADIN1300_NRG_PD_EN | ADIN1300_NRG_PD_TX_EN)); >> + >> + val = ADIN1300_NRG_PD_EN; >> + >> + switch (tx_interval) { >> + case 1000: /* 1 second */ >> + /* fallthrough */ >> + case ETHTOOL_PHY_EDPD_DFLT_TX_MSECS: >> + val |= ADIN1300_NRG_PD_TX_EN; >> + /* fallthrough */ >> + case ETHTOOL_PHY_EDPD_NO_TX: >> + break; >> + default: >> + return -EINVAL; >> + } >> + >> + return phy_modify(phydev, ADIN1300_PHY_CTRL_STATUS2, >> + (ADIN1300_NRG_PD_EN | ADIN1300_NRG_PD_TX_EN), >> + val); >> +} >> + > >> >> + rc = adin_set_edpd(phydev, 1); >> + if (rc < 0) >> + return rc; > > Hi Alexandru > > Shouldn't this be adin_set_edpd(phydev, 1000); That does sound like the intended use, or use ETHTOOL_PHY_EDPD_DFLT_TX_MSECS, with that fixed: Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx> -- Florian