Merge "msm: ipa3: fix usage of ipa3_get_gsi_ep_info()" into msm-4.9
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa.c b/drivers/platform/msm/ipa/ipa_v3/ipa.c
index 862b147..e7b16b3 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa.c
@@ -1884,7 +1884,7 @@ static void ipa3_halt_q6_cons_gsi_channels(void)
if (ep_idx == -1)
continue;
- gsi_ep_cfg = ipa3_get_gsi_ep_info(ep_idx);
+ gsi_ep_cfg = ipa3_get_gsi_ep_info(client_idx);
if (!gsi_ep_cfg) {
IPAERR("failed to get GSI config\n");
ipa_assert();
@@ -2362,6 +2362,7 @@ void ipa3_q6_pre_shutdown_cleanup(void)
void ipa3_q6_post_shutdown_cleanup(void)
{
int client_idx;
+ int ep_idx;
IPADBG_LOW("ENTER\n");
@@ -2378,6 +2379,10 @@ void ipa3_q6_post_shutdown_cleanup(void)
for (client_idx = 0; client_idx < IPA_CLIENT_MAX; client_idx++)
if (IPA_CLIENT_IS_Q6_PROD(client_idx)) {
+ ep_idx = ipa3_get_ep_mapping(client_idx);
+ if (ep_idx == -1)
+ continue;
+
if (ipa3_uc_is_gsi_channel_empty(client_idx)) {
IPAERR("fail to validate Q6 ch emptiness %d\n",
client_idx);
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
index f066d94..6321ca9 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c
@@ -1703,10 +1703,11 @@ int ipa3_get_ep_mapping(enum ipa_client_type client)
const struct ipa_gsi_ep_config *ipa3_get_gsi_ep_info
(enum ipa_client_type client)
{
- if (client >= IPA_CLIENT_MAX || client < 0) {
- IPAERR("Bad client number! client =%d\n", client);
+ int ep_idx;
+
+ ep_idx = ipa3_get_ep_mapping(client);
+ if (ep_idx == IPA_EP_NOT_ALLOCATED)
return NULL;
- }
return &(ipa3_ep_mapping[ipa3_get_hw_type_index()]
[client].ipa_gsi_ep_info);