Symbol: mlxsw_m
drivers/net/ethernet/mellanox/mlxsw/minimal.c
100
mlxsw_m->bus_info->fw_rev.subminor);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
101
strscpy(drvinfo->bus_info, mlxsw_m->bus_info->device_name,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
109
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
121
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
134
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
148
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
159
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
172
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
185
struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
204
mlxsw_m_port_module_info_get(struct mlxsw_m *mlxsw_m, u16 local_port,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
211
err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(pmlp), pmlp_pl);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
224
struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
230
err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(ppad), ppad_pl);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
239
static bool mlxsw_m_port_created(struct mlxsw_m *mlxsw_m, u16 local_port)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
241
return mlxsw_m->ports[local_port];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
245
mlxsw_m_port_create(struct mlxsw_m *mlxsw_m, u16 local_port, u8 slot_index,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
252
err = mlxsw_core_port_init(mlxsw_m->core, local_port, slot_index,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
254
0, mlxsw_m->base_mac,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
255
sizeof(mlxsw_m->base_mac));
drivers/net/ethernet/mellanox/mlxsw/minimal.c
257
dev_err(mlxsw_m->bus_info->dev, "Port %d: Failed to init core port\n",
drivers/net/ethernet/mellanox/mlxsw/minimal.c
268
SET_NETDEV_DEV(dev, mlxsw_m->bus_info->dev);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
269
dev_net_set(dev, mlxsw_core_net(mlxsw_m->core));
drivers/net/ethernet/mellanox/mlxsw/minimal.c
271
mlxsw_core_port_netdev_link(mlxsw_m->core, local_port,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
274
mlxsw_m_port->mlxsw_m = mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
285
mlxsw_m->max_modules_per_slot : 0;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
292
dev_err(mlxsw_m->bus_info->dev, "Port %d: Unable to get port mac address\n",
drivers/net/ethernet/mellanox/mlxsw/minimal.c
298
mlxsw_m->ports[local_port] = mlxsw_m_port;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
301
dev_err(mlxsw_m->bus_info->dev, "Port %d: Failed to register netdev\n",
drivers/net/ethernet/mellanox/mlxsw/minimal.c
309
mlxsw_m->ports[local_port] = NULL;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
313
mlxsw_core_port_fini(mlxsw_m->core, local_port);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
317
static void mlxsw_m_port_remove(struct mlxsw_m *mlxsw_m, u16 local_port)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
319
struct mlxsw_m_port *mlxsw_m_port = mlxsw_m->ports[local_port];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
322
mlxsw_m->ports[local_port] = NULL;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
324
mlxsw_core_port_fini(mlxsw_m->core, local_port);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
328
mlxsw_m_port_mapping_get(struct mlxsw_m *mlxsw_m, u8 slot_index, u8 module)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
330
return &mlxsw_m->line_cards[slot_index]->module_to_port[module];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
333
static int mlxsw_m_port_module_map(struct mlxsw_m *mlxsw_m, u16 local_port,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
336
unsigned int max_ports = mlxsw_core_max_ports(mlxsw_m->core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
342
err = mlxsw_m_port_module_info_get(mlxsw_m, local_port, &module,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
348
if (mlxsw_m->line_cards[slot_index]->active)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
359
mlxsw_env_module_port_map(mlxsw_m->core, slot_index, module);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
360
module_to_port = mlxsw_m_port_mapping_get(mlxsw_m, slot_index, module);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
367
mlxsw_m_port_module_unmap(struct mlxsw_m *mlxsw_m, u8 slot_index, u8 module)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
369
int *module_to_port = mlxsw_m_port_mapping_get(mlxsw_m, slot_index,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
372
mlxsw_env_module_port_unmap(mlxsw_m->core, slot_index, module);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
375
static int mlxsw_m_linecards_init(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
377
unsigned int max_ports = mlxsw_core_max_ports(mlxsw_m->core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
383
err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(mgpir), mgpir_pl);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
388
&mlxsw_m->num_of_slots);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
392
if (mlxsw_m->num_of_slots)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
393
mlxsw_m->max_modules_per_slot =
drivers/net/ethernet/mellanox/mlxsw/minimal.c
396
mlxsw_m->max_modules_per_slot = num_of_modules;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
398
mlxsw_m->num_of_slots += 1;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
400
mlxsw_m->ports = kzalloc_objs(*mlxsw_m->ports, max_ports);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
401
if (!mlxsw_m->ports)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
404
mlxsw_m->line_cards = kzalloc_objs(*mlxsw_m->line_cards,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
405
mlxsw_m->num_of_slots);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
406
if (!mlxsw_m->line_cards) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
411
for (i = 0; i < mlxsw_m->num_of_slots; i++) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
412
mlxsw_m->line_cards[i] =
drivers/net/ethernet/mellanox/mlxsw/minimal.c
413
kzalloc_flex(*mlxsw_m->line_cards[i], module_to_port,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
414
mlxsw_m->max_modules_per_slot);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
415
if (!mlxsw_m->line_cards[i]) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
421
for (j = 0; j < mlxsw_m->max_modules_per_slot; j++)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
422
mlxsw_m->line_cards[i]->module_to_port[j] = -1;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
429
kfree(mlxsw_m->line_cards[i]);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
430
kfree(mlxsw_m->line_cards);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
432
kfree(mlxsw_m->ports);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
436
static void mlxsw_m_linecards_fini(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
438
int i = mlxsw_m->num_of_slots;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
441
kfree(mlxsw_m->line_cards[i]);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
442
kfree(mlxsw_m->line_cards);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
443
kfree(mlxsw_m->ports);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
447
mlxsw_m_linecard_port_module_unmap(struct mlxsw_m *mlxsw_m, u8 slot_index)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
451
for (i = mlxsw_m->max_modules_per_slot - 1; i >= 0; i--) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
454
module_to_port = mlxsw_m_port_mapping_get(mlxsw_m, slot_index, i);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
456
mlxsw_m_port_module_unmap(mlxsw_m, slot_index, i);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
46
struct mlxsw_m *mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
461
mlxsw_m_linecard_ports_create(struct mlxsw_m *mlxsw_m, u8 slot_index)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
466
for (i = 0; i < mlxsw_m->max_modules_per_slot; i++) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
467
module_to_port = mlxsw_m_port_mapping_get(mlxsw_m, slot_index, i);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
469
err = mlxsw_m_port_create(mlxsw_m, *module_to_port,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
474
if (!mlxsw_m->line_cards[slot_index]->active)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
475
mlxsw_m->line_cards[slot_index]->active = true;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
482
module_to_port = mlxsw_m_port_mapping_get(mlxsw_m, slot_index, i);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
484
mlxsw_m_port_created(mlxsw_m, *module_to_port)) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
485
mlxsw_m_port_remove(mlxsw_m, *module_to_port);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
487
if (mlxsw_m->line_cards[slot_index]->active)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
488
mlxsw_m->line_cards[slot_index]->active = false;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
495
mlxsw_m_linecard_ports_remove(struct mlxsw_m *mlxsw_m, u8 slot_index)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
499
for (i = 0; i < mlxsw_m->max_modules_per_slot; i++) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
500
int *module_to_port = mlxsw_m_port_mapping_get(mlxsw_m,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
504
mlxsw_m_port_created(mlxsw_m, *module_to_port)) {
drivers/net/ethernet/mellanox/mlxsw/minimal.c
505
mlxsw_m_port_remove(mlxsw_m, *module_to_port);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
506
mlxsw_m_port_module_unmap(mlxsw_m, slot_index, i);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
511
static int mlxsw_m_ports_module_map(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
513
unsigned int max_ports = mlxsw_core_max_ports(mlxsw_m->core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
518
err = mlxsw_m_port_module_map(mlxsw_m, i, &last_module);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
526
static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
53
static int mlxsw_m_base_mac_get(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
531
err = mlxsw_m_ports_module_map(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
536
err = mlxsw_m_linecard_ports_create(mlxsw_m, 0);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
544
mlxsw_m_linecard_port_module_unmap(mlxsw_m, 0);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
549
static void mlxsw_m_ports_remove(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
551
mlxsw_m_linecard_ports_remove(mlxsw_m, 0);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
559
struct mlxsw_m *mlxsw_m = mlxsw_core_driver_priv(mlxsw_core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
563
linecard = mlxsw_m->line_cards[linecard_priv->slot_index];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
568
mlxsw_m_linecard_ports_remove(mlxsw_m, linecard_priv->slot_index);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
572
static int mlxsw_m_fw_rev_validate(struct mlxsw_m *mlxsw_m)
drivers/net/ethernet/mellanox/mlxsw/minimal.c
574
const struct mlxsw_fw_rev *rev = &mlxsw_m->bus_info->fw_rev;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
58
err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(spad), spad_pl);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
583
dev_err(mlxsw_m->bus_info->dev, "The firmware version %d.%d.%d is incompatible with the driver (required >= %d.%d.%d)\n",
drivers/net/ethernet/mellanox/mlxsw/minimal.c
594
struct mlxsw_m *mlxsw_m = priv;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
597
linecard = mlxsw_m->line_cards[slot_index];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
603
err = mlxsw_m_ports_module_map(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
608
err = mlxsw_m_linecard_ports_create(mlxsw_m, slot_index);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
61
mlxsw_reg_spad_base_mac_memcpy_from(spad_pl, mlxsw_m->base_mac);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
610
dev_err(mlxsw_m->bus_info->dev, "Failed to create port for line card at slot %d\n",
drivers/net/ethernet/mellanox/mlxsw/minimal.c
621
mlxsw_m_linecard_port_module_unmap(mlxsw_m, slot_index);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
628
struct mlxsw_m *mlxsw_m = priv;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
630
linecard = mlxsw_m->line_cards[slot_index];
drivers/net/ethernet/mellanox/mlxsw/minimal.c
635
mlxsw_m_linecard_ports_remove(mlxsw_m, slot_index);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
648
struct mlxsw_m *mlxsw_m = mlxsw_core_driver_priv(mlxsw_core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
651
mlxsw_m->core = mlxsw_core;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
652
mlxsw_m->bus_info = mlxsw_bus_info;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
654
err = mlxsw_m_fw_rev_validate(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
658
err = mlxsw_m_base_mac_get(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
660
dev_err(mlxsw_m->bus_info->dev, "Failed to get base mac\n");
drivers/net/ethernet/mellanox/mlxsw/minimal.c
664
err = mlxsw_m_linecards_init(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
666
dev_err(mlxsw_m->bus_info->dev, "Failed to create line cards\n");
drivers/net/ethernet/mellanox/mlxsw/minimal.c
671
&mlxsw_m_event_ops, mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
673
dev_err(mlxsw_m->bus_info->dev, "Failed to register line cards operations\n");
drivers/net/ethernet/mellanox/mlxsw/minimal.c
677
err = mlxsw_m_ports_create(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
679
dev_err(mlxsw_m->bus_info->dev, "Failed to create ports\n");
drivers/net/ethernet/mellanox/mlxsw/minimal.c
68
struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
687
&mlxsw_m_event_ops, mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
689
mlxsw_m_linecards_fini(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
695
struct mlxsw_m *mlxsw_m = mlxsw_core_driver_priv(mlxsw_core);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
697
mlxsw_m_ports_remove(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
699
&mlxsw_m_event_ops, mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
70
return mlxsw_env_module_port_up(mlxsw_m->core, 0,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
700
mlxsw_m_linecards_fini(mlxsw_m);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
707
.priv_size = sizeof(struct mlxsw_m),
drivers/net/ethernet/mellanox/mlxsw/minimal.c
77
struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
79
mlxsw_env_module_port_down(mlxsw_m->core, 0, mlxsw_m_port->module);
drivers/net/ethernet/mellanox/mlxsw/minimal.c
92
struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
drivers/net/ethernet/mellanox/mlxsw/minimal.c
94
strscpy(drvinfo->driver, mlxsw_m->bus_info->device_kind,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
98
mlxsw_m->bus_info->fw_rev.major,
drivers/net/ethernet/mellanox/mlxsw/minimal.c
99
mlxsw_m->bus_info->fw_rev.minor,