qcacld-2.0: Fix monitor mode not showing in iwconfig and iw utility

iwconfig was showing interface type as managed in case of monitor mode

Added the support for NL80211_IFTYPE_MONITOR and IW_MODE_MONITOR in
the code

Change-Id: Ibde24dd3b826fc744d1ec82820fcb51952e1b6ef
CRs-Fixed: 2139968
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 066046c..117acb4 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -11892,6 +11892,8 @@
 
 		if (session_type == WLAN_HDD_P2P_CLIENT)
 			adapter->wdev.iftype = NL80211_IFTYPE_P2P_CLIENT;
+                else if (VOS_MONITOR_MODE == vos_get_conparam())
+                        adapter->wdev.iftype = NL80211_IFTYPE_MONITOR;
 		else
 			adapter->wdev.iftype = NL80211_IFTYPE_STATION;
 
@@ -16930,6 +16932,7 @@
                                   rtnl_lock_enable);
 
 #ifdef WLAN_OPEN_P2P_INTERFACE
+    if(VOS_MONITOR_MODE != vos_get_conparam()){
       /* Open P2P device interface */
       if (pAdapter != NULL &&
           !hdd_cfg_is_sub20_channel_width_enabled(pHddCtx)) {
@@ -16966,6 +16969,7 @@
             goto err_close_adapter;
          }
       }
+    }
 #endif /* WLAN_OPEN_P2P_INTERFACE */
 
       /* Open 802.11p Interface */
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index bcc7967..4205040 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -2177,8 +2177,13 @@
 
     switch (pWextState->roamProfile.BSSType) {
     case eCSR_BSS_TYPE_INFRASTRUCTURE:
-        hddLog(LOG1, FL("returns IW_MODE_INFRA"));
-        wrqu->mode = IW_MODE_INFRA;
+        if(VOS_MONITOR_MODE == vos_get_conparam()){
+            hddLog(LOG1, FL("returns IW_MODE_MONITOR"));
+            wrqu->mode = IW_MODE_MONITOR;
+        }else{
+            hddLog(LOG1, FL("returns IW_MODE_INFRA"));
+            wrqu->mode = IW_MODE_INFRA;
+        }
         break;
     case eCSR_BSS_TYPE_IBSS:
     case eCSR_BSS_TYPE_START_IBSS: