From: Birger Koblitz <mail@birger-koblitz.de>
To: 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>,
Russell King <linux@armlinux.org.uk>,
Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>
Cc: linux-usb@vger.kernel.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org,
Birger Koblitz <mail@birger-koblitz.de>,
Jianhui Xu <neuromoments@gmail.com>
Subject: [PATCH net-next v8 01/15] phylink: Add phylink_mac_interrupt
Date: Mon, 31 Aug 2026 11:58:50 +0200 [thread overview]
Message-ID: <20260831-ax88179a-v8-1-de905f2ee426@birger-koblitz.de> (raw)
In-Reply-To: <20260831-ax88179a-v8-0-de905f2ee426@birger-koblitz.de>
Add the phylink_mac_interrupt() function to phylink, which
passes a link-change interrupt received by the MAC to phylib.
This function can be used by drivers which want to avoid
polling the PHY and instead rely on an interrupt received by
the MAC when a link-change happens.
Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
---
drivers/net/phy/phylink.c | 16 ++++++++++++++++
include/linux/phylink.h | 1 +
2 files changed, 17 insertions(+)
diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 087ac63f9193d790d20bf5739965669a7adf654c..2ba1d76872a235b0d75722e059d7fd5e35d3aebe 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -1612,6 +1612,22 @@ static bool phylink_link_is_up(struct phylink *pl)
return pl->netdev ? netif_carrier_ok(pl->netdev) : pl->old_link_state;
}
+/**
+ * phylink_mac_interrupt() - wrapper for phy_mac_interrupt()
+ * @pl: a pointer to a &struct phylink returned from phylink_create()
+ *
+ * Passes a link-change interrupt received by the MAC to phylib.
+ */
+void phylink_mac_interrupt(struct phylink *pl)
+{
+ struct phy_device *phy;
+
+ phy = pl->phydev;
+ if (phy)
+ phy_mac_interrupt(phy);
+}
+EXPORT_SYMBOL_GPL(phylink_mac_interrupt);
+
static void phylink_resolve(struct work_struct *w)
{
struct phylink *pl = container_of(w, struct phylink, resolve);
diff --git a/include/linux/phylink.h b/include/linux/phylink.h
index 2bc0db3d52ac8d51e1180e197e5af9ef61878e06..21f960a827b6fa7786f9e1051942988270f12323 100644
--- a/include/linux/phylink.h
+++ b/include/linux/phylink.h
@@ -768,6 +768,7 @@ int phylink_ethtool_set_eee(struct phylink *link, struct ethtool_keee *eee);
int phylink_mii_ioctl(struct phylink *, struct ifreq *, int);
int phylink_speed_down(struct phylink *pl, bool sync);
int phylink_speed_up(struct phylink *pl);
+void phylink_mac_interrupt(struct phylink *pl);
#define phylink_zero(bm) \
bitmap_zero(bm, __ETHTOOL_LINK_MODE_MASK_NBITS)
--
2.47.3
next prev parent reply other threads:[~2026-08-31 10:08 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-31 9:58 [PATCH net-next v8 00/15] ax88179_178a: Add support for AX88179A-based chips Birger Koblitz
2026-08-31 9:58 ` Birger Koblitz [this message]
2026-08-31 14:15 ` [PATCH net-next v8 01/15] phylink: Add phylink_mac_interrupt Andrew Lunn
2026-08-31 9:58 ` [PATCH net-next v8 02/15] phylib: Add support for PHYs with broken forced mode Birger Koblitz
2026-08-31 14:21 ` Andrew Lunn
2026-08-31 9:58 ` [PATCH net-next v8 03/15] ax88179_178a: Fix endianness of pause watermark register Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 04/15] ax88179_178a: Split driver into library and device specific code Birger Koblitz
2026-08-31 14:22 ` Andrew Lunn
2026-08-31 9:58 ` [PATCH net-next v8 05/15] ax88179_178a: Add netdev2data() convenience function Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 06/15] ax88179_178a: Add HW support for AX179A-based chips Birger Koblitz
2026-08-31 14:30 ` Andrew Lunn
2026-08-31 16:03 ` Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 07/15] ax88179_178a: Add EEE configuration support for AX88179A MACs Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 08/15] ax88179_178a: Add EEE configuration support for AX88179A PHYs Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 09/15] ax88179_178a: Add VLAN offload support for AX88179A Birger Koblitz
2026-08-31 9:58 ` [PATCH net-next v8 10/15] ax88179_178a: Add AX179A/AX279 multicast configuration Birger Koblitz
2026-08-31 9:59 ` [PATCH net-next v8 11/15] ax88179_178a: Add Suspend/resume support for AX88179A/772D/279 Birger Koblitz
2026-08-31 14:32 ` Andrew Lunn
2026-08-31 9:59 ` [PATCH net-next v8 12/15] ax88179_178a: Add ethtool get_drvinfo Birger Koblitz
2026-08-31 9:59 ` [PATCH net-next v8 13/15] ax88179_178a: Update driver name and information Birger Koblitz
2026-08-31 9:59 ` [PATCH net-next v8 14/15] ax88179_178a: Add support for AX88179A/772D/279 EEPROM access Birger Koblitz
2026-08-31 9:59 ` [PATCH net-next v8 15/15] ax88796b: Add support for AX88772D, AX88179A and AX88279 Birger Koblitz
2026-08-31 14:38 ` Andrew Lunn
2026-08-31 17:28 ` Birger Koblitz
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=20260831-ax88179a-v8-1-de905f2ee426@birger-koblitz.de \
--to=mail@birger-koblitz.de \
--cc=andrew+netdev@lunn.ch \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=neuromoments@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox