[PATCH 1/1] lan78xx: Move enabling of EEE into PHY init code
Colin Ian King
colin.king at canonical.com
Wed Dec 5 16:49:49 UTC 2018
On 05/12/2018 16:42, Paolo Pisati wrote:
> From: Phil Elwell <phil at raspberrypi.org>
>
> BugLink: https://bugs.launchpad.net/bugs/1806108
>
> Enable EEE mode as soon as possible after connecting to the PHY, and
> before phy_start. This avoids a second link negotiation, which speeds
> up booting and stops the interface failing to become ready.
>
> See: https://github.com/raspberrypi/linux/issues/2437
>
> Signed-off-by: Phil Elwell <phil at raspberrypi.org>
> (cherry picked from commit 770de6c8d6b771933c5cfb24708b6027e6ed8d43)
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
> (cherry picked from commit 66524920fa205f6670171e8a38e582b7d9abea38)
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
I don't understand the double cherry pick info above
> ---
> drivers/net/usb/lan78xx.c | 32 ++++++++++++++++----------------
> 1 file changed, 16 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
> index 77a186befd07..4e0f223435d4 100644
> --- a/drivers/net/usb/lan78xx.c
> +++ b/drivers/net/usb/lan78xx.c
> @@ -2093,6 +2093,22 @@ 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);
> + }
> +
> /* Set LED modes:
> * led: 0=link/activity 1=link1000/activity
> * 2=link100/activity 3=link10/activity
> @@ -2566,22 +2582,6 @@ static int lan78xx_open(struct net_device *net)
>
> netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
>
> - 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(net, &edata);
> - }
> -
> /* for Link Check */
> if (dev->urb_intr) {
> ret = usb_submit_urb(dev->urb_intr, GFP_KERNEL);
>
More information about the kernel-team
mailing list