* [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay
@ 2023-03-23 10:25 Josua Mayer
2023-03-23 16:30 ` Simon Horman
2023-03-24 22:00 ` patchwork-bot+netdevbpf
0 siblings, 2 replies; 3+ messages in thread
From: Josua Mayer @ 2023-03-23 10:25 UTC (permalink / raw)
To: netdev
Cc: Josua Mayer, Yazan Shhady, Andrew Lunn, Heiner Kallweit,
Russell King, David S. Miller, Eric Dumazet, Jakub Kicinski,
Paolo Abeni
dp83869 internally uses a look-up table for mapping supported delays in
nanoseconds to register values.
When specific delays are defined in device-tree, phy_get_internal_delay
does the lookup automatically returning an index.
The default case wrongly assigns the nanoseconds value from the lookup
table, resulting in numeric value 2000 applied to delay configuration
register, rather than the expected index values 0-7 (7 for 2000).
Ultimately this issue broke RX for 1Gbps links.
Fix default delay configuration by assigning the intended index value
directly.
Co-developed-by: Yazan Shhady <yazan.shhady@solid-run.com>
Signed-off-by: Yazan Shhady <yazan.shhady@solid-run.com>
Signed-off-by: Josua Mayer <josua@solid-run.com>
---
drivers/net/phy/dp83869.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
index b4ff9c5073a3c..9ab5eff502b71 100644
--- a/drivers/net/phy/dp83869.c
+++ b/drivers/net/phy/dp83869.c
@@ -588,15 +588,13 @@ static int dp83869_of_init(struct phy_device *phydev)
&dp83869_internal_delay[0],
delay_size, true);
if (dp83869->rx_int_delay < 0)
- dp83869->rx_int_delay =
- dp83869_internal_delay[DP83869_CLK_DELAY_DEF];
+ dp83869->rx_int_delay = DP83869_CLK_DELAY_DEF;
dp83869->tx_int_delay = phy_get_internal_delay(phydev, dev,
&dp83869_internal_delay[0],
delay_size, false);
if (dp83869->tx_int_delay < 0)
- dp83869->tx_int_delay =
- dp83869_internal_delay[DP83869_CLK_DELAY_DEF];
+ dp83869->tx_int_delay = DP83869_CLK_DELAY_DEF;
return ret;
}
--
2.35.3
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay
2023-03-23 10:25 [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay Josua Mayer
@ 2023-03-23 16:30 ` Simon Horman
2023-03-24 22:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: Simon Horman @ 2023-03-23 16:30 UTC (permalink / raw)
To: Josua Mayer
Cc: netdev, Yazan Shhady, Andrew Lunn, Heiner Kallweit, Russell King,
David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni
On Thu, Mar 23, 2023 at 12:25:36PM +0200, Josua Mayer wrote:
> dp83869 internally uses a look-up table for mapping supported delays in
> nanoseconds to register values.
> When specific delays are defined in device-tree, phy_get_internal_delay
> does the lookup automatically returning an index.
>
> The default case wrongly assigns the nanoseconds value from the lookup
> table, resulting in numeric value 2000 applied to delay configuration
> register, rather than the expected index values 0-7 (7 for 2000).
> Ultimately this issue broke RX for 1Gbps links.
>
> Fix default delay configuration by assigning the intended index value
> directly.
>
> Co-developed-by: Yazan Shhady <yazan.shhady@solid-run.com>
> Signed-off-by: Yazan Shhady <yazan.shhady@solid-run.com>
> Signed-off-by: Josua Mayer <josua@solid-run.com>
I wonder if this warrants:
Cc: stable@vger.kernel.org
736b25afe284 ("net: dp83869: Add RGMII internal delay configuration")
And being targeted at 'net' ([PATCH net] in subject).
In any case, the fix seems correct to me.
Reviewed-by: Simon Horman <simon.horman@corigine.com>
> ---
> drivers/net/phy/dp83869.c | 6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
> index b4ff9c5073a3c..9ab5eff502b71 100644
> --- a/drivers/net/phy/dp83869.c
> +++ b/drivers/net/phy/dp83869.c
> @@ -588,15 +588,13 @@ static int dp83869_of_init(struct phy_device *phydev)
> &dp83869_internal_delay[0],
> delay_size, true);
> if (dp83869->rx_int_delay < 0)
> - dp83869->rx_int_delay =
> - dp83869_internal_delay[DP83869_CLK_DELAY_DEF];
> + dp83869->rx_int_delay = DP83869_CLK_DELAY_DEF;
>
> dp83869->tx_int_delay = phy_get_internal_delay(phydev, dev,
> &dp83869_internal_delay[0],
> delay_size, false);
> if (dp83869->tx_int_delay < 0)
> - dp83869->tx_int_delay =
> - dp83869_internal_delay[DP83869_CLK_DELAY_DEF];
> + dp83869->tx_int_delay = DP83869_CLK_DELAY_DEF;
>
> return ret;
> }
> --
> 2.35.3
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay
2023-03-23 10:25 [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay Josua Mayer
2023-03-23 16:30 ` Simon Horman
@ 2023-03-24 22:00 ` patchwork-bot+netdevbpf
1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-03-24 22:00 UTC (permalink / raw)
To: Josua Mayer
Cc: netdev, yazan.shhady, andrew, hkallweit1, linux, davem, edumazet,
kuba, pabeni
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 23 Mar 2023 12:25:36 +0200 you wrote:
> dp83869 internally uses a look-up table for mapping supported delays in
> nanoseconds to register values.
> When specific delays are defined in device-tree, phy_get_internal_delay
> does the lookup automatically returning an index.
>
> The default case wrongly assigns the nanoseconds value from the lookup
> table, resulting in numeric value 2000 applied to delay configuration
> register, rather than the expected index values 0-7 (7 for 2000).
> Ultimately this issue broke RX for 1Gbps links.
>
> [...]
Here is the summary with links:
- net: phy: dp83869: fix default value for tx-/rx-internal-delay
https://git.kernel.org/netdev/net/c/82e2c39f9ef7
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-03-24 22:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-23 10:25 [PATCH] net: phy: dp83869: fix default value for tx-/rx-internal-delay Josua Mayer
2023-03-23 16:30 ` Simon Horman
2023-03-24 22:00 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).