diff options
-rw-r--r-- | drivers/scsi/lpfc/lpfc_attr.c | 3 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw4.h | 4 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_init.c | 7 | ||||
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.c | 5 |
4 files changed, 10 insertions, 9 deletions
diff --git a/drivers/scsi/lpfc/lpfc_attr.c b/drivers/scsi/lpfc/lpfc_attr.c index b741dcb8ee64..fbd3a563be53 100644 --- a/drivers/scsi/lpfc/lpfc_attr.c +++ b/drivers/scsi/lpfc/lpfc_attr.c | |||
@@ -4457,7 +4457,8 @@ lpfc_fcp_imax_store(struct device *dev, struct device_attribute *attr, | |||
4457 | return -EINVAL; | 4457 | return -EINVAL; |
4458 | 4458 | ||
4459 | phba->cfg_fcp_imax = (uint32_t)val; | 4459 | phba->cfg_fcp_imax = (uint32_t)val; |
4460 | for (i = 0; i < phba->io_channel_irqs; i++) | 4460 | |
4461 | for (i = 0; i < phba->io_channel_irqs; i += LPFC_MAX_EQ_DELAY_EQID_CNT) | ||
4461 | lpfc_modify_hba_eq_delay(phba, i); | 4462 | lpfc_modify_hba_eq_delay(phba, i); |
4462 | 4463 | ||
4463 | return strlen(buf); | 4464 | return strlen(buf); |
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index cfdb068a3bfc..15277705cb6b 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
@@ -1001,7 +1001,7 @@ struct eq_delay_info { | |||
1001 | uint32_t phase; | 1001 | uint32_t phase; |
1002 | uint32_t delay_multi; | 1002 | uint32_t delay_multi; |
1003 | }; | 1003 | }; |
1004 | #define LPFC_MAX_EQ_DELAY 8 | 1004 | #define LPFC_MAX_EQ_DELAY_EQID_CNT 8 |
1005 | 1005 | ||
1006 | struct sgl_page_pairs { | 1006 | struct sgl_page_pairs { |
1007 | uint32_t sgl_pg0_addr_lo; | 1007 | uint32_t sgl_pg0_addr_lo; |
@@ -1070,7 +1070,7 @@ struct lpfc_mbx_modify_eq_delay { | |||
1070 | union { | 1070 | union { |
1071 | struct { | 1071 | struct { |
1072 | uint32_t num_eq; | 1072 | uint32_t num_eq; |
1073 | struct eq_delay_info eq[LPFC_MAX_EQ_DELAY]; | 1073 | struct eq_delay_info eq[LPFC_MAX_EQ_DELAY_EQID_CNT]; |
1074 | } request; | 1074 | } request; |
1075 | struct { | 1075 | struct { |
1076 | uint32_t word0; | 1076 | uint32_t word0; |
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index 4fa21a9fd883..c883110178ea 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c | |||
@@ -8756,12 +8756,9 @@ lpfc_sli4_queue_setup(struct lpfc_hba *phba) | |||
8756 | } | 8756 | } |
8757 | } | 8757 | } |
8758 | 8758 | ||
8759 | /* | 8759 | for (qidx = 0; qidx < io_channel; qidx += LPFC_MAX_EQ_DELAY_EQID_CNT) |
8760 | * Configure EQ delay multipier for interrupt coalescing using | ||
8761 | * MODIFY_EQ_DELAY for all EQs created, LPFC_MAX_EQ_DELAY at a time. | ||
8762 | */ | ||
8763 | for (qidx = 0; qidx < io_channel; qidx += LPFC_MAX_EQ_DELAY) | ||
8764 | lpfc_modify_hba_eq_delay(phba, qidx); | 8760 | lpfc_modify_hba_eq_delay(phba, qidx); |
8761 | |||
8765 | return 0; | 8762 | return 0; |
8766 | 8763 | ||
8767 | out_destroy: | 8764 | out_destroy: |
diff --git a/drivers/scsi/lpfc/lpfc_sli.c b/drivers/scsi/lpfc/lpfc_sli.c index 8a606d0d2c79..618cdacf13dd 100644 --- a/drivers/scsi/lpfc/lpfc_sli.c +++ b/drivers/scsi/lpfc/lpfc_sli.c | |||
@@ -1,3 +1,4 @@ | |||
1 | |||
1 | /******************************************************************* | 2 | /******************************************************************* |
2 | * This file is part of the Emulex Linux Device Driver for * | 3 | * This file is part of the Emulex Linux Device Driver for * |
3 | * Fibre Channel Host Bus Adapters. * | 4 | * Fibre Channel Host Bus Adapters. * |
@@ -13874,6 +13875,8 @@ lpfc_dual_chute_pci_bar_map(struct lpfc_hba *phba, uint16_t pci_barset) | |||
13874 | * @startq: The starting FCP EQ to modify | 13875 | * @startq: The starting FCP EQ to modify |
13875 | * | 13876 | * |
13876 | * This function sends an MODIFY_EQ_DELAY mailbox command to the HBA. | 13877 | * This function sends an MODIFY_EQ_DELAY mailbox command to the HBA. |
13878 | * The command allows up to LPFC_MAX_EQ_DELAY_EQID_CNT EQ ID's to be | ||
13879 | * updated in one mailbox command. | ||
13877 | * | 13880 | * |
13878 | * The @phba struct is used to send mailbox command to HBA. The @startq | 13881 | * The @phba struct is used to send mailbox command to HBA. The @startq |
13879 | * is used to get the starting FCP EQ to change. | 13882 | * is used to get the starting FCP EQ to change. |
@@ -13926,7 +13929,7 @@ lpfc_modify_hba_eq_delay(struct lpfc_hba *phba, uint32_t startq) | |||
13926 | eq_delay->u.request.eq[cnt].phase = 0; | 13929 | eq_delay->u.request.eq[cnt].phase = 0; |
13927 | eq_delay->u.request.eq[cnt].delay_multi = dmult; | 13930 | eq_delay->u.request.eq[cnt].delay_multi = dmult; |
13928 | cnt++; | 13931 | cnt++; |
13929 | if (cnt >= LPFC_MAX_EQ_DELAY) | 13932 | if (cnt >= LPFC_MAX_EQ_DELAY_EQID_CNT) |
13930 | break; | 13933 | break; |
13931 | } | 13934 | } |
13932 | eq_delay->u.request.num_eq = cnt; | 13935 | eq_delay->u.request.num_eq = cnt; |