summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Liu <kaliu@codeaurora.org>2015-12-17 15:34:25 +0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:16:42 -0700
commit09c8b9e1907e2d81bb3f537cd71810a4feb4c568 (patch)
treeb4f12c4b250d570a906f5cf8b082589ea19d73bc
parentdac841cd75a9d123fc0471237a038a697410b007 (diff)
cnss: sdio: Define OOB interrupt interfaces.
Define the OOB interrupt interfaces in case that internal interrupt is unsupported in some platforms. In some specific platform, only polling mode is supported, with these OOB interrupt interfaces implementation, it will support interrupt mode. To be generic, this OOB feature is default unsupported. Change-Id: I3b38e59bd7fdb441c85eb82a79cf9c951ca32130 CRs-Fixed: 937303 Signed-off-by: Kai Liu <kaliu@codeaurora.org>
-rw-r--r--drivers/net/wireless/cnss/cnss_sdio.c45
-rw-r--r--include/net/cnss.h6
2 files changed, 51 insertions, 0 deletions
diff --git a/drivers/net/wireless/cnss/cnss_sdio.c b/drivers/net/wireless/cnss/cnss_sdio.c
index 98c2b05473c7..8c052b0d97b1 100644
--- a/drivers/net/wireless/cnss/cnss_sdio.c
+++ b/drivers/net/wireless/cnss/cnss_sdio.c
@@ -708,6 +708,51 @@ cnss_sdio_wlan_unregister_driver(struct cnss_sdio_wlan_driver *driver)
}
EXPORT_SYMBOL(cnss_sdio_wlan_unregister_driver);
+/**
+ * cnss_wlan_query_oob_status() - cnss wlan query oob status API
+ *
+ * Wlan sdio function driver uses this API to check whether oob is
+ * supported in platform driver.
+ *
+ * Return: 0 means oob is supported, others means unsupported.
+ */
+int cnss_wlan_query_oob_status(void)
+{
+ return -ENOSYS;
+}
+EXPORT_SYMBOL(cnss_wlan_query_oob_status);
+
+/**
+ * cnss_wlan_register_oob_irq_handler() - cnss wlan register oob callback API
+ * @handler: oob callback function pointer which registered to platform driver.
+ * @pm_oob : parameter which registered to platform driver.
+ *
+ * Wlan sdio function driver uses this API to register oob callback
+ * function to platform driver.
+ *
+ * Return: 0 means register successfully, others means failure.
+ */
+int cnss_wlan_register_oob_irq_handler(oob_irq_handler_t handler, void *pm_oob)
+{
+ return -ENOSYS;
+}
+EXPORT_SYMBOL(cnss_wlan_register_oob_irq_handler);
+
+/**
+ * cnss_wlan_unregister_oob_irq_handler() - cnss wlan unregister oob callback API
+ * @pm_oob: parameter which unregistered from platform driver.
+ *
+ * Wlan sdio function driver uses this API to unregister oob callback
+ * function from platform driver.
+ *
+ * Return: 0 means unregister successfully, others means failure.
+ */
+int cnss_wlan_unregister_oob_irq_handler(void *pm_oob)
+{
+ return -ENOSYS;
+}
+EXPORT_SYMBOL(cnss_wlan_unregister_oob_irq_handler);
+
static int cnss_sdio_wlan_init(void)
{
int error = 0;
diff --git a/include/net/cnss.h b/include/net/cnss.h
index eb766f2d993b..ee91b28644d3 100644
--- a/include/net/cnss.h
+++ b/include/net/cnss.h
@@ -206,5 +206,11 @@ extern int cnss_sdio_wlan_register_driver(
struct cnss_sdio_wlan_driver *driver);
extern void cnss_sdio_wlan_unregister_driver(
struct cnss_sdio_wlan_driver *driver);
+
+typedef void (*oob_irq_handler_t)(void *dev_para);
+extern int cnss_wlan_query_oob_status(void);
+extern int cnss_wlan_register_oob_irq_handler(oob_irq_handler_t handler,
+ void *pm_oob);
+extern int cnss_wlan_unregister_oob_irq_handler(void *pm_oob);
#endif
#endif /* _NET_CNSS_H_ */