aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/wmi.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.h')
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.h350
1 files changed, 307 insertions, 43 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h
index fe3ddce64087..f8e644d54aa7 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.h
+++ b/drivers/net/wireless/ath/ath6kl/wmi.h
@@ -129,6 +129,9 @@ struct wmi {
129 u8 ht_allowed[A_NUM_BANDS]; 129 u8 ht_allowed[A_NUM_BANDS];
130 u8 traffic_class; 130 u8 traffic_class;
131 bool is_probe_ssid; 131 bool is_probe_ssid;
132
133 u8 *last_mgmt_tx_frame;
134 size_t last_mgmt_tx_frame_len;
132}; 135};
133 136
134struct host_app_area { 137struct host_app_area {
@@ -490,17 +493,61 @@ enum wmi_cmd_id {
490 WMI_SET_PASSPHRASE_CMDID, 493 WMI_SET_PASSPHRASE_CMDID,
491 WMI_SEND_ASSOC_RES_CMDID, 494 WMI_SEND_ASSOC_RES_CMDID,
492 WMI_SET_ASSOC_REQ_RELAY_CMDID, 495 WMI_SET_ASSOC_REQ_RELAY_CMDID,
493 WMI_GET_RFKILL_MODE_CMDID,
494 496
495 /* ACS command, consists of sub-commands */ 497 /* ACS command, consists of sub-commands */
496 WMI_ACS_CTRL_CMDID, 498 WMI_ACS_CTRL_CMDID,
499 WMI_SET_EXCESS_TX_RETRY_THRES_CMDID,
500 WMI_SET_TBD_TIME_CMDID, /*added for wmiconfig command for TBD */
501
502 /* Pktlog cmds */
503 WMI_PKTLOG_ENABLE_CMDID,
504 WMI_PKTLOG_DISABLE_CMDID,
505
506 /* More P2P Cmds */
507 WMI_P2P_GO_NEG_REQ_RSP_CMDID,
508 WMI_P2P_GRP_INIT_CMDID,
509 WMI_P2P_GRP_FORMATION_DONE_CMDID,
510 WMI_P2P_INVITE_CMDID,
511 WMI_P2P_INVITE_REQ_RSP_CMDID,
512 WMI_P2P_PROV_DISC_REQ_CMDID,
513 WMI_P2P_SET_CMDID,
514
515 WMI_GET_RFKILL_MODE_CMDID,
516 WMI_SET_RFKILL_MODE_CMDID,
517 WMI_AP_SET_APSD_CMDID,
518 WMI_AP_APSD_BUFFERED_TRAFFIC_CMDID,
497 519
520 WMI_P2P_SDPD_TX_CMDID, /* F05C */
521 WMI_P2P_STOP_SDPD_CMDID,
522 WMI_P2P_CANCEL_CMDID,
498 /* Ultra low power store / recall commands */ 523 /* Ultra low power store / recall commands */
499 WMI_STORERECALL_CONFIGURE_CMDID, 524 WMI_STORERECALL_CONFIGURE_CMDID,
500 WMI_STORERECALL_RECALL_CMDID, 525 WMI_STORERECALL_RECALL_CMDID,
501 WMI_STORERECALL_HOST_READY_CMDID, 526 WMI_STORERECALL_HOST_READY_CMDID,
502 WMI_FORCE_TARGET_ASSERT_CMDID, 527 WMI_FORCE_TARGET_ASSERT_CMDID,
503 WMI_SET_EXCESS_TX_RETRY_THRES_CMDID, 528
529 WMI_SET_PROBED_SSID_EX_CMDID,
530 WMI_SET_NETWORK_LIST_OFFLOAD_CMDID,
531 WMI_SET_ARP_NS_OFFLOAD_CMDID,
532 WMI_ADD_WOW_EXT_PATTERN_CMDID,
533 WMI_GTK_OFFLOAD_OP_CMDID,
534 WMI_REMAIN_ON_CHNL_CMDID,
535 WMI_CANCEL_REMAIN_ON_CHNL_CMDID,
536 WMI_SEND_ACTION_CMDID,
537 WMI_PROBE_REQ_REPORT_CMDID,
538 WMI_DISABLE_11B_RATES_CMDID,
539 WMI_SEND_PROBE_RESPONSE_CMDID,
540 WMI_GET_P2P_INFO_CMDID,
541 WMI_AP_JOIN_BSS_CMDID,
542};
543
544enum wmi_mgmt_frame_type {
545 WMI_FRAME_BEACON = 0,
546 WMI_FRAME_PROBE_REQ,
547 WMI_FRAME_PROBE_RESP,
548 WMI_FRAME_ASSOC_REQ,
549 WMI_FRAME_ASSOC_RESP,
550 WMI_NUM_MGMT_FRAME
504}; 551};
505 552
506/* WMI_CONNECT_CMDID */ 553/* WMI_CONNECT_CMDID */
@@ -519,11 +566,6 @@ enum dot11_auth_mode {
519 LEAP_AUTH = 0x04, 566 LEAP_AUTH = 0x04,
520}; 567};
521 568
522enum {
523 AUTH_IDLE,
524 AUTH_OPEN_IN_PROGRESS,
525};
526
527enum auth_mode { 569enum auth_mode {
528 NONE_AUTH = 0x01, 570 NONE_AUTH = 0x01,
529 WPA_AUTH = 0x02, 571 WPA_AUTH = 0x02,
@@ -1179,15 +1221,26 @@ enum wmi_event_id {
1179 WMI_WAC_START_WPS_EVENTID, 1221 WMI_WAC_START_WPS_EVENTID,
1180 WMI_WAC_CTRL_REQ_REPLY_EVENTID, 1222 WMI_WAC_CTRL_REQ_REPLY_EVENTID,
1181 1223
1224 WMI_REPORT_WMM_PARAMS_EVENTID,
1225 WMI_WAC_REJECT_WPS_EVENTID,
1226
1227 /* More P2P Events */
1228 WMI_P2P_GO_NEG_REQ_EVENTID,
1229 WMI_P2P_INVITE_REQ_EVENTID,
1230 WMI_P2P_INVITE_RCVD_RESULT_EVENTID,
1231 WMI_P2P_INVITE_SENT_RESULT_EVENTID,
1232 WMI_P2P_PROV_DISC_RESP_EVENTID,
1233 WMI_P2P_PROV_DISC_REQ_EVENTID,
1234
1182 /* RFKILL Events */ 1235 /* RFKILL Events */
1183 WMI_RFKILL_STATE_CHANGE_EVENTID, 1236 WMI_RFKILL_STATE_CHANGE_EVENTID,
1184 WMI_RFKILL_GET_MODE_CMD_EVENTID, 1237 WMI_RFKILL_GET_MODE_CMD_EVENTID,
1185 WMI_THIN_RESERVED_START_EVENTID = 0x8000,
1186 1238
1187 /* 1239 WMI_P2P_START_SDPD_EVENTID,
1188 * Events in this range are reserved for thinmode 1240 WMI_P2P_SDPD_RX_EVENTID,
1189 * See wmi_thin.h for actual definitions 1241
1190 */ 1242 WMI_THIN_RESERVED_START_EVENTID = 0x8000,
1243 /* Events in this range are reserved for thinmode */
1191 WMI_THIN_RESERVED_END_EVENTID = 0x8fff, 1244 WMI_THIN_RESERVED_END_EVENTID = 0x8fff,
1192 1245
1193 WMI_SET_CHANNEL_EVENTID, 1246 WMI_SET_CHANNEL_EVENTID,
@@ -1195,7 +1248,17 @@ enum wmi_event_id {
1195 1248
1196 /* Generic ACS event */ 1249 /* Generic ACS event */
1197 WMI_ACS_EVENTID, 1250 WMI_ACS_EVENTID,
1198 WMI_REPORT_WMM_PARAMS_EVENTID 1251 WMI_STORERECALL_STORE_EVENTID,
1252 WMI_WOW_EXT_WAKE_EVENTID,
1253 WMI_GTK_OFFLOAD_STATUS_EVENTID,
1254 WMI_NETWORK_LIST_OFFLOAD_EVENTID,
1255 WMI_REMAIN_ON_CHNL_EVENTID,
1256 WMI_CANCEL_REMAIN_ON_CHNL_EVENTID,
1257 WMI_TX_STATUS_EVENTID,
1258 WMI_RX_PROBE_REQ_EVENTID,
1259 WMI_P2P_CAPABILITIES_EVENTID,
1260 WMI_RX_ACTION_EVENTID,
1261 WMI_P2P_INFO_EVENTID,
1199}; 1262};
1200 1263
1201struct wmi_ready_event_2 { 1264struct wmi_ready_event_2 {
@@ -1207,11 +1270,30 @@ struct wmi_ready_event_2 {
1207 1270
1208/* Connect Event */ 1271/* Connect Event */
1209struct wmi_connect_event { 1272struct wmi_connect_event {
1210 __le16 ch; 1273 union {
1211 u8 bssid[ETH_ALEN]; 1274 struct {
1212 __le16 listen_intvl; 1275 __le16 ch;
1213 __le16 beacon_intvl; 1276 u8 bssid[ETH_ALEN];
1214 __le32 nw_type; 1277 __le16 listen_intvl;
1278 __le16 beacon_intvl;
1279 __le32 nw_type;
1280 } sta;
1281 struct {
1282 u8 phymode;
1283 u8 aid;
1284 u8 mac_addr[ETH_ALEN];
1285 u8 auth;
1286 u8 keymgmt;
1287 __le16 cipher;
1288 u8 apsd_info;
1289 u8 unused[3];
1290 } ap_sta;
1291 struct {
1292 __le16 ch;
1293 u8 bssid[ETH_ALEN];
1294 u8 unused[8];
1295 } ap_bss;
1296 } u;
1215 u8 beacon_ie_len; 1297 u8 beacon_ie_len;
1216 u8 assoc_req_len; 1298 u8 assoc_req_len;
1217 u8 assoc_resp_len; 1299 u8 assoc_resp_len;
@@ -1238,6 +1320,12 @@ enum wmi_disconnect_reason {
1238 IBSS_MERGE = 0xe, 1320 IBSS_MERGE = 0xe,
1239}; 1321};
1240 1322
1323#define ATH6KL_COUNTRY_RD_SHIFT 16
1324
1325struct ath6kl_wmi_regdomain {
1326 __le32 reg_code;
1327};
1328
1241struct wmi_disconnect_event { 1329struct wmi_disconnect_event {
1242 /* reason code, see 802.11 spec. */ 1330 /* reason code, see 802.11 spec. */
1243 __le16 proto_reason_status; 1331 __le16 proto_reason_status;
@@ -1265,33 +1353,54 @@ enum wmi_bi_ftype {
1265 PROBEREQ_FTYPE, 1353 PROBEREQ_FTYPE,
1266}; 1354};
1267 1355
1268struct wmi_bss_info_hdr { 1356#define DEF_LRSSI_SCAN_PERIOD 5
1269 __le16 ch; 1357#define DEF_LRSSI_ROAM_THRESHOLD 20
1358#define DEF_LRSSI_ROAM_FLOOR 60
1359#define DEF_SCAN_FOR_ROAM_INTVL 2
1270 1360
1271 /* see, enum wmi_bi_ftype */ 1361enum wmi_roam_ctrl {
1272 u8 frame_type; 1362 WMI_FORCE_ROAM = 1,
1363 WMI_SET_ROAM_MODE,
1364 WMI_SET_HOST_BIAS,
1365 WMI_SET_LRSSI_SCAN_PARAMS,
1366};
1273 1367
1274 u8 snr; 1368struct bss_bias {
1275 a_sle16 rssi;
1276 u8 bssid[ETH_ALEN]; 1369 u8 bssid[ETH_ALEN];
1277 __le32 ie_mask; 1370 u8 bias;
1278} __packed; 1371} __packed;
1279 1372
1280/* 1373struct bss_bias_info {
1281 * BSS INFO HDR version 2.0 1374 u8 num_bss;
1282 * With 6 bytes HTC header and 6 bytes of WMI header 1375 struct bss_bias bss_bias[1];
1283 * WMI_BSS_INFO_HDR cannot be accommodated in the removed 802.11 management 1376} __packed;
1284 * header space. 1377
1285 * - Reduce the ie_mask to 2 bytes as only two bit flags are used 1378struct low_rssi_scan_params {
1286 * - Remove rssi and compute it on the host. rssi = snr - 95 1379 __le16 lrssi_scan_period;
1287 */ 1380 a_sle16 lrssi_scan_threshold;
1381 a_sle16 lrssi_roam_threshold;
1382 u8 roam_rssi_floor;
1383 u8 reserved[1];
1384} __packed;
1385
1386struct roam_ctrl_cmd {
1387 union {
1388 u8 bssid[ETH_ALEN];
1389 u8 roam_mode;
1390 struct bss_bias_info bss;
1391 struct low_rssi_scan_params params;
1392 } __packed info;
1393 u8 roam_ctrl;
1394} __packed;
1395
1396/* BSS INFO HDR version 2.0 */
1288struct wmi_bss_info_hdr2 { 1397struct wmi_bss_info_hdr2 {
1289 __le16 ch; 1398 __le16 ch; /* frequency in MHz */
1290 1399
1291 /* see, enum wmi_bi_ftype */ 1400 /* see, enum wmi_bi_ftype */
1292 u8 frame_type; 1401 u8 frame_type;
1293 1402
1294 u8 snr; 1403 u8 snr; /* note: rssi = snr - 95 dBm */
1295 u8 bssid[ETH_ALEN]; 1404 u8 bssid[ETH_ALEN];
1296 __le16 ie_mask; 1405 __le16 ie_mask;
1297} __packed; 1406} __packed;
@@ -1330,6 +1439,16 @@ enum wmi_bss_flags {
1330 WMI_PMKID_VALID_BSS = 0x02, 1439 WMI_PMKID_VALID_BSS = 0x02,
1331}; 1440};
1332 1441
1442struct wmi_neighbor_info {
1443 u8 bssid[ETH_ALEN];
1444 u8 bss_flags; /* enum wmi_bss_flags */
1445} __packed;
1446
1447struct wmi_neighbor_report_event {
1448 u8 num_neighbors;
1449 struct wmi_neighbor_info neighbor[0];
1450} __packed;
1451
1333/* TKIP MIC Error Event */ 1452/* TKIP MIC Error Event */
1334struct wmi_tkip_micerr_event { 1453struct wmi_tkip_micerr_event {
1335 u8 key_id; 1454 u8 key_id;
@@ -1642,6 +1761,12 @@ struct wmi_get_keepalive_cmd {
1642 u8 keep_alive_intvl; 1761 u8 keep_alive_intvl;
1643} __packed; 1762} __packed;
1644 1763
1764struct wmi_set_appie_cmd {
1765 u8 mgmt_frm_type; /* enum wmi_mgmt_frame_type */
1766 u8 ie_len;
1767 u8 ie_info[0];
1768} __packed;
1769
1645/* Notify the WSC registration status to the target */ 1770/* Notify the WSC registration status to the target */
1646#define WSC_REG_ACTIVE 1 1771#define WSC_REG_ACTIVE 1
1647#define WSC_REG_INACTIVE 0 1772#define WSC_REG_INACTIVE 0
@@ -1789,8 +1914,26 @@ struct wmi_tx_complete_event {
1789 1914
1790/* Used with WMI_AP_SET_NUM_STA_CMDID */ 1915/* Used with WMI_AP_SET_NUM_STA_CMDID */
1791 1916
1917/*
1918 * Used with WMI_AP_SET_MLME_CMDID
1919 */
1920
1921/* MLME Commands */
1922#define WMI_AP_MLME_ASSOC 1 /* associate station */
1923#define WMI_AP_DISASSOC 2 /* disassociate station */
1924#define WMI_AP_DEAUTH 3 /* deauthenticate station */
1925#define WMI_AP_MLME_AUTHORIZE 4 /* authorize station */
1926#define WMI_AP_MLME_UNAUTHORIZE 5 /* unauthorize station */
1927
1928struct wmi_ap_set_mlme_cmd {
1929 u8 mac[ETH_ALEN];
1930 __le16 reason; /* 802.11 reason code */
1931 u8 cmd; /* operation to perform (WMI_AP_*) */
1932} __packed;
1933
1792struct wmi_ap_set_pvb_cmd { 1934struct wmi_ap_set_pvb_cmd {
1793 __le32 flag; 1935 __le32 flag;
1936 __le16 rsvd;
1794 __le16 aid; 1937 __le16 aid;
1795} __packed; 1938} __packed;
1796 1939
@@ -1840,6 +1983,100 @@ struct wmi_ap_mode_stat {
1840 1983
1841/* End of AP mode definitions */ 1984/* End of AP mode definitions */
1842 1985
1986struct wmi_remain_on_chnl_cmd {
1987 __le32 freq;
1988 __le32 duration;
1989} __packed;
1990
1991struct wmi_send_action_cmd {
1992 __le32 id;
1993 __le32 freq;
1994 __le32 wait;
1995 __le16 len;
1996 u8 data[0];
1997} __packed;
1998
1999struct wmi_tx_status_event {
2000 __le32 id;
2001 u8 ack_status;
2002} __packed;
2003
2004struct wmi_probe_req_report_cmd {
2005 u8 enable;
2006} __packed;
2007
2008struct wmi_disable_11b_rates_cmd {
2009 u8 disable;
2010} __packed;
2011
2012struct wmi_set_appie_extended_cmd {
2013 u8 role_id;
2014 u8 mgmt_frm_type;
2015 u8 ie_len;
2016 u8 ie_info[0];
2017} __packed;
2018
2019struct wmi_remain_on_chnl_event {
2020 __le32 freq;
2021 __le32 duration;
2022} __packed;
2023
2024struct wmi_cancel_remain_on_chnl_event {
2025 __le32 freq;
2026 __le32 duration;
2027 u8 status;
2028} __packed;
2029
2030struct wmi_rx_action_event {
2031 __le32 freq;
2032 __le16 len;
2033 u8 data[0];
2034} __packed;
2035
2036struct wmi_p2p_capabilities_event {
2037 __le16 len;
2038 u8 data[0];
2039} __packed;
2040
2041struct wmi_p2p_rx_probe_req_event {
2042 __le32 freq;
2043 __le16 len;
2044 u8 data[0];
2045} __packed;
2046
2047#define P2P_FLAG_CAPABILITIES_REQ (0x00000001)
2048#define P2P_FLAG_MACADDR_REQ (0x00000002)
2049#define P2P_FLAG_HMODEL_REQ (0x00000002)
2050
2051struct wmi_get_p2p_info {
2052 __le32 info_req_flags;
2053} __packed;
2054
2055struct wmi_p2p_info_event {
2056 __le32 info_req_flags;
2057 __le16 len;
2058 u8 data[0];
2059} __packed;
2060
2061struct wmi_p2p_capabilities {
2062 u8 go_power_save;
2063} __packed;
2064
2065struct wmi_p2p_macaddr {
2066 u8 mac_addr[ETH_ALEN];
2067} __packed;
2068
2069struct wmi_p2p_hmodel {
2070 u8 p2p_model;
2071} __packed;
2072
2073struct wmi_p2p_probe_response_cmd {
2074 __le32 freq;
2075 u8 destination_addr[ETH_ALEN];
2076 __le16 len;
2077 u8 data[0];
2078} __packed;
2079
1843/* Extended WMI (WMIX) 2080/* Extended WMI (WMIX)
1844 * 2081 *
1845 * Extended WMIX commands are encapsulated in a WMI message with 2082 * Extended WMIX commands are encapsulated in a WMI message with
@@ -1898,6 +2135,11 @@ struct wmix_hb_challenge_resp_cmd {
1898 __le32 source; 2135 __le32 source;
1899} __packed; 2136} __packed;
1900 2137
2138struct ath6kl_wmix_dbglog_cfg_module_cmd {
2139 __le32 valid;
2140 __le32 config;
2141} __packed;
2142
1901/* End of Extended WMI (WMIX) */ 2143/* End of Extended WMI (WMIX) */
1902 2144
1903enum wmi_sync_flag { 2145enum wmi_sync_flag {
@@ -1925,14 +2167,11 @@ int ath6kl_wmi_data_hdr_add(struct wmi *wmi, struct sk_buff *skb,
1925 2167
1926int ath6kl_wmi_dot11_hdr_remove(struct wmi *wmi, struct sk_buff *skb); 2168int ath6kl_wmi_dot11_hdr_remove(struct wmi *wmi, struct sk_buff *skb);
1927int ath6kl_wmi_dot3_2_dix(struct sk_buff *skb); 2169int ath6kl_wmi_dot3_2_dix(struct sk_buff *skb);
1928int ath6kl_wmi_data_hdr_remove(struct wmi *wmi, struct sk_buff *skb);
1929int ath6kl_wmi_implicit_create_pstream(struct wmi *wmi, struct sk_buff *skb, 2170int ath6kl_wmi_implicit_create_pstream(struct wmi *wmi, struct sk_buff *skb,
1930 u32 layer2_priority, bool wmm_enabled, 2171 u32 layer2_priority, bool wmm_enabled,
1931 u8 *ac); 2172 u8 *ac);
1932 2173
1933int ath6kl_wmi_control_rx(struct wmi *wmi, struct sk_buff *skb); 2174int ath6kl_wmi_control_rx(struct wmi *wmi, struct sk_buff *skb);
1934struct bss *ath6kl_wmi_find_node(struct wmi *wmi, const u8 *mac_addr);
1935void ath6kl_wmi_node_free(struct wmi *wmi, const u8 *mac_addr);
1936 2175
1937int ath6kl_wmi_cmd_send(struct wmi *wmi, struct sk_buff *skb, 2176int ath6kl_wmi_cmd_send(struct wmi *wmi, struct sk_buff *skb,
1938 enum wmi_cmd_id cmd_id, enum wmi_sync_flag sync_flag); 2177 enum wmi_cmd_id cmd_id, enum wmi_sync_flag sync_flag);
@@ -1978,6 +2217,7 @@ int ath6kl_wmi_set_lpreamble_cmd(struct wmi *wmi, u8 status,
1978 u8 preamble_policy); 2217 u8 preamble_policy);
1979 2218
1980int ath6kl_wmi_get_challenge_resp_cmd(struct wmi *wmi, u32 cookie, u32 source); 2219int ath6kl_wmi_get_challenge_resp_cmd(struct wmi *wmi, u32 cookie, u32 source);
2220int ath6kl_wmi_config_debug_module_cmd(struct wmi *wmi, u32 valid, u32 config);
1981 2221
1982int ath6kl_wmi_get_stats_cmd(struct wmi *wmi); 2222int ath6kl_wmi_get_stats_cmd(struct wmi *wmi);
1983int ath6kl_wmi_addkey_cmd(struct wmi *wmi, u8 key_index, 2223int ath6kl_wmi_addkey_cmd(struct wmi *wmi, u8 key_index,
@@ -1995,23 +2235,47 @@ int ath6kl_wmi_get_tx_pwr_cmd(struct wmi *wmi);
1995 2235
1996int ath6kl_wmi_set_wmm_txop(struct wmi *wmi, enum wmi_txop_cfg cfg); 2236int ath6kl_wmi_set_wmm_txop(struct wmi *wmi, enum wmi_txop_cfg cfg);
1997int ath6kl_wmi_set_keepalive_cmd(struct wmi *wmi, u8 keep_alive_intvl); 2237int ath6kl_wmi_set_keepalive_cmd(struct wmi *wmi, u8 keep_alive_intvl);
2238int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len);
1998 2239
1999s32 ath6kl_wmi_get_rate(s8 rate_index); 2240s32 ath6kl_wmi_get_rate(s8 rate_index);
2000 2241
2001int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, struct wmi_set_ip_cmd *ip_cmd); 2242int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, struct wmi_set_ip_cmd *ip_cmd);
2243int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi);
2002 2244
2003struct bss *ath6kl_wmi_find_ssid_node(struct wmi *wmi, u8 *ssid, 2245/* AP mode */
2004 u32 ssid_len, bool is_wpa2, 2246int ath6kl_wmi_ap_profile_commit(struct wmi *wmip, struct wmi_connect_cmd *p);
2005 bool match_ssid);
2006 2247
2007void ath6kl_wmi_node_return(struct wmi *wmi, struct bss *bss); 2248int ath6kl_wmi_ap_set_mlme(struct wmi *wmip, u8 cmd, const u8 *mac, u16 reason);
2008 2249
2009/* AP mode */
2010int ath6kl_wmi_set_pvb_cmd(struct wmi *wmi, u16 aid, bool flag); 2250int ath6kl_wmi_set_pvb_cmd(struct wmi *wmi, u16 aid, bool flag);
2011 2251
2012int ath6kl_wmi_set_rx_frame_format_cmd(struct wmi *wmi, u8 rx_meta_version, 2252int ath6kl_wmi_set_rx_frame_format_cmd(struct wmi *wmi, u8 rx_meta_version,
2013 bool rx_dot11_hdr, bool defrag_on_host); 2253 bool rx_dot11_hdr, bool defrag_on_host);
2014 2254
2255int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 mgmt_frm_type, const u8 *ie,
2256 u8 ie_len);
2257
2258/* P2P */
2259int ath6kl_wmi_disable_11b_rates_cmd(struct wmi *wmi, bool disable);
2260
2261int ath6kl_wmi_remain_on_chnl_cmd(struct wmi *wmi, u32 freq, u32 dur);
2262
2263int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u32 id, u32 freq, u32 wait,
2264 const u8 *data, u16 data_len);
2265
2266int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u32 freq,
2267 const u8 *dst,
2268 const u8 *data, u16 data_len);
2269
2270int ath6kl_wmi_probe_report_req_cmd(struct wmi *wmi, bool enable);
2271
2272int ath6kl_wmi_info_req_cmd(struct wmi *wmi, u32 info_req_flags);
2273
2274int ath6kl_wmi_cancel_remain_on_chnl_cmd(struct wmi *wmi);
2275
2276int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 mgmt_frm_type, const u8 *ie,
2277 u8 ie_len);
2278
2015void *ath6kl_wmi_init(struct ath6kl *devt); 2279void *ath6kl_wmi_init(struct ath6kl *devt);
2016void ath6kl_wmi_shutdown(struct wmi *wmi); 2280void ath6kl_wmi_shutdown(struct wmi *wmi);
2017 2281