Thread (32 messages) 32 messages, 2 authors, 2022-01-07

Re: [net-next PATCH RFC v6 11/16] net: dsa: qca8k: add tracking state of master port

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-12-15 09:51:52
Also in: lkml

On Tue, Dec 14, 2021 at 11:44:04PM +0100, Ansuel Smith wrote:
MDIO/MIB Ethernet require the master port and the tagger availabale to
correctly work. Use the new api master_state_change to track when master
is operational or not and set a bool in qca8k_priv.
We cache the first cached master available and we check if other cpu
port are operational when the cached one goes down.
This cached master will later be used by mdio read/write and mib request to
correctly use the working function.

qca8k implementation for MDIO/MIB Ethernet is bad. CPU port0 is the only
one that answers with the ack packet or sends MIB Ethernet packets. For
this reason the master_state_change ignore CPU port6 and checkes only
CPU port0 if it's operational and enables this mode.
CPU port 0 may not always be wired, it depends on board design, right?
So the Ethernet management protocol may or may not be available to all users.
quoted hunk ↗ jump to hunk
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
---
diff --git a/drivers/net/dsa/qca8k.h b/drivers/net/dsa/qca8k.h
index ab4a417b25a9..6edd6adc3063 100644
--- a/drivers/net/dsa/qca8k.h
+++ b/drivers/net/dsa/qca8k.h
@@ -353,6 +353,7 @@ struct qca8k_priv {
 	struct dsa_switch_ops ops;
 	struct gpio_desc *reset_gpio;
 	unsigned int port_mtu[QCA8K_NUM_PORTS];
+	const struct net_device *master; /* Track if mdio/mib Ethernet is available */
Maybe "mgmt_master" would be a clearer naming scheme?
 };
 
 struct qca8k_mib_desc {
-- 
2.33.1
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help