Compare commits

...

5 Commits

Author SHA1 Message Date
Patrick Walther 00c356d408 FIX: [iw] add FTM respone attr dist avg patch
id: 414273
2023-07-24 18:08:14 +02:00
Patrick Walther 183c1e648d ADD: [mac80211] enable intel ax210 support
id: 414274
2023-07-24 11:40:06 +02:00
Patrick Walther c49d5adf8e ADD: [firmware] intel ax210 FW
id: 414275
2023-07-24 11:39:21 +02:00
Patrick Walther eed14d4f19 ADD: [iw] enbale FTM support
id: 414273
2023-07-24 11:38:40 +02:00
Patrick Walther 06b4024628 ADD: [hostapd] enable WIFI6 support
id: 414276
2023-07-24 11:37:50 +02:00
8 changed files with 306 additions and 700 deletions

View File

@ -174,7 +174,7 @@ CONFIG_IEEE80211AC=y
# Note: This is experimental and work in progress. The definitions are still
# subject to change and this should not be expected to interoperate with the
# final IEEE 802.11ax version.
#CONFIG_IEEE80211AX=y
CONFIG_IEEE80211AX=y
# Remove debugging code that is printing out debug messages to stdout.
# This can be used to reduce the size of the hostapd considerably if debugging

View File

@ -0,0 +1,13 @@
diff --git a/Makefile b/Makefile
index 29f1d8f..f022e07 100644
--- a/Makefile
+++ b/Makefile
@@ -23,7 +23,7 @@ _OBJS := $(sort $(patsubst %.c,%.o,$(wildcard *.c)))
VERSION_OBJS := $(filter-out version.o, $(_OBJS))
OBJS := $(VERSION_OBJS) version.o
-OBJS_FULL = ocb offch cqm wowlan coalesce roc p2p vendor mgmt ap sha256 nan bloom measurements ftm
+OBJS_FULL = ocb offch cqm wowlan coalesce roc p2p vendor mgmt ap sha256 nan bloom
ifdef IW_FULL
CFLAGS += -DIW_FULL
else

View File

