diff --git a/recipes-connectivity/iw/iw_5.16.bb b/recipes-connectivity/iw/iw_5.19.bb
similarity index 83%
rename from recipes-connectivity/iw/iw_5.16.bb
rename to recipes-connectivity/iw/iw_5.19.bb
index cf176a3..ae43225 100644
--- a/recipes-connectivity/iw/iw_5.16.bb
+++ b/recipes-connectivity/iw/iw_5.19.bb
@@ -14,7 +14,10 @@
            file://separate-objdir.patch \
 "
 
-SRC_URI[sha256sum] = "9c91f2560b258d9660e656ad37fa5bd100ac255865dcfb26076a576b10d8f3a7"
+SRC_URI[sha256sum] = "2a44676d28a87bbc232903d5d573e7618e4fae0cea3a1aff067a26fa66652b75"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/patches:"
+require patches/patches.inc
 
 inherit pkgconfig
 
diff --git a/recipes-connectivity/iw/patches/001-nl80211_h_sync.patch b/recipes-connectivity/iw/patches/001-nl80211_h_sync.patch
new file mode 100644
index 0000000..49d08d9
--- /dev/null
+++ b/recipes-connectivity/iw/patches/001-nl80211_h_sync.patch
@@ -0,0 +1,554 @@
+--- a/nl80211.h
++++ b/nl80211.h
+@@ -11,7 +11,7 @@
+  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
+  * Copyright 2008 Colin McCabe <colin@cozybit.com>
+  * Copyright 2015-2017	Intel Deutschland GmbH
+- * Copyright (C) 2018-2022 Intel Corporation
++ * Copyright (C) 2018-2021 Intel Corporation
+  *
+  * Permission to use, copy, modify, and/or distribute this software for any
+  * purpose with or without fee is hereby granted, provided that the above
+@@ -301,29 +301,6 @@
+  */
+ 
+ /**
+- * DOC: FILS shared key crypto offload
+- *
+- * This feature is applicable to drivers running in AP mode.
+- *
+- * FILS shared key crypto offload can be advertised by drivers by setting
+- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
+- * FILS shared key crypto offload should be able to encrypt and decrypt
+- * association frames for FILS shared key authentication as per IEEE 802.11ai.
+- * With this capability, for FILS key derivation, drivers depend on userspace.
+- *
+- * After FILS key derivation, userspace shares the FILS AAD details with the
+- * driver and the driver stores the same to use in decryption of association
+- * request and in encryption of association response. The below parameters
+- * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
+- *	%NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
+- *	%NL80211_ATTR_FILS_KEK - Used for encryption or decryption
+- *	%NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
+- *			(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+- *
+- * Once the association is done, the driver cleans the FILS AAD data.
+- */
+-
+-/**
+  * enum nl80211_commands - supported nl80211 commands
+  *
+  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
+@@ -1226,17 +1203,6 @@
+  * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
+  *	has completed
+  *
+- * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
+- *	&NL80211_ATTR_MAC - for STA MAC address
+- *	&NL80211_ATTR_FILS_KEK - for KEK
+- *	&NL80211_ATTR_FILS_NONCES - for FILS Nonces
+- *		(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
+- *
+- * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
+- *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
+- *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
+- *      specify the timeout value.
+- *
+  * @NL80211_CMD_MAX: highest used command number
+  * @__NL80211_CMD_AFTER_LAST: internal use
+  */
+@@ -1477,10 +1443,6 @@ enum nl80211_commands {
+ 	NL80211_CMD_COLOR_CHANGE_ABORTED,
+ 	NL80211_CMD_COLOR_CHANGE_COMPLETED,
+ 
+-	NL80211_CMD_SET_FILS_AAD,
+-
+-	NL80211_CMD_ASSOC_COMEBACK,
+-
+ 	/* add new commands above here */
+ 
+ 	/* used to define NL80211_CMD_MAX below */
+@@ -2477,9 +2439,7 @@ enum nl80211_commands {
+  *	space supports external authentication. This attribute shall be used
+  *	with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
+  *	may offload authentication processing to user space if this capability
+- *	is indicated in the respective requests from the user space. (This flag
+- *	attribute deprecated for %NL80211_CMD_START_AP, use
+- *	%NL80211_ATTR_AP_SETTINGS_FLAGS)
++ *	is indicated in the respective requests from the user space.
+  *
+  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
+  *	u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
+@@ -2655,13 +2615,8 @@ enum nl80211_commands {
+  *	switching on a different channel during CAC detection on the selected
+  *	radar channel.
+  *
+- * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
+- *	enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
+- *	used with %NL80211_CMD_START_AP request.
+- *
+- * @NL80211_ATTR_EHT_CAPABILITY: EHT Capability information element (from
+- *	association request when used with NL80211_CMD_NEW_STATION). Can be set
+- *	only if %NL80211_STA_FLAG_WME is set.
++ * @NL80211_ATTR_WIPHY_ANTENNA_GAIN: Configured antenna gain. Used to reduce
++ *	transmit power to stay within regulatory limits. u32, dBi.
+  *
+  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
+  * @NL80211_ATTR_MAX: highest attribute number currently defined
+@@ -3171,11 +3126,7 @@ enum nl80211_attrs {
+ 
+ 	NL80211_ATTR_RADAR_BACKGROUND,
+ 
+-	NL80211_ATTR_AP_SETTINGS_FLAGS,
+-
+-	NL80211_ATTR_EHT_CAPABILITY,
+-
+-	NL80211_ATTR_DISABLE_EHT,
++	NL80211_ATTR_WIPHY_ANTENNA_GAIN,
+ 
+ 	/* add attributes here, update the policy in nl80211.c */
+ 
+@@ -3232,8 +3183,6 @@ enum nl80211_attrs {
+ #define NL80211_HE_MAX_CAPABILITY_LEN           54
+ #define NL80211_MAX_NR_CIPHER_SUITES		5
+ #define NL80211_MAX_NR_AKM_SUITES		2
+-#define NL80211_EHT_MIN_CAPABILITY_LEN          13
+-#define NL80211_EHT_MAX_CAPABILITY_LEN          51
+ 
+ #define NL80211_MIN_REMAIN_ON_CHANNEL_TIME	10
+ 
+@@ -3261,7 +3210,7 @@ enum nl80211_attrs {
+  *	and therefore can't be created in the normal ways, use the
+  *	%NL80211_CMD_START_P2P_DEVICE and %NL80211_CMD_STOP_P2P_DEVICE
+  *	commands to create and destroy one
+- * @NL80211_IFTYPE_OCB: Outside Context of a BSS
++ * @NL80211_IF_TYPE_OCB: Outside Context of a BSS
+  *	This mode corresponds to the MIB variable dot11OCBActivated=true
+  * @NL80211_IFTYPE_NAN: NAN device interface type (not a netdev)
+  * @NL80211_IFTYPE_MAX: highest interface type number currently defined
+@@ -3403,56 +3352,6 @@ enum nl80211_he_ru_alloc {
+ };
+ 
+ /**
+- * enum nl80211_eht_gi - EHT guard interval
+- * @NL80211_RATE_INFO_EHT_GI_0_8: 0.8 usec
+- * @NL80211_RATE_INFO_EHT_GI_1_6: 1.6 usec
+- * @NL80211_RATE_INFO_EHT_GI_3_2: 3.2 usec
+- */
+-enum nl80211_eht_gi {
+-	NL80211_RATE_INFO_EHT_GI_0_8,
+-	NL80211_RATE_INFO_EHT_GI_1_6,
+-	NL80211_RATE_INFO_EHT_GI_3_2,
+-};
+-
+-/**
+- * enum nl80211_eht_ru_alloc - EHT RU allocation values
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_26: 26-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_52: 52-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_52P26: 52+26-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_106: 106-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_106P26: 106+26 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_242: 242-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_484: 484-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_484P242: 484+242 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996: 996-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484: 996+484 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242: 996+484+242 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996: 2x996-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484: 2x996+484 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996: 3x996-tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484: 3x996+484 tone RU allocation
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC_4x996: 4x996-tone RU allocation
+- */
+-enum nl80211_eht_ru_alloc {
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_26,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_52,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_52P26,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_106,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_106P26,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_242,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_484,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_484P242,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_996,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC_4x996,
+-};
+-
+-/**
+  * enum nl80211_rate_info - bitrate information
+  *
+  * These attribute types are used with %NL80211_STA_INFO_TXRATE
+@@ -3491,13 +3390,6 @@ enum nl80211_eht_ru_alloc {
+  * @NL80211_RATE_INFO_HE_DCM: HE DCM value (u8, 0/1)
+  * @NL80211_RATE_INFO_RU_ALLOC: HE RU allocation, if not present then
+  *	non-OFDMA was used (u8, see &enum nl80211_he_ru_alloc)
+- * @NL80211_RATE_INFO_320_MHZ_WIDTH: 320 MHz bitrate
+- * @NL80211_RATE_INFO_EHT_MCS: EHT MCS index (u8, 0-15)
+- * @NL80211_RATE_INFO_EHT_NSS: EHT NSS value (u8, 1-8)
+- * @NL80211_RATE_INFO_EHT_GI: EHT guard interval identifier
+- *	(u8, see &enum nl80211_eht_gi)
+- * @NL80211_RATE_INFO_EHT_RU_ALLOC: EHT RU allocation, if not present then
+- *	non-OFDMA was used (u8, see &enum nl80211_eht_ru_alloc)
+  * @__NL80211_RATE_INFO_AFTER_LAST: internal use
+  */
+ enum nl80211_rate_info {
+@@ -3519,11 +3411,6 @@ enum nl80211_rate_info {
+ 	NL80211_RATE_INFO_HE_GI,
+ 	NL80211_RATE_INFO_HE_DCM,
+ 	NL80211_RATE_INFO_HE_RU_ALLOC,
+-	NL80211_RATE_INFO_320_MHZ_WIDTH,
+-	NL80211_RATE_INFO_EHT_MCS,
+-	NL80211_RATE_INFO_EHT_NSS,
+-	NL80211_RATE_INFO_EHT_GI,
+-	NL80211_RATE_INFO_EHT_RU_ALLOC,
+ 
+ 	/* keep last */
+ 	__NL80211_RATE_INFO_AFTER_LAST,
+@@ -3834,20 +3721,13 @@ enum nl80211_mpath_info {
+  *     capabilities IE
+  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
+  *     defined in HE capabilities IE
++ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
++ *     defined
+  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
+  *	given for all 6 GHz band channels
+  * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
+  *	advertised on this band/for this iftype (binary)
+- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC: EHT MAC capabilities as in EHT
+- *	capabilities element
+- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY: EHT PHY capabilities as in EHT
+- *	capabilities element
+- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET: EHT supported NSS/MCS as in EHT
+- *	capabilities element
+- * @NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE: EHT PPE thresholds information as
+- *	defined in EHT capabilities element
+  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
+- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
+  */
+ enum nl80211_band_iftype_attr {
+ 	__NL80211_BAND_IFTYPE_ATTR_INVALID,
+@@ -3859,10 +3739,6 @@ enum nl80211_band_iftype_attr {
+ 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
+ 	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+ 	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
+-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC,
+-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY,
+-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET,
+-	NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE,
+ 
+ 	/* keep last */
+ 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
+@@ -4007,10 +3883,6 @@ enum nl80211_wmm_rule {
+  *	on this channel in current regulatory domain.
+  * @NL80211_FREQUENCY_ATTR_16MHZ: 16 MHz operation is allowed
+  *	on this channel in current regulatory domain.
+- * @NL80211_FREQUENCY_ATTR_NO_320MHZ: any 320 MHz channel using this channel
+- *	as the primary or any of the secondary channels isn't possible
+- * @NL80211_FREQUENCY_ATTR_NO_EHT: EHT operation is not allowed on this channel
+- *	in current regulatory domain.
+  * @NL80211_FREQUENCY_ATTR_MAX: highest frequency attribute number
+  *	currently defined
+  * @__NL80211_FREQUENCY_ATTR_AFTER_LAST: internal use
+@@ -4047,8 +3919,6 @@ enum nl80211_frequency_attr {
+ 	NL80211_FREQUENCY_ATTR_4MHZ,
+ 	NL80211_FREQUENCY_ATTR_8MHZ,
+ 	NL80211_FREQUENCY_ATTR_16MHZ,
+-	NL80211_FREQUENCY_ATTR_NO_320MHZ,
+-	NL80211_FREQUENCY_ATTR_NO_EHT,
+ 
+ 	/* keep last */
+ 	__NL80211_FREQUENCY_ATTR_AFTER_LAST,
+@@ -4247,7 +4117,6 @@ enum nl80211_sched_scan_match_attr {
+  * @NL80211_RRF_NO_80MHZ: 80MHz operation not allowed
+  * @NL80211_RRF_NO_160MHZ: 160MHz operation not allowed
+  * @NL80211_RRF_NO_HE: HE operation not allowed
+- * @NL80211_RRF_NO_320MHZ: 320MHz operation not allowed
+  */
+ enum nl80211_reg_rule_flags {
+ 	NL80211_RRF_NO_OFDM		= 1<<0,
+@@ -4266,7 +4135,6 @@ enum nl80211_reg_rule_flags {
+ 	NL80211_RRF_NO_80MHZ		= 1<<15,
+ 	NL80211_RRF_NO_160MHZ		= 1<<16,
+ 	NL80211_RRF_NO_HE		= 1<<17,
+-	NL80211_RRF_NO_320MHZ		= 1<<18,
+ };
+ 
+ #define NL80211_RRF_PASSIVE_SCAN	NL80211_RRF_NO_IR
+@@ -4764,8 +4632,6 @@ enum nl80211_key_mode {
+  * @NL80211_CHAN_WIDTH_4: 4 MHz OFDM channel
+  * @NL80211_CHAN_WIDTH_8: 8 MHz OFDM channel
+  * @NL80211_CHAN_WIDTH_16: 16 MHz OFDM channel
+- * @NL80211_CHAN_WIDTH_320: 320 MHz channel, the %NL80211_ATTR_CENTER_FREQ1
+- *	attribute must be provided as well
+  */
+ enum nl80211_chan_width {
+ 	NL80211_CHAN_WIDTH_20_NOHT,
+@@ -4781,7 +4647,6 @@ enum nl80211_chan_width {
+ 	NL80211_CHAN_WIDTH_4,
+ 	NL80211_CHAN_WIDTH_8,
+ 	NL80211_CHAN_WIDTH_16,
+-	NL80211_CHAN_WIDTH_320,
+ };
+ 
+ /**
+@@ -5096,7 +4961,6 @@ enum nl80211_txrate_gi {
+  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
+  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
+  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
+- * @NL80211_BAND_LC: light communication band (placeholder)
+  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
+  *	since newer kernel versions may support more bands
+  */
+@@ -5106,7 +4970,6 @@ enum nl80211_band {
+ 	NL80211_BAND_60GHZ,
+ 	NL80211_BAND_6GHZ,
+ 	NL80211_BAND_S1GHZ,
+-	NL80211_BAND_LC,
+ 
+ 	NUM_NL80211_BANDS,
+ };
+@@ -5673,7 +5536,7 @@ enum nl80211_iface_limit_attrs {
+  *	=> allows 8 of AP/GO that can have BI gcd >= min gcd
+  *
+  *	numbers = [ #{STA} <= 2 ], channels = 2, max = 2
+- *	=> allows two STAs on the same or on different channels
++ *	=> allows two STAs on different channels
+  *
+  *	numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
+  *	=> allows a STA plus three P2P interfaces
+@@ -5718,7 +5581,7 @@ enum nl80211_if_combination_attrs {
+  * @NL80211_PLINK_ESTAB: mesh peer link is established
+  * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled
+  * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh
+- *	plink are discarded, except for authentication frames
++ *	plink are discarded
+  * @NUM_NL80211_PLINK_STATES: number of peer link states
+  * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states
+  */
+@@ -5855,15 +5718,13 @@ enum nl80211_tdls_operation {
+ 	NL80211_TDLS_DISABLE_LINK,
+ };
+ 
+-/**
++/*
+  * enum nl80211_ap_sme_features - device-integrated AP features
+- * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
+- *	when user space indicates support for SA Query procedures offload during
+- *	"start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
+- */
++ * Reserved for future use, no bits are defined in
++ * NL80211_ATTR_DEVICE_AP_SME yet.
+ enum nl80211_ap_sme_features {
+-	NL80211_AP_SME_SA_QUERY_OFFLOAD		= 1 << 0,
+ };
++ */
+ 
+ /**
+  * enum nl80211_feature_flags - device/driver features
+@@ -6166,11 +6027,6 @@ enum nl80211_feature_flags {
+  * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
+  *	detection and change announcemnts.
+  *
+- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
+- *	FILS encryption and decryption for (Re)Association Request and Response
+- *	frames. Userspace has to share FILS AAD details to the driver by using
+- *	@NL80211_CMD_SET_FILS_AAD.
+- *
+  * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
+  *	detection.
+  *
+@@ -6239,7 +6095,6 @@ enum nl80211_ext_feature_index {
+ 	NL80211_EXT_FEATURE_SECURE_RTT,
+ 	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+ 	NL80211_EXT_FEATURE_BSS_COLOR,
+-	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+ 	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
+ 
+ 	/* add new features before the definition below */
+@@ -7548,7 +7403,7 @@ enum nl80211_sar_specs_attrs {
+  * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
+  *	to advertise the maximum profile periodicity supported by the driver
+  *	if EMA is enabled. Driver should indicate EMA support to the userspace
+- *	by setting wiphy->ema_max_profile_periodicity to
++ *	by setting wiphy->mbssid_max_ema_profile_periodicity to
+  *	a non-zero value.
+  *
+  * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
+@@ -7567,7 +7422,7 @@ enum nl80211_sar_specs_attrs {
+  *
+  * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
+  *	Setting this flag is permitted only if the driver advertises EMA support
+- *	by setting wiphy->ema_max_profile_periodicity to non-zero.
++ *	by setting wiphy->mbssid_max_ema_profile_periodicity to non-zero.
+  *
+  * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
+  * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
+@@ -7586,20 +7441,4 @@ enum nl80211_mbssid_config_attributes {
+ 	NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+ };
+ 
+-/**
+- * enum nl80211_ap_settings_flags - AP settings flags
+- *
+- * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
+- *	authentication.
+- * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
+- *	procedures offload to driver. If driver advertises
+- *	%NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
+- *	ignore SA Query procedures and validations when this flag is set by
+- *	userspace.
+- */
+-enum nl80211_ap_settings_flags {
+-	NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT	= 1 << 0,
+-	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1,
+-};
+-
+ #endif /* __LINUX_NL80211_H */
+--- a/event.c
++++ b/event.c
+@@ -1292,9 +1292,6 @@ static int print_event(struct nl_msg *ms
+ 	case NL80211_CMD_CH_SWITCH_NOTIFY:
+ 		parse_ch_switch_notify(tb, gnlh->cmd);
+ 		break;
+-	case NL80211_CMD_ASSOC_COMEBACK: /* 147 */
+-		parse_assoc_comeback(tb, gnlh->cmd);
+-		break;
+ 	default:
+ 		printf("unknown event %d (%s)\n",
+ 		       gnlh->cmd, command_name(gnlh->cmd));
+--- a/info.c
++++ b/info.c
+@@ -164,7 +164,6 @@ static void ext_feat_print(enum nl80211_
+ 	ext_feat_case(PROT_RANGE_NEGO_AND_MEASURE,
+ 		      "support for MFP in range measurement negotiation/procedure");
+ 	ext_feat_case(BSS_COLOR, "BSS coloring support");
+-	ext_feat_case(FILS_CRYPTO_OFFLOAD, "FILS crypto offload");
+ 	ext_feat_case(RADAR_BACKGROUND, "Radar background support");
+ 	}
+ }
+--- a/interface.c
++++ b/interface.c
+@@ -362,8 +362,6 @@ char *channel_width_name(enum nl80211_ch
+ 		return "5 MHz";
+ 	case NL80211_CHAN_WIDTH_10:
+ 		return "10 MHz";
+-	case NL80211_CHAN_WIDTH_320:
+-		return "320 MHz";
+ 	default:
+ 		return "unknown";
+ 	}
+--- a/util.c
++++ b/util.c
+@@ -508,7 +508,6 @@ static int parse_freqs(struct chandef *c
+ 	case NL80211_CHAN_WIDTH_40:
+ 	case NL80211_CHAN_WIDTH_80:
+ 	case NL80211_CHAN_WIDTH_160:
+-	case NL80211_CHAN_WIDTH_320:
+ 		need_cf1 = true;
+ 		break;
+ 	case NL80211_CHAN_WIDTH_1:
+@@ -626,10 +625,6 @@ int parse_freqchan(struct chandef *chand
+ 		  .width = NL80211_CHAN_WIDTH_160,
+ 		  .freq1_diff = 0,
+ 		  .chantype = -1 },
+-		{ .name = "320MHz",
+-		  .width = NL80211_CHAN_WIDTH_320,
+-		  .freq1_diff = 0,
+-		  .chantype = -1 },
+ 	};
+ 	const struct chanmode *chanmode_selected = NULL;
+ 	unsigned int freq;
+@@ -1599,48 +1594,6 @@ void print_eht_info(struct nlattr *nl_if
+ 	print_iftype_line(tb[NL80211_BAND_IFTYPE_ATTR_IFTYPES]);
+ 	printf("\n");
+ 
+-	if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]) {
+-		len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]);
+-		if (len > sizeof(mac_cap))
+-			len = sizeof(mac_cap);
+-		memcpy(mac_cap,
+-		       nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC]),
+-		       len);
+-	}
+-
+-	if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]) {
+-		len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]);
+-
+-		if (len > sizeof(phy_cap))
+-			len = sizeof(phy_cap);
+-
+-		memcpy(phy_cap,
+-		       nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY]),
+-		       len);
+-	}
+-
+-	if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]) {
+-		len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]);
+-		if (len > sizeof(mcs_set))
+-			len = sizeof(mcs_set);
+-		memcpy(mcs_set,
+-		       nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET]),
+-		       len);
+-
+-		// Assume that all parts of the MCS set are present
+-		mcs_len = sizeof(mcs_set);
+-	}
+-
+-	if (tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]) {
+-		len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]);
+-		if (len > sizeof(ppet))
+-			len = sizeof(ppet);
+-		memcpy(ppet,
+-		       nla_data(tb[NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE]),
+-		       len);
+-		ppet_len = len;
+-	}
+-
+ 	if (tb[NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY]) {
+ 		len = nla_len(tb[NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY]);
+ 
+--- a/reg.c
++++ b/reg.c
+@@ -210,7 +210,6 @@ static int print_reg_handler(struct nl_m
+ 		PARSE_FLAG(NL80211_RRF_NO_80MHZ, "NO-80MHZ");
+ 		PARSE_FLAG(NL80211_RRF_NO_160MHZ, "NO-160MHZ");
+ 		PARSE_FLAG(NL80211_RRF_NO_HE, "NO-HE");
+-		PARSE_FLAG(NL80211_RRF_NO_320MHZ, "NO-320MHZ");
+ 
+ 		/* Kernels that support NO_IR always turn on both flags */
+ 		if ((flags & NL80211_RRF_NO_IR) && (flags & __NL80211_RRF_NO_IBSS)) {
+--- a/station.c
++++ b/station.c
+@@ -239,8 +239,6 @@ void parse_bitrate(struct nlattr *bitrat
+ 		pos += snprintf(pos, buflen - (pos - buf), " 80P80MHz");
+ 	if (rinfo[NL80211_RATE_INFO_160_MHZ_WIDTH])
+ 		pos += snprintf(pos, buflen - (pos - buf), " 160MHz");
+-	if (rinfo[NL80211_RATE_INFO_320_MHZ_WIDTH])
+-		pos += snprintf(pos, buflen - (pos - buf), " 320MHz");
+ 	if (rinfo[NL80211_RATE_INFO_SHORT_GI])
+ 		pos += snprintf(pos, buflen - (pos - buf), " short GI");
+ 	if (rinfo[NL80211_RATE_INFO_VHT_NSS])
+@@ -261,18 +259,6 @@ void parse_bitrate(struct nlattr *bitrat
+ 	if (rinfo[NL80211_RATE_INFO_HE_RU_ALLOC])
+ 		pos += snprintf(pos, buflen - (pos - buf),
+ 				" HE-RU-ALLOC %d", nla_get_u8(rinfo[NL80211_RATE_INFO_HE_RU_ALLOC]));
+-	if (rinfo[NL80211_RATE_INFO_EHT_MCS])
+-		pos += snprintf(pos, buflen - (pos - buf),
+-				" EHT-MCS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_MCS]));
+-	if (rinfo[NL80211_RATE_INFO_EHT_NSS])
+-		pos += snprintf(pos, buflen - (pos - buf),
+-				" EHT-NSS %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_NSS]));
+-	if (rinfo[NL80211_RATE_INFO_EHT_GI])
+-		pos += snprintf(pos, buflen - (pos - buf),
+-				" EHT-GI %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_GI]));
+-	if (rinfo[NL80211_RATE_INFO_EHT_RU_ALLOC])
+-		pos += snprintf(pos, buflen - (pos - buf),
+-				" EHT-RU-ALLOC %d", nla_get_u8(rinfo[NL80211_RATE_INFO_EHT_RU_ALLOC]));
+ }
+ 
+ static char *get_chain_signal(struct nlattr *attr_list)
diff --git a/recipes-connectivity/iw/patches/010-Revert-iw-allow-specifying-CFLAGS-LIBS-externally.patch b/recipes-connectivity/iw/patches/010-Revert-iw-allow-specifying-CFLAGS-LIBS-externally.patch
new file mode 100644
index 0000000..1254efa
--- /dev/null
+++ b/recipes-connectivity/iw/patches/010-Revert-iw-allow-specifying-CFLAGS-LIBS-externally.patch
@@ -0,0 +1,68 @@
+From 1f3706d10812d70adefe32fe0d7d3a3ec25374f0 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Sun, 21 Nov 2021 00:02:57 +0100
+Subject: Revert "iw: allow specifying CFLAGS/LIBS externally"
+
+This reverts commit 1325244b77d56fd7a16d1e35fdae0efc151920b1.
+
+The OpenWrt build system provides the CFLAGS and LIBS names from the 
+package Makefile to overwrite them for libnl-tiny. This is not possible 
+after this upstream change which we revert here any more
+
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ Makefile | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -45,30 +45,30 @@ NLLIBNAME = libnl-1
+ endif
+ 
+ ifeq ($(NL2FOUND),Y)
+-override CFLAGS += -DCONFIG_LIBNL20
+-override LIBS += -lnl-genl
++CFLAGS += -DCONFIG_LIBNL20
++LIBS += -lnl-genl
+ NLLIBNAME = libnl-2.0
+ endif
+ 
+ ifeq ($(NL3xFOUND),Y)
+ # libnl 3.2 might be found as 3.2 and 3.0
+ NL3FOUND = N
+-override CFLAGS += -DCONFIG_LIBNL30
+-override LIBS += -lnl-genl-3
++CFLAGS += -DCONFIG_LIBNL30
++LIBS += -lnl-genl-3
+ NLLIBNAME = libnl-3.0
+ endif
+ 
+ ifeq ($(NL3FOUND),Y)
+-override CFLAGS += -DCONFIG_LIBNL30
+-override LIBS += -lnl-genl
++CFLAGS += -DCONFIG_LIBNL30
++LIBS += -lnl-genl
+ NLLIBNAME = libnl-3.0
+ endif
+ 
+ # nl-3.1 has a broken libnl-gnl-3.1.pc file
+ # as show by pkg-config --debug --libs --cflags --exact-version=3.1 libnl-genl-3.1;echo $?
+ ifeq ($(NL31FOUND),Y)
+-override CFLAGS += -DCONFIG_LIBNL30
+-override LIBS += -lnl-genl
++CFLAGS += -DCONFIG_LIBNL30
++LIBS += -lnl-genl
+ NLLIBNAME = libnl-3.1
+ endif
+ 
+@@ -76,8 +76,8 @@ ifeq ($(NLLIBNAME),)
+ $(error Cannot find development files for any supported version of libnl)
+ endif
+ 
+-override LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
+-override CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))
++LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
++CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))
+ endif # NO_PKG_CONFIG
+ 
+ ifeq ($(V),1)
diff --git a/recipes-connectivity/iw/patches/120-antenna_gain.patch b/recipes-connectivity/iw/patches/120-antenna_gain.patch
new file mode 100644
index 0000000..f8d537f
--- /dev/null
+++ b/recipes-connectivity/iw/patches/120-antenna_gain.patch
@@ -0,0 +1,33 @@
+--- a/phy.c
++++ b/phy.c
+@@ -855,3 +855,30 @@ static int handle_get_txq(struct nl80211
+ COMMAND(get, txq, "",
+ 	NL80211_CMD_GET_WIPHY, 0, CIB_PHY, handle_get_txq,
+ 	"Get TXQ parameters.");
++
++static int handle_antenna_gain(struct nl80211_state *state,
++			       struct nl_msg *msg,
++			       int argc, char **argv,
++			       enum id_input id)
++{
++	char *endptr;
++	int dbm;
++
++	/* get the required args */
++	if (argc != 1)
++		return 1;
++
++	dbm = strtol(argv[0], &endptr, 10);
++	if (*endptr)
++		return 2;
++
++	NLA_PUT_U32(msg, NL80211_ATTR_WIPHY_ANTENNA_GAIN, dbm);
++
++	return 0;
++
++ nla_put_failure:
++	return -ENOBUFS;
++}
++COMMAND(set, antenna_gain, "<antenna gain in dBm>",
++	NL80211_CMD_SET_WIPHY, 0, CIB_PHY, handle_antenna_gain,
++	"Specify antenna gain.");
diff --git a/recipes-connectivity/iw/patches/130-survey-bss-rx-time.patch b/recipes-connectivity/iw/patches/130-survey-bss-rx-time.patch
new file mode 100644
index 0000000..d488c14
--- /dev/null
+++ b/recipes-connectivity/iw/patches/130-survey-bss-rx-time.patch
@@ -0,0 +1,12 @@
+--- a/survey.c
++++ b/survey.c
+@@ -60,6 +60,9 @@ static int print_survey_handler(struct n
+ 	if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX])
+ 		printf("\tchannel receive time:\t\t%llu ms\n",
+ 			(unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_RX]));
++	if (sinfo[NL80211_SURVEY_INFO_TIME_BSS_RX])
++		printf("\tchannel BSS receive time:\t%llu ms\n",
++			(unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_TIME_BSS_RX]));
+ 	if (sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX])
+ 		printf("\tchannel transmit time:\t\t%llu ms\n",
+ 			(unsigned long long)nla_get_u64(sinfo[NL80211_SURVEY_INFO_CHANNEL_TIME_TX]));
diff --git a/recipes-connectivity/iw/patches/200-reduce_size.patch b/recipes-connectivity/iw/patches/200-reduce_size.patch
new file mode 100644
index 0000000..88df56b
--- /dev/null
+++ b/recipes-connectivity/iw/patches/200-reduce_size.patch
@@ -0,0 +1,366 @@
+--- a/event.c
++++ b/event.c
+@@ -971,6 +971,7 @@ static int print_event(struct nl_msg *ms
+ 	}
+ 
+ 	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;
+@@ -1006,6 +1007,7 @@ static int print_event(struct nl_msg *ms
+ 	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)
+@@ -1088,6 +1090,7 @@ static int print_event(struct nl_msg *ms
+ 		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);
+@@ -1292,9 +1295,9 @@ static int print_event(struct nl_msg *ms
+ 	case NL80211_CMD_CH_SWITCH_NOTIFY:
+ 		parse_ch_switch_notify(tb, gnlh->cmd);
+ 		break;
++#endif
+ 	default:
+-		printf("unknown event %d (%s)\n",
+-		       gnlh->cmd, command_name(gnlh->cmd));
++		printf("unknown event %d\n", gnlh->cmd);
+ 		break;
+ 	}
+ 
+--- a/info.c
++++ b/info.c
+@@ -308,6 +308,7 @@ 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) {
+@@ -324,6 +325,7 @@ next:
+ 				printf("\n");
+ 			}
+ 			}
++#endif
+ 		}
+ 	}
+ 
+@@ -389,6 +391,7 @@ 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;
+@@ -400,6 +403,7 @@ next:
+ 					cipher_name(ciphers[i]));
+ 		}
+ 	}
++#endif
+ 
+ 	if (tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX] &&
+ 	    tb_msg[NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX])
+@@ -417,9 +421,11 @@ 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;
+@@ -509,6 +515,7 @@ broken_combination:
+ 			printf("\tinterface combinations are not supported\n");
+ 	}
+ 
++#ifdef IW_FULL
+ 	if (tb_msg[NL80211_ATTR_SUPPORTED_COMMANDS]) {
+ 		printf("\tSupported commands:\n");
+ 		nla_for_each_nested(nl_cmd, tb_msg[NL80211_ATTR_SUPPORTED_COMMANDS], rem_cmd)
+@@ -606,6 +613,7 @@ broken_combination:
+ 				printf("\t\t * wake up on TCP connection\n");
+ 		}
+ 	}
++#endif
+ 
+ 	if (tb_msg[NL80211_ATTR_ROAM_SUPPORT])
+ 		printf("\tDevice supports roaming.\n");
+@@ -644,6 +652,7 @@ broken_combination:
+ 		}
+ 	}
+ 
++#ifdef IW_FULL
+ 	if (tb_msg[NL80211_ATTR_FEATURE_FLAGS]) {
+ 		unsigned int features = nla_get_u32(tb_msg[NL80211_ATTR_FEATURE_FLAGS]);
+ 
+@@ -708,6 +717,7 @@ broken_combination:
+ 		if (features & NL80211_FEATURE_ND_RANDOM_MAC_ADDR)
+ 			printf("\tDevice supports randomizing MAC-addr in net-detect scans.\n");
+ 	}
++#endif
+ 
+ 	if (tb_msg[NL80211_ATTR_TDLS_SUPPORT])
+ 		printf("\tDevice supports T-DLS.\n");
+@@ -773,6 +783,7 @@ TOPLEVEL(list, NULL, NL80211_CMD_GET_WIP
+ 	 "List all wireless devices and their capabilities.");
+ TOPLEVEL(phy, NULL, NL80211_CMD_GET_WIPHY, NLM_F_DUMP, CIB_NONE, handle_info, NULL);
+ 
++#ifdef IW_FULL
+ static int handle_commands(struct nl80211_state *state, struct nl_msg *msg,
+ 			   int argc, char **argv, enum id_input id)
+ {
+@@ -784,6 +795,7 @@ static int handle_commands(struct nl8021
+ }
+ TOPLEVEL(commands, NULL, NL80211_CMD_GET_WIPHY, 0, CIB_NONE, handle_commands,
+ 	 "list all known commands and their decimal & hex value");
++#endif
+ 
+ static int print_feature_handler(struct nl_msg *msg, void *arg)
+ {
+--- a/scan.c
++++ b/scan.c
+@@ -1306,6 +1306,9 @@ static void print_ht_op(const uint8_t ty
+ 	printf("\t\t * secondary channel offset: %s\n",
+ 		ht_secondary_offset[data[1] & 0x3]);
+ 	printf("\t\t * STA channel width: %s\n", sta_chan_width[(data[1] & 0x4)>>2]);
++#ifndef IW_FULL
++	return;
++#endif
+ 	printf("\t\t * RIFS: %d\n", (data[1] & 0x8)>>3);
+ 	printf("\t\t * HT protection: %s\n", protection[data[2] & 0x3]);
+ 	printf("\t\t * non-GF present: %d\n", (data[2] & 0x4) >> 2);
+@@ -1716,6 +1719,14 @@ static void print_ie(const struct ie_pri
+ 
+ static const struct ie_print ieprinters[] = {
+ 	[0] = { "SSID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
++	[45] = { "HT capabilities", print_ht_capa, 26, 26, BIT(PRINT_SCAN), },
++	[48] = { "RSN", print_rsn, 2, 255, BIT(PRINT_SCAN), },
++	[61] = { "HT operation", print_ht_op, 22, 22, BIT(PRINT_SCAN), },
++	[62] = { "Secondary Channel Offset", print_secchan_offs, 1, 1, BIT(PRINT_SCAN), },
++	[114] = { "MESH ID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
++	[191] = { "VHT capabilities", print_vht_capa, 12, 255, BIT(PRINT_SCAN), },
++	[192] = { "VHT operation", print_vht_oper, 5, 255, BIT(PRINT_SCAN), },
++#ifdef IW_FULL
+ 	[1] = { "Supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
+ 	[3] = { "DS Parameter set", print_ds, 1, 1, BIT(PRINT_SCAN), },
+ 	[5] = { "TIM", print_tim, 4, 255, BIT(PRINT_SCAN), },
+@@ -1725,26 +1736,20 @@ static const struct ie_print ieprinters[
+ 	[32] = { "Power constraint", print_powerconstraint, 1, 1, BIT(PRINT_SCAN), },
+ 	[35] = { "TPC report", print_tpcreport, 2, 2, BIT(PRINT_SCAN), },
+ 	[42] = { "ERP", print_erp, 1, 255, BIT(PRINT_SCAN), },
+-	[45] = { "HT capabilities", print_ht_capa, 26, 26, BIT(PRINT_SCAN), },
+ 	[47] = { "ERP D4.0", print_erp, 1, 255, BIT(PRINT_SCAN), },
+ 	[51] = { "AP Channel Report", print_ap_channel_report, 1, 255, BIT(PRINT_SCAN), },
+ 	[59] = { "Supported operating classes", print_supp_op_classes, 1, 255, BIT(PRINT_SCAN), },
+ 	[66] = { "Measurement Pilot Transmission", print_measurement_pilot_tx, 1, 255, BIT(PRINT_SCAN), },
+ 	[74] = { "Overlapping BSS scan params", print_obss_scan_params, 14, 255, BIT(PRINT_SCAN), },
+-	[61] = { "HT operation", print_ht_op, 22, 22, BIT(PRINT_SCAN), },
+-	[62] = { "Secondary Channel Offset", print_secchan_offs, 1, 1, BIT(PRINT_SCAN), },
+-	[191] = { "VHT capabilities", print_vht_capa, 12, 255, BIT(PRINT_SCAN), },
+-	[192] = { "VHT operation", print_vht_oper, 5, 255, BIT(PRINT_SCAN), },
+-	[48] = { "RSN", print_rsn, 2, 255, BIT(PRINT_SCAN), },
+ 	[50] = { "Extended supported rates", print_supprates, 0, 255, BIT(PRINT_SCAN), },
+ 	[70] = { "RM enabled capabilities", print_rm_enabled_capabilities, 5, 5, BIT(PRINT_SCAN), },
+ 	[113] = { "MESH Configuration", print_mesh_conf, 7, 7, BIT(PRINT_SCAN), },
+-	[114] = { "MESH ID", print_ssid, 0, 32, BIT(PRINT_SCAN) | BIT(PRINT_LINK), },
+ 	[127] = { "Extended capabilities", print_capabilities, 0, 255, BIT(PRINT_SCAN), },
+ 	[107] = { "802.11u Interworking", print_interworking, 0, 255, BIT(PRINT_SCAN), },
+ 	[108] = { "802.11u Advertisement", print_11u_advert, 0, 255, BIT(PRINT_SCAN), },
+ 	[111] = { "802.11u Roaming Consortium", print_11u_rcon, 2, 255, BIT(PRINT_SCAN), },
+ 	[195] = { "Transmit Power Envelope", print_tx_power_envelope, 2, 5, BIT(PRINT_SCAN), },
++#endif
+ };
+ 
+ static void print_wifi_wpa(const uint8_t type, uint8_t len, const uint8_t *data,
+@@ -2080,8 +2085,10 @@ static void print_wifi_wps(const uint8_t
+ 
+ static const struct ie_print wifiprinters[] = {
+ 	[1] = { "WPA", print_wifi_wpa, 2, 255, BIT(PRINT_SCAN), },
++#ifdef IW_FULL
+ 	[2] = { "WMM", print_wifi_wmm, 1, 255, BIT(PRINT_SCAN), },
+ 	[4] = { "WPS", print_wifi_wps, 0, 255, BIT(PRINT_SCAN), },
++#endif
+ };
+ 
+ static inline void print_p2p(const uint8_t type, uint8_t len,
+@@ -2244,6 +2251,10 @@ static void print_vendor(unsigned char l
+ 		return;
+ 	}
+ 
++#ifdef IW_FULL
++	return;
++#endif
++
+ 	if (len >= 4 && memcmp(data, wfa_oui, 3) == 0) {
+ 		if (data[3] < ARRAY_SIZE(wfa_printers) &&
+ 		    wfa_printers[data[3]].name &&
+@@ -2377,6 +2388,7 @@ static void print_capa_non_dmg(__u16 cap
+ 		printf(" ESS");
+ 	if (capa & WLAN_CAPABILITY_IBSS)
+ 		printf(" IBSS");
++#ifdef IW_FULL
+ 	if (capa & WLAN_CAPABILITY_CF_POLLABLE)
+ 		printf(" CfPollable");
+ 	if (capa & WLAN_CAPABILITY_CF_POLL_REQUEST)
+@@ -2405,6 +2417,7 @@ static void print_capa_non_dmg(__u16 cap
+ 		printf(" DelayedBACK");
+ 	if (capa & WLAN_CAPABILITY_IMM_BACK)
+ 		printf(" ImmediateBACK");
++#endif
+ }
+ 
+ static int print_bss_handler(struct nl_msg *msg, void *arg)
+@@ -2489,8 +2502,10 @@ static int print_bss_handler(struct nl_m
+ 	if (bss[NL80211_BSS_FREQUENCY]) {
+ 		int freq = nla_get_u32(bss[NL80211_BSS_FREQUENCY]);
+ 		printf("\tfreq: %d\n", freq);
++#ifdef IW_FULL
+ 		if (freq > 45000)
+ 			is_dmg = true;
++#endif
+ 	}
+ 	if (bss[NL80211_BSS_BEACON_INTERVAL])
+ 		printf("\tbeacon interval: %d TUs\n",
+@@ -2684,6 +2699,7 @@ static int handle_stop_sched_scan(struct
+ 	return 0;
+ }
+ 
++#ifdef IW_FULL
+ COMMAND(scan, sched_start,
+ 	SCHED_SCAN_OPTIONS,
+ 	NL80211_CMD_START_SCHED_SCAN, 0, CIB_NETDEV, handle_start_sched_scan,
+@@ -2694,3 +2710,4 @@ COMMAND(scan, sched_start,
+ COMMAND(scan, sched_stop, "",
+ 	NL80211_CMD_STOP_SCHED_SCAN, 0, CIB_NETDEV, handle_stop_sched_scan,
+ 	"Stop an ongoing scheduled scan.");
++#endif
+--- a/util.c
++++ b/util.c
+@@ -153,6 +153,7 @@ static const char *commands[NL80211_CMD_
+ 
+ static char cmdbuf[100];
+ 
++#ifdef IW_FULL
+ const char *command_name(enum nl80211_commands cmd)
+ {
+ 	if (cmd <= NL80211_CMD_MAX && commands[cmd])
+@@ -160,6 +161,7 @@ const char *command_name(enum nl80211_co
+ 	sprintf(cmdbuf, "Unknown command (%d)", cmd);
+ 	return cmdbuf;
+ }
++#endif
+ 
+ int ieee80211_channel_to_frequency(int chan, enum nl80211_band band)
+ {
+@@ -311,6 +313,9 @@ int parse_keys(struct nl_msg *msg, char
+ 	char keybuf[13];
+ 	int pos = 0;
+ 
++#ifndef IW_FULL
++	return 1;
++#endif
+ 	if (!*argc)
+ 		return 1;
+ 
+--- a/Makefile
++++ b/Makefile
+@@ -23,6 +23,12 @@ _OBJS := $(sort $(patsubst %.c,%.o,$(wil
+ 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
++ifdef IW_FULL
++  CFLAGS += -DIW_FULL
++else
++  OBJS:=$(filter-out $(patsubst %,%.o,$(OBJS_FULL)),$(OBJS))
++endif
+ ALL = iw
+ 
+ ifeq ($(NO_PKG_CONFIG),)
+--- a/station.c
++++ b/station.c
+@@ -777,10 +777,12 @@ static int handle_station_set_plink(stru
+  nla_put_failure:
+ 	return -ENOBUFS;
+ }
++#ifdef IW_FULL
+ COMMAND_ALIAS(station, set, "<MAC address> plink_action <open|block>",
+ 	NL80211_CMD_SET_STATION, 0, CIB_NETDEV, handle_station_set_plink,
+ 	"Set mesh peer link action for this station (peer).",
+ 	select_station_cmd, station_set_plink);
++#endif
+ 
+ static int handle_station_set_vlan(struct nl80211_state *state,
+ 				   struct nl_msg *msg,
+@@ -875,11 +877,13 @@ static int handle_station_set_mesh_power
+ nla_put_failure:
+ 	return -ENOBUFS;
+ }
++#ifdef IW_FULL
+ COMMAND_ALIAS(station, set, "<MAC address> mesh_power_mode "
+ 	"<active|light|deep>", NL80211_CMD_SET_STATION, 0, CIB_NETDEV,
+ 	handle_station_set_mesh_power_mode,
+ 	"Set link-specific mesh power mode for this station",
+ 	select_station_cmd, station_set_mesh_power_mode);
++#endif
+ 
+ static int handle_station_set_airtime_weight(struct nl80211_state *state,
+ 					     struct nl_msg *msg,
+--- a/interface.c
++++ b/interface.c
+@@ -627,9 +627,11 @@ static int handle_interface_wds_peer(str
+  nla_put_failure:
+ 	return -ENOBUFS;
+ }
++#ifdef IW_FULL
+ COMMAND(set, peer, "<MAC address>",
+ 	NL80211_CMD_SET_WDS_PEER, 0, CIB_NETDEV, handle_interface_wds_peer,
+ 	"Set interface WDS peer.");
++#endif
+ 
+ static int set_mcast_rate(struct nl80211_state *state,
+ 			  struct nl_msg *msg,
+@@ -719,6 +721,7 @@ static int handle_chan(struct nl80211_st
+ 	return handle_chanfreq(state, msg, true, argc, argv, id);
+ }
+ 
++#ifdef IW_FULL
+ SECTION(switch);
+ COMMAND(switch, freq,
+ 	"<freq> [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz] [beacons <count>] [block-tx]\n"
+@@ -990,3 +993,4 @@ COMMAND(set, tidconf, "[peer <MAC addres
+ 	"  $ iw dev wlan0 set tidconf peer xx:xx:xx:xx:xx:xx tids 0x2 bitrates auto\n"
+ 	"  $ iw dev wlan0 set tidconf peer xx:xx:xx:xx:xx:xx tids 0x2 bitrates limit vht-mcs-5 4:9\n"
+ 	);
++#endif
+--- a/phy.c
++++ b/phy.c
+@@ -369,6 +369,7 @@ err_out:
+ 		free(cac_trigger_argv);
+ 	return err;
+ }
++#ifdef IW_FULL
+ TOPLEVEL(cac, "channel <channel> [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz]\n"
+ 	      "freq <freq> [NOHT|HT20|HT40+|HT40-|5MHz|10MHz|80MHz]\n"
+ 	      "freq <control freq> [5|10|20|40|80|80+80|160] [<center1_freq> [<center2_freq>]]",
+@@ -380,6 +381,7 @@ COMMAND(cac, trigger,
+ 	NL80211_CMD_RADAR_DETECT, 0, CIB_NETDEV, handle_cac_trigger,
+ 	"Start or trigger a channel availability check (CAC) looking to look for\n"
+ 	"radars on the given channel.");
++#endif
+ 
+ static int handle_fragmentation(struct nl80211_state *state,
+ 				struct nl_msg *msg,
diff --git a/recipes-connectivity/iw/patches/patches.inc b/recipes-connectivity/iw/patches/patches.inc
new file mode 100644
index 0000000..b7b32e4
--- /dev/null
+++ b/recipes-connectivity/iw/patches/patches.inc
@@ -0,0 +1,8 @@
+#patch patches (come from openwrt/lede/target/linux/mediatek)
+SRC_URI_append = " \
+    file://001-nl80211_h_sync.patch \
+    file://010-Revert-iw-allow-specifying-CFLAGS-LIBS-externally.patch \
+    file://120-antenna_gain.patch \
+    file://130-survey-bss-rx-time.patch \
+    file://200-reduce_size.patch \
+    "
