aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen M. Cameron <scameron@beardog.cce.hp.com>2011-01-06 15:48:29 -0500
committerJames Bottomley <James.Bottomley@suse.de>2011-01-24 12:30:43 -0500
commit02ec19c82e87e3748d326ca5e15e7ddb18c73476 (patch)
treebec075bdfbe16a1ca5cc4df9ada03ef9a14a01b5
parent6eaf46fdc719991a3ccda1e14b274e9adb515978 (diff)
[SCSI] hpsa: allow driver to put controller in either simple or performant mode
Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
-rw-r--r--Documentation/scsi/hpsa.txt6
-rw-r--r--drivers/scsi/hpsa.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/Documentation/scsi/hpsa.txt b/Documentation/scsi/hpsa.txt
index dca658362cbf..b14e6ee00a95 100644
--- a/Documentation/scsi/hpsa.txt
+++ b/Documentation/scsi/hpsa.txt
@@ -28,6 +28,12 @@ boot parameter "hpsa_allow_any=1" is specified, however these are not tested
28nor supported by HP with this driver. For older Smart Arrays, the cciss 28nor supported by HP with this driver. For older Smart Arrays, the cciss
29driver should still be used. 29driver should still be used.
30 30
31The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
32putting the controller into "performant" mode. The difference is that with simple
33mode, each command completion requires an interrupt, while with "performant mode"
34(the default, and ordinarily better performing) it is possible to have multiple
35command completions indicated by a single interrupt.
36
31HPSA specific entries in /sys 37HPSA specific entries in /sys
32----------------------------- 38-----------------------------
33 39
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 4fb62c2aac05..10076f1868e0 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -74,6 +74,10 @@ static int hpsa_allow_any;
74module_param(hpsa_allow_any, int, S_IRUGO|S_IWUSR); 74module_param(hpsa_allow_any, int, S_IRUGO|S_IWUSR);
75MODULE_PARM_DESC(hpsa_allow_any, 75MODULE_PARM_DESC(hpsa_allow_any,
76 "Allow hpsa driver to access unknown HP Smart Array hardware"); 76 "Allow hpsa driver to access unknown HP Smart Array hardware");
77static int hpsa_simple_mode;
78module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR);
79MODULE_PARM_DESC(hpsa_simple_mode,
80 "Use 'simple mode' rather than 'performant mode'");
77 81
78/* define the PCI info for the cards we can control */ 82/* define the PCI info for the cards we can control */
79static const struct pci_device_id hpsa_pci_device_id[] = { 83static const struct pci_device_id hpsa_pci_device_id[] = {
@@ -4038,6 +4042,9 @@ static __devinit void hpsa_put_ctlr_into_performant_mode(struct ctlr_info *h)
4038{ 4042{
4039 u32 trans_support; 4043 u32 trans_support;
4040 4044
4045 if (hpsa_simple_mode)
4046 return;
4047
4041 trans_support = readl(&(h->cfgtable->TransportSupport)); 4048 trans_support = readl(&(h->cfgtable->TransportSupport));
4042 if (!(trans_support & PERFORMANT_MODE)) 4049 if (!(trans_support & PERFORMANT_MODE))
4043 return; 4050 return;