1 /*
2  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 /**
19  * DOC: This file contains definitions for target_if roaming offload.
20  */
21 
22 #ifndef TARGET_IF_CM_ROAM_OFFLOAD_H__
23 #define TARGET_IF_CM_ROAM_OFFLOAD_H__
24 
25 #include "wlan_cm_roam_public_struct.h"
26 
27 /**
28  * target_if_cm_roam_register_tx_ops  - Target IF API to register roam
29  * related tx op.
30  * @tx_ops: Pointer to tx ops fp struct
31  *
32  * Return: QDF_STATUS
33  */
34 QDF_STATUS
35 target_if_cm_roam_register_tx_ops(struct wlan_cm_roam_tx_ops *tx_ops);
36 
37 #ifdef WLAN_FEATURE_11BE_MLO
38 /**
39  * target_if_stop_rso_stop_timer() - Stop the RSO_STOP timer
40  * @roam_event: Roam event data
41  *
42  * This stops the RSO stop timer in below cases,
43  * 1. If the reason is RSO_STATUS and notif is CM_ROAM_NOTIF_SCAN_MODE_SUCCESS
44  * 2. If wait started already and received HO_FAIL event
45  *
46  * Return: QDF_STATUS
47  */
48 QDF_STATUS
49 target_if_stop_rso_stop_timer(struct roam_offload_roam_event *roam_event);
50 #else
51 static inline QDF_STATUS
target_if_stop_rso_stop_timer(struct roam_offload_roam_event * roam_event)52 target_if_stop_rso_stop_timer(struct roam_offload_roam_event *roam_event)
53 {
54 	roam_event->rso_timer_stopped = false;
55 	return QDF_STATUS_E_NOSUPPORT;
56 }
57 #endif
58 
59 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
60 /**
61  * target_if_cm_send_rso_stop_failure_rsp() - Send RSO_STOP failure rsp to CM
62  * @psoc: psoc object
63  * @vdev_id: vdev_id on which RSO stop is issued
64  *
65  * Return: QDF_STATUS
66  */
67 QDF_STATUS
68 target_if_cm_send_rso_stop_failure_rsp(struct wlan_objmgr_psoc *psoc,
69 				       uint8_t vdev_id);
70 #else
71 static inline QDF_STATUS
target_if_cm_send_rso_stop_failure_rsp(struct wlan_objmgr_psoc * psoc,uint8_t vdev_id)72 target_if_cm_send_rso_stop_failure_rsp(struct wlan_objmgr_psoc *psoc,
73 				       uint8_t vdev_id)
74 {
75 	return QDF_STATUS_E_NOSUPPORT;
76 }
77 #endif
78 #endif
79