diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hw4.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hw4.h | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index e5bfa7f334e3..9e2b9b227e1a 100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
@@ -321,6 +321,10 @@ struct lpfc_cqe { | |||
321 | #define CQE_STATUS_CMD_REJECT 0xb | 321 | #define CQE_STATUS_CMD_REJECT 0xb |
322 | #define CQE_STATUS_FCP_TGT_LENCHECK 0xc | 322 | #define CQE_STATUS_FCP_TGT_LENCHECK 0xc |
323 | #define CQE_STATUS_NEED_BUFF_ENTRY 0xf | 323 | #define CQE_STATUS_NEED_BUFF_ENTRY 0xf |
324 | #define CQE_STATUS_DI_ERROR 0x16 | ||
325 | |||
326 | /* Used when mapping CQE status to IOCB */ | ||
327 | #define LPFC_IOCB_STATUS_MASK 0xf | ||
324 | 328 | ||
325 | /* Status returned by hardware (valid only if status = CQE_STATUS_SUCCESS). */ | 329 | /* Status returned by hardware (valid only if status = CQE_STATUS_SUCCESS). */ |
326 | #define CQE_HW_STATUS_NO_ERR 0x0 | 330 | #define CQE_HW_STATUS_NO_ERR 0x0 |
@@ -348,6 +352,21 @@ struct lpfc_wcqe_complete { | |||
348 | #define lpfc_wcqe_c_hw_status_WORD word0 | 352 | #define lpfc_wcqe_c_hw_status_WORD word0 |
349 | uint32_t total_data_placed; | 353 | uint32_t total_data_placed; |
350 | uint32_t parameter; | 354 | uint32_t parameter; |
355 | #define lpfc_wcqe_c_bg_edir_SHIFT 5 | ||
356 | #define lpfc_wcqe_c_bg_edir_MASK 0x00000001 | ||
357 | #define lpfc_wcqe_c_bg_edir_WORD parameter | ||
358 | #define lpfc_wcqe_c_bg_tdpv_SHIFT 3 | ||
359 | #define lpfc_wcqe_c_bg_tdpv_MASK 0x00000001 | ||
360 | #define lpfc_wcqe_c_bg_tdpv_WORD parameter | ||
361 | #define lpfc_wcqe_c_bg_re_SHIFT 2 | ||
362 | #define lpfc_wcqe_c_bg_re_MASK 0x00000001 | ||
363 | #define lpfc_wcqe_c_bg_re_WORD parameter | ||
364 | #define lpfc_wcqe_c_bg_ae_SHIFT 1 | ||
365 | #define lpfc_wcqe_c_bg_ae_MASK 0x00000001 | ||
366 | #define lpfc_wcqe_c_bg_ae_WORD parameter | ||
367 | #define lpfc_wcqe_c_bg_ge_SHIFT 0 | ||
368 | #define lpfc_wcqe_c_bg_ge_MASK 0x00000001 | ||
369 | #define lpfc_wcqe_c_bg_ge_WORD parameter | ||
351 | uint32_t word3; | 370 | uint32_t word3; |
352 | #define lpfc_wcqe_c_valid_SHIFT lpfc_cqe_valid_SHIFT | 371 | #define lpfc_wcqe_c_valid_SHIFT lpfc_cqe_valid_SHIFT |
353 | #define lpfc_wcqe_c_valid_MASK lpfc_cqe_valid_MASK | 372 | #define lpfc_wcqe_c_valid_MASK lpfc_cqe_valid_MASK |
@@ -359,8 +378,8 @@ struct lpfc_wcqe_complete { | |||
359 | #define lpfc_wcqe_c_pv_MASK 0x00000001 | 378 | #define lpfc_wcqe_c_pv_MASK 0x00000001 |
360 | #define lpfc_wcqe_c_pv_WORD word3 | 379 | #define lpfc_wcqe_c_pv_WORD word3 |
361 | #define lpfc_wcqe_c_priority_SHIFT 24 | 380 | #define lpfc_wcqe_c_priority_SHIFT 24 |
362 | #define lpfc_wcqe_c_priority_MASK 0x00000007 | 381 | #define lpfc_wcqe_c_priority_MASK 0x00000007 |
363 | #define lpfc_wcqe_c_priority_WORD word3 | 382 | #define lpfc_wcqe_c_priority_WORD word3 |
364 | #define lpfc_wcqe_c_code_SHIFT lpfc_cqe_code_SHIFT | 383 | #define lpfc_wcqe_c_code_SHIFT lpfc_cqe_code_SHIFT |
365 | #define lpfc_wcqe_c_code_MASK lpfc_cqe_code_MASK | 384 | #define lpfc_wcqe_c_code_MASK lpfc_cqe_code_MASK |
366 | #define lpfc_wcqe_c_code_WORD lpfc_cqe_code_WORD | 385 | #define lpfc_wcqe_c_code_WORD lpfc_cqe_code_WORD |
@@ -715,12 +734,20 @@ struct lpfc_register { | |||
715 | #define lpfc_eqcq_doorbell_eqci_SHIFT 9 | 734 | #define lpfc_eqcq_doorbell_eqci_SHIFT 9 |
716 | #define lpfc_eqcq_doorbell_eqci_MASK 0x0001 | 735 | #define lpfc_eqcq_doorbell_eqci_MASK 0x0001 |
717 | #define lpfc_eqcq_doorbell_eqci_WORD word0 | 736 | #define lpfc_eqcq_doorbell_eqci_WORD word0 |
718 | #define lpfc_eqcq_doorbell_cqid_SHIFT 0 | 737 | #define lpfc_eqcq_doorbell_cqid_lo_SHIFT 0 |
719 | #define lpfc_eqcq_doorbell_cqid_MASK 0x03FF | 738 | #define lpfc_eqcq_doorbell_cqid_lo_MASK 0x03FF |
720 | #define lpfc_eqcq_doorbell_cqid_WORD word0 | 739 | #define lpfc_eqcq_doorbell_cqid_lo_WORD word0 |
721 | #define lpfc_eqcq_doorbell_eqid_SHIFT 0 | 740 | #define lpfc_eqcq_doorbell_cqid_hi_SHIFT 11 |
722 | #define lpfc_eqcq_doorbell_eqid_MASK 0x01FF | 741 | #define lpfc_eqcq_doorbell_cqid_hi_MASK 0x001F |
723 | #define lpfc_eqcq_doorbell_eqid_WORD word0 | 742 | #define lpfc_eqcq_doorbell_cqid_hi_WORD word0 |
743 | #define lpfc_eqcq_doorbell_eqid_lo_SHIFT 0 | ||
744 | #define lpfc_eqcq_doorbell_eqid_lo_MASK 0x01FF | ||
745 | #define lpfc_eqcq_doorbell_eqid_lo_WORD word0 | ||
746 | #define lpfc_eqcq_doorbell_eqid_hi_SHIFT 11 | ||
747 | #define lpfc_eqcq_doorbell_eqid_hi_MASK 0x001F | ||
748 | #define lpfc_eqcq_doorbell_eqid_hi_WORD word0 | ||
749 | #define LPFC_CQID_HI_FIELD_SHIFT 10 | ||
750 | #define LPFC_EQID_HI_FIELD_SHIFT 9 | ||
724 | 751 | ||
725 | #define LPFC_BMBX 0x0160 | 752 | #define LPFC_BMBX 0x0160 |
726 | #define lpfc_bmbx_addr_SHIFT 2 | 753 | #define lpfc_bmbx_addr_SHIFT 2 |
@@ -3313,7 +3340,11 @@ struct xmit_bls_rsp64_wqe { | |||
3313 | uint32_t rsrvd4; | 3340 | uint32_t rsrvd4; |
3314 | struct wqe_did wqe_dest; | 3341 | struct wqe_did wqe_dest; |
3315 | struct wqe_common wqe_com; /* words 6-11 */ | 3342 | struct wqe_common wqe_com; /* words 6-11 */ |
3316 | uint32_t rsvd_12_15[4]; | 3343 | uint32_t word12; |
3344 | #define xmit_bls_rsp64_temprpi_SHIFT 0 | ||
3345 | #define xmit_bls_rsp64_temprpi_MASK 0x0000ffff | ||
3346 | #define xmit_bls_rsp64_temprpi_WORD word12 | ||
3347 | uint32_t rsvd_13_15[3]; | ||
3317 | }; | 3348 | }; |
3318 | 3349 | ||
3319 | struct wqe_rctl_dfctl { | 3350 | struct wqe_rctl_dfctl { |