Commit e5a44df8 authored by Matthew Garrett's avatar Matthew Garrett Committed by James Bottomley

[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: default avatarMatthew Garrett <mjg@redhat.com>
Cc: stable@kernel.org
Acked-by: default avatarMike Miller <mike.miller@hp.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent cf16123c
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
#include <linux/interrupt.h> #include <linux/interrupt.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/pci-aspm.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/delay.h> #include <linux/delay.h>
...@@ -3922,6 +3923,10 @@ static int __devinit hpsa_pci_init(struct ctlr_info *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"); dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
return -ENODEV; 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); err = pci_enable_device(h->pdev);
if (err) { if (err) {
dev_warn(&h->pdev->dev, "unable to enable PCI device\n"); dev_warn(&h->pdev->dev, "unable to enable PCI device\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment