diff options
author | Jim Kaye <jameskaye@google.com> | 2017-10-18 01:16:28 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-10-18 01:16:28 +0000 |
commit | d0eaef9aaf46fe3e8a54eeb81601200fe39ab07d (patch) | |
tree | dd936b94d5a418c76369acb63056652eb6ee33f0 /reference-ril | |
parent | b330947088bc3168292b4d502e035587838c1bd8 (diff) | |
parent | 61e17974bcb67fc2723349299887cdbea29ebad4 (diff) | |
download | android_hardware_ril-d0eaef9aaf46fe3e8a54eeb81601200fe39ab07d.tar.gz android_hardware_ril-d0eaef9aaf46fe3e8a54eeb81601200fe39ab07d.tar.bz2 android_hardware_ril-d0eaef9aaf46fe3e8a54eeb81601200fe39ab07d.zip |
Merge "Fix VTS HAL Radio tests" am: 4af7529e39 am: 9e633f3956
am: 61e17974bc
Change-Id: I902e8a3e0c5dd30906c9b93fea64ac563f90ec54
Diffstat (limited to 'reference-ril')
-rw-r--r-- | reference-ril/reference-ril.c | 156 |
1 files changed, 125 insertions, 31 deletions
diff --git a/reference-ril/reference-ril.c b/reference-ril/reference-ril.c index 4b48451..87b7bcb 100644 --- a/reference-ril/reference-ril.c +++ b/reference-ril/reference-ril.c @@ -2106,6 +2106,47 @@ static void requestGetHardwareConfig(void *data, size_t datalen, RIL_Token t) RIL_onRequestComplete(t, RIL_E_SUCCESS, &hwCfg, sizeof(hwCfg)); } +static void requestGetTtyMode(void *data, size_t datalen, RIL_Token t) +{ + int ttyModeResponse; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + ttyModeResponse = (getSIMStatus() == SIM_READY) ? 1 // TTY Full + : 0; // TTY Off + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &ttyModeResponse, sizeof(ttyModeResponse)); +} + +static void requestGetRadioCapability(void *data, size_t datalen, RIL_Token t) +{ + RIL_RadioCapability radioCapability; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + radioCapability.version = RIL_RADIO_CAPABILITY_VERSION; + radioCapability.session = 0; + radioCapability.phase = 0; + radioCapability.rat = 0; + radioCapability.logicalModemUuid[0] = '\0'; + radioCapability.status = RC_STATUS_SUCCESS; + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &radioCapability, sizeof(radioCapability)); +} + +static void requestGetMute(void *data, size_t datalen, RIL_Token t) +{ + int muteResponse; + + RIL_UNUSED_PARM(data); + RIL_UNUSED_PARM(datalen); + + muteResponse = 0; // Mute disabled + + RIL_onRequestComplete(t, RIL_E_SUCCESS, &muteResponse, sizeof(muteResponse)); +} /*** Callback methods from the RIL library to us ***/ @@ -2142,12 +2183,47 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) /* Ignore all non-power requests when RADIO_STATE_OFF * (except RIL_REQUEST_GET_SIM_STATUS) */ - if (sState == RADIO_STATE_OFF - && !(request == RIL_REQUEST_RADIO_POWER - || request == RIL_REQUEST_GET_SIM_STATUS) - ) { - RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0); - return; + if (sState == RADIO_STATE_OFF) { + switch(request) { + case RIL_REQUEST_BASEBAND_VERSION: + case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: + case RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE: + case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE: + case RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE: + case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE: + case RIL_REQUEST_CDMA_SUBSCRIPTION: + case RIL_REQUEST_DEVICE_IDENTITY: + case RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE: + case RIL_REQUEST_GET_ACTIVITY_INFO: + case RIL_REQUEST_GET_CARRIER_RESTRICTIONS: + case RIL_REQUEST_GET_CURRENT_CALLS: + case RIL_REQUEST_GET_IMEI: + case RIL_REQUEST_GET_MUTE: + case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS: + case RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE: + case RIL_REQUEST_GET_RADIO_CAPABILITY: + case RIL_REQUEST_GET_SIM_STATUS: + case RIL_REQUEST_NV_RESET_CONFIG: + case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE: + case RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE: + case RIL_REQUEST_QUERY_TTY_MODE: + case RIL_REQUEST_RADIO_POWER: + case RIL_REQUEST_SET_BAND_MODE: + case RIL_REQUEST_SET_CARRIER_RESTRICTIONS: + case RIL_REQUEST_SET_LOCATION_UPDATES: + case RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE: + case RIL_REQUEST_SET_TTY_MODE: + case RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE: + case RIL_REQUEST_STOP_LCE: + case RIL_REQUEST_VOICE_RADIO_TECH: + // Process all the above, even though the radio is off + break; + + default: + // For all others, say NOT_AVAILABLE because the radio is off + RIL_onRequestComplete(t, RIL_E_RADIO_NOT_AVAILABLE, NULL, 0); + return; + } } switch (request) { @@ -2471,37 +2547,55 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) requestShutdown(t); break; - /* CDMA Specific Requests */ + case RIL_REQUEST_QUERY_TTY_MODE: + requestGetTtyMode(data, datalen, t); + break; + + case RIL_REQUEST_GET_RADIO_CAPABILITY: + requestGetRadioCapability(data, datalen, t); + break; + + case RIL_REQUEST_GET_MUTE: + requestGetMute(data, datalen, t); + break; + + case RIL_REQUEST_SET_INITIAL_ATTACH_APN: + case RIL_REQUEST_ALLOW_DATA: + case RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION: + case RIL_REQUEST_SET_CLIR: + case RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION: + case RIL_REQUEST_SET_BAND_MODE: + case RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE: + case RIL_REQUEST_GET_NEIGHBORING_CELL_IDS: + case RIL_REQUEST_SET_LOCATION_UPDATES: + case RIL_REQUEST_SET_TTY_MODE: + case RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE: + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); + break; + case RIL_REQUEST_BASEBAND_VERSION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaBaseBandVersion(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaBaseBandVersion(request, data, datalen, t); + break; case RIL_REQUEST_DEVICE_IDENTITY: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaDeviceIdentity(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaDeviceIdentity(request, data, datalen, t); + break; case RIL_REQUEST_CDMA_SUBSCRIPTION: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaSubscription(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma + requestCdmaSubscription(request, data, datalen, t); + break; + case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: + requestCdmaGetSubscriptionSource(request, data, datalen, t); + break; + + /* CDMA Specific Requests */ case RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE: if (TECH_BIT(sMdmInfo) == MDM_CDMA) { requestCdmaSetSubscriptionSource(request, data, datalen, t); break; } // Fall-through if tech is not cdma - case RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE: - if (TECH_BIT(sMdmInfo) == MDM_CDMA) { - requestCdmaGetSubscriptionSource(request, data, datalen, t); - break; - } // Fall-through if tech is not cdma - case RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE: if (TECH_BIT(sMdmInfo) == MDM_CDMA) { requestCdmaGetRoamingPreference(request, data, datalen, t); @@ -2520,6 +2614,11 @@ onRequest (int request, void *data, size_t datalen, RIL_Token t) break; } // Fall-through if tech is not cdma + // Fall-through to here when the request is specific to CDMA, but + // our tech is not CDMA. VTS tests expect us to silently do nothing. + RIL_onRequestComplete(t, RIL_E_SUCCESS, NULL, 0); + break; + default: RLOGD("Request not supported. Tech: %d",TECH(sMdmInfo)); RIL_onRequestComplete(t, RIL_E_REQUEST_NOT_SUPPORTED, NULL, 0); @@ -2717,11 +2816,6 @@ getSIMStatus() char *cpinResult; RLOGD("getSIMStatus(). sState: %d",sState); - if (sState == RADIO_STATE_OFF || sState == RADIO_STATE_UNAVAILABLE) { - ret = SIM_NOT_READY; - goto done; - } - err = at_send_command_singleline("AT+CPIN?", "+CPIN:", &p_response); if (err != 0) { @@ -2777,7 +2871,7 @@ getSIMStatus() p_response = NULL; cpinResult = NULL; - ret = SIM_READY; + ret = (sState == RADIO_STATE_ON) ? SIM_READY : SIM_NOT_READY; done: at_response_free(p_response); |