On 9/2/2018 10:06 AM, Andrew Lunn wrote:
ethtool can be used to enable/disable pause. Add a helper to configure
the PHY when Pause is supported.

One comment, see below:

[snip]
+/**
+ * phy_set_pause - Configure Pause
+ * @phydev: target phy_device struct
+ * @rx: Receiver Pause is supported
+ * @autoneg: Auto neg should be used
+ *
+ * Description: Configure advertised Pause support depending on if
+ * receiver pause and pause auto neg is supported. Generally called
+ * from the set_pauseparam .ndo.
+ */
+void phy_set_pause(struct phy_device *phydev, bool rx, bool autoneg)
+{
+       phydev->supported &= ~SUPPORTED_Pause;
+
+       if (rx || autoneg)
+               phydev->supported |= SUPPORTED_Pause;
+
+       phydev->advertising = phydev->supported;

This is the logic from FEC, but I think the one from bcm63xx_enet.c is actually the correct one, you can enable symmetric pause support if it is enabled for both the RX and TX paths here.

Similar comment to patch 9, I would name this phy_set_sym_pause() for clarity.
--
Florian

Reply via email to