diff options
author | Bartosz Markowski <bartosz.markowski@tieto.com> | 2013-09-26 11:47:16 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2013-09-27 07:58:15 -0400 |
commit | 226a339ba8f3c53914e640d250feaf4321cfcd04 (patch) | |
tree | fd8e937dbe7a1109b4ce485540037c7bc98068e4 /drivers | |
parent | 6d1506e788ecf3c423f275036d37a40d1416db42 (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.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/mac.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.c | 115 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath10k/wmi.h | 148 |
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 | ||
386 | static 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 | |||
438 | static 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 | |||
386 | int ath10k_wmi_wait_for_service_ready(struct ath10k *ar) | 491 | int 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 | ||
2012 | int ath10k_wmi_pdev_set_param(struct ath10k *ar, enum wmi_pdev_param id, | 2119 | int 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 | ||
2075 | struct 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 | |||
2075 | enum wmi_pdev_param { | 2129 | enum 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 | ||
2228 | enum 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 | |||
2174 | struct wmi_pdev_set_param_cmd { | 2319 | struct 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); | |||
3797 | int ath10k_wmi_pdev_resume_target(struct ath10k *ar); | 3942 | int ath10k_wmi_pdev_resume_target(struct ath10k *ar); |
3798 | int ath10k_wmi_pdev_set_regdomain(struct ath10k *ar, u16 rd, u16 rd2g, | 3943 | int 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); |
3800 | int ath10k_wmi_pdev_set_param(struct ath10k *ar, enum wmi_pdev_param id, | 3945 | int ath10k_wmi_pdev_set_param(struct ath10k *ar, u32 id, u32 value); |
3801 | u32 value); | ||
3802 | int ath10k_wmi_cmd_init(struct ath10k *ar); | 3946 | int ath10k_wmi_cmd_init(struct ath10k *ar); |
3803 | int ath10k_wmi_start_scan(struct ath10k *ar, const struct wmi_start_scan_arg *); | 3947 | int ath10k_wmi_start_scan(struct ath10k *ar, const struct wmi_start_scan_arg *); |
3804 | void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *); | 3948 | void ath10k_wmi_start_scan_init(struct ath10k *ar, struct wmi_start_scan_arg *); |