net: phylink: add phylink_expects_phy() method
[ Upstream commit653a180957
] Provide phylink_expects_phy() to allow MAC drivers to check if it is expecting a PHY to attach to. Since fixed-linked setups do not need to attach to a PHY. Provides a boolean value as to if the MAC should expect a PHY. Returns true if a PHY is expected. Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of:fe2cfbc968
("net: stmmac: check if MAC needs to attach to a PHY") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
aa95efa187
commit
2b15feabc9
|
@ -1552,6 +1552,25 @@ void phylink_destroy(struct phylink *pl)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(phylink_destroy);
|
||||
|
||||
/**
|
||||
* phylink_expects_phy() - Determine if phylink expects a phy to be attached
|
||||
* @pl: a pointer to a &struct phylink returned from phylink_create()
|
||||
*
|
||||
* When using fixed-link mode, or in-band mode with 1000base-X or 2500base-X,
|
||||
* no PHY is needed.
|
||||
*
|
||||
* Returns true if phylink will be expecting a PHY.
|
||||
*/
|
||||
bool phylink_expects_phy(struct phylink *pl)
|
||||
{
|
||||
if (pl->cfg_link_an_mode == MLO_AN_FIXED ||
|
||||
(pl->cfg_link_an_mode == MLO_AN_INBAND &&
|
||||
phy_interface_mode_is_8023z(pl->link_config.interface)))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(phylink_expects_phy);
|
||||
|
||||
static void phylink_phy_change(struct phy_device *phydev, bool up)
|
||||
{
|
||||
struct phylink *pl = phydev->phylink;
|
||||
|
|
|
@ -566,6 +566,7 @@ struct phylink *phylink_create(struct phylink_config *, struct fwnode_handle *,
|
|||
phy_interface_t iface,
|
||||
const struct phylink_mac_ops *mac_ops);
|
||||
void phylink_destroy(struct phylink *);
|
||||
bool phylink_expects_phy(struct phylink *pl);
|
||||
|
||||
int phylink_connect_phy(struct phylink *, struct phy_device *);
|
||||
int phylink_of_phy_connect(struct phylink *, struct device_node *, u32 flags);
|
||||
|
|
Loading…
Reference in New Issue