diff options
author | Andrew Vasquez <andrew.vasquez@qlogic.com> | 2005-10-27 14:09:48 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2005-10-28 12:52:11 -0400 |
commit | 4fdfefe52944f5c4132a372ed5c208962a73c3f2 (patch) | |
tree | 23e4c9cb3f899d82e07fcfc55d75744b919415e5 /drivers/scsi/qla2xxx/qla_os.c | |
parent | 0eedfcf0cdac30b14d1e6c99abc6604347ef0af8 (diff) |
[SCSI] qla2xxx: Add support to dynamically enable/disable ZIO.
ISP23xx and ISP24xx chips have support for an adaptive
method of posting SCSI command completions for multiple SCSI
commands during a single system interrupt.
SCSI commands are placed on the system response queue
without interrupting the host until 1) a delay timer
expires; or 2) a SCSI command completes with an error.
As long as the host software (qla2xxx) services the response
queue for completions (this polling is done during
queuecommand()) within the 'delay timer' period, the
firmware will not generate system interrupt.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_os.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_os.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 7aec93f9d423..77054d7692c4 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -61,19 +61,6 @@ MODULE_PARM_DESC(ql2xplogiabsentdevice, | |||
61 | "a Fabric scan. This is needed for several broken switches." | 61 | "a Fabric scan. This is needed for several broken switches." |
62 | "Default is 0 - no PLOGI. 1 - perfom PLOGI."); | 62 | "Default is 0 - no PLOGI. 1 - perfom PLOGI."); |
63 | 63 | ||
64 | int ql2xenablezio = 0; | ||
65 | module_param(ql2xenablezio, int, S_IRUGO|S_IRUSR); | ||
66 | MODULE_PARM_DESC(ql2xenablezio, | ||
67 | "Option to enable ZIO:If 1 then enable it otherwise" | ||
68 | " use the default set in the NVRAM." | ||
69 | " Default is 0 : disabled"); | ||
70 | |||
71 | int ql2xintrdelaytimer = 10; | ||
72 | module_param(ql2xintrdelaytimer, int, S_IRUGO|S_IRUSR); | ||
73 | MODULE_PARM_DESC(ql2xintrdelaytimer, | ||
74 | "ZIO: Waiting time for Firmware before it generates an " | ||
75 | "interrupt to the host to notify completion of request."); | ||
76 | |||
77 | int ql2xloginretrycount = 0; | 64 | int ql2xloginretrycount = 0; |
78 | module_param(ql2xloginretrycount, int, S_IRUGO|S_IRUSR); | 65 | module_param(ql2xloginretrycount, int, S_IRUGO|S_IRUSR); |
79 | MODULE_PARM_DESC(ql2xloginretrycount, | 66 | MODULE_PARM_DESC(ql2xloginretrycount, |
@@ -400,16 +387,6 @@ qla2x00_queuecommand(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) | |||
400 | if (rval != QLA_SUCCESS) | 387 | if (rval != QLA_SUCCESS) |
401 | goto qc_host_busy_free_sp; | 388 | goto qc_host_busy_free_sp; |
402 | 389 | ||
403 | /* Manage unprocessed RIO/ZIO commands in response queue. */ | ||
404 | if (ha->flags.online && ha->flags.process_response_queue && | ||
405 | ha->response_ring_ptr->signature != RESPONSE_PROCESSED) { | ||
406 | unsigned long flags; | ||
407 | |||
408 | spin_lock_irqsave(&ha->hardware_lock, flags); | ||
409 | qla2x00_process_response_queue(ha); | ||
410 | spin_unlock_irqrestore(&ha->hardware_lock, flags); | ||
411 | } | ||
412 | |||
413 | spin_lock_irq(ha->host->host_lock); | 390 | spin_lock_irq(ha->host->host_lock); |
414 | 391 | ||
415 | return 0; | 392 | return 0; |