root/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. bnxt_get_bp_from_dl
  2. bnxt_link_bp_to_dl

   1 /* Broadcom NetXtreme-C/E network driver.
   2  *
   3  * Copyright (c) 2017 Broadcom Limited
   4  *
   5  * This program is free software; you can redistribute it and/or modify
   6  * it under the terms of the GNU General Public License as published by
   7  * the Free Software Foundation.
   8  */
   9 
  10 #ifndef BNXT_DEVLINK_H
  11 #define BNXT_DEVLINK_H
  12 
  13 /* Struct to hold housekeeping info needed by devlink interface */
  14 struct bnxt_dl {
  15         struct bnxt *bp;        /* back ptr to the controlling dev */
  16 };
  17 
  18 static inline struct bnxt *bnxt_get_bp_from_dl(struct devlink *dl)
  19 {
  20         return ((struct bnxt_dl *)devlink_priv(dl))->bp;
  21 }
  22 
  23 /* To clear devlink pointer from bp, pass NULL dl */
  24 static inline void bnxt_link_bp_to_dl(struct bnxt *bp, struct devlink *dl)
  25 {
  26         bp->dl = dl;
  27 
  28         /* add a back pointer in dl to bp */
  29         if (dl) {
  30                 struct bnxt_dl *bp_dl = devlink_priv(dl);
  31 
  32                 bp_dl->bp = bp;
  33         }
  34 }
  35 
  36 #define NVM_OFF_MSIX_VEC_PER_PF_MAX     108
  37 #define NVM_OFF_MSIX_VEC_PER_PF_MIN     114
  38 #define NVM_OFF_IGNORE_ARI              164
  39 #define NVM_OFF_DIS_GRE_VER_CHECK       171
  40 #define NVM_OFF_ENABLE_SRIOV            401
  41 
  42 #define BNXT_MSIX_VEC_MAX       512
  43 #define BNXT_MSIX_VEC_MIN_MAX   128
  44 
  45 enum bnxt_nvm_dir_type {
  46         BNXT_NVM_SHARED_CFG = 40,
  47         BNXT_NVM_PORT_CFG,
  48         BNXT_NVM_FUNC_CFG,
  49 };
  50 
  51 struct bnxt_dl_nvm_param {
  52         u16 id;
  53         u16 offset;
  54         u16 dir_type;
  55         u16 nvm_num_bits;
  56         u8 dl_num_bytes;
  57 };
  58 
  59 void bnxt_devlink_health_report(struct bnxt *bp, unsigned long event);
  60 void bnxt_dl_fw_reporters_create(struct bnxt *bp);
  61 void bnxt_dl_fw_reporters_destroy(struct bnxt *bp, bool all);
  62 int bnxt_dl_register(struct bnxt *bp);
  63 void bnxt_dl_unregister(struct bnxt *bp);
  64 
  65 #endif /* BNXT_DEVLINK_H */

/* [<][>][^][v][top][bottom][index][help] */