From bd7723637b14d1895c043c2257f1cd9560322d4e Mon Sep 17 00:00:00 2001 From: Naveen Kalla Date: Sat, 2 Aug 2014 01:03:42 -0700 Subject: 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 --- .../core/java/com/android/server/power/ShutdownThread.java | 10 +++++----- .../java/com/android/internal/telephony/ITelephony.aidl | 13 ++++++++++++- .../java/com/android/internal/telephony/RILConstants.java | 3 +++ 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; -- cgit v1.1