mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 06:33:41 +00:00
0b6d62c50b
New revision of Methode eDPU boards uses Marvell 88E6361 switch, so lets backport it from kernel 6.5. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
65 lines
2.5 KiB
Diff
65 lines
2.5 KiB
Diff
From 4f86eb098e18fd0f032877dfa1a7e8c1503ca409 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Alexis=20Lothor=C3=A9?= <alexis.lothore@bootlin.com>
|
|
Date: Mon, 29 May 2023 10:02:41 +0200
|
|
Subject: [PATCH 1/6] net: dsa: mv88e6xxx: pass directly chip structure to
|
|
mv88e6xxx_phy_is_internal
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Since this function is a simple helper, we do not need to pass a full
|
|
dsa_switch structure, we can directly pass the mv88e6xxx_chip structure.
|
|
Doing so will allow to share this function with any other function
|
|
not manipulating dsa_switch structure but needing info about number of
|
|
internal phys
|
|
|
|
Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com>
|
|
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
|
|
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
---
|
|
drivers/net/dsa/mv88e6xxx/chip.c | 10 ++++------
|
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
|
|
|
--- a/drivers/net/dsa/mv88e6xxx/chip.c
|
|
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
|
|
@@ -470,10 +470,8 @@ restore_link:
|
|
return err;
|
|
}
|
|
|
|
-static int mv88e6xxx_phy_is_internal(struct dsa_switch *ds, int port)
|
|
+static int mv88e6xxx_phy_is_internal(struct mv88e6xxx_chip *chip, int port)
|
|
{
|
|
- struct mv88e6xxx_chip *chip = ds->priv;
|
|
-
|
|
return port < chip->info->num_internal_phys;
|
|
}
|
|
|
|
@@ -591,7 +589,7 @@ static void mv88e6095_phylink_get_caps(s
|
|
|
|
config->mac_capabilities = MAC_SYM_PAUSE | MAC_10 | MAC_100;
|
|
|
|
- if (mv88e6xxx_phy_is_internal(chip->ds, port)) {
|
|
+ if (mv88e6xxx_phy_is_internal(chip, port)) {
|
|
__set_bit(PHY_INTERFACE_MODE_MII, config->supported_interfaces);
|
|
} else {
|
|
if (cmode < ARRAY_SIZE(mv88e6185_phy_interface_modes) &&
|
|
@@ -839,7 +837,7 @@ static void mv88e6xxx_get_caps(struct ds
|
|
chip->info->ops->phylink_get_caps(chip, port, config);
|
|
mv88e6xxx_reg_unlock(chip);
|
|
|
|
- if (mv88e6xxx_phy_is_internal(ds, port)) {
|
|
+ if (mv88e6xxx_phy_is_internal(chip, port)) {
|
|
__set_bit(PHY_INTERFACE_MODE_INTERNAL,
|
|
config->supported_interfaces);
|
|
/* Internal ports with no phy-mode need GMII for PHYLIB */
|
|
@@ -860,7 +858,7 @@ static void mv88e6xxx_mac_config(struct
|
|
|
|
mv88e6xxx_reg_lock(chip);
|
|
|
|
- if (mode != MLO_AN_PHY || !mv88e6xxx_phy_is_internal(ds, port)) {
|
|
+ if (mode != MLO_AN_PHY || !mv88e6xxx_phy_is_internal(chip, port)) {
|
|
/* In inband mode, the link may come up at any time while the
|
|
* link is not forced down. Force the link down while we
|
|
* reconfigure the interface mode.
|