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