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 <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
This commit is contained in:
Skylar Chang 2016-11-18 10:21:33 -08:00 committed by Gerrit - the friendly Code Review server
parent 5142c18bae
commit c03f0ace8a
2 changed files with 24 additions and 8 deletions

View file

@ -450,6 +450,10 @@ int ipa_get_clients_from_rm_resource(
case IPA_RM_RESOURCE_MHI_CONS: case IPA_RM_RESOURCE_MHI_CONS:
clients->names[i++] = IPA_CLIENT_MHI_CONS; clients->names[i++] = IPA_CLIENT_MHI_CONS;
break; 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: case IPA_RM_RESOURCE_USB_PROD:
clients->names[i++] = IPA_CLIENT_USB_PROD; clients->names[i++] = IPA_CLIENT_USB_PROD;
break; break;
@ -459,6 +463,8 @@ int ipa_get_clients_from_rm_resource(
case IPA_RM_RESOURCE_MHI_PROD: case IPA_RM_RESOURCE_MHI_PROD:
clients->names[i++] = IPA_CLIENT_MHI_PROD; clients->names[i++] = IPA_CLIENT_MHI_PROD;
break; break;
case IPA_RM_RESOURCE_ODU_ADAPT_PROD:
clients->names[i++] = IPA_CLIENT_ODU_PROD;
default: default:
break; break;
} }
@ -490,13 +496,15 @@ bool ipa_should_pipe_be_suspended(enum ipa_client_type client)
if (ep->keep_ipa_awake) if (ep->keep_ipa_awake)
return false; return false;
if (client == IPA_CLIENT_USB_CONS || if (client == IPA_CLIENT_USB_CONS ||
client == IPA_CLIENT_MHI_CONS || client == IPA_CLIENT_MHI_CONS ||
client == IPA_CLIENT_HSIC1_CONS || client == IPA_CLIENT_HSIC1_CONS ||
client == IPA_CLIENT_WLAN1_CONS || client == IPA_CLIENT_WLAN1_CONS ||
client == IPA_CLIENT_WLAN2_CONS || client == IPA_CLIENT_WLAN2_CONS ||
client == IPA_CLIENT_WLAN3_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 true;
return false; return false;

View file

@ -507,6 +507,10 @@ int ipa3_get_clients_from_rm_resource(
case IPA_RM_RESOURCE_MHI_CONS: case IPA_RM_RESOURCE_MHI_CONS:
clients->names[i++] = IPA_CLIENT_MHI_CONS; clients->names[i++] = IPA_CLIENT_MHI_CONS;
break; 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: case IPA_RM_RESOURCE_USB_PROD:
clients->names[i++] = IPA_CLIENT_USB_PROD; clients->names[i++] = IPA_CLIENT_USB_PROD;
break; break;
@ -516,6 +520,8 @@ int ipa3_get_clients_from_rm_resource(
case IPA_RM_RESOURCE_MHI_PROD: case IPA_RM_RESOURCE_MHI_PROD:
clients->names[i++] = IPA_CLIENT_MHI_PROD; clients->names[i++] = IPA_CLIENT_MHI_PROD;
break; break;
case IPA_RM_RESOURCE_ODU_ADAPT_PROD:
clients->names[i++] = IPA_CLIENT_ODU_PROD;
default: default:
break; break;
} }
@ -554,7 +560,9 @@ bool ipa3_should_pipe_be_suspended(enum ipa_client_type client)
client == IPA_CLIENT_WLAN1_CONS || client == IPA_CLIENT_WLAN1_CONS ||
client == IPA_CLIENT_WLAN2_CONS || client == IPA_CLIENT_WLAN2_CONS ||
client == IPA_CLIENT_WLAN3_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 true;
return false; return false;