Newly introduced pcie_get_link_limits() function calculates maximum available BW through the PCI chain. We can use this value for mlx5e_get_pci_bw() instead of calculating ourselves. Signed-off-by: Tal Gilboa <talgi@xxxxxxxxxxxx> Reviewed-by: Tariq Toukan <tariqt@xxxxxxxxxxxx> --- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c index d2b057a..d1d7427 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -3971,27 +3971,16 @@ static int mlx5e_get_pci_bw(struct mlx5_core_dev *mdev, u32 *pci_bw) enum pcie_link_width width; enum pci_bus_speed speed; int err = 0; + int bw; - err = pcie_get_minimum_link(mdev->pdev, &speed, &width); + err = pcie_get_link_limits(mdev->pdev, &speed, &width, &bw); if (err) return err; if (speed == PCI_SPEED_UNKNOWN || width == PCIE_LNK_WIDTH_UNKNOWN) return -EINVAL; - switch (speed) { - case PCIE_SPEED_2_5GT: - *pci_bw = 2500 * width; - break; - case PCIE_SPEED_5_0GT: - *pci_bw = 5000 * width; - break; - case PCIE_SPEED_8_0GT: - *pci_bw = 8000 * width; - break; - default: - return -EINVAL; - } + *pci_bw = bw; return 0; } -- 1.8.3.1