From c03f0ace8a36853ff19cd1cf24dff144fb0f94a3 Mon Sep 17 00:00:00 2001 From: Skylar Chang Date: Fri, 18 Nov 2016 10:21:33 -0800 Subject: [PATCH] msm: ipa: enable suspend pipe for ODU For ODU bridge use case ODU CONS pipe should be suspend if there is no data activity to make sure IPA clocks will be voted on downlink traffic Change-Id: I6625eb082d55456e0f71afa8fc6ebdba3f6024a5 CRs-Fixed: 1095287 Acked-by: Ady Abraham Signed-off-by: Skylar Chang --- drivers/platform/msm/ipa/ipa_v2/ipa_utils.c | 22 +++++++++++++++------- drivers/platform/msm/ipa/ipa_v3/ipa_utils.c | 10 +++++++++- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c index 9813fa417c3a..8968d5d4509f 100644 --- a/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c +++ b/drivers/platform/msm/ipa/ipa_v2/ipa_utils.c @@ -450,6 +450,10 @@ int ipa_get_clients_from_rm_resource( case IPA_RM_RESOURCE_MHI_CONS: clients->names[i++] = IPA_CLIENT_MHI_CONS; break; + case IPA_RM_RESOURCE_ODU_ADAPT_CONS: + clients->names[i++] = IPA_CLIENT_ODU_EMB_CONS; + clients->names[i++] = IPA_CLIENT_ODU_TETH_CONS; + break; case IPA_RM_RESOURCE_USB_PROD: clients->names[i++] = IPA_CLIENT_USB_PROD; break; @@ -459,6 +463,8 @@ int ipa_get_clients_from_rm_resource( case IPA_RM_RESOURCE_MHI_PROD: clients->names[i++] = IPA_CLIENT_MHI_PROD; break; + case IPA_RM_RESOURCE_ODU_ADAPT_PROD: + clients->names[i++] = IPA_CLIENT_ODU_PROD; default: break; } @@ -490,13 +496,15 @@ bool ipa_should_pipe_be_suspended(enum ipa_client_type client) if (ep->keep_ipa_awake) return false; - if (client == IPA_CLIENT_USB_CONS || - client == IPA_CLIENT_MHI_CONS || - client == IPA_CLIENT_HSIC1_CONS || - client == IPA_CLIENT_WLAN1_CONS || - client == IPA_CLIENT_WLAN2_CONS || - client == IPA_CLIENT_WLAN3_CONS || - client == IPA_CLIENT_WLAN4_CONS) + if (client == IPA_CLIENT_USB_CONS || + client == IPA_CLIENT_MHI_CONS || + client == IPA_CLIENT_HSIC1_CONS || + client == IPA_CLIENT_WLAN1_CONS || + client == IPA_CLIENT_WLAN2_CONS || + client == IPA_CLIENT_WLAN3_CONS || + client == IPA_CLIENT_WLAN4_CONS || + client == IPA_CLIENT_ODU_EMB_CONS || + client == IPA_CLIENT_ODU_TETH_CONS) return true; return false; diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c index db60829bce69..c5b5d1892485 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_utils.c @@ -507,6 +507,10 @@ int ipa3_get_clients_from_rm_resource( case IPA_RM_RESOURCE_MHI_CONS: clients->names[i++] = IPA_CLIENT_MHI_CONS; break; + case IPA_RM_RESOURCE_ODU_ADAPT_CONS: + clients->names[i++] = IPA_CLIENT_ODU_EMB_CONS; + clients->names[i++] = IPA_CLIENT_ODU_TETH_CONS; + break; case IPA_RM_RESOURCE_USB_PROD: clients->names[i++] = IPA_CLIENT_USB_PROD; break; @@ -516,6 +520,8 @@ int ipa3_get_clients_from_rm_resource( case IPA_RM_RESOURCE_MHI_PROD: clients->names[i++] = IPA_CLIENT_MHI_PROD; break; + case IPA_RM_RESOURCE_ODU_ADAPT_PROD: + clients->names[i++] = IPA_CLIENT_ODU_PROD; default: break; } @@ -554,7 +560,9 @@ bool ipa3_should_pipe_be_suspended(enum ipa_client_type client) client == IPA_CLIENT_WLAN1_CONS || client == IPA_CLIENT_WLAN2_CONS || client == IPA_CLIENT_WLAN3_CONS || - client == IPA_CLIENT_WLAN4_CONS) + client == IPA_CLIENT_WLAN4_CONS || + client == IPA_CLIENT_ODU_EMB_CONS || + client == IPA_CLIENT_ODU_TETH_CONS) return true; return false; -- 2.11.0