aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/mpt3sas/mpt3sas_base.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
index d55f13495b20..8a47e0238a11 100644
--- a/drivers/scsi/mpt3sas/mpt3sas_base.c
+++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
@@ -2979,7 +2979,7 @@ static void
_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) {
@@ -2989,15 +2989,10 @@ _base_check_and_enable_high_iops_queues(struct MPT3SAS_ADAPTER *ioc,
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;
}