Re: [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read

From: Paul Kocialkowski
Date: Fri Feb 15 2019 - 11:29:36 EST


Hi,

On Fri, 2019-02-15 at 17:23 +0100, Andrew Lunn wrote:
> On Fri, Feb 15, 2019 at 05:17:08PM +0100, Paul Kocialkowski wrote:
> > Some PHY drivers like the generic one do not provide a read_status
> > callback on their own but rely on genphy_read_status being called
> > directly.
> >
> > With the current code, this results in a NULL function pointer call.
> > Call genphy_read_status instead when there is no specific callback.
> >
> > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx>
> > ---
> > drivers/net/phy/xilinx_gmii2rgmii.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/phy/xilinx_gmii2rgmii.c b/drivers/net/phy/xilinx_gmii2rgmii.c
> > index 74a8782313cf..bd6084e315de 100644
> > --- a/drivers/net/phy/xilinx_gmii2rgmii.c
> > +++ b/drivers/net/phy/xilinx_gmii2rgmii.c
> > @@ -44,7 +44,10 @@ static int xgmiitorgmii_read_status(struct phy_device *phydev)
> > u16 val = 0;
> > int err;
> >
> > - err = priv->phy_drv->read_status(phydev);
>
> Hi Paul
>
> How about using phy_read_status()?

Thanks fo rthe suggestion! Though I don't that would work here since
our priv->phy_drv != phydev->drv, so it looks like we need to be
breaking it down in the driver.

I suppose this driver is a bit unusual since it represents a GMII to
RGMII bridge, so it's not actually a PHY driver on its own -- it just
sticks itself in between the actual PHY and the MAC.

Cheers,

Paul

--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com