mirror of
https://github.com/armbian/build.git
synced 2025-08-12 14:16:57 +02:00
* sunxi-5.19: Initial state for megous patches * Add the ability to do 5.19 * Move to 5.19 - tested both - removed broken Opi Zero xradio driver https://armbian.atlassian.net/browse/AR-1280 * sunxi-5.19: fix tag for switch * sunxi-5.19: Initial state for armbian patches * sunxi-5.19: Add armbian patches to series.conf file * sanxi-5.19: Add other 2 patches * sunxi-5.19: Limit to use the 'wireless/xradio' module Limit the kernel version to less than 5.19 to use the 'wireless/xradio' module Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
83 lines
2.7 KiB
Diff
83 lines
2.7 KiB
Diff
From 8caf700212eddb297ebc098eddfb9131ecfc16bd Mon Sep 17 00:00:00 2001
|
|
From: Po Hao Huang <phhuang@realtek.com>
|
|
Date: Wed, 8 Jun 2022 19:32:22 +0800
|
|
Subject: [PATCH 410/417] ieee80211: add trigger frame definition
|
|
|
|
Define trigger stype of control frame, and its checking function, struct
|
|
and trigger type within common_info of trigger.
|
|
|
|
Signed-off-by: Po Hao Huang <phhuang@realtek.com>
|
|
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
|
|
Signed-off-by: Kalle Valo <kvalo@kernel.org>
|
|
Link: https://lore.kernel.org/r/20220608113224.11193-2-pkshih@realtek.com
|
|
---
|
|
include/linux/ieee80211.h | 31 +++++++++++++++++++++++++++++++
|
|
1 file changed, 31 insertions(+)
|
|
|
|
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
|
|
index 75d40acb6..5c65ae6b8 100644
|
|
--- a/include/linux/ieee80211.h
|
|
+++ b/include/linux/ieee80211.h
|
|
@@ -76,6 +76,7 @@
|
|
#define IEEE80211_STYPE_ACTION 0x00D0
|
|
|
|
/* control */
|
|
+#define IEEE80211_STYPE_TRIGGER 0x0020
|
|
#define IEEE80211_STYPE_CTL_EXT 0x0060
|
|
#define IEEE80211_STYPE_BACK_REQ 0x0080
|
|
#define IEEE80211_STYPE_BACK 0x0090
|
|
@@ -295,6 +296,17 @@ static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
|
|
|
|
#define IEEE80211_HT_CTL_LEN 4
|
|
|
|
+/* trigger type within common_info of trigger frame */
|
|
+#define IEEE80211_TRIGGER_TYPE_MASK 0xf
|
|
+#define IEEE80211_TRIGGER_TYPE_BASIC 0x0
|
|
+#define IEEE80211_TRIGGER_TYPE_BFRP 0x1
|
|
+#define IEEE80211_TRIGGER_TYPE_MU_BAR 0x2
|
|
+#define IEEE80211_TRIGGER_TYPE_MU_RTS 0x3
|
|
+#define IEEE80211_TRIGGER_TYPE_BSRP 0x4
|
|
+#define IEEE80211_TRIGGER_TYPE_GCR_MU_BAR 0x5
|
|
+#define IEEE80211_TRIGGER_TYPE_BQRP 0x6
|
|
+#define IEEE80211_TRIGGER_TYPE_NFRP 0x7
|
|
+
|
|
struct ieee80211_hdr {
|
|
__le16 frame_control;
|
|
__le16 duration_id;
|
|
@@ -324,6 +336,15 @@ struct ieee80211_qos_hdr {
|
|
__le16 qos_ctrl;
|
|
} __packed __aligned(2);
|
|
|
|
+struct ieee80211_trigger {
|
|
+ __le16 frame_control;
|
|
+ __le16 duration;
|
|
+ u8 ra[ETH_ALEN];
|
|
+ u8 ta[ETH_ALEN];
|
|
+ __le64 common_info;
|
|
+ u8 variable[];
|
|
+} __packed __aligned(2);
|
|
+
|
|
/**
|
|
* ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set
|
|
* @fc: frame control bytes in little-endian byteorder
|
|
@@ -729,6 +750,16 @@ static inline bool ieee80211_is_qos_nullfunc(__le16 fc)
|
|
cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_QOS_NULLFUNC);
|
|
}
|
|
|
|
+/**
|
|
+ * ieee80211_is_trigger - check if frame is trigger frame
|
|
+ * @fc: frame control field in little-endian byteorder
|
|
+ */
|
|
+static inline bool ieee80211_is_trigger(__le16 fc)
|
|
+{
|
|
+ return (fc & cpu_to_le16(IEEE80211_FCTL_FTYPE | IEEE80211_FCTL_STYPE)) ==
|
|
+ cpu_to_le16(IEEE80211_FTYPE_CTL | IEEE80211_STYPE_TRIGGER);
|
|
+}
|
|
+
|
|
/**
|
|
* ieee80211_is_any_nullfunc - check if frame is regular or QoS nullfunc frame
|
|
* @fc: frame control bytes in little-endian byteorder
|
|
--
|
|
2.35.3
|
|
|