Re: [PATCH net] net: mdio: mdio-bitbang: Fix C45 read/write protocol

From: Serge Semin
Date: Wed Aug 16 2023 - 16:12:07 EST


On Wed, Aug 16, 2023 at 09:39:37PM +0200, Andrew Lunn wrote:
> On Wed, Aug 16, 2023 at 09:06:52PM +0300, Serge Semin wrote:
> > Based on the original code semantic in case of Clause 45 MDIO, the address
> > command is supposed to be followed by the command sending the MMD address,
> > not the CSR address. The commit 002dd3de097c ("net: mdio: mdio-bitbang:
> > Separate C22 and C45 transactions") has erroneously broken that. So most
> > likely due to an unfortunate variable name it switched the code to sending
> > the CSR address. In our case it caused the protocol malfunction so the
> > read operation always failed with the turnaround bit always been driven to
> > one by PHY instead of zero. Fix that by getting back the correct
> > behaviour: sending MMD address command right after the regular address
> > command.
>

> I'm actually surprised we have not got more reports of me breaking
> MDIO with this patchset. I did test bit-banging, but only for C22.

Yeah, I was also surprised not to find any fixes or reports for more
than a half of year in the mailing list or in the commits log. I was
sitting on 6.4-rc1 when the problem was discovered. Seeing the problem
was easily reproducible I decided to get to the latest kernel before
get to debugging it. It didn't help. The problem remained in 6.5-rc4
too.

>
> > Fixes: 002dd3de097c ("net: mdio: mdio-bitbang: Separate C22 and C45 transactions")
> > Signed-off-by: Serge Semin <fancer.lancer@xxxxxxxxx>
>
> Reviewed-by: Andrew Lunn <andrew@xxxxxxx>

Thanks.

-Serge(y)

>
> Andrew