Message ID | 1390975218-13863-2-git-send-email-jcmvbkbc@gmail.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
2014-01-28 Max Filippov <jcmvbkbc@gmail.com>: > Many network drivers directly modify phy_device::advertising and > phy_device::supported. Provide accessors to these fields to better > isolate phylib from its users. > > Suggested-by: Ben Hutchings <ben@decadent.org.uk> > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> After giving some more thought to this patch, I am not sure this really adds anything, struct phy_device is already exposed to drivers, and those drivers have been able to modify phydev->supported and phydev->advertising to suit their needs. > --- > Changes v1->v2: > - new patch > > include/linux/phy.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/include/linux/phy.h b/include/linux/phy.h > index 48a4dc3..2ae58f8 100644 > --- a/include/linux/phy.h > +++ b/include/linux/phy.h > @@ -559,6 +559,18 @@ static inline int phy_read_status(struct phy_device *phydev) { > return phydev->drv->read_status(phydev); > } > > +static inline void phy_update_advert(struct phy_device *phydev, u32 clear, > + u32 set) > +{ > + phydev->advertising = (phydev->advertising & ~clear) | set; > +} > + > +static inline void phy_update_supported(struct phy_device *phydev, u32 clear, > + u32 set) > +{ > + phydev->supported = (phydev->supported & ~clear) | set; > +} > + > int genphy_setup_forced(struct phy_device *phydev); > int genphy_restart_aneg(struct phy_device *phydev); > int genphy_config_aneg(struct phy_device *phydev); > -- > 1.8.1.4 >
diff --git a/include/linux/phy.h b/include/linux/phy.h index 48a4dc3..2ae58f8 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -559,6 +559,18 @@ static inline int phy_read_status(struct phy_device *phydev) { return phydev->drv->read_status(phydev); } +static inline void phy_update_advert(struct phy_device *phydev, u32 clear, + u32 set) +{ + phydev->advertising = (phydev->advertising & ~clear) | set; +} + +static inline void phy_update_supported(struct phy_device *phydev, u32 clear, + u32 set) +{ + phydev->supported = (phydev->supported & ~clear) | set; +} + int genphy_setup_forced(struct phy_device *phydev); int genphy_restart_aneg(struct phy_device *phydev); int genphy_config_aneg(struct phy_device *phydev);
Many network drivers directly modify phy_device::advertising and phy_device::supported. Provide accessors to these fields to better isolate phylib from its users. Suggested-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> --- Changes v1->v2: - new patch include/linux/phy.h | 12 ++++++++++++ 1 file changed, 12 insertions(+)