* [PATCH net-next 1/4] net: dsa: remove struct platform_data
2026-04-06 21:21 [PATCH net-next 0/4] dsa_loop and platform_data cleanups Vladimir Oltean
@ 2026-04-06 21:21 ` Vladimir Oltean
2026-04-09 2:38 ` Jakub Kicinski
2026-04-06 21:21 ` [PATCH net-next 2/4] net: dsa: clean up struct dsa_chip_data Vladimir Oltean
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Vladimir Oltean @ 2026-04-06 21:21 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Andrew Lunn
This is not used anywhere in the kernel.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
Documentation/networking/dsa/dsa.rst | 5 -----
include/linux/platform_data/dsa.h | 17 -----------------
2 files changed, 22 deletions(-)
diff --git a/Documentation/networking/dsa/dsa.rst b/Documentation/networking/dsa/dsa.rst
index 5c79740a533b..fd3c254ced1d 100644
--- a/Documentation/networking/dsa/dsa.rst
+++ b/Documentation/networking/dsa/dsa.rst
@@ -383,11 +383,6 @@ DSA data structures are defined in ``include/net/dsa.h`` as well as
well as various properties of its ports: names/labels, and finally a routing
table indication (when cascading switches)
-- ``dsa_platform_data``: platform device configuration data which can reference
- a collection of dsa_chip_data structures if multiple switches are cascaded,
- the conduit network device this switch tree is attached to needs to be
- referenced
-
- ``dsa_switch_tree``: structure assigned to the conduit network device under
``dsa_ptr``, this structure references a dsa_platform_data structure as well as
the tagging protocol supported by the switch tree, and which receive/transmit
diff --git a/include/linux/platform_data/dsa.h b/include/linux/platform_data/dsa.h
index d4d9bf2060a6..fec1ae5bddb9 100644
--- a/include/linux/platform_data/dsa.h
+++ b/include/linux/platform_data/dsa.h
@@ -48,21 +48,4 @@ struct dsa_chip_data {
s8 rtable[DSA_MAX_SWITCHES];
};
-struct dsa_platform_data {
- /*
- * Reference to a Linux network interface that connects
- * to the root switch chip of the tree.
- */
- struct device *netdev;
- struct net_device *of_netdev;
-
- /*
- * Info structs describing each of the switch chips
- * connected via this network interface.
- */
- int nr_chips;
- struct dsa_chip_data *chip;
-};
-
-
#endif /* __DSA_PDATA_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH net-next 1/4] net: dsa: remove struct platform_data
2026-04-06 21:21 ` [PATCH net-next 1/4] net: dsa: remove struct platform_data Vladimir Oltean
@ 2026-04-09 2:38 ` Jakub Kicinski
0 siblings, 0 replies; 7+ messages in thread
From: Jakub Kicinski @ 2026-04-09 2:38 UTC (permalink / raw)
To: Vladimir Oltean
Cc: netdev, David S. Miller, Eric Dumazet, Paolo Abeni, Simon Horman,
Andrew Lunn
On Tue, 7 Apr 2026 00:21:55 +0300 Vladimir Oltean wrote:
> - ``dsa_switch_tree``: structure assigned to the conduit network device under
> ``dsa_ptr``, this structure references a dsa_platform_data structure as well as
> the tagging protocol supported by the switch tree, and which receive/transmit
AIs point out struct dsa_switch_tree still contains a pointer to struct
dsa_platform_data and the doc above mentions it. Please follow up.
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next 2/4] net: dsa: clean up struct dsa_chip_data
2026-04-06 21:21 [PATCH net-next 0/4] dsa_loop and platform_data cleanups Vladimir Oltean
2026-04-06 21:21 ` [PATCH net-next 1/4] net: dsa: remove struct platform_data Vladimir Oltean
@ 2026-04-06 21:21 ` Vladimir Oltean
2026-04-06 21:21 ` [PATCH net-next 3/4] net: dsa: remove unused platform_data definitions Vladimir Oltean
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Vladimir Oltean @ 2026-04-06 21:21 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Andrew Lunn
This has accumulated some fields which are no longer parsed by the core
or set by any driver. Remove them.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
include/linux/platform_data/dsa.h | 20 --------------------
1 file changed, 20 deletions(-)
diff --git a/include/linux/platform_data/dsa.h b/include/linux/platform_data/dsa.h
index fec1ae5bddb9..031f4cf83ae2 100644
--- a/include/linux/platform_data/dsa.h
+++ b/include/linux/platform_data/dsa.h
@@ -10,12 +10,6 @@ struct net_device;
#define DSA_RTABLE_NONE -1
struct dsa_chip_data {
- /*
- * How to access the switch configuration registers.
- */
- struct device *host_dev;
- int sw_addr;
-
/*
* Reference to network devices
*/
@@ -24,12 +18,6 @@ struct dsa_chip_data {
/* set to size of eeprom if supported by the switch */
int eeprom_len;
- /* Device tree node pointer for this specific switch chip
- * used during switch setup in case additional properties
- * and resources needs to be used
- */
- struct device_node *of_node;
-
/*
* The names of the switch's ports. Use "cpu" to
* designate the switch port that the cpu is connected to,
@@ -38,14 +26,6 @@ struct dsa_chip_data {
* or any other string to indicate this is a physical port.
*/
char *port_names[DSA_MAX_PORTS];
- struct device_node *port_dn[DSA_MAX_PORTS];
-
- /*
- * An array of which element [a] indicates which port on this
- * switch should be used to send packets to that are destined
- * for switch a. Can be NULL if there is only one switch chip.
- */
- s8 rtable[DSA_MAX_SWITCHES];
};
#endif /* __DSA_PDATA_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next 3/4] net: dsa: remove unused platform_data definitions
2026-04-06 21:21 [PATCH net-next 0/4] dsa_loop and platform_data cleanups Vladimir Oltean
2026-04-06 21:21 ` [PATCH net-next 1/4] net: dsa: remove struct platform_data Vladimir Oltean
2026-04-06 21:21 ` [PATCH net-next 2/4] net: dsa: clean up struct dsa_chip_data Vladimir Oltean
@ 2026-04-06 21:21 ` Vladimir Oltean
2026-04-06 21:21 ` [PATCH net-next 4/4] net: dsa: eliminate <linux/dsa/loop.h> Vladimir Oltean
2026-04-09 2:51 ` [PATCH net-next 0/4] dsa_loop and platform_data cleanups patchwork-bot+netdevbpf
4 siblings, 0 replies; 7+ messages in thread
From: Vladimir Oltean @ 2026-04-06 21:21 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Andrew Lunn
Pretty self-explanatory, nobody needs these.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
include/linux/platform_data/dsa.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/linux/platform_data/dsa.h b/include/linux/platform_data/dsa.h
index 031f4cf83ae2..77424bb24723 100644
--- a/include/linux/platform_data/dsa.h
+++ b/include/linux/platform_data/dsa.h
@@ -3,11 +3,8 @@
#define __DSA_PDATA_H
struct device;
-struct net_device;
-#define DSA_MAX_SWITCHES 4
#define DSA_MAX_PORTS 12
-#define DSA_RTABLE_NONE -1
struct dsa_chip_data {
/*
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH net-next 4/4] net: dsa: eliminate <linux/dsa/loop.h>
2026-04-06 21:21 [PATCH net-next 0/4] dsa_loop and platform_data cleanups Vladimir Oltean
` (2 preceding siblings ...)
2026-04-06 21:21 ` [PATCH net-next 3/4] net: dsa: remove unused platform_data definitions Vladimir Oltean
@ 2026-04-06 21:21 ` Vladimir Oltean
2026-04-09 2:51 ` [PATCH net-next 0/4] dsa_loop and platform_data cleanups patchwork-bot+netdevbpf
4 siblings, 0 replies; 7+ messages in thread
From: Vladimir Oltean @ 2026-04-06 21:21 UTC (permalink / raw)
To: netdev
Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
Simon Horman, Andrew Lunn
There is no reason at all to export these data types to the global
include directory.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
drivers/net/dsa/dsa_loop.c | 35 ++++++++++++++++++++++++++++++-
include/linux/dsa/loop.h | 42 --------------------------------------
2 files changed, 34 insertions(+), 43 deletions(-)
delete mode 100644 include/linux/dsa/loop.h
diff --git a/drivers/net/dsa/dsa_loop.c b/drivers/net/dsa/dsa_loop.c
index b41254b3ac42..7058faf23592 100644
--- a/drivers/net/dsa/dsa_loop.c
+++ b/drivers/net/dsa/dsa_loop.c
@@ -14,13 +14,46 @@
#include <linux/workqueue.h>
#include <linux/module.h>
#include <linux/if_bridge.h>
-#include <linux/dsa/loop.h>
+#include <linux/if_vlan.h>
+#include <linux/types.h>
#include <net/dsa.h>
#define DSA_LOOP_NUM_PORTS 6
#define DSA_LOOP_CPU_PORT (DSA_LOOP_NUM_PORTS - 1)
#define NUM_FIXED_PHYS (DSA_LOOP_NUM_PORTS - 2)
+struct dsa_loop_vlan {
+ u16 members;
+ u16 untagged;
+};
+
+struct dsa_loop_mib_entry {
+ char name[ETH_GSTRING_LEN];
+ unsigned long val;
+};
+
+enum dsa_loop_mib_counters {
+ DSA_LOOP_PHY_READ_OK,
+ DSA_LOOP_PHY_READ_ERR,
+ DSA_LOOP_PHY_WRITE_OK,
+ DSA_LOOP_PHY_WRITE_ERR,
+ __DSA_LOOP_CNT_MAX,
+};
+
+struct dsa_loop_port {
+ struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX];
+ u16 pvid;
+ int mtu;
+};
+
+struct dsa_loop_priv {
+ struct mii_bus *bus;
+ unsigned int port_base;
+ struct dsa_loop_vlan vlans[VLAN_N_VID];
+ struct net_device *netdev;
+ struct dsa_loop_port ports[DSA_MAX_PORTS];
+};
+
struct dsa_loop_pdata {
/* Must be first, such that dsa_register_switch() can access this
* without gory pointer manipulations
diff --git a/include/linux/dsa/loop.h b/include/linux/dsa/loop.h
deleted file mode 100644
index b8fef35591aa..000000000000
--- a/include/linux/dsa/loop.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-#ifndef DSA_LOOP_H
-#define DSA_LOOP_H
-
-#include <linux/if_vlan.h>
-#include <linux/types.h>
-#include <linux/ethtool.h>
-#include <net/dsa.h>
-
-struct dsa_loop_vlan {
- u16 members;
- u16 untagged;
-};
-
-struct dsa_loop_mib_entry {
- char name[ETH_GSTRING_LEN];
- unsigned long val;
-};
-
-enum dsa_loop_mib_counters {
- DSA_LOOP_PHY_READ_OK,
- DSA_LOOP_PHY_READ_ERR,
- DSA_LOOP_PHY_WRITE_OK,
- DSA_LOOP_PHY_WRITE_ERR,
- __DSA_LOOP_CNT_MAX,
-};
-
-struct dsa_loop_port {
- struct dsa_loop_mib_entry mib[__DSA_LOOP_CNT_MAX];
- u16 pvid;
- int mtu;
-};
-
-struct dsa_loop_priv {
- struct mii_bus *bus;
- unsigned int port_base;
- struct dsa_loop_vlan vlans[VLAN_N_VID];
- struct net_device *netdev;
- struct dsa_loop_port ports[DSA_MAX_PORTS];
-};
-
-#endif /* DSA_LOOP_H */
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH net-next 0/4] dsa_loop and platform_data cleanups
2026-04-06 21:21 [PATCH net-next 0/4] dsa_loop and platform_data cleanups Vladimir Oltean
` (3 preceding siblings ...)
2026-04-06 21:21 ` [PATCH net-next 4/4] net: dsa: eliminate <linux/dsa/loop.h> Vladimir Oltean
@ 2026-04-09 2:51 ` patchwork-bot+netdevbpf
4 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2026-04-09 2:51 UTC (permalink / raw)
To: Vladimir Oltean; +Cc: netdev, davem, edumazet, kuba, pabeni, horms, andrew
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Tue, 7 Apr 2026 00:21:54 +0300 you wrote:
> While working to add some new features to dsa_loop, I gathered a number
> of cleanup patches. They mostly remove some data structures that became
> unused after the multi-switch platforms were migrated to the modern DT
> bindings.
>
> Vladimir Oltean (4):
> net: dsa: remove struct platform_data
> net: dsa: clean up struct dsa_chip_data
> net: dsa: remove unused platform_data definitions
> net: dsa: eliminate <linux/dsa/loop.h>
>
> [...]
Here is the summary with links:
- [net-next,1/4] net: dsa: remove struct platform_data
https://git.kernel.org/netdev/net-next/c/b773b9935239
- [net-next,2/4] net: dsa: clean up struct dsa_chip_data
https://git.kernel.org/netdev/net-next/c/dc915f375e54
- [net-next,3/4] net: dsa: remove unused platform_data definitions
https://git.kernel.org/netdev/net-next/c/c3b09190e658
- [net-next,4/4] net: dsa: eliminate <linux/dsa/loop.h>
https://git.kernel.org/netdev/net-next/c/da9008674d96
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] 7+ messages in thread