diff options
author | Santosh Vernekar <santosh.vernekar@qlogic.com> | 2010-03-19 19:59:16 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-03-27 15:11:29 -0400 |
commit | cad454b12a23c24fd7f409402cf51434655e76c1 (patch) | |
tree | 4cf65ae456d4afab9491492ca1343d3a86167c06 /drivers/scsi/qla2xxx/qla_mbx.c | |
parent | d88a714bfefa7aed7b9cb6c3721707fcd056b472 (diff) |
[SCSI] qla2xxx: Honour "Extended BB credits" bit for CNAs.
We now enable/disable "Additional Receive Credits" in f/w based on nvram
parameter "Extended_BB_Credits" bit (i.e. Enhanced-Features: at offset 0x196).
This is applicable only for GEN2 CNAs.
Signed-off-by: Santosh Vernekar <santosh.vernekar@qlogic.com>
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_mbx.c')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_mbx.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_mbx.c b/drivers/scsi/qla2xxx/qla_mbx.c index 6e53bdbb1da8..3ba9a2b56556 100644 --- a/drivers/scsi/qla2xxx/qla_mbx.c +++ b/drivers/scsi/qla2xxx/qla_mbx.c | |||
@@ -339,6 +339,7 @@ qla2x00_load_ram(scsi_qla_host_t *vha, dma_addr_t req_dma, uint32_t risc_addr, | |||
339 | return rval; | 339 | return rval; |
340 | } | 340 | } |
341 | 341 | ||
342 | #define EXTENDED_BB_CREDITS BIT_0 | ||
342 | /* | 343 | /* |
343 | * qla2x00_execute_fw | 344 | * qla2x00_execute_fw |
344 | * Start adapter firmware. | 345 | * Start adapter firmware. |
@@ -371,7 +372,12 @@ qla2x00_execute_fw(scsi_qla_host_t *vha, uint32_t risc_addr) | |||
371 | mcp->mb[1] = MSW(risc_addr); | 372 | mcp->mb[1] = MSW(risc_addr); |
372 | mcp->mb[2] = LSW(risc_addr); | 373 | mcp->mb[2] = LSW(risc_addr); |
373 | mcp->mb[3] = 0; | 374 | mcp->mb[3] = 0; |
374 | mcp->mb[4] = 0; | 375 | if (IS_QLA81XX(ha)) { |
376 | struct nvram_81xx *nv = ha->nvram; | ||
377 | mcp->mb[4] = (nv->enhanced_features & | ||
378 | EXTENDED_BB_CREDITS); | ||
379 | } else | ||
380 | mcp->mb[4] = 0; | ||
375 | mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; | 381 | mcp->out_mb |= MBX_4|MBX_3|MBX_2|MBX_1; |
376 | mcp->in_mb |= MBX_1; | 382 | mcp->in_mb |= MBX_1; |
377 | } else { | 383 | } else { |