> +static int phy_set_inband_ext(struct phy_device *phydev, u32 mask, u32 ext) > +{ > +/* > + * TODO : Doc > + */ > +enum { > + __PHY_INBAND_EXT_PCH = 0, > +}; I'm not so happy with this API passing masks and values, when you are actually dealing with a feature which is a boolean, exists, does not exist. > +int phy_inband_ext_enable(struct phy_device *phydev, u32 ext); > +int phy_inband_ext_disable(struct phy_device *phydev, u32 ext); I would prefer enum phy_inband_ext ext; phy_inband_ext_set_available(struct phy_device *phydev, enum phy_inband_ext ext); and add phy_inband_ext_set_unavailable(struct phy_device *phydev, enum phy_inband_ext ext); Internally you can then turn these into operations on a u32. Andrew