diff --git a/wpa_supplicant/Android.mk b/wpa_supplicant/Android.mk
index ac92248..e246e80 100644
--- a/wpa_supplicant/Android.mk
+++ b/wpa_supplicant/Android.mk
@@ -31,10 +31,13 @@
 # To ignore possible wrong network configurations
 L_CFLAGS = -DWPA_IGNORE_CONFIG_ERRORS
 
-L_CFLAGS += -DANDROID_P2P
 # Set Android log name
 L_CFLAGS += -DANDROID_LOG_NAME=\"wpa_supplicant\"
 
+ifeq ($(BOARD_WLAN_DEVICE), bcmdhd)
+L_CFLAGS += -DANDROID_P2P
+endif
+
 # Use Android specific directory for control interface sockets
 L_CFLAGS += -DCONFIG_CTRL_IFACE_CLIENT_DIR=\"/data/misc/wifi/sockets\"
 L_CFLAGS += -DCONFIG_CTRL_IFACE_DIR=\"/data/system/wpa_supplicant\"
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 4bbd2e4..9fb18a3 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -996,8 +996,13 @@
 }
 
 /* Return < 0 if no scan results could be fetched. */
+#ifdef ANDROID_P2P
+static int _wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s,
+					      union wpa_event_data *data, int suppress_event)
+#else
 static int _wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s,
 					      union wpa_event_data *data)
+#endif
 {
 	struct wpa_bss *selected;
 	struct wpa_ssid *ssid = NULL;
@@ -1073,10 +1078,14 @@
 		wpa_scan_results_free(scan_res);
 		return 0;
 	}
-
-	wpa_dbg(wpa_s, MSG_DEBUG, "New scan results available");
-	wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
-	wpas_notify_scan_results(wpa_s);
+#ifdef ANDROID_P2P
+	if(!suppress_event)
+#endif
+	{
+		wpa_dbg(wpa_s, MSG_DEBUG, "New scan results available");
+		wpa_msg_ctrl(wpa_s, MSG_INFO, WPA_EVENT_SCAN_RESULTS);
+		wpas_notify_scan_results(wpa_s);
+	}
 
 	wpas_notify_scan_done(wpa_s, 1);
 
@@ -1152,8 +1161,11 @@
 {
 	const char *rn, *rn2;
 	struct wpa_supplicant *ifs;
-
+#ifdef ANDROID_P2P
+	if (_wpa_supplicant_event_scan_results(wpa_s, data, 0) < 0) {
+#else
 	if (_wpa_supplicant_event_scan_results(wpa_s, data) < 0) {
+#endif
 		/*
 		 * If no scan results could be fetched, then no need to
 		 * notify those interfaces that did not actually request
@@ -1184,7 +1196,19 @@
 		if (rn2 && os_strcmp(rn, rn2) == 0) {
 			wpa_printf(MSG_DEBUG, "%s: Updating scan results from "
 				   "sibling", ifs->ifname);
+#ifndef ANDROID_P2P
 			_wpa_supplicant_event_scan_results(ifs, data);
+#else
+			/* P2P_FIND will result in too many SCAN_RESULT_EVENTS within
+			 * no time. Avoid announcing it to application as it may not 
+			 * be that useful (since results will be that of only 1,6,11).
+			 * over to any other interface as it
+			 */
+			if((wpa_s->drv_flags & WPA_DRIVER_FLAGS_P2P_CAPABLE) && p2p_search_in_progress(wpa_s->global->p2p))
+				_wpa_supplicant_event_scan_results(ifs, data, 1);
+			else
+				_wpa_supplicant_event_scan_results(ifs, data, 0);
+#endif
 		}
 	}
 }
