diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h index 314be67115..2a3beae2cb 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h @@ -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 /** diff --git a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h index a3c60dc985..f382cca771 100644 --- a/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h +++ b/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_public_struct.h @@ -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, }; /** diff --git a/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c b/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c index 1870035cb1..7f12ff75ff 100644 --- a/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c +++ b/umac/cmn_services/interface_mgr/src/wlan_if_mgr_core.c @@ -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); }