mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
49 lines
1.6 KiB
Diff
49 lines
1.6 KiB
Diff
|
From a46aec02bc06ac2c33f326339e4ef88c735dc30d Mon Sep 17 00:00:00 2001
|
||
|
From: Ansuel Smith <ansuelsmth@gmail.com>
|
||
|
Date: Fri, 14 May 2021 23:00:13 +0200
|
||
|
Subject: [PATCH] net: dsa: qca8k: pass switch_revision info to phy dev_flags
|
||
|
|
||
|
Define get_phy_flags to pass switch_Revision needed to tweak the
|
||
|
internal PHY with debug values based on the revision.
|
||
|
|
||
|
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
|
||
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
drivers/net/dsa/qca8k.c | 17 +++++++++++++++++
|
||
|
1 file changed, 17 insertions(+)
|
||
|
|
||
|
--- a/drivers/net/dsa/qca8k.c
|
||
|
+++ b/drivers/net/dsa/qca8k.c
|
||
|
@@ -1740,6 +1740,22 @@ qca8k_port_vlan_del(struct dsa_switch *d
|
||
|
return ret;
|
||
|
}
|
||
|
|
||
|
+static u32 qca8k_get_phy_flags(struct dsa_switch *ds, int port)
|
||
|
+{
|
||
|
+ struct qca8k_priv *priv = ds->priv;
|
||
|
+
|
||
|
+ /* Communicate to the phy internal driver the switch revision.
|
||
|
+ * Based on the switch revision different values needs to be
|
||
|
+ * set to the dbg and mmd reg on the phy.
|
||
|
+ * The first 2 bit are used to communicate the switch revision
|
||
|
+ * to the phy driver.
|
||
|
+ */
|
||
|
+ if (port > 0 && port < 6)
|
||
|
+ return priv->switch_revision;
|
||
|
+
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+
|
||
|
static enum dsa_tag_protocol
|
||
|
qca8k_get_tag_protocol(struct dsa_switch *ds, int port,
|
||
|
enum dsa_tag_protocol mp)
|
||
|
@@ -1774,6 +1790,7 @@ static const struct dsa_switch_ops qca8k
|
||
|
.phylink_mac_config = qca8k_phylink_mac_config,
|
||
|
.phylink_mac_link_down = qca8k_phylink_mac_link_down,
|
||
|
.phylink_mac_link_up = qca8k_phylink_mac_link_up,
|
||
|
+ .get_phy_flags = qca8k_get_phy_flags,
|
||
|
};
|
||
|
|
||
|
static int qca8k_read_switch_id(struct qca8k_priv *priv)
|