aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWileen Chiu <wileenc@codeaurora.org>2016-02-22 13:11:31 -0800
committerSteve Kondik <steve@cyngn.com>2016-07-02 10:55:01 -0700
commit1e4c0b0eeeb3d966c5da4e137b1af09568edc566 (patch)
tree4da1edd4a7692a4a444d9e88ce3f4f45a91dbac7
parent8b4ba43ce0732e6fac4b95b028f999de713e0ed3 (diff)
downloadandroid_frameworks_opt_telephony-1e4c0b0eeeb3d966c5da4e137b1af09568edc566.tar.gz
android_frameworks_opt_telephony-1e4c0b0eeeb3d966c5da4e137b1af09568edc566.tar.bz2
android_frameworks_opt_telephony-1e4c0b0eeeb3d966c5da4e137b1af09568edc566.zip
Send shutdown command to modem
- The shutdown command is not sent to the modem for a graceful shutdown when the modem is in offline state in which, the RADIO_POWER off request is rejected - Send the shutdown command as soon as the device has been given a chance to power down the radio Change-Id: I2fc2eae04918f3927e93924f6ae7b3e19f920de2 CRs-Fixed: 977534
-rw-r--r--src/java/com/android/internal/telephony/ServiceStateTracker.java11
-rw-r--r--src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java2
-rw-r--r--src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java2
3 files changed, 13 insertions, 2 deletions
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 1c831f126..f8ab9ad99 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -185,6 +185,7 @@ public abstract class ServiceStateTracker extends Handler {
protected static final int EVENT_IMS_STATE_CHANGED = 46;
protected static final int EVENT_IMS_STATE_DONE = 47;
protected static final int EVENT_IMS_CAPABILITY_CHANGED = 48;
+ protected static final int EVENT_RADIO_POWER_OFF_DONE = 49;
protected static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
@@ -632,6 +633,16 @@ public abstract class ServiceStateTracker extends Handler {
}
break;
+ case EVENT_RADIO_POWER_OFF_DONE:
+ if (DBG) log("EVENT_RADIO_POWER_OFF_DONE");
+ if (mDeviceShuttingDown && mCi.getRadioState().isAvailable()) {
+ // during shutdown the modem may not send radio state changed event
+ // as a result of radio power request
+ // Hence, issuing shut down regardless of radio power response
+ mCi.requestShutdown(null);
+ }
+ break;
+
default:
log("Unhandled message with number: " + msg.what);
break;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
index 1ebd7a72b..0c38e279d 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaServiceStateTracker.java
@@ -1994,7 +1994,7 @@ public class CdmaServiceStateTracker extends ServiceStateTracker {
mPhone.mCT.mRingingCall.hangupIfAlive();
mPhone.mCT.mBackgroundCall.hangupIfAlive();
mPhone.mCT.mForegroundCall.hangupIfAlive();
- mCi.setRadioPower(false, null);
+ mCi.setRadioPower(false, obtainMessage(EVENT_RADIO_POWER_OFF_DONE));
}
protected void parseSidNid (String sidStr, String nidStr) {
diff --git a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
index 6bb5cfaf2..531f393dd 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmServiceStateTracker.java
@@ -575,7 +575,7 @@ public class GsmServiceStateTracker extends ServiceStateTracker {
mPhone.mCT.mForegroundCall.hangupIfAlive();
}
- mCi.setRadioPower(false, null);
+ mCi.setRadioPower(false, obtainMessage(EVENT_RADIO_POWER_OFF_DONE));
}
@Override