diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2019-12-23 23:24:17 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2020-06-29 01:19:19 +0100 |
commit | 73fd9c32489e2ba7a4695df0e7869790ee069450 (patch) | |
tree | a1b5a2e83536443d44b15115d9b3059a44697f03 | |
parent | 55d8f39fa8639fcfdbba2e031bcdb374b7fcb729 (diff) |
net: phy: add supported_interfaces to phylib
Add a supported_interfaces member to phylib so we know which
interfaces a PHY supports. Currently, set any unconverted driver
to indicate all interfaces are supported.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
-rw-r--r-- | include/linux/phy.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/phy.h b/include/linux/phy.h index d929683db8ce..1359c164a3af 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -112,6 +112,26 @@ typedef enum { PHY_INTERFACE_MODE_MAX, } phy_interface_t; +/* PHY interface mode bitmap handling */ +#define DECLARE_PHY_INTERFACE_MASK(name) \ + DECLARE_BITMAP(name, PHY_INTERFACE_MODE_MAX) + +static inline void phy_interface_zero(unsigned long *intf) +{ + bitmap_zero(intf, PHY_INTERFACE_MODE_MAX); +} + +static inline bool phy_interface_empty(const unsigned long *intf) +{ + return bitmap_empty(intf, PHY_INTERFACE_MODE_MAX); +} + +static inline void phy_interface_and(unsigned long *dst, const unsigned long *a, + const unsigned long *b) +{ + bitmap_and(dst, a, b, PHY_INTERFACE_MODE_MAX); +} + /** * phy_supported_speeds - return all speeds currently supported by a phy device * @phy: The phy device to return supported speeds of. @@ -447,6 +467,9 @@ struct phy_device { /* used with phy_speed_down */ __ETHTOOL_DECLARE_LINK_MODE_MASK(adv_old); + /* bitmap of supported interfaces */ + DECLARE_PHY_INTERFACE_MASK(supported_interfaces); + /* Energy efficient ethernet modes which should be prohibited */ u32 eee_broken_modes; |