From 687922c7347bdc3b4f8c921efe1d1388cb3baac0 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Mon, 26 Mar 2012 14:02:32 -0700 Subject: Update to Version 0.8.24 from BRCM - Add 'conc_priority' command - Fix handling a single channel concurrency case: If conc_priority is not set, advertise the frequency conflict to the framework and disable the new connection attempted - When P2P Interface gets removed due to single channel frequency conflict, show GROUP_REMOVE reason=FREQ_CONFLICT - Fix sched scan processing Change-Id: Ie6fe105cebd379a0a9c49ace62d2e48e71571107 Signed-off-by: Dmitry Shmidt --- wpa_supplicant/p2p_supplicant.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'wpa_supplicant/p2p_supplicant.c') diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 3aba246..5e7edc8 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -257,6 +257,11 @@ static void wpas_p2p_group_delete(struct wpa_supplicant *wpa_s) case P2P_GROUP_REMOVAL_UNAVAILABLE: reason = " reason=UNAVAILABLE"; break; +#ifdef ANDROID_P2P + case P2P_GROUP_REMOVAL_FREQ_CONFLICT: + reason = " reason=FREQ_CONFLICT"; + break; +#endif default: reason = ""; break; @@ -805,9 +810,6 @@ static void wpas_p2p_clone_config(struct wpa_supplicant *dst, #define C(n) if (s->n) d->n = os_strdup(s->n) C(device_name); -#ifdef ANDROID_P2P - C(prioritize); -#endif C(manufacturer); C(model_name); C(model_number); @@ -4458,10 +4460,13 @@ int wpas_p2p_handle_frequency_conflicts(struct wpa_supplicant *wpa_s, int freq) /* If GO cannot be moved or if the conflicting interface is a * P2P Client, remove the interface depending up on the connection * priority */ - if(wpas_is_interface_prioritized(wpa_s)) { - /* Newly requested connection has priority over existing + if(!wpas_is_p2p_prioritized(wpa_s)) { + /* STA connection has priority over existing * P2P connection. So remove the interface */ - wpas_p2p_disconnect(iface); + wpa_printf(MSG_DEBUG, "P2P: Removing P2P connection due to Single channel" + "concurrent mode frequency conflict"); + iface->removal_reason = P2P_GROUP_REMOVAL_FREQ_CONFLICT; + wpas_p2p_group_delete(iface); } else { /* Existing connection has the priority. Disable the newly * selected network and let the application know about it. -- cgit v1.1