wmi.h (66dd07b88a1c9d446f32253da606b87324fa620e) wmi.h (d154f32ebe3ffe9dea6ed0a91767883b1e7a6bc0)
1/*
2 * Copyright (c) 2010-2011 Atheros Communications Inc.
3 * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *

--- 610 unchanged lines hidden (view full) ---

619 WMI_SET_IGTK_CMDID,
620
621 WMI_RX_FILTER_COALESCE_FILTER_OP_CMDID,
622 WMI_RX_FILTER_SET_FRAME_TEST_LIST_CMDID,
623
624 WMI_SEND_MGMT_CMDID,
625 WMI_BEGIN_SCAN_CMDID,
626
1/*
2 * Copyright (c) 2010-2011 Atheros Communications Inc.
3 * Copyright (c) 2011-2012 Qualcomm Atheros, Inc.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *

--- 610 unchanged lines hidden (view full) ---

619 WMI_SET_IGTK_CMDID,
620
621 WMI_RX_FILTER_COALESCE_FILTER_OP_CMDID,
622 WMI_RX_FILTER_SET_FRAME_TEST_LIST_CMDID,
623
624 WMI_SEND_MGMT_CMDID,
625 WMI_BEGIN_SCAN_CMDID,
626
627 WMI_SET_BLACK_LIST,
628 WMI_SET_MCASTRATE,
629
630 WMI_STA_BMISS_ENHANCE_CMDID,
627};
628
629enum wmi_mgmt_frame_type {
630 WMI_FRAME_BEACON = 0,
631 WMI_FRAME_PROBE_REQ,
632 WMI_FRAME_PROBE_RESP,
633 WMI_FRAME_ASSOC_REQ,
634 WMI_FRAME_ASSOC_RESP,

--- 320 unchanged lines hidden (view full) ---

955 CURRENT_BSS_FILTER,
956
957 /* all but beacons matching BSS */
958 ALL_BUT_BSS_FILTER,
959
960 /* beacons matching probed ssid */
961 PROBED_SSID_FILTER,
962
631};
632
633enum wmi_mgmt_frame_type {
634 WMI_FRAME_BEACON = 0,
635 WMI_FRAME_PROBE_REQ,
636 WMI_FRAME_PROBE_RESP,
637 WMI_FRAME_ASSOC_REQ,
638 WMI_FRAME_ASSOC_RESP,

--- 320 unchanged lines hidden (view full) ---

959 CURRENT_BSS_FILTER,
960
961 /* all but beacons matching BSS */
962 ALL_BUT_BSS_FILTER,
963
964 /* beacons matching probed ssid */
965 PROBED_SSID_FILTER,
966
967 /* beacons matching matched ssid */
968 MATCHED_SSID_FILTER,
969
963 /* marker only */
964 LAST_BSS_FILTER,
965};
966
967struct wmi_bss_filter_cmd {
968 /* see, enum wmi_bss_filter */
969 u8 bss_filter;
970
971 /* for alignment */
972 u8 reserved1;
973
974 /* for alignment */
975 __le16 reserved2;
976
977 __le32 ie_mask;
978} __packed;
979
980/* WMI_SET_PROBED_SSID_CMDID */
970 /* marker only */
971 LAST_BSS_FILTER,
972};
973
974struct wmi_bss_filter_cmd {
975 /* see, enum wmi_bss_filter */
976 u8 bss_filter;
977
978 /* for alignment */
979 u8 reserved1;
980
981 /* for alignment */
982 __le16 reserved2;
983
984 __le32 ie_mask;
985} __packed;
986
987/* WMI_SET_PROBED_SSID_CMDID */
981#define MAX_PROBED_SSID_INDEX 9
988#define MAX_PROBED_SSIDS 16
982
983enum wmi_ssid_flag {
984 /* disables entry */
985 DISABLE_SSID_FLAG = 0,
986
987 /* probes specified ssid */
988 SPECIFIC_SSID_FLAG = 0x01,
989
990 /* probes for any ssid */
991 ANY_SSID_FLAG = 0x02,
989
990enum wmi_ssid_flag {
991 /* disables entry */
992 DISABLE_SSID_FLAG = 0,
993
994 /* probes specified ssid */
995 SPECIFIC_SSID_FLAG = 0x01,
996
997 /* probes for any ssid */
998 ANY_SSID_FLAG = 0x02,
999
1000 /* match for ssid */
1001 MATCH_SSID_FLAG = 0x08,
992};
993
994struct wmi_probed_ssid_cmd {
1002};
1003
1004struct wmi_probed_ssid_cmd {
995 /* 0 to MAX_PROBED_SSID_INDEX */
1005 /* 0 to MAX_PROBED_SSIDS - 1 */
996 u8 entry_index;
997
998 /* see, enum wmi_ssid_flg */
999 u8 flag;
1000
1001 u8 ssid_len;
1002 u8 ssid[IEEE80211_MAX_SSID_LEN];
1003} __packed;

--- 8 unchanged lines hidden (view full) ---

1012} __packed;
1013
1014/* WMI_SET_BMISS_TIME_CMDID */
1015struct wmi_bmiss_time_cmd {
1016 __le16 bmiss_time;
1017 __le16 num_beacons;
1018};
1019
1006 u8 entry_index;
1007
1008 /* see, enum wmi_ssid_flg */
1009 u8 flag;
1010
1011 u8 ssid_len;
1012 u8 ssid[IEEE80211_MAX_SSID_LEN];
1013} __packed;

