qcacmn: Handle user initiate CSA in p2p go+go concurrency

If p2p go+go concurrency exist and g_enable_go_force_scc ini sets
to 2(liberal mode) then 1st p2p go channel should move to 2nd
p2p go channel after set key. Again, when user initiates CSA to
one p2p go then the force SCC doesn't happen to other p2p go.
But the expectation is all p2p go should move to same channel
which is initiated by user.

As part of fix, move all p2p go to same channel when user
initiates.

Change-Id: I166f459c208f8f88c885a311da7bcd82a64d8b3e
CRs-Fixed: 3069743
此提交包含在:
sheenam monga
2021-11-01 16:08:14 +05:30
提交者 Madan Koyyalamudi
父節點 11913de138
當前提交 dece2a5af1
共有 3 個檔案被更改,包括 33 行新增1 行删除

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -80,6 +81,29 @@ if_mgr_ap_stop_bss(struct wlan_objmgr_vdev *vdev,
QDF_STATUS
if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev,
struct if_mgr_event_data *event_data);
#ifdef WLAN_FEATURE_P2P_P2P_STA
/**
* if_mgr_csa_complete() - CSA event complete handler
* @vdev: vdev object
* @event_data: Interface mgr event data
*
* Interface manager csa complete event handler
*
* Context: It should run in thread context
*
* Return: QDF_STATUS
*/
QDF_STATUS
if_mgr_csa_complete(struct wlan_objmgr_vdev *vdev,
struct if_mgr_event_data *event_data);
#else
static inline QDF_STATUS
if_mgr_csa_complete(struct wlan_objmgr_vdev *vdev,
struct if_mgr_event_data *event_data)
{
return QDF_STATUS_SUCCESS;
}
#endif
#if defined WLAN_MBSS
/**

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -47,6 +48,7 @@
* WLAN_IF_MGR_EV_AP_STOP_HT40: Event to handle HT40 scan stop
* WLAN_IF_MGR_EV_AP_DONE_HT40: Event to handle HT40 scan completion
* WLAN_IF_MGR_EV_AP_CANCEL_HT40: Event to handle HT40 scan cancel
* WLAN_IF_MGR_EV_CSA_COMPLETE: Event to handle csa complete
*/
enum wlan_if_mgr_evt {
WLAN_IF_MGR_EV_CONNECT_START = 0,
@@ -66,7 +68,8 @@ enum wlan_if_mgr_evt {
WLAN_IF_MGR_EV_AP_STOP_HT40 = 14,
WLAN_IF_MGR_EV_AP_DONE_HT40 = 15,
WLAN_IF_MGR_EV_AP_CANCEL_HT40 = 16,
WLAN_IF_MGR_EV_MAX = 17,
WLAN_IF_MGR_EV_CSA_COMPLETE = 17,
WLAN_IF_MGR_EV_MAX = 18,
};
/**

查看文件

@@ -1,5 +1,6 @@
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -49,6 +50,7 @@ const char *if_mgr_get_event_str(enum wlan_if_mgr_evt event)
CASE_RETURN_STRING(WLAN_IF_MGR_EV_AP_STOP_HT40);
CASE_RETURN_STRING(WLAN_IF_MGR_EV_AP_DONE_HT40);
CASE_RETURN_STRING(WLAN_IF_MGR_EV_AP_CANCEL_HT40);
CASE_RETURN_STRING(WLAN_IF_MGR_EV_CSA_COMPLETE);
default:
return "Unknown";
}
@@ -153,6 +155,9 @@ QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev,
case WLAN_IF_MGR_EV_VALIDATE_CANDIDATE:
status = if_mgr_validate_candidate(vdev, event_data);
break;
case WLAN_IF_MGR_EV_CSA_COMPLETE:
status = if_mgr_csa_complete(vdev, event_data);
break;
default:
status = if_mgr_deliver_mbss_event(vdev, event, event_data);
}