netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Lunn <andrew@lunn.ch>
To: Oleksij Rempel <o.rempel@pengutronix.de>
Cc: netdev <netdev@vger.kernel.org>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vladimir Oltean <vladimir.oltean@nxp.com>,
	Sean Wang <sean.wang@mediatek.com>,
	Landen Chao <Landen.Chao@mediatek.com>,
	DENG Qingfang <dqfext@gmail.com>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	AngeloGioacchino Del Regno 
	<angelogioacchino.delregno@collabora.com>,
	Doug Berger <opendmb@gmail.com>,
	Broadcom internal kernel review list 
	<bcm-kernel-feedback-list@broadcom.com>,
	Wei Fang <wei.fang@nxp.com>, Shenwei Wang <shenwei.wang@nxp.com>,
	Clark Wang <xiaoning.wang@nxp.com>,
	NXP Linux Team <linux-imx@nxp.com>,
	UNGLinuxDriver@microchip.com, Byungho An <bh74.an@samsung.com>,
	Giuseppe Cavallaro <peppe.cavallaro@st.com>,
	Alexandre Torgue <alexandre.torgue@foss.st.com>,
	Jose Abreu <joabreu@synopsys.com>,
	Maxime Coquelin <mcoquelin.stm32@gmail.com>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <rmk+kernel@armlinux.org.uk>,
	Woojung Huh <woojung.huh@microchip.com>,
	Oleksij Rempel <linux@rempel-privat.de>
Subject: Re: [PATCH RFC 08/18] net: FEC: Fixup EEE
Date: Fri, 17 Feb 2023 14:58:24 +0100	[thread overview]
Message-ID: <Y++IAH16RqbZrSpg@lunn.ch> (raw)
In-Reply-To: <20230217081943.GA9065@pengutronix.de>

> > @@ -1997,6 +1988,7 @@ static void fec_enet_adjust_link(struct net_device *ndev)
> >  			netif_tx_unlock_bh(ndev);
> >  			napi_enable(&fep->napi);
> >  		}
> > +		fec_enet_eee_mode_set(ndev, phy_dev->eee_active);
> 
> Most of iMX variants do not support EEE. It should be something like this:
> 	if (fep->quirks & FEC_QUIRK_HAS_EEE)
> 		fec_enet_eee_mode_set(ndev, phy_dev->eee_active);

Yes, i missed that. Thanks. 

> > @@ -3131,15 +3120,7 @@ fec_enet_set_eee(struct net_device *ndev, struct ethtool_eee *edata)
> >  		return -ENETDOWN;
> >  
> >  	p->tx_lpi_timer = edata->tx_lpi_timer;
> > -
> > -	if (!edata->eee_enabled || !edata->tx_lpi_enabled ||
> > -	    !edata->tx_lpi_timer)
> > -		ret = fec_enet_eee_mode_set(ndev, false);
> > -	else
> > -		ret = fec_enet_eee_mode_set(ndev, true);
> > -
> > -	if (ret)
> > -		return ret;
> > +	p->tx_lpi_enabled = edata->tx_lpi_enabled;
> 
> Hm.. this change have effect only after link restart. Should we do
> something like this?
> 
> 	if (phydev->link)
> 		fec_enet_eee_mode_set(ndev, phydev->eee_active);
> 
> or, execute phy_ethtool_set_eee() first and some how detect if link
> changed? Or restart link by phylib on every change?

The whole startup sequence needs looking at, and ties in with the
phy_supports_eee() call we need to add. Given that EEE is broken with
most MAC drivers, i thought we could do that in a follow up patch
series.

As Russell says, we want to avoid multiple auto-neg cycles. Ideally we
want phy_supports_eee() to be called before phy_start() so that EEE
advertisement is set correctly for the first auto-neg. What is missing
from many MAC drivers is a default value from the LPI timer. It seems
like the need eee_set() has to be called with a value, or they are
relying on hardware reset values. Maybe we need to define a default?

