Skip to content

Commit de38503

Browse files
Russell King (Oracle)kuba-moo
authored andcommitted
net: remove phylink_pcs .neg_mode boolean
As all PCS are using the neg_mode parameter rather than the legacy an_mode, remove the ability to use the legacy an_mode. We remove the tests in the phylink code, unconditionally passing the PCS neg_mode parameter to PCS methods, and remove setting the flag from drivers. Signed-off-by: Russell King (Oracle) <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent bf1b8e0 commit de38503

File tree

21 files changed

+5
-51
lines changed

21 files changed

+5
-51
lines changed

drivers/net/dsa/b53/b53_serdes.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ int b53_serdes_init(struct b53_device *dev, int port)
239239
pcs->dev = dev;
240240
pcs->lane = lane;
241241
pcs->pcs.ops = &b53_pcs_ops;
242-
pcs->pcs.neg_mode = true;
243242

244243
return 0;
245244
}

drivers/net/dsa/mt7530.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3104,7 +3104,6 @@ mt753x_setup(struct dsa_switch *ds)
31043104
/* Initialise the PCS devices */
31053105
for (i = 0; i < priv->ds->num_ports; i++) {
31063106
priv->pcs[i].pcs.ops = priv->info->pcs_ops;
3107-
priv->pcs[i].pcs.neg_mode = true;
31083107
priv->pcs[i].priv = priv;
31093108
priv->pcs[i].port = i;
31103109
}

drivers/net/dsa/mv88e6xxx/pcs-6185.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ static int mv88e6185_pcs_init(struct mv88e6xxx_chip *chip, int port)
138138
mpcs->chip = chip;
139139
mpcs->port = port;
140140
mpcs->phylink_pcs.ops = &mv88e6185_phylink_pcs_ops;
141-
mpcs->phylink_pcs.neg_mode = true;
142141

