summaryrefslogtreecommitdiffstats
path: root/ril
diff options
context:
space:
mode:
authorPrerepa Viswanadham <dham@google.com>2015-05-28 00:37:32 -0700
committerEthan Chen <intervigil@gmail.com>2015-10-19 12:16:41 -0700
commit8e755599291e9f4dabf113011c5ac672e30027c9 (patch)
treecda208e81f2f5c31d10b48671e2910458ab71b7d /ril
parente7ed8c8130900847a746d26b0c65b6771a49b062 (diff)
downloadandroid_hardware_samsung-8e755599291e9f4dabf113011c5ac672e30027c9.tar.gz
android_hardware_samsung-8e755599291e9f4dabf113011c5ac672e30027c9.tar.bz2
android_hardware_samsung-8e755599291e9f4dabf113011c5ac672e30027c9.zip
Modem activity info
Change-Id: Iab8fbdeae0867c6e9cb9027b08317b1b5a2c9dfc
Diffstat (limited to 'ril')
-rw-r--r--ril/libril/ril.cpp32
-rw-r--r--ril/libril/ril_commands.h1
2 files changed, 33 insertions, 0 deletions
diff --git a/ril/libril/ril.cpp b/ril/libril/ril.cpp
index 9d942c3..f40fce4 100644
--- a/ril/libril/ril.cpp
+++ b/ril/libril/ril.cpp
@@ -305,6 +305,7 @@ static int responseRadioCapability(Parcel &p, void *response, size_t responselen
static int responseSSData(Parcel &p, void *response, size_t responselen);
static int responseLceStatus(Parcel &p, void *response, size_t responselen);
static int responseLceData(Parcel &p, void *response, size_t responselen);
+static int responseActivityData(Parcel &p, void *response, size_t responselen);
static int decodeVoiceRadioTechnology (RIL_RadioState radioState);
static int decodeCdmaSubscriptionSource (RIL_RadioState radioState);
@@ -3806,6 +3807,37 @@ static int responseLceData(Parcel &p, void *response, size_t responselen) {
return 0;
}
+static int responseActivityData(Parcel &p, void *response, size_t responselen) {
+ if (response == NULL || responselen != sizeof(RIL_ActivityStatsInfo)) {
+ if (response == NULL) {
+ RLOGE("invalid response: NULL");
+ }
+ else {
+ RLOGE("responseActivityData: invalid response length %d expecting len: d%",
+ sizeof(RIL_ActivityStatsInfo), responselen);
+ }
+ return RIL_ERRNO_INVALID_RESPONSE;
+ }
+
+ RIL_ActivityStatsInfo *p_cur = (RIL_ActivityStatsInfo *)response;
+ p.writeInt32(p_cur->sleep_mode_time_ms);
+ p.writeInt32(p_cur->idle_mode_time_ms);
+ for(int i = 0; i < RIL_NUM_TX_POWER_LEVELS; i++) {
+ p.writeInt32(p_cur->tx_mode_time_ms[i]);
+ }
+ p.writeInt32(p_cur->rx_mode_time_ms);
+
+ startResponse;
+ appendPrintBuf("Modem activity info received: sleep_mode_time_ms %d idle_mode_time_ms %d
+ tx_mode_time_ms %d %d %d %d %d and rx_mode_time_ms %d",
+ p_cur->sleep_mode_time_ms, p_cur->idle_mode_time_ms, p_cur->tx_mode_time_ms[0],
+ p_cur->tx_mode_time_ms[1], p_cur->tx_mode_time_ms[2], p_cur->tx_mode_time_ms[3],
+ p_cur->tx_mode_time_ms[4], p_cur->rx_mode_time_ms);
+ closeResponse;
+
+ return 0;
+}
+
/**
* A write on the wakeup fd is done just to pop us out of select()
* We empty the buffer here and then ril_event will reset the timers on the
diff --git a/ril/libril/ril_commands.h b/ril/libril/ril_commands.h
index 16a7dcd..001b470 100644
--- a/ril/libril/ril_commands.h
+++ b/ril/libril/ril_commands.h
@@ -149,3 +149,4 @@
{RIL_REQUEST_START_LCE, dispatchInts, responseLceStatus},
{RIL_REQUEST_STOP_LCE, dispatchVoid, responseLceStatus},
{RIL_REQUEST_PULL_LCEDATA, dispatchVoid, responseLceData},
+ {RIL_REQUEST_GET_ACTIVITY_INFO, dispatchVoid, responseActivityData},