Sfoglia il codice sorgente

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
Rajeev Kumar 7 anni fa
parent
commit
88de1dba44
3 ha cambiato i file con 72 aggiunte e 15 eliminazioni
  1. 58 0
      qdf/inc/qdf_platform.h
  2. 0 14
      qdf/inc/qdf_util.h
  3. 14 1
      qdf/src/qdf_platform.c

+ 58 - 0
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*/

+ 0 - 14
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*/

+ 14 - 1
qdf/src/qdf_util.c → 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);