Skip to content

Commit

Permalink
net: stmmac: move fixed-link support fixup code
Browse files Browse the repository at this point in the history
xpcs_an_inband value is updated in the speed_mode_2500 function
which turns on the xpcs_an_inband mode.

Moving the fixed-link fixup code to right before phylink setup to
ensure no more fixup will affect the fixed-link mode configurations.

Fixes: 72edaf3 ("stmmac: intel: add phy-mode and fixed-link ACPI _DSD setting support")
Signed-off-by: Michael Sit Wei Hong <michael.wei.hong.sit@intel.com>
  • Loading branch information
michaelsit-iotg authored and intel-lab-lkp committed Mar 13, 2023
1 parent 688614b commit e1abd09
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
11 changes: 0 additions & 11 deletions drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
Expand Up @@ -592,17 +592,6 @@ static int intel_mgbe_common_data(struct pci_dev *pdev,
plat->mdio_bus_data->xpcs_an_inband = true;
}

/* For fixed-link setup, we clear xpcs_an_inband */
if (fwnode) {
struct fwnode_handle *fixed_node;

fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link");
if (fixed_node)
plat->mdio_bus_data->xpcs_an_inband = false;

fwnode_handle_put(fixed_node);
}

/* Ensure mdio bus scan skips intel serdes and pcs-xpcs */
plat->mdio_bus_data->phy_mask = 1 << INTEL_MGBE_ADHOC_ADDR;
plat->mdio_bus_data->phy_mask |= 1 << INTEL_MGBE_XPCS_ADDR;
Expand Down
15 changes: 15 additions & 0 deletions drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
Expand Up @@ -7064,6 +7064,7 @@ int stmmac_dvr_probe(struct device *device,
struct stmmac_resources *res)
{
struct net_device *ndev = NULL;
struct fwnode_handle *fwnode;
struct stmmac_priv *priv;
u32 rxq;
int i, ret = 0;
Expand Down Expand Up @@ -7306,6 +7307,20 @@ int stmmac_dvr_probe(struct device *device,
goto error_xpcs_setup;
}

/* For fixed-link setup, we clear xpcs_an_inband */
if (!fwnode)
fwnode = dev_fwnode(priv->device);

if (fwnode) {
struct fwnode_handle *fixed_node;

fixed_node = fwnode_get_named_child_node(fwnode, "fixed-link");
if (fixed_node)
priv->plat->mdio_bus_data->xpcs_an_inband = false;

fwnode_handle_put(fixed_node);
}

ret = stmmac_phy_setup(priv);
if (ret) {
netdev_err(ndev, "failed to setup phy (%d)\n", ret);
Expand Down

0 comments on commit e1abd09

Please sign in to comment.