root/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h

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

INCLUDED FROM


   1 // SPDX-License-Identifier: ISC
   2 /*
   3  * Copyright (c) 2014 Broadcom Corporation
   4  */
   5 #ifndef _BRCMF_FEATURE_H
   6 #define _BRCMF_FEATURE_H
   7 
   8 /*
   9  * Features:
  10  *
  11  * MBSS: multiple BSSID support (eg. guest network in AP mode).
  12  * MCHAN: multi-channel for concurrent P2P.
  13  * PNO: preferred network offload.
  14  * WOWL: Wake-On-WLAN.
  15  * P2P: peer-to-peer
  16  * RSDB: Real Simultaneous Dual Band
  17  * TDLS: Tunneled Direct Link Setup
  18  * SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan.
  19  * WOWL_ND: WOWL net detect (PNO)
  20  * WOWL_GTK: (WOWL) GTK rekeying offload
  21  * WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL.
  22  * MFP: 802.11w Management Frame Protection.
  23  * GSCAN: enhanced scan offload feature.
  24  * FWSUP: Firmware supplicant.
  25  * MONITOR: firmware can pass monitor packets to host.
  26  * MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header
  27  * MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header
  28  * DOT11H: firmware supports 802.11h
  29  */
  30 #define BRCMF_FEAT_LIST \
  31         BRCMF_FEAT_DEF(MBSS) \
  32         BRCMF_FEAT_DEF(MCHAN) \
  33         BRCMF_FEAT_DEF(PNO) \
  34         BRCMF_FEAT_DEF(WOWL) \
  35         BRCMF_FEAT_DEF(P2P) \
  36         BRCMF_FEAT_DEF(RSDB) \
  37         BRCMF_FEAT_DEF(TDLS) \
  38         BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \
  39         BRCMF_FEAT_DEF(WOWL_ND) \
  40         BRCMF_FEAT_DEF(WOWL_GTK) \
  41         BRCMF_FEAT_DEF(WOWL_ARP_ND) \
  42         BRCMF_FEAT_DEF(MFP) \
  43         BRCMF_FEAT_DEF(GSCAN) \
  44         BRCMF_FEAT_DEF(FWSUP) \
  45         BRCMF_FEAT_DEF(MONITOR) \
  46         BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \
  47         BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \
  48         BRCMF_FEAT_DEF(DOT11H)
  49 
  50 /*
  51  * Quirks:
  52  *
  53  * AUTO_AUTH: workaround needed for automatic authentication type.
  54  * NEED_MPC: driver needs to disable MPC during scanning operation.
  55  */
  56 #define BRCMF_QUIRK_LIST \
  57         BRCMF_QUIRK_DEF(AUTO_AUTH) \
  58         BRCMF_QUIRK_DEF(NEED_MPC)
  59 
  60 #define BRCMF_FEAT_DEF(_f) \
  61         BRCMF_FEAT_ ## _f,
  62 /*
  63  * expand feature list to enumeration.
  64  */
  65 enum brcmf_feat_id {
  66         BRCMF_FEAT_LIST
  67         BRCMF_FEAT_LAST
  68 };
  69 #undef BRCMF_FEAT_DEF
  70 
  71 #define BRCMF_QUIRK_DEF(_q) \
  72         BRCMF_FEAT_QUIRK_ ## _q,
  73 /*
  74  * expand quirk list to enumeration.
  75  */
  76 enum brcmf_feat_quirk {
  77         BRCMF_QUIRK_LIST
  78         BRCMF_FEAT_QUIRK_LAST
  79 };
  80 #undef BRCMF_QUIRK_DEF
  81 
  82 /**
  83  * brcmf_feat_attach() - determine features and quirks.
  84  *
  85  * @drvr: driver instance.
  86  */
  87 void brcmf_feat_attach(struct brcmf_pub *drvr);
  88 
  89 /**
  90  * brcmf_feat_debugfs_create() - create debugfs entries.
  91  *
  92  * @drvr: driver instance.
  93  */
  94 void brcmf_feat_debugfs_create(struct brcmf_pub *drvr);
  95 
  96 /**
  97  * brcmf_feat_is_enabled() - query feature.
  98  *
  99  * @ifp: interface instance.
 100  * @id: feature id to check.
 101  *
 102  * Return: true is feature is enabled; otherwise false.
 103  */
 104 bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id);
 105 
 106 /**
 107  * brcmf_feat_is_quirk_enabled() - query chip quirk.
 108  *
 109  * @ifp: interface instance.
 110  * @quirk: quirk id to check.
 111  *
 112  * Return: true is quirk is enabled; otherwise false.
 113  */
 114 bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp,
 115                                  enum brcmf_feat_quirk quirk);
 116 
 117 #endif /* _BRCMF_FEATURE_H */

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