File Index
Files and directories
Sign in
FILE

fwil.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h C
  1// SPDX-License-Identifier: ISC
  2/*
  3 * Copyright (c) 2012 Broadcom Corporation
  4 */
  5
  6#ifndef _fwil_h_
  7#define _fwil_h_
  8
  9#include "debug.h"
 10
 11/*******************************************************************************
 12 * Dongle command codes that are interpreted by firmware
 13 ******************************************************************************/
 14#define BRCMF_C_GET_VERSION			1
 15#define BRCMF_C_UP				2
 16#define BRCMF_C_DOWN				3
 17#define BRCMF_C_SET_PROMISC			10
 18#define BRCMF_C_GET_RATE			12
 19#define BRCMF_C_GET_INFRA			19
 20#define BRCMF_C_SET_INFRA			20
 21#define BRCMF_C_GET_AUTH			21
 22#define BRCMF_C_SET_AUTH			22
 23#define BRCMF_C_GET_BSSID			23
 24#define BRCMF_C_GET_SSID			25
 25#define BRCMF_C_SET_SSID			26
 26#define BRCMF_C_TERMINATED			28
 27#define BRCMF_C_GET_CHANNEL			29
 28#define BRCMF_C_SET_CHANNEL			30
 29#define BRCMF_C_GET_SRL				31
 30#define BRCMF_C_SET_SRL				32
 31#define BRCMF_C_GET_LRL				33
 32#define BRCMF_C_SET_LRL				34
 33#define BRCMF_C_GET_RADIO			37
 34#define BRCMF_C_SET_RADIO			38
 35#define BRCMF_C_GET_PHYTYPE			39
 36#define BRCMF_C_SET_KEY				45
 37#define BRCMF_C_GET_REGULATORY			46
 38#define BRCMF_C_SET_REGULATORY			47
 39#define BRCMF_C_SET_PASSIVE_SCAN		49
 40#define BRCMF_C_SCAN				50
 41#define BRCMF_C_SCAN_RESULTS			51
 42#define BRCMF_C_DISASSOC			52
 43#define BRCMF_C_REASSOC				53
 44#define BRCMF_C_SET_ROAM_TRIGGER		55
 45#define BRCMF_C_SET_ROAM_DELTA			57
 46#define BRCMF_C_GET_BCNPRD			75
 47#define BRCMF_C_SET_BCNPRD			76
 48#define BRCMF_C_GET_DTIMPRD			77
 49#define BRCMF_C_SET_DTIMPRD			78
 50#define BRCMF_C_SET_COUNTRY			84
 51#define BRCMF_C_GET_PM				85
 52#define BRCMF_C_SET_PM				86
 53#define BRCMF_C_GET_REVINFO			98
 54#define BRCMF_C_GET_MONITOR			107
 55#define BRCMF_C_SET_MONITOR			108
 56#define BRCMF_C_GET_CURR_RATESET		114
 57#define BRCMF_C_GET_AP				117
 58#define BRCMF_C_SET_AP				118
 59#define BRCMF_C_SET_SCB_AUTHORIZE		121
 60#define BRCMF_C_SET_SCB_DEAUTHORIZE		122
 61#define BRCMF_C_GET_RSSI			127
 62#define BRCMF_C_GET_WSEC			133
 63#define BRCMF_C_SET_WSEC			134
 64#define BRCMF_C_GET_PHY_NOISE			135
 65#define BRCMF_C_GET_BSS_INFO			136
 66#define BRCMF_C_GET_GET_PKTCNTS			137
 67#define BRCMF_C_GET_BANDLIST			140
 68#define BRCMF_C_SET_SCB_TIMEOUT			158
 69#define BRCMF_C_GET_ASSOCLIST			159
 70#define BRCMF_C_GET_PHYLIST			180
 71#define BRCMF_C_SET_SCAN_CHANNEL_TIME		185
 72#define BRCMF_C_SET_SCAN_UNASSOC_TIME		187
 73#define BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON	201
 74#define BRCMF_C_SET_ASSOC_PREFER		205
 75#define BRCMF_C_GET_VALID_CHANNELS		217
 76#define BRCMF_C_SET_FAKEFRAG			219
 77#define BRCMF_C_GET_KEY_PRIMARY			235
 78#define BRCMF_C_SET_KEY_PRIMARY			236
 79#define BRCMF_C_SET_SCAN_PASSIVE_TIME		258
 80#define BRCMF_C_GET_VAR				262
 81#define BRCMF_C_SET_VAR				263
 82#define BRCMF_C_SET_WSEC_PMK			268
 83
 84s32 brcmf_fil_cmd_data_set(struct brcmf_if *ifp, u32 cmd, void *data, u32 len);
 85s32 brcmf_fil_cmd_data_get(struct brcmf_if *ifp, u32 cmd, void *data, u32 len);
 86static inline
 87s32 brcmf_fil_cmd_int_set(struct brcmf_if *ifp, u32 cmd, u32 data)
 88{
 89	s32 err;
 90	__le32 data_le = cpu_to_le32(data);
 91
 92	brcmf_dbg(FIL, "ifidx=%d, cmd=%d, value=%d\n", ifp->ifidx, cmd, data);
 93	err = brcmf_fil_cmd_data_set(ifp, cmd, &data_le, sizeof(data_le));
 94
 95	return err;
 96}
 97static inline
 98s32 brcmf_fil_cmd_int_get(struct brcmf_if *ifp, u32 cmd, u32 *data)
 99{
100	s32 err;
101
102	err = brcmf_fil_cmd_data_get(ifp, cmd, data, sizeof(*data));
103	if (err == 0)
104		*data = le32_to_cpu(*(__le32 *)data);
105	brcmf_dbg(FIL, "ifidx=%d, cmd=%d, value=%d\n", ifp->ifidx, cmd, *data);
106
107	return err;
108}
109static inline
110s32 brcmf_fil_cmd_int_query(struct brcmf_if *ifp, u32 cmd, u32 *data)
111{
112	__le32 *data_le = (__le32 *)data;
113
114	*data_le = cpu_to_le32(*data);
115	return brcmf_fil_cmd_int_get(ifp, cmd, data);
116}
117
118s32 brcmf_fil_iovar_data_set(struct brcmf_if *ifp, const char *name,
119			     const void *data, u32 len);
120s32 brcmf_fil_iovar_data_get(struct brcmf_if *ifp, const char *name, void *data,
121			     u32 len);
122static inline
123s32 brcmf_fil_iovar_int_set(struct brcmf_if *ifp, const char *name, u32 data)
124{
125	__le32 data_le = cpu_to_le32(data);
126
127	return brcmf_fil_iovar_data_set(ifp, name, &data_le, sizeof(data_le));
128}
129static inline
130s32 brcmf_fil_iovar_int_get(struct brcmf_if *ifp, const char *name, u32 *data)
131{
132	s32 err;
133
134	err = brcmf_fil_iovar_data_get(ifp, name, data, sizeof(*data));
135	if (err == 0)
136		*data = le32_to_cpu(*(__le32 *)data);
137	return err;
138}
139static inline
140s32 brcmf_fil_iovar_int_query(struct brcmf_if *ifp, const char *name, u32 *data)
141{
142	__le32 *data_le = (__le32 *)data;
143
144	*data_le = cpu_to_le32(*data);
145	return brcmf_fil_iovar_int_get(ifp, name, data);
146}
147
148
149s32 brcmf_fil_bsscfg_data_set(struct brcmf_if *ifp, const char *name,
150			      void *data, u32 len);
151s32 brcmf_fil_bsscfg_data_get(struct brcmf_if *ifp, const char *name,
152			      void *data, u32 len);
153static inline
154s32 brcmf_fil_bsscfg_int_set(struct brcmf_if *ifp, const char *name, u32 data)
155{
156	__le32 data_le = cpu_to_le32(data);
157
158	return brcmf_fil_bsscfg_data_set(ifp, name, &data_le,
159					 sizeof(data_le));
160}
161static inline
162s32 brcmf_fil_bsscfg_int_get(struct brcmf_if *ifp, const char *name, u32 *data)
163{
164	s32 err;
165
166	err = brcmf_fil_bsscfg_data_get(ifp, name, data, sizeof(*data));
167	if (err == 0)
168		*data = le32_to_cpu(*(__le32 *)data);
169	return err;
170}
171static inline
172s32 brcmf_fil_bsscfg_int_query(struct brcmf_if *ifp, const char *name, u32 *data)
173{
174	__le32 *data_le = (__le32 *)data;
175
176	*data_le = cpu_to_le32(*data);
177	return brcmf_fil_bsscfg_int_get(ifp, name, data);
178}
179
180s32 brcmf_fil_xtlv_data_set(struct brcmf_if *ifp, const char *name, u16 id,
181			    void *data, u32 len);
182s32 brcmf_fil_xtlv_data_get(struct brcmf_if *ifp, const char *name, u16 id,
183			    void *data, u32 len);
184static inline
185s32 brcmf_fil_xtlv_int_set(struct brcmf_if *ifp, const char *name, u16 id,
186			   u32 data)
187{
188	__le32 data_le = cpu_to_le32(data);
189
190	return brcmf_fil_xtlv_data_set(ifp, name, id, &data_le,
191					 sizeof(data_le));
192}
193static inline
194s32 brcmf_fil_xtlv_int_get(struct brcmf_if *ifp, const char *name, u16 id,
195			   u32 *data)
196{
197	__le32 data_le = cpu_to_le32(*data);
198	s32 err;
199
200	err = brcmf_fil_xtlv_data_get(ifp, name, id, &data_le, sizeof(data_le));
201	if (err == 0)
202		*data = le32_to_cpu(data_le);
203	return err;
204}
205static inline
206s32 brcmf_fil_xtlv_int8_get(struct brcmf_if *ifp, const char *name, u16 id,
207			    u8 *data)
208{
209	return brcmf_fil_xtlv_data_get(ifp, name, id, data, sizeof(*data));
210}
211static inline
212s32 brcmf_fil_xtlv_int16_get(struct brcmf_if *ifp, const char *name, u16 id,
213			     u16 *data)
214{
215	__le16 data_le = cpu_to_le16(*data);
216	s32 err;
217
218	err = brcmf_fil_xtlv_data_get(ifp, name, id, &data_le, sizeof(data_le));
219	if (err == 0)
220		*data = le16_to_cpu(data_le);
221	return err;
222}
223
224#endif /* _fwil_h_ */
~/ Read-only file preview.