megaraid_sas : Move controller's queue depth calculation in adapter specific function
Signed-off-by: Kashyap Desai <kashyap.desai@avagotech.com> Signed-off-by: Sumit Saxena <sumit.saxena@avagotech.com> Reviewed-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: James Bottomley <JBottomley@Odin.com>
This commit is contained in:
parent
4a5c814d93
commit
f26ac3a1a5
|
@ -1084,6 +1084,7 @@ enum MR_SCSI_CMD_TYPE {
|
|||
#define MEGASAS_SKINNY_INT_CMDS 5
|
||||
#define MEGASAS_FUSION_INTERNAL_CMDS 5
|
||||
#define MEGASAS_FUSION_IOCTL_CMDS 3
|
||||
#define MEGASAS_MFI_IOCTL_CMDS 27
|
||||
|
||||
#define MEGASAS_MAX_MSIX_QUEUES 128
|
||||
/*
|
||||
|
|
|
@ -4353,6 +4353,21 @@ megasas_init_adapter_mfi(struct megasas_instance *instance)
|
|||
instance->max_mfi_cmds = instance->max_fw_cmds;
|
||||
instance->max_num_sge = (instance->instancet->read_fw_status_reg(reg_set) & 0xFF0000) >>
|
||||
0x10;
|
||||
/*
|
||||
* For MFI skinny adapters, MEGASAS_SKINNY_INT_CMDS commands
|
||||
* are reserved for IOCTL + driver's internal DCMDs.
|
||||
*/
|
||||
if ((instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0073SKINNY) ||
|
||||
(instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0071SKINNY)) {
|
||||
instance->max_scsi_cmds = (instance->max_fw_cmds -
|
||||
MEGASAS_SKINNY_INT_CMDS);
|
||||
sema_init(&instance->ioctl_sem, MEGASAS_SKINNY_INT_CMDS);
|
||||
} else {
|
||||
instance->max_scsi_cmds = (instance->max_fw_cmds -
|
||||
MEGASAS_INT_CMDS);
|
||||
sema_init(&instance->ioctl_sem, (MEGASAS_MFI_IOCTL_CMDS));
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a pool of commands
|
||||
*/
|
||||
|
@ -4788,30 +4803,6 @@ static int megasas_init_fw(struct megasas_instance *instance)
|
|||
if (tmp_sectors && (instance->max_sectors_per_req > tmp_sectors))
|
||||
instance->max_sectors_per_req = tmp_sectors;
|
||||
|
||||
/*
|
||||
* 1. For fusion adapters, 3 commands for IOCTL and 5 commands
|
||||
* for driver's internal DCMDs.
|
||||
* 2. For MFI skinny adapters, 5 commands for IOCTL + driver's
|
||||
* internal DCMDs.
|
||||
* 3. For rest of MFI adapters, 27 commands reserved for IOCTLs
|
||||
* and 5 commands for drivers's internal DCMD.
|
||||
*/
|
||||
if (instance->ctrl_context) {
|
||||
instance->max_scsi_cmds = instance->max_fw_cmds -
|
||||
(MEGASAS_FUSION_INTERNAL_CMDS +
|
||||
MEGASAS_FUSION_IOCTL_CMDS);
|
||||
sema_init(&instance->ioctl_sem, MEGASAS_FUSION_IOCTL_CMDS);
|
||||
} else if ((instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0073SKINNY) ||
|
||||
(instance->pdev->device == PCI_DEVICE_ID_LSI_SAS0071SKINNY)) {
|
||||
instance->max_scsi_cmds = instance->max_fw_cmds -
|
||||
MEGASAS_SKINNY_INT_CMDS;
|
||||
sema_init(&instance->ioctl_sem, MEGASAS_SKINNY_INT_CMDS);
|
||||
} else {
|
||||
instance->max_scsi_cmds = instance->max_fw_cmds -
|
||||
MEGASAS_INT_CMDS;
|
||||
sema_init(&instance->ioctl_sem, (MEGASAS_INT_CMDS - 5));
|
||||
}
|
||||
|
||||
/* Check for valid throttlequeuedepth module parameter */
|
||||
if (throttlequeuedepth &&
|
||||
throttlequeuedepth <= instance->max_scsi_cmds)
|
||||
|
|
|
@ -1060,6 +1060,15 @@ megasas_init_adapter_fusion(struct megasas_instance *instance)
|
|||
for (i = 0 ; i < count; i++)
|
||||
fusion->last_reply_idx[i] = 0;
|
||||
|
||||
/*
|
||||
* For fusion adapters, 3 commands for IOCTL and 5 commands
|
||||
* for driver's internal DCMDs.
|
||||
*/
|
||||
instance->max_scsi_cmds = instance->max_fw_cmds -
|
||||
(MEGASAS_FUSION_INTERNAL_CMDS +
|
||||
MEGASAS_FUSION_IOCTL_CMDS);
|
||||
sema_init(&instance->ioctl_sem, MEGASAS_FUSION_IOCTL_CMDS);
|
||||
|
||||
/*
|
||||
* Allocate memory for descriptors
|
||||
* Create a pool of commands
|
||||
|
|
Loading…
Reference in New Issue