mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
net: stmmac: use a local variable for priv->phylink_config
Use a local variable for priv->phylink_config in stmmac_phy_setup() which makes the code a bit easier to read, allowing some lines to be merged. Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/E1uASLd-0021QR-Cu@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
cb9d6b2c2a
commit
5ad39ceaea
|
|
@ -1259,19 +1259,22 @@ static int stmmac_phy_setup(struct stmmac_priv *priv)
|
|||
{
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data;
|
||||
int mode = priv->plat->phy_interface;
|
||||
struct phylink_config *config;
|
||||
struct fwnode_handle *fwnode;
|
||||
struct phylink_pcs *pcs;
|
||||
struct phylink *phylink;
|
||||
|
||||
priv->phylink_config.dev = &priv->dev->dev;
|
||||
priv->phylink_config.type = PHYLINK_NETDEV;
|
||||
priv->phylink_config.mac_managed_pm = true;
|
||||
config = &priv->phylink_config;
|
||||
|
||||
config->dev = &priv->dev->dev;
|
||||
config->type = PHYLINK_NETDEV;
|
||||
config->mac_managed_pm = true;
|
||||
|
||||
/* Stmmac always requires an RX clock for hardware initialization */
|
||||
priv->phylink_config.mac_requires_rxc = true;
|
||||
config->mac_requires_rxc = true;
|
||||
|
||||
if (!(priv->plat->flags & STMMAC_FLAG_RX_CLK_RUNS_IN_LPI))
|
||||
priv->phylink_config.eee_rx_clk_stop_enable = true;
|
||||
config->eee_rx_clk_stop_enable = true;
|
||||
|
||||
/* Set the default transmit clock stop bit based on the platform glue */
|
||||
priv->tx_lpi_clk_stop = priv->plat->flags &
|
||||
|
|
@ -1279,13 +1282,12 @@ static int stmmac_phy_setup(struct stmmac_priv *priv)
|
|||
|
||||
mdio_bus_data = priv->plat->mdio_bus_data;
|
||||
if (mdio_bus_data)
|
||||
priv->phylink_config.default_an_inband =
|
||||
mdio_bus_data->default_an_inband;
|
||||
config->default_an_inband = mdio_bus_data->default_an_inband;
|
||||
|
||||
/* Set the platform/firmware specified interface mode. Note, phylink
|
||||
* deals with the PHY interface mode, not the MAC interface mode.
|
||||
*/
|
||||
__set_bit(mode, priv->phylink_config.supported_interfaces);
|
||||
__set_bit(mode, config->supported_interfaces);
|
||||
|
||||
/* If we have an xpcs, it defines which PHY interfaces are supported. */
|
||||
if (priv->hw->xpcs)
|
||||
|
|
@ -1294,29 +1296,26 @@ static int stmmac_phy_setup(struct stmmac_priv *priv)
|
|||
pcs = priv->hw->phylink_pcs;
|
||||
|
||||
if (pcs)
|
||||
phy_interface_or(priv->phylink_config.supported_interfaces,
|
||||
priv->phylink_config.supported_interfaces,
|
||||
phy_interface_or(config->supported_interfaces,
|
||||
config->supported_interfaces,
|
||||
pcs->supported_interfaces);
|
||||
|
||||
if (priv->dma_cap.eee) {
|
||||
/* Assume all supported interfaces also support LPI */
|
||||
memcpy(priv->phylink_config.lpi_interfaces,
|
||||
priv->phylink_config.supported_interfaces,
|
||||
sizeof(priv->phylink_config.lpi_interfaces));
|
||||
memcpy(config->lpi_interfaces, config->supported_interfaces,
|
||||
sizeof(config->lpi_interfaces));
|
||||
|
||||
/* All full duplex speeds above 100Mbps are supported */
|
||||
priv->phylink_config.lpi_capabilities = ~(MAC_1000FD - 1) |
|
||||
MAC_100FD;
|
||||
priv->phylink_config.lpi_timer_default = eee_timer * 1000;
|
||||
priv->phylink_config.eee_enabled_default = true;
|
||||
config->lpi_capabilities = ~(MAC_1000FD - 1) | MAC_100FD;
|
||||
config->lpi_timer_default = eee_timer * 1000;
|
||||
config->eee_enabled_default = true;
|
||||
}
|
||||
|
||||
fwnode = priv->plat->port_node;
|
||||
if (!fwnode)
|
||||
fwnode = dev_fwnode(priv->device);
|
||||
|
||||
phylink = phylink_create(&priv->phylink_config, fwnode,
|
||||
mode, &stmmac_phylink_mac_ops);
|
||||
phylink = phylink_create(config, fwnode, mode, &stmmac_phylink_mac_ops);
|
||||
if (IS_ERR(phylink))
|
||||
return PTR_ERR(phylink);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user