OSDN Git Service

wpa_supplicant: Update to BRCM version 0.8.0-36
authorDmitry Shmidt <dimitrysh@google.com>
Fri, 17 Aug 2012 23:22:31 +0000 (16:22 -0700)
committerDmitry Shmidt <dimitrysh@google.com>
Fri, 17 Aug 2012 23:23:30 +0000 (16:23 -0700)
Change-Id: Ic3f1375953f4a7c77d2208f8436d951889093397
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
src/p2p/p2p.c
src/p2p/p2p.h
wpa_supplicant/p2p_supplicant.c

index 58ada3b..eb2821e 100644 (file)
@@ -1151,10 +1151,26 @@ static int p2p_prepare_channel(struct p2p_data *p2p, unsigned int force_freq)
                }
                p2p->op_reg_class = op_reg_class;
                p2p->op_channel = op_channel;
+#ifndef ANDROID_P2P
                p2p->channels.reg_classes = 1;
                p2p->channels.reg_class[0].channels = 1;
                p2p->channels.reg_class[0].reg_class = p2p->op_reg_class;
                p2p->channels.reg_class[0].channel[0] = p2p->op_channel;
+#else
+               if(p2p->cfg->p2p_concurrency == P2P_MULTI_CHANNEL_CONCURRENT) {
+                       /* We we are requesting for a preferred channel. But since
+                        * are multichannel concurrent, we have to poplulate the
+                        * p2p_channels with list of channels that we support.
+                        */
+                       os_memcpy(&p2p->channels, &p2p->cfg->channels,
+                               sizeof(struct p2p_channels));
+               } else {
+                       p2p->channels.reg_classes = 1;
+                       p2p->channels.reg_class[0].channels = 1;
+                       p2p->channels.reg_class[0].reg_class = p2p->op_reg_class;
+                       p2p->channels.reg_class[0].channel[0] = p2p->op_channel;
+               }
+#endif
        } else {
                u8 op_reg_class, op_channel;
 
index 8274d73..59da452 100644 (file)
@@ -352,6 +352,14 @@ struct p2p_config {
         */
        size_t ssid_postfix_len;
 
+#ifdef ANDROID_P2P
+       enum p2p_concurrency_type {
+               P2P_NON_CONCURRENT,
+               P2P_SINGLE_CHANNEL_CONCURRENT,
+               P2P_MULTI_CHANNEL_CONCURRENT,
+       } p2p_concurrency;
+#endif
+
        /**
         * msg_ctx - Context to use with wpa_msg() calls
         */
index fad8bd2..f4df4b0 100644 (file)
@@ -2534,6 +2534,14 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s)
 
        p2p.p2p_intra_bss = wpa_s->conf->p2p_intra_bss;
 
+
+#ifdef ANDROID_P2P
+       if(wpa_s->drv_flags & WPA_DRIVER_FLAGS_MULTI_CHANNEL_CONCURRENT)
+               p2p.p2p_concurrency = P2P_MULTI_CHANNEL_CONCURRENT;
+       else if (wpa_s->drv_flags & WPA_DRIVER_FLAGS_P2P_CONCURRENT)
+               p2p.p2p_concurrency = P2P_SINGLE_CHANNEL_CONCURRENT;
+#endif
+
        global->p2p = p2p_init(&p2p);
        if (global->p2p == NULL)
                return -1;