Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Matthew Garrett and committed by
James Bottomley
e5a44df8 cf16123c

+5
+5
drivers/scsi/hpsa.c
··· 23 23 #include <linux/interrupt.h> 24 24 #include <linux/types.h> 25 25 #include <linux/pci.h> 26 + #include <linux/pci-aspm.h> 26 27 #include <linux/kernel.h> 27 28 #include <linux/slab.h> 28 29 #include <linux/delay.h> ··· 3923 3922 dev_warn(&h->pdev->dev, "controller appears to be disabled\n"); 3924 3923 return -ENODEV; 3925 3924 } 3925 + 3926 + pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S | 3927 + PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM); 3928 + 3926 3929 err = pci_enable_device(h->pdev); 3927 3930 if (err) { 3928 3931 dev_warn(&h->pdev->dev, "unable to enable PCI device\n");