mlxsw_m            32 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m;
mlxsw_m            37 drivers/net/ethernet/mellanox/mlxsw/minimal.c static int mlxsw_m_base_mac_get(struct mlxsw_m *mlxsw_m)
mlxsw_m            42 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(spad), spad_pl);
mlxsw_m            45 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_reg_spad_base_mac_memcpy_from(spad_pl, mlxsw_m->base_mac);
mlxsw_m            58 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
mlxsw_m            60 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	return mlxsw_core_port_devlink_port_get(mlxsw_m->core,
mlxsw_m            74 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
mlxsw_m            76 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	strlcpy(drvinfo->driver, mlxsw_m->bus_info->device_kind,
mlxsw_m            80 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		 mlxsw_m->bus_info->fw_rev.major,
mlxsw_m            81 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		 mlxsw_m->bus_info->fw_rev.minor,
mlxsw_m            82 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		 mlxsw_m->bus_info->fw_rev.subminor);
mlxsw_m            83 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	strlcpy(drvinfo->bus_info, mlxsw_m->bus_info->device_name,
mlxsw_m            91 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
mlxsw_m           101 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_core *core = mlxsw_m_port->mlxsw_m->core;
mlxsw_m           114 drivers/net/ethernet/mellanox/mlxsw/minimal.c mlxsw_m_port_module_info_get(struct mlxsw_m *mlxsw_m, u8 local_port,
mlxsw_m           121 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(pmlp), pmlp_pl);
mlxsw_m           133 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m = mlxsw_m_port->mlxsw_m;
mlxsw_m           139 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_reg_query(mlxsw_m->core, MLXSW_REG(ppad), ppad_pl);
mlxsw_m           152 drivers/net/ethernet/mellanox/mlxsw/minimal.c mlxsw_m_port_create(struct mlxsw_m *mlxsw_m, u8 local_port, u8 module)
mlxsw_m           158 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_core_port_init(mlxsw_m->core, local_port,
mlxsw_m           160 drivers/net/ethernet/mellanox/mlxsw/minimal.c 				   mlxsw_m->base_mac,
mlxsw_m           161 drivers/net/ethernet/mellanox/mlxsw/minimal.c 				   sizeof(mlxsw_m->base_mac));
mlxsw_m           163 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		dev_err(mlxsw_m->bus_info->dev, "Port %d: Failed to init core port\n",
mlxsw_m           174 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	SET_NETDEV_DEV(dev, mlxsw_m->bus_info->dev);
mlxsw_m           177 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m_port->mlxsw_m = mlxsw_m;
mlxsw_m           186 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		dev_err(mlxsw_m->bus_info->dev, "Port %d: Unable to get port mac address\n",
mlxsw_m           192 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->ports[local_port] = mlxsw_m_port;
mlxsw_m           195 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		dev_err(mlxsw_m->bus_info->dev, "Port %d: Failed to register netdev\n",
mlxsw_m           200 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_core_port_eth_set(mlxsw_m->core, mlxsw_m_port->local_port,
mlxsw_m           206 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->ports[local_port] = NULL;
mlxsw_m           210 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_core_port_fini(mlxsw_m->core, local_port);
mlxsw_m           214 drivers/net/ethernet/mellanox/mlxsw/minimal.c static void mlxsw_m_port_remove(struct mlxsw_m *mlxsw_m, u8 local_port)
mlxsw_m           216 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m_port *mlxsw_m_port = mlxsw_m->ports[local_port];
mlxsw_m           218 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_core_port_clear(mlxsw_m->core, local_port, mlxsw_m);
mlxsw_m           220 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->ports[local_port] = NULL;
mlxsw_m           222 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_core_port_fini(mlxsw_m->core, local_port);
mlxsw_m           225 drivers/net/ethernet/mellanox/mlxsw/minimal.c static int mlxsw_m_port_module_map(struct mlxsw_m *mlxsw_m, u8 local_port,
mlxsw_m           232 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_m_port_module_info_get(mlxsw_m, local_port, &module,
mlxsw_m           243 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->module_to_port[module] = ++mlxsw_m->max_ports;
mlxsw_m           248 drivers/net/ethernet/mellanox/mlxsw/minimal.c static void mlxsw_m_port_module_unmap(struct mlxsw_m *mlxsw_m, u8 module)
mlxsw_m           250 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->module_to_port[module] = -1;
mlxsw_m           253 drivers/net/ethernet/mellanox/mlxsw/minimal.c static int mlxsw_m_ports_create(struct mlxsw_m *mlxsw_m)
mlxsw_m           255 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	unsigned int max_ports = mlxsw_core_max_ports(mlxsw_m->core);
mlxsw_m           260 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->ports = kcalloc(max_ports, sizeof(*mlxsw_m->ports),
mlxsw_m           262 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	if (!mlxsw_m->ports)
mlxsw_m           265 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->module_to_port = kmalloc_array(max_ports, sizeof(int),
mlxsw_m           267 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	if (!mlxsw_m->module_to_port) {
mlxsw_m           274 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		mlxsw_m->module_to_port[i] = -1;
mlxsw_m           278 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		err = mlxsw_m_port_module_map(mlxsw_m, i, &last_module);
mlxsw_m           284 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	for (i = 0; i < mlxsw_m->max_ports; i++) {
mlxsw_m           285 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		if (mlxsw_m->module_to_port[i] > 0) {
mlxsw_m           286 drivers/net/ethernet/mellanox/mlxsw/minimal.c 			err = mlxsw_m_port_create(mlxsw_m,
mlxsw_m           287 drivers/net/ethernet/mellanox/mlxsw/minimal.c 						  mlxsw_m->module_to_port[i],
mlxsw_m           298 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		if (mlxsw_m->module_to_port[i] > 0)
mlxsw_m           299 drivers/net/ethernet/mellanox/mlxsw/minimal.c 			mlxsw_m_port_remove(mlxsw_m,
mlxsw_m           300 drivers/net/ethernet/mellanox/mlxsw/minimal.c 					    mlxsw_m->module_to_port[i]);
mlxsw_m           305 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		mlxsw_m_port_module_unmap(mlxsw_m, i);
mlxsw_m           306 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	kfree(mlxsw_m->module_to_port);
mlxsw_m           308 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	kfree(mlxsw_m->ports);
mlxsw_m           312 drivers/net/ethernet/mellanox/mlxsw/minimal.c static void mlxsw_m_ports_remove(struct mlxsw_m *mlxsw_m)
mlxsw_m           316 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	for (i = 0; i < mlxsw_m->max_ports; i++) {
mlxsw_m           317 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		if (mlxsw_m->module_to_port[i] > 0) {
mlxsw_m           318 drivers/net/ethernet/mellanox/mlxsw/minimal.c 			mlxsw_m_port_remove(mlxsw_m,
mlxsw_m           319 drivers/net/ethernet/mellanox/mlxsw/minimal.c 					    mlxsw_m->module_to_port[i]);
mlxsw_m           320 drivers/net/ethernet/mellanox/mlxsw/minimal.c 			mlxsw_m_port_module_unmap(mlxsw_m, i);
mlxsw_m           324 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	kfree(mlxsw_m->module_to_port);
mlxsw_m           325 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	kfree(mlxsw_m->ports);
mlxsw_m           331 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m = mlxsw_core_driver_priv(mlxsw_core);
mlxsw_m           334 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->core = mlxsw_core;
mlxsw_m           335 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m->bus_info = mlxsw_bus_info;
mlxsw_m           337 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_m_base_mac_get(mlxsw_m);
mlxsw_m           339 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		dev_err(mlxsw_m->bus_info->dev, "Failed to get base mac\n");
mlxsw_m           343 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	err = mlxsw_m_ports_create(mlxsw_m);
mlxsw_m           345 drivers/net/ethernet/mellanox/mlxsw/minimal.c 		dev_err(mlxsw_m->bus_info->dev, "Failed to create ports\n");
mlxsw_m           354 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	struct mlxsw_m *mlxsw_m = mlxsw_core_driver_priv(mlxsw_core);
mlxsw_m           356 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	mlxsw_m_ports_remove(mlxsw_m);
mlxsw_m           363 drivers/net/ethernet/mellanox/mlxsw/minimal.c 	.priv_size		= sizeof(struct mlxsw_m),