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 124 125 126 127 128 129 130 131 | // SPDX-License-Identifier: ISC /* * Copyright (c) 2014 Broadcom Corporation */ #ifndef _BRCMF_FEATURE_H #define _BRCMF_FEATURE_H /* * Features: * * MBSS: multiple BSSID support (eg. guest network in AP mode). * MCHAN: multi-channel for concurrent P2P. * PNO: preferred network offload. * WOWL: Wake-On-WLAN. * P2P: peer-to-peer * RSDB: Real Simultaneous Dual Band * TDLS: Tunneled Direct Link Setup * SCAN_RANDOM_MAC: Random MAC during (net detect) scheduled scan. * WOWL_ND: WOWL net detect (PNO) * WOWL_GTK: (WOWL) GTK rekeying offload * WOWL_ARP_ND: ARP and Neighbor Discovery offload support during WOWL. * MFP: 802.11w Management Frame Protection. * GSCAN: enhanced scan offload feature. * FWSUP: Firmware supplicant. * MONITOR: firmware can pass monitor packets to host. * MONITOR_FLAG: firmware flags monitor packets. * MONITOR_FMT_RADIOTAP: firmware provides monitor packets with radiotap header * MONITOR_FMT_HW_RX_HDR: firmware provides monitor packets with hw/ucode header * DOT11H: firmware supports 802.11h * SAE: simultaneous authentication of equals * FWAUTH: Firmware authenticator * DUMP_OBSS: Firmware has capable to dump obss info to support ACS * SCAN_V2: Version 2 scan params * SAE_EXT: SAE authentication handled by user-space supplicant */ #define BRCMF_FEAT_LIST \ BRCMF_FEAT_DEF(MBSS) \ BRCMF_FEAT_DEF(MCHAN) \ BRCMF_FEAT_DEF(PNO) \ BRCMF_FEAT_DEF(WOWL) \ BRCMF_FEAT_DEF(P2P) \ BRCMF_FEAT_DEF(RSDB) \ BRCMF_FEAT_DEF(TDLS) \ BRCMF_FEAT_DEF(SCAN_RANDOM_MAC) \ BRCMF_FEAT_DEF(WOWL_ND) \ BRCMF_FEAT_DEF(WOWL_GTK) \ BRCMF_FEAT_DEF(WOWL_ARP_ND) \ BRCMF_FEAT_DEF(MFP) \ BRCMF_FEAT_DEF(GSCAN) \ BRCMF_FEAT_DEF(FWSUP) \ BRCMF_FEAT_DEF(MONITOR) \ BRCMF_FEAT_DEF(MONITOR_FLAG) \ BRCMF_FEAT_DEF(MONITOR_FMT_RADIOTAP) \ BRCMF_FEAT_DEF(MONITOR_FMT_HW_RX_HDR) \ BRCMF_FEAT_DEF(DOT11H) \ BRCMF_FEAT_DEF(SAE) \ BRCMF_FEAT_DEF(FWAUTH) \ BRCMF_FEAT_DEF(DUMP_OBSS) \ BRCMF_FEAT_DEF(SCAN_V2) \ BRCMF_FEAT_DEF(PMKID_V2) \ BRCMF_FEAT_DEF(PMKID_V3) \ BRCMF_FEAT_DEF(SAE_EXT) /* * Quirks: * * AUTO_AUTH: workaround needed for automatic authentication type. * NEED_MPC: driver needs to disable MPC during scanning operation. */ #define BRCMF_QUIRK_LIST \ BRCMF_QUIRK_DEF(AUTO_AUTH) \ BRCMF_QUIRK_DEF(NEED_MPC) #define BRCMF_FEAT_DEF(_f) \ BRCMF_FEAT_ ## _f, /* * expand feature list to enumeration. */ enum brcmf_feat_id { BRCMF_FEAT_LIST BRCMF_FEAT_LAST }; #undef BRCMF_FEAT_DEF #define BRCMF_QUIRK_DEF(_q) \ BRCMF_FEAT_QUIRK_ ## _q, /* * expand quirk list to enumeration. */ enum brcmf_feat_quirk { BRCMF_QUIRK_LIST BRCMF_FEAT_QUIRK_LAST }; #undef BRCMF_QUIRK_DEF /** * brcmf_feat_attach() - determine features and quirks. * * @drvr: driver instance. */ void brcmf_feat_attach(struct brcmf_pub *drvr); /** * brcmf_feat_debugfs_create() - create debugfs entries. * * @drvr: driver instance. */ void brcmf_feat_debugfs_create(struct brcmf_pub *drvr); /** * brcmf_feat_is_enabled() - query feature. * * @ifp: interface instance. * @id: feature id to check. * * Return: true is feature is enabled; otherwise false. */ bool brcmf_feat_is_enabled(struct brcmf_if *ifp, enum brcmf_feat_id id); /** * brcmf_feat_is_quirk_enabled() - query chip quirk. * * @ifp: interface instance. * @quirk: quirk id to check. * * Return: true is quirk is enabled; otherwise false. */ bool brcmf_feat_is_quirk_enabled(struct brcmf_if *ifp, enum brcmf_feat_quirk quirk); #endif /* _BRCMF_FEATURE_H */ |