All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>, Heiner Kallweit <hkallweit1@gmail.com>
Cc: Wei Fang <wei.fang@nxp.com>, Shenwei Wang <shenwei.wang@nxp.com>,
	Clark Wang <xiaoning.wang@nxp.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	imx@lists.linux.dev, netdev@vger.kernel.org
Subject: Re: [PATCH net-next] net: fec: use phydev->eee_cfg.tx_lpi_timer
Date: Tue, 10 Dec 2024 12:39:53 +0000	[thread overview]
Message-ID: <Z1g2md_S1kEjOKQH@shell.armlinux.org.uk> (raw)
In-Reply-To: <E1tKzVS-006c67-IJ@rmk-PC.armlinux.org.uk>

On Tue, Dec 10, 2024 at 12:38:26PM +0000, Russell King (Oracle) wrote:
> Rather than maintaining a private copy of the LPI timer, make use of
> the LPI timer maintained by phylib. In any case, phylib overwrites the
> value of tx_lpi_timer set by the driver in phy_ethtool_get_eee().
> 
> Note that feb->eee.tx_lpi_timer is initialised to zero, which is just
> the same with phylib's copy, so there should be no functional change.
> 
> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>

Note that this need testing on compatible hardware - I only have iMX6
which doesn't have EEE support in FEC.

I'm particularly interested in any change of output from

	# ethtool --show-eee $if

with/without this patch. Also testing that it doesn't cause any
regression.

Thanks.

> ---
>  drivers/net/ethernet/freescale/fec.h      |  2 --
>  drivers/net/ethernet/freescale/fec_main.c | 16 ++++++----------
>  2 files changed, 6 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h
> index 1cca0425d493..c81f2ea588f2 100644
> --- a/drivers/net/ethernet/freescale/fec.h
> +++ b/drivers/net/ethernet/freescale/fec.h
> @@ -671,8 +671,6 @@ struct fec_enet_private {
>  	unsigned int tx_time_itr;
>  	unsigned int itr_clk_rate;
>  
> -	/* tx lpi eee mode */
> -	struct ethtool_keee eee;
>  	unsigned int clk_ref_rate;
>  
>  	/* ptp clock period in ns*/
> diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c
> index 1b55047c0237..b2daed55bf6c 100644
> --- a/drivers/net/ethernet/freescale/fec_main.c
> +++ b/drivers/net/ethernet/freescale/fec_main.c
> @@ -2045,14 +2045,14 @@ static int fec_enet_us_to_tx_cycle(struct net_device *ndev, int us)
>  	return us * (fep->clk_ref_rate / 1000) / 1000;
>  }
>  
> -static int fec_enet_eee_mode_set(struct net_device *ndev, bool enable)
> +static int fec_enet_eee_mode_set(struct net_device *ndev, u32 lpi_timer,
> +				 bool enable)
>  {
>  	struct fec_enet_private *fep = netdev_priv(ndev);
> -	struct ethtool_keee *p = &fep->eee;
>  	unsigned int sleep_cycle, wake_cycle;
>  
>  	if (enable) {
> -		sleep_cycle = fec_enet_us_to_tx_cycle(ndev, p->tx_lpi_timer);
> +		sleep_cycle = fec_enet_us_to_tx_cycle(ndev, lpi_timer);
>  		wake_cycle = sleep_cycle;
>  	} else {
>  		sleep_cycle = 0;
> @@ -2105,7 +2105,9 @@ static void fec_enet_adjust_link(struct net_device *ndev)
>  			napi_enable(&fep->napi);
>  		}
>  		if (fep->quirks & FEC_QUIRK_HAS_EEE)
> -			fec_enet_eee_mode_set(ndev, phy_dev->enable_tx_lpi);
> +			fec_enet_eee_mode_set(ndev,
> +					      phy_dev->eee_cfg.tx_lpi_timer,
> +					      phy_dev->enable_tx_lpi);
>  	} else {
>  		if (fep->link) {
>  			netif_stop_queue(ndev);
> @@ -3181,7 +3183,6 @@ static int
>  fec_enet_get_eee(struct net_device *ndev, struct ethtool_keee *edata)
>  {
>  	struct fec_enet_private *fep = netdev_priv(ndev);
> -	struct ethtool_keee *p = &fep->eee;
>  
>  	if (!(fep->quirks & FEC_QUIRK_HAS_EEE))
>  		return -EOPNOTSUPP;
> @@ -3189,8 +3190,6 @@ fec_enet_get_eee(struct net_device *ndev, struct ethtool_keee *edata)
>  	if (!netif_running(ndev))
>  		return -ENETDOWN;
>  
> -	edata->tx_lpi_timer = p->tx_lpi_timer;
> -
>  	return phy_ethtool_get_eee(ndev->phydev, edata);
>  }
>  
> @@ -3198,7 +3197,6 @@ static int
>  fec_enet_set_eee(struct net_device *ndev, struct ethtool_keee *edata)
>  {
>  	struct fec_enet_private *fep = netdev_priv(ndev);
> -	struct ethtool_keee *p = &fep->eee;
>  
>  	if (!(fep->quirks & FEC_QUIRK_HAS_EEE))
>  		return -EOPNOTSUPP;
> @@ -3206,8 +3204,6 @@ fec_enet_set_eee(struct net_device *ndev, struct ethtool_keee *edata)
>  	if (!netif_running(ndev))
>  		return -ENETDOWN;
>  
> -	p->tx_lpi_timer = edata->tx_lpi_timer;
> -
>  	return phy_ethtool_set_eee(ndev->phydev, edata);
>  }
>  
> -- 
> 2.30.2
> 
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!

  reply	other threads:[~2024-12-10 12:40 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-10 12:38 [PATCH net-next] net: fec: use phydev->eee_cfg.tx_lpi_timer Russell King (Oracle)
2024-12-10 12:39 ` Russell King (Oracle) [this message]
2024-12-10 13:44   ` Andrew Lunn
2024-12-11  2:27   ` Wei Fang
2024-12-12  4:30 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z1g2md_S1kEjOKQH@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hkallweit1@gmail.com \
    --cc=imx@lists.linux.dev \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=shenwei.wang@nxp.com \
    --cc=wei.fang@nxp.com \
    --cc=xiaoning.wang@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.