net: ethernet: Add helper to determine if pause configuration is supported
Rather than have MAC drivers open code the test, add a helper in phylib. This will help when we change the type of phydev->supported. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
0c122405d4
commit
22b7d29926
@@ -1863,6 +1863,26 @@ void phy_set_asym_pause(struct phy_device *phydev, bool rx, bool tx)
|
||||
}
|
||||
EXPORT_SYMBOL(phy_set_asym_pause);
|
||||
|
||||
/**
|
||||
* phy_validate_pause - Test if the PHY/MAC support the pause configuration
|
||||
* @phydev: phy_device struct
|
||||
* @pp: requested pause configuration
|
||||
*
|
||||
* Description: Test if the PHY/MAC combination supports the Pause
|
||||
* configuration the user is requesting. Returns True if it is
|
||||
* supported, false otherwise.
|
||||
*/
|
||||
bool phy_validate_pause(struct phy_device *phydev,
|
||||
struct ethtool_pauseparam *pp)
|
||||
{
|
||||
if (!(phydev->supported & SUPPORTED_Pause) ||
|
||||
(!(phydev->supported & SUPPORTED_Asym_Pause) &&
|
||||
pp->rx_pause != pp->tx_pause))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
EXPORT_SYMBOL(phy_validate_pause);
|
||||
|
||||
static void of_set_phy_supported(struct phy_device *phydev)
|
||||
{
|
||||
struct device_node *node = phydev->mdio.dev.of_node;
|
||||
|
Reference in New Issue
Block a user