123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- /*
- * Copyright (c) 2018 The Linux Foundation. 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 copyright notice and this permission notice appear in all
- * copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
- * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
- * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
- /**
- * DOC: Contains OCB north bound interface definitions
- */
- #ifndef _WLAN_OCB_UCFG_API_H_
- #define _WLAN_OCB_UCFG_API_H_
- #include <qdf_types.h>
- #include "wlan_ocb_public_structs.h"
- #ifdef WLAN_FEATURE_DSRC
- /**
- * ucfg_ocb_set_channel_config() - send OCB config request
- * @vdev: vdev handle
- * @config: config parameters
- * @set_config_cb: callback for set channel config
- * @arg: arguments for the callback
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_set_channel_config(struct wlan_objmgr_vdev *vdev,
- struct ocb_config *config,
- ocb_sync_callback set_config_cb,
- void *arg);
- /**
- * ucfg_ocb_set_utc_time() - UCFG API to set UTC time
- * @vdev: vdev handle
- * @utc: UTC time
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_set_utc_time(struct wlan_objmgr_vdev *vdev,
- struct ocb_utc_param *utc);
- /**
- * ucfg_ocb_start_timing_advert() - ucfg API to start TA
- * @vdev: vdev handle
- * @ta: timing advertisement parameters
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_start_timing_advert(struct wlan_objmgr_vdev *vdev,
- struct ocb_timing_advert_param *ta);
- /**
- * ucfg_ocb_stop_timing_advert() - ucfg API to stop TA
- * @vdev: vdev handle
- * @ta: timing advertisement parameters
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_stop_timing_advert(struct wlan_objmgr_vdev *vdev,
- struct ocb_timing_advert_param *ta);
- /**
- * ucfg_ocb_get_tsf_timer() - ucfg API to get tsf timer
- * @vdev: vdev handle
- * @request: request for TSF timer
- * @get_tsf_cb: callback for TSF timer response
- * @arg: argument for the ccallback
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_get_tsf_timer(struct wlan_objmgr_vdev *vdev,
- struct ocb_get_tsf_timer_param *request,
- ocb_sync_callback get_tsf_cb,
- void *arg);
- /**
- * ucfg_ocb_dcc_get_stats() - get DCC stats
- * @vdev: vdev handle
- * @request: request for dcc stats
- * @dcc_get_stats_cb: callback for get dcc stats response
- * @arg: argument for the ccallback
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_dcc_get_stats(struct wlan_objmgr_vdev *vdev,
- struct ocb_dcc_get_stats_param *request,
- ocb_sync_callback dcc_get_stats_cb,
- void *arg);
- /**
- * ucfg_ocb_dcc_clear_stats() - Clear DCC stats
- * @vdev: vdev handle
- * @vdev_id: vdev ID
- * @bitmap: bitmap for stats to be cleared
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_dcc_clear_stats(struct wlan_objmgr_vdev *vdev,
- uint16_t vdev_id,
- uint32_t bitmap);
- /**
- * ucfg_ocb_dcc_update_ndl() - ucfg API to update NDL
- * @vdev: vdev handle
- * @request: request parameters
- * @dcc_update_ndl_cb: callback for update resposne
- * @arg: argument for the callback
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_dcc_update_ndl(struct wlan_objmgr_vdev *vdev,
- struct ocb_dcc_update_ndl_param *request,
- ocb_sync_callback dcc_update_ndl_cb,
- void *arg);
- /**
- * ucfg_ocb_register_for_dcc_stats_event() - register dcc stats
- * events callback
- * @pdev: pdev handle
- * @context: argument for the callback
- * @dcc_stats_cb: callback for dcc stats event
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_register_for_dcc_stats_event(struct wlan_objmgr_pdev *pdev,
- void *ctx, ocb_sync_callback dcc_stats_cb);
- /**
- * ucfg_ocb_init() - OCB module initialization
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_init(void);
- /**
- * ucfg_ocb_deinit() - OCB module deinitialization
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_deinit(void);
- /**
- * ucfg_ocb_config_channel() - Set channel config using after OCB started
- * @pdev: pdev handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_config_channel(struct wlan_objmgr_pdev *pdev);
- /**
- * ucfg_ocb_register_vdev_start() - register callback to start ocb vdev
- * @pdev: pdev handle
- * @ocb_start: legacy callback to start ocb vdev
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_register_vdev_start(struct wlan_objmgr_pdev *pdev,
- QDF_STATUS (*ocb_start)(struct ocb_config *));
- /**
- * ocb_psoc_enable() - Trigger psoc enable for ocb
- * @psoc: objmgr psoc object
- *
- * Return: QDF status success or failure
- */
- QDF_STATUS ocb_psoc_enable(struct wlan_objmgr_psoc *psoc);
- /**
- * ocb_psoc_disable() - Trigger psoc disable for ocb
- * @psoc: objmgr psoc object
- *
- * Return: QDF status success or failure
- */
- QDF_STATUS ocb_psoc_disable(struct wlan_objmgr_psoc *psoc);
- /**
- * ucfg_ocb_update_dp_handle() - register DP handle
- * @soc: soc handle
- * @dp_soc: data path soc handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_update_dp_handle(struct wlan_objmgr_psoc *soc,
- void *dp_soc);
- /**
- * ucfg_ocb_set_txrx_handle() - register pdev txrx handler
- * @soc: soc handle
- * @txrx_handle: data path pdev txrx handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- QDF_STATUS ucfg_ocb_set_txrx_handle(struct wlan_objmgr_psoc *psoc,
- void *txrx_handle);
- #else
- /**
- * ucfg_ocb_init() - OCB module initialization
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- static inline QDF_STATUS ucfg_ocb_init(void)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ucfg_ocb_deinit() - OCB module deinitialization
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- static inline QDF_STATUS ucfg_ocb_deinit(void)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ucfg_ocb_config_channel() - Set channel config using after OCB started
- * @pdev: pdev handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- static inline QDF_STATUS
- ucfg_ocb_config_channel(struct wlan_objmgr_pdev *pdev)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ocb_psoc_enable() - Trigger psoc enable for ocb
- * @psoc: objmgr psoc object
- *
- * Return: QDF status success or failure
- */
- static inline
- QDF_STATUS ocb_psoc_enable(struct wlan_objmgr_psoc *psoc)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ocb_psoc_disable() - Trigger psoc disable for ocb
- * @psoc: objmgr psoc object
- *
- * Return: QDF status success or failure
- */
- static inline
- QDF_STATUS ocb_psoc_disable(struct wlan_objmgr_psoc *psoc)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ucfg_ocb_update_dp_handle() - register DP handle
- * @soc: soc handle
- * @dp_soc: data path soc handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- static inline
- QDF_STATUS ucfg_ocb_update_dp_handle(struct wlan_objmgr_psoc *soc,
- void *dp_soc)
- {
- return QDF_STATUS_SUCCESS;
- }
- /**
- * ucfg_ocb_set_txrx_handle() - register pdev txrx handler
- * @soc: soc handle
- * @txrx_handle: data path pdev txrx handle
- *
- * Return: QDF_STATUS_SUCCESS on success
- */
- static inline
- QDF_STATUS ucfg_ocb_set_txrx_handle(struct wlan_objmgr_psoc *psoc,
- void *txrx_handle)
- {
- return QDF_STATUS_SUCCESS;
- }
- #endif
- #endif
|