Merge branch 'dsa_loop-and-platform_data-cleanups'

Vladimir Oltean says:

====================
dsa_loop and platform_data cleanups

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.
====================

Link: https://patch.msgid.link/20260406212158.721806-1-vladimir.oltean@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Jakub Kicinski
2026-04-08 19:38:56 -07:00
4 changed files with 34 additions and 88 deletions
-5
View File
@@ -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
+34 -1
View File
@@ -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
-42
View File
@@ -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 */
-40
View File
@@ -3,19 +3,10 @@
#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 {
/*
* How to access the switch configuration registers.
*/
struct device *host_dev;
int sw_addr;
/*
* Reference to network devices
*/
@@ -24,12 +15,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,31 +23,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];
};
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 */