// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB /* Copyright (c) 2020, Mellanox Technologies inc. All rights reserved. */ #include "en/devlink.h" int mlx5e_devlink_port_register(struct mlx5e_priv *priv) { struct devlink *devlink = priv_to_devlink(priv->mdev); if (mlx5_core_is_pf(priv->mdev)) devlink_port_attrs_set(&priv->dl_port, DEVLINK_PORT_FLAVOUR_PHYSICAL, PCI_FUNC(priv->mdev->pdev->devfn), false, 0, NULL, 0); else devlink_port_attrs_set(&priv->dl_port, DEVLINK_PORT_FLAVOUR_VIRTUAL, 0, false, 0, NULL, 0); return devlink_port_register(devlink, &priv->dl_port, 1); } void mlx5e_devlink_port_type_eth_set(struct mlx5e_priv *priv) { devlink_port_type_eth_set(&priv->dl_port, priv->netdev); } void mlx5e_devlink_port_unregister(struct mlx5e_priv *priv) { devlink_port_unregister(&priv->dl_port); } struct devlink_port *mlx5e_get_devlink_port(struct net_device *dev) { struct mlx5e_priv *priv = netdev_priv(dev); return &priv->dl_port; }