File Index
Files and directories
Sign in
FILE

feature.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.h C
  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_FLAG: firmware flags monitor packets.
 27 * MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header
 28 * MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header
 29 * DOT11H: firmware supports 802.11h
 30 * SAE: simultaneous authentication of equals
 31 * FWAUTH: Firmware authenticator
 32 * DUMP_OBSS: Firmware has capable to dump obss info to support ACS
 33 * SCAN_V2: Version 2 scan params
 34 * SAE_EXT: SAE authentication handled by user-space supplicant
 35 */
 36#define BRCMF_FEAT_LIST \
 37	BRCMF_FEAT_DEF(MBSS) \
 38	BRCMF_FEAT_DEF(MCHAN) \
 39	BRCMF_FEAT_DEF(PNO) \
 40	BRCMF_FEAT_DEF(WOWL) \
 41	BRCMF_FEAT_DEF(P2P) \
 42	BRCMF_FEAT_DEF(RSDB) \
 43	BRCMF_FEAT_DEF(TDLS) \
 44	BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \
 45	BRCMF_FEAT_DEF(WOWL_ND) \
 46	BRCMF_FEAT_DEF(WOWL_GTK) \
 47	BRCMF_FEAT_DEF(WOWL_ARP_ND) \
 48	BRCMF_FEAT_DEF(MFP) \
 49	BRCMF_FEAT_DEF(GSCAN) \
 50	BRCMF_FEAT_DEF(FWSUP) \
 51	BRCMF_FEAT_DEF(MONITOR) \
 52	BRCMF_FEAT_DEF(MONITOR_FLAG) \
 53	BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \
 54	BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \
 55	BRCMF_FEAT_DEF(DOT11H) \
 56	BRCMF_FEAT_DEF(SAE) \
 57	BRCMF_FEAT_DEF(FWAUTH) \
 58	BRCMF_FEAT_DEF(DUMP_OBSS) \
 59	BRCMF_FEAT_DEF(SCAN_V2) \
 60	BRCMF_FEAT_DEF(PMKID_V2) \
 61	BRCMF_FEAT_DEF(PMKID_V3) \
 62	BRCMF_FEAT_DEF(SAE_EXT)
 63
 64/*
 65 * Quirks:
 66 *
 67 * AUTO_AUTH: workaround needed for automatic authentication type.
 68 * NEED_MPC: driver needs to disable MPC during scanning operation.
 69 */
 70#define BRCMF_QUIRK_LIST \
 71	BRCMF_QUIRK_DEF(AUTO_AUTH) \
 72	BRCMF_QUIRK_DEF(NEED_MPC)
 73
 74#define BRCMF_FEAT_DEF(_f) \
 75	BRCMF_FEAT_ ## _f,
 76/*
 77 * expand feature list to enumeration.
 78 */
 79enum brcmf_feat_id {
 80	BRCMF_FEAT_LIST
 81	BRCMF_FEAT_LAST
 82};
 83#undef BRCMF_FEAT_DEF
 84
 85#define BRCMF_QUIRK_DEF(_q) \
 86	BRCMF_FEAT_QUIRK_ ## _q,
 87/*
 88 * expand quirk list to enumeration.
 89 */
 90enum brcmf_feat_quirk {
 91	BRCMF_QUIRK_LIST
 92	BRCMF_FEAT_QUIRK_LAST
 93};
 94#undef BRCMF_QUIRK_DEF
 95
 96/**
 97 * brcmf_feat_attach() - determine features and quirks.
 98 *
 99 * @drvr: driver instance.
100 */
101void brcmf_feat_attach(struct brcmf_pub *drvr);
102
103/**
104 * brcmf_feat_debugfs_create() - create debugfs entries.
105 *
106 * @drvr: driver instance.
107 */
108void brcmf_feat_debugfs_create(struct brcmf_pub *drvr);
109
110/**
111 * brcmf_feat_is_enabled() - query feature.
112 *
113 * @ifp: interface instance.
114 * @id: feature id to check.
115 *
116 * Return: true is feature is enabled; otherwise false.
117 */
118bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id);
119
120/**
121 * brcmf_feat_is_quirk_enabled() - query chip quirk.
122 *
123 * @ifp: interface instance.
124 * @quirk: quirk id to check.
125 *
126 * Return: true is quirk is enabled; otherwise false.
127 */
128bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp,
129				 enum brcmf_feat_quirk quirk);
130
131#endif /* _BRCMF_FEATURE_H */
~/ Read-only file preview.