summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2015-11-15 02:13:34 +0100
committerSteve Kondik <steve@cyngn.com>2015-11-15 02:13:34 +0100
commit21b2d36446b30552684868c6e64d2dd703493cae (patch)
tree9795925ac4d88d5974cf05c2498e5d261d06fa12
parent69c96ca1d1d2951d342c99b571fdf7550bb0b04a (diff)
parentcdfadb674b8872370157265f981d0bf7afb571f8 (diff)
downloadandroid_hardware_ril-21b2d36446b30552684868c6e64d2dd703493cae.tar.gz
android_hardware_ril-21b2d36446b30552684868c6e64d2dd703493cae.tar.bz2
android_hardware_ril-21b2d36446b30552684868c6e64d2dd703493cae.zip
Merge branch 'LA.BF.1.1.3_rb1.3' of git://codeaurora.org/platform/hardware/ril into cm-13.0
-rw-r--r--include/telephony/ril.h22
-rwxr-xr-xlibril/ril.cpp7
-rw-r--r--libril/ril_commands.h1
3 files changed, 26 insertions, 4 deletions
diff --git a/include/telephony/ril.h b/include/telephony/ril.h
index bd3d2ed..dae869b 100644
--- a/include/telephony/ril.h
+++ b/include/telephony/ril.h
@@ -4026,7 +4026,7 @@ typedef struct {
* RIL_REQUEST_VOICE_RADIO_TECH
*
* Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only
- * when radio state is RADIO_STATE_ON
+ * when radio state is not RADIO_STATE_UNAVAILABLE
*
* "data" is NULL
* "response" is int *
@@ -4526,6 +4526,26 @@ typedef struct {
*/
#define RIL_REQUEST_GET_ACTIVITY_INFO 135
+/**
+ * RIL_REQUEST_SIM_GET_ATR
+ *
+ * Get the ATR from SIM Card
+ *
+ * Only valid when radio state is "RADIO_STATE_ON"
+ *
+ * "data" is const int *
+ * ((const int *)data)[0] contains the slot index on the SIM from which ATR is requested.
+ *
+ * "response" is a const char * containing the ATR, See ETSI 102.221 8.1 and ISO/IEC 7816 3
+ *
+ * Valid errors:
+ *
+ * SUCCESS
+ * RADIO_NOT_AVAILABLE (radio resetting)
+ * GENERIC_FAILURE
+ */
+#define RIL_REQUEST_SIM_GET_ATR 136
+
/***********************************************************************/
diff --git a/libril/ril.cpp b/libril/ril.cpp
index 0fadfe0..42cd0ff 100755
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -1650,12 +1650,12 @@ static void dispatchDataCall(Parcel& p, RequestInfo *pRI) {
static void dispatchVoiceRadioTech(Parcel& p, RequestInfo *pRI) {
RIL_RadioState state = CALL_ONSTATEREQUEST((RIL_SOCKET_ID)pRI->socket_id);
- if ((RADIO_STATE_UNAVAILABLE == state) || (RADIO_STATE_OFF == state)) {
+ if (RADIO_STATE_UNAVAILABLE == state) {
RIL_onRequestComplete(pRI, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0);
}
- // RILs that support RADIO_STATE_ON should support this request.
- if (RADIO_STATE_ON == state) {
+ // If radio is available then RIL should support this request.
+ if ((RADIO_STATE_ON == state) || (RADIO_STATE_OFF == state)){
dispatchVoid(p, pRI);
return;
}
@@ -5167,6 +5167,7 @@ requestToString(int request) {
case RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL: return "SIM_TRANSMIT_APDU_CHANNEL";
case RIL_REQUEST_GET_RADIO_CAPABILITY: return "RIL_REQUEST_GET_RADIO_CAPABILITY";
case RIL_REQUEST_SET_RADIO_CAPABILITY: return "RIL_REQUEST_SET_RADIO_CAPABILITY";
+ case RIL_REQUEST_SIM_GET_ATR: return "SIM_GET_ATR";
case RIL_REQUEST_SET_UICC_SUBSCRIPTION: return "SET_UICC_SUBSCRIPTION";
case RIL_REQUEST_ALLOW_DATA: return "ALLOW_DATA";
case RIL_REQUEST_GET_HARDWARE_CONFIG: return "GET_HARDWARE_CONFIG";
diff --git a/libril/ril_commands.h b/libril/ril_commands.h
index 163aa46..50e649a 100644
--- a/libril/ril_commands.h
+++ b/libril/ril_commands.h
@@ -150,3 +150,4 @@
{RIL_REQUEST_STOP_LCE, dispatchVoid, responseLceStatus},
{RIL_REQUEST_PULL_LCEDATA, dispatchVoid, responseLceData},
{RIL_REQUEST_GET_ACTIVITY_INFO, dispatchVoid, responseActivityData},
+ {RIL_REQUEST_SIM_GET_ATR, dispatchInts, responseString},