aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/brocade/bna/bfa_ioc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/brocade/bna/bfa_ioc.h')
-rw-r--r--drivers/net/ethernet/brocade/bna/bfa_ioc.h43
1 files changed, 11 insertions, 32 deletions
diff --git a/drivers/net/ethernet/brocade/bna/bfa_ioc.h b/drivers/net/ethernet/brocade/bna/bfa_ioc.h
index 3b4460fdc148..63a85e555df8 100644
--- a/drivers/net/ethernet/brocade/bna/bfa_ioc.h
+++ b/drivers/net/ethernet/brocade/bna/bfa_ioc.h
@@ -30,9 +30,7 @@
30#define BNA_DBG_FWTRC_LEN (BFI_IOC_TRC_ENTS * BFI_IOC_TRC_ENT_SZ + \ 30#define BNA_DBG_FWTRC_LEN (BFI_IOC_TRC_ENTS * BFI_IOC_TRC_ENT_SZ + \
31 BFI_IOC_TRC_HDR_SZ) 31 BFI_IOC_TRC_HDR_SZ)
32 32
33/** 33/* PCI device information required by IOC */
34 * PCI device information required by IOC
35 */
36struct bfa_pcidev { 34struct bfa_pcidev {
37 int pci_slot; 35 int pci_slot;
38 u8 pci_func; 36 u8 pci_func;
@@ -41,8 +39,7 @@ struct bfa_pcidev {
41 void __iomem *pci_bar_kva; 39 void __iomem *pci_bar_kva;
42}; 40};
43 41
44/** 42/* Structure used to remember the DMA-able memory block's KVA and Physical
45 * Structure used to remember the DMA-able memory block's KVA and Physical
46 * Address 43 * Address
47 */ 44 */
48struct bfa_dma { 45struct bfa_dma {
@@ -52,15 +49,11 @@ struct bfa_dma {
52 49
53#define BFA_DMA_ALIGN_SZ 256 50#define BFA_DMA_ALIGN_SZ 256
54 51
55/** 52/* smem size for Crossbow and Catapult */
56 * smem size for Crossbow and Catapult
57 */
58#define BFI_SMEM_CB_SIZE 0x200000U /* ! 2MB for crossbow */ 53#define BFI_SMEM_CB_SIZE 0x200000U /* ! 2MB for crossbow */
59#define BFI_SMEM_CT_SIZE 0x280000U /* ! 2.5MB for catapult */ 54#define BFI_SMEM_CT_SIZE 0x280000U /* ! 2.5MB for catapult */
60 55
61/** 56/* BFA dma address assignment macro. (big endian format) */
62 * @brief BFA dma address assignment macro. (big endian format)
63 */
64#define bfa_dma_be_addr_set(dma_addr, pa) \ 57#define bfa_dma_be_addr_set(dma_addr, pa) \
65 __bfa_dma_be_addr_set(&dma_addr, (u64)pa) 58 __bfa_dma_be_addr_set(&dma_addr, (u64)pa)
66static inline void 59static inline void
@@ -108,9 +101,7 @@ struct bfa_ioc_regs {
108 u32 smem_pg0; 101 u32 smem_pg0;
109}; 102};
110 103
111/** 104/* IOC Mailbox structures */
112 * IOC Mailbox structures
113 */
114typedef void (*bfa_mbox_cmd_cbfn_t)(void *cbarg); 105typedef void (*bfa_mbox_cmd_cbfn_t)(void *cbarg);
115struct bfa_mbox_cmd { 106struct bfa_mbox_cmd {
116 struct list_head qe; 107 struct list_head qe;
@@ -119,9 +110,7 @@ struct bfa_mbox_cmd {
119 u32 msg[BFI_IOC_MSGSZ]; 110 u32 msg[BFI_IOC_MSGSZ];
120}; 111};
121 112
122/** 113/* IOC mailbox module */
123 * IOC mailbox module
124 */
125typedef void (*bfa_ioc_mbox_mcfunc_t)(void *cbarg, struct bfi_mbmsg *m); 114typedef void (*bfa_ioc_mbox_mcfunc_t)(void *cbarg, struct bfi_mbmsg *m);
126struct bfa_ioc_mbox_mod { 115struct bfa_ioc_mbox_mod {
127 struct list_head cmd_q; /*!< pending mbox queue */ 116 struct list_head cmd_q; /*!< pending mbox queue */
@@ -132,9 +121,7 @@ struct bfa_ioc_mbox_mod {
132 } mbhdlr[BFI_MC_MAX]; 121 } mbhdlr[BFI_MC_MAX];
133}; 122};
134 123
135/** 124/* IOC callback function interfaces */
136 * IOC callback function interfaces
137 */
138typedef void (*bfa_ioc_enable_cbfn_t)(void *bfa, enum bfa_status status); 125typedef void (*bfa_ioc_enable_cbfn_t)(void *bfa, enum bfa_status status);
139typedef void (*bfa_ioc_disable_cbfn_t)(void *bfa); 126typedef void (*bfa_ioc_disable_cbfn_t)(void *bfa);
140typedef void (*bfa_ioc_hbfail_cbfn_t)(void *bfa); 127typedef void (*bfa_ioc_hbfail_cbfn_t)(void *bfa);
@@ -146,9 +133,7 @@ struct bfa_ioc_cbfn {
146 bfa_ioc_reset_cbfn_t reset_cbfn; 133 bfa_ioc_reset_cbfn_t reset_cbfn;
147}; 134};
148 135
149/** 136/* IOC event notification mechanism. */
150 * IOC event notification mechanism.
151 */
152enum bfa_ioc_event { 137enum bfa_ioc_event {
153 BFA_IOC_E_ENABLED = 1, 138 BFA_IOC_E_ENABLED = 1,
154 BFA_IOC_E_DISABLED = 2, 139 BFA_IOC_E_DISABLED = 2,
@@ -163,9 +148,7 @@ struct bfa_ioc_notify {
163 void *cbarg; 148 void *cbarg;
164}; 149};
165 150
166/** 151/* Initialize a IOC event notification structure */
167 * Initialize a IOC event notification structure
168 */
169#define bfa_ioc_notify_init(__notify, __cbfn, __cbarg) do { \ 152#define bfa_ioc_notify_init(__notify, __cbfn, __cbarg) do { \
170 (__notify)->cbfn = (__cbfn); \ 153 (__notify)->cbfn = (__cbfn); \
171 (__notify)->cbarg = (__cbarg); \ 154 (__notify)->cbarg = (__cbarg); \
@@ -261,9 +244,7 @@ struct bfa_ioc_hwif {
261#define BFA_IOC_FLASH_OFFSET_IN_CHUNK(off) (off % BFI_FLASH_CHUNK_SZ_WORDS) 244#define BFA_IOC_FLASH_OFFSET_IN_CHUNK(off) (off % BFI_FLASH_CHUNK_SZ_WORDS)
262#define BFA_IOC_FLASH_CHUNK_ADDR(chunkno) (chunkno * BFI_FLASH_CHUNK_SZ_WORDS) 245#define BFA_IOC_FLASH_CHUNK_ADDR(chunkno) (chunkno * BFI_FLASH_CHUNK_SZ_WORDS)
263 246
264/** 247/* IOC mailbox interface */
265 * IOC mailbox interface
266 */
267bool bfa_nw_ioc_mbox_queue(struct bfa_ioc *ioc, 248bool bfa_nw_ioc_mbox_queue(struct bfa_ioc *ioc,
268 struct bfa_mbox_cmd *cmd, 249 struct bfa_mbox_cmd *cmd,
269 bfa_mbox_cmd_cbfn_t cbfn, void *cbarg); 250 bfa_mbox_cmd_cbfn_t cbfn, void *cbarg);
@@ -271,9 +252,7 @@ void bfa_nw_ioc_mbox_isr(struct bfa_ioc *ioc);
271void bfa_nw_ioc_mbox_regisr(struct bfa_ioc *ioc, enum bfi_mclass mc, 252void bfa_nw_ioc_mbox_regisr(struct bfa_ioc *ioc, enum bfi_mclass mc,
272 bfa_ioc_mbox_mcfunc_t cbfn, void *cbarg); 253 bfa_ioc_mbox_mcfunc_t cbfn, void *cbarg);
273 254
274/** 255/* IOC interfaces */
275 * IOC interfaces
276 */
277 256
278#define bfa_ioc_pll_init_asic(__ioc) \ 257#define bfa_ioc_pll_init_asic(__ioc) \
279 ((__ioc)->ioc_hwif->ioc_pll_init((__ioc)->pcidev.pci_bar_kva, \ 258 ((__ioc)->ioc_hwif->ioc_pll_init((__ioc)->pcidev.pci_bar_kva, \