Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / net / wireless / iwmc3200wifi / rx.c
index bca3bb2..bdb1d7e 100644 (file)
@@ -38,6 +38,7 @@
 
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
+#include <linux/sched.h>
 #include <linux/etherdevice.h>
 #include <linux/wireless.h>
 #include <linux/ieee80211.h>
@@ -732,6 +733,19 @@ static int iwm_mlme_update_sta_table(struct iwm_priv *iwm, u8 *buf,
        return 0;
 }
 
+static int iwm_mlme_medium_lost(struct iwm_priv *iwm, u8 *buf,
+                               unsigned long buf_size,
+                               struct iwm_wifi_cmd *cmd)
+{
+       struct wiphy *wiphy = iwm_to_wiphy(iwm);
+
+       IWM_DBG_NTF(iwm, DBG, "WiFi/WiMax coexistence radio is OFF\n");
+
+       wiphy_rfkill_set_hw_state(wiphy, true);
+
+       return 0;
+}
+
 static int iwm_mlme_update_bss_table(struct iwm_priv *iwm, u8 *buf,
                                     unsigned long buf_size,
                                     struct iwm_wifi_cmd *cmd)
@@ -918,6 +932,8 @@ static int iwm_ntf_mlme(struct iwm_priv *iwm, u8 *buf,
        case WIFI_IF_NTFY_EXTENDED_IE_REQUIRED:
                IWM_DBG_MLME(iwm, DBG, "Extended IE required\n");
                break;
+       case WIFI_IF_NTFY_RADIO_PREEMPTION:
+               return iwm_mlme_medium_lost(iwm, buf, buf_size, cmd);
        case WIFI_IF_NTFY_BSS_TRK_TABLE_CHANGED:
                return iwm_mlme_update_bss_table(iwm, buf, buf_size, cmd);
        case WIFI_IF_NTFY_BSS_TRK_ENTRIES_REMOVED: