diff options
Diffstat (limited to 'drivers/scsi/bfa/bfa_svc.h')
-rw-r--r-- | drivers/scsi/bfa/bfa_svc.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/drivers/scsi/bfa/bfa_svc.h b/drivers/scsi/bfa/bfa_svc.h index f3006756463..1abcf7c5166 100644 --- a/drivers/scsi/bfa/bfa_svc.h +++ b/drivers/scsi/bfa/bfa_svc.h | |||
@@ -97,10 +97,13 @@ struct bfa_fcxp_mod_s { | |||
97 | struct bfa_s *bfa; /* backpointer to BFA */ | 97 | struct bfa_s *bfa; /* backpointer to BFA */ |
98 | struct bfa_fcxp_s *fcxp_list; /* array of FCXPs */ | 98 | struct bfa_fcxp_s *fcxp_list; /* array of FCXPs */ |
99 | u16 num_fcxps; /* max num FCXP requests */ | 99 | u16 num_fcxps; /* max num FCXP requests */ |
100 | struct list_head fcxp_free_q; /* free FCXPs */ | 100 | struct list_head fcxp_req_free_q; /* free FCXPs used for sending req */ |
101 | struct list_head fcxp_active_q; /* active FCXPs */ | 101 | struct list_head fcxp_rsp_free_q; /* free FCXPs used for sending req */ |
102 | struct list_head wait_q; /* wait queue for free fcxp */ | 102 | struct list_head fcxp_active_q; /* active FCXPs */ |
103 | struct list_head fcxp_unused_q; /* unused fcxps */ | 103 | struct list_head req_wait_q; /* wait queue for free req_fcxp */ |
104 | struct list_head rsp_wait_q; /* wait queue for free rsp_fcxp */ | ||
105 | struct list_head fcxp_req_unused_q; /* unused req_fcxps */ | ||
106 | struct list_head fcxp_rsp_unused_q; /* unused rsp_fcxps */ | ||
104 | u32 req_pld_sz; | 107 | u32 req_pld_sz; |
105 | u32 rsp_pld_sz; | 108 | u32 rsp_pld_sz; |
106 | struct bfa_mem_dma_s dma_seg[BFA_FCXP_DMA_SEGS]; | 109 | struct bfa_mem_dma_s dma_seg[BFA_FCXP_DMA_SEGS]; |
@@ -197,6 +200,7 @@ struct bfa_fcxp_s { | |||
197 | struct bfa_cb_qe_s hcb_qe; /* comp: callback qelem */ | 200 | struct bfa_cb_qe_s hcb_qe; /* comp: callback qelem */ |
198 | struct bfa_reqq_wait_s reqq_wqe; | 201 | struct bfa_reqq_wait_s reqq_wqe; |
199 | bfa_boolean_t reqq_waiting; | 202 | bfa_boolean_t reqq_waiting; |
203 | bfa_boolean_t req_rsp; /* Used to track req/rsp fcxp */ | ||
200 | }; | 204 | }; |
201 | 205 | ||
202 | struct bfa_fcxp_wqe_s { | 206 | struct bfa_fcxp_wqe_s { |
@@ -586,20 +590,22 @@ void bfa_rport_unset_lunmask(struct bfa_s *bfa, struct bfa_rport_s *rp); | |||
586 | /* | 590 | /* |
587 | * bfa fcxp API functions | 591 | * bfa fcxp API functions |
588 | */ | 592 | */ |
589 | struct bfa_fcxp_s *bfa_fcxp_alloc(void *bfad_fcxp, struct bfa_s *bfa, | 593 | struct bfa_fcxp_s *bfa_fcxp_req_rsp_alloc(void *bfad_fcxp, struct bfa_s *bfa, |
590 | int nreq_sgles, int nrsp_sgles, | 594 | int nreq_sgles, int nrsp_sgles, |
591 | bfa_fcxp_get_sgaddr_t get_req_sga, | 595 | bfa_fcxp_get_sgaddr_t get_req_sga, |
592 | bfa_fcxp_get_sglen_t get_req_sglen, | 596 | bfa_fcxp_get_sglen_t get_req_sglen, |
593 | bfa_fcxp_get_sgaddr_t get_rsp_sga, | 597 | bfa_fcxp_get_sgaddr_t get_rsp_sga, |
594 | bfa_fcxp_get_sglen_t get_rsp_sglen); | 598 | bfa_fcxp_get_sglen_t get_rsp_sglen, |
595 | void bfa_fcxp_alloc_wait(struct bfa_s *bfa, struct bfa_fcxp_wqe_s *wqe, | 599 | bfa_boolean_t req); |
600 | void bfa_fcxp_req_rsp_alloc_wait(struct bfa_s *bfa, struct bfa_fcxp_wqe_s *wqe, | ||
596 | bfa_fcxp_alloc_cbfn_t alloc_cbfn, | 601 | bfa_fcxp_alloc_cbfn_t alloc_cbfn, |
597 | void *cbarg, void *bfad_fcxp, | 602 | void *cbarg, void *bfad_fcxp, |
598 | int nreq_sgles, int nrsp_sgles, | 603 | int nreq_sgles, int nrsp_sgles, |
599 | bfa_fcxp_get_sgaddr_t get_req_sga, | 604 | bfa_fcxp_get_sgaddr_t get_req_sga, |
600 | bfa_fcxp_get_sglen_t get_req_sglen, | 605 | bfa_fcxp_get_sglen_t get_req_sglen, |
601 | bfa_fcxp_get_sgaddr_t get_rsp_sga, | 606 | bfa_fcxp_get_sgaddr_t get_rsp_sga, |
602 | bfa_fcxp_get_sglen_t get_rsp_sglen); | 607 | bfa_fcxp_get_sglen_t get_rsp_sglen, |
608 | bfa_boolean_t req); | ||
603 | void bfa_fcxp_walloc_cancel(struct bfa_s *bfa, | 609 | void bfa_fcxp_walloc_cancel(struct bfa_s *bfa, |
604 | struct bfa_fcxp_wqe_s *wqe); | 610 | struct bfa_fcxp_wqe_s *wqe); |
605 | void bfa_fcxp_discard(struct bfa_fcxp_s *fcxp); | 611 | void bfa_fcxp_discard(struct bfa_fcxp_s *fcxp); |
@@ -658,6 +664,7 @@ u8 bfa_lps_get_fwtag(struct bfa_s *bfa, u8 lp_tag); | |||
658 | u32 bfa_lps_get_base_pid(struct bfa_s *bfa); | 664 | u32 bfa_lps_get_base_pid(struct bfa_s *bfa); |
659 | u8 bfa_lps_get_tag_from_pid(struct bfa_s *bfa, u32 pid); | 665 | u8 bfa_lps_get_tag_from_pid(struct bfa_s *bfa, u32 pid); |
660 | void bfa_cb_lps_flogi_comp(void *bfad, void *uarg, bfa_status_t status); | 666 | void bfa_cb_lps_flogi_comp(void *bfad, void *uarg, bfa_status_t status); |
667 | void bfa_cb_lps_flogo_comp(void *bfad, void *uarg); | ||
661 | void bfa_cb_lps_fdisc_comp(void *bfad, void *uarg, bfa_status_t status); | 668 | void bfa_cb_lps_fdisc_comp(void *bfad, void *uarg, bfa_status_t status); |
662 | void bfa_cb_lps_fdisclogo_comp(void *bfad, void *uarg); | 669 | void bfa_cb_lps_fdisclogo_comp(void *bfad, void *uarg); |
663 | void bfa_cb_lps_cvl_event(void *bfad, void *uarg); | 670 | void bfa_cb_lps_cvl_event(void *bfad, void *uarg); |