diff mbox series

[1/1] pm80xx: Fix chip initialization failure

Message ID 20210402054212.17834-1-Viswas.G@microchip.com.com
State New
Headers show
Series [1/1] pm80xx: Fix chip initialization failure | expand

Commit Message

Viswas G April 2, 2021, 5:42 a.m. UTC
From: Viswas G <Viswas.G@microchip.com>

Inbound and outbound queues are not properly configured and
that leads to MPI configuration failure.

Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")

Cc: stable@vger.kernel.org # 5.10+

Reported-and-tested-by: Ash Izat <ash@ai0.uk>
Signed-off-by: Viswas G <Viswas.G@microchip.com>
---
 drivers/scsi/pm8001/pm8001_hwi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Martin K. Petersen April 6, 2021, 4:52 a.m. UTC | #1
On Fri, 2 Apr 2021 11:12:12 +0530, Viswas G wrote:

> Inbound and outbound queues are not properly configured and
> that leads to MPI configuration failure.
> 
> Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
> 
> Cc: stable@vger.kernel.org # 5.10+

Applied to 5.12/scsi-fixes, thanks!

[1/1] pm80xx: Fix chip initialization failure
      https://git.kernel.org/mkp/scsi/c/65df7d1986a1
Jinpu Wang April 6, 2021, 5:26 a.m. UTC | #2
On Tue, Apr 6, 2021 at 6:52 AM Martin K. Petersen
<martin.petersen@oracle.com> wrote:
>

> On Fri, 2 Apr 2021 11:12:12 +0530, Viswas G wrote:

>

> > Inbound and outbound queues are not properly configured and

> > that leads to MPI configuration failure.

> >

> > Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")

> >

> > Cc: stable@vger.kernel.org # 5.10+

>

> Applied to 5.12/scsi-fixes, thanks!


Thanks for taking care of this.

Regards!
>

> [1/1] pm80xx: Fix chip initialization failure

>       https://git.kernel.org/mkp/scsi/c/65df7d1986a1

>

> --

> Martin K. Petersen      Oracle Linux Engineering
diff mbox series

Patch

diff --git a/drivers/scsi/pm8001/pm8001_hwi.c b/drivers/scsi/pm8001/pm8001_hwi.c
index 49bf2f70a470..31e5455d280c 100644
--- a/drivers/scsi/pm8001/pm8001_hwi.c
+++ b/drivers/scsi/pm8001/pm8001_hwi.c
@@ -223,7 +223,7 @@  static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
 		PM8001_EVENT_LOG_SIZE;
 	pm8001_ha->main_cfg_tbl.pm8001_tbl.iop_event_log_option		= 0x01;
 	pm8001_ha->main_cfg_tbl.pm8001_tbl.fatal_err_interrupt		= 0x01;
-	for (i = 0; i < PM8001_MAX_INB_NUM; i++) {
+	for (i = 0; i < pm8001_ha->max_q_num; i++) {
 		pm8001_ha->inbnd_q_tbl[i].element_pri_size_cnt	=
 			PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x00<<30);
 		pm8001_ha->inbnd_q_tbl[i].upper_base_addr	=
@@ -249,7 +249,7 @@  static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
 		pm8001_ha->inbnd_q_tbl[i].producer_idx		= 0;
 		pm8001_ha->inbnd_q_tbl[i].consumer_index	= 0;
 	}
-	for (i = 0; i < PM8001_MAX_OUTB_NUM; i++) {
+	for (i = 0; i < pm8001_ha->max_q_num; i++) {
 		pm8001_ha->outbnd_q_tbl[i].element_size_cnt	=
 			PM8001_MPI_QUEUE | (pm8001_ha->iomb_size << 16) | (0x01<<30);
 		pm8001_ha->outbnd_q_tbl[i].upper_base_addr	=
@@ -671,9 +671,9 @@  static int pm8001_chip_init(struct pm8001_hba_info *pm8001_ha)
 	read_outbnd_queue_table(pm8001_ha);
 	/* update main config table ,inbound table and outbound table */
 	update_main_config_table(pm8001_ha);
-	for (i = 0; i < PM8001_MAX_INB_NUM; i++)
+	for (i = 0; i < pm8001_ha->max_q_num; i++)
 		update_inbnd_queue_table(pm8001_ha, i);
-	for (i = 0; i < PM8001_MAX_OUTB_NUM; i++)
+	for (i = 0; i < pm8001_ha->max_q_num; i++)
 		update_outbnd_queue_table(pm8001_ha, i);
 	/* 8081 controller donot require these operations */
 	if (deviceid != 0x8081 && deviceid != 0x0042) {