1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
4 * Copyright (c) 2014- QLogic Corporation.
8 * Linux driver for QLogic BR-series Fibre Channel Host Bus Adapter.
12 * bfa_modules.h BFA modules
15 #ifndef __BFA_MODULES_H__
16 #define __BFA_MODULES_H__
21 #include "bfa_fcpim.h"
24 struct bfa_modules_s
{
25 struct bfa_fcdiag_s fcdiag
; /* fcdiag module */
26 struct bfa_fcport_s fcport
; /* fc port module */
27 struct bfa_fcxp_mod_s fcxp_mod
; /* fcxp module */
28 struct bfa_lps_mod_s lps_mod
; /* fcxp module */
29 struct bfa_uf_mod_s uf_mod
; /* unsolicited frame module */
30 struct bfa_rport_mod_s rport_mod
; /* remote port module */
31 struct bfa_fcp_mod_s fcp_mod
; /* FCP initiator module */
32 struct bfa_sgpg_mod_s sgpg_mod
; /* SG page module */
33 struct bfa_port_s port
; /* Physical port module */
34 struct bfa_ablk_s ablk
; /* ASIC block config module */
35 struct bfa_cee_s cee
; /* CEE Module */
36 struct bfa_sfp_s sfp
; /* SFP module */
37 struct bfa_flash_s flash
; /* flash module */
38 struct bfa_diag_s diag_mod
; /* diagnostics module */
39 struct bfa_phy_s phy
; /* phy module */
40 struct bfa_dconf_mod_s dconf_mod
; /* DCONF common module */
41 struct bfa_fru_s fru
; /* fru module */
45 * !!! Only append to the enums defined here to avoid any versioning
46 * !!! needed between trace utility and driver version
51 BFA_TRC_HAL_FCPIM
= 3,
52 BFA_TRC_HAL_IOCFC_CT
= 4,
53 BFA_TRC_HAL_IOCFC_CB
= 5,
56 #define BFA_CACHELINE_SZ (256)
59 void *bfad
; /* BFA driver instance */
60 struct bfa_plog_s
*plog
; /* portlog buffer */
61 struct bfa_trc_mod_s
*trcmod
; /* driver tracing */
62 struct bfa_ioc_s ioc
; /* IOC module */
63 struct bfa_iocfc_s iocfc
; /* IOCFC module */
64 struct bfa_timer_mod_s timer_mod
; /* timer module */
65 struct bfa_modules_s modules
; /* BFA modules */
66 struct list_head comp_q
; /* pending completions */
67 bfa_boolean_t queue_process
; /* queue processing enabled */
68 struct list_head reqq_waitq
[BFI_IOC_MAX_CQS
];
69 bfa_boolean_t fcs
; /* FCS is attached to BFA */
70 struct bfa_msix_s msix
;
72 bfa_boolean_t intr_enabled
; /* Status of interrupts */
75 extern bfa_boolean_t bfa_auto_recover
;
77 void bfa_dconf_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*);
78 void bfa_dconf_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
80 void bfa_dconf_iocdisable(struct bfa_s
*);
81 void bfa_fcp_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
82 struct bfa_pcidev_s
*);
83 void bfa_fcp_iocdisable(struct bfa_s
*bfa
);
84 void bfa_fcp_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
86 void bfa_fcpim_iocdisable(struct bfa_fcp_mod_s
*);
87 void bfa_fcport_start(struct bfa_s
*);
88 void bfa_fcport_iocdisable(struct bfa_s
*);
89 void bfa_fcport_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
91 void bfa_fcport_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
92 struct bfa_pcidev_s
*);
93 void bfa_fcxp_iocdisable(struct bfa_s
*);
94 void bfa_fcxp_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
96 void bfa_fcxp_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
97 struct bfa_pcidev_s
*);
98 void bfa_fcdiag_iocdisable(struct bfa_s
*);
99 void bfa_fcdiag_attach(struct bfa_s
*bfa
, void *, struct bfa_iocfc_cfg_s
*,
100 struct bfa_pcidev_s
*);
101 void bfa_ioim_lm_init(struct bfa_s
*);
102 void bfa_lps_iocdisable(struct bfa_s
*bfa
);
103 void bfa_lps_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
105 void bfa_lps_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
106 struct bfa_pcidev_s
*);
107 void bfa_rport_iocdisable(struct bfa_s
*bfa
);
108 void bfa_rport_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
110 void bfa_rport_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
111 struct bfa_pcidev_s
*);
112 void bfa_sgpg_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
114 void bfa_sgpg_attach(struct bfa_s
*, void *bfad
, struct bfa_iocfc_cfg_s
*,
115 struct bfa_pcidev_s
*);
116 void bfa_uf_iocdisable(struct bfa_s
*);
117 void bfa_uf_meminfo(struct bfa_iocfc_cfg_s
*, struct bfa_meminfo_s
*,
119 void bfa_uf_attach(struct bfa_s
*, void *, struct bfa_iocfc_cfg_s
*,
120 struct bfa_pcidev_s
*);
121 void bfa_uf_start(struct bfa_s
*);
123 #endif /* __BFA_MODULES_H__ */