summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrace Chen <chengrace@google.com>2017-03-23 18:39:48 -0700
committerGrace Chen <chengrace@google.com>2017-05-16 10:54:14 -0700
commit797c1c2b6cb1b90ba43453659403ba8651d85187 (patch)
tree1204d09fdeb1a919ec37644fa47c70e49ea084ca
parentcea643260186fd22e9b803bba9079fe473ac6861 (diff)
downloadandroid_hardware_ril-797c1c2b6cb1b90ba43453659403ba8651d85187.tar.gz
android_hardware_ril-797c1c2b6cb1b90ba43453659403ba8651d85187.tar.bz2
android_hardware_ril-797c1c2b6cb1b90ba43453659403ba8651d85187.zip
Support different SIM power states
Test: Verify SIM power states Bug: 35844036 Merged-In: Iabdbcba2572a481537c47da536b66a4b99365511 Change-Id: Iabdbcba2572a481537c47da536b66a4b99365511
-rw-r--r--libril/ril.cpp2
-rw-r--r--libril/ril_service.cpp38
2 files changed, 30 insertions, 10 deletions
diff --git a/libril/ril.cpp b/libril/ril.cpp
index bd5e02e..29ccbc8 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -831,7 +831,7 @@ void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
}
#if VDBG
- RLOGI("%s UNSOLICITED: %s length:%d", rilSocketIdToString(soc_id),
+ RLOGI("%s UNSOLICITED: %s length:%zu", rilSocketIdToString(soc_id),
requestToString(unsolResponse), datalen);
#endif
diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp
index 0bdb10d..8436267 100644
--- a/libril/ril_service.cpp
+++ b/libril/ril_service.cpp
@@ -19,6 +19,7 @@
#include <android/hardware/radio/1.1/IRadio.h>
#include <android/hardware/radio/1.1/IRadioResponse.h>
#include <android/hardware/radio/1.1/IRadioIndication.h>
+#include <android/hardware/radio/1.1/types.h>
#include <android/hardware/radio/deprecated/1.0/IOemHook.h>
@@ -31,9 +32,6 @@
#define INVALID_HEX_CHAR 16
-// Enable verbose logging
-#define VDBG 0
-
using namespace android::hardware::radio::V1_0;
using namespace android::hardware::radio::deprecated::V1_0;
using ::android::hardware::configureRpcThreadpool;
@@ -425,6 +423,8 @@ struct RadioImpl : public ::android::hardware::radio::V1_1::IRadio {
Return<void> setIndicationFilter(int32_t serial, int32_t indicationFilter);
Return<void> setSimCardPower(int32_t serial, bool powerUp);
+ Return<void> setSimCardPower_1_1(int32_t serial,
+ const ::android::hardware::radio::V1_1::CardPowerState state);
Return<void> responseAcknowledgement();
@@ -2659,6 +2659,15 @@ Return<void> RadioImpl::setSimCardPower(int32_t serial, bool powerUp) {
return Void();
}
+Return<void> RadioImpl::setSimCardPower_1_1(int32_t serial,
+ const ::android::hardware::radio::V1_1::CardPowerState state) {
+#if VDBG
+ RLOGD("setSimCardPower_1_1: serial %d state %d", serial, state);
+#endif
+ dispatchInts(serial, mSlotId, RIL_REQUEST_SET_SIM_CARD_POWER, 1, state);
+ return Void();
+}
+
Return<void> RadioImpl::responseAcknowledgement() {
android::releaseWakeLock();
return Void();
@@ -6319,7 +6328,6 @@ int radio::setIndicationFilterResponse(int slotId,
return 0;
}
-
int radio::setSimCardPowerResponse(int slotId,
int responseType, int serial, RIL_Errno e,
void *response, size_t responseLen) {
@@ -6330,13 +6338,25 @@ int radio::setSimCardPowerResponse(int slotId,
if (radioService[slotId]->mRadioResponse != NULL) {
RadioResponseInfo responseInfo = {};
populateResponseInfo(responseInfo, serial, responseType, e);
- Return<void> retStatus
- = radioService[slotId]->mRadioResponse->setSimCardPowerResponse(responseInfo);
- radioService[slotId]->checkReturnStatus(retStatus);
+ Return<sp<::android::hardware::radio::V1_1::IRadioResponse>> ret =
+ ::android::hardware::radio::V1_1::IRadioResponse::castFrom(
+ radioService[slotId]->mRadioResponse);
+ if (ret.isOk()) {
+ sp<::android::hardware::radio::V1_1::IRadioResponse> radioResponseV1_1 = ret;
+ Return<void> retStatus
+ = radioResponseV1_1->setSimCardPowerResponse_1_1(responseInfo);
+ radioService[slotId]->checkReturnStatus(retStatus);
+ } else {
+ RLOGD("setSimCardPowerResponse: ret.isOK() == false for radioService[%d]",
+ slotId);
+ Return<void> retStatus
+ = radioService[slotId]->mRadioResponse->setSimCardPowerResponse(responseInfo);
+ radioService[slotId]->checkReturnStatus(retStatus);
+ }
} else {
- RLOGE("setSimCardPowerResponse: radioService[%d]->mRadioResponse == NULL", slotId);
+ RLOGE("setSimCardPowerResponse: radioService[%d]->mRadioResponse == NULL",
+ slotId);
}
-
return 0;
}