aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
diff options
context:
space:
mode:
authorDavid Bauer <mail@david-bauer.net>2021-06-04 15:12:14 +0200
committerDavid Bauer <mail@david-bauer.net>2021-06-08 00:38:28 +0200
commit15167671b0d7cf0c95568dd6f9620db082df5d96 (patch)
tree2f282fa98f8329b63d8a63395a5ce18d8038d8b3 /target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
parent1412424fc51209480fa4efed9f3f0badc6dcab09 (diff)
downloadupstream-15167671b0d7cf0c95568dd6f9620db082df5d96.tar.gz
upstream-15167671b0d7cf0c95568dd6f9620db082df5d96.tar.bz2
upstream-15167671b0d7cf0c95568dd6f9620db082df5d96.zip
generic: backport at803x fixes
As patches for the AR8031/AR8033 copper page selection were merged upstream, we can backport these patches. This also fixes a PHY capabilities detection issue on the Ubiquiti ER-X-SFP. Signed-off-by: David Bauer <mail@david-bauer.net>
Diffstat (limited to 'target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch')
-rw-r--r--target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch51
1 files changed, 0 insertions, 51 deletions
diff --git a/target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch b/target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
deleted file mode 100644
index b063b10251..0000000000
--- a/target/linux/generic/pending-5.10/735-net-phy-at803x-fix-at8033-sgmii-mode.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From: Roman Yeryomin <roman@advem.lv>
-Subject: kernel: add at803x fix for sgmii mode
-
-Some (possibly broken) bootloaders incorreclty initialize at8033
-phy. This patch enables sgmii autonegotiation mode.
-
-[john@phrozen.org: felix added this to his upstream queue]
-
-Signed-off-by: Roman Yeryomin <roman@advem.lv>
----
- drivers/net/phy/at803x.c | 25 +++++++++++++++++++++++++
- 1 file changed, 25 insertions(+)
-
---- a/drivers/net/phy/at803x.c
-+++ b/drivers/net/phy/at803x.c
-@@ -76,6 +76,7 @@
- #define AT803X_LOC_MAC_ADDR_32_47_OFFSET 0x804A
- #define AT803X_REG_CHIP_CONFIG 0x1f
- #define AT803X_BT_BX_REG_SEL 0x8000
-+#define AT803X_SGMII_ANEG_EN 0x1000
-
- #define AT803X_DEBUG_ADDR 0x1D
- #define AT803X_DEBUG_DATA 0x1E
-@@ -562,6 +563,27 @@ static int at8031_pll_config(struct phy_
- static int at803x_config_init(struct phy_device *phydev)
- {
- int ret;
-+ u32 v;
-+
-+ if (phydev->drv->phy_id == ATH8031_PHY_ID &&
-+ phydev->interface == PHY_INTERFACE_MODE_SGMII)
-+ {
-+ v = phy_read(phydev, AT803X_REG_CHIP_CONFIG);
-+ /* select SGMII/fiber page */
-+ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG,
-+ v & ~AT803X_BT_BX_REG_SEL);
-+ if (ret)
-+ return ret;
-+ /* enable SGMII autonegotiation */
-+ ret = phy_write(phydev, MII_BMCR, AT803X_SGMII_ANEG_EN);
-+ if (ret)
-+ return ret;
-+ /* select copper page */
-+ ret = phy_write(phydev, AT803X_REG_CHIP_CONFIG,
-+ v | AT803X_BT_BX_REG_SEL);
-+ if (ret)
-+ return ret;
-+ }
-
- /* The RX and TX delay default is:
- * after HW reset: RX delay enabled and TX delay disabled