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
This commit is contained in:
Rajeev Kumar
2018-03-09 15:00:36 -08:00
committed by nshrivas
parent 084a46d276
commit 88de1dba44
3 changed files with 72 additions and 15 deletions

58
qdf/inc/qdf_platform.h Normal file
View File

@@ -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*/

View File

@@ -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*/

View File

@@ -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);