* [PATCH net-next 01/14] net: stmmac: clean up formatting in stmmac_mac_finish()
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 02/14] net: stmmac: remove plat_dat->port_node Russell King (Oracle)
` (13 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
Wrap the arguments for priv->plat->mac_finish() to avoid an overly long
line.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 7c5e31492035..2b21cc839146 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -968,7 +968,8 @@ static int stmmac_mac_finish(struct phylink_config *config, unsigned int mode,
struct stmmac_priv *priv = netdev_priv(ndev);
if (priv->plat->mac_finish)
- priv->plat->mac_finish(ndev, priv->plat->bsp_priv, mode, interface);
+ priv->plat->mac_finish(ndev, priv->plat->bsp_priv, mode,
+ interface);
return 0;
}
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 02/14] net: stmmac: remove plat_dat->port_node
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 01/14] net: stmmac: clean up formatting in stmmac_mac_finish() Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 03/14] net: stmmac: remove .get_tx_owner() Russell King (Oracle)
` (12 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
There are repeated instances of:
fwnode = priv->plat->port_node;
if (!fwnode)
fwnode = dev_fwnode(priv->device);
However, the only place that ->port_node is set is
stmmac_probe_config_dt():
struct device_node *np = pdev->dev.of_node;
...
/* PHYLINK automatically parses the phy-handle property */
plat->port_node = of_fwnode_handle(np);
which is equivalent to dev_fwnode(&pdev->dev) and, as priv->device
will be &pdev->dev, is also equivalent to dev_fwnode(priv->device).
Thus, plat_dat->port_node doesn't provide any extra benefit over
using dev_fwnode(priv->device) directly.
There is one case where port_node is used directly, which can be
found in stmmac_pcs_setup(). This may cause a change of behaviour
as PCI drivers do not populate plat_dat->port_node, but
dev_fwnode(priv->device) may be valid. PCI-based stmmac should
be tested.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 13 +++----------
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 7 ++-----
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 3 ---
include/linux/stmmac.h | 1 -
4 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 2b21cc839146..3f74766f6e21 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -1252,10 +1252,7 @@ static int stmmac_init_phy(struct net_device *dev)
xpcs_get_an_mode(priv->hw->xpcs, mode) == DW_AN_C73)
return 0;
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
+ fwnode = dev_fwnode(priv->device);
if (fwnode)
phy_fwnode = fwnode_get_phy_node(fwnode);
else
@@ -1313,7 +1310,6 @@ static int stmmac_phylink_setup(struct stmmac_priv *priv)
{
struct stmmac_mdio_bus_data *mdio_bus_data;
struct phylink_config *config;
- struct fwnode_handle *fwnode;
struct phylink_pcs *pcs;
struct phylink *phylink;
@@ -1405,11 +1401,8 @@ static int stmmac_phylink_setup(struct stmmac_priv *priv)
config->wol_mac_support |= WAKE_MAGIC;
}
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
- phylink = phylink_create(config, fwnode, priv->plat->phy_interface,
+ phylink = phylink_create(config, dev_fwnode(priv->device),
+ priv->plat->phy_interface,
&stmmac_phylink_mac_ops);
if (IS_ERR(phylink))
return PTR_ERR(phylink);
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
index a7c2496b39f2..485a0d790baa 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
@@ -430,7 +430,7 @@ int stmmac_pcs_setup(struct net_device *ndev)
struct dw_xpcs *xpcs = NULL;
int addr, ret;
- devnode = priv->plat->port_node;
+ devnode = dev_fwnode(priv->device);
if (priv->plat->pcs_init) {
ret = priv->plat->pcs_init(priv);
@@ -649,10 +649,7 @@ int stmmac_mdio_register(struct net_device *ndev)
stmmac_xgmac2_mdio_read_c45(new_bus, 0, 0, 0);
/* If fixed-link is set, skip PHY scanning */
- fwnode = priv->plat->port_node;
- if (!fwnode)
- fwnode = dev_fwnode(priv->device);
-
+ fwnode = dev_fwnode(priv->device);
if (fwnode) {
fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link");
if (fixed_node) {
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index 5c9fd91a1db9..c34998486293 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -446,9 +446,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, u8 *mac)
* they are not converted to phylink. */
plat->phy_node = of_parse_phandle(np, "phy-handle", 0);
- /* PHYLINK automatically parses the phy-handle property */
- plat->port_node = of_fwnode_handle(np);
-
/* Get max speed of operation from device tree */
of_property_read_u32(np, "max-speed", &plat->max_speed);
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index b489e2c6d710..cc6c89769d82 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -226,7 +226,6 @@ struct plat_stmmacenet_data {
phy_interface_t phy_interface;
struct stmmac_mdio_bus_data *mdio_bus_data;
struct device_node *phy_node;
- struct fwnode_handle *port_node;
struct device_node *mdio_node;
struct stmmac_dma_cfg *dma_cfg;
struct stmmac_safety_feature_cfg *safety_feat_cfg;
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 03/14] net: stmmac: remove .get_tx_owner()
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 01/14] net: stmmac: clean up formatting in stmmac_mac_finish() Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 02/14] net: stmmac: remove plat_dat->port_node Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 04/14] net: stmmac: remove .get_tx_ls() Russell King (Oracle)
` (11 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
No code calls stmmac_get_tx_owner(). Remove the macro, its associated
function pointer, and all implementations.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/hwif.h | 3 ---
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 6 ------
5 files changed, 27 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
index e226dc6a1b17..b8fe4ad883e5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
@@ -176,11 +176,6 @@ static int dwmac4_rd_get_tx_len(struct dma_desc *p)
return (le32_to_cpu(p->des2) & TDES2_BUFFER1_SIZE_MASK);
}
-static int dwmac4_get_tx_owner(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des3) & TDES3_OWN) >> TDES3_OWN_SHIFT;
-}
-
static void dwmac4_set_tx_owner(struct dma_desc *p)
{
p->des3 |= cpu_to_le32(TDES3_OWN);
@@ -552,7 +547,6 @@ const struct stmmac_desc_ops dwmac4_desc_ops = {
.tx_status = dwmac4_wrback_get_tx_status,
.rx_status = dwmac4_wrback_get_rx_status,
.get_tx_len = dwmac4_rd_get_tx_len,
- .get_tx_owner = dwmac4_get_tx_owner,
.set_tx_owner = dwmac4_set_tx_owner,
.set_rx_owner = dwmac4_set_rx_owner,
.get_tx_ls = dwmac4_get_tx_ls,
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
index 41e5b420a215..8bf373513930 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
@@ -45,11 +45,6 @@ static int dwxgmac2_get_tx_len(struct dma_desc *p)
return (le32_to_cpu(p->des2) & XGMAC_TDES2_B1L);
}
-static int dwxgmac2_get_tx_owner(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des3) & XGMAC_TDES3_OWN) > 0;
-}
-
static void dwxgmac2_set_tx_owner(struct dma_desc *p)
{
p->des3 |= cpu_to_le32(XGMAC_TDES3_OWN);
@@ -356,7 +351,6 @@ const struct stmmac_desc_ops dwxgmac210_desc_ops = {
.tx_status = dwxgmac2_get_tx_status,
.rx_status = dwxgmac2_get_rx_status,
.get_tx_len = dwxgmac2_get_tx_len,
- .get_tx_owner = dwxgmac2_get_tx_owner,
.set_tx_owner = dwxgmac2_set_tx_owner,
.set_rx_owner = dwxgmac2_set_rx_owner,
.get_tx_ls = dwxgmac2_get_tx_ls,
diff --git a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
index 8f6993c8bcae..77b2cb34aa0e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
@@ -277,11 +277,6 @@ static void enh_desc_init_tx_desc(struct dma_desc *p, int mode, int end)
enh_desc_end_tx_desc_on_ring(p, end);
}
-static int enh_desc_get_tx_owner(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des0) & ETDES0_OWN) >> 31;
-}
-
static void enh_desc_set_tx_owner(struct dma_desc *p)
{
p->des0 |= cpu_to_le32(ETDES0_OWN);
@@ -448,7 +443,6 @@ const struct stmmac_desc_ops enh_desc_ops = {
.get_tx_len = enh_desc_get_tx_len,
.init_rx_desc = enh_desc_init_rx_desc,
.init_tx_desc = enh_desc_init_tx_desc,
- .get_tx_owner = enh_desc_get_tx_owner,
.release_tx_desc = enh_desc_release_tx_desc,
.prepare_tx_desc = enh_desc_prepare_tx_desc,
.set_tx_ic = enh_desc_set_tx_ic,
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index 0db96a387259..50ca8dcea2fd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -51,7 +51,6 @@ struct stmmac_desc_ops {
unsigned int tcppayloadlen);
/* Set/get the owner of the descriptor */
void (*set_tx_owner)(struct dma_desc *p);
- int (*get_tx_owner)(struct dma_desc *p);
/* Clean the tx descriptor as soon as the tx irq is received */
void (*release_tx_desc)(struct dma_desc *p, int mode);
/* Clear interrupt on tx frame completion. When this bit is
@@ -116,8 +115,6 @@ struct stmmac_desc_ops {
stmmac_do_void_callback(__priv, desc, prepare_tso_tx_desc, __args)
#define stmmac_set_tx_owner(__priv, __args...) \
stmmac_do_void_callback(__priv, desc, set_tx_owner, __args)
-#define stmmac_get_tx_owner(__priv, __args...) \
- stmmac_do_callback(__priv, desc, get_tx_owner, __args)
#define stmmac_release_tx_desc(__priv, __args...) \
stmmac_do_void_callback(__priv, desc, release_tx_desc, __args)
#define stmmac_set_tx_ic(__priv, __args...) \
diff --git a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
index 859cb9242a52..e9face06b950 100644
--- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
@@ -141,11 +141,6 @@ static void ndesc_init_tx_desc(struct dma_desc *p, int mode, int end)
ndesc_end_tx_desc_on_ring(p, end);
}
-static int ndesc_get_tx_owner(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des0) & TDES0_OWN) >> 31;
-}
-
static void ndesc_set_tx_owner(struct dma_desc *p)
{
p->des0 |= cpu_to_le32(TDES0_OWN);
@@ -294,7 +289,6 @@ const struct stmmac_desc_ops ndesc_ops = {
.get_tx_len = ndesc_get_tx_len,
.init_rx_desc = ndesc_init_rx_desc,
.init_tx_desc = ndesc_init_tx_desc,
- .get_tx_owner = ndesc_get_tx_owner,
.release_tx_desc = ndesc_release_tx_desc,
.prepare_tx_desc = ndesc_prepare_tx_desc,
.set_tx_ic = ndesc_set_tx_ic,
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 04/14] net: stmmac: remove .get_tx_ls()
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (2 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 03/14] net: stmmac: remove .get_tx_owner() Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 05/14] net: stmmac: remove .get_tx_len() Russell King (Oracle)
` (10 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
No code calls stmmac_get_tx_ls(). Remove this macro, its associated
function pointer, and all implementations.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 7 -------
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 ----
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 6 ------
5 files changed, 29 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
index b8fe4ad883e5..56a88b71def9 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
@@ -191,12 +191,6 @@ static void dwmac4_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
p->des3 |= cpu_to_le32(flags);
}
-static int dwmac4_get_tx_ls(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des3) & TDES3_LAST_DESCRIPTOR)
- >> TDES3_LAST_DESCRIPTOR_SHIFT;
-}
-
static u16 dwmac4_wrback_get_rx_vlan_tci(struct dma_desc *p)
{
return (le32_to_cpu(p->des0) & RDES0_VLAN_TAG_MASK);
@@ -549,7 +543,6 @@ const struct stmmac_desc_ops dwmac4_desc_ops = {
.get_tx_len = dwmac4_rd_get_tx_len,
.set_tx_owner = dwmac4_set_tx_owner,
.set_rx_owner = dwmac4_set_rx_owner,
- .get_tx_ls = dwmac4_get_tx_ls,
.get_rx_vlan_tci = dwmac4_wrback_get_rx_vlan_tci,
.get_rx_vlan_valid = dwmac4_wrback_get_rx_vlan_valid,
.get_rx_frame_len = dwmac4_wrback_get_rx_frame_len,
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
index 8bf373513930..f5deceb052d7 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
@@ -60,11 +60,6 @@ static void dwxgmac2_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
p->des3 |= cpu_to_le32(flags);
}
-static int dwxgmac2_get_tx_ls(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des3) & XGMAC_RDES3_LD) > 0;
-}
-
static u16 dwxgmac2_wrback_get_rx_vlan_tci(struct dma_desc *p)
{
return le32_to_cpu(p->des0) & XGMAC_RDES0_VLAN_TAG_MASK;
@@ -353,7 +348,6 @@ const struct stmmac_desc_ops dwxgmac210_desc_ops = {
.get_tx_len = dwxgmac2_get_tx_len,
.set_tx_owner = dwxgmac2_set_tx_owner,
.set_rx_owner = dwxgmac2_set_rx_owner,
- .get_tx_ls = dwxgmac2_get_tx_ls,
.get_rx_vlan_tci = dwxgmac2_wrback_get_rx_vlan_tci,
.get_rx_vlan_valid = dwxgmac2_wrback_get_rx_vlan_valid,
.get_rx_frame_len = dwxgmac2_get_rx_frame_len,
diff --git a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
index 77b2cb34aa0e..3c241c5699ed 100644
--- a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
@@ -287,11 +287,6 @@ static void enh_desc_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
p->des0 |= cpu_to_le32(RDES0_OWN);
}
-static int enh_desc_get_tx_ls(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des0) & ETDES0_LAST_SEGMENT) >> 29;
-}
-
static void enh_desc_release_tx_desc(struct dma_desc *p, int mode)
{
int ter = (le32_to_cpu(p->des0) & ETDES0_END_RING) >> 21;
@@ -446,7 +441,6 @@ const struct stmmac_desc_ops enh_desc_ops = {
.release_tx_desc = enh_desc_release_tx_desc,
.prepare_tx_desc = enh_desc_prepare_tx_desc,
.set_tx_ic = enh_desc_set_tx_ic,
- .get_tx_ls = enh_desc_get_tx_ls,
.set_tx_owner = enh_desc_set_tx_owner,
.set_rx_owner = enh_desc_set_rx_owner,
.get_rx_frame_len = enh_desc_get_rx_frame_len,
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index 50ca8dcea2fd..e317f64a0fcc 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -56,8 +56,6 @@ struct stmmac_desc_ops {
/* Clear interrupt on tx frame completion. When this bit is
* set an interrupt happens as soon as the frame is transmitted */
void (*set_tx_ic)(struct dma_desc *p);
- /* Last tx segment reports the transmit status */
- int (*get_tx_ls)(struct dma_desc *p);
/* Get the tag of the descriptor */
u16 (*get_rx_vlan_tci)(struct dma_desc *p);
/* Get the valid status of descriptor */
@@ -119,8 +117,6 @@ struct stmmac_desc_ops {
stmmac_do_void_callback(__priv, desc, release_tx_desc, __args)
#define stmmac_set_tx_ic(__priv, __args...) \
stmmac_do_void_callback(__priv, desc, set_tx_ic, __args)
-#define stmmac_get_tx_ls(__priv, __args...) \
- stmmac_do_callback(__priv, desc, get_tx_ls, __args)
#define stmmac_get_rx_vlan_tci(__priv, __args...) \
stmmac_do_callback(__priv, desc, get_rx_vlan_tci, __args)
#define stmmac_get_rx_vlan_valid(__priv, __args...) \
diff --git a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
index e9face06b950..621bc1deb4e5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
@@ -151,11 +151,6 @@ static void ndesc_set_rx_owner(struct dma_desc *p, int disable_rx_ic)
p->des0 |= cpu_to_le32(RDES0_OWN);
}
-static int ndesc_get_tx_ls(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des1) & TDES1_LAST_SEGMENT) >> 30;
-}
-
static void ndesc_release_tx_desc(struct dma_desc *p, int mode)
{
int ter = (le32_to_cpu(p->des1) & TDES1_END_RING) >> 25;
@@ -292,7 +287,6 @@ const struct stmmac_desc_ops ndesc_ops = {
.release_tx_desc = ndesc_release_tx_desc,
.prepare_tx_desc = ndesc_prepare_tx_desc,
.set_tx_ic = ndesc_set_tx_ic,
- .get_tx_ls = ndesc_get_tx_ls,
.set_tx_owner = ndesc_set_tx_owner,
.set_rx_owner = ndesc_set_rx_owner,
.get_rx_frame_len = ndesc_get_rx_frame_len,
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 05/14] net: stmmac: remove .get_tx_len()
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (3 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 04/14] net: stmmac: remove .get_tx_ls() Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 06/14] net: stmmac: remove dwmac4 DMA_CHAN_INTR_DEFAULT_[TR]X* Russell King (Oracle)
` (9 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
No code calls stmmac_get_tx_len(). Remove this macro, its associated
function pointer, and all implementations.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/enh_desc.c | 6 ------
drivers/net/ethernet/stmicro/stmmac/hwif.h | 4 ----
drivers/net/ethernet/stmicro/stmmac/norm_desc.c | 6 ------
5 files changed, 28 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
index 56a88b71def9..1bbf02504dad 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.c
@@ -171,11 +171,6 @@ static int dwmac4_wrback_get_rx_status(struct stmmac_extra_stats *x,
return ret;
}
-static int dwmac4_rd_get_tx_len(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des2) & TDES2_BUFFER1_SIZE_MASK);
-}
-
static void dwmac4_set_tx_owner(struct dma_desc *p)
{
p->des3 |= cpu_to_le32(TDES3_OWN);
@@ -540,7 +535,6 @@ static void dwmac4_set_tbs(struct dma_edesc *p, u32 sec, u32 nsec)
const struct stmmac_desc_ops dwmac4_desc_ops = {
.tx_status = dwmac4_wrback_get_tx_status,
.rx_status = dwmac4_wrback_get_rx_status,
- .get_tx_len = dwmac4_rd_get_tx_len,
.set_tx_owner = dwmac4_set_tx_owner,
.set_rx_owner = dwmac4_set_rx_owner,
.get_rx_vlan_tci = dwmac4_wrback_get_rx_vlan_tci,
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
index f5deceb052d7..1009ef436a1e 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.c
@@ -40,11 +40,6 @@ static int dwxgmac2_get_rx_status(struct stmmac_extra_stats *x,
return good_frame;
}
-static int dwxgmac2_get_tx_len(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des2) & XGMAC_TDES2_B1L);
-}
-
static void dwxgmac2_set_tx_owner(struct dma_desc *p)
{
p->des3 |= cpu_to_le32(XGMAC_TDES3_OWN);
@@ -345,7 +340,6 @@ static void dwxgmac2_set_tbs(struct dma_edesc *p, u32 sec, u32 nsec)
const struct stmmac_desc_ops dwxgmac210_desc_ops = {
.tx_status = dwxgmac2_get_tx_status,
.rx_status = dwxgmac2_get_rx_status,
- .get_tx_len = dwxgmac2_get_tx_len,
.set_tx_owner = dwxgmac2_set_tx_owner,
.set_rx_owner = dwxgmac2_set_rx_owner,
.get_rx_vlan_tci = dwxgmac2_wrback_get_rx_vlan_tci,
diff --git a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
index 3c241c5699ed..ead468f4b645 100644
--- a/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/enh_desc.c
@@ -76,11 +76,6 @@ static int enh_desc_get_tx_status(struct stmmac_extra_stats *x,
return ret;
}
-static int enh_desc_get_tx_len(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des1) & ETDES1_BUFFER1_SIZE_MASK);
-}
-
static int enh_desc_coe_rdes0(int ipc_err, int type, int payload_err)
{
int ret = good_frame;
@@ -435,7 +430,6 @@ static void enh_desc_clear(struct dma_desc *p)
const struct stmmac_desc_ops enh_desc_ops = {
.tx_status = enh_desc_get_tx_status,
.rx_status = enh_desc_get_rx_status,
- .get_tx_len = enh_desc_get_tx_len,
.init_rx_desc = enh_desc_init_rx_desc,
.init_tx_desc = enh_desc_init_tx_desc,
.release_tx_desc = enh_desc_release_tx_desc,
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.h b/drivers/net/ethernet/stmicro/stmmac/hwif.h
index e317f64a0fcc..374f326efa01 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.h
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.h
@@ -63,8 +63,6 @@ struct stmmac_desc_ops {
/* Return the transmit status looking at the TDES1 */
int (*tx_status)(struct stmmac_extra_stats *x,
struct dma_desc *p, void __iomem *ioaddr);
- /* Get the buffer size from the descriptor */
- int (*get_tx_len)(struct dma_desc *p);
/* Handle extra events on specific interrupts hw dependent */
void (*set_rx_owner)(struct dma_desc *p, int disable_rx_ic);
/* Get the receive frame size */
@@ -123,8 +121,6 @@ struct stmmac_desc_ops {
stmmac_do_callback(__priv, desc, get_rx_vlan_valid, __args)
#define stmmac_tx_status(__priv, __args...) \
stmmac_do_callback(__priv, desc, tx_status, __args)
-#define stmmac_get_tx_len(__priv, __args...) \
- stmmac_do_callback(__priv, desc, get_tx_len, __args)
#define stmmac_set_rx_owner(__priv, __args...) \
stmmac_do_void_callback(__priv, desc, set_rx_owner, __args)
#define stmmac_get_rx_frame_len(__priv, __args...) \
diff --git a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
index 621bc1deb4e5..7c3a818c33c1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
+++ b/drivers/net/ethernet/stmicro/stmmac/norm_desc.c
@@ -55,11 +55,6 @@ static int ndesc_get_tx_status(struct stmmac_extra_stats *x,
return ret;
}
-static int ndesc_get_tx_len(struct dma_desc *p)
-{
- return (le32_to_cpu(p->des1) & RDES1_BUFFER1_SIZE_MASK);
-}
-
/* This function verifies if each incoming frame has some errors
* and, if required, updates the multicast statistics.
* In case of success, it returns good_frame because the GMAC device
@@ -281,7 +276,6 @@ static void ndesc_clear(struct dma_desc *p)
const struct stmmac_desc_ops ndesc_ops = {
.tx_status = ndesc_get_tx_status,
.rx_status = ndesc_get_rx_status,
- .get_tx_len = ndesc_get_tx_len,
.init_rx_desc = ndesc_init_rx_desc,
.init_tx_desc = ndesc_init_tx_desc,
.release_tx_desc = ndesc_release_tx_desc,
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 06/14] net: stmmac: remove dwmac4 DMA_CHAN_INTR_DEFAULT_[TR]X*
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (4 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 05/14] net: stmmac: remove .get_tx_len() Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 07/14] net: stmmac: remove dwmac410_(enable|disable)_dma_irq Russell King (Oracle)
` (8 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
Remove the DMA_CHAN_INTR_DEFAULT_[TR]X* definitions, which are aliases
of their respective DMA_CHAN_INTR_ENA_[TR]IE definitions.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h | 4 ----
drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c | 16 ++++++++--------
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
index 9d9077a4ac9f..7fbd02a8119f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
@@ -111,8 +111,6 @@ static inline u32 dma_chanx_base_addr(const struct dwmac4_addrs *addrs,
/* DMA default interrupt mask for 4.00 */
#define DMA_CHAN_INTR_DEFAULT_MASK (DMA_CHAN_INTR_NORMAL | \
DMA_CHAN_INTR_ABNORMAL)
-#define DMA_CHAN_INTR_DEFAULT_RX (DMA_CHAN_INTR_ENA_RIE)
-#define DMA_CHAN_INTR_DEFAULT_TX (DMA_CHAN_INTR_ENA_TIE)
#define DMA_CHAN_INTR_NORMAL_4_10 (DMA_CHAN_INTR_ENA_NIE_4_10 | \
DMA_CHAN_INTR_ENA_RIE | \
@@ -123,8 +121,6 @@ static inline u32 dma_chanx_base_addr(const struct dwmac4_addrs *addrs,
/* DMA default interrupt mask for 4.10a */
#define DMA_CHAN_INTR_DEFAULT_MASK_4_10 (DMA_CHAN_INTR_NORMAL_4_10 | \
DMA_CHAN_INTR_ABNORMAL_4_10)
-#define DMA_CHAN_INTR_DEFAULT_RX_4_10 (DMA_CHAN_INTR_ENA_RIE)
-#define DMA_CHAN_INTR_DEFAULT_TX_4_10 (DMA_CHAN_INTR_ENA_TIE)
#define DMA_CHAN_RX_WATCHDOG(addrs, x) (dma_chanx_base_addr(addrs, x) + 0x38)
#define DMA_CHAN_SLOT_CTRL_STATUS(addrs, x) (dma_chanx_base_addr(addrs, x) + 0x3c)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
index c098047a3bff..9217308bfd38 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
@@ -116,9 +116,9 @@ void dwmac4_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
if (rx)
- value |= DMA_CHAN_INTR_DEFAULT_RX;
+ value |= DMA_CHAN_INTR_ENA_RIE;
if (tx)
- value |= DMA_CHAN_INTR_DEFAULT_TX;
+ value |= DMA_CHAN_INTR_ENA_TIE;
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
@@ -130,9 +130,9 @@ void dwmac410_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
if (rx)
- value |= DMA_CHAN_INTR_DEFAULT_RX_4_10;
+ value |= DMA_CHAN_INTR_ENA_RIE;
if (tx)
- value |= DMA_CHAN_INTR_DEFAULT_TX_4_10;
+ value |= DMA_CHAN_INTR_ENA_TIE;
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
@@ -144,9 +144,9 @@ void dwmac4_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
if (rx)
- value &= ~DMA_CHAN_INTR_DEFAULT_RX;
+ value &= ~DMA_CHAN_INTR_ENA_RIE;
if (tx)
- value &= ~DMA_CHAN_INTR_DEFAULT_TX;
+ value &= ~DMA_CHAN_INTR_ENA_TIE;
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
@@ -158,9 +158,9 @@ void dwmac410_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
if (rx)
- value &= ~DMA_CHAN_INTR_DEFAULT_RX_4_10;
+ value &= ~DMA_CHAN_INTR_ENA_RIE;
if (tx)
- value &= ~DMA_CHAN_INTR_DEFAULT_TX_4_10;
+ value &= ~DMA_CHAN_INTR_ENA_TIE;
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 07/14] net: stmmac: remove dwmac410_(enable|disable)_dma_irq
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (5 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 06/14] net: stmmac: remove dwmac4 DMA_CHAN_INTR_DEFAULT_[TR]X* Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 08/14] net: stmmac: remove mac->xlgmac Russell King (Oracle)
` (7 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
As a result of the previous cleanup, it is now obvious that there are
no differences between the dwmac4 and dwmac410 versions of the DMA
interrupt enable/disable functions.
Moreover, dwmac410_disable_dma_irq() is completely unused; instead,
dwmac4_disable_dma_irq() is used to disable the interrupts for v4.10a
cores while dwmac410_enable_dma_irq() was being used to enable these
same same interrupts.
Remove the unnecessary v4.10a functions.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
.../net/ethernet/stmicro/stmmac/dwmac4_dma.c | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac4_dma.h | 4 ---
.../net/ethernet/stmicro/stmmac/dwmac4_lib.c | 28 -------------------
3 files changed, 1 insertion(+), 33 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
index 60b880cdd9da..28728271fbc9 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.c
@@ -582,7 +582,7 @@ const struct stmmac_dma_ops dwmac410_dma_ops = {
.dump_regs = dwmac4_dump_dma_regs,
.dma_rx_mode = dwmac4_dma_rx_chan_op_mode,
.dma_tx_mode = dwmac4_dma_tx_chan_op_mode,
- .enable_dma_irq = dwmac410_enable_dma_irq,
+ .enable_dma_irq = dwmac4_enable_dma_irq,
.disable_dma_irq = dwmac4_disable_dma_irq,
.start_tx = dwmac4_dma_start_tx,
.stop_tx = dwmac4_dma_stop_tx,
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
index 7fbd02a8119f..af6580332d49 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.h
@@ -170,12 +170,8 @@ static inline u32 dma_chanx_base_addr(const struct dwmac4_addrs *addrs,
int dwmac4_dma_reset(void __iomem *ioaddr);
void dwmac4_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 chan, bool rx, bool tx);
-void dwmac410_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
- u32 chan, bool rx, bool tx);
void dwmac4_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 chan, bool rx, bool tx);
-void dwmac410_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
- u32 chan, bool rx, bool tx);
void dwmac4_dma_start_tx(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 chan);
void dwmac4_dma_stop_tx(struct stmmac_priv *priv, void __iomem *ioaddr,
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
index 9217308bfd38..8c87a20880c4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.c
@@ -123,20 +123,6 @@ void dwmac4_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
-void dwmac410_enable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
- u32 chan, bool rx, bool tx)
-{
- const struct dwmac4_addrs *dwmac4_addrs = priv->plat->dwmac4_addrs;
- u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
-
- if (rx)
- value |= DMA_CHAN_INTR_ENA_RIE;
- if (tx)
- value |= DMA_CHAN_INTR_ENA_TIE;
-
- writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
-}
-
void dwmac4_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
u32 chan, bool rx, bool tx)
{
@@ -151,20 +137,6 @@ void dwmac4_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
}
-void dwmac410_disable_dma_irq(struct stmmac_priv *priv, void __iomem *ioaddr,
- u32 chan, bool rx, bool tx)
-{
- const struct dwmac4_addrs *dwmac4_addrs = priv->plat->dwmac4_addrs;
- u32 value = readl(ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
-
- if (rx)
- value &= ~DMA_CHAN_INTR_ENA_RIE;
- if (tx)
- value &= ~DMA_CHAN_INTR_ENA_TIE;
-
- writel(value, ioaddr + DMA_CHAN_INTR_ENA(dwmac4_addrs, chan));
-}
-
int dwmac4_dma_interrupt(struct stmmac_priv *priv, void __iomem *ioaddr,
struct stmmac_extra_stats *x, u32 chan, u32 dir)
{
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 08/14] net: stmmac: remove mac->xlgmac
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (6 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 07/14] net: stmmac: remove dwmac410_(enable|disable)_dma_irq Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 09/14] net: stmmac: make extend_desc boolean Russell King (Oracle)
` (6 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
mac->xlgmac is only ever written to by the dwxlgmac2_quirk() function.
Remove mac->xlgmac, and the quirk function that then becomes redundant.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/common.h | 1 -
drivers/net/ethernet/stmicro/stmmac/hwif.c | 7 -------
2 files changed, 8 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h
index d26e8a063022..42a48f655849 100644
--- a/drivers/net/ethernet/stmicro/stmmac/common.h
+++ b/drivers/net/ethernet/stmicro/stmmac/common.h
@@ -635,7 +635,6 @@ struct mac_device_info {
unsigned int mcast_bits_log2;
unsigned int rx_csum;
unsigned int pcs;
- unsigned int xlgmac;
unsigned int num_vlan;
u32 vlan_filter[32];
bool vlan_fail_q_en;
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 7e69ff4b9a98..1fcc91be7589 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -97,12 +97,6 @@ static int stmmac_dwmac4_quirks(struct stmmac_priv *priv)
return 0;
}
-static int stmmac_dwxlgmac_quirks(struct stmmac_priv *priv)
-{
- priv->hw->xlgmac = true;
- return 0;
-}
-
int stmmac_reset(struct stmmac_priv *priv)
{
struct plat_stmmacenet_data *plat = priv->plat;
@@ -293,7 +287,6 @@ static const struct stmmac_hwif_entry {
.mmc = &dwxgmac_mmc_ops,
.est = &dwmac510_est_ops,
.setup = dwxlgmac2_setup,
- .quirks = stmmac_dwxlgmac_quirks,
},
};
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 09/14] net: stmmac: make extend_desc boolean
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (7 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 08/14] net: stmmac: remove mac->xlgmac Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 10/14] net: stmmac: make chain_mode a boolean Russell King (Oracle)
` (5 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
extend_desc is a boolean, so make it so, and use "true" to assign it.
Add a comment to describe what this member does.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/hwif.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/hwif.c b/drivers/net/ethernet/stmicro/stmmac/hwif.c
index 1fcc91be7589..71dac8c1a3ca 100644
--- a/drivers/net/ethernet/stmicro/stmmac/hwif.c
+++ b/drivers/net/ethernet/stmicro/stmmac/hwif.c
@@ -76,7 +76,7 @@ static int stmmac_dwmac1_quirks(struct stmmac_priv *priv)
/* GMAC older than 3.50 has no extended descriptors */
if (priv->synopsys_id >= DWMAC_CORE_3_50) {
dev_info(priv->device, "Enabled extended descriptors\n");
- priv->extend_desc = 1;
+ priv->extend_desc = true;
} else {
dev_warn(priv->device, "Extended descriptors not supported\n");
}
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index 51c96a738151..57ded8e5177f 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -302,9 +302,13 @@ struct stmmac_priv {
bool eee_active;
bool eee_sw_timer_en;
bool legacy_serdes_is_powered;
+ /* descriptor format:
+ * when clear: struct dma_desc or for tx TBS struct dma_edesc
+ * when set, struct dma_extended_desc
+ */
+ bool extend_desc;
unsigned int mode;
unsigned int chain_mode;
- int extend_desc;
struct kernel_hwtstamp_config tstamp_config;
struct ptp_clock *ptp_clock;
struct ptp_clock_info ptp_clock_ops;
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 10/14] net: stmmac: make chain_mode a boolean
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (8 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 09/14] net: stmmac: make extend_desc boolean Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:53 ` [PATCH net-next 11/14] net: stmmac: make dma_cfg mixed/fixed burst boolean Russell King (Oracle)
` (4 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
priv->chain_mode is only tested for non-zero, so it can be a boolean.
Change its type to boolean, and add a comment describing this member.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac.h | 3 ++-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index 57ded8e5177f..e98cb9f3a44c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -307,8 +307,9 @@ struct stmmac_priv {
* when set, struct dma_extended_desc
*/
bool extend_desc;
+ /* chain_mode: requested descriptor mode */
+ bool chain_mode;
unsigned int mode;
- unsigned int chain_mode;
struct kernel_hwtstamp_config tstamp_config;
struct ptp_clock *ptp_clock;
struct ptp_clock_info ptp_clock_ops;
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 3f74766f6e21..be144b946fd5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7344,7 +7344,7 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
/* dwmac-sun8i only work in chain mode */
if (priv->plat->flags & STMMAC_FLAG_HAS_SUN8I)
chain_mode = 1;
- priv->chain_mode = chain_mode;
+ priv->chain_mode = !!chain_mode;
/* Initialize HW Interface */
ret = stmmac_hwif_init(priv);
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 11/14] net: stmmac: make dma_cfg mixed/fixed burst boolean
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (9 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 10/14] net: stmmac: make chain_mode a boolean Russell King (Oracle)
@ 2026-02-27 9:53 ` Russell King (Oracle)
2026-02-27 9:54 ` [PATCH net-next 12/14] net: stmmac: move initialisation of dma_cfg->atds Russell King (Oracle)
` (3 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:53 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
struct stmmac_dma_cfg mixed_burst/fixed_burst members are both boolean
in nature - of_property_read_bool() are used to read these from DT, and
they are only tested for non-zero values. Use bool to avoid unnecessary
padding in this structure.
Update dwmac-intel to initialise these using true rather than '1', and
remove the '0' initialisers as the struct is already zero initialised
on allocation.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 4 +---
include/linux/stmmac.h | 4 ++--
2 files changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
index 92d77b0c2f54..ece2a0c38562 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
@@ -636,8 +636,6 @@ static int intel_mgbe_common_data(struct pci_dev *pdev,
plat->dma_cfg->pbl = 32;
plat->dma_cfg->pblx8 = true;
- plat->dma_cfg->fixed_burst = 0;
- plat->dma_cfg->mixed_burst = 0;
plat->dma_cfg->aal = 0;
plat->dma_cfg->dche = true;
@@ -1106,7 +1104,7 @@ static int quark_default_data(struct pci_dev *pdev,
plat->dma_cfg->pbl = 16;
plat->dma_cfg->pblx8 = true;
- plat->dma_cfg->fixed_burst = 1;
+ plat->dma_cfg->fixed_burst = true;
/* AXI (TODO) */
return 0;
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index cc6c89769d82..84dea8c4fa65 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -97,8 +97,8 @@ struct stmmac_dma_cfg {
int txpbl;
int rxpbl;
bool pblx8;
- int fixed_burst;
- int mixed_burst;
+ bool fixed_burst;
+ bool mixed_burst;
bool aal;
bool eame;
bool multi_msi_en;
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 12/14] net: stmmac: move initialisation of dma_cfg->atds
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (10 preceding siblings ...)
2026-02-27 9:53 ` [PATCH net-next 11/14] net: stmmac: make dma_cfg mixed/fixed burst boolean Russell King (Oracle)
@ 2026-02-27 9:54 ` Russell King (Oracle)
2026-02-27 9:54 ` [PATCH net-next 13/14] net: stmmac: simplify atds initialisation Russell King (Oracle)
` (2 subsequent siblings)
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:54 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
Move the initialisation of priv->plat->dma_cfg->atds, which indicates
that 8 32-bit word descriptors are being used for pre-v4.0 cores, after
the call to stmmac_hwif_init(), which will initialise priv->extend_desc
and priv->mode (the descriptor mode.)
We don't need to re-evaluate this in stmmac_init_dma_engine() - as the
state that it depends on only changes in stmmac_hwif_init() which is
only called in the probe path. Also, once set, no code clears this
flag.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index be144b946fd5..38f6b890ec37 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3254,9 +3254,6 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
return -EINVAL;
}
- if (priv->extend_desc && (priv->mode == STMMAC_RING_MODE))
- priv->plat->dma_cfg->atds = 1;
-
ret = stmmac_prereset_configure(priv);
if (ret)
return ret;
@@ -7449,6 +7446,13 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
return ret;
}
+ /* Set alternate descriptor size (which tells the hardware that
+ * descriptors are 8 32-bit words) when using extended descriptors
+ * with ring mode. Only applicable for pre-v4.0 cores.
+ */
+ if (priv->extend_desc && priv->mode == STMMAC_RING_MODE)
+ priv->plat->dma_cfg->atds = 1;
+
/* Rx Watchdog is available in the COREs newer than the 3.40.
* In some case, for example on bugged HW this feature
* has to be disable and this can be done by passing the
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 13/14] net: stmmac: simplify atds initialisation
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (11 preceding siblings ...)
2026-02-27 9:54 ` [PATCH net-next 12/14] net: stmmac: move initialisation of dma_cfg->atds Russell King (Oracle)
@ 2026-02-27 9:54 ` Russell King (Oracle)
2026-02-27 9:54 ` [PATCH net-next 14/14] net: stmmac: move DMA configuration validation to driver probe Russell King (Oracle)
2026-03-03 4:47 ` [PATCH net-next 00/14] net: stmmac: further cleanups patchwork-bot+netdevbpf
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:54 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
atds is boolean, and there is only one place that its value is changed.
Simplify this to a boolean assignment.
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index 38f6b890ec37..a9b26d12a057 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -7448,10 +7448,11 @@ static int stmmac_hw_init(struct stmmac_priv *priv)
/* Set alternate descriptor size (which tells the hardware that
* descriptors are 8 32-bit words) when using extended descriptors
- * with ring mode. Only applicable for pre-v4.0 cores.
+ * with ring mode. Only applicable for pre-v4.0 cores. Platform glue
+ * is not expected to change this.
*/
- if (priv->extend_desc && priv->mode == STMMAC_RING_MODE)
- priv->plat->dma_cfg->atds = 1;
+ priv->plat->dma_cfg->atds = priv->extend_desc &&
+ priv->mode == STMMAC_RING_MODE;
/* Rx Watchdog is available in the COREs newer than the 3.40.
* In some case, for example on bugged HW this feature
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* [PATCH net-next 14/14] net: stmmac: move DMA configuration validation to driver probe
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (12 preceding siblings ...)
2026-02-27 9:54 ` [PATCH net-next 13/14] net: stmmac: simplify atds initialisation Russell King (Oracle)
@ 2026-02-27 9:54 ` Russell King (Oracle)
2026-03-03 4:47 ` [PATCH net-next 00/14] net: stmmac: further cleanups patchwork-bot+netdevbpf
14 siblings, 0 replies; 16+ messages in thread
From: Russell King (Oracle) @ 2026-02-27 9:54 UTC (permalink / raw)
To: Andrew Lunn
Cc: Alexandre Torgue, Andrew Lunn, David S. Miller, Eric Dumazet,
Jakub Kicinski, linux-arm-kernel, linux-stm32, netdev,
Paolo Abeni
Move the DMA configuration validation from stmmac_init_dma_engine()
to the start of the driver probe function. The platform glue is
expected to supply the DMA configuration, and a non-zero programmable
burst length (bpl).
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
index a9b26d12a057..5d1cc9aead00 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -3249,11 +3249,6 @@ static int stmmac_init_dma_engine(struct stmmac_priv *priv)
u32 chan = 0;
int ret = 0;
- if (!priv->plat->dma_cfg || !priv->plat->dma_cfg->pbl) {
- netdev_err(priv->dev, "Invalid DMA configuration\n");
- return -EINVAL;
- }
-
ret = stmmac_prereset_configure(priv);
if (ret)
return ret;
@@ -7733,6 +7728,11 @@ static int __stmmac_dvr_probe(struct device *device,
u32 rxq;
int i, ret = 0;
+ if (!plat_dat->dma_cfg || !plat_dat->dma_cfg->pbl) {
+ dev_err(device, "invalid DMA configuration\n");
+ return -EINVAL;
+ }
+
ndev = devm_alloc_etherdev_mqs(device, sizeof(struct stmmac_priv),
MTL_MAX_TX_QUEUES, MTL_MAX_RX_QUEUES);
if (!ndev)
--
2.47.3
^ permalink raw reply related [flat|nested] 16+ messages in thread* Re: [PATCH net-next 00/14] net: stmmac: further cleanups
2026-02-27 9:52 [PATCH net-next 00/14] net: stmmac: further cleanups Russell King (Oracle)
` (13 preceding siblings ...)
2026-02-27 9:54 ` [PATCH net-next 14/14] net: stmmac: move DMA configuration validation to driver probe Russell King (Oracle)
@ 2026-03-03 4:47 ` patchwork-bot+netdevbpf
14 siblings, 0 replies; 16+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-03-03 4:47 UTC (permalink / raw)
To: Russell King
Cc: andrew, alexandre.torgue, andrew+netdev, davem, edumazet, kuba,
linux-arm-kernel, linux-stm32, netdev, pabeni
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Fri, 27 Feb 2026 09:52:38 +0000 you wrote:
> Hi,
>
> Yet another bunch of patches cleaning up the stmmac driver.
>
> We start off by cleaning up the formatting for stmmac_mac_finish(). Then
> remove a plat_dat->port_node which is redundant, followed by several
> descriptor methods that aren't called.
>
> [...]
Here is the summary with links:
- [net-next,01/14] net: stmmac: clean up formatting in stmmac_mac_finish()
https://git.kernel.org/netdev/net-next/c/940ec40dd299
- [net-next,02/14] net: stmmac: remove plat_dat->port_node
https://git.kernel.org/netdev/net-next/c/44a2ec96d374
- [net-next,03/14] net: stmmac: remove .get_tx_owner()
https://git.kernel.org/netdev/net-next/c/d48ba98bbc82
- [net-next,04/14] net: stmmac: remove .get_tx_ls()
https://git.kernel.org/netdev/net-next/c/1fe444bdc583
- [net-next,05/14] net: stmmac: remove .get_tx_len()
https://git.kernel.org/netdev/net-next/c/19f2d59c3c3a
- [net-next,06/14] net: stmmac: remove dwmac4 DMA_CHAN_INTR_DEFAULT_[TR]X*
https://git.kernel.org/netdev/net-next/c/d1925291231e
- [net-next,07/14] net: stmmac: remove dwmac410_(enable|disable)_dma_irq
https://git.kernel.org/netdev/net-next/c/0e7cb34d0f6c
- [net-next,08/14] net: stmmac: remove mac->xlgmac
https://git.kernel.org/netdev/net-next/c/70bafb53b305
- [net-next,09/14] net: stmmac: make extend_desc boolean
https://git.kernel.org/netdev/net-next/c/ecb037f58da7
- [net-next,10/14] net: stmmac: make chain_mode a boolean
https://git.kernel.org/netdev/net-next/c/a2a3832ad76d
- [net-next,11/14] net: stmmac: make dma_cfg mixed/fixed burst boolean
https://git.kernel.org/netdev/net-next/c/1558705afbb2
- [net-next,12/14] net: stmmac: move initialisation of dma_cfg->atds
https://git.kernel.org/netdev/net-next/c/0835bc72510f
- [net-next,13/14] net: stmmac: simplify atds initialisation
https://git.kernel.org/netdev/net-next/c/93cde989bd28
- [net-next,14/14] net: stmmac: move DMA configuration validation to driver probe
https://git.kernel.org/netdev/net-next/c/07a8531d4427
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 16+ messages in thread