@@ -4011,27 +4011,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_bandwidth_available(mdev->pdev, &speed, &width, &bw, NULL);
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;
}