aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/wmi.h
diff options
context:
space:
mode:
authorJouni Malinen <jouni@qca.qualcomm.com>2011-08-30 14:57:54 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2011-08-31 03:13:00 -0400
commit6465ddcf6c1e06d3fde870624be4418e747f0e8b (patch)
treec1a34a5ef64eb5cf4347343d4b1e190bde2dca46 /drivers/net/wireless/ath/ath6kl/wmi.h
parent238751365a1c42b1d66beb03dd81ca5d0fd12833 (diff)
ath6kl: Add new WMI commands and events for P2P
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.h')
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.h184
1 files changed, 176 insertions, 8 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.h b/drivers/net/wireless/ath/ath6kl/wmi.h
index eb6bfcd879e0..5e2f6ce41ba1 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.h
+++ b/drivers/net/wireless/ath/ath6kl/wmi.h
@@ -490,17 +490,52 @@ enum wmi_cmd_id {
490 WMI_SET_PASSPHRASE_CMDID, 490 WMI_SET_PASSPHRASE_CMDID,
491 WMI_SEND_ASSOC_RES_CMDID, 491 WMI_SEND_ASSOC_RES_CMDID,
492 WMI_SET_ASSOC_REQ_RELAY_CMDID, 492 WMI_SET_ASSOC_REQ_RELAY_CMDID,
493 WMI_GET_RFKILL_MODE_CMDID,
494 493
495 /* ACS command, consists of sub-commands */ 494 /* ACS command, consists of sub-commands */
496 WMI_ACS_CTRL_CMDID, 495 WMI_ACS_CTRL_CMDID,
496 WMI_SET_EXCESS_TX_RETRY_THRES_CMDID,
497 WMI_SET_TBD_TIME_CMDID, /*added for wmiconfig command for TBD */
498
499 /* Pktlog cmds */
500 WMI_PKTLOG_ENABLE_CMDID,
501 WMI_PKTLOG_DISABLE_CMDID,
502
503 /* More P2P Cmds */
504 WMI_P2P_GO_NEG_REQ_RSP_CMDID,
505 WMI_P2P_GRP_INIT_CMDID,
506 WMI_P2P_GRP_FORMATION_DONE_CMDID,
507 WMI_P2P_INVITE_CMDID,
508 WMI_P2P_INVITE_REQ_RSP_CMDID,
509 WMI_P2P_PROV_DISC_REQ_CMDID,
510 WMI_P2P_SET_CMDID,
497 511
512 WMI_GET_RFKILL_MODE_CMDID,
513 WMI_SET_RFKILL_MODE_CMDID,
514 WMI_AP_SET_APSD_CMDID,
515 WMI_AP_APSD_BUFFERED_TRAFFIC_CMDID,
516
517 WMI_P2P_SDPD_TX_CMDID, /* F05C */
518 WMI_P2P_STOP_SDPD_CMDID,
519 WMI_P2P_CANCEL_CMDID,
498 /* Ultra low power store / recall commands */ 520 /* Ultra low power store / recall commands */
499 WMI_STORERECALL_CONFIGURE_CMDID, 521 WMI_STORERECALL_CONFIGURE_CMDID,
500 WMI_STORERECALL_RECALL_CMDID, 522 WMI_STORERECALL_RECALL_CMDID,
501 WMI_STORERECALL_HOST_READY_CMDID, 523 WMI_STORERECALL_HOST_READY_CMDID,
502 WMI_FORCE_TARGET_ASSERT_CMDID, 524 WMI_FORCE_TARGET_ASSERT_CMDID,
503 WMI_SET_EXCESS_TX_RETRY_THRES_CMDID, 525
526 WMI_SET_PROBED_SSID_EX_CMDID,
527 WMI_SET_NETWORK_LIST_OFFLOAD_CMDID,
528 WMI_SET_ARP_NS_OFFLOAD_CMDID,
529 WMI_ADD_WOW_EXT_PATTERN_CMDID,
530 WMI_GTK_OFFLOAD_OP_CMDID,
531 WMI_REMAIN_ON_CHNL_CMDID,
532 WMI_CANCEL_REMAIN_ON_CHNL_CMDID,
533 WMI_SEND_ACTION_CMDID,
534 WMI_PROBE_REQ_REPORT_CMDID,
535 WMI_DISABLE_11B_RATES_CMDID,
536 WMI_SEND_PROBE_RESPONSE_CMDID,
537 WMI_GET_P2P_INFO_CMDID,
538 WMI_AP_JOIN_BSS_CMDID,
504}; 539};
505 540
506enum wmi_mgmt_frame_type { 541enum wmi_mgmt_frame_type {
@@ -1188,15 +1223,26 @@ enum wmi_event_id {
1188 WMI_WAC_START_WPS_EVENTID, 1223 WMI_WAC_START_WPS_EVENTID,
1189 WMI_WAC_CTRL_REQ_REPLY_EVENTID, 1224 WMI_WAC_CTRL_REQ_REPLY_EVENTID,
1190 1225
1226 WMI_REPORT_WMM_PARAMS_EVENTID,
1227 WMI_WAC_REJECT_WPS_EVENTID,
1228
1229 /* More P2P Events */
1230 WMI_P2P_GO_NEG_REQ_EVENTID,
1231 WMI_P2P_INVITE_REQ_EVENTID,
1232 WMI_P2P_INVITE_RCVD_RESULT_EVENTID,
1233 WMI_P2P_INVITE_SENT_RESULT_EVENTID,
1234 WMI_P2P_PROV_DISC_RESP_EVENTID,
1235 WMI_P2P_PROV_DISC_REQ_EVENTID,
1236
1191 /* RFKILL Events */ 1237 /* RFKILL Events */
1192 WMI_RFKILL_STATE_CHANGE_EVENTID, 1238 WMI_RFKILL_STATE_CHANGE_EVENTID,
1193 WMI_RFKILL_GET_MODE_CMD_EVENTID, 1239 WMI_RFKILL_GET_MODE_CMD_EVENTID,
1194 WMI_THIN_RESERVED_START_EVENTID = 0x8000,
1195 1240
1196 /* 1241 WMI_P2P_START_SDPD_EVENTID,
1197 * Events in this range are reserved for thinmode 1242 WMI_P2P_SDPD_RX_EVENTID,
1198 * See wmi_thin.h for actual definitions 1243
1199 */ 1244 WMI_THIN_RESERVED_START_EVENTID = 0x8000,
1245 /* Events in this range are reserved for thinmode */
1200 WMI_THIN_RESERVED_END_EVENTID = 0x8fff, 1246 WMI_THIN_RESERVED_END_EVENTID = 0x8fff,
1201 1247
1202 WMI_SET_CHANNEL_EVENTID, 1248 WMI_SET_CHANNEL_EVENTID,
@@ -1204,7 +1250,17 @@ enum wmi_event_id {
1204 1250
1205 /* Generic ACS event */ 1251 /* Generic ACS event */
1206 WMI_ACS_EVENTID, 1252 WMI_ACS_EVENTID,
1207 WMI_REPORT_WMM_PARAMS_EVENTID 1253 WMI_STORERECALL_STORE_EVENTID,
1254 WMI_WOW_EXT_WAKE_EVENTID,
1255 WMI_GTK_OFFLOAD_STATUS_EVENTID,
1256 WMI_NETWORK_LIST_OFFLOAD_EVENTID,
1257 WMI_REMAIN_ON_CHNL_EVENTID,
1258 WMI_CANCEL_REMAIN_ON_CHNL_EVENTID,
1259 WMI_TX_STATUS_EVENTID,
1260 WMI_RX_PROBE_REQ_EVENTID,
1261 WMI_P2P_CAPABILITIES_EVENTID,
1262 WMI_RX_ACTION_EVENTID,
1263 WMI_P2P_INFO_EVENTID,
1208}; 1264};
1209 1265
1210struct wmi_ready_event_2 { 1266struct wmi_ready_event_2 {
@@ -1872,6 +1928,100 @@ struct wmi_ap_mode_stat {
1872 1928
1873/* End of AP mode definitions */ 1929/* End of AP mode definitions */
1874 1930
1931struct wmi_remain_on_chnl_cmd {
1932 __le32 freq;
1933 __le32 duration;
1934} __packed;
1935
1936struct wmi_send_action_cmd {
1937 __le32 id;
1938 __le32 freq;
1939 __le32 wait;
1940 __le16 len;
1941 u8 data[0];
1942} __packed;
1943
1944struct wmi_tx_status_event {
1945 __le32 id;
1946 u8 ack_status;
1947} __packed;
1948
1949struct wmi_probe_req_report_cmd {
1950 u8 enable;
1951} __packed;
1952
1953struct wmi_disable_11b_rates_cmd {
1954 u8 disable;
1955} __packed;
1956
1957struct wmi_set_appie_extended_cmd {
1958 u8 role_id;
1959 u8 mgmt_frm_type;
1960 u8 ie_len;
1961 u8 ie_info[0];
1962} __packed;
1963
1964struct wmi_remain_on_chnl_event {
1965 __le32 freq;
1966 __le32 duration;
1967} __packed;
1968
1969struct wmi_cancel_remain_on_chnl_event {
1970 __le32 freq;
1971 __le32 duration;
1972 u8 status;
1973} __packed;
1974
1975struct wmi_rx_action_event {
1976 __le32 freq;
1977 __le16 len;
1978 u8 data[0];
1979} __packed;
1980
1981struct wmi_p2p_capabilities_event {
1982 __le16 len;
1983 u8 data[0];
1984} __packed;
1985
1986struct wmi_p2p_rx_probe_req_event {
1987 __le32 freq;
1988 __le16 len;
1989 u8 data[0];
1990} __packed;
1991
1992#define P2P_FLAG_CAPABILITIES_REQ (0x00000001)
1993#define P2P_FLAG_MACADDR_REQ (0x00000002)
1994#define P2P_FLAG_HMODEL_REQ (0x00000002)
1995
1996struct wmi_get_p2p_info {
1997 __le32 info_req_flags;
1998} __packed;
1999
2000struct wmi_p2p_info_event {
2001 __le32 info_req_flags;
2002 __le16 len;
2003 u8 data[0];
2004} __packed;
2005
2006struct wmi_p2p_capabilities {
2007 u8 go_power_save;
2008} __packed;
2009
2010struct wmi_p2p_macaddr {
2011 u8 mac_addr[ETH_ALEN];
2012} __packed;
2013
2014struct wmi_p2p_hmodel {
2015 u8 p2p_model;
2016} __packed;
2017
2018struct wmi_p2p_probe_response_cmd {
2019 __le32 freq;
2020 u8 destination_addr[ETH_ALEN];
2021 __le16 len;
2022 u8 data[0];
2023} __packed;
2024
1875/* Extended WMI (WMIX) 2025/* Extended WMI (WMIX)
1876 * 2026 *
1877 * Extended WMIX commands are encapsulated in a WMI message with 2027 * Extended WMIX commands are encapsulated in a WMI message with
@@ -2050,6 +2200,24 @@ int ath6kl_wmi_set_rx_frame_format_cmd(struct wmi *wmi, u8 rx_meta_version,
2050int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 mgmt_frm_type, const u8 *ie, 2200int ath6kl_wmi_set_appie_cmd(struct wmi *wmi, u8 mgmt_frm_type, const u8 *ie,
2051 u8 ie_len); 2201 u8 ie_len);
2052 2202
2203/* P2P */
2204int ath6kl_wmi_disable_11b_rates_cmd(struct wmi *wmi, bool disable);
2205
2206int ath6kl_wmi_remain_on_chnl_cmd(struct wmi *wmi, u32 freq, u32 dur);
2207
2208int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u32 id, u32 freq, u32 wait,
2209 const u8 *data, u16 data_len);
2210
2211int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u32 freq,
2212 const u8 *dst,
2213 const u8 *data, u16 data_len);
2214
2215int ath6kl_wmi_probe_report_req_cmd(struct wmi *wmi, bool enable);
2216
2217int ath6kl_wmi_info_req_cmd(struct wmi *wmi, u32 info_req_flags);
2218
2219int ath6kl_wmi_cancel_remain_on_chnl_cmd(struct wmi *wmi);
2220
2053void *ath6kl_wmi_init(struct ath6kl *devt); 2221void *ath6kl_wmi_init(struct ath6kl *devt);
2054void ath6kl_wmi_shutdown(struct wmi *wmi); 2222void ath6kl_wmi_shutdown(struct wmi *wmi);
2055 2223