[PATCH 3.16 165/254] net: phy: Add phy_interface_is_rgmii helper

Ben Hutchings
2018-02-28T16:03:14Z

From: Florian Fainelli <f.fainelli@gmail.com>

commit e463d88c36d42211aa72ed76d32fb8bf37820ef1 upstream.

RGMII interfaces come in 4 different flavors that the PHY library needs
to care about: regular RGMII (no delays), RGMII with either RX or TX
delay, and both. In order to avoid errors of checking only for one type
of RGMII interface and miss the 3 others, introduce a convenience
function which tests for all values.

Suggested-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/phy.h | 11 +++++++++++
1 file changed, 11 insertions(+)

--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -630,6 +630,17 @@ static inline bool phy_is_internal(struc
}

/**
+ * phy_interface_is_rgmii - Convenience function for testing if a PHY interface
+ * is RGMII (all variants)
+ * @phydev: the phy_device struct
+ */
+static inline bool phy_interface_is_rgmii(struct phy_device *phydev)
+{
+ return phydev->interface >= PHY_INTERFACE_MODE_RGMII &&
+ phydev->interface <= PHY_INTERFACE_MODE_RGMII_TXID;
+}
+
+/**
* phy_write_mmd - Convenience function for writing a register
* on an MMD on a given PHY.
* @phydev: The phy_device struct