net: stmmac: dwmac-intel: provide a select_pcs() implementation
Move the code returning the XPCS into dwmac-intel, which is the only user of XPCS. Fill in the select_pcs() implementation only when we are going to setup the XPCS, thus when it should be present. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Link: https://lore.kernel.org/r/E1sHhoR-00FetB-CP@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
6c3282a6b2
commit
135553da84
@ -443,6 +443,16 @@ static void common_default_data(struct plat_stmmacenet_data *plat)
|
||||
plat->rx_queues_cfg[0].pkt_route = 0x0;
|
||||
}
|
||||
|
||||
static struct phylink_pcs *intel_mgbe_select_pcs(struct stmmac_priv *priv,
|
||||
phy_interface_t interface)
|
||||
{
|
||||
/* plat->mdio_bus_data->has_xpcs has been set true, so there
|
||||
* should always be an XPCS. The original code would always
|
||||
* return this if present.
|
||||
*/
|
||||
return &priv->hw->xpcs->pcs;
|
||||
}
|
||||
|
||||
static int intel_mgbe_common_data(struct pci_dev *pdev,
|
||||
struct plat_stmmacenet_data *plat)
|
||||
{
|
||||
@ -587,6 +597,7 @@ static int intel_mgbe_common_data(struct pci_dev *pdev,
|
||||
plat->phy_interface == PHY_INTERFACE_MODE_1000BASEX) {
|
||||
plat->mdio_bus_data->has_xpcs = true;
|
||||
plat->mdio_bus_data->default_an_inband = true;
|
||||
plat->select_pcs = intel_mgbe_select_pcs;
|
||||
}
|
||||
|
||||
/* Ensure mdio bus scan skips intel serdes and pcs-xpcs */
|
||||
|
@ -957,9 +957,6 @@ static struct phylink_pcs *stmmac_mac_select_pcs(struct phylink_config *config,
|
||||
return pcs;
|
||||
}
|
||||
|
||||
if (priv->hw->xpcs)
|
||||
return &priv->hw->xpcs->pcs;
|
||||
|
||||
return priv->hw->phylink_pcs;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user