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

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: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Link: https://lore.kernel.org/r/E1sHhoR-00FetB-CP@rmk-PC.armlinux.org.uk


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6c3282a6
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -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 */
+0 −3
Original line number Diff line number Diff line
@@ -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;
}