aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorBartosz Markowski <bartosz.markowski@tieto.com>2013-09-26 11:47:16 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2013-09-27 07:58:15 -0400
commit226a339ba8f3c53914e640d250feaf4321cfcd04 (patch)
treefd8e937dbe7a1109b4ce485540037c7bc98068e4 /drivers
parent6d1506e788ecf3c423f275036d37a40d1416db42 (diff)
ath10k: introduce dynamic pdev parameters
This is done exactly the same way as for vdev. Signed-off-by: Bartosz Markowski <bartosz.markowski@tieto.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/ath/ath10k/core.h1
-rw-r--r--drivers/net/wireless/ath/ath10k/mac.c10
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.c115
-rw-r--r--drivers/net/wireless/ath/ath10k/wmi.h148
4 files changed, 265 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath10k/core.h b/drivers/net/wireless/ath/ath10k/core.h
index 124e7246bb44..d5da8a9f6974 100644
--- a/drivers/net/wireless/ath/ath10k/core.h
+++ b/drivers/net/wireless/ath/ath10k/core.h
@@ -120,6 +120,7 @@ struct ath10k_wmi {
120 wait_queue_head_t tx_credits_wq; 120 wait_queue_head_t tx_credits_wq;
121 struct wmi_cmd_map *cmd; 121 struct wmi_cmd_map *cmd;
122 struct wmi_vdev_param_map *vdev_param; 122 struct wmi_vdev_param_map *vdev_param;
123 struct wmi_pdev_param_map *pdev_param;
123 124
124 u32 num_mem_chunks; 125 u32 num_mem_chunks;
125 struct ath10k_mem_chunk mem_chunks[ATH10K_MAX_MEM_REQS]; 126 struct ath10k_mem_chunk mem_chunks[ATH10K_MAX_MEM_REQS];
diff --git a/drivers/net/wireless/ath/ath10k/mac.c b/drivers/net/wireless/ath/ath10k/mac.c
index b5ae01de684e..8684e03b393e 100644
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1882,12 +1882,12 @@ static int ath10k_start(struct ieee80211_hw *hw)
1882 else if (ar->state == ATH10K_STATE_RESTARTING) 1882 else if (ar->state == ATH10K_STATE_RESTARTING)
1883 ar->state = ATH10K_STATE_RESTARTED; 1883 ar->state = ATH10K_STATE_RESTARTED;
1884 1884
1885 ret = ath10k_wmi_pdev_set_param(ar, WMI_PDEV_PARAM_PMF_QOS, 1); 1885 ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->pmf_qos, 1);
1886 if (ret) 1886 if (ret)
1887 ath10k_warn("could not enable WMI_PDEV_PARAM_PMF_QOS (%d)\n", 1887 ath10k_warn("could not enable WMI_PDEV_PARAM_PMF_QOS (%d)\n",
1888 ret); 1888 ret);
1889 1889
1890 ret = ath10k_wmi_pdev_set_param(ar, WMI_PDEV_PARAM_DYNAMIC_BW, 0); 1890 ret = ath10k_wmi_pdev_set_param(ar, ar->wmi.pdev_param->dynamic_bw, 0);
1891 if (ret) 1891 if (ret)
1892 ath10k_warn("could not init WMI_PDEV_PARAM_DYNAMIC_BW (%d)\n", 1892 ath10k_warn("could not init WMI_PDEV_PARAM_DYNAMIC_BW (%d)\n",
1893 ret); 1893 ret);
@@ -2209,7 +2209,7 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
2209 struct ath10k *ar = hw->priv; 2209 struct ath10k *ar = hw->priv;
2210 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif); 2210 struct ath10k_vif *arvif = ath10k_vif_to_arvif(vif);
2211 int ret = 0; 2211 int ret = 0;
2212 u32 vdev_param; 2212 u32 vdev_param, pdev_param;
2213 2213
2214 mutex_lock(&ar->conf_mutex); 2214 mutex_lock(&ar->conf_mutex);
2215 2215
@@ -2235,8 +2235,8 @@ static void ath10k_bss_info_changed(struct ieee80211_hw *hw,
2235 "vdev %d set beacon tx mode to staggered\n", 2235 "vdev %d set beacon tx mode to staggered\n",
2236 arvif->vdev_id); 2236 arvif->vdev_id);
2237 2237
2238 ret = ath10k_wmi_pdev_set_param(ar, 2238 pdev_param = ar->wmi.pdev_param->beacon_tx_mode;
2239 WMI_PDEV_PARAM_BEACON_TX_MODE, 2239 ret = ath10k_wmi_pdev_set_param(ar, pdev_param,
2240 WMI_BEACON_STAGGERED_MODE); 2240 WMI_BEACON_STAGGERED_MODE);
2241 if (ret) 2241 if (ret)
2242 ath10k_warn("Failed to set beacon mode for VDEV: %d\n", 2242 ath10k_warn("Failed to set beacon mode for VDEV: %d\n",
diff --git a/drivers/net/wireless/ath/ath10k/wmi.c b/drivers/net/wireless/ath/ath10k/wmi.c
index 89a8cb862c81..3460cf446846 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.c
+++ b/drivers/net/wireless/ath/ath10k/wmi.c
@@ -383,6 +383,111 @@ static struct wmi_vdev_param_map wmi_10x_vdev_param_map = {
383 WMI_10X_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS, 383 WMI_10X_VDEV_PARAM_AP_DETECT_OUT_OF_SYNC_SLEEPING_STA_TIME_SECS,
384}; 384};
385 385
386static struct wmi_pdev_param_map wmi_pdev_param_map = {
387 .tx_chain_mask = WMI_PDEV_PARAM_TX_CHAIN_MASK,
388 .rx_chain_mask = WMI_PDEV_PARAM_RX_CHAIN_MASK,
389 .txpower_limit2g = WMI_PDEV_PARAM_TXPOWER_LIMIT2G,
390 .txpower_limit5g = WMI_PDEV_PARAM_TXPOWER_LIMIT5G,
391 .txpower_scale = WMI_PDEV_PARAM_TXPOWER_SCALE,
392 .beacon_gen_mode = WMI_PDEV_PARAM_BEACON_GEN_MODE,
393 .beacon_tx_mode = WMI_PDEV_PARAM_BEACON_TX_MODE,
394 .resmgr_offchan_mode = WMI_PDEV_PARAM_RESMGR_OFFCHAN_MODE,
395 .protection_mode = WMI_PDEV_PARAM_PROTECTION_MODE,
396 .dynamic_bw = WMI_PDEV_PARAM_DYNAMIC_BW,
397 .non_agg_sw_retry_th = WMI_PDEV_PARAM_NON_AGG_SW_RETRY_TH,
398 .agg_sw_retry_th = WMI_PDEV_PARAM_AGG_SW_RETRY_TH,
399 .sta_kickout_th = WMI_PDEV_PARAM_STA_KICKOUT_TH,
400 .ac_aggrsize_scaling = WMI_PDEV_PARAM_AC_AGGRSIZE_SCALING,
401 .ltr_enable = WMI_PDEV_PARAM_LTR_ENABLE,
402 .ltr_ac_latency_be = WMI_PDEV_PARAM_LTR_AC_LATENCY_BE,
403 .ltr_ac_latency_bk = WMI_PDEV_PARAM_LTR_AC_LATENCY_BK,
404 .ltr_ac_latency_vi = WMI_PDEV_PARAM_LTR_AC_LATENCY_VI,
405 .ltr_ac_latency_vo = WMI_PDEV_PARAM_LTR_AC_LATENCY_VO,
406 .ltr_ac_latency_timeout = WMI_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT,
407 .ltr_sleep_override = WMI_PDEV_PARAM_LTR_SLEEP_OVERRIDE,
408 .ltr_rx_override = WMI_PDEV_PARAM_LTR_RX_OVERRIDE,
409 .ltr_tx_activity_timeout = WMI_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT,
410 .l1ss_enable = WMI_PDEV_PARAM_L1SS_ENABLE,
411 .dsleep_enable = WMI_PDEV_PARAM_DSLEEP_ENABLE,
412 .pcielp_txbuf_flush = WMI_PDEV_PARAM_PCIELP_TXBUF_FLUSH,
413 .pcielp_txbuf_watermark = WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN,
414 .pcielp_txbuf_tmo_en = WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_EN,
415 .pcielp_txbuf_tmo_value = WMI_PDEV_PARAM_PCIELP_TXBUF_TMO_VALUE,
416 .pdev_stats_update_period = WMI_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD,
417 .vdev_stats_update_period = WMI_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD,
418 .peer_stats_update_period = WMI_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD,
419 .bcnflt_stats_update_period = WMI_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD,
420 .pmf_qos = WMI_PDEV_PARAM_PMF_QOS,
421 .arp_ac_override = WMI_PDEV_PARAM_ARP_AC_OVERRIDE,
422 .arpdhcp_ac_override = WMI_PDEV_PARAM_UNSUPPORTED,
423 .dcs = WMI_PDEV_PARAM_DCS,
424 .ani_enable = WMI_PDEV_PARAM_ANI_ENABLE,
425 .ani_poll_period = WMI_PDEV_PARAM_ANI_POLL_PERIOD,
426 .ani_listen_period = WMI_PDEV_PARAM_ANI_LISTEN_PERIOD,
427 .ani_ofdm_level = WMI_PDEV_PARAM_ANI_OFDM_LEVEL,
428 .ani_cck_level = WMI_PDEV_PARAM_ANI_CCK_LEVEL,
429 .dyntxchain = WMI_PDEV_PARAM_DYNTXCHAIN,
430 .proxy_sta = WMI_PDEV_PARAM_PROXY_STA,
431 .idle_ps_config = WMI_PDEV_PARAM_IDLE_PS_CONFIG,
432 .power_gating_sleep = WMI_PDEV_PARAM_POWER_GATING_SLEEP,
433 .fast_channel_reset = WMI_PDEV_PARAM_UNSUPPORTED,
434 .burst_dur = WMI_PDEV_PARAM_UNSUPPORTED,
435 .burst_enable = WMI_PDEV_PARAM_UNSUPPORTED,
436};
437
438static struct wmi_pdev_param_map wmi_10x_pdev_param_map = {
439 .tx_chain_mask = WMI_10X_PDEV_PARAM_TX_CHAIN_MASK,
440 .rx_chain_mask = WMI_10X_PDEV_PARAM_RX_CHAIN_MASK,
441 .txpower_limit2g = WMI_10X_PDEV_PARAM_TXPOWER_LIMIT2G,
442 .txpower_limit5g = WMI_10X_PDEV_PARAM_TXPOWER_LIMIT5G,
443 .txpower_scale = WMI_10X_PDEV_PARAM_TXPOWER_SCALE,
444 .beacon_gen_mode = WMI_10X_PDEV_PARAM_BEACON_GEN_MODE,
445 .beacon_tx_mode = WMI_10X_PDEV_PARAM_BEACON_TX_MODE,
446 .resmgr_offchan_mode = WMI_10X_PDEV_PARAM_RESMGR_OFFCHAN_MODE,
447 .protection_mode = WMI_10X_PDEV_PARAM_PROTECTION_MODE,
448 .dynamic_bw = WMI_10X_PDEV_PARAM_DYNAMIC_BW,
449 .non_agg_sw_retry_th = WMI_10X_PDEV_PARAM_NON_AGG_SW_RETRY_TH,
450 .agg_sw_retry_th = WMI_10X_PDEV_PARAM_AGG_SW_RETRY_TH,
451 .sta_kickout_th = WMI_10X_PDEV_PARAM_STA_KICKOUT_TH,
452 .ac_aggrsize_scaling = WMI_10X_PDEV_PARAM_AC_AGGRSIZE_SCALING,
453 .ltr_enable = WMI_10X_PDEV_PARAM_LTR_ENABLE,
454 .ltr_ac_latency_be = WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BE,
455 .ltr_ac_latency_bk = WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BK,
456 .ltr_ac_latency_vi = WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VI,
457 .ltr_ac_latency_vo = WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VO,
458 .ltr_ac_latency_timeout = WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT,
459 .ltr_sleep_override = WMI_10X_PDEV_PARAM_LTR_SLEEP_OVERRIDE,
460 .ltr_rx_override = WMI_10X_PDEV_PARAM_LTR_RX_OVERRIDE,
461 .ltr_tx_activity_timeout = WMI_10X_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT,
462 .l1ss_enable = WMI_10X_PDEV_PARAM_L1SS_ENABLE,
463 .dsleep_enable = WMI_10X_PDEV_PARAM_DSLEEP_ENABLE,
464 .pcielp_txbuf_flush = WMI_PDEV_PARAM_UNSUPPORTED,
465 .pcielp_txbuf_watermark = WMI_PDEV_PARAM_UNSUPPORTED,
466 .pcielp_txbuf_tmo_en = WMI_PDEV_PARAM_UNSUPPORTED,
467 .pcielp_txbuf_tmo_value = WMI_PDEV_PARAM_UNSUPPORTED,
468 .pdev_stats_update_period = WMI_10X_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD,
469 .vdev_stats_update_period = WMI_10X_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD,
470 .peer_stats_update_period = WMI_10X_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD,
471 .bcnflt_stats_update_period =
472 WMI_10X_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD,
473 .pmf_qos = WMI_10X_PDEV_PARAM_PMF_QOS,
474 .arp_ac_override = WMI_PDEV_PARAM_UNSUPPORTED,
475 .arpdhcp_ac_override = WMI_10X_PDEV_PARAM_ARPDHCP_AC_OVERRIDE,
476 .dcs = WMI_10X_PDEV_PARAM_DCS,
477 .ani_enable = WMI_10X_PDEV_PARAM_ANI_ENABLE,
478 .ani_poll_period = WMI_10X_PDEV_PARAM_ANI_POLL_PERIOD,
479 .ani_listen_period = WMI_10X_PDEV_PARAM_ANI_LISTEN_PERIOD,
480 .ani_ofdm_level = WMI_10X_PDEV_PARAM_ANI_OFDM_LEVEL,
481 .ani_cck_level = WMI_10X_PDEV_PARAM_ANI_CCK_LEVEL,
482 .dyntxchain = WMI_10X_PDEV_PARAM_DYNTXCHAIN,
483 .proxy_sta = WMI_PDEV_PARAM_UNSUPPORTED,
484 .idle_ps_config = WMI_PDEV_PARAM_UNSUPPORTED,
485 .power_gating_sleep = WMI_PDEV_PARAM_UNSUPPORTED,
486 .fast_channel_reset = WMI_10X_PDEV_PARAM_FAST_CHANNEL_RESET,
487 .burst_dur = WMI_10X_PDEV_PARAM_BURST_DUR,
488 .burst_enable = WMI_10X_PDEV_PARAM_BURST_ENABLE,
489};
490
386int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) 491int ath10k_wmi_wait_for_service_ready(struct ath10k *ar)
387{ 492{
388 int ret; 493 int ret;
@@ -1870,10 +1975,12 @@ int ath10k_wmi_attach(struct ath10k *ar)
1870 ath10k_warn("Firmware 10.X is not yet supported\n"); 1975 ath10k_warn("Firmware 10.X is not yet supported\n");
1871 ar->wmi.cmd = &wmi_10x_cmd_map; 1976 ar->wmi.cmd = &wmi_10x_cmd_map;
1872 ar->wmi.vdev_param = &wmi_10x_vdev_param_map; 1977 ar->wmi.vdev_param = &wmi_10x_vdev_param_map;
1978 ar->wmi.pdev_param = &wmi_10x_pdev_param_map;
1873 ret = -ENOTSUPP; 1979 ret = -ENOTSUPP;
1874 } else { 1980 } else {
1875 ar->wmi.cmd = &wmi_cmd_map; 1981 ar->wmi.cmd = &wmi_cmd_map;
1876 ar->wmi.vdev_param = &wmi_vdev_param_map; 1982 ar->wmi.vdev_param = &wmi_vdev_param_map;
1983 ar->wmi.pdev_param = &wmi_pdev_param_map;
1877 ret = 0; 1984 ret = 0;
1878 } 1985 }
1879 1986
@@ -2009,12 +2116,16 @@ int ath10k_wmi_pdev_resume_target(struct ath10k *ar)
2009 return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_resume_cmdid); 2116 return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->pdev_resume_cmdid);
2010} 2117}
2011 2118
2012int ath10k_wmi_pdev_set_param(struct ath10k *ar, enum wmi_pdev_param id, 2119int ath10k_wmi_pdev_set_param(struct ath10k *ar, u32 id, u32 value)
2013 u32 value)
2014{ 2120{
2015 struct wmi_pdev_set_param_cmd *cmd; 2121 struct wmi_pdev_set_param_cmd *cmd;
2016 struct sk_buff *skb; 2122 struct sk_buff *skb;
2017 2123
2124 if (id == WMI_PDEV_PARAM_UNSUPPORTED) {
2125 ath10k_warn("pdev param %d not supported by firmware\n", id);
2126 return -EINVAL;
2127 }
2128
2018 skb = ath10k_wmi_alloc_skb(sizeof(*cmd)); 2129 skb = ath10k_wmi_alloc_skb(sizeof(*cmd));
2019 if (!skb) 2130 if (!skb)
2020 return -ENOMEM; 2131 return -ENOMEM;
diff --git a/drivers/net/wireless/ath/ath10k/wmi.h b/drivers/net/wireless/ath/ath10k/wmi.h
index 15185867f6e1..80ab2f0fbe50 100644
--- a/drivers/net/wireless/ath/ath10k/wmi.h
+++ b/drivers/net/wireless/ath/ath10k/wmi.h
@@ -2072,6 +2072,60 @@ struct wmi_csa_event {
2072#define VDEV_DEFAULT_STATS_UPDATE_PERIOD 500 2072#define VDEV_DEFAULT_STATS_UPDATE_PERIOD 500
2073#define PEER_DEFAULT_STATS_UPDATE_PERIOD 500 2073#define PEER_DEFAULT_STATS_UPDATE_PERIOD 500
2074 2074
2075struct wmi_pdev_param_map {
2076 u32 tx_chain_mask;
2077 u32 rx_chain_mask;
2078 u32 txpower_limit2g;
2079 u32 txpower_limit5g;
2080 u32 txpower_scale;
2081 u32 beacon_gen_mode;
2082 u32 beacon_tx_mode;
2083 u32 resmgr_offchan_mode;
2084 u32 protection_mode;
2085 u32 dynamic_bw;
2086 u32 non_agg_sw_retry_th;
2087 u32 agg_sw_retry_th;
2088 u32 sta_kickout_th;
2089 u32 ac_aggrsize_scaling;
2090 u32 ltr_enable;
2091 u32 ltr_ac_latency_be;
2092 u32 ltr_ac_latency_bk;
2093 u32 ltr_ac_latency_vi;
2094 u32 ltr_ac_latency_vo;
2095 u32 ltr_ac_latency_timeout;
2096 u32 ltr_sleep_override;
2097 u32 ltr_rx_override;
2098 u32 ltr_tx_activity_timeout;
2099 u32 l1ss_enable;
2100 u32 dsleep_enable;
2101 u32 pcielp_txbuf_flush;
2102 u32 pcielp_txbuf_watermark;
2103 u32 pcielp_txbuf_tmo_en;
2104 u32 pcielp_txbuf_tmo_value;
2105 u32 pdev_stats_update_period;
2106 u32 vdev_stats_update_period;
2107 u32 peer_stats_update_period;
2108 u32 bcnflt_stats_update_period;
2109 u32 pmf_qos;
2110 u32 arp_ac_override;
2111 u32 arpdhcp_ac_override;
2112 u32 dcs;
2113 u32 ani_enable;
2114 u32 ani_poll_period;
2115 u32 ani_listen_period;
2116 u32 ani_ofdm_level;
2117 u32 ani_cck_level;
2118 u32 dyntxchain;
2119 u32 proxy_sta;
2120 u32 idle_ps_config;
2121 u32 power_gating_sleep;
2122 u32 fast_channel_reset;
2123 u32 burst_dur;
2124 u32 burst_enable;
2125};
2126
2127#define WMI_PDEV_PARAM_UNSUPPORTED 0
2128
2075enum wmi_pdev_param { 2129enum wmi_pdev_param {
2076 /* TX chian mask */ 2130 /* TX chian mask */
2077 WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1, 2131 WMI_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
@@ -2171,6 +2225,97 @@ enum wmi_pdev_param {
2171 WMI_PDEV_PARAM_POWER_GATING_SLEEP, 2225 WMI_PDEV_PARAM_POWER_GATING_SLEEP,
2172}; 2226};
2173 2227
2228enum wmi_10x_pdev_param {
2229 /* TX chian mask */
2230 WMI_10X_PDEV_PARAM_TX_CHAIN_MASK = 0x1,
2231 /* RX chian mask */
2232 WMI_10X_PDEV_PARAM_RX_CHAIN_MASK,
2233 /* TX power limit for 2G Radio */
2234 WMI_10X_PDEV_PARAM_TXPOWER_LIMIT2G,
2235 /* TX power limit for 5G Radio */
2236 WMI_10X_PDEV_PARAM_TXPOWER_LIMIT5G,
2237 /* TX power scale */
2238 WMI_10X_PDEV_PARAM_TXPOWER_SCALE,
2239 /* Beacon generation mode . 0: host, 1: target */
2240 WMI_10X_PDEV_PARAM_BEACON_GEN_MODE,
2241 /* Beacon generation mode . 0: staggered 1: bursted */
2242 WMI_10X_PDEV_PARAM_BEACON_TX_MODE,
2243 /*
2244 * Resource manager off chan mode .
2245 * 0: turn off off chan mode. 1: turn on offchan mode
2246 */
2247 WMI_10X_PDEV_PARAM_RESMGR_OFFCHAN_MODE,
2248 /*
2249 * Protection mode:
2250 * 0: no protection 1:use CTS-to-self 2: use RTS/CTS
2251 */
2252 WMI_10X_PDEV_PARAM_PROTECTION_MODE,
2253 /* Dynamic bandwidth 0: disable 1: enable */
2254 WMI_10X_PDEV_PARAM_DYNAMIC_BW,
2255 /* Non aggregrate/ 11g sw retry threshold.0-disable */
2256 WMI_10X_PDEV_PARAM_NON_AGG_SW_RETRY_TH,
2257 /* aggregrate sw retry threshold. 0-disable*/
2258 WMI_10X_PDEV_PARAM_AGG_SW_RETRY_TH,
2259 /* Station kickout threshold (non of consecutive failures).0-disable */
2260 WMI_10X_PDEV_PARAM_STA_KICKOUT_TH,
2261 /* Aggerate size scaling configuration per AC */
2262 WMI_10X_PDEV_PARAM_AC_AGGRSIZE_SCALING,
2263 /* LTR enable */
2264 WMI_10X_PDEV_PARAM_LTR_ENABLE,
2265 /* LTR latency for BE, in us */
2266 WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BE,
2267 /* LTR latency for BK, in us */
2268 WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_BK,
2269 /* LTR latency for VI, in us */
2270 WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VI,
2271 /* LTR latency for VO, in us */
2272 WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_VO,
2273 /* LTR AC latency timeout, in ms */
2274 WMI_10X_PDEV_PARAM_LTR_AC_LATENCY_TIMEOUT,
2275 /* LTR platform latency override, in us */
2276 WMI_10X_PDEV_PARAM_LTR_SLEEP_OVERRIDE,
2277 /* LTR-RX override, in us */
2278 WMI_10X_PDEV_PARAM_LTR_RX_OVERRIDE,
2279 /* Tx activity timeout for LTR, in us */
2280 WMI_10X_PDEV_PARAM_LTR_TX_ACTIVITY_TIMEOUT,
2281 /* L1SS state machine enable */
2282 WMI_10X_PDEV_PARAM_L1SS_ENABLE,
2283 /* Deep sleep state machine enable */
2284 WMI_10X_PDEV_PARAM_DSLEEP_ENABLE,
2285 /* pdev level stats update period in ms */
2286 WMI_10X_PDEV_PARAM_PDEV_STATS_UPDATE_PERIOD,
2287 /* vdev level stats update period in ms */
2288 WMI_10X_PDEV_PARAM_VDEV_STATS_UPDATE_PERIOD,
2289 /* peer level stats update period in ms */
2290 WMI_10X_PDEV_PARAM_PEER_STATS_UPDATE_PERIOD,
2291 /* beacon filter status update period */
2292 WMI_10X_PDEV_PARAM_BCNFLT_STATS_UPDATE_PERIOD,
2293 /* QOS Mgmt frame protection MFP/PMF 0: disable, 1: enable */
2294 WMI_10X_PDEV_PARAM_PMF_QOS,
2295 /* Access category on which ARP and DHCP frames are sent */
2296 WMI_10X_PDEV_PARAM_ARPDHCP_AC_OVERRIDE,
2297 /* DCS configuration */
2298 WMI_10X_PDEV_PARAM_DCS,
2299 /* Enable/Disable ANI on target */
2300 WMI_10X_PDEV_PARAM_ANI_ENABLE,
2301 /* configure the ANI polling period */
2302 WMI_10X_PDEV_PARAM_ANI_POLL_PERIOD,
2303 /* configure the ANI listening period */
2304 WMI_10X_PDEV_PARAM_ANI_LISTEN_PERIOD,
2305 /* configure OFDM immunity level */
2306 WMI_10X_PDEV_PARAM_ANI_OFDM_LEVEL,
2307 /* configure CCK immunity level */
2308 WMI_10X_PDEV_PARAM_ANI_CCK_LEVEL,
2309 /* Enable/Disable CDD for 1x1 STAs in rate control module */
2310 WMI_10X_PDEV_PARAM_DYNTXCHAIN,
2311 /* Enable/Disable Fast channel reset*/
2312 WMI_10X_PDEV_PARAM_FAST_CHANNEL_RESET,
2313 /* Set Bursting DUR */
2314 WMI_10X_PDEV_PARAM_BURST_DUR,
2315 /* Set Bursting Enable*/
2316 WMI_10X_PDEV_PARAM_BURST_ENABLE,
2317};
2318
2174struct wmi_pdev_set_param_cmd { 2319struct wmi_pdev_set_param_cmd {
2175 __le32 param_id; 2320 __le32 param_id;
2176 __le32 param_value; 2321 __le32 param_value;
@@ -3797,8 +3942,7 @@ int ath10k_wmi_pdev_suspend_target(struct ath10k *ar);
3797int ath10k_wmi_pdev_resume_target(struct ath10k *ar); 3942int ath10k_wmi_pdev_resume_target(struct ath10k *ar);
3798int ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g, 3943int ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g,
3799 u16 rd5g, u16 ctl2g, u16 ctl5g); 3944 u16 rd5g, u16 ctl2g, u16 ctl5g);
3800int ath10k_wmi_pdev_set_param(struct ath10k *ar, enum wmi_pdev_param id, 3945int ath10k_wmi_pdev_set_param(struct ath10k *ar, u32 id, u32 value);
3801 u32 value);
3802int ath10k_wmi_cmd_init(struct ath10k *ar); 3946int ath10k_wmi_cmd_init(struct ath10k *ar);
3803int ath10k_wmi_start_scan(struct ath10k *ar, const struct wmi_start_scan_arg *); 3947int ath10k_wmi_start_scan(struct ath10k *ar, const struct wmi_start_scan_arg *);
3804void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *); 3948void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *);