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);
|
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)
|
static void phylink_phy_change(struct phy_device *phydev, bool up)
|
||||||
{
|
{
|
||||||
struct phylink *pl = phydev->phylink;
|
struct phylink *pl = phydev->phylink;
|
||||||
|
|
|
@ -566,6 +566,7 @@ struct phylink *phylink_create(struct phylink_config *, struct fwnode_handle *,
|
||||||
phy_interface_t iface,
|
phy_interface_t iface,
|
||||||
const struct phylink_mac_ops *mac_ops);
|
const struct phylink_mac_ops *mac_ops);
|
||||||
void phylink_destroy(struct phylink *);
|
void phylink_destroy(struct phylink *);
|
||||||
|
bool phylink_expects_phy(struct phylink *pl);
|
||||||
|
|
||||||
int phylink_connect_phy(struct phylink *, struct phy_device *);
|
int phylink_connect_phy(struct phylink *, struct phy_device *);
|
||||||
int phylink_of_phy_connect(struct phylink *, struct device_node *, u32 flags);
|
int phylink_of_phy_connect(struct phylink *, struct device_node *, u32 flags);
|
||||||
|
|
Loading…
Reference in New Issue