[PATCH linux-phy v2 0/4] mvebu a3720 comphy: Fix serdes transmit amplitude

From: Marek Behún
Date: Wed Aug 17 2022 - 16:03:49 EST


Changes since v1:
- fix
static const char * array should probably be static const char * const
warning in patch 2
- fix wrong parameter order to function comphy_find_best_tx_amp()
in patch 3

Original cover letter:

This series adds support for setting serdes transmit amplitude for
ethernet modes (sgmii, 1000base-x, 2500base-x) in the Marvell A3720
comphy driver.

The amplitude is set according to setting in device tree.

Finally the Turris MOX device tree is changed to set the 2500base-x
mode tx amplitude to 1025 mV.

This is needed to fix a weird issue wherein when A3720 sends a packet
to Topaz, and the packet contains a long sequence of 'J's or '\xb5'
bytes (these translate to '010101010101'... in 8b/10b encoding), the
packet may be lost on Topaz due to FCS error. The probability of
loss grows with number of 'J's:

loss
______
100% .-^
/
/
50% /
/
/
0% ______.-^
90 114 125 number of consecutive 'J's

Marek Behún (4):
string.h: Add str_has_proper_prefix()
device property: Add {fwnode/device}_get_tx_p2p_amplitude()
phy: marvell: phy-mvebu-a3700-comphy: Support changing tx amplitude
for ethernet
arm64: dts: armada-3720-turris-mox: Change comphy tx amplitude for
2500base-x mode

.../dts/marvell/armada-3720-turris-mox.dts | 10 ++
drivers/base/property.c | 130 ++++++++++++++++++
drivers/phy/marvell/phy-mvebu-a3700-comphy.c | 109 ++++++++++++++-
include/linux/property.h | 5 +
include/linux/string.h | 18 +++
5 files changed, 271 insertions(+), 1 deletion(-)

--
2.35.1