linux/drivers/scsi/bfa/bfa_modules.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * Copyright (c) 2005-2014 Brocade Communications Systems, Inc.
   4 * Copyright (c) 2014- QLogic Corporation.
   5 * All rights reserved
   6 * www.qlogic.com
   7 *
   8 * Linux driver for QLogic BR-series Fibre Channel Host Bus Adapter.
   9 */
  10
  11/*
  12 *  bfa_modules.h BFA modules
  13 */
  14
  15#ifndef __BFA_MODULES_H__
  16#define __BFA_MODULES_H__
  17
  18#include "bfa_cs.h"
  19#include "bfa.h"
  20#include "bfa_svc.h"
  21#include "bfa_fcpim.h"
  22#include "bfa_port.h"
  23
  24struct 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          */
  42};
  43
  44/*
  45 * !!! Only append to the enums defined here to avoid any versioning
  46 * !!! needed between trace utility and driver version
  47 */
  48enum {
  49        BFA_TRC_HAL_CORE        = 1,
  50        BFA_TRC_HAL_FCXP        = 2,
  51        BFA_TRC_HAL_FCPIM       = 3,
  52        BFA_TRC_HAL_IOCFC_CT    = 4,
  53        BFA_TRC_HAL_IOCFC_CB    = 5,
  54};
  55
  56#define BFA_CACHELINE_SZ        (256)
  57
  58struct bfa_s {
  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;
  71        int                     bfa_aen_seq;
  72        bfa_boolean_t           intr_enabled;   /*  Status of interrupts */
  73};
  74
  75extern bfa_boolean_t bfa_auto_recover;
  76
  77void bfa_dconf_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *);
  78void bfa_dconf_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
  79                  struct bfa_s *);
  80void bfa_dconf_iocdisable(struct bfa_s *);
  81void bfa_fcp_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
  82                struct bfa_pcidev_s *);
  83void bfa_fcp_iocdisable(struct bfa_s *bfa);
  84void bfa_fcp_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
  85                struct bfa_s *);
  86void bfa_fcpim_iocdisable(struct bfa_fcp_mod_s *);
  87void bfa_fcport_start(struct bfa_s *);
  88void bfa_fcport_iocdisable(struct bfa_s *);
  89void bfa_fcport_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
  90                   struct bfa_s *);
  91void bfa_fcport_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
  92                struct bfa_pcidev_s *);
  93void bfa_fcxp_iocdisable(struct bfa_s *);
  94void bfa_fcxp_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
  95                struct bfa_s *);
  96void bfa_fcxp_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
  97                struct bfa_pcidev_s *);
  98void bfa_fcdiag_iocdisable(struct bfa_s *);
  99void bfa_fcdiag_attach(struct bfa_s *bfa, void *, struct bfa_iocfc_cfg_s *,
 100                struct bfa_pcidev_s *);
 101void bfa_ioim_lm_init(struct bfa_s *);
 102void bfa_lps_iocdisable(struct bfa_s *bfa);
 103void bfa_lps_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
 104                struct bfa_s *);
 105void bfa_lps_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
 106        struct bfa_pcidev_s *);
 107void bfa_rport_iocdisable(struct bfa_s *bfa);
 108void bfa_rport_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
 109                struct bfa_s *);
 110void bfa_rport_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
 111                struct bfa_pcidev_s *);
 112void bfa_sgpg_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
 113                struct bfa_s *);
 114void bfa_sgpg_attach(struct bfa_s *, void *bfad, struct bfa_iocfc_cfg_s *,
 115                struct bfa_pcidev_s *);
 116void bfa_uf_iocdisable(struct bfa_s *);
 117void bfa_uf_meminfo(struct bfa_iocfc_cfg_s *, struct bfa_meminfo_s *,
 118                struct bfa_s *);
 119void bfa_uf_attach(struct bfa_s *, void *, struct bfa_iocfc_cfg_s *,
 120                struct bfa_pcidev_s *);
 121void bfa_uf_start(struct bfa_s *);
 122
 123#endif /* __BFA_MODULES_H__ */
 124