143142
irq = mv88e6xxx_serdes_irq_mapping(chip, port);
144143
if (irq) {

drivers/net/dsa/mv88e6xxx/pcs-6352.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,6 @@ static struct marvell_c22_pcs *marvell_c22_pcs_alloc(struct device *dev,
275275
mpcs->mdio.bus = bus;
276276
mpcs->mdio.addr = addr;
277277
mpcs->phylink_pcs.ops = &marvell_c22_pcs_ops;
278-
mpcs->phylink_pcs.neg_mode = true;
279278

280279
return mpcs;
281280
}

drivers/net/dsa/mv88e6xxx/pcs-639x.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -565,9 +565,7 @@ static int mv88e6390_pcs_init(struct mv88e6xxx_chip *chip, int port)
565565
return -ENOMEM;
566566

567567
mpcs->sgmii_pcs.ops = &mv88e639x_sgmii_pcs_ops;
568-
mpcs->sgmii_pcs.neg_mode = true;
569568
mpcs->xg_pcs.ops = &mv88e6390_xg_pcs_ops;
570-
mpcs->xg_pcs.neg_mode = true;
571569

572570
if (chip->info->prod_num == MV88E6XXX_PORT_SWITCH_ID_PROD_6190X ||
573571
chip->info->prod_num == MV88E6XXX_PORT_SWITCH_ID_PROD_6390X)
@@ -945,9 +943,7 @@ static int mv88e6393x_pcs_init(struct mv88e6xxx_chip *chip, int port)
945943
return -ENOMEM;
946944

947945
mpcs->sgmii_pcs.ops = &mv88e6393x_sgmii_pcs_ops;
948-
mpcs->sgmii_pcs.neg_mode = true;
949946
mpcs->xg_pcs.ops = &mv88e6393x_xg_pcs_ops;
950-
mpcs->xg_pcs.neg_mode = true;
951947
mpcs->supports_5g = true;
952948

953949
err = mv88e6393x_erratum_4_6(mpcs);

drivers/net/dsa/qca/qca8k-8xxx.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1634,7 +1634,6 @@ static void qca8k_setup_pcs(struct qca8k_priv *priv, struct qca8k_pcs *qpcs,
16341634
int port)
16351635
{
16361636
qpcs->pcs.ops = &qca8k_pcs_ops;
1637-
qpcs->pcs.neg_mode = true;
16381637

16391638
/* We don't have interrupts for link changes, so we need to poll */
16401639
qpcs->pcs.poll = true;

drivers/net/ethernet/cadence/macb_main.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -853,9 +853,7 @@ static int macb_mii_probe(struct net_device *dev)
853853
struct macb *bp = netdev_priv(dev);
854854

855855
bp->phylink_sgmii_pcs.ops = &macb_phylink_pcs_ops;
856-
bp->phylink_sgmii_pcs.neg_mode = true;
857856
bp->phylink_usx_pcs.ops = &macb_phylink_usx_pcs_ops;
858-
bp->phylink_usx_pcs.neg_mode = true;
859857

860858
bp->phylink_config.dev = &dev->dev;
861859
bp->phylink_config.type = PHYLINK_NETDEV;

drivers/net/ethernet/freescale/fman/fman_dtsec.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1446,7 +1446,6 @@ int dtsec_initialization(struct mac_device *mac_dev,
14461446
goto _return_fm_mac_free;
14471447
}
14481448
dtsec->pcs.ops = &dtsec_pcs_ops;
1449-
dtsec->pcs.neg_mode = true;
14501449
dtsec->pcs.poll = true;
14511450

14521451
supported = mac_dev->phylink_config.supported_interfaces;

drivers/net/ethernet/marvell/mvneta.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5557,7 +5557,6 @@ static int mvneta_probe(struct platform_device *pdev)
55575557
clk_prepare_enable(pp->clk_bus);
55585558

55595559
pp->phylink_pcs.ops = &mvneta_phylink_pcs_ops;
5560-
pp->phylink_pcs.neg_mode = true;
55615560

55625561
pp->phylink_config.dev = &dev->dev;
55635562
pp->phylink_config.type = PHYLINK_NETDEV;

drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7024,9 +7024,7 @@ static int mvpp2_port_probe(struct platform_device *pdev,
70247024
dev->dev_port = port->id;
70257025

70267026
port->pcs_gmac.ops = &mvpp2_phylink_gmac_pcs_ops;
7027-
port->pcs_gmac.neg_mode = true;
70287027
port->pcs_xlg.ops = &mvpp2_phylink_xlg_pcs_ops;
7029-
port->pcs_xlg.neg_mode = true;
70307028

70317029
if (!mvpp2_use_acpi_compat_mode(port_fwnode)) {
70327030
port->phylink_config.dev = &dev->dev;

drivers/net/ethernet/marvell/prestera/prestera_main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,6 @@ static int prestera_port_sfp_bind(struct prestera_port *port)
396396
continue;
397397

398398
port->phylink_pcs.ops = &prestera_pcs_ops;
399-
port->phylink_pcs.neg_mode = true;
400399

401400
port->phy_config.dev = &port->dev->dev;
402401
port->phy_config.type = PHYLINK_NETDEV;

drivers/net/ethernet/meta/fbnic/fbnic_phylink.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ int fbnic_phylink_init(struct net_device *netdev)
133133
struct fbnic_net *fbn = netdev_priv(netdev);
134134
struct phylink *phylink;
135135

136-
fbn->phylink_pcs.neg_mode = true;
137136
fbn->phylink_pcs.ops = &fbnic_phylink_pcs_ops;
138137

139138
fbn->phylink_config.dev = &netdev->dev;

drivers/net/ethernet/microchip/lan966x/lan966x_main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,6 @@ static int lan966x_probe_port(struct lan966x *lan966x, u32 p,
828828
port->phylink_config.type = PHYLINK_NETDEV;
829829
port->phylink_pcs.poll = true;
830830
port->phylink_pcs.ops = &lan966x_phylink_pcs_ops;
831-
port->phylink_pcs.neg_mode = true;
832831

833832
port->phylink_config.mac_capabilities = MAC_ASYM_PAUSE | MAC_SYM_PAUSE |
834833
MAC_10 | MAC_100 | MAC_1000FD | MAC_2500FD;

drivers/net/ethernet/microchip/sparx5/sparx5_main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,6 @@ static int sparx5_create_port(struct sparx5 *sparx5,
338338
spx5_port->custom_etype = 0x8880; /* Vitesse */
339339
spx5_port->phylink_pcs.poll = true;
340340
spx5_port->phylink_pcs.ops = &sparx5_phylink_pcs_ops;
341-
spx5_port->phylink_pcs.neg_mode = true;
342341
spx5_port->is_mrouter = false;
343342
INIT_LIST_HEAD(&spx5_port->tc_templates);
344343
sparx5->ports[config->portno] = spx5_port;

drivers/net/ethernet/xilinx/xilinx_axienet_main.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3073,7 +3073,6 @@ static int axienet_probe(struct platform_device *pdev)
30733073
}
30743074
of_node_put(np);
30753075
lp->pcs.ops = &axienet_pcs_ops;
3076-
lp->pcs.neg_mode = true;
30773076
lp->pcs.poll = true;
30783077
}
30793078

drivers/net/pcs/pcs-lynx.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,6 @@ static struct phylink_pcs *lynx_pcs_create(struct mdio_device *mdio)
355355
mdio_device_get(mdio);
356356
lynx->mdio = mdio;
357357
lynx->pcs.ops = &lynx_pcs_phylink_ops;
358-
lynx->pcs.neg_mode = true;
359358
lynx->pcs.poll = true;
360359

361360
for (i = 0; i < ARRAY_SIZE(lynx_interfaces); i++)

drivers/net/pcs/pcs-mtk-lynxi.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,6 @@ struct phylink_pcs *mtk_pcs_lynxi_create(struct device *dev,
305305
mpcs->regmap = regmap;
306306
mpcs->flags = flags;
307307
mpcs->pcs.ops = &mtk_pcs_lynxi_ops;
308-
mpcs->pcs.neg_mode = true;
309308
mpcs->pcs.poll = true;
310309
mpcs->interface = PHY_INTERFACE_MODE_NA;
311310

drivers/net/pcs/pcs-rzn1-miic.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,6 @@ struct phylink_pcs *miic_create(struct device *dev, struct device_node *np)
349349
miic_port->miic = miic;
350350
miic_port->port = port - 1;
351351
miic_port->pcs.ops = &miic_phylink_ops;
352-
miic_port->pcs.neg_mode = true;
353352

354353
phy_interface_set_rgmii(miic_port->pcs.supported_interfaces);
355354
__set_bit(PHY_INTERFACE_MODE_RMII, miic_port->pcs.supported_interfaces);

drivers/net/pcs/pcs-xpcs.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1403,7 +1403,6 @@ static struct dw_xpcs *xpcs_create_data(struct mdio_device *mdiodev)
14031403
mdio_device_get(mdiodev);
14041404
xpcs->mdiodev = mdiodev;
14051405
xpcs->pcs.ops = &xpcs_phylink_ops;
1406-
xpcs->pcs.neg_mode = true;
14071406
xpcs->pcs.poll = true;
14081407

14091408
return xpcs;

drivers/net/phy/phylink.c

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,7 +1365,6 @@ static void phylink_major_config(struct phylink *pl, bool restart,
13651365
struct phylink_pcs *pcs = NULL;
13661366
bool pcs_changed = false;
13671367
unsigned int rate_kbd;
1368-
unsigned int neg_mode;
13691368
int err;
13701369

13711370
phylink_dbg(pl, "major config, requested %s/%s\n",
@@ -1428,11 +1427,7 @@ static void phylink_major_config(struct phylink *pl, bool restart,
14281427
if (pl->pcs_state == PCS_STATE_STARTING || pcs_changed)
14291428
phylink_pcs_enable(pl->pcs);
14301429

1431-
neg_mode = pl->act_link_an_mode;
1432-
if (pl->pcs && pl->pcs->neg_mode)
1433-
neg_mode = pl->pcs_neg_mode;
1434-
1435-
err = phylink_pcs_config(pl->pcs, neg_mode, state,
1430+
err = phylink_pcs_config(pl->pcs, pl->pcs_neg_mode, state,
14361431
!!(pl->link_config.pause & MLO_PAUSE_AN));
14371432
if (err < 0)
14381433
phylink_err(pl, "pcs_config failed: %pe\n",
@@ -1475,7 +1470,6 @@ static void phylink_major_config(struct phylink *pl, bool restart,
14751470
*/
14761471
static int phylink_change_inband_advert(struct phylink *pl)
14771472
{
1478-
unsigned int neg_mode;
14791473
int ret;
14801474

14811475
if (test_bit(PHYLINK_DISABLE_STOPPED, &pl->phylink_disable_state))
@@ -1491,15 +1485,11 @@ static int phylink_change_inband_advert(struct phylink *pl)
14911485
phylink_pcs_neg_mode(pl, pl->pcs, pl->link_config.interface,
14921486
pl->link_config.advertising);
14931487

1494-
neg_mode = pl->act_link_an_mode;
1495-
if (pl->pcs->neg_mode)
1496-
neg_mode = pl->pcs_neg_mode;
1497-
14981488
/* Modern PCS-based method; update the advert at the PCS, and
14991489
* restart negotiation if the pcs_config() helper indicates that
15001490
* the programmed advertisement has changed.
15011491
*/
1502-
ret = phylink_pcs_config(pl->pcs, neg_mode, &pl->link_config,
1492+
ret = phylink_pcs_config(pl->pcs, pl->pcs_neg_mode, &pl->link_config,
15031493
!!(pl->link_config.pause & MLO_PAUSE_AN));
15041494
if (ret < 0)
15051495
return ret;
@@ -1523,13 +1513,7 @@ static void phylink_mac_pcs_get_state(struct phylink *pl,
15231513
state->an_complete = 0;
15241514
state->link = 1;
15251515

1526-
pcs = pl->pcs;
1527-
if (!pcs || pcs->neg_mode)
1528-
autoneg = pl->pcs_neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED;
1529-
else
1530-
autoneg = linkmode_test_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
1531-
state->advertising);
1532-
1516+
autoneg = pl->pcs_neg_mode == PHYLINK_PCS_NEG_INBAND_ENABLED;
15331517
if (autoneg) {
15341518
state->speed = SPEED_UNKNOWN;
15351519
state->duplex = DUPLEX_UNKNOWN;
@@ -1540,6 +1524,7 @@ static void phylink_mac_pcs_get_state(struct phylink *pl,
15401524
state->pause = pl->link_config.pause;
15411525
}
15421526

1527+
pcs = pl->pcs;
15431528
if (pcs)
15441529
pcs->ops->pcs_get_state(pcs, pl->pcs_neg_mode, state);
15451530
else
@@ -1649,7 +1634,6 @@ static void phylink_link_up(struct phylink *pl,
16491634
struct phylink_link_state link_state)
16501635
{
16511636
struct net_device *ndev = pl->netdev;
1652-
unsigned int neg_mode;
16531637
int speed, duplex;
16541638
bool rx_pause;
16551639

@@ -1680,11 +1664,7 @@ static void phylink_link_up(struct phylink *pl,
16801664

16811665
pl->cur_interface = link_state.interface;
16821666

1683-
neg_mode = pl->act_link_an_mode;
1684-
if (pl->pcs && pl->pcs->neg_mode)
1685-
neg_mode = pl->pcs_neg_mode;
1686-
1687-
phylink_pcs_link_up(pl->pcs, neg_mode, pl->cur_interface, speed,
1667+
phylink_pcs_link_up(pl->pcs, pl->pcs_neg_mode, pl->cur_interface, speed,
16881668
duplex);
16891669

16901670
pl->mac_ops->mac_link_up(pl->config, pl->phydev, pl->act_link_an_mode,

include/linux/phylink.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,6 @@ struct phylink_pcs_ops;
442442
* are supported by this PCS.
443443
* @ops: a pointer to the &struct phylink_pcs_ops structure
444444
* @phylink: pointer to &struct phylink_config
445-
* @neg_mode: provide PCS neg mode via "mode" argument
446445
* @poll: poll the PCS for link changes
447446
* @rxc_always_on: The MAC driver requires the reference clock
448447
* to always be on. Standalone PCS drivers which
@@ -459,7 +458,6 @@ struct phylink_pcs {
459458
DECLARE_PHY_INTERFACE_MASK(supported_interfaces);
460459
const struct phylink_pcs_ops *ops;
461460
struct phylink *phylink;
462-
bool neg_mode;
463461
bool poll;
464462
bool rxc_always_on;
465463
};

0 commit comments

Comments
 (0)