FILE
fwil.h
File preview with syntax highlighting.
linux-6.19.14/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
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.