--- 8 unchanged lines hidden (view full) ---

1022} __packed;
1023
1024/* WMI_SET_BMISS_TIME_CMDID */
1025struct wmi_bmiss_time_cmd {
1026 __le16 bmiss_time;
1027 __le16 num_beacons;
1028};
1029
1030/* WMI_STA_ENHANCE_BMISS_CMDID */
1031struct wmi_sta_bmiss_enhance_cmd {
1032 u8 enable;
1033} __packed;
1034
1020/* WMI_SET_POWER_MODE_CMDID */
1021enum wmi_power_mode {
1022 REC_POWER = 0x01,
1023 MAX_PERF_POWER,
1024};
1025
1026struct wmi_power_mode_cmd {
1027 /* see, enum wmi_power_mode */

--- 15 unchanged lines hidden (view full) ---

1043
1044 __le16 pspoll_number;
1045 __le16 dtim_policy;
1046 __le16 tx_wakeup_policy;
1047 __le16 num_tx_to_wakeup;
1048 __le16 ps_fail_event_policy;
1049} __packed;
1050
1035/* WMI_SET_POWER_MODE_CMDID */
1036enum wmi_power_mode {
1037 REC_POWER = 0x01,
1038 MAX_PERF_POWER,
1039};
1040
1041struct wmi_power_mode_cmd {
1042 /* see, enum wmi_power_mode */

--- 15 unchanged lines hidden (view full) ---

1058
1059 __le16 pspoll_number;
1060 __le16 dtim_policy;
1061 __le16 tx_wakeup_policy;
1062 __le16 num_tx_to_wakeup;
1063 __le16 ps_fail_event_policy;
1064} __packed;
1065
1066/*
1067 * Ratemask for below modes should be passed
1068 * to WMI_SET_TX_SELECT_RATES_CMDID.
1069 * AR6003 has 32 bit mask for each modes.
1070 * First 12 bits for legacy rates, 13 to 20
1071 * bits for HT 20 rates and 21 to 28 bits for
1072 * HT 40 rates
1073 */
1074enum wmi_mode_phy {
1075 WMI_RATES_MODE_11A = 0,
1076 WMI_RATES_MODE_11G,
1077 WMI_RATES_MODE_11B,
1078 WMI_RATES_MODE_11GONLY,
1079 WMI_RATES_MODE_11A_HT20,
1080 WMI_RATES_MODE_11G_HT20,
1081 WMI_RATES_MODE_11A_HT40,
1082 WMI_RATES_MODE_11G_HT40,
1083 WMI_RATES_MODE_MAX
1084};
1085
1086/* WMI_SET_TX_SELECT_RATES_CMDID */
1087struct wmi_set_tx_select_rates32_cmd {
1088 __le32 ratemask[WMI_RATES_MODE_MAX];
1089} __packed;
1090
1091/* WMI_SET_TX_SELECT_RATES_CMDID */
1092struct wmi_set_tx_select_rates64_cmd {
1093 __le64 ratemask[WMI_RATES_MODE_MAX];
1094} __packed;
1095
1051/* WMI_SET_DISC_TIMEOUT_CMDID */
1052struct wmi_disc_timeout_cmd {
1053 /* seconds */
1054 u8 discon_timeout;
1055} __packed;
1056
1057enum dir_type {
1058 UPLINK_TRAFFIC = 0,

--- 508 unchanged lines hidden (view full) ---

1567 u8 roam_mode; /* WMI_SET_ROAM_MODE */
1568 struct bss_bias_info bss; /* WMI_SET_HOST_BIAS */
1569 struct low_rssi_scan_params params; /* WMI_SET_LRSSI_SCAN_PARAMS
1570 */
1571 } __packed info;
1572 u8 roam_ctrl;
1573} __packed;
1574
1096/* WMI_SET_DISC_TIMEOUT_CMDID */
1097struct wmi_disc_timeout_cmd {
1098 /* seconds */
1099 u8 discon_timeout;
1100} __packed;
1101
1102enum dir_type {
1103 UPLINK_TRAFFIC = 0,

--- 508 unchanged lines hidden (view full) ---

1612 u8 roam_mode; /* WMI_SET_ROAM_MODE */
1613 struct bss_bias_info bss; /* WMI_SET_HOST_BIAS */
1614 struct low_rssi_scan_params params; /* WMI_SET_LRSSI_SCAN_PARAMS
1615 */
1616 } __packed info;
1617 u8 roam_ctrl;
1618} __packed;
1619
1620struct set_dtim_cmd {
1621 __le32 dtim_period;
1622} __packed;
1623
1575/* BSS INFO HDR version 2.0 */
1576struct wmi_bss_info_hdr2 {
1577 __le16 ch; /* frequency in MHz */
1578
1579 /* see, enum wmi_bi_ftype */
1580 u8 frame_type;
1581
1582 u8 snr; /* note: rssi = snr - 95 dBm */

--- 944 unchanged lines hidden (view full) ---

2527int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len);
2528
2529s32 ath6kl_wmi_get_rate(s8 rate_index);
2530
2531int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, u8 if_idx,
2532 __be32 ips0, __be32 ips1);
2533int ath6kl_wmi_set_host_sleep_mode_cmd(struct wmi *wmi, u8 if_idx,
2534 enum ath6kl_host_mode host_mode);
1624/* BSS INFO HDR version 2.0 */
1625struct wmi_bss_info_hdr2 {
1626 __le16 ch; /* frequency in MHz */
1627
1628 /* see, enum wmi_bi_ftype */
1629 u8 frame_type;
1630
1631 u8 snr; /* note: rssi = snr - 95 dBm */

--- 944 unchanged lines hidden (view full) ---

2576int ath6kl_wmi_test_cmd(struct wmi *wmi, void *buf, size_t len);
2577
2578s32 ath6kl_wmi_get_rate(s8 rate_index);
2579
2580int ath6kl_wmi_set_ip_cmd(struct wmi *wmi, u8 if_idx,
2581 __be32 ips0, __be32 ips1);
2582int ath6kl_wmi_set_host_sleep_mode_cmd(struct wmi *wmi, u8 if_idx,
2583 enum ath6kl_host_mode host_mode);
2584int ath6kl_wmi_set_bitrate_mask(struct wmi *wmi, u8 if_idx,
2585 const struct cfg80211_bitrate_mask *mask);
2535int ath6kl_wmi_set_wow_mode_cmd(struct wmi *wmi, u8 if_idx,
2536 enum ath6kl_wow_mode wow_mode,
2537 u32 filter, u16 host_req_delay);
2538int ath6kl_wmi_add_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
2539 u8 list_id, u8 filter_size,
2540 u8 filter_offset, const u8 *filter,
2541 const u8 *mask);
2542int ath6kl_wmi_del_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
2543 u16 list_id, u16 filter_id);
2544int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi);
2586int ath6kl_wmi_set_wow_mode_cmd(struct wmi *wmi, u8 if_idx,
2587 enum ath6kl_wow_mode wow_mode,
2588 u32 filter, u16 host_req_delay);
2589int ath6kl_wmi_add_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
2590 u8 list_id, u8 filter_size,
2591 u8 filter_offset, const u8 *filter,
2592 const u8 *mask);
2593int ath6kl_wmi_del_wow_pattern_cmd(struct wmi *wmi, u8 if_idx,
2594 u16 list_id, u16 filter_id);
2595int ath6kl_wmi_set_roam_lrssi_cmd(struct wmi *wmi, u8 lrssi);
2596int ath6kl_wmi_ap_set_dtim_cmd(struct wmi *wmi, u8 if_idx, u32 dtim_period);
2545int ath6kl_wmi_force_roam_cmd(struct wmi *wmi, const u8 *bssid);
2546int ath6kl_wmi_set_roam_mode_cmd(struct wmi *wmi, enum wmi_roam_mode mode);
2547int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on);
2548int ath6kl_wmi_add_del_mcast_filter_cmd(struct wmi *wmi, u8 if_idx,
2549 u8 *filter, bool add_filter);
2597int ath6kl_wmi_force_roam_cmd(struct wmi *wmi, const u8 *bssid);
2598int ath6kl_wmi_set_roam_mode_cmd(struct wmi *wmi, enum wmi_roam_mode mode);
2599int ath6kl_wmi_mcast_filter_cmd(struct wmi *wmi, u8 if_idx, bool mc_all_on);
2600int ath6kl_wmi_add_del_mcast_filter_cmd(struct wmi *wmi, u8 if_idx,
2601 u8 *filter, bool add_filter);
2602int ath6kl_wmi_sta_bmiss_enhance_cmd(struct wmi *wmi, u8 if_idx, bool enable);
2603
2550/* AP mode uAPSD */
2551int ath6kl_wmi_ap_set_apsd(struct wmi *wmi, u8 if_idx, u8 enable);
2552
2553int ath6kl_wmi_set_apsd_bfrd_traf(struct wmi *wmi,
2554 u8 if_idx, u16 aid,
2555 u16 bitmap, u32 flags);
2556
2557u8 ath6kl_wmi_get_traffic_class(u8 user_priority);

--- 55 unchanged lines hidden ---
2604/* AP mode uAPSD */
2605int ath6kl_wmi_ap_set_apsd(struct wmi *wmi, u8 if_idx, u8 enable);
2606
2607int ath6kl_wmi_set_apsd_bfrd_traf(struct wmi *wmi,
2608 u8 if_idx, u16 aid,
2609 u16 bitmap, u32 flags);
2610
2611u8 ath6kl_wmi_get_traffic_class(u8 user_priority);

--- 55 unchanged lines hidden ---