Add two new Device Tree properties:
* microchip,eee-enabled  - a boolean to enable EEE
* microchip,tx-lpi-timer - time in microseconds to wait after TX goes
                           idle before entering the low power state
                           (default 600)

Signed-off-by: Phil Elwell <p...@raspberrypi.org>
---
 drivers/net/usb/lan78xx.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index d2727b5..d98397b 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -2080,6 +2080,23 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
        mii_adv = (u32)mii_advertise_flowctrl(dev->fc_request_control);
        phydev->advertising |= mii_adv_to_ethtool_adv_t(mii_adv);
 
+       if (of_property_read_bool(dev->udev->dev.of_node,
+                                 "microchip,eee-enabled")) {
+               struct ethtool_eee edata;
+
+               memset(&edata, 0, sizeof(edata));
+               edata.cmd = ETHTOOL_SEEE;
+               edata.advertised = ADVERTISED_1000baseT_Full |
+                                  ADVERTISED_100baseT_Full;
+               edata.eee_enabled = true;
+               edata.tx_lpi_enabled = true;
+               if (of_property_read_u32(dev->udev->dev.of_node,
+                                        "microchip,tx-lpi-timer",
+                                        &edata.tx_lpi_timer))
+                       edata.tx_lpi_timer = 600; /* non-aggressive */
+               (void)lan78xx_set_eee(dev->net, &edata);
+       }
+
        genphy_config_aneg(phydev);
 
        dev->fc_autoneg = phydev->autoneg;
-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to