Increase the default wake lock timeout.
Previously the wake lock time was 5 seconds but there
are operations which take longer such as setting up
and tearing down so increase the default to 30 seconds.
Also provide TelephonyProperty.PROPERTY_WAKE_LOCK_TIMEOUT
so it can be overridden at build time.
Bug: 2268276
Change-Id: I3ae1fb196564c9fd5b9ea3e3b0927be9dd9ef255
diff --git a/telephony/java/com/android/internal/telephony/RIL.java b/telephony/java/com/android/internal/telephony/RIL.java
index d802efa..e47f799 100644
--- a/telephony/java/com/android/internal/telephony/RIL.java
+++ b/telephony/java/com/android/internal/telephony/RIL.java
@@ -208,7 +208,12 @@
private static final boolean DBG = false;
static final boolean RILJ_LOGD = Config.LOGD;
static final boolean RILJ_LOGV = DBG ? Config.LOGD : Config.LOGV;
- static int WAKE_LOCK_TIMEOUT = 5000;
+
+ /**
+ * Wake lock timeout should be longer than the longest timeout in
+ * the vendor ril.
+ */
+ private static final int DEFAULT_WAKE_LOCK_TIMEOUT = 30000;
//***** Instance Variables
@@ -219,6 +224,7 @@
RILReceiver mReceiver;
private Context mContext;
WakeLock mWakeLock;
+ int mWakeLockTimeout;
int mRequestMessagesPending;
// Is this the first radio state change?
@@ -603,6 +609,8 @@
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
mWakeLock.setReferenceCounted(false);
+ mWakeLockTimeout = SystemProperties.getInt(TelephonyProperties.PROPERTY_WAKE_LOCK_TIMEOUT,
+ DEFAULT_WAKE_LOCK_TIMEOUT);
mRequestMessagesPending = 0;
mContext = context;
@@ -1996,7 +2004,7 @@
mSender.removeMessages(EVENT_WAKE_LOCK_TIMEOUT);
Message msg = mSender.obtainMessage(EVENT_WAKE_LOCK_TIMEOUT);
- mSender.sendMessageDelayed(msg, WAKE_LOCK_TIMEOUT);
+ mSender.sendMessageDelayed(msg, mWakeLockTimeout);
}
}
diff --git a/telephony/java/com/android/internal/telephony/TelephonyProperties.java b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
index 55ba149..56d84bd 100644
--- a/telephony/java/com/android/internal/telephony/TelephonyProperties.java
+++ b/telephony/java/com/android/internal/telephony/TelephonyProperties.java
@@ -136,4 +136,9 @@
* monotonically, regardless of reboots.
*/
static final String PROPERTY_CDMA_MSG_ID = "persist.radio.cdma.msgid";
+
+ /**
+ * Property to override DEFAULT_WAKE_LOCK_TIMEOUT
+ */
+ static final String PROPERTY_WAKE_LOCK_TIMEOUT = "ro.ril.wake_lock_timeout";
}