diff --git a/qdf/inc/qdf_event.h b/qdf/inc/qdf_event.h index 4bd653f19b..1880e6c883 100644 --- a/qdf/inc/qdf_event.h +++ b/qdf/inc/qdf_event.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2014-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -47,6 +47,10 @@ extern "C" { typedef __qdf_event_t qdf_event_t; /* Function declarations and documenation */ +#ifdef CONFIG_MCL +typedef void (*qdf_self_recovery_callback)(void); +#endif + QDF_STATUS qdf_event_create(qdf_event_t *event); QDF_STATUS qdf_event_set(qdf_event_t *event); @@ -65,6 +69,23 @@ QDF_STATUS qdf_wait_single_event(qdf_event_t *event, */ QDF_STATUS qdf_exit_thread(QDF_STATUS status); +#ifdef CONFIG_MCL +/** + * 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 () - tirgger self recovery + * + * Return: None + */ +void qdf_trigger_self_recovery(void); +#endif + #ifdef __cplusplus } #endif /* __cplusplus */ diff --git a/qdf/linux/src/qdf_event.c b/qdf/linux/src/qdf_event.c index f399831c90..912d43d82a 100644 --- a/qdf/linux/src/qdf_event.c +++ b/qdf/linux/src/qdf_event.c @@ -39,6 +39,10 @@ #include "qdf_mc_timer.h" #include +#ifdef CONFIG_MCL +static qdf_self_recovery_callback self_recovery_cb; +#endif + /* Function Definitions and Documentation */ /** @@ -273,3 +277,20 @@ QDF_STATUS qdf_exit_thread(QDF_STATUS status) return QDF_STATUS_SUCCESS; } EXPORT_SYMBOL(qdf_exit_thread); + +#ifdef CONFIG_MCL +void qdf_register_self_recovery_callback(qdf_self_recovery_callback callback) +{ + self_recovery_cb = callback; +} + +void qdf_trigger_self_recovery(void) +{ + if (!self_recovery_cb) { + QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO, + "No self recovery callback registered %s", __func__); + return; + } + self_recovery_cb(); +} +#endif