
Add the qdf wrapper functions for the new dsc infrastructure. Change-Id: I126b14b00b2f7ef77493a2abb7d8ec4f1394b15c CRs-Fixed: 2364042
196 lines
5.0 KiB
C
196 lines
5.0 KiB
C
/*
|
|
* Copyright (c) 2018-2019 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: qdf_platform.h
|
|
* This file defines platform API abstractions.
|
|
*/
|
|
|
|
#ifndef _QDF_PLATFORM_H
|
|
#define _QDF_PLATFORM_H
|
|
|
|
/**
|
|
* qdf_self_recovery_callback() - callback for self recovery
|
|
* @reason: the reason for the recovery request
|
|
* @func: the caller's function name
|
|
* @line: the line number of the callsite
|
|
*
|
|
* Return: none
|
|
*/
|
|
typedef void (*qdf_self_recovery_callback)(enum qdf_hang_reason reason,
|
|
const char *func,
|
|
const uint32_t line);
|
|
|
|
/**
|
|
* qdf_ssr_callback() - callback for ssr
|
|
*
|
|
* Return: true if fw is down and false if fw is not down
|
|
*/
|
|
typedef void (*qdf_ssr_callback)(const char *);
|
|
|
|
/**
|
|
* qdf_is_module_state_transitioning_cb() - callback to check module state
|
|
*
|
|
* Return: true if module is in transition, else false
|
|
*/
|
|
typedef int (*qdf_is_module_state_transitioning_cb)(void);
|
|
|
|
/**
|
|
* qdf_is_fw_down_callback() - callback to query if fw is down
|
|
*
|
|
* Return: true if fw is down and false if fw is not down
|
|
*/
|
|
typedef bool (*qdf_is_fw_down_callback)(void);
|
|
|
|
/**
|
|
* qdf_register_fw_down_callback() - API to register fw down callback
|
|
* @is_fw_down: callback to query if fw is down or not
|
|
*
|
|
* Return: none
|
|
*/
|
|
void qdf_register_fw_down_callback(qdf_is_fw_down_callback is_fw_down);
|
|
|
|
/**
|
|
* qdf_is_fw_down() - API to check if fw is down or not
|
|
*
|
|
* Return: true: if fw is down
|
|
* false: if fw is not down
|
|
*/
|
|
bool qdf_is_fw_down(void);
|
|
|
|
/**
|
|
* qdf_register_self_recovery_callback() - register self recovery callback
|
|
* @callback: self recovery callback
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_register_self_recovery_callback(qdf_self_recovery_callback callback);
|
|
|
|
/**
|
|
* qdf_trigger_self_recovery () - trigger self recovery
|
|
*
|
|
* Call API only in case of fatal error,
|
|
* if self_recovery_cb callback is registered, injcets fw crash and recovers
|
|
* else raises QDF_BUG()
|
|
*
|
|
* Return: None
|
|
*/
|
|
#define qdf_trigger_self_recovery() \
|
|
__qdf_trigger_self_recovery(__func__, __LINE__)
|
|
void __qdf_trigger_self_recovery(const char *func, const uint32_t line);
|
|
|
|
/**
|
|
* qdf_register_ssr_protect_callbacks() - register [un]protect callbacks
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_register_ssr_protect_callbacks(qdf_ssr_callback protect,
|
|
qdf_ssr_callback unprotect);
|
|
|
|
/**
|
|
* qdf_ssr_protect() - start SSR protection
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_ssr_protect(const char *caller);
|
|
|
|
/**
|
|
* qdf_ssr_unprotect() - remove SSR protection
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_ssr_unprotect(const char *caller);
|
|
|
|
/**
|
|
* qdf_register_module_state_query_callback() - register module state query
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_register_module_state_query_callback(
|
|
qdf_is_module_state_transitioning_cb query);
|
|
|
|
/**
|
|
* qdf_is_module_state_transitioning() - query module state transition
|
|
*
|
|
* Return: true if in transition else false
|
|
*/
|
|
bool qdf_is_module_state_transitioning(void);
|
|
|
|
/**
|
|
* qdf_is_recovering_callback() - callback to get driver recovering in progress
|
|
* or not
|
|
*
|
|
* Return: true if driver is doing recovering else false
|
|
*/
|
|
typedef bool (*qdf_is_recovering_callback)(void);
|
|
|
|
/**
|
|
* qdf_register_recovering_state_query_callback() - register recover status
|
|
* query callback
|
|
*
|
|
* Return: none
|
|
*/
|
|
void qdf_register_recovering_state_query_callback(
|
|
qdf_is_recovering_callback is_recovering);
|
|
|
|
/**
|
|
* qdf_is_recovering() - get driver recovering in progress status
|
|
* or not
|
|
*
|
|
* Return: true if driver is doing recovering else false
|
|
*/
|
|
bool qdf_is_recovering(void);
|
|
|
|
/**
|
|
* qdf_psoc_start_callback() - callback for starting the psoc operation
|
|
*
|
|
* Return: true if driver psoc operation can be started else false
|
|
*/
|
|
typedef QDF_STATUS (*qdf_psoc_start_callback)(void);
|
|
|
|
/**
|
|
* qdf_psoc_stop_callback - callback for stopping the psoc operation
|
|
*
|
|
* Return: None
|
|
*/
|
|
typedef void (*qdf_psoc_stop_callback)(void);
|
|
|
|
/**
|
|
* qdf_psoc_op_start() - start DSC psoc operation
|
|
*
|
|
* Return: Success for starting psoc operation or failure
|
|
*/
|
|
QDF_STATUS qdf_psoc_op_start(void);
|
|
|
|
/**
|
|
* qdf_psoc_op_stop() - stop DSC psoc operation
|
|
* @context: Context information
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_psoc_op_stop(void);
|
|
|
|
/**
|
|
* qdf_register_dsc_psoc_callbacks() - register dsc psoc start/stop callbacks
|
|
*
|
|
* Return: None
|
|
*/
|
|
void qdf_register_dsc_psoc_callbacks(qdf_psoc_start_callback protect,
|
|
qdf_psoc_stop_callback unprotect);
|
|
#endif /*_QDF_PLATFORM_H*/
|