diff options
| -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 | */ |
