openwrt/target/linux/ath79/patches-5.10/425-at803x-allow-sgmii-aneg-override.patch
Olliver Schinagl ba6096d04b
ath79: Convert incorrect 5.10 and 5.15 patches
OpenWRT's developer guide prefers having actual patches so they an be
sent upstream more easily.

However, in this case, Adding proper fields also allows for `git am` to
properly function. Some of these patches are quite old, and lack much
traceable history.

This commit tries to rectify that, by digging in the history to find
where and how it was first added.

It is by no means perfect and also shows some patches that should have
been long gone.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
2022-10-01 02:47:56 +02:00

33 lines
1.1 KiB
Diff

From: David Bauer <mail@david-bauer.net>
Subject: [PATCH] ath79: allow to override AR8033 SGMII aneg status
In order to make the QCA955x SGMII workaround work, the unsuccessful
SGMII autonegotiation on the AR8033 should not block the PHY
state-machine.
Otherwise, the ag71xx driver never becomes aware of the copper-side
link-establishment and the workaround is never executed.
Submitted-by: David Bauer <mail@david-bauer.net>
Submitted-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
drivers/net/phy/at803x.c-override.patch | 7 +++++++
1 files changed, 7 insertions(+)
--- a/drivers/net/phy/at803x.c
+++ b/drivers/net/phy/at803x.c
@@ -830,6 +830,13 @@ static int at803x_aneg_done(struct phy_d
if (!(phy_read(phydev, AT803X_PSSR) & AT803X_PSSR_MR_AN_COMPLETE)) {
phydev_warn(phydev, "803x_aneg_done: SGMII link is not ok\n");
aneg_done = 0;
+#ifdef CONFIG_OF_MDIO
+ if (phydev->mdio.dev.of_node &&
+ of_property_read_bool(phydev->mdio.dev.of_node,
+ "at803x-override-sgmii-link-check")) {
+ aneg_done = 1;
+ }
+#endif
}
/* switch back to copper page */
phy_write(phydev, AT803X_REG_CHIP_CONFIG, ccr | AT803X_BT_BX_REG_SEL);