diff --git a/package/iw/patches/001-nl80211_sync.patch b/package/iw/patches/001-nl80211_sync.patch
index b3482d70e4c7adf41e369c721ca661271ea55c7e..3f01fbf0d4db063f25023d994a611a8e518c6e1f 100644
--- a/package/iw/patches/001-nl80211_sync.patch
+++ b/package/iw/patches/001-nl80211_sync.patch
@@ -55,19 +55,41 @@
   *
   * @NL80211_ATTR_TESTDATA: Testmode data blob, passed through to the driver.
   *	We recommend using nested, driver-specific attributes within this.
-@@ -787,6 +801,11 @@ enum nl80211_commands {
+@@ -787,6 +801,33 @@ enum nl80211_commands {
   *      This is used in association with @NL80211_ATTR_WIPHY_TX_POWER_SETTING
   *      for non-automatic settings.
   *
 + * @NL80211_ATTR_SUPPORT_IBSS_RSN: The device supports IBSS RSN, which mostly
 + *	means support for per-station GTKs.
 + *
++ * @NL80211_ATTR_WIPHY_ANTENNA_TX: Bitmap of allowed antennas for transmitting.
++ *	This can be used to mask out antennas which are not attached or should
++ *	not be used for transmitting. If an antenna is not selected in this
++ *	bitmap the hardware is not allowed to transmit on this antenna.
++ *
++ *	Each bit represents one antenna, starting with antenna 1 at the first
++ *	bit. Depending on which antennas are selected in the bitmap, 802.11n
++ *	drivers can derive which chainmasks to use (if all antennas belonging to
++ *	a particular chain are disabled this chain should be disabled) and if
++ *	a chain has diversity antennas wether diversity should be used or not.
++ *	HT capabilities (STBC, TX Beamforming, Antenna selection) can be
++ *	derived from the available chains after applying the antenna mask.
++ *	Non-802.11n drivers can derive wether to use diversity or not.
++ *	Drivers may reject configurations or RX/TX mask combinations they cannot
++ *	support by returning -EINVAL.
++ *
++ * @NL80211_ATTR_WIPHY_ANTENNA_RX: Bitmap of allowed antennas for receiving.
++ *	This can be used to mask out antennas which are not attached or should
++ *	not be used for receiving. If an antenna is not selected in this bitmap
++ *	the hardware should not be configured to receive on this antenna.
++ *	For a more detailed descripton see @NL80211_ATTR_WIPHY_ANTENNA_TX.
++ *
 + * @NL80211_ATTR_MCAST_RATE: Multicast tx rate (in 100 kbps) for IBSS
 + *
   * @NL80211_ATTR_MAX: highest attribute number currently defined
   * @__NL80211_ATTR_AFTER_LAST: internal use
   */
-@@ -951,6 +970,13 @@ enum nl80211_attrs {
+@@ -951,6 +992,16 @@ enum nl80211_attrs {
  	NL80211_ATTR_RX_FRAME_TYPES,
  	NL80211_ATTR_FRAME_TYPE,
  
@@ -76,12 +98,15 @@
 +
 +	NL80211_ATTR_SUPPORT_IBSS_RSN,
 +
++	NL80211_ATTR_WIPHY_ANTENNA_TX,
++	NL80211_ATTR_WIPHY_ANTENNA_RX,
++
 +	NL80211_ATTR_MCAST_RATE,
 +
  	/* add attributes here, update the policy in nl80211.c */
  
  	__NL80211_ATTR_AFTER_LAST,
-@@ -1006,6 +1032,8 @@ enum nl80211_attrs {
+@@ -1006,6 +1057,8 @@ enum nl80211_attrs {
   * @NL80211_IFTYPE_WDS: wireless distribution interface
   * @NL80211_IFTYPE_MONITOR: monitor interface receiving all frames
   * @NL80211_IFTYPE_MESH_POINT: mesh point
@@ -90,7 +115,7 @@
   * @NL80211_IFTYPE_MAX: highest interface type number currently defined
   * @NUM_NL80211_IFTYPES: number of defined interface types
   *
-@@ -1022,6 +1050,8 @@ enum nl80211_iftype {
+@@ -1022,6 +1075,8 @@ enum nl80211_iftype {
  	NL80211_IFTYPE_WDS,
  	NL80211_IFTYPE_MONITOR,
  	NL80211_IFTYPE_MESH_POINT,
@@ -99,7 +124,7 @@
  
  	/* keep last */
  	NUM_NL80211_IFTYPES,
-@@ -1111,6 +1141,8 @@ enum nl80211_rate_info {
+@@ -1111,6 +1166,8 @@ enum nl80211_rate_info {
   * @NL80211_STA_INFO_RX_PACKETS: total received packet (u32, from this station)
   * @NL80211_STA_INFO_TX_PACKETS: total transmitted packets (u32, to this
   *	station)
@@ -108,7 +133,7 @@
   */
  enum nl80211_sta_info {
  	__NL80211_STA_INFO_INVALID,
-@@ -1124,6 +1156,8 @@ enum nl80211_sta_info {
+@@ -1124,6 +1181,8 @@ enum nl80211_sta_info {
  	NL80211_STA_INFO_TX_BITRATE,
  	NL80211_STA_INFO_RX_PACKETS,
  	NL80211_STA_INFO_TX_PACKETS,
@@ -117,7 +142,20 @@
  
  	/* keep last */
  	__NL80211_STA_INFO_AFTER_LAST,
-@@ -1382,6 +1416,17 @@ enum nl80211_reg_rule_flags {
+@@ -1277,7 +1336,11 @@ enum nl80211_bitrate_attr {
+  * 	wireless core it thinks its knows the regulatory domain we should be in.
+  * @NL80211_REGDOM_SET_BY_COUNTRY_IE: the wireless core has received an
+  * 	802.11 country information element with regulatory information it
+- * 	thinks we should consider.
++ * 	thinks we should consider. cfg80211 only processes the country
++ *	code from the IE, and relies on the regulatory domain information
++ *	structure pased by userspace (CRDA) from our wireless-regdb.
++ *	If a channel is enabled but the country code indicates it should
++ *	be disabled we disable the channel and re-enable it upon disassociation.
+  */
+ enum nl80211_reg_initiator {
+ 	NL80211_REGDOM_SET_BY_CORE,
+@@ -1382,6 +1445,17 @@ enum nl80211_reg_rule_flags {
   * @__NL80211_SURVEY_INFO_INVALID: attribute number 0 is reserved
   * @NL80211_SURVEY_INFO_FREQUENCY: center frequency of channel
   * @NL80211_SURVEY_INFO_NOISE: noise level of channel (u8, dBm)
@@ -135,7 +173,7 @@
   * @NL80211_SURVEY_INFO_MAX: highest survey info attribute number
   *	currently defined
   * @__NL80211_SURVEY_INFO_AFTER_LAST: internal use
-@@ -1390,6 +1435,12 @@ enum nl80211_survey_info {
+@@ -1390,6 +1464,12 @@ enum nl80211_survey_info {
  	__NL80211_SURVEY_INFO_INVALID,
  	NL80211_SURVEY_INFO_FREQUENCY,
  	NL80211_SURVEY_INFO_NOISE,
@@ -148,7 +186,7 @@
  
  	/* keep last */
  	__NL80211_SURVEY_INFO_AFTER_LAST,
-@@ -1636,11 +1687,14 @@ enum nl80211_auth_type {
+@@ -1636,11 +1716,14 @@ enum nl80211_auth_type {
   * @NL80211_KEYTYPE_GROUP: Group (broadcast/multicast) key
   * @NL80211_KEYTYPE_PAIRWISE: Pairwise (unicast/individual) key
   * @NL80211_KEYTYPE_PEERKEY: PeerKey (DLS)
@@ -163,7 +201,7 @@
  };
  
  /**
-@@ -1671,6 +1725,9 @@ enum nl80211_wpa_versions {
+@@ -1671,6 +1754,9 @@ enum nl80211_wpa_versions {
   *	CCMP keys, each six bytes in little endian
   * @NL80211_KEY_DEFAULT: flag indicating default key
   * @NL80211_KEY_DEFAULT_MGMT: flag indicating default management key
@@ -173,7 +211,7 @@
   * @__NL80211_KEY_AFTER_LAST: internal
   * @NL80211_KEY_MAX: highest key attribute
   */
-@@ -1682,6 +1739,7 @@ enum nl80211_key_attributes {
+@@ -1682,6 +1768,7 @@ enum nl80211_key_attributes {
  	NL80211_KEY_SEQ,
  	NL80211_KEY_DEFAULT,
  	NL80211_KEY_DEFAULT_MGMT,