ath10k-ct: Update to 2019-02-28

9360f389234a ath10k: Support up to 24 vAP per radio, fix DMA bug in wave-1.
9cbf8d430974 ath10k-ct: Add 4.20 driver, SGI support for fixed-rate tx.

Runtime tested on: ipq806x

Signed-off-by: Michael Yartys <michael.yartys@gmail.com>
v19.07.3_mercusys_ac12_duma
Michael Yartys 5 years ago committed by Christian Lamparter
parent 33727ecea5
commit 5c83f27ac5

@ -8,9 +8,9 @@ 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)
{

@ -43,7 +43,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
static int ath10k_mac_get_max_vht_mcs_map(u16 mcs_map, int nss)
{
switch ((mcs_map >> (2 * nss)) & 0x3) {
@@ -6248,9 +6264,10 @@ static void ath10k_bss_info_changed(stru
@@ -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;
@ -56,7 +56,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
mutex_lock(&ar->conf_mutex);
@@ -6456,6 +6473,30 @@ static void ath10k_bss_info_changed(stru
@@ -6470,6 +6487,30 @@ static void ath10k_bss_info_changed(stru
arvif->vdev_id, ret);
}

@ -26,7 +26,7 @@ Origin: backport, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
if (ath10k_rates[i].bitrate == bitrate)
return hw_value_prefix | ath10k_rates[i].hw_value;
}
@@ -6479,22 +6479,22 @@ static void ath10k_bss_info_changed(stru
@@ -6493,22 +6493,22 @@ static void ath10k_bss_info_changed(stru
return;
}

@ -17,7 +17,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -6264,8 +6264,8 @@ static void ath10k_bss_info_changed(stru
@@ -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;
@ -28,7 +28,7 @@ Origin: other, https://patchwork.kernel.org/patch/10723033/
enum nl80211_band band;
const struct ieee80211_supported_band *sband;
@@ -6438,7 +6438,11 @@ static void ath10k_bss_info_changed(stru
@@ -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;

@ -11,7 +11,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
--- a/ath10k-4.19/mac.c
+++ b/ath10k-4.19/mac.c
@@ -6460,6 +6460,7 @@ static void ath10k_bss_info_changed(stru
@@ -6474,6 +6474,7 @@ static void ath10k_bss_info_changed(stru
"mac vdev %d mcast_rate %x\n",
arvif->vdev_id, rate);
@ -19,7 +19,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
vdev_param = ar->wmi.vdev_param->mcast_data_rate;
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
vdev_param, rate);
@@ -6468,6 +6469,7 @@ static void ath10k_bss_info_changed(stru
@@ -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);
@ -27,7 +27,7 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
vdev_param = ar->wmi.vdev_param->bcast_data_rate;
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id,
vdev_param, rate);
@@ -6494,6 +6496,7 @@ static void ath10k_bss_info_changed(stru
@@ -6508,6 +6510,7 @@ static void ath10k_bss_info_changed(stru
return;
}

@ -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
@@ -9823,7 +9823,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

Loading…
Cancel
Save