15b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* 25b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Copyright (c) 2010 Broadcom Corporation 35b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * 45b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Permission to use, copy, modify, and/or distribute this software for any 55b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * purpose with or without fee is hereby granted, provided that the above 65b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * copyright notice and this permission notice appear in all copies. 75b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * 85b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 95b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 125b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 135b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/**************** 185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Common types * 195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#ifndef _BRCMF_H_ 225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define _BRCMF_H_ 235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_VERSION_STR "4.218.248.5" 255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/******************************************************************************* 275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * IO codes that are interpreted by dongle firmware 285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel ******************************************************************************/ 295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_UP 2 305b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_PROMISC 10 315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_RATE 12 325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_INFRA 19 335b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_INFRA 20 345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_AUTH 21 355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_AUTH 22 365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_BSSID 23 375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_SSID 25 385b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_SSID 26 395b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_CHANNEL 29 405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_SRL 31 415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_LRL 33 425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_RADIO 37 435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_RADIO 38 445b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_PHYTYPE 39 455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_KEY 45 465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_PASSIVE_SCAN 49 475b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SCAN 50 485b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SCAN_RESULTS 51 495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_DISASSOC 52 505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_REASSOC 53 515b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_ROAM_TRIGGER 55 525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_ROAM_DELTA 57 535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_DTIMPRD 77 545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_COUNTRY 84 555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_PM 85 565b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_PM 86 575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_AP 117 585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_AP 118 595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_RSSI 127 605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_WSEC 133 615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_WSEC 134 625b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_PHY_NOISE 135 635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_BSS_INFO 136 645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_SCAN_CHANNEL_TIME 185 655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_SCAN_UNASSOC_TIME 187 665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SCB_DEAUTHENTICATE_FOR_REASON 201 675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_VALID_CHANNELS 217 685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_KEY_PRIMARY 235 695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_KEY_PRIMARY 236 705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_SCAN_PASSIVE_TIME 258 715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_GET_VAR 262 725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_C_SET_VAR 263 735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* phy types (returned by WLC_GET_PHYTPE) */ 755b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_A 0 765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_B 1 775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_G 2 785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_N 4 795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_LP 5 805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_SSN 6 815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_HT 7 825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_LCN 8 835b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WLC_PHY_TYPE_NULL 0xf 845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_EVENTING_MASK_LEN 16 865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define TOE_TX_CSUM_OL 0x00000001 885b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define TOE_RX_CSUM_OL 0x00000002 895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 90e40aed0638ac84d63a2ff33502e215ac81010a89Franky Lin#define BRCMF_BSS_INFO_VERSION 109 /* curr ver of brcmf_bss_info_le struct */ 915b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* size of brcmf_scan_params not including variable length array */ 935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_PARAMS_FIXED_SIZE 64 945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 955b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* masks for channel and ssid count */ 965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_PARAMS_COUNT_MASK 0x0000ffff 975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_PARAMS_NSSID_SHIFT 16 985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_ACTION_START 1 1005b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_ACTION_CONTINUE 2 1015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WL_SCAN_ACTION_ABORT 3 1025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_ISCAN_REQ_VERSION 1 1045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* brcmf_iscan_results status values */ 1065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_RESULTS_SUCCESS 0 1075b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_RESULTS_PARTIAL 1 1085b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_RESULTS_PENDING 2 1095b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_RESULTS_ABORTED 3 1105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_SCAN_RESULTS_NO_MEM 4 1115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1125b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Indicates this key is using soft encrypt */ 1135b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WL_SOFT_KEY (1 << 0) 1145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* primary (ie tx) key */ 1155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_PRIMARY_KEY (1 << 1) 1165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Reserved for backward compat */ 1175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WL_KF_RES_4 (1 << 4) 1185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Reserved for backward compat */ 1195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WL_KF_RES_5 (1 << 5) 1205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Indicates a group key for a IBSS PEER */ 1215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define WL_IBSS_PEER_GROUP_KEY (1 << 6) 1225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* For supporting multiple interfaces */ 1245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_MAX_IFS 16 1255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define DOT11_BSSTYPE_ANY 2 1275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define DOT11_MAX_DEFAULT_KEYS 4 1285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_EVENT_MSG_LINK 0x01 1305b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_EVENT_MSG_FLUSHTXQ 0x02 1315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_EVENT_MSG_GROUP 0x04 1325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1335b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_event_msg { 1345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be16 version; 1355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be16 flags; 1365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be32 event_type; 1375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be32 status; 1385b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be32 reason; 1395b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be32 auth_type; 1405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __be32 datalen; 1415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 addr[ETH_ALEN]; 1425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel char ifname[IFNAMSIZ]; 1435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel} __packed; 1445b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1455b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcm_ethhdr { 1465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u16 subtype; 1475b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u16 length; 1485b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 version; 1495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 oui[3]; 1505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u16 usr_subtype; 1515b435de0d786869c95d1962121af0d7df2542009Arend van Spriel} __packed; 1525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1535b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_event { 1545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct ethhdr eth; 1555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcm_ethhdr hdr; 1565b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_event_msg msg; 1575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel} __packed; 1585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 1595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* event codes sent by the dongle to this driver */ 1605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SET_SSID 0 1615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_JOIN 1 1625b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_START 2 1635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_AUTH 3 1645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_AUTH_IND 4 1655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DEAUTH 5 1665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DEAUTH_IND 6 1675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ASSOC 7 1685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ASSOC_IND 8 1695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASSOC 9 1705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASSOC_IND 10 1715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DISASSOC 11 1725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DISASSOC_IND 12 1735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_QUIET_START 13 1745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_QUIET_END 14 1755b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_BEACON_RX 15 1765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LINK 16 1775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_MIC_ERROR 17 1785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_NDIS_LINK 18 1795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ROAM 19 1805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_TXFAIL 20 1815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PMKID_CACHE 21 1825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RETROGRADE_TSF 22 1835b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE 23 1845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_AUTOAUTH 24 1855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_EAPOL_MSG 25 1865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SCAN_COMPLETE 26 1875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ADDTS_IND 27 1885b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DELTS_IND 28 1895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_BCNSENT_IND 29 1905b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_BCNRX_MSG 30 1915b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_BCNLOST_MSG 31 1925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ROAM_PREP 32 1935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PFN_NET_FOUND 33 1945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PFN_NET_LOST 34 1955b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RESET_COMPLETE 35 1965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_JOIN_START 36 1975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ROAM_START 37 1985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ASSOC_START 38 1995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IBSS_ASSOC 39 2005b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RADIO 40 2015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PSM_WATCHDOG 41 2025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PROBREQ_MSG 44 2035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SCAN_CONFIRM_IND 45 2045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PSK_SUP 46 2055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_COUNTRY_CODE_CHANGED 47 2065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_EXCEEDED_MEDIUM_TIME 48 2075b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ICV_ERROR 49 2085b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_UNICAST_DECODE_ERROR 50 2095b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_MULTICAST_DECODE_ERROR 51 2105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_TRACE 52 2115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF 54 2125b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RSSI 56 2135b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PFN_SCAN_COMPLETE 57 2145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_EXTLOG_MSG 58 2155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ACTION_FRAME 59 2165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ACTION_FRAME_COMPLETE 60 2175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRE_ASSOC_IND 61 2185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRE_REASSOC_IND 62 2195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_CHANNEL_ADOPTED 63 2205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_AP_STARTED 64 2215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DFS_AP_STOP 65 2225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DFS_AP_RESUME 66 2235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RESERVED1 67 2245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RESERVED2 68 2255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ESCAN_RESULT 69 2265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_ACTION_FRAME_OFF_CHAN_COMPLETE 70 2275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_DCS_REQUEST 73 2285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_FIFO_CREDIT_MAP 74 2305b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LAST 75 2325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2335b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_SUCCESS 0 2345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_FAIL 1 2355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_TIMEOUT 2 2365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_NO_NETWORKS 3 2375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_ABORT 4 2385b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_NO_ACK 5 2395b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_UNSOLICITED 6 2405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_ATTEMPT 7 2415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_PARTIAL 8 2425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_NEWSCAN 9 2435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_NEWASSOC 10 2445b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_11HQUIET 11 2455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_SUPPRESS 12 2465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_NOCHANS 13 2475b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_CS_ABORT 15 2485b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_STATUS_ERROR 16 2495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_INITIAL_ASSOC 0 2515b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_LOW_RSSI 1 2525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_DEAUTH 2 2535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_DISASSOC 3 2545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_BCNS_LOST 4 2555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_MINTXRATE 9 2565b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_TXFAIL 10 2575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_FAST_ROAM_FAILED 5 2595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_DIRECTED_ROAM 6 2605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_TSPEC_REJECTED 7 2615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_REASON_BETTER_AP 8 2625b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_ENCR_MISMATCH 1 2645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_BCAST_BSSID 2 2655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_MAC_DENY 3 2665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_MAC_NA 4 2675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_REG_PASSV 5 2685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_SPCT_MGMT 6 2695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_RADAR 7 2705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_RSN_MISMATCH 8 2715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_NO_COMMON_RATES 9 2725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_BASIC_RATES 10 2735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_CIPHER_NA 12 2745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_KNOWN_STA 13 2755b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_WDS_PEER 15 2765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_QBSS_LOAD 16 2775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_PRUNE_HOME_AP 17 2785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_OTHER 0 2805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_DECRYPT_KEY_DATA 1 2815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_BAD_UCAST_WEP128 2 2825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_BAD_UCAST_WEP40 3 2835b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_UNSUP_KEY_LEN 4 2845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_PW_KEY_CIPHER 5 2855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_MSG3_TOO_MANY_IE 6 2865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_MSG3_IE_MISMATCH 7 2875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_NO_INSTALL_FLAG 8 2885b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_MSG3_NO_GTK 9 2895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_GRP_KEY_CIPHER 10 2905b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_GRP_MSG1_NO_GTK 11 2915b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_GTK_DECRYPT_FAIL 12 2925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_SEND_FAIL 13 2935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_SUP_DEAUTH 14 2945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2955b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_ADD 1 2965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_DEL 2 2975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_CHANGE 3 2985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 2995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_ROLE_STA 0 3005b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_ROLE_AP 1 3015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_IF_ROLE_WDS 2 3025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LINK_BCN_LOSS 1 3045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LINK_DISASSOC 2 3055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LINK_ASSOC_REC 3 3065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_E_LINK_BSSCFG_DIS 4 3075b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3085b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Pattern matching filter. Specifies an offset within received packets to 3095b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * start matching, the pattern to match, the size of the pattern, and a bitmask 3105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * that indicates which bits within the pattern should be matched. 3115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 312f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Sprielstruct brcmf_pkt_filter_pattern_le { 3135b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* 3145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Offset within received packet to start pattern matching. 3155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Offset '0' is the first byte of the ethernet header. 3165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 317f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 offset; 3185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Size of the pattern. Bitmask must be the same size.*/ 319f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 size_bytes; 3205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* 3215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Variable length mask and pattern data. mask starts at offset 0. 3225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Pattern immediately follows mask. 3235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 3245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 mask_and_pattern[1]; 3255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* IOVAR "pkt_filter_add" parameter. Used to install packet filters. */ 328f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Sprielstruct brcmf_pkt_filter_le { 329f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 id; /* Unique filter id, specified by app. */ 330f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 type; /* Filter type (WL_PKT_FILTER_TYPE_xxx). */ 331f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 negate_match; /* Negate the result of filter matches */ 3325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel union { /* Filter definitions */ 333f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel struct brcmf_pkt_filter_pattern_le pattern; /* Filter pattern */ 3345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel } u; 3355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* IOVAR "pkt_filter_enable" parameter. */ 338f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Sprielstruct brcmf_pkt_filter_enable_le { 339f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 id; /* Unique filter id */ 340f7264adb9a0ec492c3f6ee2a476a9ad9027317f9Arend van Spriel __le32 enable; /* Enable/disable bool */ 3415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* BSS info structure 3445b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * Applications MUST CHECK ie_offset field and length field to access IEs and 3455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * next bss_info structure in a vector (in struct brcmf_scan_results) 3465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 347d34bf64fd32abfe8141c7206ca6da92832b4fe94Roland Vossenstruct brcmf_bss_info_le { 3485b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 version; /* version field */ 3495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 length; /* byte length of data in this record, 3505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * starting at version and including IEs 3515b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 3525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 BSSID[ETH_ALEN]; 3535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 beacon_period; /* units are Kusec */ 3545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 capability; /* Capability information */ 3555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 SSID_len; 3565b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 SSID[32]; 3575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct { 3585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 count; /* # rates in this set */ 3595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 rates[16]; /* rates in 500kbps units w/hi bit set if basic */ 3605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel } rateset; /* supported rates */ 3615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 chanspec; /* chanspec for bss */ 3625b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 atim_window; /* units are Kusec */ 3635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 dtim_period; /* DTIM period */ 3645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 RSSI; /* receive signal strength (in dBm) */ 3655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel s8 phy_noise; /* noise (in dBm) */ 3665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 n_cap; /* BSS is 802.11N Capable */ 3685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* 802.11N BSS Capabilities (based on HT_CAP_*): */ 3695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 nbss_cap; 3705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 ctl_ch; /* 802.11N BSS control channel number */ 3715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 reserved32[1]; /* Reserved for expansion of BSS properties */ 3725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 flags; /* flags */ 3735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 reserved[3]; /* Reserved for expansion of BSS properties */ 3745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 basic_mcs[MCSSET_LEN]; /* 802.11N BSS required MCS set */ 3755b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 ie_offset; /* offset at which IEs start, from beginning */ 3775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 ie_length; /* byte length of Information Elements */ 3785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 SNR; /* average SNR of during frame reception */ 3795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Add new fields here */ 3805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* variable length Information Elements */ 3815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3835b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcm_rateset_le { 3845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* # rates in this set */ 3855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 count; 3865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* rates in 500kbps units w/hi bit set if basic */ 3875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 rates[WL_NUMRATES]; 3885b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3905b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_ssid { 3915b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 SSID_len; 3925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned char SSID[32]; 3935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 3955b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_ssid_le { 3965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 SSID_len; 3975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned char SSID[32]; 3985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 3995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4005b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_scan_params_le { 4015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_ssid_le ssid_le; /* default: {0, ""} */ 4025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 bssid[ETH_ALEN]; /* default: bcast */ 4035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel s8 bss_type; /* default: any, 4045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * DOT11_BSSTYPE_ANY/INFRASTRUCTURE/INDEPENDENT 4055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 4065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 scan_type; /* flags, 0 use default */ 4075b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 nprobes; /* -1 use default, number of probes per channel */ 4085b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 active_time; /* -1 use default, dwell time per channel for 4095b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * active scanning 4105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 4115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 passive_time; /* -1 use default, dwell time per channel 4125b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * for passive scanning 4135b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 4145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 home_time; /* -1 use default, dwell time for the 4155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * home channel between channel scans 4165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 4175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 channel_num; /* count of channels and ssids that follow 4185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * 4195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * low half is count of channels in 4205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * channel_list, 0 means default (use all 4215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * available channels) 4225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * 4235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * high half is entries in struct brcmf_ssid 4245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * array that follows channel_list, aligned for 4255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * s32 (4 bytes) meaning an odd channel count 4265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * implies a 2-byte pad between end of 4275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * channel_list and first ssid 4285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * 4295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * if ssid count is zero, single ssid in the 4305b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * fixed parameter portion is assumed, otherwise 4315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * ssid in the fixed portion is ignored 4325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 4335b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 channel_list[1]; /* list of chanspecs */ 4345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* incremental scan struct */ 4375b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_iscan_params_le { 4385b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 version; 4395b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 action; 4405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 scan_duration; 4415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_scan_params_le params_le; 4425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4445b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_scan_results { 4455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 buflen; 4465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 version; 4475b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 count; 4480527781eb00550226d638b9be23d246c7ba796f6Roland Vossen struct brcmf_bss_info_le bss_info_le[]; 4495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4515b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_scan_results_le { 4525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 buflen; 4535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 version; 4545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 count; 4555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4565b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* used for association with a specific BSSID and chanspec list */ 4585b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_assoc_params_le { 4595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* 00:00:00:00:00:00: broadcast scan */ 4605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 bssid[ETH_ALEN]; 4615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* 0: all available channels, otherwise count of chanspecs in 4625b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * chanspec_list */ 4635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 chanspec_num; 4645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* list of chanspecs */ 4655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 chanspec_list[1]; 4665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* used for join with or without a specific bssid and channel list */ 4695b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_join_params { 4705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_ssid_le ssid_le; 4715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_assoc_params_le params_le; 4725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* incremental scan results struct */ 4755b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_iscan_results { 4765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel union { 4775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 status; 4785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 status_le; 4795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel }; 4805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel union { 4815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_scan_results results; 4825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_scan_results_le results_le; 4835b435de0d786869c95d1962121af0d7df2542009Arend van Spriel }; 4845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 4855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* size of brcmf_iscan_results not including variable length array */ 4875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_ISCAN_RESULTS_FIXED_SIZE \ 4880527781eb00550226d638b9be23d246c7ba796f6Roland Vossen (sizeof(struct brcmf_scan_results) + \ 4895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel offsetof(struct brcmf_iscan_results, results)) 4905b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 4915b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_wsec_key { 4925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 index; /* key index */ 4935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 len; /* key length */ 4945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 data[WLAN_MAX_KEY_LEN]; /* key data */ 4955b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 pad_1[18]; 4965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 algo; /* CRYPTO_ALGO_AES_CCM, CRYPTO_ALGO_WEP128, etc */ 4975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 flags; /* misc flags */ 4985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 pad_2[3]; 4995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 iv_initialized; /* has IV been initialized already? */ 5005b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 pad_3; 5015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Rx IV */ 5025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct { 5035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 hi; /* upper 32 bits of IV */ 5045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u16 lo; /* lower 16 bits of IV */ 5055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel } rxiv; 5065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u32 pad_4[2]; 5075b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 ea[ETH_ALEN]; /* per station */ 5085b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 5095b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5105b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* 5115b435de0d786869c95d1962121af0d7df2542009Arend van Spriel * dongle requires same struct as above but with fields in little endian order 5125b435de0d786869c95d1962121af0d7df2542009Arend van Spriel */ 5135b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_wsec_key_le { 5145b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 index; /* key index */ 5155b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 len; /* key length */ 5165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 data[WLAN_MAX_KEY_LEN]; /* key data */ 5175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 pad_1[18]; 5185b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 algo; /* CRYPTO_ALGO_AES_CCM, CRYPTO_ALGO_WEP128, etc */ 5195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 flags; /* misc flags */ 5205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 pad_2[3]; 5215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 iv_initialized; /* has IV been initialized already? */ 5225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 pad_3; 5235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Rx IV */ 5245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct { 5255b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 hi; /* upper 32 bits of IV */ 5265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le16 lo; /* lower 16 bits of IV */ 5275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel } rxiv; 5285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 pad_4[2]; 5295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 ea[ETH_ALEN]; /* per station */ 5305b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 5315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5325b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Used to get specific STA parameters */ 5335b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_scb_val_le { 5345b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 val; 5355b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 ea[ETH_ALEN]; 5365b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 5375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5385b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* channel encoding */ 5395b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_channel_info_le { 5405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 hw_channel; 5415b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 target_channel; 5425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel __le32 scan_channel; 5435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 5445b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Bus independent dongle command */ 5465b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_dcmd { 5475b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint cmd; /* common dongle cmd definition */ 5485b435de0d786869c95d1962121af0d7df2542009Arend van Spriel void *buf; /* pointer to user buffer */ 5495b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint len; /* length of user buffer */ 5505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 set; /* get or set request (optional) */ 5515b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint used; /* bytes read or written (optional) */ 5525b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint needed; /* bytes needed (optional) */ 5535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 5545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Forward decls for struct brcmf_pub (see below) */ 5565b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_proto; /* device communication protocol info */ 5575b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_cfg80211_dev; /* cfg80211 device info */ 5585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5595b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Common structure for module and instance linkage */ 5605b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_pub { 5615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Linkage ponters */ 5628d169aa00d0356f915e84dbdf6c9be381cce34a4Franky Lin struct brcmf_bus *bus_if; 5635b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_proto *prot; 5645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct brcmf_cfg80211_dev *config; 565532cdd3b99b7a89fdc128c2b58abea780f3bbb4dFranky Lin struct device *dev; /* fullmac dongle device pointer */ 5665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Internal brcmf items */ 5685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint hdrlen; /* Total BRCMF header length (proto + bus) */ 5695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint rxsz; /* Rx buffer size bus module should use */ 5705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 wme_dp; /* wme discard priority */ 5715b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5725b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Dongle media info */ 5735b435de0d786869c95d1962121af0d7df2542009Arend van Spriel bool iswl; /* Dongle-resident driver is wl */ 5745b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned long drv_version; /* Version of dongle-resident driver */ 5755b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 mac[ETH_ALEN]; /* MAC address obtained from dongle */ 5765b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5775b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Additional stats for the bus level */ 5785b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5795b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Multicast data packets sent to dongle */ 5805b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned long tx_multicast; 5815b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Packets flushed due to unscheduled sendup thread */ 5825b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned long rx_flushed; 5835b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Number of times dpc scheduled by watchdog timer */ 5845b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned long wd_dpc_sched; 5855b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5865b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Number of flow control pkts recvd */ 5875b435de0d786869c95d1962121af0d7df2542009Arend van Spriel unsigned long fc_packets; 5885b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5895b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Last error return */ 5905b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int bcmerror; 5915b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5925b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Last error from dongle */ 5935b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int dongle_error; 5945b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 5955b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Suspend disable flag flag */ 5965b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int suspend_disable_flag; /* "1" to disable all extra powersaving 5975b435de0d786869c95d1962121af0d7df2542009Arend van Spriel during suspend */ 5985b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int in_suspend; /* flag set to 1 when early suspend called */ 5995b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int dtim_skip; /* dtim skip , default 0 means wake each dtim */ 6005b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6015b435de0d786869c95d1962121af0d7df2542009Arend van Spriel /* Pkt filter defination */ 6025b435de0d786869c95d1962121af0d7df2542009Arend van Spriel char *pktfilter[100]; 6035b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int pktfilter_count; 6045b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6055b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 country_code[BRCM_CNTRY_BUF_SZ]; 6065b435de0d786869c95d1962121af0d7df2542009Arend van Spriel char eventmask[BRCMF_EVENTING_MASK_LEN]; 607d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin 608d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin struct brcmf_if *iflist[BRCMF_MAX_IFS]; 609d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin 610d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin struct mutex proto_block; 611d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin 612d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin struct work_struct setmacaddr_work; 613d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin struct work_struct multicast_work; 614d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin u8 macvalue[ETH_ALEN]; 615d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Lin atomic_t pend_8021x_cnt; 6165b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 6175b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6185b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct brcmf_if_event { 6195b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 ifidx; 6205b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 action; 6215b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 flags; 6225b435de0d786869c95d1962121af0d7df2542009Arend van Spriel u8 bssidx; 6235b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 6245b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6255b435de0d786869c95d1962121af0d7df2542009Arend van Sprielstruct bcmevent_name { 6265b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint event; 6275b435de0d786869c95d1962121af0d7df2542009Arend van Spriel const char *name; 6285b435de0d786869c95d1962121af0d7df2542009Arend van Spriel}; 6295b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6305b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern const struct bcmevent_name bcmevent_names[]; 6315b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 63253a2277d2ad411b440d2f102ced7bebef42c2fd7Alwin Beukersextern uint brcmf_c_mkiovar(char *name, char *data, uint datalen, 63353a2277d2ad411b440d2f102ced7bebef42c2fd7Alwin Beukers char *buf, uint len); 63453a2277d2ad411b440d2f102ced7bebef42c2fd7Alwin Beukers 6355b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern int brcmf_net_attach(struct brcmf_pub *drvr, int idx); 6365b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern int brcmf_netdev_wait_pend8021x(struct net_device *ndev); 6375b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6385b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern s32 brcmf_exec_dcmd(struct net_device *dev, u32 cmd, void *arg, u32 len); 6395b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6405b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Return pointer to interface name */ 6415b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern char *brcmf_ifname(struct brcmf_pub *drvr, int idx); 6425b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6435b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Query dongle */ 6445b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern int brcmf_proto_cdc_query_dcmd(struct brcmf_pub *drvr, int ifidx, 6455b435de0d786869c95d1962121af0d7df2542009Arend van Spriel uint cmd, void *buf, uint len); 6465b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6478ae746543c8370fd04c28aaf8f185c1687b0e694Joe Perches#ifdef DEBUG 648af5349581c01780824d3229fc958354c1f7e9c91Arend van Sprielextern int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size); 6498ae746543c8370fd04c28aaf8f185c1687b0e694Joe Perches#endif /* DEBUG */ 6505b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 651d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Linextern int brcmf_ifname2idx(struct brcmf_pub *drvr, char *name); 652d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Linextern int brcmf_c_host_event(struct brcmf_pub *drvr, int *idx, 6535b435de0d786869c95d1962121af0d7df2542009Arend van Spriel void *pktdata, struct brcmf_event_msg *, 6545b435de0d786869c95d1962121af0d7df2542009Arend van Spriel void **data_ptr); 6555b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 656d08b6a3759818eed78057a8bafebc630dbe9a9baFranky Linextern void brcmf_del_if(struct brcmf_pub *drvr, int ifidx); 6575b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6585b435de0d786869c95d1962121af0d7df2542009Arend van Spriel/* Send packet to dongle via data channel */ 6595b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern int brcmf_sendpkt(struct brcmf_pub *drvr, int ifidx,\ 6605b435de0d786869c95d1962121af0d7df2542009Arend van Spriel struct sk_buff *pkt); 6615b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6625b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern void brcmf_c_pktfilter_offload_set(struct brcmf_pub *drvr, char *arg); 6635b435de0d786869c95d1962121af0d7df2542009Arend van Sprielextern void brcmf_c_pktfilter_offload_enable(struct brcmf_pub *drvr, char *arg, 6645b435de0d786869c95d1962121af0d7df2542009Arend van Spriel int enable, int master_mode); 6655b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6665b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_DCMD_SMLEN 256 /* "small" cmd buffer required */ 6675b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_DCMD_MEDLEN 1536 /* "med" cmd buffer required */ 6685b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#define BRCMF_DCMD_MAXLEN 8192 /* max length cmd buffer required */ 6695b435de0d786869c95d1962121af0d7df2542009Arend van Spriel 6705b435de0d786869c95d1962121af0d7df2542009Arend van Spriel#endif /* _BRCMF_H_ */ 671