Re: [PATCH net-next v7 1/3] net: dsa: microchip: implement KSZ87xx Module 3 low-loss cable errata
From: Nicolai Buchwitz
Date: Thu May 28 2026 - 03:19:32 EST
Hi Fidelio
On 24.5.2026 12:44, Fidelio Lawson wrote:
Implement the "Module 3: Equalizer fix for short cables" erratum from
Microchip document DS80000687C for KSZ87xx switches.
The commit message says this implements Module 3 from DS80000687C, but
the errata's Work Around 1 writes 0x15 to indirect register 0x3C
("PHY equalizer register"), and the patch never touches 0x3C. Could you
please clarify which document the register addresses
(KSZ87XX_REG_DSP_EQ = 0x08, KSZ87XX_REG_PHY_LPF = 0x4C) come from?
I checked against the the following document:
https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/Errata/KSZ87xx-Errata-DS80000687C.pdf
[...]
+static int ksz87xx_apply_low_loss_preset(struct ksz_device *dev, bool enable)
+{
+ /* Apply the Microchip erratum short-cable preset (LPF 62 MHz, EQ init 0)
+ * providing a conservative configuration for short or low-loss cables.
+ */
+ u8 lpf_bw, eq_init;
+ int ret;
+
+ lpf_bw = KSZ87XX_PHY_LPF_62MHZ;
+ eq_init = KSZ87XX_DSP_EQ_INIT_LOW_LOSS;
+
+ if (!ksz_is_ksz87xx(dev))
+ return -EOPNOTSUPP;
+
+ if (!enable)
+ return 0;
This silently returns when enable = false and nothing is written to the registers.
Either I'm missing something or the short-cable preset cannot be cleared through this tunable?
[...]
Thanks
Nicolai