summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAditya Kumar Singh <quic_adisi@quicinc.com>2024-01-30 19:39:14 +0530
committeriwlwifi publisher <>2024-04-17 12:51:26 +0000
commitde72840474d877c3783952eac9479ab3b5c89922 (patch)
treeb5eadd22b64bf0097a3c80a65b4e63a754ffadec
parent4b0f1b6bcb3d656299376891b799d21cf404dad7 (diff)
downloadbackport-iwlwifi-de72840474d877c3783952eac9479ab3b5c89922.tar.gz
wifi: cfg80211: send link id in channel_switch ops
Currently, during channel switch, no link id information is passed down. In order to support channel switch during Multi Link Operation, it is required to pass link id as well. Add changes to pass link id in the channel_switch cfg80211_ops. type=feature ticket=none Change-Id: I4ace04c0bdbde3b028ec0a5a3be2471cdb1efb67 Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com> Link: https://msgid.link/20240130140918.1172387-2-quic_adisi@quicinc.com Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/94166 automatic-review: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> tested: iil_jenkins iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM> Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> x-iwlwifi-stack-dev: a71ab6cb3ba2b45f11000ca6057d0f473acf2017
-rw-r--r--include/net/cfg80211.h3
-rw-r--r--net/wireless/nl80211.c1
-rw-r--r--net/wireless/trace.h7
-rw-r--r--versions2
4 files changed, 10 insertions, 3 deletions
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index b00cd49c12..6d59dd188e 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1556,6 +1556,8 @@ struct cfg80211_ap_update {
* @radar_required: whether radar detection is required on the new channel
* @block_tx: whether transmissions should be blocked while changing
* @count: number of beacons until switch
+ * @link_id: defines the link on which channel switch is expected during
+ * MLO. 0 in case of non-MLO.
*/
struct cfg80211_csa_settings {
struct cfg80211_chan_def chandef;
@@ -1568,6 +1570,7 @@ struct cfg80211_csa_settings {
bool radar_required;
bool block_tx;
u8 count;
+ u8 link_id;
};
/**
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 82921eac73..ff98bf7e05 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -10339,6 +10339,7 @@ skip_beacons:
if (info->attrs[NL80211_ATTR_CH_SWITCH_BLOCK_TX])
params.block_tx = true;
+ params.link_id = link_id;
err = rdev_channel_switch(rdev, dev, &params);
free:
diff --git a/net/wireless/trace.h b/net/wireless/trace.h
index fb347ec96b..da45cd0f54 100644
--- a/net/wireless/trace.h
+++ b/net/wireless/trace.h
@@ -2342,6 +2342,7 @@ TRACE_EVENT(rdev_channel_switch,
__field(u8, count)
__dynamic_array(u16, bcn_ofs, params->n_counter_offsets_beacon)
__dynamic_array(u16, pres_ofs, params->n_counter_offsets_presp)
+ __field(u8, link_id)
),
TP_fast_assign(
WIPHY_ASSIGN;
@@ -2359,11 +2360,13 @@ TRACE_EVENT(rdev_channel_switch,
memcpy(__get_dynamic_array(pres_ofs),
params->counter_offsets_presp,
params->n_counter_offsets_presp * sizeof(u16));
+ __entry->link_id = params->link_id;
),
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT
- ", block_tx: %d, count: %u, radar_required: %d",
+ ", block_tx: %d, count: %u, radar_required: %d, link_id: %d",
WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG,
- __entry->block_tx, __entry->count, __entry->radar_required)
+ __entry->block_tx, __entry->count, __entry->radar_required,
+ __entry->link_id)
);
TRACE_EVENT(rdev_set_qos_map,
diff --git a/versions b/versions
index 76b87c386f..c930a208ed 100644
--- a/versions
+++ b/versions
@@ -2,4 +2,4 @@ BACKPORTS_VERSION="(see git)"
BACKPORTED_KERNEL_VERSION="(see git)"
BACKPORTED_KERNEL_NAME="iwlwifi"
BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__
-BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11907:b924ea7a"
+BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11908:a71ab6cb"