diff --git a/package/kernel/mwlwifi/patches/100-api_update.patch b/package/kernel/mwlwifi/patches/100-api_update.patch
new file mode 100644
index 00000000000..09d65d2df3a
--- /dev/null
+++ b/package/kernel/mwlwifi/patches/100-api_update.patch
@@ -0,0 +1,27 @@
+--- a/main.c
++++ b/main.c
+@@ -476,7 +476,7 @@ static void mwl_set_ht_caps(struct mwl_p
+ 	band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_20;
+ 	band->ht_cap.cap |= IEEE80211_HT_CAP_SGI_40;
+ 
+-	hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
++	ieee80211_hw_set(hw, AMPDU_AGGREGATION);
+ 	band->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K;
+ 	band->ht_cap.ampdu_density = IEEE80211_HT_MPDU_DENSITY_4;
+ 
+@@ -578,12 +578,13 @@ static int mwl_wl_init(struct mwl_priv *
+ 	hw->queues = SYSADPT_TX_WMM_QUEUES;
+ 
+ 	/* Set rssi values to dBm */
+-	hw->flags |= IEEE80211_HW_SIGNAL_DBM | IEEE80211_HW_HAS_RATE_CONTROL;
++	ieee80211_hw_set(hw, SIGNAL_DBM);
++	ieee80211_hw_set(hw, HAS_RATE_CONTROL);
+ 
+ 	/* Ask mac80211 to not to trigger PS mode
+ 	 * based on PM bit of incoming frames.
+ 	 */
+-	hw->flags |= IEEE80211_HW_AP_LINK_PS;
++	ieee80211_hw_set(hw, AP_LINK_PS);
+ 
+ 	hw->vif_data_size = sizeof(struct mwl_vif);
+ 	hw->sta_data_size = sizeof(struct mwl_sta);