Message ID | b600cb7c389ba737d2d41b20f6376a8c32bb0039.1540204183.git.joabreu@synopsys.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
Series | net: phy: Misc improvements for Generic 10G PHY | expand |
On 10/22/18 3:32 AM, Jose Abreu wrote: > If PHY is in force state and we have a C45 phy we need to use the > standard C45 helpers and not the C22 ones. > > Signed-off-by: Jose Abreu <joabreu@synopsys.com> > Cc: Andrew Lunn <andrew@lunn.ch> > Cc: Florian Fainelli <f.fainelli@gmail.com> > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Joao Pinto <joao.pinto@synopsys.com> > --- > drivers/net/phy/phy.c | 2 +- > include/linux/phy.h | 8 ++++++++ > 2 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c > index 1d73ac3309ce..0ff4946e208e 100644 > --- a/drivers/net/phy/phy.c > +++ b/drivers/net/phy/phy.c > @@ -995,7 +995,7 @@ void phy_state_machine(struct work_struct *work) > } > break; > case PHY_FORCING: > - err = genphy_update_link(phydev); > + err = phy_update_link(phydev); > if (err) > break; > > diff --git a/include/linux/phy.h b/include/linux/phy.h > index 3ea87f774a76..02c2ee8bc05b 100644 > --- a/include/linux/phy.h > +++ b/include/linux/phy.h > @@ -1044,6 +1044,14 @@ static inline int phy_read_status(struct phy_device *phydev) > return genphy_read_status(phydev); > } > > +static inline int phy_update_link(struct phy_device *phydev) > +{ > + if (phydev->is_c45) > + return gen10g_read_status(phydev); Should not this be genphy_c45_read_link() for symmetry with genphy_update_link() which only updates phydev->link?
On 22-10-2018 18:11, Florian Fainelli wrote: > On 10/22/18 3:32 AM, Jose Abreu wrote: >> If PHY is in force state and we have a C45 phy we need to use the >> standard C45 helpers and not the C22 ones. >> >> Signed-off-by: Jose Abreu <joabreu@synopsys.com> >> Cc: Andrew Lunn <andrew@lunn.ch> >> Cc: Florian Fainelli <f.fainelli@gmail.com> >> Cc: "David S. Miller" <davem@davemloft.net> >> Cc: Joao Pinto <joao.pinto@synopsys.com> >> --- >> drivers/net/phy/phy.c | 2 +- >> include/linux/phy.h | 8 ++++++++ >> 2 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c >> index 1d73ac3309ce..0ff4946e208e 100644 >> --- a/drivers/net/phy/phy.c >> +++ b/drivers/net/phy/phy.c >> @@ -995,7 +995,7 @@ void phy_state_machine(struct work_struct *work) >> } >> break; >> case PHY_FORCING: >> - err = genphy_update_link(phydev); >> + err = phy_update_link(phydev); >> if (err) >> break; >> >> diff --git a/include/linux/phy.h b/include/linux/phy.h >> index 3ea87f774a76..02c2ee8bc05b 100644 >> --- a/include/linux/phy.h >> +++ b/include/linux/phy.h >> @@ -1044,6 +1044,14 @@ static inline int phy_read_status(struct phy_device *phydev) >> return genphy_read_status(phydev); >> } >> >> +static inline int phy_update_link(struct phy_device *phydev) >> +{ >> + if (phydev->is_c45) >> + return gen10g_read_status(phydev); > Should not this be genphy_c45_read_link() for symmetry with > genphy_update_link() which only updates phydev->link? Hmmm, genphy_c45_read_link() does not update phydev->link ... I can create a new gen10g_update_link() that wraps around genphy_c45_read_link() and updates link ... Thanks and Best Regards, Jose Miguel Abreu
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index 1d73ac3309ce..0ff4946e208e 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -995,7 +995,7 @@ void phy_state_machine(struct work_struct *work) } break; case PHY_FORCING: - err = genphy_update_link(phydev); + err = phy_update_link(phydev); if (err) break; diff --git a/include/linux/phy.h b/include/linux/phy.h index 3ea87f774a76..02c2ee8bc05b 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -1044,6 +1044,14 @@ static inline int phy_read_status(struct phy_device *phydev) return genphy_read_status(phydev); } +static inline int phy_update_link(struct phy_device *phydev) +{ + if (phydev->is_c45) + return gen10g_read_status(phydev); + else + return genphy_update_link(phydev); +} + void phy_driver_unregister(struct phy_driver *drv); void phy_drivers_unregister(struct phy_driver *drv, int n); int phy_driver_register(struct phy_driver *new_driver, struct module *owner);
If PHY is in force state and we have a C45 phy we need to use the standard C45 helpers and not the C22 ones. Signed-off-by: Jose Abreu <joabreu@synopsys.com> Cc: Andrew Lunn <andrew@lunn.ch> Cc: Florian Fainelli <f.fainelli@gmail.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Joao Pinto <joao.pinto@synopsys.com> --- drivers/net/phy/phy.c | 2 +- include/linux/phy.h | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-)