Skip to content

Commit

Permalink
ipq40xx: 5.15: fix ar40xx driver
Browse files Browse the repository at this point in the history
Also apply commit ab7e53e ("ipq40xx: 5.10: fix ar40xx driver") to
5.15 driver.

The commit fixes the data corruption on TX packets. Packets are
transmitted, but their contents are replaced with zeros. This error is
caused by the lack of guard (50 ms) intervals between calibration phases.
This error is treated by adding mdelay(50) to the calibration function
code. In the original qca-ssda code, these mdelays were existing, but in
the ar41xx.c they are gone.

Fixes: 87318eb ("ipq40xx: 5:15: copy config and patch from 5.10")

Signed-off-by: Nick Hainke <vincent@systemli.org>
  • Loading branch information
PolynomialDivision authored and mans0n committed May 5, 2022
1 parent b697b5c commit 1526cce
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions target/linux/ipq40xx/files-5.15/drivers/net/mdio/ar40xx.c
Expand Up @@ -936,6 +936,7 @@ ar40xx_malibu_psgmii_ess_reset(struct ar40xx_priv *priv)
*/
mdelay(2);
}
mdelay(50);

/*check malibu psgmii calibration done end..*/

Expand All @@ -954,13 +955,15 @@ ar40xx_malibu_psgmii_ess_reset(struct ar40xx_priv *priv)
/* Polling interval to check PSGMII PLL in ESS is ready */
mdelay(2);
}
mdelay(50);

/* check dakota psgmii calibration done end..*/

/* relesae phy psgmii RX CDR */
mdiobus_write(bus, 5, 0x1a, 0x3230);
/* release phy psgmii RX 20bit */
mdiobus_write(bus, 5, 0x0, 0x005f);
mdelay(200);
}

static void
Expand Down

0 comments on commit 1526cce

Please sign in to comment.