From 177b9dd51b326a69a752e773784e4eb8e791c30f Mon Sep 17 00:00:00 2001
From: Ravi Gummadidala <rgummadi@codeaurora.org>
Date: Tue, 18 Mar 2014 19:06:18 -0700
Subject: [PATCH] msm: ipa: add an API to check if IPA driver is ready

Clients can use this API to ensure IPA driver was
initialized successfully before invoking any other IPA APIs.

Change-Id: Ib4a8b62a2c9a2746db1090f540cccd01bae74272
Signed-off-by: Ravi Gummadidala <rgummadi@codeaurora.org>
---
 drivers/platform/msm/ipa/ipa_utils.c | 12 ++++++++++++
 include/linux/ipa.h                  |  7 +++++++
 2 files changed, 19 insertions(+)

diff --git a/drivers/platform/msm/ipa/ipa_utils.c b/drivers/platform/msm/ipa/ipa_utils.c
index dca797ceff00..9d082700ff32 100644
--- a/drivers/platform/msm/ipa/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_utils.c
@@ -3606,3 +3606,15 @@ fail_alloc_pkt_init:
 fail_alloc_desc:
 	return res;
 }
+
+/**
+ * ipa_is_ready() - check if IPA module was initialized
+ * successfully
+ *
+ * Return value: true for yes; false for no
+ */
+bool ipa_is_ready(void)
+{
+	return (ipa_ctx != NULL) ? true : false;
+}
+EXPORT_SYMBOL(ipa_is_ready);
diff --git a/include/linux/ipa.h b/include/linux/ipa.h
index 96278509076c..fb95905a71bd 100644
--- a/include/linux/ipa.h
+++ b/include/linux/ipa.h
@@ -953,6 +953,8 @@ int ipa_remove_interrupt_handler(enum ipa_irq_type interrupt);
 
 int ipa_get_ep_mapping(enum ipa_client_type client);
 
+bool ipa_is_ready(void);
+
 #else /* CONFIG_IPA */
 
 /*
@@ -1421,6 +1423,11 @@ static inline int ipa_get_ep_mapping(enum ipa_client_type client)
 {
 	return -EPERM;
 }
+
+static inline bool ipa_is_ready(void)
+{
+	return false;
+}
 #endif /* CONFIG_IPA*/
 
 #endif /* _IPA_H_ */
-- 
GitLab