1 // SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB 2 /* Copyright (c) 2020, Mellanox Technologies inc. All rights reserved. */ 3 4 #include "en/devlink.h" 5 6 int mlx5e_devlink_port_register(struct mlx5e_priv *priv) 7 { 8 struct devlink *devlink = priv_to_devlink(priv->mdev); 9 10 if (mlx5_core_is_pf(priv->mdev)) 11 devlink_port_attrs_set(&priv->dl_port, 12 DEVLINK_PORT_FLAVOUR_PHYSICAL, 13 PCI_FUNC(priv->mdev->pdev->devfn), 14 false, 0, 15 NULL, 0); 16 else 17 devlink_port_attrs_set(&priv->dl_port, 18 DEVLINK_PORT_FLAVOUR_VIRTUAL, 19 0, false, 0, NULL, 0); 20 21 return devlink_port_register(devlink, &priv->dl_port, 1); 22 } 23 24 void mlx5e_devlink_port_type_eth_set(struct mlx5e_priv *priv) 25 { 26 devlink_port_type_eth_set(&priv->dl_port, priv->netdev); 27 } 28 29 void mlx5e_devlink_port_unregister(struct mlx5e_priv *priv) 30 { 31 devlink_port_unregister(&priv->dl_port); 32 } 33 34 struct devlink_port *mlx5e_get_devlink_port(struct net_device *dev) 35 { 36 struct mlx5e_priv *priv = netdev_priv(dev); 37 38 return &priv->dl_port; 39 } 40