mlxsw_sib 37 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib; mlxsw_sib 106 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int mlxsw_sib_hw_id_get(struct mlxsw_sib *mlxsw_sib) mlxsw_sib 111 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_reg_query(mlxsw_sib->core, MLXSW_REG(spad), spad_pl); mlxsw_sib 114 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_reg_spad_base_mac_memcpy_from(spad_pl, mlxsw_sib->hw_id); mlxsw_sib 122 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_sib_port->mlxsw_sib; mlxsw_sib 128 drivers/net/ethernet/mellanox/mlxsw/switchib.c return mlxsw_reg_write(mlxsw_sib->core, MLXSW_REG(paos), paos_pl); mlxsw_sib 134 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_sib_port->mlxsw_sib; mlxsw_sib 140 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_reg_query(mlxsw_sib->core, MLXSW_REG(pmtu), pmtu_pl); mlxsw_sib 149 drivers/net/ethernet/mellanox/mlxsw/switchib.c return mlxsw_reg_write(mlxsw_sib->core, MLXSW_REG(pmtu), pmtu_pl); mlxsw_sib 154 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_sib_port->mlxsw_sib; mlxsw_sib 160 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_reg_write(mlxsw_sib->core, MLXSW_REG(plib), plib_pl); mlxsw_sib 167 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_sib_port->mlxsw_sib; mlxsw_sib 171 drivers/net/ethernet/mellanox/mlxsw/switchib.c return mlxsw_reg_write(mlxsw_sib->core, MLXSW_REG(pspa), pspa_pl); mlxsw_sib 174 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int mlxsw_sib_port_module_info_get(struct mlxsw_sib *mlxsw_sib, mlxsw_sib 182 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_reg_query(mlxsw_sib->core, MLXSW_REG(pmlp), pmlp_pl); mlxsw_sib 193 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_sib_port->mlxsw_sib; mlxsw_sib 198 drivers/net/ethernet/mellanox/mlxsw/switchib.c return mlxsw_reg_write(mlxsw_sib->core, MLXSW_REG(ptys), ptys_pl); mlxsw_sib 201 drivers/net/ethernet/mellanox/mlxsw/switchib.c static bool mlxsw_sib_port_created(struct mlxsw_sib *mlxsw_sib, u8 local_port) mlxsw_sib 203 drivers/net/ethernet/mellanox/mlxsw/switchib.c return mlxsw_sib->ports[local_port] != NULL; mlxsw_sib 206 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int __mlxsw_sib_port_create(struct mlxsw_sib *mlxsw_sib, u8 local_port, mlxsw_sib 215 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_port->mlxsw_sib = mlxsw_sib; mlxsw_sib 221 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to set SWID\n", mlxsw_sib 229 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to set IB port\n", mlxsw_sib 241 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to set speed\n", mlxsw_sib 251 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to set MTU\n", mlxsw_sib 258 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to change admin state to UP\n", mlxsw_sib 263 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_port_ib_set(mlxsw_sib->core, mlxsw_sib_port->local_port, mlxsw_sib 265 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->ports[local_port] = mlxsw_sib_port; mlxsw_sib 278 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int mlxsw_sib_port_create(struct mlxsw_sib *mlxsw_sib, u8 local_port, mlxsw_sib 283 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_core_port_init(mlxsw_sib->core, local_port, mlxsw_sib 285 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->hw_id, sizeof(mlxsw_sib->hw_id)); mlxsw_sib 287 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Port %d: Failed to init core port\n", mlxsw_sib 291 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = __mlxsw_sib_port_create(mlxsw_sib, local_port, module, width); mlxsw_sib 298 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_port_fini(mlxsw_sib->core, local_port); mlxsw_sib 302 drivers/net/ethernet/mellanox/mlxsw/switchib.c static void __mlxsw_sib_port_remove(struct mlxsw_sib *mlxsw_sib, u8 local_port) mlxsw_sib 304 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib_port *mlxsw_sib_port = mlxsw_sib->ports[local_port]; mlxsw_sib 306 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_port_clear(mlxsw_sib->core, local_port, mlxsw_sib); mlxsw_sib 307 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->ports[local_port] = NULL; mlxsw_sib 313 drivers/net/ethernet/mellanox/mlxsw/switchib.c static void mlxsw_sib_port_remove(struct mlxsw_sib *mlxsw_sib, u8 local_port) mlxsw_sib 315 drivers/net/ethernet/mellanox/mlxsw/switchib.c __mlxsw_sib_port_remove(mlxsw_sib, local_port); mlxsw_sib 316 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_port_fini(mlxsw_sib->core, local_port); mlxsw_sib 319 drivers/net/ethernet/mellanox/mlxsw/switchib.c static void mlxsw_sib_ports_remove(struct mlxsw_sib *mlxsw_sib) mlxsw_sib 324 drivers/net/ethernet/mellanox/mlxsw/switchib.c if (mlxsw_sib_port_created(mlxsw_sib, i)) mlxsw_sib 325 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_port_remove(mlxsw_sib, i); mlxsw_sib 326 drivers/net/ethernet/mellanox/mlxsw/switchib.c kfree(mlxsw_sib->ports); mlxsw_sib 329 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int mlxsw_sib_ports_create(struct mlxsw_sib *mlxsw_sib) mlxsw_sib 337 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->ports = kzalloc(alloc_size, GFP_KERNEL); mlxsw_sib 338 drivers/net/ethernet/mellanox/mlxsw/switchib.c if (!mlxsw_sib->ports) mlxsw_sib 342 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_sib_port_module_info_get(mlxsw_sib, i, &module, mlxsw_sib 348 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_sib_port_create(mlxsw_sib, i, module, width); mlxsw_sib 357 drivers/net/ethernet/mellanox/mlxsw/switchib.c if (mlxsw_sib_port_created(mlxsw_sib, i)) mlxsw_sib 358 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_port_remove(mlxsw_sib, i); mlxsw_sib 359 drivers/net/ethernet/mellanox/mlxsw/switchib.c kfree(mlxsw_sib->ports); mlxsw_sib 378 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = priv; mlxsw_sib 384 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_port = mlxsw_sib->ports[local_port]; mlxsw_sib 386 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_warn(mlxsw_sib->bus_info->dev, "Port %d: Link event received for non-existent port\n", mlxsw_sib 399 drivers/net/ethernet/mellanox/mlxsw/switchib.c static int mlxsw_sib_taps_init(struct mlxsw_sib *mlxsw_sib) mlxsw_sib 405 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_core_trap_register(mlxsw_sib->core, mlxsw_sib 407 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib); mlxsw_sib 416 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_trap_unregister(mlxsw_sib->core, mlxsw_sib 418 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib); mlxsw_sib 424 drivers/net/ethernet/mellanox/mlxsw/switchib.c static void mlxsw_sib_traps_fini(struct mlxsw_sib *mlxsw_sib) mlxsw_sib 429 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_core_trap_unregister(mlxsw_sib->core, mlxsw_sib 430 drivers/net/ethernet/mellanox/mlxsw/switchib.c &mlxsw_sib_listener[i], mlxsw_sib); mlxsw_sib 451 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_core_driver_priv(mlxsw_core); mlxsw_sib 454 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->core = mlxsw_core; mlxsw_sib 455 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib->bus_info = mlxsw_bus_info; mlxsw_sib 457 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_sib_hw_id_get(mlxsw_sib); mlxsw_sib 459 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Failed to get switch HW ID\n"); mlxsw_sib 463 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_sib_ports_create(mlxsw_sib); mlxsw_sib 465 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Failed to create ports\n"); mlxsw_sib 469 drivers/net/ethernet/mellanox/mlxsw/switchib.c err = mlxsw_sib_taps_init(mlxsw_sib); mlxsw_sib 471 drivers/net/ethernet/mellanox/mlxsw/switchib.c dev_err(mlxsw_sib->bus_info->dev, "Failed to set traps\n"); mlxsw_sib 478 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_ports_remove(mlxsw_sib); mlxsw_sib 484 drivers/net/ethernet/mellanox/mlxsw/switchib.c struct mlxsw_sib *mlxsw_sib = mlxsw_core_driver_priv(mlxsw_core); mlxsw_sib 486 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_traps_fini(mlxsw_sib); mlxsw_sib 487 drivers/net/ethernet/mellanox/mlxsw/switchib.c mlxsw_sib_ports_remove(mlxsw_sib); mlxsw_sib 507 drivers/net/ethernet/mellanox/mlxsw/switchib.c .priv_size = sizeof(struct mlxsw_sib), mlxsw_sib 518 drivers/net/ethernet/mellanox/mlxsw/switchib.c .priv_size = sizeof(struct mlxsw_sib),