Commit 2001d215 authored by Russell King (Oracle)'s avatar Russell King (Oracle) Committed by Jakub Kicinski
Browse files

net: phylink: provide phylink_mac_implements_lpi()



Provide a helper to determine whether the MAC operations structure
implements the LPI operations, which will be used by both phylink and
DSA.

Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://patch.msgid.link/E1thR9g-003vX6-4s@rmk-PC.armlinux.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 2f472031
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1957,8 +1957,7 @@ struct phylink *phylink_create(struct phylink_config *config,
		return ERR_PTR(-EINVAL);
	}

	pl->mac_supports_eee_ops = mac_ops->mac_disable_tx_lpi &&
				   mac_ops->mac_enable_tx_lpi;
	pl->mac_supports_eee_ops = phylink_mac_implements_lpi(mac_ops);
	pl->mac_supports_eee = pl->mac_supports_eee_ops &&
			       pl->config->lpi_capabilities &&
			       !phy_interface_empty(pl->config->lpi_interfaces);
+12 −0
Original line number Diff line number Diff line
@@ -737,6 +737,18 @@ static inline int phylink_get_link_timer_ns(phy_interface_t interface)
	}
}

/**
 * phylink_mac_implements_lpi() - determine if MAC implements LPI ops
 * @ops: phylink_mac_ops structure
 *
 * Returns true if the phylink MAC operations structure indicates that the
 * LPI operations have been implemented, false otherwise.
 */
static inline bool phylink_mac_implements_lpi(const struct phylink_mac_ops *ops)
{
	return ops && ops->mac_disable_tx_lpi && ops->mac_enable_tx_lpi;
}

void phylink_mii_c22_pcs_decode_state(struct phylink_link_state *state,
				      unsigned int neg_mode, u16 bmsr, u16 lpa);
void phylink_mii_c22_pcs_get_state(struct mdio_device *pcs,