diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_sli.h')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_sli.h | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/drivers/scsi/lpfc/lpfc_sli.h b/drivers/scsi/lpfc/lpfc_sli.h index 3c53316cf6d0..ba38de3c28f1 100644 --- a/drivers/scsi/lpfc/lpfc_sli.h +++ b/drivers/scsi/lpfc/lpfc_sli.h | |||
@@ -29,14 +29,17 @@ typedef enum _lpfc_ctx_cmd { | |||
29 | LPFC_CTX_HOST | 29 | LPFC_CTX_HOST |
30 | } lpfc_ctx_cmd; | 30 | } lpfc_ctx_cmd; |
31 | 31 | ||
32 | /* This structure is used to carry the needed response IOCB states */ | 32 | struct lpfc_cq_event { |
33 | struct lpfc_sli4_rspiocb_info { | 33 | struct list_head list; |
34 | uint8_t hw_status; | 34 | union { |
35 | uint8_t bfield; | 35 | struct lpfc_mcqe mcqe_cmpl; |
36 | #define LPFC_XB 0x1 | 36 | struct lpfc_acqe_link acqe_link; |
37 | #define LPFC_PV 0x2 | 37 | struct lpfc_acqe_fcoe acqe_fcoe; |
38 | uint8_t priority; | 38 | struct lpfc_acqe_dcbx acqe_dcbx; |
39 | uint8_t reserved; | 39 | struct lpfc_rcqe rcqe_cmpl; |
40 | struct sli4_wcqe_xri_aborted wcqe_axri; | ||
41 | struct lpfc_wcqe_complete wcqe_cmpl; | ||
42 | } cqe; | ||
40 | }; | 43 | }; |
41 | 44 | ||
42 | /* This structure is used to handle IOCB requests / responses */ | 45 | /* This structure is used to handle IOCB requests / responses */ |
@@ -46,6 +49,7 @@ struct lpfc_iocbq { | |||
46 | struct list_head clist; | 49 | struct list_head clist; |
47 | uint16_t iotag; /* pre-assigned IO tag */ | 50 | uint16_t iotag; /* pre-assigned IO tag */ |
48 | uint16_t sli4_xritag; /* pre-assigned XRI, (OXID) tag. */ | 51 | uint16_t sli4_xritag; /* pre-assigned XRI, (OXID) tag. */ |
52 | struct lpfc_cq_event cq_event; | ||
49 | 53 | ||
50 | IOCB_t iocb; /* IOCB cmd */ | 54 | IOCB_t iocb; /* IOCB cmd */ |
51 | uint8_t retry; /* retry counter for IOCB cmd - if needed */ | 55 | uint8_t retry; /* retry counter for IOCB cmd - if needed */ |
@@ -56,11 +60,13 @@ struct lpfc_iocbq { | |||
56 | #define LPFC_DRIVER_ABORTED 8 /* driver aborted this request */ | 60 | #define LPFC_DRIVER_ABORTED 8 /* driver aborted this request */ |
57 | #define LPFC_IO_FABRIC 0x10 /* Iocb send using fabric scheduler */ | 61 | #define LPFC_IO_FABRIC 0x10 /* Iocb send using fabric scheduler */ |
58 | #define LPFC_DELAY_MEM_FREE 0x20 /* Defer free'ing of FC data */ | 62 | #define LPFC_DELAY_MEM_FREE 0x20 /* Defer free'ing of FC data */ |
59 | #define LPFC_FIP_ELS 0x40 | 63 | #define LPFC_FIP_ELS_ID_MASK 0xc0 /* ELS_ID range 0-3 */ |
64 | #define LPFC_FIP_ELS_ID_SHIFT 6 | ||
60 | 65 | ||
61 | uint8_t abort_count; | 66 | uint8_t abort_count; |
62 | uint8_t rsvd2; | 67 | uint8_t rsvd2; |
63 | uint32_t drvrTimeout; /* driver timeout in seconds */ | 68 | uint32_t drvrTimeout; /* driver timeout in seconds */ |
69 | uint32_t fcp_wqidx; /* index to FCP work queue */ | ||
64 | struct lpfc_vport *vport;/* virtual port pointer */ | 70 | struct lpfc_vport *vport;/* virtual port pointer */ |
65 | void *context1; /* caller context information */ | 71 | void *context1; /* caller context information */ |
66 | void *context2; /* caller context information */ | 72 | void *context2; /* caller context information */ |
@@ -76,7 +82,6 @@ struct lpfc_iocbq { | |||
76 | struct lpfc_iocbq *); | 82 | struct lpfc_iocbq *); |
77 | void (*iocb_cmpl) (struct lpfc_hba *, struct lpfc_iocbq *, | 83 | void (*iocb_cmpl) (struct lpfc_hba *, struct lpfc_iocbq *, |
78 | struct lpfc_iocbq *); | 84 | struct lpfc_iocbq *); |
79 | struct lpfc_sli4_rspiocb_info sli4_info; | ||
80 | }; | 85 | }; |
81 | 86 | ||
82 | #define SLI_IOCB_RET_IOCB 1 /* Return IOCB if cmd ring full */ | 87 | #define SLI_IOCB_RET_IOCB 1 /* Return IOCB if cmd ring full */ |
@@ -110,7 +115,7 @@ typedef struct lpfcMboxq { | |||
110 | return */ | 115 | return */ |
111 | #define MBX_NOWAIT 2 /* issue command then return immediately */ | 116 | #define MBX_NOWAIT 2 /* issue command then return immediately */ |
112 | 117 | ||
113 | #define LPFC_MAX_RING_MASK 4 /* max num of rctl/type masks allowed per | 118 | #define LPFC_MAX_RING_MASK 5 /* max num of rctl/type masks allowed per |
114 | ring */ | 119 | ring */ |
115 | #define LPFC_MAX_RING 4 /* max num of SLI rings used by driver */ | 120 | #define LPFC_MAX_RING 4 /* max num of SLI rings used by driver */ |
116 | 121 | ||