diff options
author | Ricardo Cerqueira <cyanogenmod@cerqueira.org> | 2013-11-04 02:54:13 +0000 |
---|---|---|
committer | Michael Bestas <mikeioannina@gmail.com> | 2017-01-01 23:10:32 +0200 |
commit | 071db16b68ce3112e61c25a2ef7ca900e9cce3f4 (patch) | |
tree | f3e6ce1c6fac93911988f0224120890b78623691 | |
parent | 2499e0992ae878585aa1902924d2d605b4d30a6d (diff) | |
download | android_frameworks_opt_net_wifi-071db16b68ce3112e61c25a2ef7ca900e9cce3f4.tar.gz android_frameworks_opt_net_wifi-071db16b68ce3112e61c25a2ef7ca900e9cce3f4.tar.bz2 android_frameworks_opt_net_wifi-071db16b68ce3112e61c25a2ef7ca900e9cce3f4.zip |
wifi: Set the mode at native layer
* Set normal/AP mode so that the HAL can specify correct module
arguments when loading the driver.
Change-Id: I6eee2cc53b5f1e70306e252e52c909833f220515
(cherry picked from commit 0d8dfcf1fe77ced303ee8b45118c4b44de1ba305)
-rw-r--r-- | service/java/com/android/server/wifi/WifiNative.java | 2 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 2 | ||||
-rw-r--r-- | service/jni/com_android_server_wifi_WifiNative.cpp | 6 |
3 files changed, 10 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java index f9a1b0173..f6931c1fe 100644 --- a/service/java/com/android/server/wifi/WifiNative.java +++ b/service/java/com/android/server/wifi/WifiNative.java @@ -1549,6 +1549,8 @@ public class WifiNative { } } + public native static boolean setApMode(boolean enable); + /* WIFI HAL support */ // HAL command ids diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index 21e58c27d..d03ccd25f 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -1850,6 +1850,7 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss */ public void setSupplicantRunning(boolean enable) { if (enable) { + WifiNative.setApMode(false); sendMessage(CMD_START_SUPPLICANT); } else { mDisconnectDelayDuration = -1; @@ -1877,6 +1878,7 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss */ public void setHostApRunning(WifiConfiguration wifiConfig, boolean enable) { if (enable) { + WifiNative.setApMode(true); sendMessage(CMD_START_AP, wifiConfig); } else { sendMessage(CMD_STOP_AP); diff --git a/service/jni/com_android_server_wifi_WifiNative.cpp b/service/jni/com_android_server_wifi_WifiNative.cpp index baed910b4..7e70d95a7 100644 --- a/service/jni/com_android_server_wifi_WifiNative.cpp +++ b/service/jni/com_android_server_wifi_WifiNative.cpp @@ -136,6 +136,11 @@ static jstring doStringCommand(JNIEnv* env, jstring javaCommand) { return env->NewString((const jchar *)str.string(), str.size()); } +static jboolean android_net_wifi_setApMode(JNIEnv* env, jobject, jboolean enable) +{ + return (jboolean)(::wifi_set_mode(enable ? 1 : 0) == 0); +} + static jboolean android_net_wifi_isDriverLoaded(JNIEnv* env, jclass) { return (::is_wifi_driver_loaded() == 1); @@ -2596,6 +2601,7 @@ static JNINativeMethod gWifiMethods[] = { { "doIntCommandNative", "(Ljava/lang/String;)I", (void*)android_net_wifi_doIntCommand }, { "doStringCommandNative", "(Ljava/lang/String;)Ljava/lang/String;", (void*) android_net_wifi_doStringCommand }, + { "setApMode", "(Z)Z", (void*) android_net_wifi_setApMode}, { "startHalNative", "()Z", (void*) android_net_wifi_startHal }, { "stopHalNative", "()V", (void*) android_net_wifi_stopHal }, { "waitForHalEventNative", "()V", (void*) android_net_wifi_waitForHalEvents }, |