Merge "IPACM: support IPA power save feature"
diff --git a/ipacm/src/IPACM_Config.cpp b/ipacm/src/IPACM_Config.cpp
index 59d664e..ba0417d 100644
--- a/ipacm/src/IPACM_Config.cpp
+++ b/ipacm/src/IPACM_Config.cpp
@@ -187,39 +187,36 @@
/* Construct IPACM ipa_client map to rm_resource table */
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC1_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC2_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC3_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC4_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC5_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
+ ipa_client_rm_map_tbl[IPA_CLIENT_WLAN1_PROD]= IPA_RM_RESOURCE_WLAN_PROD;
ipa_client_rm_map_tbl[IPA_CLIENT_USB_PROD]= IPA_RM_RESOURCE_USB_PROD;
ipa_client_rm_map_tbl[IPA_CLIENT_A5_WLAN_AMPDU_PROD]= IPA_RM_RESOURCE_HSIC_PROD;
-// ipa_client_rm_map_tbl[IPA_CLIENT_A2_EMBEDDED_PROD]= IPA_RM_RESOURCE_A2_PROD;
-// ipa_client_rm_map_tbl[IPA_CLIENT_A2_TETHERED_PROD]= IPA_RM_RESOURCE_A2_PROD;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC1_CONS]= IPA_RM_RESOURCE_HSIC_CONS;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC2_CONS]= IPA_RM_RESOURCE_HSIC_CONS;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC3_CONS]= IPA_RM_RESOURCE_HSIC_CONS;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC4_CONS]= IPA_RM_RESOURCE_HSIC_CONS;
- ipa_client_rm_map_tbl[IPA_CLIENT_HSIC5_CONS]= IPA_RM_RESOURCE_HSIC_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_A2_EMBEDDED_PROD]= IPA_RM_RESOURCE_Q6_PROD;
+ ipa_client_rm_map_tbl[IPA_CLIENT_A2_TETHERED_PROD]= IPA_RM_RESOURCE_Q6_PROD;
+ ipa_client_rm_map_tbl[IPA_CLIENT_APPS_LAN_WAN_PROD]= IPA_RM_RESOURCE_Q6_PROD;
+ ipa_client_rm_map_tbl[IPA_CLIENT_WLAN1_CONS]= IPA_RM_RESOURCE_WLAN_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_WLAN2_CONS]= IPA_RM_RESOURCE_WLAN_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_WLAN3_CONS]= IPA_RM_RESOURCE_WLAN_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_WLAN4_CONS]= IPA_RM_RESOURCE_WLAN_CONS;
ipa_client_rm_map_tbl[IPA_CLIENT_USB_CONS]= IPA_RM_RESOURCE_USB_CONS;
-// ipa_client_rm_map_tbl[IPA_CLIENT_A2_EMBEDDED_CONS]= IPA_RM_RESOURCE_A2_CONS;
-// ipa_client_rm_map_tbl[IPA_CLIENT_A2_TETHERED_CONS]= IPA_RM_RESOURCE_A2_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_A2_EMBEDDED_CONS]= IPA_RM_RESOURCE_Q6_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_A2_TETHERED_CONS]= IPA_RM_RESOURCE_Q6_CONS;
+ ipa_client_rm_map_tbl[IPA_CLIENT_APPS_WAN_CONS]= IPA_RM_RESOURCE_Q6_CONS;
/* Create the entries which IPACM wants to add dependencies on */
- ipa_rm_tbl[0].producer_rm1 = IPA_RM_RESOURCE_HSIC_PROD;
-// ipa_rm_tbl[0].consumer_rm1 = IPA_RM_RESOURCE_A2_CONS;
-// ipa_rm_tbl[0].producer_rm2 = IPA_RM_RESOURCE_A2_PROD;
- ipa_rm_tbl[0].consumer_rm2 = IPA_RM_RESOURCE_HSIC_CONS;
+ ipa_rm_tbl[0].producer_rm1 = IPA_RM_RESOURCE_WLAN_PROD;
+ ipa_rm_tbl[0].consumer_rm1 = IPA_RM_RESOURCE_Q6_CONS;
+ ipa_rm_tbl[0].producer_rm2 = IPA_RM_RESOURCE_Q6_PROD;
+ ipa_rm_tbl[0].consumer_rm2 = IPA_RM_RESOURCE_WLAN_CONS;
ipa_rm_tbl[1].producer_rm1 = IPA_RM_RESOURCE_USB_PROD;
-// ipa_rm_tbl[1].consumer_rm1 = IPA_RM_RESOURCE_A2_CONS;
-// ipa_rm_tbl[1].producer_rm2 = IPA_RM_RESOURCE_A2_PROD;
+ ipa_rm_tbl[1].consumer_rm1 = IPA_RM_RESOURCE_Q6_CONS;
+ ipa_rm_tbl[1].producer_rm2 = IPA_RM_RESOURCE_Q6_PROD;
ipa_rm_tbl[1].consumer_rm2 = IPA_RM_RESOURCE_USB_CONS;
- ipa_rm_tbl[2].producer_rm1 = IPA_RM_RESOURCE_HSIC_PROD;
+ ipa_rm_tbl[2].producer_rm1 = IPA_RM_RESOURCE_WLAN_PROD;
ipa_rm_tbl[2].consumer_rm1 = IPA_RM_RESOURCE_USB_CONS;
ipa_rm_tbl[2].producer_rm2 = IPA_RM_RESOURCE_USB_PROD;
- ipa_rm_tbl[2].consumer_rm2 = IPA_RM_RESOURCE_HSIC_CONS;
+ ipa_rm_tbl[2].consumer_rm2 = IPA_RM_RESOURCE_WLAN_CONS;
fail:
free(cfg);
@@ -344,12 +341,12 @@
int retval = 0;
struct ipa_ioc_rm_dependency dep;
- /* ipa_rm_a2_check: IPA_RM_RESOURCE_A2_CONS*/
-// if(rm1 == IPA_RM_RESOURCE_A2_CONS)
-// {
-// ipa_rm_a2_check+=1;
-// IPACMDBG("got %d times default RT routing from A2 \n", ipa_rm_a2_check);
-// }
+ /* ipa_rm_a2_check: IPA_RM_RESOURCE_Q6_CONS*/
+ if(rm1 == IPA_RM_RESOURCE_Q6_CONS)
+ {
+ ipa_rm_a2_check+=1;
+ IPACMDBG("got %d times default RT routing from A2 \n", ipa_rm_a2_check);
+ }
for(int i=0;i<IPA_MAX_PRIVATE_SUBNET_ENTRIES;i++)
{
@@ -454,12 +451,12 @@
int retval = 0;
struct ipa_ioc_rm_dependency dep;
- /* ipa_rm_a2_check: IPA_RM_RESOURCE_A2_CONS*/
-// if(rm1 == IPA_RM_RESOURCE_A2_CONS)
-// {
-// ipa_rm_a2_check-=1;
-// IPACMDBG("Left %d times default RT routing from A2 \n", ipa_rm_a2_check);
-// }
+ /* ipa_rm_a2_check: IPA_RM_RESOURCE_Q6_CONS*/
+ if(rm1 == IPA_RM_RESOURCE_Q6_CONS)
+ {
+ ipa_rm_a2_check-=1;
+ IPACMDBG("Left %d times default RT routing from A2 \n", ipa_rm_a2_check);
+ }
for(int i=0;i<IPA_MAX_PRIVATE_SUBNET_ENTRIES;i++)
{
@@ -505,12 +502,12 @@
if(rm1 == ipa_rm_tbl[i].consumer_rm1)
{
- /* ipa_rm_a2_check: IPA_RM_RESOURCE_A2_CONS*/
-// if(ipa_rm_tbl[i].consumer_rm1 == IPA_RM_RESOURCE_A2_CONS && ipa_rm_a2_check == 1)
-// {
-// IPACMDBG(" still have %d default RT routing from A2 \n", ipa_rm_a2_check);
-// continue;
-// }
+ /* ipa_rm_a2_check: IPA_RM_RESOURCE_!6_CONS*/
+ if(ipa_rm_tbl[i].consumer_rm1 == IPA_RM_RESOURCE_Q6_CONS && ipa_rm_a2_check == 1)
+ {
+ IPACMDBG(" still have %d default RT routing from A2 \n", ipa_rm_a2_check);
+ continue;
+ }
if(ipa_rm_tbl[i].rm_set == true)
{
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index 180615e..4670974 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -1220,7 +1220,7 @@
fail:
/* Delete corresponding ipa_rm_resource_name of RX-endpoint after delete all IPV4V6 FT-rule */
- IPACM_Iface::ipacmcfg->DelRmDepend(IPA_RM_RESOURCE_HSIC_PROD);
+ IPACM_Iface::ipacmcfg->DelRmDepend(IPACM_Iface::ipacmcfg->ipa_client_rm_map_tbl[rx_prop->rx[0].src_pipe]);
free(wlan_client);
if (tx_prop != NULL)