1 /* 2 * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved. 3 * 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: reg_callbks.h 22 * This file provides prototypes of reg callbacks. 23 */ 24 25 #ifndef __REG_CALLBKS_H_ 26 #define __REG_CALLBKS_H_ 27 28 #ifdef CONFIG_MCL_REGDB 29 /** 30 * reg_register_chan_change_callback() - Register channel change callbacks 31 * @psoc: Pointer to psoc 32 * @cbk: Pointer to callback function 33 * @arg: List of arguments 34 */ 35 void reg_register_chan_change_callback(struct wlan_objmgr_psoc *psoc, 36 reg_chan_change_callback cbk, void *arg); 37 38 /** 39 * reg_unregister_chan_change_callback() - Unregister channel change callbacks 40 * @psoc: Pointer to psoc 41 * @cbk: Pointer to callback function 42 */ 43 void reg_unregister_chan_change_callback(struct wlan_objmgr_psoc *psoc, 44 reg_chan_change_callback cbk); 45 46 /** 47 * reg_notify_sap_event() - Notify regulatory domain for sap event 48 * @pdev: The physical dev to set the band for 49 * @sap_state: true for sap start else false 50 * 51 * Return: QDF_STATUS 52 */ 53 QDF_STATUS reg_notify_sap_event(struct wlan_objmgr_pdev *pdev, 54 bool sap_state); 55 56 /** 57 * reg_send_scheduler_msg_sb() - Start scheduler to call list of south bound 58 * callbacks registered whenever current chan list changes. 59 * @psoc: Pointer to PSOC structure. 60 * @pdev: Pointer to PDEV structure. 61 * 62 * Return: QDF_STATUS 63 */ 64 QDF_STATUS reg_send_scheduler_msg_sb(struct wlan_objmgr_psoc *psoc, 65 struct wlan_objmgr_pdev *pdev); 66 67 /** 68 * reg_send_scheduler_msg_nb() - Start scheduler to call list of north bound 69 * @psoc: Pointer to global psoc structure. 70 * @pdev: Pointer to global pdev structure. 71 */ 72 QDF_STATUS reg_send_scheduler_msg_nb(struct wlan_objmgr_psoc *psoc, 73 struct wlan_objmgr_pdev *pdev); 74 #else 75 static inline void reg_register_chan_change_callback( 76 struct wlan_objmgr_psoc *psoc, reg_chan_change_callback cbk, 77 void *arg) 78 { 79 } 80 81 static inline void reg_unregister_chan_change_callback( 82 struct wlan_objmgr_psoc *psoc, reg_chan_change_callback cbk) 83 { 84 } 85 86 static inline QDF_STATUS reg_send_scheduler_msg_sb( 87 struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_pdev *pdev) 88 { 89 return QDF_STATUS_SUCCESS; 90 } 91 92 static inline QDF_STATUS reg_send_scheduler_msg_nb( 93 struct wlan_objmgr_psoc *psoc, struct wlan_objmgr_pdev *pdev) 94 { 95 return QDF_STATUS_SUCCESS; 96 } 97 #endif 98 #endif 99