diff options
author | Mahesh Rajashekhara <Mahesh_Rajashekhara@pmc-sierra.com> | 2013-01-10 07:22:51 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-01-29 22:07:48 -0500 |
commit | 2b4df6ea53d05625e9ca2dd73bc0e831976e009d (patch) | |
tree | 664c2d92d7a5700988d42e62c504f428bd7b11d6 /drivers/scsi/aacraid | |
parent | b0d5e15cc4d76efacdfe8d974f50d2afc25123fe (diff) |
[SCSI] aacraid: 1024 max outstanding command support for Series 7 and above
Signed-off-by: Mahesh Rajashekhara <Mahesh_Rajashekhara@pmc-sierra.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/aacraid')
-rw-r--r-- | drivers/scsi/aacraid/aacraid.h | 8 | ||||
-rw-r--r-- | drivers/scsi/aacraid/comminit.c | 11 |
2 files changed, 16 insertions, 3 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 742f5d7eb0f5..a6f7190c09a4 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -12,13 +12,13 @@ | |||
12 | *----------------------------------------------------------------------------*/ | 12 | *----------------------------------------------------------------------------*/ |
13 | 13 | ||
14 | #ifndef AAC_DRIVER_BUILD | 14 | #ifndef AAC_DRIVER_BUILD |
15 | # define AAC_DRIVER_BUILD 29801 | 15 | # define AAC_DRIVER_BUILD 30000 |
16 | # define AAC_DRIVER_BRANCH "-ms" | 16 | # define AAC_DRIVER_BRANCH "-ms" |
17 | #endif | 17 | #endif |
18 | #define MAXIMUM_NUM_CONTAINERS 32 | 18 | #define MAXIMUM_NUM_CONTAINERS 32 |
19 | 19 | ||
20 | #define AAC_NUM_MGT_FIB 8 | 20 | #define AAC_NUM_MGT_FIB 8 |
21 | #define AAC_NUM_IO_FIB (512 - AAC_NUM_MGT_FIB) | 21 | #define AAC_NUM_IO_FIB (1024 - AAC_NUM_MGT_FIB) |
22 | #define AAC_NUM_FIB (AAC_NUM_IO_FIB + AAC_NUM_MGT_FIB) | 22 | #define AAC_NUM_FIB (AAC_NUM_IO_FIB + AAC_NUM_MGT_FIB) |
23 | 23 | ||
24 | #define AAC_MAX_LUN (8) | 24 | #define AAC_MAX_LUN (8) |
@@ -36,6 +36,10 @@ | |||
36 | #define CONTAINER_TO_ID(cont) (cont) | 36 | #define CONTAINER_TO_ID(cont) (cont) |
37 | #define CONTAINER_TO_LUN(cont) (0) | 37 | #define CONTAINER_TO_LUN(cont) (0) |
38 | 38 | ||
39 | #define PMC_DEVICE_S7 0x28c | ||
40 | #define PMC_DEVICE_S8 0x28d | ||
41 | #define PMC_DEVICE_S9 0x28f | ||
42 | |||
39 | #define aac_phys_to_logical(x) ((x)+1) | 43 | #define aac_phys_to_logical(x) ((x)+1) |
40 | #define aac_logical_to_phys(x) ((x)?(x)-1:0) | 44 | #define aac_logical_to_phys(x) ((x)?(x)-1:0) |
41 | 45 | ||
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c index 8e5d3be16127..3f759957f4b4 100644 --- a/drivers/scsi/aacraid/comminit.c +++ b/drivers/scsi/aacraid/comminit.c | |||
@@ -404,7 +404,13 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev) | |||
404 | dev->max_fib_size = status[1] & 0xFFE0; | 404 | dev->max_fib_size = status[1] & 0xFFE0; |
405 | host->sg_tablesize = status[2] >> 16; | 405 | host->sg_tablesize = status[2] >> 16; |
406 | dev->sg_tablesize = status[2] & 0xFFFF; | 406 | dev->sg_tablesize = status[2] & 0xFFFF; |
407 | host->can_queue = (status[3] & 0xFFFF) - AAC_NUM_MGT_FIB; | 407 | if (dev->pdev->device == PMC_DEVICE_S7 || |
408 | dev->pdev->device == PMC_DEVICE_S8 || | ||
409 | dev->pdev->device == PMC_DEVICE_S9) | ||
410 | host->can_queue = ((status[3] >> 16) ? (status[3] >> 16) : | ||
411 | (status[3] & 0xFFFF)) - AAC_NUM_MGT_FIB; | ||
412 | else | ||
413 | host->can_queue = (status[3] & 0xFFFF) - AAC_NUM_MGT_FIB; | ||
408 | dev->max_num_aif = status[4] & 0xFFFF; | 414 | dev->max_num_aif = status[4] & 0xFFFF; |
409 | /* | 415 | /* |
410 | * NOTE: | 416 | * NOTE: |
@@ -452,6 +458,9 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev) | |||
452 | } | 458 | } |
453 | } | 459 | } |
454 | 460 | ||
461 | if (host->can_queue > AAC_NUM_IO_FIB) | ||
462 | host->can_queue = AAC_NUM_IO_FIB; | ||
463 | |||
455 | /* | 464 | /* |
456 | * Ok now init the communication subsystem | 465 | * Ok now init the communication subsystem |
457 | */ | 466 | */ |