[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>
This commit is contained in:
committed by
James Bottomley
parent
6eaf46fdc7
commit
02ec19c82e
@@ -28,6 +28,12 @@ boot parameter "hpsa_allow_any=1" is specified, however these are not tested
|
|||||||
nor supported by HP with this driver. For older Smart Arrays, the cciss
|
nor supported by HP with this driver. For older Smart Arrays, the cciss
|
||||||
driver should still be used.
|
driver should still be used.
|
||||||
|
|
||||||
|
The "hpsa_simple_mode=1" boot parameter may be used to prevent the driver from
|
||||||
|
putting the controller into "performant" mode. The difference is that with simple
|
||||||
|
mode, each command completion requires an interrupt, while with "performant mode"
|
||||||
|
(the default, and ordinarily better performing) it is possible to have multiple
|
||||||
|
command completions indicated by a single interrupt.
|
||||||
|
|
||||||
HPSA specific entries in /sys
|
HPSA specific entries in /sys
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
|
||||||
|
@@ -74,6 +74,10 @@ static int hpsa_allow_any;
|
|||||||
module_param(hpsa_allow_any, int, S_IRUGO|S_IWUSR);
|
module_param(hpsa_allow_any, int, S_IRUGO|S_IWUSR);
|
||||||
MODULE_PARM_DESC(hpsa_allow_any,
|
MODULE_PARM_DESC(hpsa_allow_any,
|
||||||
"Allow hpsa driver to access unknown HP Smart Array hardware");
|
"Allow hpsa driver to access unknown HP Smart Array hardware");
|
||||||
|
static int hpsa_simple_mode;
|
||||||
|
module_param(hpsa_simple_mode, int, S_IRUGO|S_IWUSR);
|
||||||
|
MODULE_PARM_DESC(hpsa_simple_mode,
|
||||||
|
"Use 'simple mode' rather than 'performant mode'");
|
||||||
|
|
||||||
/* define the PCI info for the cards we can control */
|
/* define the PCI info for the cards we can control */
|
||||||
static const struct pci_device_id hpsa_pci_device_id[] = {
|
static 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)
|
|||||||
{
|
{
|
||||||
u32 trans_support;
|
u32 trans_support;
|
||||||
|
|
||||||
|
if (hpsa_simple_mode)
|
||||||
|
return;
|
||||||
|
|
||||||
trans_support = readl(&(h->cfgtable->TransportSupport));
|
trans_support = readl(&(h->cfgtable->TransportSupport));
|
||||||
if (!(trans_support & PERFORMANT_MODE))
|
if (!(trans_support & PERFORMANT_MODE))
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user