2022-03-27 19:26:31 +00:00
|
|
|
From ffbb1b37a3e1ce1a5c574a6bd4f5aede8bc468ac Mon Sep 17 00:00:00 2001
|
|
|
|
From: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
|
|
|
|
Date: Sat, 27 Feb 2021 20:20:07 -0800
|
|
|
|
Subject: [PATCH] Revert "net: phy: simplify phy_link_change arguments"
|
|
|
|
|
|
|
|
This reverts commit a307593a644443db12888f45eed0dafb5869e2cc.
|
|
|
|
|
|
|
|
This brings back the do_carrier flags used by the (hacky) next patch,
|
|
|
|
still required by target/linux/ramips/files/drivers/net/ethernet/ralink/mdio.c
|
|
|
|
---
|
|
|
|
drivers/net/phy/phy.c | 12 ++++++------
|
|
|
|
drivers/net/phy/phy_device.c | 12 +++++++-----
|
|
|
|
drivers/net/phy/phylink.c | 3 ++-
|
|
|
|
include/linux/phy.h | 2 +-
|
|
|
|
4 files changed, 16 insertions(+), 13 deletions(-)
|
|
|
|
|
|
|
|
--- a/drivers/net/phy/phy.c
|
|
|
|
+++ b/drivers/net/phy/phy.c
|
2023-03-30 15:39:17 +00:00
|
|
|
@@ -71,13 +71,13 @@ static void phy_process_state_change(str
|
2022-03-27 19:26:31 +00:00
|
|
|
|
|
|
|
static void phy_link_up(struct phy_device *phydev)
|
|
|
|
{
|
|
|
|
- phydev->phy_link_change(phydev, true);
|
|
|
|
+ phydev->phy_link_change(phydev, true, true);
|
|
|
|
phy_led_trigger_change_speed(phydev);
|
|
|
|
}
|
|
|
|
|
|
|
|
-static void phy_link_down(struct phy_device *phydev)
|
|
|
|
+static void phy_link_down(struct phy_device *phydev, bool do_carrier)
|
|
|
|
{
|
|
|
|
- phydev->phy_link_change(phydev, false);
|
|
|
|
+ phydev->phy_link_change(phydev, false, do_carrier);
|
|
|
|
phy_led_trigger_change_speed(phydev);
|
|
|
|
}
|
|
|
|
|
2023-03-30 15:39:17 +00:00
|
|
|
@@ -563,7 +563,7 @@ int phy_start_cable_test(struct phy_devi
|
2022-03-27 19:26:31 +00:00
|
|
|
goto out;
|
|
|
|
|
|
|
|
/* Mark the carrier down until the test is complete */
|
|
|
|
- phy_link_down(phydev);
|
|
|
|
+ phy_link_down(phydev, true);
|
|
|
|
|
|
|
|
netif_testing_on(dev);
|
|
|
|
err = phydev->drv->cable_test_start(phydev);
|
2023-03-30 15:39:17 +00:00
|
|
|
@@ -634,7 +634,7 @@ int phy_start_cable_test_tdr(struct phy_
|
2022-03-27 19:26:31 +00:00
|
|
|
goto out;
|
|
|
|
|
|
|
|
/* Mark the carrier down until the test is complete */
|
|
|
|
- phy_link_down(phydev);
|
|
|
|
+ phy_link_down(phydev, true);
|
|
|
|
|
|
|
|
netif_testing_on(dev);
|
|
|
|
err = phydev->drv->cable_test_tdr_start(phydev, config);
|
2023-03-30 15:39:17 +00:00
|
|
|
@@ -706,7 +706,7 @@ static int phy_check_link_status(struct
|
2022-03-27 19:26:31 +00:00
|
|
|
phy_link_up(phydev);
|
|
|
|
} else if (!phydev->link && phydev->state != PHY_NOLINK) {
|
|
|
|
phydev->state = PHY_NOLINK;
|
|
|
|
- phy_link_down(phydev);
|
|
|
|
+ phy_link_down(phydev, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
2023-03-30 15:39:17 +00:00
|
|
|
@@ -1192,7 +1192,7 @@ void phy_state_machine(struct work_struc
|
2022-03-27 19:26:31 +00:00
|
|
|
case PHY_HALTED:
|
|
|
|
if (phydev->link) {
|
|
|
|
phydev->link = 0;
|
|
|
|
- phy_link_down(phydev);
|
|
|
|
+ phy_link_down(phydev, true);
|
|
|
|
}
|
|
|
|
do_suspend = true;
|
|
|
|
break;
|
|
|
|
--- a/drivers/net/phy/phy_device.c
|
|
|
|
+++ b/drivers/net/phy/phy_device.c
|
2023-06-04 02:26:59 +00:00
|
|
|
@@ -1035,14 +1035,16 @@ struct phy_device *phy_find_first(struct
|
2022-03-27 19:26:31 +00:00
|
|
|
}
|
|
|
|
EXPORT_SYMBOL(phy_find_first);
|
|
|
|
|
|
|
|
-static void phy_link_change(struct phy_device *phydev, bool up)
|
|
|
|
+static void phy_link_change(struct phy_device *phydev, bool up, bool do_carrier)
|
|
|
|
{
|
|
|
|
struct net_device *netdev = phydev->attached_dev;
|
|
|
|
|
|
|
|
- if (up)
|
|
|
|
- netif_carrier_on(netdev);
|
|
|
|
- else
|
|
|
|
- netif_carrier_off(netdev);
|
|
|
|
+ if (do_carrier) {
|
|
|
|
+ if (up)
|
|
|
|
+ netif_carrier_on(netdev);
|
|
|
|
+ else
|
|
|
|
+ netif_carrier_off(netdev);
|
|
|
|
+ }
|
|
|
|
phydev->adjust_link(netdev);
|
|
|
|
if (phydev->mii_ts && phydev->mii_ts->link_state)
|
|
|
|
phydev->mii_ts->link_state(phydev->mii_ts, phydev);
|
|
|
|
--- a/drivers/net/phy/phylink.c
|
|
|
|
+++ b/drivers/net/phy/phylink.c
|
kernel: bump 5.15 to 5.15.145
Changelog: https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.15.145
No patches needed a rebase.
23.05 backport:
Rebased patch mediatek/100-dts-update-mt7622-rfb1.patch due to
changes introduced in commit e37aa926447f ("arm64: dts: mediatek:
mt7622: fix memory node warning check") in version v5.15.143 and we
jumped over from v5.15.139 directly to v5.15.145.
Build system: x86_64
Build-tested: ramips/tplink_archer-a6-v3
Run-tested: ramips/tplink_archer-a6-v3
23.05 backport:
Stijn:
Compile-tested: ath79/generic, ipq40xx/generic, mvebu/cortexa72, ramips/mt{7621,7620,76x8}, realtek/rtl{838x,930x}, 86/64.
Run-tested: cortexa72 (RB5009UG+S+IN), mt7621 (EAP615-Wall v1), rtl838x (GS1900-10HP, GS1900-8HP, GS108T v3).
Petr:
Compile-tested: ipq807x, mvebu/cortexa9
Run-tested: turris-omnia, prpl-haze
Tested-by: Stijn Segers <foss@volatilesystems.org> [23.05 testing]
Signed-off-by: John Audia <therealgraysky@proton.me>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [23.05 refresh]
(cherry picked from commit 8de4cc77a6d5c25e48566d0203f159287ac7f3fe)
2023-12-23 11:52:06 +00:00
|
|
|
@@ -1370,7 +1370,8 @@ void phylink_destroy(struct phylink *pl)
|
2022-03-27 19:26:31 +00:00
|
|
|
}
|
|
|
|
EXPORT_SYMBOL_GPL(phylink_destroy);
|
|
|
|
|
|
|
|
-static void phylink_phy_change(struct phy_device *phydev, bool up)
|
|
|
|
+static void phylink_phy_change(struct phy_device *phydev, bool up,
|
|
|
|
+ bool do_carrier)
|
|
|
|
{
|
|
|
|
struct phylink *pl = phydev->phylink;
|
|
|
|
bool tx_pause, rx_pause;
|
|
|
|
--- a/include/linux/phy.h
|
|
|
|
+++ b/include/linux/phy.h
|
2023-06-04 02:26:59 +00:00
|
|
|
@@ -706,7 +706,7 @@ struct phy_device {
|
2022-03-27 19:26:31 +00:00
|
|
|
u8 mdix;
|
|
|
|
u8 mdix_ctrl;
|
|
|
|
|
|
|
|
- void (*phy_link_change)(struct phy_device *phydev, bool up);
|
|
|
|
+ void (*phy_link_change)(struct phy_device *, bool up, bool do_carrier);
|
|
|
|
void (*adjust_link)(struct net_device *dev);
|
|
|
|
|
|
|
|
#if IS_ENABLED(CONFIG_MACSEC)
|