forked from Minki/linux
[SCSI] megaraid_sas: Add input parameter for max_sectors
Driver add the input parameters support for max_sectors for megaraid sas gen2 chip. Customer can set the max_sectors support to 1MB for gen2 chip during the driver load. Signed-off-by Bo Yang <bo.yang@lsi.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
parent
837f5fe89c
commit
1fd1068516
@ -56,6 +56,15 @@ module_param_named(poll_mode_io, poll_mode_io, int, 0);
|
||||
MODULE_PARM_DESC(poll_mode_io,
|
||||
"Complete cmds from IO path, (default=0)");
|
||||
|
||||
/*
|
||||
* Number of sectors per IO command
|
||||
* Will be set in megasas_init_mfi if user does not provide
|
||||
*/
|
||||
static unsigned int max_sectors;
|
||||
module_param_named(max_sectors, max_sectors, int, 0);
|
||||
MODULE_PARM_DESC(max_sectors,
|
||||
"Maximum number of sectors per IO command");
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(MEGASAS_VERSION);
|
||||
MODULE_AUTHOR("megaraidlinux@lsi.com");
|
||||
@ -3586,6 +3595,27 @@ static int megasas_io_attach(struct megasas_instance *instance)
|
||||
instance->max_fw_cmds - MEGASAS_INT_CMDS;
|
||||
host->this_id = instance->init_id;
|
||||
host->sg_tablesize = instance->max_num_sge;
|
||||
/*
|
||||
* Check if the module parameter value for max_sectors can be used
|
||||
*/
|
||||
if (max_sectors && max_sectors < instance->max_sectors_per_req)
|
||||
instance->max_sectors_per_req = max_sectors;
|
||||
else {
|
||||
if (max_sectors) {
|
||||
if (((instance->pdev->device ==
|
||||
PCI_DEVICE_ID_LSI_SAS1078GEN2) ||
|
||||
(instance->pdev->device ==
|
||||
PCI_DEVICE_ID_LSI_SAS0079GEN2)) &&
|
||||
(max_sectors <= MEGASAS_MAX_SECTORS)) {
|
||||
instance->max_sectors_per_req = max_sectors;
|
||||
} else {
|
||||
printk(KERN_INFO "megasas: max_sectors should be > 0"
|
||||
"and <= %d (or < 1MB for GEN2 controller)\n",
|
||||
instance->max_sectors_per_req);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
host->max_sectors = instance->max_sectors_per_req;
|
||||
host->cmd_per_lun = 128;
|
||||
host->max_channel = MEGASAS_MAX_CHANNELS - 1;
|
||||
|
@ -706,6 +706,7 @@ struct megasas_ctrl_info {
|
||||
#define MEGASAS_MAX_LD_IDS (MEGASAS_MAX_LD_CHANNELS * \
|
||||
MEGASAS_MAX_DEV_PER_CHANNEL)
|
||||
|
||||
#define MEGASAS_MAX_SECTORS (2*1024)
|
||||
#define MEGASAS_DBG_LVL 1
|
||||
|
||||
#define MEGASAS_FW_BUSY 1
|
||||
|
Loading…
Reference in New Issue
Block a user