diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2011-06-13 18:50:35 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-06-29 16:31:31 -0400 |
commit | 111892082ed7a3214bc7a7ec6b8b20e8f847501a (patch) | |
tree | fb4950f69aaf7c2bf07ce8987884bb52aa497ffa /drivers/scsi/bfa/bfa.h | |
parent | 43ffdf4dfb827babcdca5345a76031598a985dc8 (diff) |
[SCSI] bfa: Brocade-1860 Fabric Adapter Hardware Enablement
- Added support for Brocade-1860 Fabric Adapter.
- Made changes to support single firmware image per asic type.
- Combined bfi_cbreg.h and bfi_ctreg.h defines into bfi_reg.h with
only minimal defines used by host.
- Added changes to setup CPE/RME Queue register offsets based on
firmware response.
- Removed queue register offset initializations and added register offsets
to BFI config response message.
- Added Brocade-1860 asic specific interrupt status definitions and
mailbox interfaces.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/bfa/bfa.h')
-rw-r--r-- | drivers/scsi/bfa/bfa.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/scsi/bfa/bfa.h b/drivers/scsi/bfa/bfa.h index 7be6b5a8114b..708bab093c14 100644 --- a/drivers/scsi/bfa/bfa.h +++ b/drivers/scsi/bfa/bfa.h | |||
@@ -136,7 +136,6 @@ struct bfa_cb_qe_s { | |||
136 | struct list_head qe; | 136 | struct list_head qe; |
137 | bfa_cb_cbfn_t cbfn; | 137 | bfa_cb_cbfn_t cbfn; |
138 | bfa_boolean_t once; | 138 | bfa_boolean_t once; |
139 | u32 rsvd; | ||
140 | void *cbarg; | 139 | void *cbarg; |
141 | }; | 140 | }; |
142 | 141 | ||
@@ -205,11 +204,9 @@ struct bfa_iocfc_regs_s { | |||
205 | void __iomem *intr_mask; | 204 | void __iomem *intr_mask; |
206 | void __iomem *cpe_q_pi[BFI_IOC_MAX_CQS]; | 205 | void __iomem *cpe_q_pi[BFI_IOC_MAX_CQS]; |
207 | void __iomem *cpe_q_ci[BFI_IOC_MAX_CQS]; | 206 | void __iomem *cpe_q_ci[BFI_IOC_MAX_CQS]; |
208 | void __iomem *cpe_q_depth[BFI_IOC_MAX_CQS]; | ||
209 | void __iomem *cpe_q_ctrl[BFI_IOC_MAX_CQS]; | 207 | void __iomem *cpe_q_ctrl[BFI_IOC_MAX_CQS]; |
210 | void __iomem *rme_q_ci[BFI_IOC_MAX_CQS]; | 208 | void __iomem *rme_q_ci[BFI_IOC_MAX_CQS]; |
211 | void __iomem *rme_q_pi[BFI_IOC_MAX_CQS]; | 209 | void __iomem *rme_q_pi[BFI_IOC_MAX_CQS]; |
212 | void __iomem *rme_q_depth[BFI_IOC_MAX_CQS]; | ||
213 | void __iomem *rme_q_ctrl[BFI_IOC_MAX_CQS]; | 210 | void __iomem *rme_q_ctrl[BFI_IOC_MAX_CQS]; |
214 | }; | 211 | }; |
215 | 212 | ||
@@ -238,6 +235,8 @@ struct bfa_hwif_s { | |||
238 | u32 *nvecs, u32 *maxvec); | 235 | u32 *nvecs, u32 *maxvec); |
239 | void (*hw_msix_get_rme_range) (struct bfa_s *bfa, u32 *start, | 236 | void (*hw_msix_get_rme_range) (struct bfa_s *bfa, u32 *start, |
240 | u32 *end); | 237 | u32 *end); |
238 | int cpe_vec_q0; | ||
239 | int rme_vec_q0; | ||
241 | }; | 240 | }; |
242 | typedef void (*bfa_cb_iocfc_t) (void *cbarg, enum bfa_status status); | 241 | typedef void (*bfa_cb_iocfc_t) (void *cbarg, enum bfa_status status); |
243 | 242 | ||
@@ -257,7 +256,6 @@ struct bfa_iocfc_s { | |||
257 | struct bfi_iocfc_cfg_s *cfginfo; | 256 | struct bfi_iocfc_cfg_s *cfginfo; |
258 | struct bfa_dma_s cfgrsp_dma; | 257 | struct bfa_dma_s cfgrsp_dma; |
259 | struct bfi_iocfc_cfgrsp_s *cfgrsp; | 258 | struct bfi_iocfc_cfgrsp_s *cfgrsp; |
260 | struct bfi_iocfc_cfg_reply_s *cfg_reply; | ||
261 | struct bfa_dma_s req_cq_ba[BFI_IOC_MAX_CQS]; | 259 | struct bfa_dma_s req_cq_ba[BFI_IOC_MAX_CQS]; |
262 | struct bfa_dma_s req_cq_shadow_ci[BFI_IOC_MAX_CQS]; | 260 | struct bfa_dma_s req_cq_shadow_ci[BFI_IOC_MAX_CQS]; |
263 | struct bfa_dma_s rsp_cq_ba[BFI_IOC_MAX_CQS]; | 261 | struct bfa_dma_s rsp_cq_ba[BFI_IOC_MAX_CQS]; |
@@ -277,8 +275,11 @@ struct bfa_iocfc_s { | |||
277 | ((__bfa)->iocfc.hwif.hw_msix_install(__bfa)) | 275 | ((__bfa)->iocfc.hwif.hw_msix_install(__bfa)) |
278 | #define bfa_msix_uninstall(__bfa) \ | 276 | #define bfa_msix_uninstall(__bfa) \ |
279 | ((__bfa)->iocfc.hwif.hw_msix_uninstall(__bfa)) | 277 | ((__bfa)->iocfc.hwif.hw_msix_uninstall(__bfa)) |
280 | #define bfa_isr_mode_set(__bfa, __msix) \ | 278 | #define bfa_isr_mode_set(__bfa, __msix) do { \ |
281 | ((__bfa)->iocfc.hwif.hw_isr_mode_set(__bfa, __msix)) | 279 | if ((__bfa)->iocfc.hwif.hw_isr_mode_set) \ |
280 | (__bfa)->iocfc.hwif.hw_isr_mode_set(__bfa, __msix); \ | ||
281 | } while (0) | ||
282 | |||
282 | #define bfa_msix_getvecs(__bfa, __vecmap, __nvecs, __maxvec) \ | 283 | #define bfa_msix_getvecs(__bfa, __vecmap, __nvecs, __maxvec) \ |
283 | ((__bfa)->iocfc.hwif.hw_msix_getvecs(__bfa, __vecmap, \ | 284 | ((__bfa)->iocfc.hwif.hw_msix_getvecs(__bfa, __vecmap, \ |
284 | __nvecs, __maxvec)) | 285 | __nvecs, __maxvec)) |
@@ -321,6 +322,7 @@ void bfa_hwcb_msix_getvecs(struct bfa_s *bfa, u32 *vecmap, u32 *nvecs, | |||
321 | void bfa_hwcb_msix_get_rme_range(struct bfa_s *bfa, u32 *start, | 322 | void bfa_hwcb_msix_get_rme_range(struct bfa_s *bfa, u32 *start, |
322 | u32 *end); | 323 | u32 *end); |
323 | void bfa_hwct_reginit(struct bfa_s *bfa); | 324 | void bfa_hwct_reginit(struct bfa_s *bfa); |
325 | void bfa_hwct2_reginit(struct bfa_s *bfa); | ||
324 | void bfa_hwct_reqq_ack(struct bfa_s *bfa, int rspq); | 326 | void bfa_hwct_reqq_ack(struct bfa_s *bfa, int rspq); |
325 | void bfa_hwct_rspq_ack(struct bfa_s *bfa, int rspq); | 327 | void bfa_hwct_rspq_ack(struct bfa_s *bfa, int rspq); |
326 | void bfa_hwct_msix_init(struct bfa_s *bfa, int nvecs); | 328 | void bfa_hwct_msix_init(struct bfa_s *bfa, int nvecs); |