xref: /linux/drivers/net/wireless/ath/wcn36xx/firmware.h (revision e7d759f31ca295d589f7420719c311870bb3166f)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _FIRMWARE_H_
4 #define _FIRMWARE_H_
5 
6 /* Capability bitmap exchange definitions and macros starts */
7 
8 enum wcn36xx_firmware_feat_caps {
9 	MCC = 0,
10 	P2P = 1,
11 	DOT11AC = 2,
12 	SLM_SESSIONIZATION = 3,
13 	DOT11AC_OPMODE = 4,
14 	SAP32STA = 5,
15 	TDLS = 6,
16 	P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
17 	WLANACTIVE_OFFLOAD = 8,
18 	BEACON_OFFLOAD = 9,
19 	SCAN_OFFLOAD = 10,
20 	ROAM_OFFLOAD = 11,
21 	BCN_MISS_OFFLOAD = 12,
22 	STA_POWERSAVE = 13,
23 	STA_ADVANCED_PWRSAVE = 14,
24 	AP_UAPSD = 15,
25 	AP_DFS = 16,
26 	BLOCKACK = 17,
27 	PHY_ERR = 18,
28 	BCN_FILTER = 19,
29 	RTT = 20,
30 	RATECTRL = 21,
31 	WOW = 22,
32 	WLAN_ROAM_SCAN_OFFLOAD = 23,
33 	SPECULATIVE_PS_POLL = 24,
34 	SCAN_SCH = 25,
35 	IBSS_HEARTBEAT_OFFLOAD = 26,
36 	WLAN_SCAN_OFFLOAD = 27,
37 	WLAN_PERIODIC_TX_PTRN = 28,
38 	ADVANCE_TDLS = 29,
39 	BATCH_SCAN = 30,
40 	FW_IN_TX_PATH = 31,
41 	EXTENDED_NSOFFLOAD_SLOT = 32,
42 	CH_SWITCH_V1 = 33,
43 	HT40_OBSS_SCAN = 34,
44 	UPDATE_CHANNEL_LIST = 35,
45 	WLAN_MCADDR_FLT = 36,
46 	WLAN_CH144 = 37,
47 	NAN = 38,
48 	TDLS_SCAN_COEXISTENCE = 39,
49 	LINK_LAYER_STATS_MEAS = 40,
50 	MU_MIMO = 41,
51 	EXTENDED_SCAN = 42,
52 	DYNAMIC_WMM_PS = 43,
53 	MAC_SPOOFED_SCAN = 44,
54 	BMU_ERROR_GENERIC_RECOVERY = 45,
55 	DISA = 46,
56 	FW_STATS = 47,
57 	WPS_PRBRSP_TMPL = 48,
58 	BCN_IE_FLT_DELTA = 49,
59 	TDLS_OFF_CHANNEL = 51,
60 	RTT3 = 52,
61 	MGMT_FRAME_LOGGING = 53,
62 	ENHANCED_TXBD_COMPLETION = 54,
63 	LOGGING_ENHANCEMENT = 55,
64 	EXT_SCAN_ENHANCED = 56,
65 	MEMORY_DUMP_SUPPORTED = 57,
66 	PER_PKT_STATS_SUPPORTED = 58,
67 	EXT_LL_STAT = 60,
68 	WIFI_CONFIG = 61,
69 	ANTENNA_DIVERSITY_SELECTION = 62,
70 
71 	MAX_FEATURE_SUPPORTED = 128,
72 };
73 
74 void wcn36xx_firmware_set_feat_caps(u32 *bitmap,
75 				    enum wcn36xx_firmware_feat_caps cap);
76 int wcn36xx_firmware_get_feat_caps(u32 *bitmap,
77 				   enum wcn36xx_firmware_feat_caps cap);
78 void wcn36xx_firmware_clear_feat_caps(u32 *bitmap,
79 				      enum wcn36xx_firmware_feat_caps cap);
80 
81 const char *wcn36xx_firmware_get_cap_name(enum wcn36xx_firmware_feat_caps x);
82 
83 #endif /* _FIRMWARE_H_ */
84 
85