diff mbox series

[OpenWrt-Devel] ath79: disable delays on AT803X config init

Message ID 20191024131324.302958-1-mail@david-bauer.net
State Accepted
Delegated to: David Bauer
Headers show
Series [OpenWrt-Devel] ath79: disable delays on AT803X config init | expand

Commit Message

David Bauer Oct. 24, 2019, 1:13 p.m. UTC
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.

Signed-off-by: David Bauer <mail@david-bauer.net>
---
 .../0038-at803x-disable-delays.patch          | 27 +++++++++++++++++++
 .../0038-at803x-disable-delays.patch          | 27 +++++++++++++++++++
 2 files changed, 54 insertions(+)
 create mode 100644 target/linux/ath79/patches-4.14/0038-at803x-disable-delays.patch
 create mode 100644 target/linux/ath79/patches-4.19/0038-at803x-disable-delays.patch

Comments

John Crispin Oct. 24, 2019, 9:09 p.m. UTC | #1
On 24/10/2019 15:13, David Bauer wrote:
> ++	// Disable RX delay
Hi,
please use /* comments */
	John
diff mbox series

Patch

diff --git a/target/linux/ath79/patches-4.14/0038-at803x-disable-delays.patch b/target/linux/ath79/patches-4.14/0038-at803x-disable-delays.patch
new file mode 100644
index 0000000000..be291adc0b
--- /dev/null
+++ b/target/linux/ath79/patches-4.14/0038-at803x-disable-delays.patch
@@ -0,0 +1,27 @@ 
+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
+@@ -320,6 +320,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);
diff --git a/target/linux/ath79/patches-4.19/0038-at803x-disable-delays.patch b/target/linux/ath79/patches-4.19/0038-at803x-disable-delays.patch
new file mode 100644
index 0000000000..083ba9bb8a
--- /dev/null
+++ b/target/linux/ath79/patches-4.19/0038-at803x-disable-delays.patch
@@ -0,0 +1,27 @@ 
+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
+@@ -295,6 +295,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);