mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
ath10k-ct: bump to 5.4 (#4165)
This commit is contained in:
parent
7d597c5347
commit
b344bfb5d9
@ -64,92 +64,92 @@ define Download/ct-firmware-htt
|
|||||||
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
|
URL_FILE:=$($(1)_FIRMWARE_FILE_CT_HTT)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.015
|
QCA988X_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017
|
||||||
define Download/ath10k-firmware-qca988x-ct
|
define Download/ath10k-firmware-qca988x-ct
|
||||||
$(call Download/ct-firmware,QCA988X,)
|
$(call Download/ct-firmware,QCA988X,)
|
||||||
HASH:=a3a760d0d72707feffa496b6d2266bd9195f09806553b36420b60c0f12b8b87e
|
HASH:=2f0bf766e400a4c5726e77b128eb8c141ebaa778526fe2c7c5083f3b17659dbf
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca988x-ct))
|
$(eval $(call Download,ath10k-firmware-qca988x-ct))
|
||||||
|
|
||||||
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.015
|
QCA988X_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017
|
||||||
define Download/ath10k-firmware-qca988x-ct-htt
|
define Download/ath10k-firmware-qca988x-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA988X,)
|
$(call Download/ct-firmware-htt,QCA988X,)
|
||||||
HASH:=3114a54103d2b492fa1ef903769721f59953c829020d62502a1ec411ab4146d5
|
HASH:=5e4285d5c6eee159a25ca14c6ce26022c32380bd7bafaedfc0c5de1510119007
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca988x-ct-htt))
|
||||||
|
|
||||||
|
|
||||||
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.015
|
QCA9887_FIRMWARE_FILE_CT:=firmware-2-ct-full-community-22.bin.lede.017
|
||||||
define Download/ath10k-firmware-qca9887-ct
|
define Download/ath10k-firmware-qca9887-ct
|
||||||
$(call Download/ct-firmware,QCA9887,ath10k-9887)
|
$(call Download/ct-firmware,QCA9887,ath10k-9887)
|
||||||
HASH:=71e8b76dfd7c786d2f57bb7df207dcd13a91d3b492cfbd28916f084d0d1bb5e7
|
HASH:=4fa30e0e1972ca3b06225a731df0f93a1b73ac67fea5bf54bb55dea3bbc0da6a
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9887-ct))
|
$(eval $(call Download,ath10k-firmware-qca9887-ct))
|
||||||
|
|
||||||
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.015
|
QCA9887_FIRMWARE_FILE_CT_HTT:=firmware-2-ct-full-htt-mgt-community-22.bin.lede.017
|
||||||
define Download/ath10k-firmware-qca9887-ct-htt
|
define Download/ath10k-firmware-qca9887-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
|
$(call Download/ct-firmware-htt,QCA9887,ath10k-9887)
|
||||||
HASH:=b085e5d2239727b72bc647a76864431b8ac48438e6a33b1d55edc2222468f6ff
|
HASH:=dc681b6b1e45956e7c2e418ab05eee5c943d13e775209196d9bd931ff6493935
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca9887-ct-htt))
|
||||||
|
|
||||||
|
|
||||||
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
QCA99X0_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca99x0-ct
|
define Download/ath10k-firmware-qca99x0-ct
|
||||||
$(call Download/ct-firmware,QCA99X0,ath10k-10-4b)
|
$(call Download/ct-firmware,QCA99X0,ath10k-10-4b)
|
||||||
HASH:=edebe2f6f169cdd05c81a8a78156fb3426a66f415e7946af2ae4b7310fca5fe3
|
HASH:=289ea845d4bbae6f36b3af2a13a5eaa07097f52d10f7b7306cfc9e2dd394f889
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
|
$(eval $(call Download,ath10k-firmware-qca99x0-ct))
|
||||||
|
|
||||||
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
QCA99X0_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca99x0-ct-htt
|
define Download/ath10k-firmware-qca99x0-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
|
$(call Download/ct-firmware-htt,QCA99X0,ath10k-10-4b)
|
||||||
HASH:=1ef67fb07da9082886e4dd554dfc19256e10b500faf9e4b2a5774d0238130bae
|
HASH:=adedcd3d379a910bc3a5257d75f8970e11319f4cd9c1b34440d35821602a8b9c
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca99x0-ct-htt))
|
||||||
|
|
||||||
|
|
||||||
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
QCA9984_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca9984-ct
|
define Download/ath10k-firmware-qca9984-ct
|
||||||
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b)
|
$(call Download/ct-firmware,QCA9984,ath10k-9984-10-4b)
|
||||||
HASH:=c2f04da3285aad37baef9c37c9905a31927175dd234cd4378fd56c106e5c9379
|
HASH:=8175be5b3946bddc042be018ff7713e67b41b59374ef4cdd183185b59274c91a
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9984-ct))
|
$(eval $(call Download,ath10k-firmware-qca9984-ct))
|
||||||
|
|
||||||
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
QCA9984_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca9984-ct-htt
|
define Download/ath10k-firmware-qca9984-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
|
$(call Download/ct-firmware-htt,QCA9984,ath10k-9984-10-4b)
|
||||||
HASH:=0c9ede1036750d68885e6481fa84f3cb72192b8440b47719344f7327a030f05d
|
HASH:=eb8b894cfe0d1aaa87f130bb7fd1815ef07b951c14df8a2ceaeb780df8f640e0
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca9984-ct-htt))
|
||||||
|
|
||||||
|
|
||||||
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
QCA4019_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca4019-ct
|
define Download/ath10k-firmware-qca4019-ct
|
||||||
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b)
|
$(call Download/ct-firmware,QCA4019,ath10k-4019-10-4b)
|
||||||
HASH:=1acbb7e7a6300091715a3dfe1b248c7833734961de52cc3465c1ed231a4d84f1
|
HASH:=29e9f662c4cd287213877abfbb90fbabb5e32dd3710d3ade82aa94a0921972ae
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca4019-ct))
|
$(eval $(call Download,ath10k-firmware-qca4019-ct))
|
||||||
|
|
||||||
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
QCA4019_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca4019-ct-htt
|
define Download/ath10k-firmware-qca4019-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
|
$(call Download/ct-firmware-htt,QCA4019,ath10k-4019-10-4b)
|
||||||
HASH:=1065e4d3e55da84ec9e69268a4c5dba55ea33827c48a7c14bb8f0c167eb11b4c
|
HASH:=559c911f23856b1d3d864ce714d1bef7262bf6638e93e057ecf8d5dba48ca1e6
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca4019-ct-htt))
|
||||||
|
|
||||||
|
|
||||||
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.015
|
QCA9888_FIRMWARE_FILE_CT:=firmware-5-ct-full-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca9888-ct
|
define Download/ath10k-firmware-qca9888-ct
|
||||||
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b)
|
$(call Download/ct-firmware,QCA9888,ath10k-9888-10-4b)
|
||||||
HASH:=559ebd16872a8b43443c51bb4b7d021e5b75e65893d333d9393f3f6012f4ac79
|
HASH:=b295880a8b08ec2680d85daaf5f20232a0e73d9cc579bf3efd7ffae24ea340d7
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9888-ct))
|
$(eval $(call Download,ath10k-firmware-qca9888-ct))
|
||||||
|
|
||||||
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.015
|
QCA9888_FIRMWARE_FILE_CT_HTT:=firmware-5-ct-full-htt-mgt-community-12.bin-lede.017
|
||||||
define Download/ath10k-firmware-qca9888-ct-htt
|
define Download/ath10k-firmware-qca9888-ct-htt
|
||||||
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
|
$(call Download/ct-firmware-htt,QCA9888,ath10k-9888-10-4b)
|
||||||
HASH:=4feaf5e7c4c1745f499ba8c3125db41675800ebedaea455c418c117805c5b372
|
HASH:=26fe7c00df10e93373a0f9f105e85d02bb8b1cdd629183ce22a5147138336aec
|
||||||
endef
|
endef
|
||||||
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
|
$(eval $(call Download,ath10k-firmware-qca9888-ct-htt))
|
||||||
|
|
||||||
|
@ -8,14 +8,14 @@ PKG_LICENSE_FILES:=
|
|||||||
|
|
||||||
PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
|
PKG_SOURCE_URL:=https://github.com/greearb/ath10k-ct.git
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_DATE:=2020-01-29
|
PKG_SOURCE_DATE:=2020-03-25
|
||||||
PKG_SOURCE_VERSION:=3e3d0adb3cc6c6cf56a05ff661796948f09c5aa8
|
PKG_SOURCE_VERSION:=3d173a471d3e583f2885ce68190c4387424cecc5
|
||||||
PKG_MIRROR_HASH:=6341de2d3b19b2a32205a1633bf9556815943a2cff38acbbe5f61c6c0164fdcc
|
PKG_MIRROR_HASH:=496279322f3cd26b262d4999cb5a8c1ea022e92a7bb0d43d008bce235abb9a65
|
||||||
|
|
||||||
# Build the 4.19 ath10k-ct driver version. Other option is "-4.16".
|
# Build the 5.4 ath10k-ct driver version. Other option is "-4.19".
|
||||||
# Probably this should match as closely as
|
# Probably this should match as closely as
|
||||||
# possible to whatever mac80211 backports version is being used.
|
# possible to whatever mac80211 backports version is being used.
|
||||||
CT_KVER="-4.19"
|
CT_KVER="-5.4"
|
||||||
|
|
||||||
PKG_MAINTAINER:=Ben Greear <greearb@candelatech.com>
|
PKG_MAINTAINER:=Ben Greear <greearb@candelatech.com>
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
|
@ -35,3 +35,55 @@ Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
|||||||
vdev_param = ar->wmi.vdev_param->mgmt_rate;
|
vdev_param = ar->wmi.vdev_param->mgmt_rate;
|
||||||
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
|
ret = ath10k_wmi_vdev_set_param(ar, arvif->vdev_id, vdev_param,
|
||||||
hw_rate_code);
|
hw_rate_code);
|
||||||
|
--- a/ath10k-5.2/mac.c
|
||||||
|
+++ b/ath10k-5.2/mac.c
|
||||||
|
@@ -6742,6 +6742,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);
|
||||||
|
@@ -6750,6 +6751,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);
|
||||||
|
@@ -6776,6 +6778,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);
|
||||||
|
--- a/ath10k-5.4/mac.c
|
||||||
|
+++ b/ath10k-5.4/mac.c
|
||||||
|
@@ -6793,6 +6793,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);
|
||||||
|
@@ -6801,6 +6802,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);
|
||||||
|
@@ -6827,6 +6829,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);
|
||||||
|
@ -0,0 +1,41 @@
|
|||||||
|
From 5db4c4b9559f8cddd5f7f74e58c7b8f172120e6d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||||
|
Date: Tue, 23 Jul 2019 21:00:01 +0300
|
||||||
|
Subject: [PATCH] mac80211: pass the vif to cancel_remain_on_channel
|
||||||
|
|
||||||
|
This low level driver can find it useful to get the vif
|
||||||
|
when a remain on channel session is cancelled.
|
||||||
|
|
||||||
|
iwlwifi will need this soon.
|
||||||
|
|
||||||
|
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||||
|
Link: https://lore.kernel.org/r/20190723180001.5828-1-emmanuel.grumbach@intel.com
|
||||||
|
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
|
---
|
||||||
|
drivers/net/wireless/ath/ath10k/mac.c | 3 ++-
|
||||||
|
10 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/ath10k-4.19/mac.c
|
||||||
|
+++ b/ath10k-4.19/mac.c
|
||||||
|
@@ -7783,7 +7783,8 @@ exit:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw)
|
||||||
|
+static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw,
|
||||||
|
+ struct ieee80211_vif *vif)
|
||||||
|
{
|
||||||
|
struct ath10k *ar = hw->priv;
|
||||||
|
|
||||||
|
--- a/ath10k-5.2/mac.c
|
||||||
|
+++ b/ath10k-5.2/mac.c
|
||||||
|
@@ -7893,7 +7893,8 @@ exit:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw)
|
||||||
|
+static int ath10k_cancel_remain_on_channel(struct ieee80211_hw *hw,
|
||||||
|
+ struct ieee80211_vif *vif)
|
||||||
|
{
|
||||||
|
struct ath10k *ar = hw->priv;
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
|||||||
|
|
||||||
--- a/ath10k-4.19/core.h
|
--- a/ath10k-4.19/core.h
|
||||||
+++ b/ath10k-4.19/core.h
|
+++ b/ath10k-4.19/core.h
|
||||||
@@ -1489,6 +1489,10 @@ struct ath10k {
|
@@ -1491,6 +1491,10 @@ struct ath10k {
|
||||||
u8 csi_data[4096];
|
u8 csi_data[4096];
|
||||||
u16 csi_data_len;
|
u16 csi_data_len;
|
||||||
|
|
||||||
@ -51,3 +51,77 @@ Signed-off-by: Mathias Kresin <dev@kresin.me>
|
|||||||
IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
|
IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
|
||||||
ARRAY_SIZE(ath10k_tpt_blink));
|
ARRAY_SIZE(ath10k_tpt_blink));
|
||||||
#endif
|
#endif
|
||||||
|
--- a/ath10k-5.2/core.h
|
||||||
|
+++ b/ath10k-5.2/core.h
|
||||||
|
@@ -1552,6 +1552,10 @@ struct ath10k {
|
||||||
|
u8 csi_data[4096];
|
||||||
|
u16 csi_data_len;
|
||||||
|
|
||||||
|
+#ifdef CPTCFG_MAC80211_LEDS
|
||||||
|
+ const char *led_default_trigger;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* must be last */
|
||||||
|
u8 drv_priv[0] __aligned(sizeof(void *));
|
||||||
|
};
|
||||||
|
--- a/ath10k-5.2/leds.c
|
||||||
|
+++ b/ath10k-5.2/leds.c
|
||||||
|
@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k *
|
||||||
|
|
||||||
|
ar->leds.cdev.name = ar->leds.label;
|
||||||
|
ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking;
|
||||||
|
-
|
||||||
|
- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */
|
||||||
|
- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger;
|
||||||
|
+ ar->leds.cdev.default_trigger = ar->led_default_trigger;
|
||||||
|
|
||||||
|
ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev);
|
||||||
|
if (ret)
|
||||||
|
--- a/ath10k-5.2/mac.c
|
||||||
|
+++ b/ath10k-5.2/mac.c
|
||||||
|
@@ -10187,7 +10187,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
|
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||||
|
|
||||||
|
#ifdef CPTCFG_MAC80211_LEDS
|
||||||
|
- ieee80211_create_tpt_led_trigger(ar->hw,
|
||||||
|
+ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw,
|
||||||
|
IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
|
||||||
|
ARRAY_SIZE(ath10k_tpt_blink));
|
||||||
|
#endif
|
||||||
|
--- a/ath10k-5.4/core.h
|
||||||
|
+++ b/ath10k-5.4/core.h
|
||||||
|
@@ -1573,6 +1573,10 @@ struct ath10k {
|
||||||
|
u8 csi_data[4096];
|
||||||
|
u16 csi_data_len;
|
||||||
|
|
||||||
|
+#ifdef CPTCFG_MAC80211_LEDS
|
||||||
|
+ const char *led_default_trigger;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* must be last */
|
||||||
|
u8 drv_priv[0] __aligned(sizeof(void *));
|
||||||
|
};
|
||||||
|
--- a/ath10k-5.4/leds.c
|
||||||
|
+++ b/ath10k-5.4/leds.c
|
||||||
|
@@ -81,9 +81,7 @@ int ath10k_leds_register(struct ath10k *
|
||||||
|
|
||||||
|
ar->leds.cdev.name = ar->leds.label;
|
||||||
|
ar->leds.cdev.brightness_set_blocking = ath10k_leds_set_brightness_blocking;
|
||||||
|
-
|
||||||
|
- /* FIXME: this assignment doesn't make sense as it's NULL, remove it? */
|
||||||
|
- ar->leds.cdev.default_trigger = ar->leds.wifi_led.default_trigger;
|
||||||
|
+ ar->leds.cdev.default_trigger = ar->led_default_trigger;
|
||||||
|
|
||||||
|
ret = led_classdev_register(wiphy_dev(ar->hw->wiphy), &ar->leds.cdev);
|
||||||
|
if (ret)
|
||||||
|
--- a/ath10k-5.4/mac.c
|
||||||
|
+++ b/ath10k-5.4/mac.c
|
||||||
|
@@ -10367,7 +10367,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
|
ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER;
|
||||||
|
|
||||||
|
#ifdef CPTCFG_MAC80211_LEDS
|
||||||
|
- ieee80211_create_tpt_led_trigger(ar->hw,
|
||||||
|
+ ar->led_default_trigger = ieee80211_create_tpt_led_trigger(ar->hw,
|
||||||
|
IEEE80211_TPT_LEDTRIG_FL_RADIO, ath10k_tpt_blink,
|
||||||
|
ARRAY_SIZE(ath10k_tpt_blink));
|
||||||
|
#endif
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
--- a/ath10k-5.4/mac.c
|
||||||
|
+++ b/ath10k-5.4/mac.c
|
||||||
|
@@ -10180,6 +10180,7 @@ int ath10k_mac_register(struct ath10k *a
|
||||||
|
wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_VHT_IBSS);
|
||||||
|
wiphy_ext_feature_set(ar->hw->wiphy,
|
||||||
|
NL80211_EXT_FEATURE_SET_SCAN_DWELL);
|
||||||
|
+ wiphy_ext_feature_set(ar->hw->wiphy, NL80211_EXT_FEATURE_AQL);
|
||||||
|
|
||||||
|
if (test_bit(WMI_SERVICE_TX_DATA_ACK_RSSI, ar->wmi.svc_map) ||
|
||||||
|
test_bit(WMI_SERVICE_HTT_MGMT_TX_COMP_VALID_FLAGS, ar->wmi.svc_map))
|
@ -12,3 +12,31 @@
|
|||||||
#define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
|
#define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
|
||||||
#define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
|
#define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
|
||||||
#define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
|
#define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
|
||||||
|
--- a/ath10k-5.2/htt.h
|
||||||
|
+++ b/ath10k-5.2/htt.h
|
||||||
|
@@ -225,7 +225,11 @@ enum htt_rx_ring_flags {
|
||||||
|
};
|
||||||
|
|
||||||
|
#define HTT_RX_RING_SIZE_MIN 128
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
#define HTT_RX_RING_SIZE_MAX 2048
|
||||||
|
+#else
|
||||||
|
+#define HTT_RX_RING_SIZE_MAX 512
|
||||||
|
+#endif
|
||||||
|
#define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
|
||||||
|
#define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
|
||||||
|
#define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
|
||||||
|
--- a/ath10k-5.4/htt.h
|
||||||
|
+++ b/ath10k-5.4/htt.h
|
||||||
|
@@ -225,7 +225,11 @@ enum htt_rx_ring_flags {
|
||||||
|
};
|
||||||
|
|
||||||
|
#define HTT_RX_RING_SIZE_MIN 128
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
#define HTT_RX_RING_SIZE_MAX 2048
|
||||||
|
+#else
|
||||||
|
+#define HTT_RX_RING_SIZE_MAX 512
|
||||||
|
+#endif
|
||||||
|
#define HTT_RX_RING_SIZE HTT_RX_RING_SIZE_MAX
|
||||||
|
#define HTT_RX_RING_FILL_LEVEL (((HTT_RX_RING_SIZE) / 2) - 1)
|
||||||
|
#define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1)
|
||||||
|
@ -48,3 +48,103 @@
|
|||||||
.recv_cb = ath10k_pci_pktlog_rx_cb,
|
.recv_cb = ath10k_pci_pktlog_rx_cb,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
--- a/ath10k-5.2/pci.c
|
||||||
|
+++ b/ath10k-5.2/pci.c
|
||||||
|
@@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 512,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 128,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htt_htc_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -140,7 +144,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 128,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 64,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htc_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -167,7 +175,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 512,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 512,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 128,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htt_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -192,7 +204,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 128,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 96,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_pktlog_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
--- a/ath10k-5.4/pci.c
|
||||||
|
+++ b/ath10k-5.4/pci.c
|
||||||
|
@@ -131,7 +131,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 512,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 128,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htt_htc_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -140,7 +144,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 128,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 64,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htc_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -167,7 +175,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 512,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 512,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 128,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_htt_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -192,7 +204,11 @@ static struct ce_attr host_ce_config_wla
|
||||||
|
.flags = CE_ATTR_FLAGS,
|
||||||
|
.src_nentries = 0,
|
||||||
|
.src_sz_max = 2048,
|
||||||
|
+#ifndef CONFIG_ATH10K_SMALLBUFFERS
|
||||||
|
.dest_nentries = 128,
|
||||||
|
+#else
|
||||||
|
+ .dest_nentries = 96,
|
||||||
|
+#endif
|
||||||
|
.recv_cb = ath10k_pci_pktlog_rx_cb,
|
||||||
|
},
|
||||||
|
|
||||||
|
@ -0,0 +1,81 @@
|
|||||||
|
From cc8ec75f5ad4acf9babe5e26a10c9bca10624593 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
Date: Sun, 18 Aug 2019 15:33:51 +0200
|
||||||
|
Subject: [PATCH] ath10k: Check if station exists before forwarding tx airtime
|
||||||
|
report
|
||||||
|
|
||||||
|
It looks like the FW on QCA9984 already reports the tx airtimes before
|
||||||
|
the station is added to the peer entry. The peer entry is created in
|
||||||
|
ath10k_peer_map_event() just with the vdev_id and the ethaddr, but
|
||||||
|
not with a station entry, this is added later in ath10k_peer_create() in
|
||||||
|
callbacks from mac80211.
|
||||||
|
|
||||||
|
When there is no sta added to the peer entry, this function fails
|
||||||
|
because it calls ieee80211_sta_register_airtime() with NULL.
|
||||||
|
|
||||||
|
This was reported in OpenWrt some time ago:
|
||||||
|
https://bugs.openwrt.org/index.php?do=details&task_id=2414
|
||||||
|
|
||||||
|
This commit should fix this crash:
|
||||||
|
[ 75.991714] Unable to handle kernel paging request at virtual address fffff9e8
|
||||||
|
[ 75.991756] pgd = c0204000
|
||||||
|
[ 75.997955] [fffff9e8] *pgd=5fdfd861, *pte=00000000, *ppte=00000000
|
||||||
|
[ 76.000537] Internal error: Oops: 37 [#1] SMP ARM
|
||||||
|
[ 76.006686] Modules linked in: pppoe ppp_async ath10k_pci ath10k_core ath pptp pppox ppp_mppe ppp_generic mac80211 iptable_nat ipt_REJECT ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_tcpmss xt_statistic xt_state xt_recent xt_nat xt_multiport xt_mark xt_mac xt_limit xt_length xt_hl xt_helper xt_esp xt_ecn xt_dscp xt_conntrack xt_connmark xt_connlimit xt_connbytes xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_HL xt_FLOWOFFLOAD xt_DSCP xt_CT xt_CLASSIFY usbserial slhc nf_reject_ipv4 nf_nat_redirect nf_nat_masquerade_ipv4 nf_conntrack_ipv4 nf_nat_ipv4 nf_log_ipv4 nf_flow_table_hw nf_flow_table nf_defrag_ipv4 nf_conntrack_rtcache nf_conntrack_netlink iptable_raw iptable_mangle iptable_filter ipt_ah ipt_ECN ip_tables crc_ccitt compat chaoskey fuse sch_cake sch_tbf sch_ingress sch_htb sch_hfsc em_u32 cls_u32
|
||||||
|
[ 76.059974] cls_tcindex cls_route cls_matchall cls_fw cls_flow cls_basic act_skbedit act_mirred ledtrig_usbport xt_set ip_set_list_set ip_set_hash_netportnet ip_set_hash_netport ip_set_hash_netnet ip_set_hash_netiface ip_set_hash_net ip_set_hash_mac ip_set_hash_ipportnet ip_set_hash_ipportip ip_set_hash_ipport ip_set_hash_ipmark ip_set_hash_ip ip_set_bitmap_port ip_set_bitmap_ipmac ip_set_bitmap_ip ip_set nfnetlink ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6t_NPT ip6t_MASQUERADE nf_nat_masquerade_ipv6 nf_nat nf_conntrack nf_log_ipv6 nf_log_common ip6table_mangle ip6table_filter ip6_tables ip6t_REJECT x_tables nf_reject_ipv6 msdos ip_gre gre ifb sit tunnel4 ip_tunnel tun vfat fat hfsplus cifs nls_utf8 nls_iso8859_15 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 sha1_generic md5 md4
|
||||||
|
[ 76.130634] usb_storage leds_gpio xhci_plat_hcd xhci_pci xhci_hcd dwc3 dwc3_of_simple ohci_platform ohci_hcd phy_qcom_dwc3 ahci ehci_platform sd_mod ahci_platform libahci_platform libahci libata scsi_mod ehci_hcd gpio_button_hotplug ext4 mbcache jbd2 exfat crc32c_generic
|
||||||
|
[ 76.154772] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.14.132 #0
|
||||||
|
[ 76.177001] Hardware name: Generic DT based system
|
||||||
|
[ 76.182990] task: c0b06d80 task.stack: c0b00000
|
||||||
|
[ 76.187832] PC is at ieee80211_sta_register_airtime+0x24/0x148 [mac80211]
|
||||||
|
[ 76.192211] LR is at ath10k_htt_t2h_msg_handler+0x678/0x10f4 [ath10k_core]
|
||||||
|
[ 76.199052] pc : [<bf75bfac>] lr : [<bf83e8b0>] psr: a0000113
|
||||||
|
[ 76.205820] sp : c0b01d54 ip : 00000002 fp : bf869c0c
|
||||||
|
[ 76.211981] r10: 0000003c r9 : dbdca138 r8 : 00060002
|
||||||
|
[ 76.217192] r7 : 00000000 r6 : dabe1150 r5 : 00000000 r4 : dbdc95c0
|
||||||
|
[ 76.222401] r3 : 00000000 r2 : 00060002 r1 : 00000000 r0 : 00000000
|
||||||
|
[ 76.229003] Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none
|
||||||
|
[ 76.235509] Control: 10c5787d Table: 5c94006a DAC: 00000051
|
||||||
|
[ 76.242716] Process swapper/0 (pid: 0, stack limit = 0xc0b00210)
|
||||||
|
[ 76.248446] Stack: (0xc0b01d54 to 0xc0b02000)
|
||||||
|
[ 76.254532] 1d40: dbdc95c0 00000000 dabe1150
|
||||||
|
[ 76.258808] 1d60: 00000001 dabe1150 dbdca138 0000003c bf869c0c bf83e8b0 00000002 c0314b10
|
||||||
|
[ 76.266969] 1d80: dbdc9c70 00000001 00000001 dabe114c 00010000 00000000 dbdcd724 bf88f3d8
|
||||||
|
[ 76.275126] 1da0: c0310d28 db393c00 dbdc95c0 00000000 c0b01dd0 c07fb4c4 dbdcd724 00000001
|
||||||
|
[ 76.283286] 1dc0: 00000022 bf88b09c db393c00 00000022 c0b01dd0 c0b01dd0 00000000 dbdcc5c0
|
||||||
|
[ 76.291445] 1de0: bf88f04c dbdcd654 dbdcd71c dbdc95c0 00000014 dbdcd724 dbdcc5c0 00000005
|
||||||
|
[ 76.299605] 1e00: 0004b400 bf85c360 00000000 bf87101c c0b01e24 00000006 00000000 dbdc95c0
|
||||||
|
[ 76.307764] 1e20: 00000001 00000040 0000012c c0b01e80 1cf51000 bf85c448 dbdcd440 dbdc95c0
|
||||||
|
[ 76.315925] 1e40: dbdca440 ffffa880 00000040 bf88cb68 dbdcd440 00000001 00000040 ffffa880
|
||||||
|
[ 76.324084] 1e60: c0b02d00 c06d72e0 dd990080 c0a3f080 c0b255dc c0b047e4 c090afac c090e80c
|
||||||
|
[ 76.332244] 1e80: c0b01e80 c0b01e80 c0b01e88 c0b01e88 dd4cc200 00000000 00000003 c0b0208c
|
||||||
|
[ 76.340405] 1ea0: c0b02080 40000003 ffffe000 00000100 c0b02080 c03015c8 00000000 00000001
|
||||||
|
[ 76.348564] 1ec0: dd408000 c0a38210 c0b2c7c0 0000000a ffffa880 c0b02d00 c07fb764 00200102
|
||||||
|
[ 76.356723] 1ee0: dd4cc268 c0a3e414 00000000 00000000 00000001 dd408000 de803000 00000000
|
||||||
|
[ 76.364883] 1f00: 00000000 c03247cc c0a3e414 c0368f1c c0b03f60 c0b153cc de80200c de802000
|
||||||
|
[ 76.373042] 1f20: c0b01f48 c0301488 c0308630 60000013 ffffffff c0b01f7c 00000000 c0b00000
|
||||||
|
[ 76.381204] 1f40: 00000000 c030c08c 00000001 00000000 00000000 c0315180 ffffe000 c0b03cc0
|
||||||
|
[ 76.389363] 1f60: c0b03c70 00000000 00000000 c0a2da28 00000000 00000000 c0b01f90 c0b01f98
|
||||||
|
[ 76.397522] 1f80: c030862c c0308630 60000013 ffffffff 00000051 00000000 ffffe000 c035dd18
|
||||||
|
[ 76.405681] 1fa0: 000000bf c0b03c40 00000000 c0b2c000 dddfce80 c035e060 c0b2c040 c0a00cf4
|
||||||
|
[ 76.413842] 1fc0: ffffffff ffffffff 00000000 c0a0067c c0a2da28 00000000 00000000 c0b2c1d4
|
||||||
|
[ 76.422001] 1fe0: c0b03c5c c0a2da24 c0b07ee0 4220406a 512f04d0 4220807c 00000000 00000000
|
||||||
|
[ 76.430335] [<bf75bfac>] (ieee80211_sta_register_airtime [mac80211]) from [<00000002>] (0x2)
|
||||||
|
[ 76.438314] Code: e1cd81f0 e1a08002 e1cda1f8 e58de020 (e5102618)
|
||||||
|
[ 76.446965] ---[ end trace 227a38ade964d642 ]---
|
||||||
|
|
||||||
|
Fixes: bb31b7cb106c ("ath10k: report tx airtime provided by fw")
|
||||||
|
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
---
|
||||||
|
|
||||||
|
--- a/ath10k-5.2/htt_rx.c
|
||||||
|
+++ b/ath10k-5.2/htt_rx.c
|
||||||
|
@@ -2568,7 +2568,7 @@ do_generic:
|
||||||
|
spin_lock_bh(&ar->data_lock);
|
||||||
|
|
||||||
|
peer = ath10k_peer_find_by_id(ar, peer_id);
|
||||||
|
- if (!peer) {
|
||||||
|
+ if (!peer || !peer->sta) {
|
||||||
|
spin_unlock_bh(&ar->data_lock);
|
||||||
|
rcu_read_unlock();
|
||||||
|
continue;
|
Loading…
Reference in New Issue
Block a user