mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
40842167d2
Refreshed all patches. Compile-tested on: cns3xxx Runtime-tested on: cns3xxx Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
28 lines
966 B
Diff
28 lines
966 B
Diff
Until upstream commit 6d4cd041f0af("net: phy: at803x: disable delay
|
|
only for RGMII mode"), delays were not disabled on driver probe
|
|
for the Atheros AR803x PHYs, although the RX delay is enabled on
|
|
soft and hard reset.
|
|
|
|
In addition, the TX delay setting is retained on soft-reset.
|
|
|
|
This patch disables both delays on config init to align the behavior
|
|
with kernel 5.1 and higher. It can be safely dropped with kernel 5.1.
|
|
|
|
--- a/drivers/net/phy/at803x.c
|
|
+++ b/drivers/net/phy/at803x.c
|
|
@@ -279,6 +279,14 @@ static int at803x_config_init(struct phy
|
|
if (ret < 0)
|
|
return ret;
|
|
|
|
+ /* Disable RX delay */
|
|
+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_0,
|
|
+ AT803X_DEBUG_RX_CLK_DLY_EN, 0);
|
|
+
|
|
+ /* Disable TX delay */
|
|
+ at803x_debug_reg_mask(phydev, AT803X_DEBUG_REG_5,
|
|
+ AT803X_DEBUG_TX_CLK_DLY_EN, 0);
|
|
+
|
|
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID ||
|
|
phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) {
|
|
ret = at803x_enable_rx_delay(phydev);
|