Subject: Re: [PATCH next-next] net: phy: realtek: add support for rtl8224 2.5Gbps PHY

From: Marek Behún <[email-masked]>
Date: Fri, 14 Jun 2024 10:25:58 +0200

On Fri, 14 Jun 2024 10:18:47 +0200
Paolo Abeni <[email-masked]> wrote:

> On Wed, 2024-06-12 at 09:07 +0200, Marek Behún wrote:
> > On Tue, 11 Jun 2024 20:42:43 +0000
> > Chris Packham <[email-masked]> wrote:
> >   
> > > +cc Eric W and Marek.
> > > 
> > > On 11/06/24 17:34, Chris Packham wrote:  
> > > > The Realtek RTL8224 PHY is a 2.5Gbps capable PHY. It only uses the
> > > > clause 45 MDIO interface and can leverage the support that has already
> > > > been added for the other 822x PHYs.
> > > > 
> > > > Signed-off-by: Chris Packham <[email-masked]>
> > > > ---
> > > > 
> > > > Notes:
> > > >      I'm currently testing this on an older kernel because the board I'm
> > > >      using has a SOC/DSA switch that has a driver in openwrt for Linux 5.15.
> > > >      I have tried to selectively back port the bits I need from the other
> > > >      rtl822x work so this should be all that is required for the rtl8224.
> > > >      
> > > >      There's quite a lot that would need forward porting get a working system
> > > >      against a current kernel so hopefully this is small enough that it can
> > > >      land while I'm trying to figure out how to untangle all the other bits.
> > > >      
> > > >      One thing that may appear lacking is the lack of rate_matching support.
> > > >      According to the documentation I have know the interface used on the
> > > >      RTL8224 is (q)uxsgmii so no rate matching is required. As I'm still
> > > >      trying to get things completely working that may change if I get new
> > > >      information.
> > > > 
> > > >   drivers/net/phy/realtek.c | 8 ++++++++
> > > >   1 file changed, 8 insertions(+)
> > > > 
> > > > diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
> > > > index 7ab41f95dae5..2174893c974f 100644
> > > > --- a/drivers/net/phy/realtek.c
> > > > +++ b/drivers/net/phy/realtek.c
> > > > @@ -1317,6 +1317,14 @@ static struct phy_driver realtek_drvs[] = {
> > > >   		.resume         = rtlgen_resume,
> > > >   		.read_page      = rtl821x_read_page,
> > > >   		.write_page     = rtl821x_write_page,
> > > > +	}, {
> > > > +		PHY_ID_MATCH_EXACT(0x001ccad0),
> > > > +		.name		= "RTL8224 2.5Gbps PHY",
> > > > +		.get_features   = rtl822x_c45_get_features,
> > > > +		.config_aneg    = rtl822x_c45_config_aneg,
> > > > +		.read_status    = rtl822x_c45_read_status,
> > > > +		.suspend        = genphy_c45_pma_suspend,
> > > > +		.resume         = rtlgen_c45_resume,
> > > >   	}, {
> > > >   		PHY_ID_MATCH_EXACT(0x001cc961),
> > > >   		.name		= "RTL8366RB Gigabit Ethernet"    
> > 
> > Don't you need rtl822xb_config_init for serdes configuration?  
> 
> Marek, I read the above as you would prefer to have such support
> included from the beginning, as such I'm looking forward a new version
> of this patch.
> 
> Please raise a hand if I read too much in your reply.

I am raising my hand :) I just wanted to point it out.
If this code works for Chris' hardware, it is okay even without the
.config_init.

Marek