We also need to discuss policy of if EEE should be enabled by default
for those systems which support it. As you have pointed out, it can
effect PTP quality.

   Andrew

  parent reply	other threads:[~2023-02-17 13:58 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-17  3:42 [PATCH RFC 00/18] Rework MAC drivers EEE support Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 01/18] net: phy: Add phydev->eee_active to simplify adjust link callbacks Andrew Lunn
2023-02-17  9:09   ` Oleksij Rempel
2023-02-17 13:35     ` Andrew Lunn
2023-02-17 11:36   ` Russell King (Oracle)
2023-02-17 13:37     ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 02/18] net: phy: Add helper to set EEE Clock stop enable bit Andrew Lunn
2023-02-17 13:33   ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 03/18] net: marvell: mvneta: Simplify EEE configuration Andrew Lunn
2023-02-17 11:35   ` Russell King (Oracle)
2023-02-17 11:59   ` Russell King (Oracle)
2023-02-17 13:13     ` Russell King (Oracle)
2023-02-17 13:45     ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 04/18] net: stmmac: Drop usage of phy_init_eee() Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 05/18] net: stmmac: Simplify ethtool get eee Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 06/18] net: lan743x: Fixup EEE Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 07/18] net: fec: Move fec_enet_eee_mode_set() and helper earlier Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 08/18] net: FEC: Fixup EEE Andrew Lunn
2023-02-17  8:19   ` Oleksij Rempel
2023-02-17 12:32     ` Russell King (Oracle)
2023-02-17 13:58     ` Andrew Lunn [this message]
2023-02-18  2:00     ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 09/18] net: genet: " Andrew Lunn
2023-02-17  3:48   ` Florian Fainelli
2023-02-17 14:00     ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 10/18] net: sxgdb: " Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 11/18] net: dsa: mt7530: Swap to using phydev->eee_active Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 12/18] net: dsa: mt7530: Call phylib for set_eee and get_eee Andrew Lunn
2023-02-17 11:48   ` Russell King (Oracle)
2023-02-17 14:10     ` Andrew Lunn
2023-02-18  2:10     ` Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 13/18] net: dsa: b53: Swap to using phydev->eee_active Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 14/18] net: dsa: b53: Call phylib for set_eee and get_eee Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 15/18] net: phylink: Remove unused phylink_init_eee() Andrew Lunn
2023-02-17 11:42   ` Russell King (Oracle)
2023-02-17  3:42 ` [PATCH RFC 16/18] net: phylink: Update comment about configuring EEE in mac_link_up() Andrew Lunn
2023-02-17 11:43   ` Russell King (Oracle)
2023-02-17  3:42 ` [PATCH RFC 17/18] net: phy: remove unused phy_init_eee() Andrew Lunn
2023-02-17  3:42 ` [PATCH RFC 18/18] net: usb: lan78xx: Fixup EEE Andrew Lunn
2023-02-17 11:42 ` [PATCH RFC 00/18] Rework MAC drivers EEE support Russell King (Oracle)
2023-02-17 14:17   ` Andrew Lunn
2023-02-17 14:25 ` Russell King (Oracle)
2023-02-18 12:25   ` Oleksij Rempel

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=Y++IAH16RqbZrSpg@lunn.ch \
    --to=andrew@lunn.ch \
    --cc=Landen.Chao@mediatek.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=alexandre.torgue@foss.st.com \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=bh74.an@samsung.com \
    --cc=dqfext@gmail.com \
    --cc=f.fainelli@gmail.com \
    --cc=hkallweit1@gmail.com \
    --cc=joabreu@synopsys.com \
    --cc=linux-imx@nxp.com \
    --cc=linux@rempel-privat.de \
    --cc=matthias.bgg@gmail.com \
    --cc=mcoquelin.stm32@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=o.rempel@pengutronix.de \
    --cc=opendmb@gmail.com \
    --cc=peppe.cavallaro@st.com \
    --cc=rmk+kernel@armlinux.org.uk \
    --cc=sean.wang@mediatek.com \
    --cc=shenwei.wang@nxp.com \
    --cc=vladimir.oltean@nxp.com \
    --cc=wei.fang@nxp.com \
    --cc=woojung.huh@microchip.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).