Commit 7ba2272c authored by Gaurav Srivastava's avatar Gaurav Srivastava Committed by Martin K. Petersen

scsi: lpfc: vmid: VMID parameter initialization

Initialize parameters such as type of VMID, max number of VMIDs supported
and timeout value for the VMID registration based on the user input.

Link: https://lore.kernel.org/r/20210608043556.274139-6-muneendra.kumar@broadcom.comReviewed-by: default avatarHannes Reinecke <hare@suse.de>
Signed-off-by: default avatarGaurav Srivastava <gaurav.srivastava@broadcom.com>
Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
Signed-off-by: default avatarMuneendra Kumar <muneendra.kumar@broadcom.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 02169e84
...@@ -6162,6 +6162,45 @@ LPFC_ATTR_RW(enable_dpp, 1, 0, 1, "Enable Direct Packet Push"); ...@@ -6162,6 +6162,45 @@ LPFC_ATTR_RW(enable_dpp, 1, 0, 1, "Enable Direct Packet Push");
*/ */
LPFC_ATTR_R(enable_mi, 1, 0, 1, "Enable MI"); LPFC_ATTR_R(enable_mi, 1, 0, 1, "Enable MI");
/*
* lpfc_max_vmid: Maximum number of VMs to be tagged. This is valid only if
* either vmid_app_header or vmid_priority_tagging is enabled.
* 4 - 255 = vmid support enabled for 4-255 VMs
* Value range is [4,255].
*/
LPFC_ATTR_RW(max_vmid, LPFC_MIN_VMID, LPFC_MIN_VMID, LPFC_MAX_VMID,
"Maximum number of VMs supported");
/*
* lpfc_vmid_inactivity_timeout: Inactivity timeout duration in hours
* 0 = Timeout is disabled
* Value range is [0,24].
*/
LPFC_ATTR_RW(vmid_inactivity_timeout, 4, 0, 24,
"Inactivity timeout in hours");
/*
* lpfc_vmid_app_header: Enable App Header VMID support
* 0 = Support is disabled (default)
* 1 = Support is enabled
* Value range is [0,1].
*/
LPFC_ATTR_RW(vmid_app_header, LPFC_VMID_APP_HEADER_DISABLE,
LPFC_VMID_APP_HEADER_DISABLE, LPFC_VMID_APP_HEADER_ENABLE,
"Enable App Header VMID support");
/*
* lpfc_vmid_priority_tagging: Enable Priority Tagging VMID support
* 0 = Support is disabled (default)
* 1 = Allow supported targets only
* 2 = Allow all targets
* Value range is [0,2].
*/
LPFC_ATTR_RW(vmid_priority_tagging, LPFC_VMID_PRIO_TAG_DISABLE,
LPFC_VMID_PRIO_TAG_DISABLE,
LPFC_VMID_PRIO_TAG_ALL_TARGETS,
"Enable Priority Tagging VMID support");
struct device_attribute *lpfc_hba_attrs[] = { struct device_attribute *lpfc_hba_attrs[] = {
&dev_attr_nvme_info, &dev_attr_nvme_info,
&dev_attr_scsi_stat, &dev_attr_scsi_stat,
...@@ -6281,6 +6320,10 @@ struct device_attribute *lpfc_hba_attrs[] = { ...@@ -6281,6 +6320,10 @@ struct device_attribute *lpfc_hba_attrs[] = {
&dev_attr_lpfc_enable_bbcr, &dev_attr_lpfc_enable_bbcr,
&dev_attr_lpfc_enable_dpp, &dev_attr_lpfc_enable_dpp,
&dev_attr_lpfc_enable_mi, &dev_attr_lpfc_enable_mi,
&dev_attr_lpfc_max_vmid,
&dev_attr_lpfc_vmid_inactivity_timeout,
&dev_attr_lpfc_vmid_app_header,
&dev_attr_lpfc_vmid_priority_tagging,
NULL, NULL,
}; };
...@@ -7357,6 +7400,11 @@ lpfc_get_cfgparam(struct lpfc_hba *phba) ...@@ -7357,6 +7400,11 @@ lpfc_get_cfgparam(struct lpfc_hba *phba)
lpfc_enable_hba_heartbeat_init(phba, lpfc_enable_hba_heartbeat); lpfc_enable_hba_heartbeat_init(phba, lpfc_enable_hba_heartbeat);
lpfc_EnableXLane_init(phba, lpfc_EnableXLane); lpfc_EnableXLane_init(phba, lpfc_EnableXLane);
/* VMID Inits */
lpfc_max_vmid_init(phba, lpfc_max_vmid);
lpfc_vmid_inactivity_timeout_init(phba, lpfc_vmid_inactivity_timeout);
lpfc_vmid_app_header_init(phba, lpfc_vmid_app_header);
lpfc_vmid_priority_tagging_init(phba, lpfc_vmid_priority_tagging);
if (phba->sli_rev != LPFC_SLI_REV4) if (phba->sli_rev != LPFC_SLI_REV4)
phba->cfg_EnableXLane = 0; phba->cfg_EnableXLane = 0;
lpfc_XLanePriority_init(phba, lpfc_XLanePriority); lpfc_XLanePriority_init(phba, lpfc_XLanePriority);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment