From f15ef3410798bf9746c7da3461b5e8c5fb8be072 Mon Sep 17 00:00:00 2001 From: Arunk Khandavalli Date: Thu, 22 Nov 2018 12:37:26 +0530 Subject: [PATCH] qcacmn: Add the wrapper for dsc function operations Add the qdf wrapper functions for the new dsc infrastructure. Change-Id: I126b14b00b2f7ef77493a2abb7d8ec4f1394b15c CRs-Fixed: 2364042 --- qdf/inc/qdf_platform.h | 39 ++++++++++++++++++++++++++++++++++++++- qdf/src/qdf_platform.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 2 deletions(-) diff --git a/qdf/inc/qdf_platform.h b/qdf/inc/qdf_platform.h index 3769b251f63c..ffde494ce7c6 100644 --- a/qdf/inc/qdf_platform.h +++ b/qdf/inc/qdf_platform.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * 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 @@ -155,4 +155,41 @@ void qdf_register_recovering_state_query_callback( * 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*/ diff --git a/qdf/src/qdf_platform.c b/qdf/src/qdf_platform.c index 8fa76697a316..8d6c76b48201 100644 --- a/qdf/src/qdf_platform.c +++ b/qdf/src/qdf_platform.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * 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 @@ -30,6 +30,9 @@ static qdf_ssr_callback ssr_unprotect_cb; static qdf_is_module_state_transitioning_cb module_state_transitioning_cb; static qdf_is_fw_down_callback is_fw_down_cb; static qdf_is_recovering_callback is_recovering_cb; +static qdf_psoc_start_callback psoc_op_start; +static qdf_psoc_stop_callback psoc_op_stop; + void qdf_register_fw_down_callback(qdf_is_fw_down_callback is_fw_down) { @@ -124,3 +127,30 @@ bool qdf_is_recovering(void) } qdf_export_symbol(qdf_is_recovering); + +void qdf_register_dsc_psoc_callbacks(qdf_psoc_start_callback psoc_start, + qdf_psoc_stop_callback psoc_stop) +{ + psoc_op_start = psoc_start; + psoc_op_stop = psoc_stop; +} + +qdf_export_symbol(qdf_register_dsc_psoc_callbacks); + +QDF_STATUS qdf_psoc_op_start(void) +{ + if (psoc_op_start) + return psoc_op_start(); + + return QDF_STATUS_E_INVAL; +} + +qdf_export_symbol(qdf_psoc_op_start); + +void qdf_psoc_op_stop(void) +{ + if (psoc_op_stop) + psoc_op_stop(); +} + +qdf_export_symbol(qdf_psoc_op_stop);