_base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
                int hba_msix_vector_count)
 {
-       enum pci_bus_speed speed = PCI_SPEED_UNKNOWN;
+       u16 lnksta, speed;
 
        if (perf_mode == MPT_PERF_MODE_IOPS ||
            perf_mode == MPT_PERF_MODE_LATENCY) {
 
        if (perf_mode == MPT_PERF_MODE_DEFAULT) {
 
-               speed = pcie_get_speed_cap(ioc->pdev);
-               dev_info(&ioc->pdev->dev, "PCIe device speed is %s\n",
-                    speed == PCIE_SPEED_2_5GT ? "2.5GHz" :
-                    speed == PCIE_SPEED_5_0GT ? "5.0GHz" :
-                    speed == PCIE_SPEED_8_0GT ? "8.0GHz" :
-                    speed == PCIE_SPEED_16_0GT ? "16.0GHz" :
-                    "Unknown");
+               pcie_capability_read_word(ioc->pdev, PCI_EXP_LNKSTA, &lnksta);
+               speed = lnksta & PCI_EXP_LNKSTA_CLS;
 
-               if (speed < PCIE_SPEED_16_0GT) {
+               if (speed < 0x4) {
                        ioc->high_iops_queues = 0;
                        return;
                }