linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read
@ 2019-02-15 16:17 Paul Kocialkowski
  2019-02-15 16:23 ` Andrew Lunn
  2019-02-16  4:21 ` David Miller
  0 siblings, 2 replies; 5+ messages in thread
From: Paul Kocialkowski @ 2019-02-15 16:17 UTC (permalink / raw)
  To: netdev, linux-arm-kernel, linux-kernel
  Cc: Andrew Lunn, Florian Fainelli, Heiner Kallweit, David S . Miller,
	Michal Simek, Thomas Petazzoni, Paul Kocialkowski

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@bootlin.com>
---
 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);
+	if (priv->phy_drv->read_status)
+		err = priv->phy_drv->read_status(phydev);
+	else
+		err = genphy_read_status(phydev);
 	if (err < 0)
 		return err;
 
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read
  2019-02-15 16:17 [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read Paul Kocialkowski
@ 2019-02-15 16:23 ` Andrew Lunn
  2019-02-15 16:29   ` Paul Kocialkowski
  2019-02-16  4:21 ` David Miller
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2019-02-15 16:23 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: netdev, linux-arm-kernel, linux-kernel, Florian Fainelli,
	Heiner Kallweit, David S . Miller, Michal Simek,
	Thomas Petazzoni

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@bootlin.com>
> ---
>  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()?

	Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read
  2019-02-15 16:23 ` Andrew Lunn
@ 2019-02-15 16:29   ` Paul Kocialkowski
  2019-02-15 17:01     ` Andrew Lunn
  0 siblings, 1 reply; 5+ messages in thread
From: Paul Kocialkowski @ 2019-02-15 16:29 UTC (permalink / raw)
  To: Andrew Lunn
  Cc: netdev, linux-arm-kernel, linux-kernel, Florian Fainelli,
	Heiner Kallweit, David S . Miller, Michal Simek,
	Thomas Petazzoni

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@bootlin.com>
> > ---
> >  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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read
  2019-02-15 16:29   ` Paul Kocialkowski
@ 2019-02-15 17:01     ` Andrew Lunn
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Lunn @ 2019-02-15 17:01 UTC (permalink / raw)
  To: Paul Kocialkowski
  Cc: netdev, linux-arm-kernel, linux-kernel, Florian Fainelli,
	Heiner Kallweit, David S . Miller, Michal Simek,
	Thomas Petazzoni

> > 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.

Ahm, yes. I forgot how this driver works.

     Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read
  2019-02-15 16:17 [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read Paul Kocialkowski
  2019-02-15 16:23 ` Andrew Lunn
@ 2019-02-16  4:21 ` David Miller
  1 sibling, 0 replies; 5+ messages in thread
From: David Miller @ 2019-02-16  4:21 UTC (permalink / raw)
  To: paul.kocialkowski
  Cc: netdev, linux-arm-kernel, linux-kernel, andrew, f.fainelli,
	hkallweit1, michal.simek, thomas.petazzoni

From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
Date: Fri, 15 Feb 2019 17:17:08 +0100

> 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@bootlin.com>

Applied, thanks.

Unfortunately I only noticed your updated version with the Fixes tag
after pushing this version out.  I'll be more careful next time :)

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2019-02-16  4:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-15 16:17 [PATCH] net: phy: xgmiitorgmii: Support generic PHY status read Paul Kocialkowski
2019-02-15 16:23 ` Andrew Lunn
2019-02-15 16:29   ` Paul Kocialkowski
2019-02-15 17:01     ` Andrew Lunn
2019-02-16  4:21 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).