2023-01-09 21:33:02

by Jerry Ray

[permalink] [raw]
Subject: [PATCH net-next v6 5/6] dsa: lan9303: Port 0 is xMII port

In preparing to move the adjust_link logic into the phylink_mac_link_up
api, change the macro used to check for the cpu port. In
phylink_mac_link_up, the phydev pointer passed in for the CPU port is
NULL, so we can't keep using phy_is_pseudo_fixed_link(phydev).

Signed-off-by: Jerry Ray <[email protected]>
---
v5->v6:
Using port 0 to identify the xMII port on the LAN9303.
---
drivers/net/dsa/lan9303-core.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
index 792ce6a26a6a..7be4c491e5d9 100644
--- a/drivers/net/dsa/lan9303-core.c
+++ b/drivers/net/dsa/lan9303-core.c
@@ -1063,7 +1063,11 @@ static void lan9303_adjust_link(struct dsa_switch *ds, int port,
{
int ctl;

- if (!phy_is_pseudo_fixed_link(phydev))
+ /* On this device, we are only interested in doing something here if
+ * this is an xMII port. All other ports are 10/100 phys using MDIO
+ * to control there link settings.
+ */
+ if (port != 0)
return;

ctl = lan9303_phy_read(ds, port, MII_BMCR);
--
2.17.1


2023-01-14 21:09:17

by Vladimir Oltean

[permalink] [raw]
Subject: Re: [PATCH net-next v6 5/6] dsa: lan9303: Port 0 is xMII port

On Mon, Jan 09, 2023 at 03:18:48PM -0600, Jerry Ray wrote:
> In preparing to move the adjust_link logic into the phylink_mac_link_up
> api, change the macro used to check for the cpu port. In
> phylink_mac_link_up, the phydev pointer passed in for the CPU port is
> NULL, so we can't keep using phy_is_pseudo_fixed_link(phydev).
>
> Signed-off-by: Jerry Ray <[email protected]>
> ---
> v5->v6:
> Using port 0 to identify the xMII port on the LAN9303.
> ---
> drivers/net/dsa/lan9303-core.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
> index 792ce6a26a6a..7be4c491e5d9 100644
> --- a/drivers/net/dsa/lan9303-core.c
> +++ b/drivers/net/dsa/lan9303-core.c
> @@ -1063,7 +1063,11 @@ static void lan9303_adjust_link(struct dsa_switch *ds, int port,
> {
> int ctl;
>
> - if (!phy_is_pseudo_fixed_link(phydev))
> + /* On this device, we are only interested in doing something here if
> + * this is an xMII port. All other ports are 10/100 phys using MDIO
> + * to control there link settings.
> + */
> + if (port != 0)

Maybe a macro LAN9303_XMII_PORT would be good, if it was also
consistently used in lan9303_setup()?

> return;
>
> ctl = lan9303_phy_read(ds, port, MII_BMCR);
> --
> 2.17.1
>

2023-01-16 18:27:03

by Jerry Ray

[permalink] [raw]
Subject: RE: [PATCH net-next v6 5/6] dsa: lan9303: Port 0 is xMII port

> > In preparing to move the adjust_link logic into the phylink_mac_link_up
> > api, change the macro used to check for the cpu port. In
> > phylink_mac_link_up, the phydev pointer passed in for the CPU port is
> > NULL, so we can't keep using phy_is_pseudo_fixed_link(phydev).
> >
> > Signed-off-by: Jerry Ray <[email protected]>
> > ---
> > v5->v6:
> > Using port 0 to identify the xMII port on the LAN9303.
> > ---
> > drivers/net/dsa/lan9303-core.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
> > index 792ce6a26a6a..7be4c491e5d9 100644
> > --- a/drivers/net/dsa/lan9303-core.c
> > +++ b/drivers/net/dsa/lan9303-core.c
> > @@ -1063,7 +1063,11 @@ static void lan9303_adjust_link(struct dsa_switch *ds, int port,
> > {
> > int ctl;
> >
> > - if (!phy_is_pseudo_fixed_link(phydev))
> > + /* On this device, we are only interested in doing something here if
> > + * this is an xMII port. All other ports are 10/100 phys using MDIO
> > + * to control there link settings.
> > + */
> > + if (port != 0)
>
> Maybe a macro LAN9303_XMII_PORT would be good, if it was also
> consistently used in lan9303_setup()?
>

Agreed. As I add more devices that have different capabilities, this will
change. I was hesitant to add this logic now as it is uncalled for until
multiple device types are supported by the driver.

> > return;
> >
> > ctl = lan9303_phy_read(ds, port, MII_BMCR);
> > --
> > 2.17.1
> >