scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116
authorSumit Saxena <sumit.saxena@broadcom.com>
Thu, 23 Nov 2023 16:01:29 +0000 (21:31 +0530)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 25 Nov 2023 01:53:05 +0000 (20:53 -0500)
Add PCI IDs checks for the cases where SAS5116 diverges from SAS4116 in
behavior.

Signed-off-by: Sumit Saxena <sumit.saxena@broadcom.com>
Link: https://lore.kernel.org/r/20231123160132.4155-3-sumit.saxena@broadcom.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpi3mr/mpi3mr_fw.c
drivers/scsi/mpi3mr/mpi3mr_os.c

index f039f1d..0d148c3 100644 (file)
@@ -1892,7 +1892,8 @@ static int mpi3mr_create_op_reply_q(struct mpi3mr_ioc *mrioc, u16 qidx)
 
        reply_qid = qidx + 1;
        op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD;
-       if (!mrioc->pdev->revision)
+       if ((mrioc->pdev->device == MPI3_MFGPAGE_DEVID_SAS4116) &&
+               !mrioc->pdev->revision)
                op_reply_q->num_replies = MPI3MR_OP_REP_Q_QD4K;
        op_reply_q->ci = 0;
        op_reply_q->ephase = 1;
index a8d7dbf..91a22e6 100644 (file)
@@ -5101,7 +5101,10 @@ mpi3mr_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                mpi3mr_init_drv_cmd(&mrioc->evtack_cmds[i],
                                    MPI3MR_HOSTTAG_EVTACKCMD_MIN + i);
 
-       if (pdev->revision)
+       if ((pdev->device == MPI3_MFGPAGE_DEVID_SAS4116) &&
+               !pdev->revision)
+               mrioc->enable_segqueue = false;
+       else
                mrioc->enable_segqueue = true;
 
        init_waitqueue_head(&mrioc->reset_waitq);