Subject: Re: [PATCH net-next v9 0/3] ksz87xx: add support for low-loss cable equalizer errata

From: Nicolai Buchwitz <[email-masked]>
Date: Mon, 01 Jun 2026 17:43:27 +0200

Hi Fidelio

On 1.6.2026 17:19, Fidelio Lawson wrote:
> Hello,
> 
> This patch implements the KSZ87xx short cable erratum
> described in Microchip document DS80000687C for KSZ87xx switches
> and the following support article:
> 
> Link: 
> https://support.microchip.com/s/article/Solution-for-Using-CAT-5E-or-CAT-6-Short-Cable-with-a-Link-Issue-for-the-KSZ8795-Family
> 
> According to the erratum, the embedded PHY receiver in KSZ87xx switches 
> is
> tuned by default for long, high-loss Ethernet cables. When operating 
> with
> short or low-loss cables (for example CAT5e or CAT6), the PHY equalizer 
> may
> over-amplify the incoming signal, leading to internal distortion and 
> link
> establishment failures.
> 
> Microchip documents two independent mechanisms to mitigate this issue:
> adjusting the receiver low‑pass filter bandwidth and reducing the DSP
> equalizer initial value. These registers are located in the switch’s
> internal LinkMD table and cannot be accessed directly through a
> stand‑alone PHY driver.
> 
> To keep the PHY‑facing API clean, this series models the erratum 
> handling
> as vendor‑specific Clause 22 PHY registers, virtualized by the KSZ8 DSA
> driver. Accesses are intercepted by ksz8_r_phy() / ksz8_w_phy() and
> translated into the appropriate indirect LinkMD register writes. The
> erratum affects the shared PHY analog front‑end and therefore applies
> globally to the switch.
> 
> Based on review feedback, the user‑visible interface is kept 
> deliberately
> simple and predictable:
> 
> - A boolean “short‑cable” PHY tunable applies a documented and
>   conservative preset (LPF bandwidth 62MHz, DSP EQ initial value 0).
>   This is the recommended KISS interface for the common short‑cable
>   scenario.
> 
> - Two additional integer PHY tunables allow advanced or experimental
>   tuning of the LPF bandwidth and the DSP EQ initial value. These
>   controls are orthogonal, have no ordering requirements, and simply
>   override the corresponding setting when written.
> 
> The tunables act as simple setters with no implicit state machine or
> invalid combinations, avoiding surprises for userspace and not relying
> on extended error reporting or netlink ethtool support.
> 
> This series contains:
> 
>   1. Support for the KSZ87xx low‑loss cable erratum in the KSZ8 DSA 
> driver,
>      including the short‑cable preset and orthogonal tuning controls.
> 
>   2. Addition of vendor‑specific PHY tunable identifiers for the
>      short‑cable preset, LPF bandwidth, and DSP EQ initial value.
> 
>   3. Exposure of these tunables through the Micrel PHY driver via
>      get_tunable / set_tunable callbacks.
> 
> This version follows the design agreed upon during v3 review and
> reworks the interface accordingly.
> 
> This series is based on net-next.
> 
> Signed-off-by: Fidelio Lawson <[email-masked]>
> ---
> Changes in v9:
> - Drop incorrect Fixes tag
> - Fix typo in comment
> - Link to v8: 
> https://patch.msgid.link/[email-masked]

Please don't re-send patched within the 24h grace period as stated in 
the netdev FAQ [1]

Thanks
Nicolai

[1] 
https://www.kernel.org/doc/html/v6.1/process/maintainer-netdev.html#tl-dr