From 7f9cad56b17d9b92510c560ea7bbc8c162fb036b Mon Sep 17 00:00:00 2001 From: Shivani Baranwal Date: Wed, 28 May 2025 15:50:36 +0530 Subject: [PATCH] P2P2: Enable pairing setup and caching based on driver capabilities Enable P2P pairing setup and caching based on the underlying driver capabilities instead of wpa_supplicant configuration parameters. Signed-off-by: Shivani Baranwal --- wpa_supplicant/p2p_supplicant.c | 9 +++------ wpa_supplicant/wpa_supplicant.c | 8 ++++++++ wpa_supplicant/wpa_supplicant_i.h | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index b4e56f90a..62567a085 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -5967,12 +5967,9 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s) "P2P: Failed to update configuration"); } - p2p.pairing_config.enable_pairing_setup = - wpa_s->conf->p2p_pairing_setup; - p2p.pairing_config.pairing_capable = - wpa_s->conf->p2p_pairing_setup; - p2p.pairing_config.enable_pairing_cache = - wpa_s->conf->p2p_pairing_cache; + p2p.pairing_config.enable_pairing_setup = wpa_s->p2p_pairing_setup; + p2p.pairing_config.pairing_capable = wpa_s->p2p_pairing_setup; + p2p.pairing_config.enable_pairing_cache = wpa_s->p2p_pairing_cache; p2p.pairing_config.bootstrap_methods = wpa_s->conf->p2p_bootstrap_methods; p2p.pairing_config.pasn_type = wpa_s->conf->p2p_pasn_type; diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index dfbd63163..65e9e90bc 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -7910,6 +7910,14 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s, return -1; } +#ifdef CONFIG_P2P + if (wpa_s->drv_flags2 & (WPA_DRIVER_FLAGS2_P2P_FEATURE_V2 | + WPA_DRIVER_FLAGS2_P2P_FEATURE_PCC_MODE)) { + wpa_s->p2p_pairing_setup = true; + wpa_s->p2p_pairing_cache = true; + } +#endif /* CONFIG_P2P */ + if ((!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) || wpa_s->p2p_mgmt) && wpas_p2p_init(wpa_s->global, wpa_s) < 0) { diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index 3b2f34444..3f86182fa 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -1117,6 +1117,8 @@ struct wpa_supplicant { int p2p_in_invitation; int p2p_retry_limit; int p2p_invite_go_freq; + bool p2p_pairing_setup; + bool p2p_pairing_cache; int pending_invite_ssid_id; int show_group_started; u8 go_dev_addr[ETH_ALEN]; -- 2.47.2