mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
68bc059c55
Manually rebased: backport-5.15/603-v5.19-page_pool-Add-recycle-stats-to-page_pool_put_page_bu.patch pending-5.15/723-net-mt7531-ensure-all-MACs-are-powered-down-before-r.patch* Removed upstreamed: generic-backport/610-v6.3-net-page_pool-use-in_softirq-instead.patch[1] backport-5.15/705-12-v6.0-net-dsa-mt7530-rework-mt753-01-_setup.patch[2] backport-5.15/790-v6.4-0010-net-dsa-mt7530-split-off-common-parts-from-mt7531_se.patch[3] backport-5.15/703-10-v5.16-net-dsa-introduce-helpers-for-iterating-through-port.patch[4] All other patches automatically rebased. * Modified to define the variable i as suggested by DragonBluep in PR discussion. See: https://github.com/openwrt/openwrt/pull/12823#issuecomment-1578518576 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.115&id=3af319d5147454dc63665ef451229c674b538377 2. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.115&id=0753c1ef24194580f7165ae6e259b59a851392f2 3. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v5.15.115&id=5a7266feaa6d708fc6880a161786eaa884ef3c8e 4.9902f91cf6
Build system: x86_64 Build-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Run-tested: bcm2711/RPi4B, ramips/tplink_archer-a6-v3, filogic/xiaomi_redmi-router-ax6000-ubootmod Signed-off-by: John Audia <therealgraysky@proton.me> (cherry picked from commit5714660643
)
64 lines
2.2 KiB
Diff
64 lines
2.2 KiB
Diff
From c07c6e8eb4b38bae921f9e2f108d1e7f8e14226e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <kabel@kernel.org>
|
|
Date: Thu, 28 Oct 2021 18:00:14 +0100
|
|
Subject: [PATCH] net: dsa: populate supported_interfaces member
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Add a new DSA switch operation, phylink_get_interfaces, which should
|
|
fill in which PHY_INTERFACE_MODE_* are supported by given port.
|
|
|
|
Use this before phylink_create() to fill phylinks supported_interfaces
|
|
member, allowing phylink to determine which PHY_INTERFACE_MODEs are
|
|
supported.
|
|
|
|
Signed-off-by: Marek Behún <kabel@kernel.org>
|
|
[tweaked patch and description to add more complete support -- rmk]
|
|
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
include/net/dsa.h | 2 ++
|
|
net/dsa/port.c | 4 ++++
|
|
net/dsa/slave.c | 4 ++++
|
|
3 files changed, 10 insertions(+)
|
|
|
|
--- a/include/net/dsa.h
|
|
+++ b/include/net/dsa.h
|
|
@@ -654,6 +654,8 @@ struct dsa_switch_ops {
|
|
/*
|
|
* PHYLINK integration
|
|
*/
|
|
+ void (*phylink_get_interfaces)(struct dsa_switch *ds, int port,
|
|
+ unsigned long *supported_interfaces);
|
|
void (*phylink_validate)(struct dsa_switch *ds, int port,
|
|
unsigned long *supported,
|
|
struct phylink_link_state *state);
|
|
--- a/net/dsa/port.c
|
|
+++ b/net/dsa/port.c
|
|
@@ -1188,6 +1188,10 @@ static int dsa_port_phylink_register(str
|
|
dp->pl_config.type = PHYLINK_DEV;
|
|
dp->pl_config.pcs_poll = ds->pcs_poll;
|
|
|
|
+ if (ds->ops->phylink_get_interfaces)
|
|
+ ds->ops->phylink_get_interfaces(ds, dp->index,
|
|
+ dp->pl_config.supported_interfaces);
|
|
+
|
|
dp->pl = phylink_create(&dp->pl_config, of_fwnode_handle(port_dn),
|
|
mode, &dsa_port_phylink_mac_ops);
|
|
if (IS_ERR(dp->pl)) {
|
|
--- a/net/dsa/slave.c
|
|
+++ b/net/dsa/slave.c
|
|
@@ -1837,6 +1837,10 @@ static int dsa_slave_phy_setup(struct ne
|
|
dp->pl_config.poll_fixed_state = true;
|
|
}
|
|
|
|
+ if (ds->ops->phylink_get_interfaces)
|
|
+ ds->ops->phylink_get_interfaces(ds, dp->index,
|
|
+ dp->pl_config.supported_interfaces);
|
|
+
|
|
dp->pl = phylink_create(&dp->pl_config, of_fwnode_handle(port_dn), mode,
|
|
&dsa_port_phylink_mac_ops);
|
|
if (IS_ERR(dp->pl)) {
|