diff options
author | Bruno Martins <bgcngm@gmail.com> | 2018-09-07 17:34:01 +0100 |
---|---|---|
committer | Davide Garberi <dade.garberi@gmail.com> | 2018-09-13 15:22:10 +0200 |
commit | 9b3b1b12a25947f1d09e445e96cb66e5190275ac (patch) | |
tree | 03b1e1fa70f82097e81f4a271645dee3391767d7 /data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp | |
parent | 0bde58e2bc8440f4d98f0d383dad26f450ad8fd8 (diff) |
msm8996-common: Update IPACM for P release
* Tag: LA.UM.7.5.r1-02200-8x96.0
Change-Id: Id7f0760c0dd1e5476db88d6089d0084eae127a49
Signed-off-by: Davide Garberi <dade.garberi@gmail.com>
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp')
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp b/data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp index 76f805c..036c061 100644 --- a/data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp +++ b/data-ipa-cfg-mgr/ipacm/src/IPACM_Main.cpp @@ -1,5 +1,5 @@ /* -Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. +Copyright (c) 2013-2018, The Linux Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -109,6 +109,12 @@ int ipa_get_if_index(char *if_name, int *if_index); IPACM_Neighbor *neigh; IPACM_IfaceManager *ifacemgr; +#ifdef FEATURE_IPACM_RESTART +int ipa_reset(); +/* support ipacm restart */ +int ipa_query_wlan_client(); +#endif + #ifdef FEATURE_IPACM_HAL IPACM_OffloadManager* OffloadMng; HAL *hal; @@ -233,7 +239,9 @@ void* ipa_driver_msg_notifier(void *param) struct ipa_wlan_msg_ex *event_ex= NULL; struct ipa_get_data_stats_resp_msg_v01 event_data_stats; struct ipa_get_apn_data_stats_resp_msg_v01 event_network_stats; +#ifdef FEATURE_IPACM_HAL IPACM_OffloadManager* OffloadMng; +#endif ipacm_cmd_q_data evt_data; ipacm_event_data_mac *data = NULL; @@ -727,6 +735,13 @@ void* ipa_driver_msg_notifier(void *param) OffloadMng->elrInstance->onOffloadSupportAvailable(); } continue; +#ifdef IPA_WLAN_FW_SSR_EVENT_MAX + case WLAN_FWR_SSR_BEFORE_SHUTDOWN: + IPACMDBG_H("Received WLAN_FWR_SSR_BEFORE_SHUTDOWN\n"); + evt_data.event = IPA_WLAN_FWR_SSR_BEFORE_SHUTDOWN_NOTICE; + evt_data.evt_data = NULL; + break; +#endif #endif #ifdef FEATURE_L2TP case ADD_VLAN_IFACE: @@ -845,9 +860,13 @@ int main(int argc, char **argv) (void)argc; (void)argv; +#ifdef FEATURE_IPACM_RESTART + IPACMDBG_H("RESET IPA-HW rules\n"); + ipa_reset(); +#endif + neigh = new IPACM_Neighbor(); ifacemgr = new IPACM_IfaceManager(); - #ifdef FEATURE_IPACM_HAL OffloadMng = IPACM_OffloadManager::GetInstance(); hal = HAL::makeIPAHAL(1, OffloadMng); @@ -1049,3 +1068,25 @@ int ipa_get_if_index close(fd); return IPACM_SUCCESS; } + +#ifdef FEATURE_IPACM_RESTART +int ipa_reset() +{ + int fd = -1; + + if ((fd = open(IPA_DEVICE_NAME, O_RDWR)) < 0) { + IPACMERR("Failed opening %s.\n", IPA_DEVICE_NAME); + return IPACM_FAILURE; + } + + if (ioctl(fd, IPA_IOC_CLEANUP) < 0) { + IPACMERR("IOCTL IPA_IOC_CLEANUP call failed: %s \n", strerror(errno)); + close(fd); + return IPACM_FAILURE; + } + + IPACMDBG_H("send IPA_IOC_CLEANUP \n"); + close(fd); + return IPACM_SUCCESS; +} +#endif |