提交 b6721577 编写于 作者: C coolsnowwolf

ath10k-ct: update version

上级 203f6ec6
include $(TOPDIR)/rules.mk
PKG_NAME:=ath10k-ct
PKG_RELEASE=1
PKG_RELEASE=3
PKG_LICENSE:=GPLv2
PKG_LICENSE_FILES:=
PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2018-12-20
PKG_SOURCE_VERSION:=118e16da8e82f2e028654f86e47f4c8e5bddccc8
PKG_MIRROR_HASH:=f84616d5c6c3f6c0aded40b821d9b54fd88b78737f534b37a6ed0c51db16ed06
PKG_SOURCE_DATE:=2019-02-28
PKG_SOURCE_VERSION:=9360f389234a58f742c6cb3f8eea5a419c7523f6
PKG_MIRROR_HASH:=7fa9ec0e298767b6dfaa9486e5f316cd03af82fc9d45066dbd80fca32a06b41f
# Build the 4.19 ath10k-ct driver version. Other options are "-4.16", or
# leave un-defined for 4.7 kernel. Probably this should match as closely as
......
......@@ -43,7 +43,7 @@ Origin: upstream, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
--- a/ath10k-4.13/core.c
+++ b/ath10k-4.13/core.c
@@ -891,6 +891,28 @@ static int ath10k_core_check_smbios(stru
@@ -893,6 +893,28 @@ static int ath10k_core_check_smbios(stru
return 0;
}
......@@ -72,7 +72,7 @@ Origin: upstream, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
static int ath10k_download_and_run_otp(struct ath10k *ar)
{
u32 result, address = ar->hw_params.patch_load_addr;
@@ -1530,19 +1552,19 @@ static int ath10k_core_create_board_name
@@ -1532,19 +1554,19 @@ static int ath10k_core_create_board_name
/* strlen(',variant=') + strlen(ar->id.bdf_ext) */
char variant[9 + ATH10K_SMBIOS_BDF_EXT_STR_LENGTH] = { 0 };
......@@ -98,7 +98,7 @@ Origin: upstream, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
scnprintf(name, name_len,
"bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x%s",
ath10k_bus_str(ar->hif.bus),
@@ -2975,7 +2997,11 @@ static int ath10k_core_probe_fw(struct a
@@ -2977,7 +2999,11 @@ static int ath10k_core_probe_fw(struct a
ret = ath10k_core_check_smbios(ar);
if (ret)
......
......@@ -97,7 +97,7 @@
ATH10K_DFS_STAT_INC(ar, pulses_total);
--- a/ath10k-4.13/wmi.c
+++ b/ath10k-4.13/wmi.c
@@ -4031,7 +4031,7 @@ static void ath10k_dfs_radar_report(stru
@@ -4030,7 +4030,7 @@ static void ath10k_dfs_radar_report(stru
ATH10K_DFS_STAT_INC(ar, pulses_detected);
......@@ -108,7 +108,7 @@
return;
--- a/ath10k-4.16/wmi.c
+++ b/ath10k-4.16/wmi.c
@@ -4065,7 +4065,7 @@ static void ath10k_dfs_radar_report(stru
@@ -4064,7 +4064,7 @@ static void ath10k_dfs_radar_report(stru
ATH10K_DFS_STAT_INC(ar, pulses_detected);
......
......@@ -50,7 +50,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
--- a/ath10k-4.13/core.c
+++ b/ath10k-4.13/core.c
@@ -1427,14 +1427,61 @@ out:
@@ -1429,14 +1429,61 @@ out:
return ret;
}
......@@ -115,7 +115,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
ar->normal_mode_fw.board = ath10k_fetch_fw_file(ar,
ar->hw_params.fw.dir,
@@ -1472,73 +1519,28 @@ static int ath10k_core_fetch_board_data_
@@ -1474,73 +1521,28 @@ static int ath10k_core_fetch_board_data_
data += magic_len;
len -= magic_len;
......@@ -198,7 +198,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
return 0;
err:
@@ -1547,12 +1549,12 @@ err:
@@ -1549,12 +1551,12 @@ err:
}
static int ath10k_core_create_board_name(struct ath10k *ar, char *name,
......@@ -213,7 +213,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
scnprintf(variant, sizeof(variant), ",variant=%s",
ar->id.bdf_ext);
@@ -1578,21 +1580,31 @@ out:
@@ -1580,21 +1582,31 @@ out:
static int ath10k_core_fetch_board_file(struct ath10k *ar)
{
......@@ -249,7 +249,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
goto success;
--- a/ath10k-4.16/core.c
+++ b/ath10k-4.16/core.c
@@ -1560,14 +1560,61 @@ out:
@@ -1561,14 +1561,61 @@ out:
return ret;
}
......@@ -314,7 +314,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
ar->normal_mode_fw.board = ath10k_fetch_fw_file(ar,
ar->hw_params.fw.dir,
@@ -1605,73 +1652,28 @@ static int ath10k_core_fetch_board_data_
@@ -1606,73 +1653,28 @@ static int ath10k_core_fetch_board_data_
data += magic_len;
len -= magic_len;
......@@ -397,7 +397,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
return 0;
err:
@@ -1680,12 +1682,12 @@ err:
@@ -1681,12 +1683,12 @@ err:
}
static int ath10k_core_create_board_name(struct ath10k *ar, char *name,
......@@ -412,7 +412,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
scnprintf(variant, sizeof(variant), ",variant=%s",
ar->id.bdf_ext);
@@ -1711,21 +1713,31 @@ out:
@@ -1712,21 +1714,31 @@ out:
static int ath10k_core_fetch_board_file(struct ath10k *ar)
{
......
From: Sriram R <srirrama@codeaurora.org>
Date: Mon, 10 Sep 2018 11:09:40 +0530
Subject: [PATCH] ath10k: add support for configuring management packet rate
By default the firmware uses 1Mbps and 6Mbps rate for management packets
in 2G and 5G bands respectively. But when the user selects different
basic rates from the userspace, we need to send the management
packets at the lowest basic rate selected by the user.
This change makes use of WMI_VDEV_PARAM_MGMT_RATE param for configuring the
management packets rate to the firmware.
Chipsets Tested : QCA988X, QCA9887, QCA9984
FW Tested : 10.2.4-1.0-41, 10.4-3.6.104
Signed-off-by: Sriram R <srirrama@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f279294e9ee22a8f306fdc8e4181cf555e6f0f70
---
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -157,6 +157,22 @@ u8 ath10k_mac_bitrate_to_idx(const struc
return 0;
}
+static int ath10k_mac_get_rate_hw_value(int bitrate)
+{
+ int i;
+ u8 hw_value_prefix = 0;
+
+ if (ath10k_mac_bitrate_is_cck(bitrate))
+ hw_value_prefix = WMI_RATE_PREAMBLE_CCK << 6;
+
+ for (i = 0; i < sizeof(ath10k_rates); i++) {
+ if (ath10k_rates[i].bitrate == bitrate)
+ return hw_value_prefix | ath10k_rates[i].hw_value;
+ }
+
+ return -EINVAL;
+}
+
static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
{
switch ((mcs_map >> (2 * nss)) & 0x3) {
@@ -6262,9 +6278,10 @@ static void ath10k_bss_info_changed(stru
struct cfg80211_chan_def def;
u32 vdev_param, pdev_param, slottime, preamble;
u16 bitrate, hw_value;
- u8 rate;
- int rateidx, ret = 0;
+ u8 rate, basic_rate_idx;
+ int rateidx, ret = 0, hw_rate_code;
enum nl80211_band band;
+ const struct ieee80211_supported_band *sband;
mutex_lock(&ar->conf_mutex);
@@ -6470,6 +6487,30 @@ static void ath10k_bss_info_changed(stru
arvif->vdev_id, ret);
}
+ if (changed & BSS_CHANGED_BASIC_RATES) {
+ if (WARN_ON(ath10k_mac_vif_chan(vif, &def))) {
+ mutex_unlock(&ar->conf_mutex);
+ return;
+ }
+
+ sband = ar->hw->wiphy->bands[def.chan->band];
+ basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1;
+ bitrate = sband->bitrates[basic_rate_idx].bitrate;
+
+ hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate);
+ if (hw_rate_code < 0) {
+ ath10k_warn(ar, "bitrate not supported %d\n", bitrate);
+ mutex_unlock(&ar->conf_mutex);
+ return;
+ }
+
+ vdev_param = ar->wmi.vdev_param->mgmt_rate;
+ ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
+ hw_rate_code);
+ if (ret)
+ ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret);
+ }
+
mutex_unlock(&ar->conf_mutex);
}
From: Sriram R <srirrama@codeaurora.org>
Date: Wed, 3 Oct 2018 08:43:50 +0530
Subject: [PATCH] ath10k: fix possible out of bound access of ath10k_rates array
While using 'ath10k_mac_get_rate_hw_value()' to obtain the hw value
from the passed bitrate, there is a chance of out of bound array access
when wrong bitrate is passed. This is fixed by comparing the bitrates
within the correct size of the ath10k_rates array.
Fixes commit f279294e9ee2 ("ath10k: add support for configuring management
packet rate"). Also correction made to some indents used in the above commit.
Signed-off-by: Sriram R <srirrama@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e141eea7dd8525dd1ef7a925459e455b4d307f
---
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -165,7 +165,7 @@ static int ath10k_mac_get_rate_hw_value(
if (ath10k_mac_bitrate_is_cck(bitrate))
hw_value_prefix = WMI_RATE_PREAMBLE_CCK << 6;
- for (i = 0; i < sizeof(ath10k_rates); i++) {
+ for (i = 0; i < ARRAY_SIZE(ath10k_rates); i++) {
if (ath10k_rates[i].bitrate == bitrate)
return hw_value_prefix | ath10k_rates[i].hw_value;
}
@@ -6493,22 +6493,22 @@ static void ath10k_bss_info_changed(stru
return;
}
- sband = ar->hw->wiphy->bands[def.chan->band];
- basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1;
- bitrate = sband->bitrates[basic_rate_idx].bitrate;
-
- hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate);
- if (hw_rate_code < 0) {
- ath10k_warn(ar, "bitrate not supported %d\n", bitrate);
- mutex_unlock(&ar->conf_mutex);
- return;
- }
+ sband = ar->hw->wiphy->bands[def.chan->band];
+ basic_rate_idx = ffs(vif->bss_conf.basic_rates) - 1;
+ bitrate = sband->bitrates[basic_rate_idx].bitrate;
+
+ hw_rate_code = ath10k_mac_get_rate_hw_value(bitrate);
+ if (hw_rate_code < 0) {
+ ath10k_warn(ar, "bitrate not supported %d\n", bitrate);
+ mutex_unlock(&ar->conf_mutex);
+ return;
+ }
- vdev_param = ar->wmi.vdev_param->mgmt_rate;
- ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
- hw_rate_code);
- if (ret)
- ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret);
+ vdev_param = ar->wmi.vdev_param->mgmt_rate;
+ ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
+ hw_rate_code);
+ if (ret)
+ ath10k_warn(ar, "failed to set mgmt tx rate %d\n", ret);
}
mutex_unlock(&ar->conf_mutex);
From: Pradeep kumar Chitrapu <pradeepc@codeaurora.org>
Date: Mon, 10 Dec 2018 20:56:11 -0800
Subject: ath10k: fix incorrect multicast/broadcast rate setting
Invalid rate code is sent to firmware when multicast rate value of 0 is
sent to driver indicating disabled case, causing broken mesh path.
so fix that.
Tested on QCA9984 with firmware 10.4-3.6.1-00827
Fixes: cd93b83ad92 ("ath10k: support for multicast rate control")
Co-developed-by: Zhi Chen <zhichen@codeaurora.org>
Signed-off-by: Zhi Chen <zhichen@codeaurora.org>
Signed-off-by: Pradeep Kumar Chitrapu <pradeepc@codeaurora.org>
Origin: other, https://patchwork.kernel.org/patch/10723033/
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -6278,8 +6278,8 @@ static void ath10k_bss_info_changed(stru
struct cfg80211_chan_def def;
u32 vdev_param, pdev_param, slottime, preamble;
u16 bitrate, hw_value;
- u8 rate, basic_rate_idx;
- int rateidx, ret = 0, hw_rate_code;
+ u8 rate, basic_rate_idx, rateidx;
+ int ret = 0, hw_rate_code, mcast_rate;
enum nl80211_band band;
const struct ieee80211_supported_band *sband;
@@ -6452,7 +6452,11 @@ static void ath10k_bss_info_changed(stru
if (changed & BSS_CHANGED_MCAST_RATE &&
!WARN_ON(ath10k_mac_vif_chan(arvif->vif, &def))) {
band = def.chan->band;
- rateidx = vif->bss_conf.mcast_rate[band] - 1;
+ mcast_rate = vif->bss_conf.mcast_rate[band];
+ if (mcast_rate > 0)
+ rateidx = mcast_rate - 1;
+ else
+ rateidx = ffs(vif->bss_conf.basic_rates) - 1;
if (ar->phy_capability & WHAL_WLAN_11A_CAPABILITY)
rateidx += ATH10K_MAC_FIRST_OFDM_RATE_IDX;
From: Sven Eckelmann <sven@narfation.org>
Date: Tue, 26 Feb 2019 08:06:35 +0100
Subject: ath10k-ct: apply mac80211 rates to ath10k-ct rate state
The rates from mac80211 have to be copied to the state of ath10k-ct or
otherwise the ath10k_check_apply_special_rates function overwrites
them again with some default values. This breaks for example the
mcast_rate set for a wifi-iface.
Signed-off-by: Sven Eckelmann <sven@narfation.org>
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -6474,6 +6474,7 @@ static void ath10k_bss_info_changed(stru
"mac vdev %d mcast_rate %x\n",
arvif->vdev_id, rate);
+ arvif->mcast_rate[band] = rate;
vdev_param = ar->wmi.vdev_param->mcast_data_rate;
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
vdev_param, rate);
@@ -6482,6 +6483,7 @@ static void ath10k_bss_info_changed(stru
"failed to set mcast rate on vdev %i: %d\n",
arvif->vdev_id, ret);
+ arvif->bcast_rate[band] = rate;
vdev_param = ar->wmi.vdev_param->bcast_data_rate;
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
vdev_param, rate);
@@ -6508,6 +6510,7 @@ static void ath10k_bss_info_changed(stru
return;
}
+ arvif->mgt_rate[def.chan->band] = hw_rate_code;
vdev_param = ar->wmi.vdev_param->mgmt_rate;
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
hw_rate_code);
......@@ -161,7 +161,7 @@ v13:
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
@@ -3040,6 +3046,10 @@ int ath10k_core_start(struct ath10k *ar,
@@ -3041,6 +3047,10 @@ int ath10k_core_start(struct ath10k *ar,
ar->eeprom_overrides.rc_txbf_probe);
}
......@@ -172,7 +172,7 @@ v13:
return 0;
err_hif_stop:
@@ -3286,9 +3296,18 @@ static void ath10k_core_register_work(st
@@ -3287,9 +3297,18 @@ static void ath10k_core_register_work(st
goto err_spectral_destroy;
}
......@@ -191,7 +191,7 @@ v13:
err_spectral_destroy:
ath10k_spectral_destroy(ar);
err_debug_destroy:
@@ -3346,6 +3365,8 @@ void ath10k_core_unregister(struct ath10
@@ -3347,6 +3366,8 @@ void ath10k_core_unregister(struct ath10
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
return;
......@@ -210,7 +210,7 @@ v13:
#include "htt.h"
#include "htc.h"
@@ -1245,6 +1246,13 @@ struct ath10k {
@@ -1251,6 +1252,13 @@ struct ath10k {
} testmode;
struct {
......@@ -406,7 +406,7 @@ v13:
};
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
@@ -975,6 +978,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
@@ -983,6 +986,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
}
......@@ -455,7 +455,7 @@ v13:
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
--- a/ath10k-4.16/wmi.c
+++ b/ath10k-4.16/wmi.c
@@ -7325,6 +7325,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
@@ -7362,6 +7362,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
return skb;
}
......@@ -505,7 +505,7 @@ v13:
static struct sk_buff *
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_ps_mode psmode)
@@ -8940,6 +8983,9 @@ static const struct wmi_ops wmi_ops = {
@@ -8977,6 +9020,9 @@ static const struct wmi_ops wmi_ops = {
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
......@@ -515,7 +515,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9010,6 +9056,8 @@ static const struct wmi_ops wmi_10_1_ops
@@ -9047,6 +9093,8 @@ static const struct wmi_ops wmi_10_1_ops
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
......@@ -524,7 +524,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9087,6 +9135,8 @@ static const struct wmi_ops wmi_10_2_ops
@@ -9124,6 +9172,8 @@ static const struct wmi_ops wmi_10_2_ops
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
......@@ -533,7 +533,7 @@ v13:
/* .gen_pdev_enable_adaptive_cca not implemented */
};
@@ -9157,6 +9207,8 @@ static const struct wmi_ops wmi_10_2_4_o
@@ -9194,6 +9244,8 @@ static const struct wmi_ops wmi_10_2_4_o
.gen_pdev_enable_adaptive_cca =
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
......@@ -542,7 +542,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9233,6 +9285,8 @@ static const struct wmi_ops wmi_10_4_ops
@@ -9270,6 +9322,8 @@ static const struct wmi_ops wmi_10_4_ops
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
.gen_echo = ath10k_wmi_op_gen_echo,
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
......@@ -553,7 +553,7 @@ v13:
int ath10k_wmi_attach(struct ath10k *ar)
--- a/ath10k-4.16/wmi.h
+++ b/ath10k-4.16/wmi.h
@@ -3000,6 +3000,41 @@ enum wmi_10_4_feature_mask {
@@ -3004,6 +3004,41 @@ enum wmi_10_4_feature_mask {
};
......@@ -674,7 +674,7 @@ v13:
.patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR,
.uart_pin = 7,
.cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH,
@@ -3102,6 +3108,10 @@ int ath10k_core_start(struct ath10k *ar,
@@ -3103,6 +3109,10 @@ int ath10k_core_start(struct ath10k *ar,
ar->eeprom_overrides.rc_txbf_probe);
}
......@@ -685,7 +685,7 @@ v13:
return 0;
err_hif_stop:
@@ -3356,9 +3366,18 @@ static void ath10k_core_register_work(st
@@ -3357,9 +3367,18 @@ static void ath10k_core_register_work(st
goto err_spectral_destroy;
}
......@@ -704,7 +704,7 @@ v13:
err_spectral_destroy:
ath10k_spectral_destroy(ar);
err_debug_destroy:
@@ -3416,6 +3435,8 @@ void ath10k_core_unregister(struct ath10
@@ -3417,6 +3436,8 @@ void ath10k_core_unregister(struct ath10
if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags))
return;
......@@ -723,7 +723,7 @@ v13:
#include "htt.h"
#include "htc.h"
@@ -1106,7 +1107,6 @@ struct ath10k {
@@ -1113,7 +1114,6 @@ struct ath10k {
u32 low_5ghz_chan;
u32 high_5ghz_chan;
bool ani_enabled;
......@@ -731,7 +731,7 @@ v13:
bool p2p;
bool ct_all_pkts_htt; /* CT firmware only: native-wifi for all pkts */
@@ -1355,6 +1355,13 @@ struct ath10k {
@@ -1362,6 +1362,13 @@ struct ath10k {
} testmode;
struct {
......@@ -928,7 +928,7 @@ v13:
};
int ath10k_wmi_cmd_send(struct ath10k *ar, struct sk_buff *skb, u32 cmd_id);
@@ -1071,6 +1074,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
@@ -1079,6 +1082,35 @@ ath10k_wmi_force_fw_hang(struct ath10k *
return ath10k_wmi_cmd_send(ar, skb, ar->wmi.cmd->force_fw_hang_cmdid);
}
......@@ -977,7 +977,7 @@ v13:
static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = {
--- a/ath10k-4.19/wmi.c
+++ b/ath10k-4.19/wmi.c
@@ -7844,6 +7844,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
@@ -7881,6 +7881,49 @@ ath10k_wmi_op_gen_peer_set_param(struct
return skb;
}
......@@ -1027,7 +1027,7 @@ v13:
static struct sk_buff *
ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id,
enum wmi_sta_ps_mode psmode)
@@ -9568,6 +9611,9 @@ static const struct wmi_ops wmi_ops = {
@@ -9605,6 +9648,9 @@ static const struct wmi_ops wmi_ops = {
.fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
......@@ -1037,7 +1037,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9638,6 +9684,8 @@ static const struct wmi_ops wmi_10_1_ops
@@ -9675,6 +9721,8 @@ static const struct wmi_ops wmi_10_1_ops
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
.gen_echo = ath10k_wmi_op_gen_echo,
......@@ -1046,7 +1046,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9715,6 +9763,8 @@ static const struct wmi_ops wmi_10_2_ops
@@ -9752,6 +9800,8 @@ static const struct wmi_ops wmi_10_2_ops
.gen_delba_send = ath10k_wmi_op_gen_delba_send,
.fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill,
.get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype,
......@@ -1055,7 +1055,7 @@ v13:
/* .gen_pdev_enable_adaptive_cca not implemented */
};
@@ -9785,6 +9835,8 @@ static const struct wmi_ops wmi_10_2_4_o
@@ -9822,6 +9872,8 @@ static const struct wmi_ops wmi_10_2_4_o
.gen_pdev_enable_adaptive_cca =
ath10k_wmi_op_gen_pdev_enable_adaptive_cca,
.get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype,
......@@ -1064,7 +1064,7 @@ v13:
/* .gen_bcn_tmpl not implemented */
/* .gen_prb_tmpl not implemented */
/* .gen_p2p_go_bcn_ie not implemented */
@@ -9865,6 +9917,8 @@ static const struct wmi_ops wmi_10_4_ops
@@ -9902,6 +9954,8 @@ static const struct wmi_ops wmi_10_4_ops
.gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info,
.gen_echo = ath10k_wmi_op_gen_echo,
.gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config,
......@@ -1075,7 +1075,7 @@ v13:
int ath10k_wmi_attach(struct ath10k *ar)
--- a/ath10k-4.19/wmi.h
+++ b/ath10k-4.19/wmi.h
@@ -3038,6 +3038,41 @@ enum wmi_10_4_feature_mask {
@@ -3040,6 +3040,41 @@ enum wmi_10_4_feature_mask {
};
......
......@@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
--- a/ath10k-4.16/core.h
+++ b/ath10k-4.16/core.h
@@ -1336,6 +1336,10 @@ struct ath10k {
@@ -1342,6 +1342,10 @@ struct ath10k {
u8 csi_data[4096];
u16 csi_data_len;
......@@ -42,7 +42,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
if (ret)
--- a/ath10k-4.16/mac.c
+++ b/ath10k-4.16/mac.c
@@ -9624,7 +9624,7 @@ int ath10k_mac_register(struct ath10k *a
@@ -9638,7 +9638,7 @@ int ath10k_mac_register(struct ath10k *a
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
#ifdef CPTCFG_MAC80211_LEDS
......@@ -53,7 +53,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
#endif
--- a/ath10k-4.19/core.h
+++ b/ath10k-4.19/core.h
@@ -1452,6 +1452,10 @@ struct ath10k {
@@ -1459,6 +1459,10 @@ struct ath10k {
u8 csi_data[4096];
u16 csi_data_len;
......@@ -79,7 +79,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
if (ret)
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -9775,7 +9775,7 @@ int ath10k_mac_register(struct ath10k *a
@@ -9837,7 +9837,7 @@ int ath10k_mac_register(struct ath10k *a
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
#ifdef CPTCFG_MAC80211_LEDS
......
From bbf0a8af2261bc7ae39b227ff6a1e9f45a008c27 Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date: Mon, 30 Jul 2018 17:31:41 +0200
Subject: [PATCH] ath10k: Limit available channels via DT ieee80211-freq-limit
Tri-band devices (1x 2.4GHz + 2x 5GHz) often incorporate special filters in
the RX and TX path. These filtered channel can in theory still be used by
the hardware but the signal strength is reduced so much that it makes no
sense.
There is already a DT property to limit the available channels but ath10k
has to manually call this functionality to limit the currrently set wiphy
channels further.
Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
Forwarded: https://patchwork.kernel.org/patch/10549245/
---
drivers/net/wireless/ath/ath10k/mac.c | 2 ++
1 file changed, 2 insertions(+)
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -18,6 +18,7 @@
#include "mac.h"
+#include <net/cfg80211.h>
#include <net/mac80211.h>
#include <linux/etherdevice.h>
#include <linux/acpi.h>
@@ -8390,6 +8391,7 @@ int ath10k_mac_register(struct ath10k *a
ar->hw->wiphy->bands[NL80211_BAND_5GHZ] = band;
}
+ wiphy_read_of_freq_limits(ar->hw->wiphy);
ath10k_mac_setup_ht_vht_cap(ar);
ar->hw->wiphy->interface_modes =
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册