summaryrefslogtreecommitdiffstats
path: root/samsung-ril.c
diff options
context:
space:
mode:
authorPaul Kocialkowski <contact@paulk.fr>2012-07-08 00:43:47 +0200
committerPaul Kocialkowski <contact@paulk.fr>2012-07-08 00:43:47 +0200
commit7fc060a1d6ba6e3fddcca3ffeccaf25c94de55f7 (patch)
treeeb986b5285e4d6510f3c5d81f275bed016c41941 /samsung-ril.c
parent72a86665de9e8283539d6003dc1c64d16237d869 (diff)
downloadhardware_replicant_libsamsung-ril-7fc060a1d6ba6e3fddcca3ffeccaf25c94de55f7.tar.gz
hardware_replicant_libsamsung-ril-7fc060a1d6ba6e3fddcca3ffeccaf25c94de55f7.tar.bz2
hardware_replicant_libsamsung-ril-7fc060a1d6ba6e3fddcca3ffeccaf25c94de55f7.zip
GPRS: Improved stability with status, fail cause and per-cid handling
* GPRS call status handling (state and fail cause) * Last call fail cause reporting * Data call list reporting * Take GPRS call status in account before reporting connection change * Per-cid GPRS connection handling Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
Diffstat (limited to 'samsung-ril.c')
-rw-r--r--samsung-ril.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/samsung-ril.c b/samsung-ril.c
index 7f669b5..cfd7f20 100644
--- a/samsung-ril.c
+++ b/samsung-ril.c
@@ -268,6 +268,12 @@ void ipc_fmt_dispatch(struct ipc_message_info *info)
case IPC_GPRS_IP_CONFIGURATION:
ipc_gprs_ip_configuration(info);
break;
+ case IPC_GPRS_CALL_STATUS:
+ ipc_gprs_call_status(info);
+ break;
+ case IPC_GPRS_PDP_CONTEXT:
+ ipc_gprs_pdp_context(info);
+ break;
default:
LOGD("Unhandled command: %s (%04x)", ipc_command_to_str(IPC_COMMAND(info)), IPC_COMMAND(info));
break;
@@ -462,6 +468,12 @@ void onRequest(int request, void *data, size_t datalen, RIL_Token t)
case RIL_REQUEST_DEACTIVATE_DATA_CALL:
ril_request_deactivate_data_call(t, data, datalen);
break;
+ case RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE:
+ ril_request_last_data_call_fail_cause(t);
+ break;
+ case RIL_REQUEST_DATA_CALL_LIST:
+ ril_request_data_call_list(t);
+ break;
/* SND */
case RIL_REQUEST_SET_MUTE:
ril_request_set_mute(t, data, datalen);
@@ -516,6 +528,7 @@ void ril_globals_init(void)
ril_requests_tokens_init();
ipc_gen_phone_res_expects_init();
+ ril_gprs_connections_init();
ril_request_sms_init();
ipc_sms_tpid_queue_init();
}
@@ -542,9 +555,6 @@ const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **a
ril_env = env;
- ril_globals_init();
- ril_state_lpm();
-
ipc_fmt:
LOGD("Creating IPC FMT client");
@@ -606,6 +616,9 @@ srs:
LOGD("SRS client ready");
end:
+ ril_globals_init();
+ ril_state_lpm();
+
return &ril_ops;
}