Patch "scsi: pm80xx: Enable upper inbound, outbound queues" has been added to the 5.17-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: pm80xx: Enable upper inbound, outbound queues

to the 5.17-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-pm80xx-enable-upper-inbound-outbound-queues.patch
and it can be found in the queue-5.17 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4080bb219c2c073a7be715c009e0cffd6cf588b9
Author: Ajish Koshy <Ajish.Koshy@xxxxxxxxxxxxx>
Date:   Mon Apr 11 12:16:03 2022 +0530

    scsi: pm80xx: Enable upper inbound, outbound queues
    
    [ Upstream commit bcd8a45223470e00b5f254018174d64a75db4bbe ]
    
    Executing driver on servers with more than 32 CPUs were faced with command
    timeouts. This is because we were not geting completions for commands
    submitted on IQ32 - IQ63.
    
    Set E64Q bit to enable upper inbound and outbound queues 32 to 63 in the
    MPI main configuration table.
    
    Added 500ms delay after successful MPI initialization as mentioned in
    controller datasheet.
    
    Link: https://lore.kernel.org/r/20220411064603.668448-3-Ajish.Koshy@xxxxxxxxxxxxx
    Fixes: 05c6c029a44d ("scsi: pm80xx: Increase number of supported queues")
    Reviewed-by: Damien Le Moal <damien.lemoal@xxxxxxxxxxxxxxxxxx>
    Acked-by: Jack Wang <jinpu.wang@xxxxxxxxx>
    Signed-off-by: Ajish Koshy <Ajish.Koshy@xxxxxxxxxxxxx>
    Signed-off-by: Viswas G <Viswas.G@xxxxxxxxxxxxx>
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/pm8001/pm80xx_hwi.c b/drivers/scsi/pm8001/pm80xx_hwi.c
index 2dea48933ef9..5853b3c0d76d 100644
--- a/drivers/scsi/pm8001/pm80xx_hwi.c
+++ b/drivers/scsi/pm8001/pm80xx_hwi.c
@@ -766,6 +766,10 @@ static void init_default_table_values(struct pm8001_hba_info *pm8001_ha)
 	pm8001_ha->main_cfg_tbl.pm80xx_tbl.pcs_event_log_severity	= 0x01;
 	pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt		= 0x01;
 
+	/* Enable higher IQs and OQs, 32 to 63, bit 16 */
+	if (pm8001_ha->max_q_num > 32)
+		pm8001_ha->main_cfg_tbl.pm80xx_tbl.fatal_err_interrupt |=
+							1 << 16;
 	/* Disable end to end CRC checking */
 	pm8001_ha->main_cfg_tbl.pm80xx_tbl.crc_core_dump = (0x1 << 16);
 
@@ -1027,6 +1031,13 @@ static int mpi_init_check(struct pm8001_hba_info *pm8001_ha)
 	if (0x0000 != gst_len_mpistate)
 		return -EBUSY;
 
+	/*
+	 *  As per controller datasheet, after successful MPI
+	 *  initialization minimum 500ms delay is required before
+	 *  issuing commands.
+	 */
+	msleep(500);
+
 	return 0;
 }
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux