mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-03 19:55:31 +00:00
net: pcs: xpcs: add xpcs_destroy_pcs() and xpcs_create_pcs_mdiodev()
Provide xpcs create/destroy functions that return and take a phylink_pcs pointer instead of an xpcs pointer. This will be used by drivers that have been converted to use phylink_pcs pointers internally, rather than dw_xpcs pointers. As xpcs_create_mdiodev() no longer makes use of its interface argument, pass PHY_INTERFACE_MODE_NA into xpcs_create_mdiodev() until it is removed later in the series. Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://patch.msgid.link/E1svfMQ-005ZIL-Bi@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
a487c9e7cf
commit
bedea1539a
@ -1550,6 +1550,18 @@ struct dw_xpcs *xpcs_create_mdiodev(struct mii_bus *bus, int addr,
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xpcs_create_mdiodev);
|
||||
|
||||
struct phylink_pcs *xpcs_create_pcs_mdiodev(struct mii_bus *bus, int addr)
|
||||
{
|
||||
struct dw_xpcs *xpcs;
|
||||
|
||||
xpcs = xpcs_create_mdiodev(bus, addr, PHY_INTERFACE_MODE_NA);
|
||||
if (IS_ERR(xpcs))
|
||||
return ERR_CAST(xpcs);
|
||||
|
||||
return &xpcs->pcs;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xpcs_create_pcs_mdiodev);
|
||||
|
||||
/**
|
||||
* xpcs_create_fwnode() - Create a DW xPCS instance from @fwnode
|
||||
* @fwnode: fwnode handle poining to the DW XPCS device
|
||||
@ -1599,5 +1611,11 @@ void xpcs_destroy(struct dw_xpcs *xpcs)
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xpcs_destroy);
|
||||
|
||||
void xpcs_destroy_pcs(struct phylink_pcs *pcs)
|
||||
{
|
||||
xpcs_destroy(phylink_pcs_to_xpcs(pcs));
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(xpcs_destroy_pcs);
|
||||
|
||||
MODULE_DESCRIPTION("Synopsys DesignWare XPCS library");
|
||||
MODULE_LICENSE("GPL v2");
|
||||
|
@ -78,4 +78,7 @@ struct dw_xpcs *xpcs_create_fwnode(struct fwnode_handle *fwnode,
|
||||
phy_interface_t interface);
|
||||
void xpcs_destroy(struct dw_xpcs *xpcs);
|
||||
|
||||
struct phylink_pcs *xpcs_create_pcs_mdiodev(struct mii_bus *bus, int addr);
|
||||
void xpcs_destroy_pcs(struct phylink_pcs *pcs);
|
||||
|
||||
#endif /* __LINUX_PCS_XPCS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user