Support explicit monitor interface to keep
injection working after the HW queue changes.
This also finally enables sniffer mode.
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
                                                  RXON_FILTER_ACCEPT_GRP_MSK;
                break;
 
+       case NL80211_IFTYPE_MONITOR:
+               ctx->staging.dev_type = RXON_DEV_TYPE_SNIFFER;
+               break;
+
        default:
                IWL_ERR(priv, "Unsupported interface type %d\n",
                        ctx->vif->type);
 
        priv->contexts[IWL_RXON_CTX_BSS].wep_key_cmd = REPLY_WEPKEY;
        priv->contexts[IWL_RXON_CTX_BSS].bcast_sta_id = IWLAGN_BROADCAST_ID;
        priv->contexts[IWL_RXON_CTX_BSS].exclusive_interface_modes =
-               BIT(NL80211_IFTYPE_ADHOC);
+               BIT(NL80211_IFTYPE_ADHOC) | BIT(NL80211_IFTYPE_MONITOR);
        priv->contexts[IWL_RXON_CTX_BSS].interface_modes =
                BIT(NL80211_IFTYPE_STATION);
        priv->contexts[IWL_RXON_CTX_BSS].ap_devtype = RXON_DEV_TYPE_AP;
 
                    IEEE80211_HW_QUEUE_CONTROL |
                    IEEE80211_HW_SUPPORTS_PS |
                    IEEE80211_HW_SUPPORTS_DYNAMIC_PS |
+                   IEEE80211_HW_WANT_MONITOR_VIF |
                    IEEE80211_HW_SCAN_WHILE_IDLE;
 
        hw->offchannel_tx_hw_queue = IWL_AUX_QUEUE;