]> Pileus Git - ~andy/linux/blobdiff - drivers/scsi/lpfc/lpfc_hw4.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl
[~andy/linux] / drivers / scsi / lpfc / lpfc_hw4.h
index e5bfa7f334e38c9a5f872225cd27bb82f9ac84fb..9e2b9b227e1a2b732b39ee6cb424d421c6c03230 100644 (file)
@@ -321,6 +321,10 @@ struct lpfc_cqe {
 #define CQE_STATUS_CMD_REJECT          0xb
 #define CQE_STATUS_FCP_TGT_LENCHECK    0xc
 #define CQE_STATUS_NEED_BUFF_ENTRY     0xf
+#define CQE_STATUS_DI_ERROR            0x16
+
+/* Used when mapping CQE status to IOCB */
+#define LPFC_IOCB_STATUS_MASK          0xf
 
 /* Status returned by hardware (valid only if status = CQE_STATUS_SUCCESS). */
 #define CQE_HW_STATUS_NO_ERR           0x0
@@ -348,6 +352,21 @@ struct lpfc_wcqe_complete {
 #define lpfc_wcqe_c_hw_status_WORD     word0
        uint32_t total_data_placed;
        uint32_t parameter;
+#define lpfc_wcqe_c_bg_edir_SHIFT      5
+#define lpfc_wcqe_c_bg_edir_MASK       0x00000001
+#define lpfc_wcqe_c_bg_edir_WORD       parameter
+#define lpfc_wcqe_c_bg_tdpv_SHIFT      3
+#define lpfc_wcqe_c_bg_tdpv_MASK       0x00000001
+#define lpfc_wcqe_c_bg_tdpv_WORD       parameter
+#define lpfc_wcqe_c_bg_re_SHIFT                2
+#define lpfc_wcqe_c_bg_re_MASK         0x00000001
+#define lpfc_wcqe_c_bg_re_WORD         parameter
+#define lpfc_wcqe_c_bg_ae_SHIFT                1
+#define lpfc_wcqe_c_bg_ae_MASK         0x00000001
+#define lpfc_wcqe_c_bg_ae_WORD         parameter
+#define lpfc_wcqe_c_bg_ge_SHIFT                0
+#define lpfc_wcqe_c_bg_ge_MASK         0x00000001
+#define lpfc_wcqe_c_bg_ge_WORD         parameter
        uint32_t word3;
 #define lpfc_wcqe_c_valid_SHIFT                lpfc_cqe_valid_SHIFT
 #define lpfc_wcqe_c_valid_MASK         lpfc_cqe_valid_MASK
@@ -359,8 +378,8 @@ struct lpfc_wcqe_complete {
 #define lpfc_wcqe_c_pv_MASK            0x00000001
 #define lpfc_wcqe_c_pv_WORD            word3
 #define lpfc_wcqe_c_priority_SHIFT     24
-#define lpfc_wcqe_c_priority_MASK              0x00000007
-#define lpfc_wcqe_c_priority_WORD              word3
+#define lpfc_wcqe_c_priority_MASK      0x00000007
+#define lpfc_wcqe_c_priority_WORD      word3
 #define lpfc_wcqe_c_code_SHIFT         lpfc_cqe_code_SHIFT
 #define lpfc_wcqe_c_code_MASK          lpfc_cqe_code_MASK
 #define lpfc_wcqe_c_code_WORD          lpfc_cqe_code_WORD
@@ -715,12 +734,20 @@ struct lpfc_register {
 #define lpfc_eqcq_doorbell_eqci_SHIFT          9
 #define lpfc_eqcq_doorbell_eqci_MASK           0x0001
 #define lpfc_eqcq_doorbell_eqci_WORD           word0
-#define lpfc_eqcq_doorbell_cqid_SHIFT          0
-#define lpfc_eqcq_doorbell_cqid_MASK           0x03FF
-#define lpfc_eqcq_doorbell_cqid_WORD           word0
-#define lpfc_eqcq_doorbell_eqid_SHIFT          0
-#define lpfc_eqcq_doorbell_eqid_MASK           0x01FF
-#define lpfc_eqcq_doorbell_eqid_WORD           word0
+#define lpfc_eqcq_doorbell_cqid_lo_SHIFT       0
+#define lpfc_eqcq_doorbell_cqid_lo_MASK                0x03FF
+#define lpfc_eqcq_doorbell_cqid_lo_WORD                word0
+#define lpfc_eqcq_doorbell_cqid_hi_SHIFT       11
+#define lpfc_eqcq_doorbell_cqid_hi_MASK                0x001F
+#define lpfc_eqcq_doorbell_cqid_hi_WORD                word0
+#define lpfc_eqcq_doorbell_eqid_lo_SHIFT       0
+#define lpfc_eqcq_doorbell_eqid_lo_MASK                0x01FF
+#define lpfc_eqcq_doorbell_eqid_lo_WORD                word0
+#define lpfc_eqcq_doorbell_eqid_hi_SHIFT       11
+#define lpfc_eqcq_doorbell_eqid_hi_MASK                0x001F
+#define lpfc_eqcq_doorbell_eqid_hi_WORD                word0
+#define LPFC_CQID_HI_FIELD_SHIFT               10
+#define LPFC_EQID_HI_FIELD_SHIFT               9
 
 #define LPFC_BMBX                      0x0160
 #define lpfc_bmbx_addr_SHIFT           2
@@ -3313,7 +3340,11 @@ struct xmit_bls_rsp64_wqe {
        uint32_t rsrvd4;
        struct wqe_did  wqe_dest;
        struct wqe_common wqe_com; /* words 6-11 */
-       uint32_t rsvd_12_15[4];
+       uint32_t word12;
+#define xmit_bls_rsp64_temprpi_SHIFT  0
+#define xmit_bls_rsp64_temprpi_MASK   0x0000ffff
+#define xmit_bls_rsp64_temprpi_WORD   word12
+       uint32_t rsvd_13_15[3];
 };
 
 struct wqe_rctl_dfctl {