Procházet zdrojové kódy

qcacmn: Add the wrapper for dsc function operations

Add the qdf wrapper functions for the new dsc infrastructure.

Change-Id: I126b14b00b2f7ef77493a2abb7d8ec4f1394b15c
CRs-Fixed: 2364042
Arunk Khandavalli před 6 roky
rodič
revize
f15ef34107
2 změnil soubory, kde provedl 69 přidání a 2 odebrání
  1. 38 1
      qdf/inc/qdf_platform.h
  2. 31 1
      qdf/src/qdf_platform.c

+ 38 - 1
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*/

+ 31 - 1
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);