@ -0,0 +1,100 @@
diff --git a/event.c b/event.c
index ed157af..92aa53a 100644
--- a/event.c
+++ b/event.c
@@ -464,6 +464,14 @@ static void parse_pmsr_ftm_data(struct nlattr *data)
PFTM(u64, DIST_VARIANCE, unsigned);
PFTM(u64, DIST_SPREAD, unsigned);
+ if (!ftm[NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG] \
+ && ftm[NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG]){
+ signed long long dist_avg = (signed long long)nla_get_u64( \
+ ftm[NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG]);
+ dist_avg = dist_avg * 100 / 6666;
+ printf(" DEBUG_DIST_AVG: %lld\n", dist_avg );
+ }
+
if (ftm[NL80211_PMSR_FTM_RESP_ATTR_TX_RATE]) {
char buf[100];
@@ -971,7 +979,6 @@ static int print_event(struct nl_msg *msg, void *arg)
}
switch (gnlh->cmd) {
-#ifdef IW_FULL
case NL80211_CMD_NEW_WIPHY:
printf("renamed to %s\n", nla_get_string(tb[NL80211_ATTR_WIPHY_NAME]));
break;
@@ -1007,7 +1014,6 @@ static int print_event(struct nl_msg *msg, void *arg)
case NL80211_CMD_SCHED_SCAN_RESULTS:
printf("got scheduled scan results\n");
break;
-#endif
case NL80211_CMD_WIPHY_REG_CHANGE:
case NL80211_CMD_REG_CHANGE:
if (gnlh->cmd == NL80211_CMD_WIPHY_REG_CHANGE)
@@ -1090,7 +1096,6 @@ static int print_event(struct nl_msg *msg, void *arg)
mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC]));
printf("del station %s\n", macbuf);
break;
-#ifdef IW_FULL
case NL80211_CMD_JOIN_IBSS:
mac_addr_n2a(macbuf, nla_data(tb[NL80211_ATTR_MAC]));
printf("IBSS %s joined\n", macbuf);
@@ -1295,7 +1300,6 @@ static int print_event(struct nl_msg *msg, void *arg)
case NL80211_CMD_CH_SWITCH_NOTIFY:
parse_ch_switch_notify(tb, gnlh->cmd);
break;
-#endif
default:
printf("unknown event %d\n", gnlh->cmd);
break;
diff --git a/info.c b/info.c
index 4bdcc07..9260659 100644
--- a/info.c
+++ b/info.c
@@ -317,7 +317,6 @@ next:
}
}
-#ifdef IW_FULL
if (tb_band[NL80211_BAND_ATTR_RATES]) {
printf("\t\tBitrates (non-HT):\n");
nla_for_each_nested(nl_rate, tb_band[NL80211_BAND_ATTR_RATES], rem_rate) {
@@ -334,7 +333,6 @@ next:
printf("\n");
}
}
-#endif
}
}
@@ -400,7 +398,6 @@ next:
printf("\tCoverage class: %d (up to %dm)\n", coverage, 450 * coverage);
}
-#ifdef IW_FULL
if (tb_msg[NL80211_ATTR_CIPHER_SUITES]) {
int num = nla_len(tb_msg[NL80211_ATTR_CIPHER_SUITES]) / sizeof(__u32);
int i;
@@ -412,7 +409,6 @@ next:
cipher_name(ciphers[i]));
}
}
-#endif
if (tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX] &&
tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX])
@@ -430,11 +426,10 @@ next:
print_iftype_list("\tSupported interface modes", "\t\t",
tb_msg[NL80211_ATTR_SUPPORTED_IFTYPES]);
-#ifdef IW_FULL
if (tb_msg[NL80211_ATTR_SOFTWARE_IFTYPES])
print_iftype_list("\tsoftware interface modes (can always be added)",
"\t\t", tb_msg[NL80211_ATTR_SOFTWARE_IFTYPES]);
-#endif
+
if (tb_msg[NL80211_ATTR_INTERFACE_COMBINATIONS]) {
struct nlattr *nl_combi;

View File

@ -19,6 +19,8 @@ SRC_URI = "http://www.kernel.org/pub/software/network/iw/${BP}.tar.xz \
file://401-wlan-indoor-channel.patch \
file://402-show-ant-gain.patch \
file://403-clockbootime.patch \
file://404-ftm.patch \
file://405-ftm-resp-attr-dist-avg.patch \
"
SRC_URI[sha256sum] = "f167bbe947dd53bb9ebc0c1dcef5db6ad73ac1d6084f2c6f9376c5c360cc4d4e"

View File

@ -0,0 +1,79 @@
SUMMARY = "Firmware files for use with Linux kernel"
SECTION = "kernel"
LICENSE = "\
Firmware-GPLv2 \
& Firmware-iwlwifi_firmware \
& WHENCE \
"
LIC_FILES_CHKSUM = "file://GPL-2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://LICENCE.iwlwifi_firmware;md5=2ce6786e0fc11ac6e36b54bb9b799f1b \
file://WHENCE;md5=dc73481b5a9c45f9b5649c32e1cf5ecd \
"
# These are not common licenses, set NO_GENERIC_LICENSE for them
# so that the license files will be copied from fetched source
NO_GENERIC_LICENSE[Firmware-GPLv2] = "GPL-2"
NO_GENERIC_LICENSE[Firmware-iwlwifi_firmware] = "LICENCE.iwlwifi_firmware"
NO_GENERIC_LICENSE[WHENCE] = "WHENCE"
SRCREV = "bcdcfbcf0a8f24a914b8c163906e6ce93d7f8897"
PE = "1"
PV = "0.0+git${SRCPV}"
SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git;branch=main"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
inherit allarch
CLEANBROKEN = "1"
do_compile() {
:
}
do_install() {
install -d ${D}${nonarch_base_libdir}/firmware/
cp iwlwifi-ty-a0-gf-a0.pnvm ${D}${nonarch_base_libdir}/firmware/.
cp iwlwifi-ty-a0-gf-a0-66.ucode ${D}${nonarch_base_libdir}/firmware/.
}
PACKAGES =+ "${PN}-iwlwifi-license ${PN}-iwlwifi \
${PN}-whence-license \
${PN}-license \
"
# For iwlwifi
LICENSE_${PN}-iwlwifi = "Firmware-iwlwifi_firmware"
LICENSE_${PN}-iwlwifi-license = "Firmware-iwlwifi_firmware"
#FILES_${PN}-iwlwifi = "${nonarch_base_libdir}/firmware/iwlwifi-*"
FILES_${PN}-iwlwifi-license = "${nonarch_base_libdir}/firmware/LICENCE.iwlwifi_firmware"
# -iwlwifi-misc is a "catch all" package that includes all the iwlwifi
# firmwares that are not already included in other -iwlwifi- packages.
# -iwlwifi is a virtual package that depends upon all iwlwifi packages.
# These are distinct in order to allow the -misc firmwares to be installed
# without pulling in every other iwlwifi package.
#ALLOW_EMPTY_${PN}-iwlwifi = "1"
# For other firmwares
# Maybe split out to separate packages when needed.
LICENSE_${PN} = "\
WHENCE \
"
FILES_${PN}-license += "${nonarch_base_libdir}/firmware/LICEN*"
FILES_${PN} += "${nonarch_base_libdir}/firmware"
# Firmware files are generally not ran on the CPU, so they can be
# allarch despite being architecture specific
INSANE_SKIP = "arch"

View File

@ -6,103 +6,6 @@ Date: Wed Sep 14 14:25:55 2022 +0200
%% original patch: 0002-backport-of-subsys-patches-from-openwrt.patch
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index 8ff3330..2997959 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -4817,9 +4817,6 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
return;
}
- if (vif->type != NL80211_IFTYPE_STATION)
- return;
-
/* Make sure we're done with the deferred traffic before flushing */
flush_work(&mvm->add_stream_wk);
@@ -4837,9 +4834,6 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
if (mvmsta->vif != vif)
continue;
- /* make sure only TDLS peers or the AP are flushed */
- WARN_ON(i != mvmvif->ap_sta_id && !sta->tdls);
-
if (drop) {
if (iwl_mvm_flush_sta(mvm, mvmsta, false))
IWL_ERR(mvm, "flush request fail\n");
@@ -4859,6 +4853,31 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
iwl_trans_wait_tx_queues_empty(mvm->trans, msk);
}
+static void iwl_mvm_mac_flush_sta(struct ieee80211_hw *hw,
+ struct ieee80211_vif *vif,
+ struct ieee80211_sta *sta)
+{
+ struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
+ int i;
+
+ mutex_lock(&mvm->mutex);
+ for (i = 0; i < mvm->fw->ucode_capa.num_stations; i++) {
+ struct iwl_mvm_sta *mvmsta;
+ struct ieee80211_sta *tmp;
+
+ tmp = rcu_dereference_protected(mvm->fw_id_to_mac_id[i],
+ lockdep_is_held(&mvm->mutex));
+ if (tmp != sta)
+ continue;
+
+ mvmsta = iwl_mvm_sta_from_mac80211(sta);
+
+ if (iwl_mvm_flush_sta(mvm, mvmsta, false))
+ IWL_ERR(mvm, "flush request fail\n");
+ }
+ mutex_unlock(&mvm->mutex);
+}
+
static int iwl_mvm_mac_get_survey(struct ieee80211_hw *hw, int idx,
struct survey_info *survey)
{
@@ -5372,6 +5391,7 @@ const struct ieee80211_ops iwl_mvm_hw_ops = {
.mgd_prepare_tx = iwl_mvm_mac_mgd_prepare_tx,
.mgd_protect_tdls_discover = iwl_mvm_mac_mgd_protect_tdls_discover,
.flush = iwl_mvm_mac_flush,
+ .flush_sta = iwl_mvm_mac_flush_sta,
.sched_scan_start = iwl_mvm_mac_sched_scan_start,
.sched_scan_stop = iwl_mvm_mac_sched_scan_stop,
.set_key = iwl_mvm_mac_set_key,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
index 7beb203..d4c7d45 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
@@ -551,8 +551,9 @@ static void iwl_mvm_skb_prepare_status(struct sk_buff *skb,
static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm,
struct ieee80211_tx_info *info,
- struct ieee80211_hdr *hdr)
+ struct sk_buff *skb)
{
+ struct ieee80211_hdr *hdr = (void *)skb->data;
struct iwl_mvm_vif *mvmvif =
iwl_mvm_vif_from_mac80211(info->control.vif);
__le16 fc = hdr->frame_control;
@@ -571,7 +572,7 @@ static int iwl_mvm_get_ctrl_vif_queue(struct iwl_mvm *mvm,
* reason 7 ("Class 3 frame received from nonassociated STA").
*/
if (ieee80211_is_mgmt(fc) &&
- (!ieee80211_is_bufferable_mmpdu(fc) ||
+ (!ieee80211_is_bufferable_mmpdu(skb) ||
ieee80211_is_deauth(fc) || ieee80211_is_disassoc(fc)))
return mvm->probe_queue;
@@ -689,7 +690,7 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
else
sta_id = mvmvif->mcast_sta.sta_id;
- queue = iwl_mvm_get_ctrl_vif_queue(mvm, &info, hdr);
+ queue = iwl_mvm_get_ctrl_vif_queue(mvm, &info, skb);
} else if (info.control.vif->type == NL80211_IFTYPE_MONITOR) {
queue = mvm->snif_queue;
sta_id = mvm->snif_sta.sta_id;
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index bfc2b1f..ea0749c 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
@ -177,85 +80,6 @@ index bfc2b1f..ea0749c 100644
rx_status.signal = nla_get_u32(info->attrs[HWSIM_ATTR_SIGNAL]);
hdr = (void *)skb->data;
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 6942645..637e9fd 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -737,20 +737,6 @@ static inline bool ieee80211_is_any_nullfunc(__le16 fc)
return (ieee80211_is_nullfunc(fc) || ieee80211_is_qos_nullfunc(fc));
}
-/**
- * ieee80211_is_bufferable_mmpdu - check if frame is bufferable MMPDU
- * @fc: frame control field in little-endian byteorder
- */
-static inline bool ieee80211_is_bufferable_mmpdu(__le16 fc)
-{
- /* IEEE 802.11-2012, definition of "bufferable management frame";
- * note that this ignores the IBSS special case. */
- return ieee80211_is_mgmt(fc) &&
- (ieee80211_is_action(fc) ||
- ieee80211_is_disassoc(fc) ||
- ieee80211_is_deauth(fc));
-}
-
/**
* ieee80211_is_first_frag - check if IEEE80211_SCTL_FRAG is not set
* @seq_ctrl: frame sequence control bytes in little-endian byteorder
@@ -3188,7 +3174,7 @@ enum ieee80211_pub_actioncode {
WLAN_PUB_ACTION_NETWORK_CHANNEL_CONTROL = 30,
WLAN_PUB_ACTION_WHITE_SPACE_MAP_ANN = 31,
WLAN_PUB_ACTION_FTM_REQUEST = 32,
- WLAN_PUB_ACTION_FTM = 33,
+ WLAN_PUB_ACTION_FTM_RESPONSE = 33,
WLAN_PUB_ACTION_FILS_DISCOVERY = 34,
};
@@ -3667,6 +3653,44 @@ static inline u8 *ieee80211_get_DA(struct ieee80211_hdr *hdr)
return hdr->addr1;
}
+/**
+ * ieee80211_is_bufferable_mmpdu - check if frame is bufferable MMPDU
+ * @skb: the skb to check, starting with the 802.11 header
+ */
+static inline bool ieee80211_is_bufferable_mmpdu(struct sk_buff *skb)
+{
+ struct ieee80211_mgmt *mgmt = (void *)skb->data;
+ __le16 fc = mgmt->frame_control;
+
+ /*
+ * IEEE 802.11 REVme D2.0 definition of bufferable MMPDU;
+ * note that this ignores the IBSS special case.
+ */
+ if (!ieee80211_is_mgmt(fc))
+ return false;
+
+ if (ieee80211_is_disassoc(fc) || ieee80211_is_deauth(fc))
+ return true;
+
+ if (!ieee80211_is_action(fc))
+ return false;
+
+ if (skb->len < offsetofend(typeof(*mgmt), u.action.u.ftm.action_code))
+ return true;
+
+ /* action frame - additionally check for non-bufferable FTM */
+
+ if (mgmt->u.action.category != WLAN_CATEGORY_PUBLIC &&
+ mgmt->u.action.category != WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION)
+ return true;
+
+ if (mgmt->u.action.u.ftm.action_code == WLAN_PUB_ACTION_FTM_REQUEST ||
+ mgmt->u.action.u.ftm.action_code == WLAN_PUB_ACTION_FTM_RESPONSE)
+ return false;
+
+ return true;
+}
+
/**
* _ieee80211_is_robust_mgmt_frame - check if frame is a robust management frame
* @hdr: the frame (buffer must include at least the first octet of payload)
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 30c9ebd..ab83553 100644
--- a/include/net/cfg80211.h
@ -447,7 +271,7 @@ index 30c9ebd..ab83553 100644
/**
* cfg80211_gtk_rekey_notify - notify userspace about driver rekeying
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index a331431..7293174 100644
index a331431..4c2760d 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1566,6 +1566,7 @@ enum ieee80211_smps_mode {
@ -501,18 +325,7 @@ index a331431..7293174 100644
/* keep last, obviously */
NUM_IEEE80211_HW_FLAGS
@@ -3685,6 +3694,10 @@ struct ieee80211_prep_tx_info {
* Note that vif can be NULL.
* The callback can sleep.
*
+ * @flush_sta: Flush or drop all pending frames from the hardware queue(s) for
+ * the given station, as it's about to be removed.
+ * The callback can sleep.
+ *
* @channel_switch: Drivers that need (or want) to offload the channel
* switch operation for CSAs received from the AP may implement this
* callback. They must then call ieee80211_chswitch_done() to indicate
@@ -3937,6 +3950,16 @@ struct ieee80211_prep_tx_info {
@@ -3937,6 +3946,16 @@ struct ieee80211_prep_tx_info {
* twt structure.
* @twt_teardown_request: Update the hw with TWT teardown request received
* from the peer.
@ -529,16 +342,7 @@ index a331431..7293174 100644
*/
struct ieee80211_ops {
void (*tx)(struct ieee80211_hw *hw,
@@ -4103,6 +4126,8 @@ struct ieee80211_ops {
#endif
void (*flush)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
u32 queues, bool drop);
+ void (*flush_sta)(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+ struct ieee80211_sta *sta);
void (*channel_switch)(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_channel_switch *ch_switch);
@@ -4265,6 +4290,15 @@ struct ieee80211_ops {
@@ -4265,6 +4284,15 @@ struct ieee80211_ops {
struct ieee80211_twt_setup *twt);
void (*twt_teardown_request)(struct ieee80211_hw *hw,
struct ieee80211_sta *sta, u8 flowid);
@ -554,7 +358,7 @@ index a331431..7293174 100644
};
/**
@@ -4916,12 +4950,14 @@ void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets);
@@ -4916,12 +4944,14 @@ void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets);
* @cntdwn_counter_offs: array of IEEE80211_MAX_CNTDWN_COUNTERS_NUM offsets
* to countdown counters. This array can contain zero values which
* should be ignored.
@ -569,7 +373,7 @@ index a331431..7293174 100644
};
/**
@@ -6642,6 +6678,9 @@ static inline void ieee80211_txq_schedule_end(struct ieee80211_hw *hw, u8 ac)
@@ -6642,6 +6672,9 @@ static inline void ieee80211_txq_schedule_end(struct ieee80211_hw *hw, u8 ac)
{
}
@ -579,7 +383,7 @@ index a331431..7293174 100644
/**
* ieee80211_schedule_txq - schedule a TXQ for transmission
*
@@ -6654,7 +6693,11 @@ static inline void ieee80211_txq_schedule_end(struct ieee80211_hw *hw, u8 ac)
@@ -6654,7 +6687,11 @@ static inline void ieee80211_txq_schedule_end(struct ieee80211_hw *hw, u8 ac)
* The driver may call this function if it has buffered packets for
* this TXQ internally.
*/
@ -592,7 +396,7 @@ index a331431..7293174 100644
/**
* ieee80211_return_txq - return a TXQ previously acquired by ieee80211_next_txq()
@@ -6666,8 +6709,12 @@ void ieee80211_schedule_txq(struct ieee80211_hw *hw, struct ieee80211_txq *txq);
@@ -6666,8 +6703,12 @@ void ieee80211_schedule_txq(struct ieee80211_hw *hw, struct ieee80211_txq *txq);
* The driver may set force=true if it has buffered packets for this TXQ
* internally.
*/
@ -1471,32 +1275,10 @@ index 8be28cf..afac8d4 100644
}
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 912c75d..5e10e24 100644
index 912c75d..bd1e46e 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -639,6 +639,21 @@ static inline void drv_flush(struct ieee80211_local *local,
trace_drv_return_void(local);
}
+static inline void drv_flush_sta(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata,
+ struct sta_info *sta)
+{
+ might_sleep();
+
+ if (sdata && !check_sdata_in_driver(sdata))
+ return;
+
+ trace_drv_flush_sta(local, sdata, &sta->sta);
+ if (local->ops->flush_sta)
+ local->ops->flush_sta(&local->hw, &sdata->vif, &sta->sta);
+ trace_drv_return_void(local);
+}
+
static inline void drv_channel_switch(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
struct ieee80211_channel_switch *ch_switch)
@@ -1486,4 +1501,28 @@ static inline void drv_twt_teardown_request(struct ieee80211_local *local,
@@ -1486,4 +1486,28 @@ static inline void drv_twt_teardown_request(struct ieee80211_local *local,
trace_drv_return_void(local);
}
@ -3437,7 +3219,7 @@ index 887f945..e692a24 100644
ieee80211_hw_config(local, 0);
diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
index dccaf4b..24a7d57 100644
index dccaf4b..d67dfdc 100644
--- a/net/mac80211/sta_info.c
+++ b/net/mac80211/sta_info.c
@@ -357,6 +357,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
@ -3465,26 +3247,7 @@ index dccaf4b..24a7d57 100644
}
for (i = 0; i < IEEE80211_NUM_TIDS; i++)
@@ -1065,6 +1070,18 @@ static void __sta_info_destroy_part2(struct sta_info *sta)
WARN_ON_ONCE(ret);
}
+ /* Flush queues before removing keys, as that might remove them
+ * from hardware, and then depending on the offload method, any
+ * frames sitting on hardware queues might be sent out without
+ * any encryption at all.
+ */
+ if (local->ops->set_key) {
+ if (local->ops->flush_sta)
+ drv_flush_sta(local, sta->sdata, sta);
+ else
+ ieee80211_flush_queues(local, sta->sdata, false);
+ }
+
/* now keys can no longer be reached */
ieee80211_free_sta_keys(local, sta);
@@ -1888,59 +1905,29 @@ void ieee80211_sta_set_buffered(struct ieee80211_sta *pubsta,
@@ -1888,59 +1893,29 @@ void ieee80211_sta_set_buffered(struct ieee80211_sta *pubsta,
}
EXPORT_SYMBOL(ieee80211_sta_set_buffered);
@ -3516,15 +3279,9 @@ index dccaf4b..24a7d57 100644
- /* Weights scale so the unit weight is 256 */
- airtime <<= 8;
+ spin_lock_bh(&local->active_txq_lock[ac]);
+ sta->airtime[ac].tx_airtime += tx_airtime;
+ sta->airtime[ac].rx_airtime += rx_airtime;
-
- spin_lock_bh(&air_sched->lock);
+ diff = (u32)jiffies - sta->airtime[ac].last_active;
+ if (diff <= AIRTIME_ACTIVE_DURATION)
+ sta->airtime[ac].deficit -= airtime;
-
- air_info->tx_airtime += tx_airtime;
- air_info->rx_airtime += rx_airtime;
-
@ -3535,14 +3292,20 @@ index dccaf4b..24a7d57 100644
- weight_sum = air_info->weight;
- weight_sum_reciprocal = air_info->weight_reciprocal;
- }
-
+ spin_lock_bh(&local->active_txq_lock[ac]);
+ sta->airtime[ac].tx_airtime += tx_airtime;
+ sta->airtime[ac].rx_airtime += rx_airtime;
- /* Round the calculation of global vt */
- air_sched->v_t += (u64)((airtime + (weight_sum >> 1)) *
- weight_sum_reciprocal) >> IEEE80211_RECIPROCAL_SHIFT_64;
- air_info->v_t += (u32)((airtime + (air_info->weight >> 1)) *
- air_info->weight_reciprocal) >> IEEE80211_RECIPROCAL_SHIFT_32;
- ieee80211_resort_txq(&local->hw, txq);
-
+ diff = (u32)jiffies - sta->airtime[ac].last_active;
+ if (diff <= AIRTIME_ACTIVE_DURATION)
+ sta->airtime[ac].deficit -= airtime;
- spin_unlock_bh(&air_sched->lock);
-}
-
@ -3559,7 +3322,7 @@ index dccaf4b..24a7d57 100644
}
EXPORT_SYMBOL(ieee80211_sta_register_airtime);
@@ -1959,6 +1946,7 @@ void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
@@ -1959,6 +1934,7 @@ void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
&sta->airtime[ac].aql_tx_pending);
atomic_add(tx_airtime, &local->aql_total_pending_airtime);
@ -3567,7 +3330,7 @@ index dccaf4b..24a7d57 100644
return;
}
@@ -1970,14 +1958,17 @@ void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
@@ -1970,14 +1946,17 @@ void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
tx_pending, 0);
}
@ -3588,7 +3351,7 @@ index dccaf4b..24a7d57 100644
}
int sta_info_move_state(struct sta_info *sta,
@@ -2384,7 +2375,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
@@ -2384,7 +2363,7 @@ void sta_set_sinfo(struct sta_info *sta, struct station_info *sinfo,
}
if (!(sinfo->filled & BIT_ULL(NL80211_STA_INFO_AIRTIME_WEIGHT))) {
@ -3845,24 +3608,10 @@ index 45e532a..137be9e 100644
}
diff --git a/net/mac80211/trace.h b/net/mac80211/trace.h
index 9e8381b..a564f54 100644
index 9e8381b..ffa1b7b 100644
--- a/net/mac80211/trace.h
+++ b/net/mac80211/trace.h
@@ -1140,6 +1140,13 @@ TRACE_EVENT(drv_flush,
)
);
+DEFINE_EVENT(sta_event, drv_flush_sta,
+ TP_PROTO(struct ieee80211_local *local,
+ struct ieee80211_sub_if_data *sdata,
+ struct ieee80211_sta *sta),
+ TP_ARGS(local, sdata, sta)
+);
+
TRACE_EVENT(drv_channel_switch,
TP_PROTO(struct ieee80211_local *local,
struct ieee80211_sub_if_data *sdata,
@@ -2892,6 +2899,15 @@ TRACE_EVENT(drv_twt_teardown_request,
@@ -2892,6 +2892,15 @@ TRACE_EVENT(drv_twt_teardown_request,
)
);
@ -3879,7 +3628,7 @@ index 9e8381b..a564f54 100644
#undef TRACE_INCLUDE_PATH
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 15888e4..9fc4e7b 100644
index 15888e4..50025ff 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -18,7 +18,6 @@
@ -3890,24 +3639,6 @@ index 15888e4..9fc4e7b 100644
#include <net/net_namespace.h>
#include <net/ieee80211_radiotap.h>
#include <net/cfg80211.h>
@@ -488,7 +487,7 @@ ieee80211_tx_h_unicast_ps_buf(struct ieee80211_tx_data *tx)
int ac = skb_get_queue_mapping(tx->skb);
if (ieee80211_is_mgmt(hdr->frame_control) &&
- !ieee80211_is_bufferable_mmpdu(hdr->frame_control)) {
+ !ieee80211_is_bufferable_mmpdu(tx->skb)) {
info->flags |= IEEE80211_TX_CTL_NO_PS_BUFFER;
return TX_CONTINUE;
}
@@ -1283,7 +1282,7 @@ static struct txq_info *ieee80211_get_txq(struct ieee80211_local *local,
if (!(info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP) &&
unlikely(!ieee80211_is_data_present(hdr->frame_control))) {
if ((!ieee80211_is_mgmt(hdr->frame_control) ||
- ieee80211_is_bufferable_mmpdu(hdr->frame_control) ||
+ ieee80211_is_bufferable_mmpdu(skb) ||
vif->type == NL80211_IFTYPE_STATION) &&
sta && sta->uploaded) {
/*
@@ -1480,7 +1479,7 @@ void ieee80211_txq_init(struct ieee80211_sub_if_data *sdata,
codel_vars_init(&txqi->def_cvars);
codel_stats_init(&txqi->cstats);

View File

@ -1,17 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
# Backports from "Linux" "v4.19.32-0-g3a2156c839c7" (backports "v4.19.32-1-0-g1c4f7569")
# Backports from "Linux" "v5.15.58-0-g7d8048d4e064" (backports "v5.15.58-1-0-g42a95ce7")
#
CPTCFG_WIRELESS=y
CPTCFG_NET_CORE=y
CPTCFG_EXPERT=y
CPTCFG_BP_MODULES=y
CPTCFG_BPAUTO_NEW_LEDS=y
CPTCFG_BPAUTO_LEDS_CLASS=y
CPTCFG_BPAUTO_LEDS_TRIGGERS=y
CPTCFG_BPAUTO_BUILD_NLATTR=y
# CPTCFG_BPAUTO_USERSEL_BUILD_ALL is not set
CPTCFG_BPAUTO_WANT_DEV_COREDUMP=y
CPTCFG_BPAUTO_BUILD_WANT_DEV_COREDUMP=y
CPTCFG_BPAUTO_CRYPTO_LIB_ARC4=y
CPTCFG_BPAUTO_BUILD_CRYPTO_LIB_ARC4=y
CPTCFG_CFG80211=m
CPTCFG_NL80211_TESTMODE=y
# CPTCFG_CFG80211_DEVELOPER_WARNINGS is not set
@ -37,9 +36,12 @@ CPTCFG_MAC80211_LEDS=y
# CPTCFG_MAC80211_MESSAGE_TRACING is not set
# CPTCFG_MAC80211_DEBUG_MENU is not set
CPTCFG_MAC80211_STA_HASH_MAX_SIZE=0
# CPTCFG_MAC80211_CAPWAP_WTP is not set
# CPTCFG_MHI_BUS is not set
#
# Qualcomm SoC drivers
#
CPTCFG_WLAN=y
# CPTCFG_WIRELESS_WDS is not set
CPTCFG_WLAN_VENDOR_ADMTEK=y
CPTCFG_ADM8211=m
CPTCFG_ATH_COMMON=m
@ -62,6 +64,7 @@ CPTCFG_ATH9K_PCI=y
# CPTCFG_ATH9K_RFKILL is not set
# CPTCFG_ATH9K_CHANNEL_CONTEXT is not set
# CPTCFG_ATH9K_PCOEM is not set
# CPTCFG_ATH9K_PCI_NO_EEPROM is not set
# CPTCFG_ATH9K_HTC is not set
# CPTCFG_CARL9170 is not set
# CPTCFG_ATH6KL is not set
@ -80,14 +83,22 @@ CPTCFG_ATH10K_DFS_CERTIFIED=y
CPTCFG_WLAN_VENDOR_ATMEL=y
# CPTCFG_AT76C50X_USB is not set
CPTCFG_WLAN_VENDOR_BROADCOM=y
# CPTCFG_B43 is not set
# CPTCFG_BRCMUTIL is not set
# CPTCFG_BRCMFMAC is not set
CPTCFG_WLAN_VENDOR_CISCO=y
CPTCFG_WLAN_VENDOR_INTEL=y
# CPTCFG_IWL4965 is not set
# CPTCFG_IWL3945 is not set
# CPTCFG_IWLWIFI is not set
CPTCFG_IWLWIFI=m
CPTCFG_IWLWIFI_LEDS=y
CPTCFG_IWLDVM=m
CPTCFG_IWLMVM=m
CPTCFG_IWLWIFI_OPMODE_MODULAR=y
# CPTCFG_IWLWIFI_BCAST_FILTERING is not set
#
# Debugging Options
#
CPTCFG_IWLWIFI_DEBUG=y
CPTCFG_WLAN_VENDOR_INTERSIL=y
# CPTCFG_P54_COMMON is not set
CPTCFG_WLAN_VENDOR_MARVELL=y
@ -97,8 +108,18 @@ CPTCFG_WLAN_VENDOR_MARVELL=y
CPTCFG_WLAN_VENDOR_MEDIATEK=y
# CPTCFG_MT7601U is not set
# CPTCFG_MT76x0U is not set
# CPTCFG_MT76x0E is not set
# CPTCFG_MT76x2E is not set
# CPTCFG_MT76x2U is not set
# CPTCFG_MT7603E is not set
# CPTCFG_MT7615E is not set
# CPTCFG_MT7663U is not set
# CPTCFG_MT7663S is not set
# CPTCFG_MT7915E is not set
# CPTCFG_MT7921E is not set
CPTCFG_WLAN_VENDOR_MICROCHIP=y
# CPTCFG_WILC1000_SDIO is not set
# CPTCFG_WILC1000_SPI is not set
CPTCFG_WLAN_VENDOR_RALINK=y
# CPTCFG_RT2X00 is not set
CPTCFG_WLAN_VENDOR_REALTEK=y
@ -106,6 +127,7 @@ CPTCFG_WLAN_VENDOR_REALTEK=y
# CPTCFG_RTL8187 is not set
# CPTCFG_RTL_CARDS is not set
# CPTCFG_RTL8XXXU is not set
# CPTCFG_RTW88 is not set
CPTCFG_WLAN_VENDOR_RSI=y
CPTCFG_RSI_91X=m
# CPTCFG_RSI_DEBUGFS is not set
@ -144,6 +166,8 @@ CPTCFG_KERNEL_GZIP=y
CPTCFG_SWAP=y
CPTCFG_SYSVIPC=y
CPTCFG_SYSVIPC_SYSCTL=y
CPTCFG_POSIX_MQUEUE=y
CPTCFG_POSIX_MQUEUE_SYSCTL=y
CPTCFG_HAVE_ARCH_AUDITSYSCALL=y
CPTCFG_GENERIC_IRQ_PROBE=y
CPTCFG_GENERIC_IRQ_SHOW=y
@ -175,9 +199,6 @@ CPTCFG_SRCU=y
CPTCFG_TREE_SRCU=y
CPTCFG_RCU_STALL_COMMON=y
CPTCFG_RCU_NEED_SEGCBLIST=y
CPTCFG_BUILD_BIN2C=y
CPTCFG_IKCONFIG=m
CPTCFG_IKCONFIG_PROC=y
CPTCFG_GENERIC_SCHED_CLOCK=y
CPTCFG_CGROUPS=y
CPTCFG_PAGE_COUNTER=y
@ -207,6 +228,7 @@ CPTCFG_HAVE_UID16=y
CPTCFG_BPF=y
CPTCFG_UID16=y
CPTCFG_MULTIUSER=y
CPTCFG_FHANDLE=y
CPTCFG_POSIX_TIMERS=y
CPTCFG_PRINTK=y
CPTCFG_PRINTK_NMI=y
@ -227,6 +249,7 @@ CPTCFG_HAVE_PERF_EVENTS=y
CPTCFG_PERF_USE_VMALLOC=y
CPTCFG_SLAB=y
CPTCFG_SLAB_MERGE_DEFAULT=y
CPTCFG_SYSTEM_DATA_VERIFICATION=y
CPTCFG_ARM=y
CPTCFG_ARM_HAS_SG_CHAIN=y
CPTCFG_MIGHT_HAVE_PCI=y
@ -313,6 +336,16 @@ CPTCFG_ALIGNMENT_TRAP=y
CPTCFG_USE_OF=y
CPTCFG_ATAGS=y
CPTCFG_AUTO_ZRELADDR=y
CPTCFG_CPU_FREQ=y
CPTCFG_CPU_FREQ_GOV_ATTR_SET=y
CPTCFG_CPU_FREQ_GOV_COMMON=y
CPTCFG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
CPTCFG_CPU_FREQ_GOV_PERFORMANCE=y
CPTCFG_CPU_FREQ_GOV_POWERSAVE=y
CPTCFG_CPU_FREQ_GOV_ONDEMAND=y
CPTCFG_CPU_FREQ_GOV_CONSERVATIVE=y
CPTCFG_CPUFREQ_DT=y
CPTCFG_CPUFREQ_DT_PLATDEV=y
CPTCFG_VFP=y
CPTCFG_VFPv3=y
CPTCFG_NEON=y
@ -370,6 +403,12 @@ CPTCFG_HAVE_GCC_PLUGINS=y
CPTCFG_RT_MUTEXES=y
CPTCFG_MODULES=y
CPTCFG_MODULE_UNLOAD=y
CPTCFG_MODULE_SIG=y
CPTCFG_MODULE_SIG_FORCE=y
CPTCFG_MODULE_SIG_ALL=y
CPTCFG_MODULE_SIG_SHA1=y
CPTCFG_MODULE_COMPRESS=y
CPTCFG_MODULE_COMPRESS_GZIP=y
CPTCFG_BLOCK=y
CPTCFG_LBDAF=y
CPTCFG_BLK_SCSI_REQUEST=y
@ -407,6 +446,7 @@ CPTCFG_NET_INGRESS=y
CPTCFG_NET_EGRESS=y
CPTCFG_PACKET=y
CPTCFG_UNIX=y
CPTCFG_UNIX_SCM=y
CPTCFG_XFRM=y
CPTCFG_XFRM_OFFLOAD=y
CPTCFG_XFRM_ALGO=m
@ -563,12 +603,19 @@ CPTCFG_IP_NF_TARGET_TTL=m
CPTCFG_IP_NF_RAW=m
CPTCFG_NF_REJECT_IPV6=m
CPTCFG_NF_LOG_IPV6=m
CPTCFG_NF_NAT_IPV6=m
CPTCFG_NF_NAT_MASQUERADE_IPV6=y
CPTCFG_IP6_NF_IPTABLES=m
CPTCFG_IP6_NF_FILTER=m
CPTCFG_IP6_NF_TARGET_REJECT=m
CPTCFG_IP6_NF_MANGLE=m
CPTCFG_IP6_NF_RAW=m
CPTCFG_IP6_NF_NAT=m
CPTCFG_IP6_NF_TARGET_MASQUERADE=m
CPTCFG_NF_DEFRAG_IPV6=m
CPTCFG_BRIDGE_NF_EBTABLES=m
CPTCFG_BRIDGE_EBT_T_FILTER=m
CPTCFG_BRIDGE_EBT_LOG=m
CPTCFG_L2TP=y
CPTCFG_L2TP_V3=y
CPTCFG_L2TP_IP=y
@ -655,9 +702,8 @@ CPTCFG_PREVENT_FIRMWARE_BUILD=y
CPTCFG_FW_LOADER=y
CPTCFG_FIRMWARE_SIG=y
CPTCFG_FIRMWARE_SIG_FORCE=y
CPTCFG_FW_LOADER_USER_HELPER=y
CPTCFG_FW_LOADER_USER_HELPER_FALLBACK=y
CPTCFG_GENERIC_CPU_AUTOPROBE=y
CPTCFG_GENERIC_CPU_VULNERABILITIES=y
CPTCFG_SOC_BUS=y
CPTCFG_REGMAP=y
CPTCFG_REGMAP_I2C=y
@ -679,20 +725,10 @@ CPTCFG_OF_RESERVED_MEM=y
CPTCFG_ARCH_MIGHT_HAVE_PC_PARPORT=y
CPTCFG_BLK_DEV=y
CPTCFG_BLK_DEV_LOOP=y
CPTCFG_NETBOX_MMC_IOMUX=y
CPTCFG_NETBOX_PCI=y
CPTCFG_NETMODULE_POE=y
CPTCFG_NRSW_GLOBAL=y
CPTCFG_NETMODULE_SYSFS_DEVICE=y
CPTCFG_NETMODULE_SYSTEM_INIT=y
CPTCFG_NETMODULE_USERSPACE_GPIO=y
CPTCFG_NETMODULE_USERSPACE_HOTPLUG_GPIO=y
CPTCFG_NM_RESET_REASON=y
CPTCFG_RDP=m
CPTCFG_SYSINFO_BD_PARSER=y
CPTCFG_SYSINFO_BOARD_DESCRIPTOR_NG=y
CPTCFG_SYSINFO_PARTITION_TABLE=y
CPTCFG_SYSINFO_LICENSE_INFO=y
CPTCFG_SYSINFO_NETBOX_SYSINFO=y
CPTCFG_SRAM=y
CPTCFG_SRAM_EXEC=y
CPTCFG_EEPROM_AT24=y
@ -707,7 +743,7 @@ CPTCFG_AHCI_MVEBU=y
CPTCFG_NETDEVICES=y
CPTCFG_MII=m
CPTCFG_BONDING=y
CPTCFG_MACVLAN=m
CPTCFG_VXLAN=y
CPTCFG_TUN=m
CPTCFG_VETH=y
CPTCFG_NET_DSA_MV88E6060=y
@ -717,6 +753,8 @@ CPTCFG_ETHERNET=y
CPTCFG_NET_VENDOR_MARVELL=y
CPTCFG_MVMDIO=y
CPTCFG_MVNETA=y
CPTCFG_NET_VENDOR_QUALCOMM=y
CPTCFG_RMNET=y
CPTCFG_MDIO_DEVICE=y
CPTCFG_MDIO_BUS=y
CPTCFG_MDIO_I2C=y
@ -726,7 +764,6 @@ CPTCFG_SWPHY=y
CPTCFG_SFP=y
CPTCFG_FIXED_PHY=y
CPTCFG_MARVELL_PHY=y
CPTCFG_SMSC_PHY=y
CPTCFG_PPP=m
CPTCFG_PPP_FILTER=y
CPTCFG_PPP_MPPE=m
@ -744,7 +781,6 @@ CPTCFG_INPUT_DA9063_ONKEY=y
CPTCFG_TTY=y
CPTCFG_UNIX98_PTYS=y
CPTCFG_LDISC_AUTOLOAD=y
CPTCFG_DEVMEM=y
CPTCFG_SERIAL_EARLYCON=y
CPTCFG_SERIAL_8250=y
CPTCFG_SERIAL_8250_DEPRECATED_OPTIONS=y
@ -755,6 +791,7 @@ CPTCFG_SERIAL_8250_FSL=y
CPTCFG_SERIAL_8250_DW=y
CPTCFG_SERIAL_CORE=y
CPTCFG_SERIAL_CORE_CONSOLE=y
CPTCFG_SERIAL_NULL_CONSOLE=y
CPTCFG_TCG_TPM=y
CPTCFG_I2C=y
CPTCFG_I2C_BOARDINFO=y
@ -781,7 +818,6 @@ CPTCFG_GPIO_XR=y
CPTCFG_POWER_RESET=y
CPTCFG_POWER_RESET_GPIO=y
CPTCFG_HWMON=y
CPTCFG_SENSORS_DA9063=y
CPTCFG_SENSORS_PAC1921=y
CPTCFG_SENSORS_LM75=y
CPTCFG_THERMAL=y
@ -789,6 +825,7 @@ CPTCFG_THERMAL_HWMON=y
CPTCFG_THERMAL_OF=y
CPTCFG_THERMAL_DEFAULT_GOV_STEP_WISE=y
CPTCFG_THERMAL_GOV_STEP_WISE=y
CPTCFG_CPU_THERMAL=y
CPTCFG_ARMADA_THERMAL=y
CPTCFG_WATCHDOG=y
CPTCFG_WATCHDOG_CORE=y
@ -811,20 +848,13 @@ CPTCFG_SND=m
CPTCFG_SND_TIMER=m
CPTCFG_SND_PCM=m
CPTCFG_SND_HWDEP=m
CPTCFG_SND_SEQ_DEVICE=m
CPTCFG_SND_RAWMIDI=m
CPTCFG_SND_OSSEMUL=y
CPTCFG_SND_MIXER_OSS=m
CPTCFG_SND_PCM_OSS=m
CPTCFG_SND_PCM_OSS_PLUGINS=y
CPTCFG_SND_SEQUENCER=m
CPTCFG_SND_SEQ_DUMMY=m
CPTCFG_SND_SEQUENCER_OSS=m
CPTCFG_SND_SEQ_MIDI_EVENT=m
CPTCFG_SND_SEQ_MIDI=m
CPTCFG_SND_SEQ_VIRMIDI=m
CPTCFG_SND_PCM_TIMER=y
CPTCFG_SND_DRIVERS=y
CPTCFG_SND_VIRMIDI=m
CPTCFG_SND_PCI=y
CPTCFG_SND_USB=y
CPTCFG_SND_USB_AUDIO=m
@ -911,6 +941,7 @@ CPTCFG_ARMADA_370_XP_IRQ=y
CPTCFG_RESET_CONTROLLER=y
CPTCFG_GENERIC_PHY=y
CPTCFG_NVMEM=y
CPTCFG_PM_OPP=y
CPTCFG_DCACHE_WORD_ACCESS=y
CPTCFG_FS_IOMAP=y
CPTCFG_EXT4_FS=y
@ -1056,6 +1087,7 @@ CPTCFG_DEBUG_KERNEL=y
CPTCFG_HAVE_DEBUG_KMEMLEAK=y
CPTCFG_ARCH_HAS_DEBUG_VIRTUAL=y
CPTCFG_ARCH_HAS_KCOV=y
CPTCFG_CC_HAS_SANCOV_TRACE_PC=y
CPTCFG_PANIC_ON_OOPS=y
CPTCFG_LOCK_DEBUGGING_SUPPORT=y
CPTCFG_HAVE_FUNCTION_TRACER=y
@ -1170,411 +1202,57 @@ CPTCFG_KERNEL_5_96=y
CPTCFG_KERNEL_5_97=y
CPTCFG_KERNEL_5_98=y
CPTCFG_KERNEL_5_99=y
# CPTCFG_BACKPORTED_BACKPORT_DIR is not set
# CPTCFG_BACKPORTED_BACKPORTS_VERSION is not set
# CPTCFG_BACKPORTED_BACKPORTED_KERNEL_VERSION is not set
# CPTCFG_BACKPORTED_BACKPORTED_KERNEL_NAME is not set
CPTCFG_BACKPORTED_WIRELESS=y
CPTCFG_BACKPORTED_NET_CORE=y
CPTCFG_BACKPORTED_EXPERT=y
CPTCFG_BACKPORTED_BP_MODULES=y
# CPTCFG_BACKPORTED_BPAUTO_BUILD_CORDIC is not set
# CPTCFG_BACKPORTED_BPAUTO_CORDIC is not set
# CPTCFG_BACKPORTED_BPAUTO_MII is not set
# CPTCFG_BACKPORTED_BPAUTO_BUILD_LEDS is not set
CPTCFG_BACKPORTED_BPAUTO_NEW_LEDS=y
CPTCFG_BACKPORTED_BPAUTO_LEDS_CLASS=y
CPTCFG_BACKPORTED_BPAUTO_LEDS_TRIGGERS=y
# CPTCFG_BACKPORTED_BPAUTO_USERSEL_BUILD_ALL is not set
CPTCFG_BACKPORTED_BPAUTO_BUILD_NLATTR=y
CPTCFG_BACKPORTED_BPAUTO_WANT_DEV_COREDUMP=y
CPTCFG_BACKPORTED_BPAUTO_BUILD_WANT_DEV_COREDUMP=y
# CPTCFG_BACKPORTED_BPAUTO_RHASHTABLE is not set
# CPTCFG_BACKPORTED_BPAUTO_BUCKET_LOCKS is not set
# CPTCFG_BACKPORTED_BPAUTO_REFCOUNT is not set
# CPTCFG_BACKPORTED_BPAUTO_SYSTEM_DATA_VERIFICATION is not set
# CPTCFG_BACKPORTED_BPAUTO_BUILD_SYSTEM_DATA_VERIFICATION is not set
# CPTCFG_BACKPORTED_BPAUTO_PUBLIC_KEY is not set
# CPTCFG_BACKPORTED_BPAUTO_ASN1_DECODER is not set
# CPTCFG_BACKPORTED_BPAUTO_PKCS7 is not set
CPTCFG_BACKPORTED_BPAUTO_CRYPTO_LIB_ARC4=y
CPTCFG_BACKPORTED_BPAUTO_BUILD_CRYPTO_LIB_ARC4=y
CPTCFG_BACKPORTED_CFG80211=m
CPTCFG_BACKPORTED_NL80211_TESTMODE=y
# CPTCFG_BACKPORTED_CFG80211_DEVELOPER_WARNINGS is not set
CPTCFG_BACKPORTED_CFG80211_CERTIFICATION_ONUS=y
# CPTCFG_BACKPORTED_CFG80211_REQUIRE_SIGNED_REGDB is not set
# CPTCFG_BACKPORTED_CFG80211_USE_KERNEL_REGDB_KEYS is not set
# CPTCFG_BACKPORTED_CFG80211_EXTRA_REGDB_KEYDIR is not set
# CPTCFG_BACKPORTED_CFG80211_REG_CELLULAR_HINTS is not set
# CPTCFG_BACKPORTED_CFG80211_REG_RELAX_NO_IR is not set
# CPTCFG_BACKPORTED_CFG80211_DEFAULT_PS is not set
# CPTCFG_BACKPORTED_CFG80211_DEBUGFS is not set
# CPTCFG_BACKPORTED_CFG80211_CRDA_SUPPORT is not set
CPTCFG_BACKPORTED_CFG80211_WEXT=y
# CPTCFG_BACKPORTED_CFG80211_WEXT_EXPORT is not set
# CPTCFG_BACKPORTED_LIB80211 is not set
# CPTCFG_BACKPORTED_LIB80211_CRYPT_WEP is not set
# CPTCFG_BACKPORTED_LIB80211_CRYPT_CCMP is not set
# CPTCFG_BACKPORTED_LIB80211_CRYPT_TKIP is not set
# CPTCFG_BACKPORTED_LIB80211_DEBUG is not set
CPTCFG_BACKPORTED_MAC80211=m
CPTCFG_BACKPORTED_MAC80211_HAS_RC=y
CPTCFG_BACKPORTED_MAC80211_RC_MINSTREL=y
# CPTCFG_BACKPORTED_MAC80211_RC_MINSTREL_HT is not set
# CPTCFG_BACKPORTED_MAC80211_RC_MINSTREL_VHT is not set
CPTCFG_BACKPORTED_MAC80211_RC_DEFAULT_MINSTREL=y
# CPTCFG_BACKPORTED_MAC80211_RC_DEFAULT is not set
CPTCFG_BACKPORTED_MAC80211_MESH=y
CPTCFG_BACKPORTED_MAC80211_LEDS=y
# CPTCFG_BACKPORTED_MAC80211_DEBUGFS is not set
# CPTCFG_BACKPORTED_MAC80211_MESSAGE_TRACING is not set
# CPTCFG_BACKPORTED_MAC80211_DEBUG_MENU is not set
# CPTCFG_BACKPORTED_MAC80211_NOINLINE is not set
# CPTCFG_BACKPORTED_MAC80211_VERBOSE_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MLME_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_STA_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_HT_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_OCB_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_IBSS_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_PS_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MPL_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MPATH_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MHWMP_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MESH_SYNC_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MESH_CSA_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_MESH_PS_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_TDLS_DEBUG is not set
# CPTCFG_BACKPORTED_MAC80211_DEBUG_COUNTERS is not set
# CPTCFG_BACKPORTED_MAC80211_STA_HASH_MAX_SIZE is not set
CPTCFG_BACKPORTED_WLAN=y
# CPTCFG_BACKPORTED_WIRELESS_WDS is not set
# CPTCFG_BACKPORTED_PCMCIA_RAYCS is not set
# CPTCFG_BACKPORTED_PCMCIA_WL3501 is not set
# CPTCFG_BACKPORTED_MAC80211_HWSIM is not set
# CPTCFG_BACKPORTED_USB_NET_RNDIS_WLAN is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_ADMTEK=y
CPTCFG_BACKPORTED_ADM8211=m
CPTCFG_BACKPORTED_ATH_COMMON=m
CPTCFG_BACKPORTED_WLAN_VENDOR_ATH=y
# CPTCFG_BACKPORTED_ATH_DEBUG is not set
# CPTCFG_BACKPORTED_ATH_TRACEPOINTS is not set
# CPTCFG_BACKPORTED_ATH_REG_DYNAMIC_USER_REG_HINTS is not set
# CPTCFG_BACKPORTED_ATH_REG_DYNAMIC_USER_CERT_TESTING is not set
# CPTCFG_BACKPORTED_ATH5K is not set
# CPTCFG_BACKPORTED_ATH5K_DEBUG is not set
# CPTCFG_BACKPORTED_ATH5K_TRACER is not set
# CPTCFG_BACKPORTED_ATH5K_AHB is not set
CPTCFG_BACKPORTED_ATH5K_PCI=y
# CPTCFG_BACKPORTED_ATH5K_TEST_CHANNELS is not set
CPTCFG_BACKPORTED_ATH9K_HW=m
CPTCFG_BACKPORTED_ATH9K_COMMON=m
# CPTCFG_BACKPORTED_ATH9K_COMMON_DEBUG is not set
# CPTCFG_BACKPORTED_ATH9K_DFS_DEBUGFS is not set
# CPTCFG_BACKPORTED_ATH9K_BTCOEX_SUPPORT is not set
CPTCFG_BACKPORTED_ATH9K=m
CPTCFG_BACKPORTED_ATH9K_PCI=y
# CPTCFG_BACKPORTED_ATH9K_AHB is not set
# CPTCFG_BACKPORTED_ATH9K_DEBUGFS is not set
# CPTCFG_BACKPORTED_ATH9K_STATION_STATISTICS is not set
# CPTCFG_BACKPORTED_ATH9K_TX99 is not set
# CPTCFG_BACKPORTED_ATH9K_DFS_CERTIFIED is not set
# CPTCFG_BACKPORTED_ATH9K_DYNACK is not set
# CPTCFG_BACKPORTED_ATH9K_WOW is not set
# CPTCFG_BACKPORTED_ATH9K_RFKILL is not set
# CPTCFG_BACKPORTED_ATH9K_CHANNEL_CONTEXT is not set
# CPTCFG_BACKPORTED_ATH9K_PCOEM is not set
# CPTCFG_BACKPORTED_ATH9K_HTC is not set
# CPTCFG_BACKPORTED_ATH9K_HTC_DEBUGFS is not set
# CPTCFG_BACKPORTED_ATH9K_HWRNG is not set
# CPTCFG_BACKPORTED_ATH9K_COMMON_SPECTRAL is not set
# CPTCFG_BACKPORTED_CARL9170 is not set
# CPTCFG_BACKPORTED_CARL9170_LEDS is not set
# CPTCFG_BACKPORTED_CARL9170_DEBUGFS is not set
# CPTCFG_BACKPORTED_CARL9170_WPC is not set
# CPTCFG_BACKPORTED_CARL9170_HWRNG is not set
# CPTCFG_BACKPORTED_ATH6KL is not set
# CPTCFG_BACKPORTED_ATH6KL_SDIO is not set
# CPTCFG_BACKPORTED_ATH6KL_USB is not set
# CPTCFG_BACKPORTED_ATH6KL_DEBUG is not set
# CPTCFG_BACKPORTED_ATH6KL_TRACING is not set
# CPTCFG_BACKPORTED_ATH6KL_REGDOMAIN is not set
# CPTCFG_BACKPORTED_AR5523 is not set
# CPTCFG_BACKPORTED_WIL6210 is not set
# CPTCFG_BACKPORTED_WIL6210_ISR_COR is not set
# CPTCFG_BACKPORTED_WIL6210_TRACING is not set
# CPTCFG_BACKPORTED_WIL6210_DEBUGFS is not set
CPTCFG_BACKPORTED_ATH10K=m
CPTCFG_BACKPORTED_ATH10K_CE=y
CPTCFG_BACKPORTED_ATH10K_PCI=m
# CPTCFG_BACKPORTED_ATH10K_AHB is not set
# CPTCFG_BACKPORTED_ATH10K_SDIO is not set
# CPTCFG_BACKPORTED_ATH10K_USB is not set
# CPTCFG_BACKPORTED_ATH10K_SNOC is not set
# CPTCFG_BACKPORTED_ATH10K_DEBUG is not set
# CPTCFG_BACKPORTED_ATH10K_DEBUGFS is not set
# CPTCFG_BACKPORTED_ATH10K_SPECTRAL is not set
# CPTCFG_BACKPORTED_ATH10K_TRACING is not set
CPTCFG_BACKPORTED_ATH10K_DFS_CERTIFIED=y
# CPTCFG_BACKPORTED_WCN36XX is not set
# CPTCFG_BACKPORTED_WCN36XX_DEBUGFS is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_ATMEL=y
# CPTCFG_BACKPORTED_ATMEL is not set
# CPTCFG_BACKPORTED_PCI_ATMEL is not set
# CPTCFG_BACKPORTED_PCMCIA_ATMEL is not set
# CPTCFG_BACKPORTED_AT76C50X_USB is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_BROADCOM=y
# CPTCFG_BACKPORTED_B43 is not set
# CPTCFG_BACKPORTED_B43_BCMA is not set
# CPTCFG_BACKPORTED_B43_SSB is not set
# CPTCFG_BACKPORTED_B43_BUSES_BCMA_AND_SSB is not set
# CPTCFG_BACKPORTED_B43_BUSES_BCMA is not set
# CPTCFG_BACKPORTED_B43_BUSES_SSB is not set
# CPTCFG_BACKPORTED_B43_PCI_AUTOSELECT is not set
# CPTCFG_BACKPORTED_B43_PCICORE_AUTOSELECT is not set
# CPTCFG_BACKPORTED_B43_SDIO is not set
# CPTCFG_BACKPORTED_B43_BCMA_PIO is not set
# CPTCFG_BACKPORTED_B43_PIO is not set
# CPTCFG_BACKPORTED_B43_PHY_G is not set
# CPTCFG_BACKPORTED_B43_PHY_N is not set
# CPTCFG_BACKPORTED_B43_PHY_LP is not set
# CPTCFG_BACKPORTED_B43_PHY_HT is not set
# CPTCFG_BACKPORTED_B43_PHY_LCN is not set
# CPTCFG_BACKPORTED_B43_PHY_AC is not set
# CPTCFG_BACKPORTED_B43_LEDS is not set
# CPTCFG_BACKPORTED_B43_HWRNG is not set
# CPTCFG_BACKPORTED_B43_DEBUG is not set
# CPTCFG_BACKPORTED_B43LEGACY is not set
# CPTCFG_BACKPORTED_B43LEGACY_PCI_AUTOSELECT is not set
# CPTCFG_BACKPORTED_B43LEGACY_PCICORE_AUTOSELECT is not set
# CPTCFG_BACKPORTED_B43LEGACY_LEDS is not set
# CPTCFG_BACKPORTED_B43LEGACY_HWRNG is not set
# CPTCFG_BACKPORTED_B43LEGACY_DEBUG is not set
# CPTCFG_BACKPORTED_B43LEGACY_DMA is not set
# CPTCFG_BACKPORTED_B43LEGACY_PIO is not set
# CPTCFG_BACKPORTED_B43LEGACY_DMA_AND_PIO_MODE is not set
# CPTCFG_BACKPORTED_B43LEGACY_DMA_MODE is not set
# CPTCFG_BACKPORTED_B43LEGACY_PIO_MODE is not set
# CPTCFG_BACKPORTED_BRCMUTIL is not set
# CPTCFG_BACKPORTED_BRCMSMAC is not set
# CPTCFG_BACKPORTED_BRCMFMAC is not set
# CPTCFG_BACKPORTED_BRCMFMAC_PROTO_BCDC is not set
# CPTCFG_BACKPORTED_BRCMFMAC_PROTO_MSGBUF is not set
# CPTCFG_BACKPORTED_BRCMFMAC_SDIO is not set
# CPTCFG_BACKPORTED_BRCMFMAC_USB is not set
# CPTCFG_BACKPORTED_BRCMFMAC_PCIE is not set
# CPTCFG_BACKPORTED_BRCM_TRACING is not set
# CPTCFG_BACKPORTED_BRCMDBG is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_CISCO=y
# CPTCFG_BACKPORTED_AIRO is not set
# CPTCFG_BACKPORTED_AIRO_CS is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_INTEL=y
# CPTCFG_BACKPORTED_IPW2100 is not set
# CPTCFG_BACKPORTED_IPW2100_MONITOR is not set
# CPTCFG_BACKPORTED_IPW2100_DEBUG is not set
# CPTCFG_BACKPORTED_IPW2200 is not set
# CPTCFG_BACKPORTED_IPW2200_MONITOR is not set
# CPTCFG_BACKPORTED_IPW2200_RADIOTAP is not set
# CPTCFG_BACKPORTED_IPW2200_PROMISCUOUS is not set
# CPTCFG_BACKPORTED_IPW2200_QOS is not set
# CPTCFG_BACKPORTED_IPW2200_DEBUG is not set
# CPTCFG_BACKPORTED_LIBIPW is not set
# CPTCFG_BACKPORTED_LIBIPW_DEBUG is not set
# CPTCFG_BACKPORTED_IWLEGACY is not set
# CPTCFG_BACKPORTED_IWL4965 is not set
# CPTCFG_BACKPORTED_IWL3945 is not set
# CPTCFG_BACKPORTED_IWLEGACY_DEBUG is not set
# CPTCFG_BACKPORTED_IWLEGACY_DEBUGFS is not set
# CPTCFG_BACKPORTED_IWLWIFI is not set
# CPTCFG_BACKPORTED_IWLWIFI_LEDS is not set
# CPTCFG_BACKPORTED_IWLDVM is not set
# CPTCFG_BACKPORTED_IWLMVM is not set
# CPTCFG_BACKPORTED_IWLWIFI_OPMODE_MODULAR is not set
# CPTCFG_BACKPORTED_IWLWIFI_BCAST_FILTERING is not set
# CPTCFG_BACKPORTED_IWLWIFI_PCIE_RTPM is not set
# CPTCFG_BACKPORTED_IWLWIFI_DEBUG is not set
# CPTCFG_BACKPORTED_IWLWIFI_DEBUGFS is not set
# CPTCFG_BACKPORTED_IWLWIFI_DEVICE_TRACING is not set
CPTCFG_BACKPORTED_IWLWIFI=m
CPTCFG_BACKPORTED_IWLWIFI_LEDS=y
CPTCFG_BACKPORTED_IWLDVM=m
CPTCFG_BACKPORTED_IWLMVM=m
CPTCFG_BACKPORTED_IWLWIFI_OPMODE_MODULAR=y
CPTCFG_BACKPORTED_IWLWIFI_DEBUG=y
CPTCFG_BACKPORTED_WLAN_VENDOR_INTERSIL=y
# CPTCFG_BACKPORTED_PRISM54 is not set
# CPTCFG_BACKPORTED_HOSTAP is not set
# CPTCFG_BACKPORTED_HOSTAP_FIRMWARE is not set
# CPTCFG_BACKPORTED_HOSTAP_FIRMWARE_NVRAM is not set
# CPTCFG_BACKPORTED_HOSTAP_PLX is not set
# CPTCFG_BACKPORTED_HOSTAP_PCI is not set
# CPTCFG_BACKPORTED_HOSTAP_CS is not set
# CPTCFG_BACKPORTED_HERMES is not set
# CPTCFG_BACKPORTED_HERMES_PRISM is not set
# CPTCFG_BACKPORTED_HERMES_CACHE_FW_ON_INIT is not set
# CPTCFG_BACKPORTED_APPLE_AIRPORT is not set
# CPTCFG_BACKPORTED_PLX_HERMES is not set
# CPTCFG_BACKPORTED_TMD_HERMES is not set
# CPTCFG_BACKPORTED_NORTEL_HERMES is not set
# CPTCFG_BACKPORTED_PCI_HERMES is not set
# CPTCFG_BACKPORTED_PCMCIA_HERMES is not set
# CPTCFG_BACKPORTED_PCMCIA_SPECTRUM is not set
# CPTCFG_BACKPORTED_ORINOCO_USB is not set
# CPTCFG_BACKPORTED_P54_COMMON is not set
# CPTCFG_BACKPORTED_P54_USB is not set
# CPTCFG_BACKPORTED_P54_PCI is not set
# CPTCFG_BACKPORTED_P54_SPI is not set
# CPTCFG_BACKPORTED_P54_SPI_DEFAULT_EEPROM is not set
# CPTCFG_BACKPORTED_P54_LEDS is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_MARVELL=y
# CPTCFG_BACKPORTED_MWL8K is not set
# CPTCFG_BACKPORTED_LIBERTAS is not set
# CPTCFG_BACKPORTED_LIBERTAS_USB is not set
# CPTCFG_BACKPORTED_LIBERTAS_CS is not set
# CPTCFG_BACKPORTED_LIBERTAS_SDIO is not set
# CPTCFG_BACKPORTED_LIBERTAS_SPI is not set
# CPTCFG_BACKPORTED_LIBERTAS_DEBUG is not set
# CPTCFG_BACKPORTED_LIBERTAS_MESH is not set
# CPTCFG_BACKPORTED_LIBERTAS_THINFIRM is not set
# CPTCFG_BACKPORTED_LIBERTAS_THINFIRM_DEBUG is not set
# CPTCFG_BACKPORTED_LIBERTAS_THINFIRM_USB is not set
# CPTCFG_BACKPORTED_MWIFIEX is not set
# CPTCFG_BACKPORTED_MWIFIEX_SDIO is not set
# CPTCFG_BACKPORTED_MWIFIEX_PCIE is not set
# CPTCFG_BACKPORTED_MWIFIEX_USB is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_MEDIATEK=y
# CPTCFG_BACKPORTED_MT7601U is not set
# CPTCFG_BACKPORTED_MT76_CORE is not set
# CPTCFG_BACKPORTED_MT76_LEDS is not set
# CPTCFG_BACKPORTED_MT76_USB is not set
# CPTCFG_BACKPORTED_MT76x2_COMMON is not set
# CPTCFG_BACKPORTED_MT76x0U is not set
# CPTCFG_BACKPORTED_MT76x2E is not set
# CPTCFG_BACKPORTED_MT76x2U is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_MICROCHIP=y
CPTCFG_BACKPORTED_WLAN_VENDOR_RALINK=y
# CPTCFG_BACKPORTED_RT2X00 is not set
# CPTCFG_BACKPORTED_RT2400PCI is not set
# CPTCFG_BACKPORTED_RT2500PCI is not set
# CPTCFG_BACKPORTED_RT61PCI is not set
# CPTCFG_BACKPORTED_RT2800PCI is not set
# CPTCFG_BACKPORTED_RT2800PCI_RT33XX is not set
# CPTCFG_BACKPORTED_RT2800PCI_RT35XX is not set
# CPTCFG_BACKPORTED_RT2800PCI_RT53XX is not set
# CPTCFG_BACKPORTED_RT2800PCI_RT3290 is not set
# CPTCFG_BACKPORTED_RT2500USB is not set
# CPTCFG_BACKPORTED_RT73USB is not set
# CPTCFG_BACKPORTED_RT2800USB is not set
# CPTCFG_BACKPORTED_RT2800USB_RT33XX is not set
# CPTCFG_BACKPORTED_RT2800USB_RT35XX is not set
# CPTCFG_BACKPORTED_RT2800USB_RT3573 is not set
# CPTCFG_BACKPORTED_RT2800USB_RT53XX is not set
# CPTCFG_BACKPORTED_RT2800USB_RT55XX is not set
# CPTCFG_BACKPORTED_RT2800USB_UNKNOWN is not set
# CPTCFG_BACKPORTED_RT2800SOC is not set
# CPTCFG_BACKPORTED_RT2800_LIB is not set
# CPTCFG_BACKPORTED_RT2800_LIB_MMIO is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_MMIO is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_PCI is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_SOC is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_USB is not set
# CPTCFG_BACKPORTED_RT2X00_LIB is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_FIRMWARE is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_CRYPTO is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_LEDS is not set
# CPTCFG_BACKPORTED_RT2X00_LIB_DEBUGFS is not set
# CPTCFG_BACKPORTED_RT2X00_DEBUG is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_REALTEK=y
# CPTCFG_BACKPORTED_RTL8180 is not set
# CPTCFG_BACKPORTED_RTL8187 is not set
# CPTCFG_BACKPORTED_RTL8187_LEDS is not set
# CPTCFG_BACKPORTED_RTL_CARDS is not set
# CPTCFG_BACKPORTED_RTL8192CE is not set
# CPTCFG_BACKPORTED_RTL8192SE is not set
# CPTCFG_BACKPORTED_RTL8192DE is not set
# CPTCFG_BACKPORTED_RTL8723AE is not set
# CPTCFG_BACKPORTED_RTL8723BE is not set
# CPTCFG_BACKPORTED_RTL8188EE is not set
# CPTCFG_BACKPORTED_RTL8192EE is not set
# CPTCFG_BACKPORTED_RTL8821AE is not set
# CPTCFG_BACKPORTED_RTL8192CU is not set
# CPTCFG_BACKPORTED_RTLWIFI is not set
# CPTCFG_BACKPORTED_RTLWIFI_PCI is not set
# CPTCFG_BACKPORTED_RTLWIFI_USB is not set
# CPTCFG_BACKPORTED_RTLWIFI_DEBUG is not set
# CPTCFG_BACKPORTED_RTL8192C_COMMON is not set
# CPTCFG_BACKPORTED_RTL8723_COMMON is not set
# CPTCFG_BACKPORTED_RTLBTCOEXIST is not set
# CPTCFG_BACKPORTED_RTL8XXXU is not set
# CPTCFG_BACKPORTED_RTL8XXXU_UNTESTED is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_RSI=y
CPTCFG_BACKPORTED_RSI_91X=m
# CPTCFG_BACKPORTED_RSI_DEBUGFS is not set
CPTCFG_BACKPORTED_RSI_SDIO=m
CPTCFG_BACKPORTED_RSI_USB=m
# CPTCFG_BACKPORTED_RSI_COEX is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_ST=y
# CPTCFG_BACKPORTED_CW1200 is not set
# CPTCFG_BACKPORTED_CW1200_WLAN_SDIO is not set
# CPTCFG_BACKPORTED_CW1200_WLAN_SPI is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_TI=y
# CPTCFG_BACKPORTED_WILINK_PLATFORM_DATA is not set
# CPTCFG_BACKPORTED_WL1251 is not set
# CPTCFG_BACKPORTED_WL1251_SPI is not set
# CPTCFG_BACKPORTED_WL1251_SDIO is not set
# CPTCFG_BACKPORTED_WL12XX is not set
# CPTCFG_BACKPORTED_WL18XX is not set
# CPTCFG_BACKPORTED_WLCORE is not set
# CPTCFG_BACKPORTED_WLCORE_SPI is not set
# CPTCFG_BACKPORTED_WLCORE_SDIO is not set
CPTCFG_BACKPORTED_WLAN_VENDOR_ZYDAS=y
# CPTCFG_BACKPORTED_USB_ZD1201 is not set
# CPTCFG_BACKPORTED_ZD1211RW is not set
# CPTCFG_BACKPORTED_ZD1211RW_DEBUG is not set
# CPTCFG_BACKPORTED_WLAN_VENDOR_QUANTENNA is not set
# CPTCFG_BACKPORTED_QTNFMAC is not set
# CPTCFG_BACKPORTED_QTNFMAC_PEARL_PCIE is not set
# CPTCFG_BACKPORTED_USB_NET_DRIVERS is not set
# CPTCFG_BACKPORTED_USB_CATC is not set
# CPTCFG_BACKPORTED_USB_KAWETH is not set
# CPTCFG_BACKPORTED_USB_PEGASUS is not set
# CPTCFG_BACKPORTED_USB_RTL8150 is not set
# CPTCFG_BACKPORTED_USB_RTL8152 is not set
# CPTCFG_BACKPORTED_USB_LAN78XX is not set
# CPTCFG_BACKPORTED_USB_USBNET is not set
# CPTCFG_BACKPORTED_USB_NET_AX8817X is not set
# CPTCFG_BACKPORTED_USB_NET_AX88179_178A is not set
# CPTCFG_BACKPORTED_USB_NET_CDCETHER is not set
# CPTCFG_BACKPORTED_USB_NET_CDC_EEM is not set
# CPTCFG_BACKPORTED_USB_NET_CDC_NCM is not set
# CPTCFG_BACKPORTED_USB_NET_HUAWEI_CDC_NCM is not set
# CPTCFG_BACKPORTED_USB_NET_CDC_MBIM is not set
# CPTCFG_BACKPORTED_USB_NET_DM9601 is not set
# CPTCFG_BACKPORTED_USB_NET_SR9700 is not set
# CPTCFG_BACKPORTED_USB_NET_SR9800 is not set
# CPTCFG_BACKPORTED_USB_NET_SMSC75XX is not set
# CPTCFG_BACKPORTED_USB_NET_SMSC95XX is not set
# CPTCFG_BACKPORTED_USB_NET_GL620A is not set
# CPTCFG_BACKPORTED_USB_NET_NET1080 is not set
# CPTCFG_BACKPORTED_USB_NET_PLUSB is not set
# CPTCFG_BACKPORTED_USB_NET_MCS7830 is not set
# CPTCFG_BACKPORTED_USB_NET_RNDIS_HOST is not set
# CPTCFG_BACKPORTED_USB_NET_CDC_SUBSET_ENABLE is not set
# CPTCFG_BACKPORTED_USB_NET_CDC_SUBSET is not set
# CPTCFG_BACKPORTED_USB_ALI_M5632 is not set
# CPTCFG_BACKPORTED_USB_AN2720 is not set
# CPTCFG_BACKPORTED_USB_BELKIN is not set
# CPTCFG_BACKPORTED_USB_ARMLINUX is not set
# CPTCFG_BACKPORTED_USB_EPSON2888 is not set
# CPTCFG_BACKPORTED_USB_KC2190 is not set
# CPTCFG_BACKPORTED_USB_NET_ZAURUS is not set
# CPTCFG_BACKPORTED_USB_NET_CX82310_ETH is not set
# CPTCFG_BACKPORTED_USB_NET_KALMIA is not set
# CPTCFG_BACKPORTED_USB_NET_QMI_WWAN is not set
# CPTCFG_BACKPORTED_USB_HSO is not set
# CPTCFG_BACKPORTED_USB_NET_INT51X1 is not set
# CPTCFG_BACKPORTED_USB_CDC_PHONET is not set
# CPTCFG_BACKPORTED_USB_IPHETH is not set
# CPTCFG_BACKPORTED_USB_SIERRA_NET is not set
# CPTCFG_BACKPORTED_USB_VL600 is not set
# CPTCFG_BACKPORTED_USB_NET_CH9200 is not set
# CPTCFG_BACKPORTED_USB_ACM is not set
# CPTCFG_BACKPORTED_USB_PRINTER is not set
# CPTCFG_BACKPORTED_USB_WDM is not set
# CPTCFG_BACKPORTED_USB_TMC is not set
# CPTCFG_BACKPORTED_STAGING is not set
# CPTCFG_BACKPORTED_RTL8723BS is not set
# CPTCFG_BACKPORTED_R8188EU is not set
# CPTCFG_BACKPORTED_88EU_AP_MODE is not set
# CPTCFG_BACKPORTED_R8822BE is not set
# CPTCFG_BACKPORTED_RTLWIFI_DEBUG_ST is not set

View File

@ -2,4 +2,7 @@ KERNEL_MODULE_AUTOLOAD += "\
ath \
ath10k_core \
ath10k_pci \
iwlmvm \
iwlwifi \
iwldvm \
"