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