ath10k: handle FW API differences for scan structures
[cascardo/linux.git] / drivers / net / wireless / ath / ath10k / wmi.h
index a0cfdfd..7692c14 100644 (file)
@@ -1377,6 +1377,192 @@ struct wmi_resource_config {
        __le32 max_frag_entries;
 } __packed;
 
+struct wmi_resource_config_10x {
+       /* number of virtual devices (VAPs) to support */
+       __le32 num_vdevs;
+
+       /* number of peer nodes to support */
+       __le32 num_peers;
+
+       /* number of keys per peer */
+       __le32 num_peer_keys;
+
+       /* total number of TX/RX data TIDs */
+       __le32 num_tids;
+
+       /*
+        * max skid for resolving hash collisions
+        *
+        *   The address search table is sparse, so that if two MAC addresses
+        *   result in the same hash value, the second of these conflicting
+        *   entries can slide to the next index in the address search table,
+        *   and use it, if it is unoccupied.  This ast_skid_limit parameter
+        *   specifies the upper bound on how many subsequent indices to search
+        *   over to find an unoccupied space.
+        */
+       __le32 ast_skid_limit;
+
+       /*
+        * the nominal chain mask for transmit
+        *
+        *   The chain mask may be modified dynamically, e.g. to operate AP
+        *   tx with a reduced number of chains if no clients are associated.
+        *   This configuration parameter specifies the nominal chain-mask that
+        *   should be used when not operating with a reduced set of tx chains.
+        */
+       __le32 tx_chain_mask;
+
+       /*
+        * the nominal chain mask for receive
+        *
+        *   The chain mask may be modified dynamically, e.g. for a client
+        *   to use a reduced number of chains for receive if the traffic to
+        *   the client is low enough that it doesn't require downlink MIMO
+        *   or antenna diversity.
+        *   This configuration parameter specifies the nominal chain-mask that
+        *   should be used when not operating with a reduced set of rx chains.
+        */
+       __le32 rx_chain_mask;
+
+       /*
+        * what rx reorder timeout (ms) to use for the AC
+        *
+        *   Each WMM access class (voice, video, best-effort, background) will
+        *   have its own timeout value to dictate how long to wait for missing
+        *   rx MPDUs to arrive before flushing subsequent MPDUs that have
+        *   already been received.
+        *   This parameter specifies the timeout in milliseconds for each
+        *   class.
+        */
+       __le32 rx_timeout_pri_vi;
+       __le32 rx_timeout_pri_vo;
+       __le32 rx_timeout_pri_be;
+       __le32 rx_timeout_pri_bk;
+
+       /*
+        * what mode the rx should decap packets to
+        *
+        *   MAC can decap to RAW (no decap), native wifi or Ethernet types
+        *   THis setting also determines the default TX behavior, however TX
+        *   behavior can be modified on a per VAP basis during VAP init
+        */
+       __le32 rx_decap_mode;
+
+       /* what is the maximum scan requests than can be queued */
+       __le32 scan_max_pending_reqs;
+
+       /* maximum VDEV that could use BMISS offload */
+       __le32 bmiss_offload_max_vdev;
+
+       /* maximum VDEV that could use offload roaming */
+       __le32 roam_offload_max_vdev;
+
+       /* maximum AP profiles that would push to offload roaming */
+       __le32 roam_offload_max_ap_profiles;
+
+       /*
+        * how many groups to use for mcast->ucast conversion
+        *
+        *   The target's WAL maintains a table to hold information regarding
+        *   which peers belong to a given multicast group, so that if
+        *   multicast->unicast conversion is enabled, the target can convert
+        *   multicast tx frames to a series of unicast tx frames, to each
+        *   peer within the multicast group.
+            This num_mcast_groups configuration parameter tells the target how
+        *   many multicast groups to provide storage for within its multicast
+        *   group membership table.
+        */
+       __le32 num_mcast_groups;
+
+       /*
+        * size to alloc for the mcast membership table
+        *
+        *   This num_mcast_table_elems configuration parameter tells the
+        *   target how many peer elements it needs to provide storage for in
+        *   its multicast group membership table.
+        *   These multicast group membership table elements are shared by the
+        *   multicast groups stored within the table.
+        */
+       __le32 num_mcast_table_elems;
+
+       /*
+        * whether/how to do multicast->unicast conversion
+        *
+        *   This configuration parameter specifies whether the target should
+        *   perform multicast --> unicast conversion on transmit, and if so,
+        *   what to do if it finds no entries in its multicast group
+        *   membership table for the multicast IP address in the tx frame.
+        *   Configuration value:
+        *   0 -> Do not perform multicast to unicast conversion.
+        *   1 -> Convert multicast frames to unicast, if the IP multicast
+        *        address from the tx frame is found in the multicast group
+        *        membership table.  If the IP multicast address is not found,
+        *        drop the frame.
+        *   2 -> Convert multicast frames to unicast, if the IP multicast
+        *        address from the tx frame is found in the multicast group
+        *        membership table.  If the IP multicast address is not found,
+        *        transmit the frame as multicast.
+        */
+       __le32 mcast2ucast_mode;
+
+       /*
+        * how much memory to allocate for a tx PPDU dbg log
+        *
+        *   This parameter controls how much memory the target will allocate
+        *   to store a log of tx PPDU meta-information (how large the PPDU
+        *   was, when it was sent, whether it was successful, etc.)
+        */
+       __le32 tx_dbg_log_size;
+
+       /* how many AST entries to be allocated for WDS */
+       __le32 num_wds_entries;
+
+       /*
+        * MAC DMA burst size, e.g., For target PCI limit can be
+        * 0 -default, 1 256B
+        */
+       __le32 dma_burst_size;
+
+       /*
+        * Fixed delimiters to be inserted after every MPDU to
+        * account for interface latency to avoid underrun.
+        */
+       __le32 mac_aggr_delim;
+
+       /*
+        *   determine whether target is responsible for detecting duplicate
+        *   non-aggregate MPDU and timing out stale fragments.
+        *
+        *   A-MPDU reordering is always performed on the target.
+        *
+        *   0: target responsible for frag timeout and dup checking
+        *   1: host responsible for frag timeout and dup checking
+        */
+       __le32 rx_skip_defrag_timeout_dup_detection_check;
+
+       /*
+        * Configuration for VoW :
+        * No of Video Nodes to be supported
+        * and Max no of descriptors for each Video link (node).
+        */
+       __le32 vow_config;
+
+       /* Number of msdu descriptors target should use */
+       __le32 num_msdu_desc;
+
+       /*
+        * Max. number of Tx fragments per MSDU
+        *  This parameter controls the max number of Tx fragments per MSDU.
+        *  This is sent by the target as part of the WMI_SERVICE_READY event
+        *  and is overriden by the OS shim as required.
+        */
+       __le32 max_frag_entries;
+} __packed;
+
+
+#define NUM_UNITS_IS_NUM_VDEVS   0x1
+#define NUM_UNITS_IS_NUM_PEERS   0x2
+
 /* strucutre describing host memory chunk. */
 struct host_memory_chunk {
        /* id of the request that is passed up in service ready */
@@ -1398,6 +1584,18 @@ struct wmi_init_cmd {
        struct host_memory_chunk host_mem_chunks[1];
 } __packed;
 
+/* _10x stucture is from 10.X FW API */
+struct wmi_init_cmd_10x {
+       struct wmi_resource_config_10x resource_config;
+       __le32 num_host_mem_chunks;
+
+       /*
+        * variable number of host memory chunks.
+        * This should be the last element in the structure
+        */
+       struct host_memory_chunk host_mem_chunks[1];
+} __packed;
+
 /* TLV for channel list */
 struct wmi_chan_list {
        __le32 tag; /* WMI_CHAN_LIST_TAG */
@@ -1517,6 +1715,88 @@ struct wmi_start_scan_cmd {
         */
 } __packed;
 
+/* This is the definition from 10.X firmware branch */
+struct wmi_start_scan_cmd_10x {
+       /* Scan ID */
+       __le32 scan_id;
+
+       /* Scan requestor ID */
+       __le32 scan_req_id;
+
+       /* VDEV id(interface) that is requesting scan */
+       __le32 vdev_id;
+
+       /* Scan Priority, input to scan scheduler */
+       __le32 scan_priority;
+
+       /* Scan events subscription */
+       __le32 notify_scan_events;
+
+       /* dwell time in msec on active channels */
+       __le32 dwell_time_active;
+
+       /* dwell time in msec on passive channels */
+       __le32 dwell_time_passive;
+
+       /*
+        * min time in msec on the BSS channel,only valid if atleast one
+        * VDEV is active
+        */
+       __le32 min_rest_time;
+
+       /*
+        * max rest time in msec on the BSS channel,only valid if at least
+        * one VDEV is active
+        */
+       /*
+        * the scanner will rest on the bss channel at least min_rest_time
+        * after min_rest_time the scanner will start checking for tx/rx
+        * activity on all VDEVs. if there is no activity the scanner will
+        * switch to off channel. if there is activity the scanner will let
+        * the radio on the bss channel until max_rest_time expires.at
+        * max_rest_time scanner will switch to off channel irrespective of
+        * activity. activity is determined by the idle_time parameter.
+        */
+       __le32 max_rest_time;
+
+       /*
+        * time before sending next set of probe requests.
+        * The scanner keeps repeating probe requests transmission with
+        * period specified by repeat_probe_time.
+        * The number of probe requests specified depends on the ssid_list
+        * and bssid_list
+        */
+       __le32 repeat_probe_time;
+
+       /* time in msec between 2 consequetive probe requests with in a set. */
+       __le32 probe_spacing_time;
+
+       /*
+        * data inactivity time in msec on bss channel that will be used by
+        * scanner for measuring the inactivity.
+        */
+       __le32 idle_time;
+
+       /* maximum time in msec allowed for scan  */
+       __le32 max_scan_time;
+
+       /*
+        * delay in msec before sending first probe request after switching
+        * to a channel
+        */
+       __le32 probe_delay;
+
+       /* Scan control flags */
+       __le32 scan_ctrl_flags;
+
+       /*
+        * TLV (tag length value )  paramerters follow the scan_cmd structure.
+        * TLV can contain channel list, bssid list, ssid list and
+        * ie. the TLV tags are defined above;
+        */
+} __packed;
+
+
 struct wmi_ssid_arg {
        int len;
        const u8 *ssid;
@@ -1874,6 +2154,60 @@ struct wmi_csa_event {
 #define VDEV_DEFAULT_STATS_UPDATE_PERIOD    500
 #define PEER_DEFAULT_STATS_UPDATE_PERIOD    500
 
+struct wmi_pdev_param_map {
+       u32 tx_chain_mask;
+       u32 rx_chain_mask;
+       u32 txpower_limit2g;
+       u32 txpower_limit5g;
+       u32 txpower_scale;
+       u32 beacon_gen_mode;
+       u32 beacon_tx_mode;
+       u32 resmgr_offchan_mode;
+       u32 protection_mode;
+       u32 dynamic_bw;
+       u32 non_agg_sw_retry_th;
+       u32 agg_sw_retry_th;
+       u32 sta_kickout_th;
+       u32 ac_aggrsize_scaling;
+       u32 ltr_enable;
+       u32 ltr_ac_latency_be;
+       u32 ltr_ac_latency_bk;
+       u32 ltr_ac_latency_vi;
+       u32 ltr_ac_latency_vo;
+       u32 ltr_ac_latency_timeout;
+       u32 ltr_sleep_override;
+       u32 ltr_rx_override;
+       u32 ltr_tx_activity_timeout;
+       u32 l1ss_enable;
+       u32 dsleep_enable;
+       u32 pcielp_txbuf_flush;
+       u32 pcielp_txbuf_watermark;
+       u32 pcielp_txbuf_tmo_en;
+       u32 pcielp_txbuf_tmo_value;
+       u32 pdev_stats_update_period;
+       u32 vdev_stats_update_period;
+       u32 peer_stats_update_period;
+       u32 bcnflt_stats_update_period;
+       u32 pmf_qos;
+       u32 arp_ac_override;
+       u32 arpdhcp_ac_override;
+       u32 dcs;
+       u32 ani_enable;
+       u32 ani_poll_period;
+       u32 ani_listen_period;
+       u32 ani_ofdm_level;
+       u32 ani_cck_level;
+       u32 dyntxchain;
+       u32 proxy_sta;
+       u32 idle_ps_config;
+       u32 power_gating_sleep;
+       u32 fast_channel_reset;
+       u32 burst_dur;
+       u32 burst_enable;
+};
+
+#define WMI_PDEV_PARAM_UNSUPPORTED 0
+
 enum wmi_pdev_param {
        /* TX chian mask */
        WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
@@ -1973,6 +2307,97 @@ enum wmi_pdev_param {
        WMI_PDEV_PARAM_POWER_GATING_SLEEP,
 };
 
+enum wmi_10x_pdev_param {
+       /* TX chian mask */
+       WMI_10X_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
+       /* RX chian mask */
+       WMI_10X_PDEV_PARAM_RX_CHAIN_MASK,
+       /* TX power limit for 2G Radio */
+       WMI_10X_PDEV_PARAM_TXPOWER_LIMIT2G,
+       /* TX power limit for 5G Radio */
+       WMI_10X_PDEV_PARAM_TXPOWER_LIMIT5G,
+       /* TX power scale */
+       WMI_10X_PDEV_PARAM_TXPOWER_SCALE,
+       /* Beacon generation mode . 0: host, 1: target   */
+       WMI_10X_PDEV_PARAM_BEACON_GEN_MODE,
+       /* Beacon generation mode . 0: staggered 1: bursted   */
+       WMI_10X_PDEV_PARAM_BEACON_TX_MODE,
+       /*
+        * Resource manager off chan mode .
+        * 0: turn off off chan mode. 1: turn on offchan mode
+        */
+       WMI_10X_PDEV_PARAM_RESMGR_OFFCHAN_MODE,
+       /*
+        * Protection mode:
+        * 0: no protection 1:use CTS-to-self 2: use RTS/CTS
+        */
+       WMI_10X_PDEV_PARAM_PROTECTION_MODE,
+       /* Dynamic bandwidth 0: disable 1: enable */
+       WMI_10X_PDEV_PARAM_DYNAMIC_BW,
+       /* Non aggregrate/ 11g sw retry threshold.0-disable */
+       WMI_10X_PDEV_PARAM_NON_AGG_SW_RETRY_TH,
+       /* aggregrate sw retry threshold. 0-disable*/
+       WMI_10X_PDEV_PARAM_AGG_SW_RETRY_TH,
+       /* Station kickout threshold (non of consecutive failures).0-disable */
+       WMI_10X_PDEV_PARAM_STA_KICKOUT_TH,
+       /* Aggerate size scaling configuration per AC */
+       WMI_10X_PDEV_PARAM_AC_AGGRSIZE_SCALING,
+       /* LTR enable */
+       WMI_10X_PDEV_PARAM_LTR_ENABLE,
+       /* LTR latency for BE, in us */
+       WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BE,
+       /* LTR latency for BK, in us */
+       WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BK,
+       /* LTR latency for VI, in us */
+       WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VI,
+       /* LTR latency for VO, in us  */
+       WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VO,
+       /* LTR AC latency timeout, in ms */
+       WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT,
+       /* LTR platform latency override, in us */
+       WMI_10X_PDEV_PARAM_LTR_SLEEP_OVERRIDE,
+       /* LTR-RX override, in us */
+       WMI_10X_PDEV_PARAM_LTR_RX_OVERRIDE,
+       /* Tx activity timeout for LTR, in us */
+       WMI_10X_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT,
+       /* L1SS state machine enable */
+       WMI_10X_PDEV_PARAM_L1SS_ENABLE,
+       /* Deep sleep state machine enable */
+       WMI_10X_PDEV_PARAM_DSLEEP_ENABLE,
+       /* pdev level stats update period in ms */
+       WMI_10X_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD,
+       /* vdev level stats update period in ms */
+       WMI_10X_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD,
+       /* peer level stats update period in ms */
+       WMI_10X_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD,
+       /* beacon filter status update period */
+       WMI_10X_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD,
+       /* QOS Mgmt frame protection MFP/PMF 0: disable, 1: enable */
+       WMI_10X_PDEV_PARAM_PMF_QOS,
+       /* Access category on which ARP and DHCP frames are sent */
+       WMI_10X_PDEV_PARAM_ARPDHCP_AC_OVERRIDE,
+       /* DCS configuration */
+       WMI_10X_PDEV_PARAM_DCS,
+       /* Enable/Disable ANI on target */
+       WMI_10X_PDEV_PARAM_ANI_ENABLE,
+       /* configure the ANI polling period */
+       WMI_10X_PDEV_PARAM_ANI_POLL_PERIOD,
+       /* configure the ANI listening period */
+       WMI_10X_PDEV_PARAM_ANI_LISTEN_PERIOD,
+       /* configure OFDM immunity level */
+       WMI_10X_PDEV_PARAM_ANI_OFDM_LEVEL,
+       /* configure CCK immunity level */
+       WMI_10X_PDEV_PARAM_ANI_CCK_LEVEL,
+       /* Enable/Disable CDD for 1x1 STAs in rate control module */
+       WMI_10X_PDEV_PARAM_DYNTXCHAIN,
+       /* Enable/Disable Fast channel reset*/
+       WMI_10X_PDEV_PARAM_FAST_CHANNEL_RESET,
+       /* Set Bursting DUR */
+       WMI_10X_PDEV_PARAM_BURST_DUR,
+       /* Set Bursting Enable*/
+       WMI_10X_PDEV_PARAM_BURST_ENABLE,
+};
+
 struct wmi_pdev_set_param_cmd {
        __le32 param_id;
        __le32 param_value;
@@ -2497,6 +2922,61 @@ enum wmi_rate_preamble {
 /* Value to disable fixed rate setting */
 #define WMI_FIXED_RATE_NONE    (0xff)
 
+struct wmi_vdev_param_map {
+       u32 rts_threshold;
+       u32 fragmentation_threshold;
+       u32 beacon_interval;
+       u32 listen_interval;
+       u32 multicast_rate;
+       u32 mgmt_tx_rate;
+       u32 slot_time;
+       u32 preamble;
+       u32 swba_time;
+       u32 wmi_vdev_stats_update_period;
+       u32 wmi_vdev_pwrsave_ageout_time;
+       u32 wmi_vdev_host_swba_interval;
+       u32 dtim_period;
+       u32 wmi_vdev_oc_scheduler_air_time_limit;
+       u32 wds;
+       u32 atim_window;
+       u32 bmiss_count_max;
+       u32 bmiss_first_bcnt;
+       u32 bmiss_final_bcnt;
+       u32 feature_wmm;
+       u32 chwidth;
+       u32 chextoffset;
+       u32 disable_htprotection;
+       u32 sta_quickkickout;
+       u32 mgmt_rate;
+       u32 protection_mode;
+       u32 fixed_rate;
+       u32 sgi;
+       u32 ldpc;
+       u32 tx_stbc;
+       u32 rx_stbc;
+       u32 intra_bss_fwd;
+       u32 def_keyid;
+       u32 nss;
+       u32 bcast_data_rate;
+       u32 mcast_data_rate;
+       u32 mcast_indicate;
+       u32 dhcp_indicate;
+       u32 unknown_dest_indicate;
+       u32 ap_keepalive_min_idle_inactive_time_secs;
+       u32 ap_keepalive_max_idle_inactive_time_secs;
+       u32 ap_keepalive_max_unresponsive_time_secs;
+       u32 ap_enable_nawds;
+       u32 mcast2ucast_set;
+       u32 enable_rtscts;
+       u32 txbf;
+       u32 packet_powersave;
+       u32 drop_unencry;
+       u32 tx_encap_type;
+       u32 ap_detect_out_of_sync_sleeping_sta_time_secs;
+};
+
+#define WMI_VDEV_PARAM_UNSUPPORTED 0
+
 /* the definition of different VDEV parameters */
 enum wmi_vdev_param {
        /* RTS Threshold */
@@ -2628,6 +3108,121 @@ enum wmi_vdev_param {
        WMI_VDEV_PARAM_TX_ENCAP_TYPE,
 };
 
+/* the definition of different VDEV parameters */
+enum wmi_10x_vdev_param {
+       /* RTS Threshold */
+       WMI_10X_VDEV_PARAM_RTS_THRESHOLD = 0x1,
+       /* Fragmentation threshold */
+       WMI_10X_VDEV_PARAM_FRAGMENTATION_THRESHOLD,
+       /* beacon interval in TUs */
+       WMI_10X_VDEV_PARAM_BEACON_INTERVAL,
+       /* Listen interval in TUs */
+       WMI_10X_VDEV_PARAM_LISTEN_INTERVAL,
+       /* muticast rate in Mbps */
+       WMI_10X_VDEV_PARAM_MULTICAST_RATE,
+       /* management frame rate in Mbps */
+       WMI_10X_VDEV_PARAM_MGMT_TX_RATE,
+       /* slot time (long vs short) */
+       WMI_10X_VDEV_PARAM_SLOT_TIME,
+       /* preamble (long vs short) */
+       WMI_10X_VDEV_PARAM_PREAMBLE,
+       /* SWBA time (time before tbtt in msec) */
+       WMI_10X_VDEV_PARAM_SWBA_TIME,
+       /* time period for updating VDEV stats */
+       WMI_10X_VDEV_STATS_UPDATE_PERIOD,
+       /* age out time in msec for frames queued for station in power save */
+       WMI_10X_VDEV_PWRSAVE_AGEOUT_TIME,
+       /*
+        * Host SWBA interval (time in msec before tbtt for SWBA event
+        * generation).
+        */
+       WMI_10X_VDEV_HOST_SWBA_INTERVAL,
+       /* DTIM period (specified in units of num beacon intervals) */
+       WMI_10X_VDEV_PARAM_DTIM_PERIOD,
+       /*
+        * scheduler air time limit for this VDEV. used by off chan
+        * scheduler.
+        */
+       WMI_10X_VDEV_OC_SCHEDULER_AIR_TIME_LIMIT,
+       /* enable/dsiable WDS for this VDEV  */
+       WMI_10X_VDEV_PARAM_WDS,
+       /* ATIM Window */
+       WMI_10X_VDEV_PARAM_ATIM_WINDOW,
+       /* BMISS max */
+       WMI_10X_VDEV_PARAM_BMISS_COUNT_MAX,
+       /* WMM enables/disabled */
+       WMI_10X_VDEV_PARAM_FEATURE_WMM,
+       /* Channel width */
+       WMI_10X_VDEV_PARAM_CHWIDTH,
+       /* Channel Offset */
+       WMI_10X_VDEV_PARAM_CHEXTOFFSET,
+       /* Disable HT Protection */
+       WMI_10X_VDEV_PARAM_DISABLE_HTPROTECTION,
+       /* Quick STA Kickout */
+       WMI_10X_VDEV_PARAM_STA_QUICKKICKOUT,
+       /* Rate to be used with Management frames */
+       WMI_10X_VDEV_PARAM_MGMT_RATE,
+       /* Protection Mode */
+       WMI_10X_VDEV_PARAM_PROTECTION_MODE,
+       /* Fixed rate setting */
+       WMI_10X_VDEV_PARAM_FIXED_RATE,
+       /* Short GI Enable/Disable */
+       WMI_10X_VDEV_PARAM_SGI,
+       /* Enable LDPC */
+       WMI_10X_VDEV_PARAM_LDPC,
+       /* Enable Tx STBC */
+       WMI_10X_VDEV_PARAM_TX_STBC,
+       /* Enable Rx STBC */
+       WMI_10X_VDEV_PARAM_RX_STBC,
+       /* Intra BSS forwarding  */
+       WMI_10X_VDEV_PARAM_INTRA_BSS_FWD,
+       /* Setting Default xmit key for Vdev */
+       WMI_10X_VDEV_PARAM_DEF_KEYID,
+       /* NSS width */
+       WMI_10X_VDEV_PARAM_NSS,
+       /* Set the custom rate for the broadcast data frames */
+       WMI_10X_VDEV_PARAM_BCAST_DATA_RATE,
+       /* Set the custom rate (rate-code) for multicast data frames */
+       WMI_10X_VDEV_PARAM_MCAST_DATA_RATE,
+       /* Tx multicast packet indicate Enable/Disable */
+       WMI_10X_VDEV_PARAM_MCAST_INDICATE,
+       /* Tx DHCP packet indicate Enable/Disable */
+       WMI_10X_VDEV_PARAM_DHCP_INDICATE,
+       /* Enable host inspection of Tx unicast packet to unknown destination */
+       WMI_10X_VDEV_PARAM_UNKNOWN_DEST_INDICATE,
+
+       /* The minimum amount of time AP begins to consider STA inactive */
+       WMI_10X_VDEV_PARAM_AP_KEEPALIVE_MIN_IDLE_INACTIVE_TIME_SECS,
+
+       /*
+        * An associated STA is considered inactive when there is no recent
+        * TX/RX activity and no downlink frames are buffered for it. Once a
+        * STA exceeds the maximum idle inactive time, the AP will send an
+        * 802.11 data-null as a keep alive to verify the STA is still
+        * associated. If the STA does ACK the data-null, or if the data-null
+        * is buffered and the STA does not retrieve it, the STA will be
+        * considered unresponsive
+        * (see WMI_10X_VDEV_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS).
+        */
+       WMI_10X_VDEV_PARAM_AP_KEEPALIVE_MAX_IDLE_INACTIVE_TIME_SECS,
+
+       /*
+        * An associated STA is considered unresponsive if there is no recent
+        * TX/RX activity and downlink frames are buffered for it. Once a STA
+        * exceeds the maximum unresponsive time, the AP will send a
+        * WMI_10X_STA_KICKOUT event to the host so the STA can be deleted. */
+       WMI_10X_VDEV_PARAM_AP_KEEPALIVE_MAX_UNRESPONSIVE_TIME_SECS,
+
+       /* Enable NAWDS : MCAST INSPECT Enable, NAWDS Flag set */
+       WMI_10X_VDEV_PARAM_AP_ENABLE_NAWDS,
+
+       WMI_10X_VDEV_PARAM_MCAST2UCAST_SET,
+       /* Enable/Disable RTS-CTS */
+       WMI_10X_VDEV_PARAM_ENABLE_RTSCTS,
+
+       WMI_10X_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS,
+};
+
 /* slot time long */
 #define WMI_VDEV_SLOT_TIME_LONG                0x1
 /* slot time short */
@@ -3429,8 +4024,7 @@ int ath10k_wmi_pdev_suspend_target(struct ath10k *ar);
 int ath10k_wmi_pdev_resume_target(struct ath10k *ar);
 int ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g,
                                  u16 rd5g, u16 ctl2g, u16 ctl5g);
-int ath10k_wmi_pdev_set_param(struct ath10k *ar, enum wmi_pdev_param id,
-                             u32 value);
+int ath10k_wmi_pdev_set_param(struct ath10k *ar, u32 id, u32 value);
 int ath10k_wmi_cmd_init(struct ath10k *ar);
 int ath10k_wmi_start_scan(struct ath10k *ar, const struct wmi_start_scan_arg *);
 void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *);
@@ -3450,7 +4044,7 @@ int ath10k_wmi_vdev_up(struct ath10k *ar, u32 vdev_id, u32 aid,
                       const u8 *bssid);
 int ath10k_wmi_vdev_down(struct ath10k *ar, u32 vdev_id);
 int ath10k_wmi_vdev_set_param(struct ath10k *ar, u32 vdev_id,
-                             enum wmi_vdev_param param_id, u32 param_value);
+                             u32 param_id, u32 param_value);
 int ath10k_wmi_vdev_install_key(struct ath10k *ar,
                                const struct wmi_vdev_install_key_arg *arg);
 int ath10k_wmi_peer_create(struct ath10k *ar, u32 vdev_id,
@@ -3480,5 +4074,6 @@ int ath10k_wmi_pdev_set_wmm_params(struct ath10k *ar,
 int ath10k_wmi_request_stats(struct ath10k *ar, enum wmi_stats_id stats_id);
 int ath10k_wmi_force_fw_hang(struct ath10k *ar,
                             enum wmi_force_fw_hang_type type, u32 delay_ms);
+int ath10k_wmi_mgmt_tx(struct ath10k *ar, struct sk_buff *skb);
 
 #endif /* _WMI_H_ */