From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Nicolai Buchwitz <nb@tipi-net.de>
Cc: netdev@vger.kernel.org, andrew+netdev@lunn.ch,
claudiu.beznea@tuxon.dev, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org,
nicolas.ferre@microchip.com, pabeni@redhat.com
Subject: Re: [PATCH net-next 3/5] net: cadence: macb: implement EEE TX LPI support
Date: Mon, 23 Feb 2026 10:07:50 +0000 [thread overview]
Message-ID: <aZwm9u_xCbuXCkDX@shell.armlinux.org.uk> (raw)
In-Reply-To: <20260223090412.44070-4-nb@tipi-net.de>
On Mon, Feb 23, 2026 at 10:04:10AM +0100, Nicolai Buchwitz wrote:
> Implement software-managed TX Low Power Idle (LPI) for the Cadence GEM
> MAC as part of IEEE 802.3az Energy Efficient Ethernet support.
>
> The GEM MAC has no built-in idle timer - the TXLPIEN bit (NCR bit 19)
> immediately asserts LPI and blocks all TX while set. The MAC does not
> auto-wake for transmit. Per Microchip GMAC documentation (section
> 40.6.19): "It is best to use firmware to control LPI."
>
> This patch implements a software idle timer using delayed_work:
> - On TX completion with an empty ring, schedule LPI entry after a
> configurable idle timeout (default 250ms). The work function
> verifies all TX queues are truly idle before entering LPI to
> prevent entering LPI while traffic is still active.
> - On TX start, wake from LPI by clearing TXLPIEN, cancelling any
> pending re-entry, and waiting 50us for the PHY to exit LPI
> (conservative vs IEEE 802.3az Tw_sys of ~17us/~30us)
> - On link up, check EEE negotiation via phy_init_eee() and defer
> first LPI entry by 1 second per IEEE 802.3az requirements
> - On link down, immediately cancel pending work and clear TXLPIEN
>
> The timer value is configurable at runtime via ethtool --set-eee
> tx-timer.
>
> The implementation is gated on MACB_CAPS_EEE so platforms must
> explicitly opt in via their macb_config.
In addition to my comments, please check the nipabot status for this
patch which can be found at:
https://patchwork.kernel.org/project/netdevbpf/patch/20260223090412.44070-4-nb@tipi-net.de/
Thanks.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!
next prev parent reply other threads:[~2026-02-23 10:07 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-23 9:04 [PATCH net-next 0/5] net: cadence: macb: add IEEE 802.3az EEE support Nicolai Buchwitz
2026-02-23 9:04 ` [PATCH net-next 1/5] net: cadence: macb: add EEE register definitions and capability flag Nicolai Buchwitz
2026-02-23 9:04 ` [PATCH net-next 2/5] net: cadence: macb: add EEE LPI statistics counters Nicolai Buchwitz
2026-02-23 9:04 ` [PATCH net-next 3/5] net: cadence: macb: implement EEE TX LPI support Nicolai Buchwitz
2026-02-23 10:07 ` Russell King (Oracle) [this message]
2026-02-23 14:54 ` nb
2026-02-23 9:04 ` [PATCH net-next 4/5] net: cadence: macb: add ethtool EEE support Nicolai Buchwitz
2026-02-23 9:04 ` [PATCH net-next 5/5] net: cadence: macb: enable EEE for Raspberry Pi RP1 Nicolai Buchwitz
2026-02-23 9:14 ` [PATCH net-next 0/5] net: cadence: macb: add IEEE 802.3az EEE support Russell King (Oracle)
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=aZwm9u_xCbuXCkDX@shell.armlinux.org.uk \
--to=linux@armlinux.org.uk \
--cc=andrew+netdev@lunn.ch \
--cc=claudiu.beznea@tuxon.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=nb@tipi-net.de \
--cc=netdev@vger.kernel.org \
--cc=nicolas.ferre@microchip.com \
--cc=pabeni@redhat.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.