Re: [PATCH] net: phy: realtek: Add RTL8224 cable testing support

From: Andrew Lunn

Date: Mon Oct 27 2025 - 08:05:00 EST


On Mon, Oct 27, 2025 at 08:49:36AM +0100, Sven Eckelmann wrote:
> On Monday, 27 October 2025 01:16:12 CET Andrew Lunn wrote:
> > > +#define RTL8224_SRAM_RTCT_FAULT_BUSY BIT(0)
> > > +#define RTL8224_SRAM_RTCT_FAULT_OPEN BIT(3)
> > > +#define RTL8224_SRAM_RTCT_FAULT_SAME_SHORT BIT(4)
> > > +#define RTL8224_SRAM_RTCT_FAULT_OK BIT(5)
> > > +#define RTL8224_SRAM_RTCT_FAULT_DONE BIT(6)
> > > +#define RTL8224_SRAM_RTCT_FAULT_CROSS_SHORT BIT(7)
> >
> > It is unusual these are bits. Does the datasheet say what happens if
> > the cable is both same short and cross short?
>
> Unfortunately, the datasheet doesn't say anything about cable tests.
>
> >
> > > +static int rtl8224_cable_test_result_trans(u32 result)
> > > +{
> > > + if (result & RTL8224_SRAM_RTCT_FAULT_SAME_SHORT)
> > > + return ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT;
> > > +
> > > + if (result & RTL8224_SRAM_RTCT_FAULT_BUSY)
> > > + return ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC;
> > > +
> > > + if (result & RTL8224_SRAM_RTCT_FAULT_CROSS_SHORT)
> > > + return ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT;
> >
> > I don't remember seeing a PHY able to report both same short and cross
> > short at the same time. Maybe there has been, but there is no code for
> > it. We could add such a code.
>
> I've tried it a couple of times (with shorts at different lengths) but was not
> able to do this. For me, it looks like the RTL8224 can represent these faults
> in parallel but not actual detect them in parallel.

O.K. Thanks for the explanation. The code is good as it is.

Reviewed-by: Andrew Lunn <andrew@xxxxxxx>

Andrew