Message ID | 20230627091109.3374701-1-vladimir.oltean@nxp.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] net: phy: mscc: fix packet loss due to RGMII delays | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net |
netdev/apply | fail | Patch does not apply to net |
> -----Original Message----- > From: Vladimir Oltean <vladimir.oltean@nxp.com> > Sent: Tuesday, June 27, 2023 2:41 PM > To: netdev@vger.kernel.org > Cc: Jose Abreu <Jose.Abreu@synopsys.com>; Andrew Lunn > <andrew@lunn.ch>; Heiner Kallweit <hkallweit1@gmail.com>; Russell King > <linux@armlinux.org.uk>; David S. Miller <davem@davemloft.net>; Eric > Dumazet <edumazet@google.com>; Jakub Kicinski <kuba@kernel.org>; Paolo > Abeni <pabeni@redhat.com>; linux-kernel@vger.kernel.org; Katakam, Harini > <harini.katakam@amd.com> > Subject: [PATCH net] net: phy: mscc: fix packet loss due to RGMII delays > > Two deadly typos break RX and TX traffic on the VSC8502 PHY using RGMII > if phy-mode = "rgmii-id" or "rgmii-txid", and no "tx-internal-delay-ps" > override exists. The negative error code from phy_get_internal_delay() > does not get overridden with the delay deduced from the phy-mode, and > later gets committed to hardware. Also, the rx_delay gets overridden by > what should have been the tx_delay. > > Fixes: dbb050d2bfc8 ("phy: mscc: Add support for RGMII delay > configuration") > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Thanks Reviewed-by: Harini Katakam <harini.katakam@amd.com> Regards, Harini
On Tue, Jun 27, 2023 at 12:11:09PM +0300, Vladimir Oltean wrote: > Two deadly typos break RX and TX traffic on the VSC8502 PHY using RGMII > if phy-mode = "rgmii-id" or "rgmii-txid", and no "tx-internal-delay-ps" > override exists. The negative error code from phy_get_internal_delay() > does not get overridden with the delay deduced from the phy-mode, and > later gets committed to hardware. Also, the rx_delay gets overridden by > what should have been the tx_delay. > > Fixes: dbb050d2bfc8 ("phy: mscc: Add support for RGMII delay configuration") > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> > --- I may have mis-targeted this patch towards "net" while the "net-next" pull request has not been yet sent out. Can patchwork be instructed to re-run the tests on net-next?
On Tue, 2023-06-27 at 15:13 +0300, Vladimir Oltean wrote: > On Tue, Jun 27, 2023 at 12:11:09PM +0300, Vladimir Oltean wrote: > > Two deadly typos break RX and TX traffic on the VSC8502 PHY using RGMII > > if phy-mode = "rgmii-id" or "rgmii-txid", and no "tx-internal-delay-ps" > > override exists. The negative error code from phy_get_internal_delay() > > does not get overridden with the delay deduced from the phy-mode, and > > later gets committed to hardware. Also, the rx_delay gets overridden by > > what should have been the tx_delay. > > > > Fixes: dbb050d2bfc8 ("phy: mscc: Add support for RGMII delay configuration") > > Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> > > --- > > I may have mis-targeted this patch towards "net" while the "net-next" > pull request has not been yet sent out. Can patchwork be instructed to > re-run the tests on net-next? I'm not 110% sure, but I think you have to re-send the patch with a different prefix to achieve the above. Cheers, Paolo >
diff --git a/drivers/net/phy/mscc/mscc_main.c b/drivers/net/phy/mscc/mscc_main.c index 669a4a7a28ce..4171f01d34e5 100644 --- a/drivers/net/phy/mscc/mscc_main.c +++ b/drivers/net/phy/mscc/mscc_main.c @@ -563,9 +563,9 @@ static int vsc85xx_update_rgmii_cntl(struct phy_device *phydev, u32 rgmii_cntl, if (tx_delay < 0) { if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID || phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) - rx_delay = RGMII_CLK_DELAY_2_0_NS; + tx_delay = RGMII_CLK_DELAY_2_0_NS; else - rx_delay = RGMII_CLK_DELAY_0_2_NS; + tx_delay = RGMII_CLK_DELAY_0_2_NS; } reg_val |= rx_delay << rgmii_rx_delay_pos;
Two deadly typos break RX and TX traffic on the VSC8502 PHY using RGMII if phy-mode = "rgmii-id" or "rgmii-txid", and no "tx-internal-delay-ps" override exists. The negative error code from phy_get_internal_delay() does not get overridden with the delay deduced from the phy-mode, and later gets committed to hardware. Also, the rx_delay gets overridden by what should have been the tx_delay. Fixes: dbb050d2bfc8 ("phy: mscc: Add support for RGMII delay configuration") Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> --- drivers/net/phy/mscc/mscc_main.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)