summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2026-04-09 05:38:55 +0300
committerJakub Kicinski <kuba@kernel.org>2026-04-09 05:38:56 +0300
commit68911235cfd9dc8b42faaa380a20be968e439ec2 (patch)
tree0d41c6ca64e66ac9c1fff3ecb56beefddb6a4916 /drivers
parent3723c3b656ad47bcdad8bc2918a3456f9662a6cc (diff)
parentda9008674d9658de1e9f45d386ff6627313f39f7 (diff)
downloadlinux-68911235cfd9dc8b42faaa380a20be968e439ec2.tar.xz
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/dsa/dsa_loop.c35
1 files changed, 34 insertions, 1 deletions
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