diff options
author | Wileen Chiu <wileenc@codeaurora.org> | 2016-02-22 13:11:31 -0800 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-07-02 10:55:01 -0700 |
commit | 1e4c0b0eeeb3d966c5da4e137b1af09568edc566 (patch) | |
tree | 4da1edd4a7692a4a444d9e88ce3f4f45a91dbac7 | |
parent | 8b4ba43ce0732e6fac4b95b028f999de713e0ed3 (diff) | |
download | android_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
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 |