Remove unnecessary channel list filtering
Operating channel is always set even without an STA connected. Remove
channel list filtering based on that.
Channel list is filtered in the p2p_connect and p2p_invite path based
on force_freq which is essentially the operating channel for STA
This patch helps fix WifiDirect b/w two android devices for SCC while at
the same time keeping channel compliance with WFD dongle
Bug: 7232932
Change-Id: Ie9524f9e45b6f997959c3359a81b05f63b576045
diff --git a/src/p2p/p2p_invitation.c b/src/p2p/p2p_invitation.c
index 7d6dd11..769e57b 100644
--- a/src/p2p/p2p_invitation.c
+++ b/src/p2p/p2p_invitation.c
@@ -66,17 +66,7 @@
p2p->op_reg_class, p2p->op_channel);
if (p2p->inv_bssid_set)
p2p_buf_add_group_bssid(buf, p2p->inv_bssid);
-#ifdef ANDROID_P2P
- if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && p2p->op_channel) {
- wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Forcing channel list %d", p2p->op_channel);
- p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country, p2p->op_reg_class,
- p2p->op_channel);
- } else {
-#endif
- p2p_buf_add_channel_list(buf, p2p->cfg->country, &p2p->channels);
-#ifdef ANDROID_P2P
- }
-#endif
+ p2p_buf_add_channel_list(buf, p2p->cfg->country, &p2p->channels);
if (go_dev_addr)
dev_addr = go_dev_addr;
else if (p2p->inv_role == P2P_INVITE_ROLE_CLIENT)
@@ -143,18 +133,8 @@
reg_class, channel);
if (group_bssid)
p2p_buf_add_group_bssid(buf, group_bssid);
-#ifdef ANDROID_P2P
- if (p2p->cfg->p2p_concurrency == P2P_SINGLE_CHANNEL_CONCURRENT && channel) {
- wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Forcing channel list %d", channel);
- p2p_buf_add_oper_as_channel_list(buf, p2p->cfg->country,
- reg_class, channel);
- } else {
-#endif
- if (channels)
- p2p_buf_add_channel_list(buf, p2p->cfg->country, channels);
-#ifdef ANDROID_P2P
- }
-#endif
+ if (channels)
+ p2p_buf_add_channel_list(buf, p2p->cfg->country, channels);
p2p_buf_update_ie_hdr(buf, len);
#ifdef CONFIG_WIFI_DISPLAY
@@ -603,11 +583,17 @@
force_freq);
return -1;
}
+#ifdef ANDROID_P2P
+ wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Single channel list %d", p2p->op_channel);
+#endif
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 {
+#ifdef ANDROID_P2P
+ wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "Full channel list");
+#endif
p2p->op_reg_class = p2p->cfg->op_reg_class;
p2p->op_channel = p2p->cfg->op_channel;
os_memcpy(&p2p->channels, &p2p->cfg->channels,