]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
scsi: lpfc: Add support to display if adapter dumps are available
authorDick Kennedy <dick.kennedy@broadcom.com>
Tue, 30 Jun 2020 21:49:58 +0000 (14:49 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 3 Jul 2020 03:06:41 +0000 (23:06 -0400)
Currently, if there has been an issue whereby an adapter dump was taken,
there is nothing displayed to hint that it is present. Utilities must be
run and they must query for the status in order to then download the dump.

Add a message to the driver to query dump image presence when initializing
the SLI Port.

Link: https://lore.kernel.org/r/20200630215001.70793-12-jsmart2021@gmail.com
Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: James Smart <jsmart2021@gmail.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/lpfc/lpfc_hw4.h
drivers/scsi/lpfc/lpfc_sli.c

index b8d3144a452dc729ab99886363c648600da0ce8e..c4ba8273a63fbea46f49b45a92dd85c3a55e444c 100644 (file)
@@ -650,6 +650,9 @@ struct lpfc_register {
 #define lpfc_sliport_status_oti_SHIFT  29
 #define lpfc_sliport_status_oti_MASK   0x1
 #define lpfc_sliport_status_oti_WORD   word0
+#define lpfc_sliport_status_dip_SHIFT  25
+#define lpfc_sliport_status_dip_MASK   0x1
+#define lpfc_sliport_status_dip_WORD   word0
 #define lpfc_sliport_status_rn_SHIFT   24
 #define lpfc_sliport_status_rn_MASK    0x1
 #define lpfc_sliport_status_rn_WORD    word0
index ea04f5b89e0bfe6cabf780398120ded116ec109c..290fdf090cd21072cbdca72525b5eee72ac67634 100644 (file)
@@ -7300,6 +7300,26 @@ lpfc_post_rq_buffer(struct lpfc_hba *phba, struct lpfc_queue *hrq,
        return 1;
 }
 
+static void lpfc_sli4_dip(struct lpfc_hba *phba)
+{
+       uint32_t if_type;
+
+       if_type = bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf);
+       if (if_type == LPFC_SLI_INTF_IF_TYPE_2 ||
+           if_type == LPFC_SLI_INTF_IF_TYPE_6) {
+               struct lpfc_register reg_data;
+
+               if (lpfc_readl(phba->sli4_hba.u.if_type2.STATUSregaddr,
+                              &reg_data.word0))
+                       return;
+
+               if (bf_get(lpfc_sliport_status_dip, &reg_data))
+                       lpfc_printf_log(phba, KERN_ERR, LOG_INIT,
+                                       "2904 Firmware Dump Image Present"
+                                       " on Adapter");
+       }
+}
+
 /**
  * lpfc_sli4_hba_setup - SLI4 device initialization PCI function
  * @phba: Pointer to HBA context object.
@@ -7338,6 +7358,8 @@ lpfc_sli4_hba_setup(struct lpfc_hba *phba)
                spin_unlock_irq(&phba->hbalock);
        }
 
+       lpfc_sli4_dip(phba);
+
        /*
         * Allocate a single mailbox container for initializing the
         * port.