diff options
author | Naveen Kalla <nkalla@codeaurora.org> | 2014-08-02 01:03:42 -0700 |
---|---|---|
committer | Wink Saville <wink@google.com> | 2014-08-21 15:08:22 +0000 |
commit | bd7723637b14d1895c043c2257f1cd9560322d4e (patch) | |
tree | f64d950d75d2037a9debb9ad3fc8c2be62e53437 | |
parent | 2df7d1ef51ebff5228e0cbd7e15a34fce7307390 (diff) | |
download | frameworks_base-bd7723637b14d1895c043c2257f1cd9560322d4e.zip frameworks_base-bd7723637b14d1895c043c2257f1cd9560322d4e.tar.gz frameworks_base-bd7723637b14d1895c043c2257f1cd9560322d4e.tar.bz2 |
Invoke shutdownMobileRadios Telephony APIs from ShutdownThread
shutdownMobileRadios API shuts down multiple Radios on MSIM devices and
also gracefully shuts down Radios and SIM cards on single SIM and
MSIM devices. Use this API instead of the old setRadio APIs.
Add RIL_REQUEST_SHUTDOWN to RILConstants. Message is sent to notify
RIL that the device is shutting down.
Bug: 9773278
Change-Id: I6afa9e810cefc7855f7ae42e51f39cc51fa2aa6e
3 files changed, 20 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/power/ShutdownThread.java b/services/core/java/com/android/server/power/ShutdownThread.java index 5f3da07..da11387 100644 --- a/services/core/java/com/android/server/power/ShutdownThread.java +++ b/services/core/java/com/android/server/power/ShutdownThread.java @@ -430,10 +430,10 @@ public final class ShutdownThread extends Thread { } try { - radioOff = phone == null || !phone.isRadioOn(); + radioOff = phone == null || !phone.needMobileRadioShutdown(); if (!radioOff) { - Log.w(TAG, "Turning off radio..."); - phone.setRadio(false); + Log.w(TAG, "Turning off cellular radios..."); + phone.shutdownMobileRadios(); } } catch (RemoteException ex) { Log.e(TAG, "RemoteException during radio shutdown", ex); @@ -456,7 +456,7 @@ public final class ShutdownThread extends Thread { } if (!radioOff) { try { - radioOff = !phone.isRadioOn(); + radioOff = !phone.needMobileRadioShutdown(); } catch (RemoteException ex) { Log.e(TAG, "RemoteException during radio shutdown", ex); radioOff = true; @@ -472,7 +472,7 @@ public final class ShutdownThread extends Thread { Log.e(TAG, "RemoteException during NFC shutdown", ex); nfcOff = true; } - if (radioOff) { + if (nfcOff) { Log.i(TAG, "NFC turned off."); } } diff --git a/telephony/java/com/android/internal/telephony/ITelephony.aidl b/telephony/java/com/android/internal/telephony/ITelephony.aidl index 22c09f0..b1c3c4a 100644 --- a/telephony/java/com/android/internal/telephony/ITelephony.aidl +++ b/telephony/java/com/android/internal/telephony/ITelephony.aidl @@ -793,5 +793,16 @@ interface ITelephony { * positive value success, data length of response */ int invokeOemRilRequestRaw(in byte[] oemReq, out byte[] oemResp); -} + /** + * Check if any mobile Radios need to be shutdown. + * + * @return true is any mobile radio needs to be shutdown + */ + boolean needMobileRadioShutdown(); + + /** + * Shutdown Mobile Radios + */ + void shutdownMobileRadios(); +} diff --git a/telephony/java/com/android/internal/telephony/RILConstants.java b/telephony/java/com/android/internal/telephony/RILConstants.java index a8a9057..e730bde 100644 --- a/telephony/java/com/android/internal/telephony/RILConstants.java +++ b/telephony/java/com/android/internal/telephony/RILConstants.java @@ -287,7 +287,10 @@ cat include/telephony/ril.h | \ int RIL_REQUEST_ALLOW_DATA = 123; int RIL_REQUEST_GET_HARDWARE_CONFIG = 124; int RIL_REQUEST_SIM_AUTHENTICATION = 125; + int RIL_REQUEST_GET_DC_RT_INFO = 126; + int RIL_REQUEST_SET_DC_RT_INFO_RATE = 127; int RIL_REQUEST_SET_DATA_PROFILE = 128; + int RIL_REQUEST_SHUTDOWN = 129; int RIL_UNSOL_RESPONSE_BASE = 1000; int RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED = 1000; |