diff options
author | Matthew Garrett <mjg@redhat.com> | 2011-11-11 17:14:23 +0100 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-11-14 17:47:01 +0100 |
commit | e5a44df85e8d78e5c2d3d2e4f59b460905691e2f (patch) | |
tree | 5d187511b46a239391a33b6e1e09a23830d28b31 /drivers/scsi | |
parent | [SCSI] aacraid: controller hangs if kernel uses non-default ASPM policy (diff) | |
download | linux-e5a44df85e8d78e5c2d3d2e4f59b460905691e2f.tar.xz linux-e5a44df85e8d78e5c2d3d2e4f59b460905691e2f.zip |
[SCSI] hpsa: Disable ASPM
The Windows driver .inf disables ASPM on hpsa devices. Do the same because the
selection of a non default ASPM policy can cause the device to hang.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Cc: stable@kernel.org
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi')
-rw-r--r-- | drivers/scsi/hpsa.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c index e76107b2ade3..865d452542be 100644 --- a/drivers/scsi/hpsa.c +++ b/drivers/scsi/hpsa.c @@ -23,6 +23,7 @@ #include <linux/interrupt.h> #include <linux/types.h> #include <linux/pci.h> +#include <linux/pci-aspm.h> #include <linux/kernel.h> #include <linux/slab.h> #include <linux/delay.h> @@ -3922,6 +3923,10 @@ static int __devinit hpsa_pci_init(struct ctlr_info *h) dev_warn(&h->pdev->dev, "controller appears to be disabled\n"); return -ENODEV; } + + pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S | + PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM); + err = pci_enable_device(h->pdev); if (err) { dev_warn(&h->pdev->dev, "unable to enable PCI device\n"); |