diff --git a/drivers/platform/msm/ipa/ipa_utils.c b/drivers/platform/msm/ipa/ipa_utils.c index dca797ceff00ff47bd95e11905a63c1d733ada97..9d082700ff326782e1ae3e111f148834b6ef2dad 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 96278509076c0e882722fd9dc318e974e94c4056..fb95905a71bdfc77f3d91302b735515e68f09103 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_ */