| From ffdadd68af5a397b8a52289ab39d62e1acb39e63 Mon Sep 17 00:00:00 2001 |
| From: ojab <ojab@ojab.ru> |
| Date: Wed, 28 Dec 2016 11:05:24 +0000 |
| Subject: scsi: mpt3sas: disable ASPM for MPI2 controllers |
| |
| From: ojab <ojab@ojab.ru> |
| |
| commit ffdadd68af5a397b8a52289ab39d62e1acb39e63 upstream. |
| |
| MPI2 controllers sometimes got lost (i.e. disappear from |
| /sys/bus/pci/devices) if ASMP is enabled. |
| |
| Signed-off-by: Slava Kardakov <ojab@ojab.ru> |
| Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=60644 |
| Acked-by: Sreekanth Reddy <Sreekanth.Reddy@broadcom.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/scsi/mpt3sas/mpt3sas_scsih.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c |
| +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c |
| @@ -51,6 +51,7 @@ |
| #include <linux/workqueue.h> |
| #include <linux/delay.h> |
| #include <linux/pci.h> |
| +#include <linux/pci-aspm.h> |
| #include <linux/interrupt.h> |
| #include <linux/aer.h> |
| #include <linux/raid_class.h> |
| @@ -8706,6 +8707,8 @@ _scsih_probe(struct pci_dev *pdev, const |
| |
| switch (hba_mpi_version) { |
| case MPI2_VERSION: |
| + pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | |
| + PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM); |
| /* Use mpt2sas driver host template for SAS 2.0 HBA's */ |
| shost = scsi_host_alloc(&mpt2sas_driver_template, |
| sizeof(struct MPT3SAS_ADAPTER)); |