From 88de1dba44e0ad713a9ed40a1486e66216d9c716 Mon Sep 17 00:00:00 2001 From: Rajeev Kumar Date: Fri, 9 Mar 2018 15:00:36 -0800 Subject: [PATCH] qcacmn: Add common QDF API qdf_is_fw_down() to check fw status Add common QDF API qdf_is_fw_down() to check if FW is down. Change-Id: I8215665bec6975c8dd47ae3bb8423eeaaeba159c CRs-Fixed: 2202731 --- qdf/inc/qdf_platform.h | 58 ++++++++++++++++++++++++++ qdf/inc/qdf_util.h | 14 ------- qdf/src/{qdf_util.c => qdf_platform.c} | 15 ++++++- 3 files changed, 72 insertions(+), 15 deletions(-) create mode 100644 qdf/inc/qdf_platform.h rename qdf/src/{qdf_util.c => qdf_platform.c} (78%) diff --git a/qdf/inc/qdf_platform.h b/qdf/inc/qdf_platform.h new file mode 100644 index 0000000000..2e288b19ba --- /dev/null +++ b/qdf/inc/qdf_platform.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2018 The Linux Foundation. All rights reserved. + * + * Previously licensed under the ISC license by Qualcomm Atheros, Inc. + * + * + * 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. + */ + +/* + * This file was originally distributed by Qualcomm Atheros, Inc. + * under proprietary terms before Copyright ownership was assigned + * to the Linux Foundation. + */ + +/** + * DOC: qdf_platform.h + * This file defines platform API abstractions. + */ + +#ifndef _QDF_PLATFORM_H +#define _QDF_PLATFORM_H + +/** + * 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); +#endif /*_QDF_PLATFORM_H*/ diff --git a/qdf/inc/qdf_util.h b/qdf/inc/qdf_util.h index 5d219447cb..36d45547be 100644 --- a/qdf/inc/qdf_util.h +++ b/qdf/inc/qdf_util.h @@ -42,12 +42,6 @@ #endif typedef __qdf_wait_queue_head_t qdf_wait_queue_head_t; -/** - * 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_unlikely - Compiler-dependent macro denoting code likely to execute @@ -675,12 +669,4 @@ void qdf_get_random_bytes(void *buf, int nbytes) { return __qdf_get_random_bytes(buf, nbytes); } - -/** - * 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); #endif /*_QDF_UTIL_H*/ diff --git a/qdf/src/qdf_util.c b/qdf/src/qdf_platform.c similarity index 78% rename from qdf/src/qdf_util.c rename to qdf/src/qdf_platform.c index e6ddc1a5a8..9c3fb414c1 100644 --- a/qdf/src/qdf_util.c +++ b/qdf/src/qdf_platform.c @@ -17,7 +17,8 @@ */ #include "qdf_module.h" -#include "qdf_util.h" +#include "qdf_trace.h" +#include "qdf_platform.h" static qdf_is_fw_down_callback is_fw_down_cb; @@ -26,3 +27,15 @@ void qdf_register_fw_down_callback(qdf_is_fw_down_callback is_fw_down) is_fw_down_cb = is_fw_down; } qdf_export_symbol(qdf_register_fw_down_callback); + +bool qdf_is_fw_down(void) +{ + if (!is_fw_down_cb) { + QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_ERROR, + "fw down callback is not registered"); + return false; + } + + return is_fw_down_cb(); +} +qdf_export_symbol(qdf_is_fw_down);