iwmc3200wifi: handle coexistence radio notification
authorZhu Yi <yi.zhu@intel.com>
Fri, 16 Oct 2009 05:19:00 +0000 (13:19 +0800)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 27 Oct 2009 20:48:28 +0000 (16:48 -0400)
Handle WiFi/WiMax coexistence radio preemption notification event.

Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwmc3200wifi/rx.c

index bca3bb2..3ad95dc 100644 (file)
@@ -732,6 +732,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 +931,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: