[-]
[+]
|
Changed |
_service:tar_git:ofono.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:ofono.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -1,7 +1,7 @@
<services>
<service name="tar_git">
<param name="url">https://git.merproject.org/slava/ofono.git</param>
- <param name="branch">handover</param>
- <param name="revision">89dfca1</param>
+ <param name="branch">master</param>
+ <param name="revision">b30141c</param>
</service>
</services>
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_network.c
^
|
@@ -418,7 +418,7 @@
case OFONO_RADIO_ACCESS_MODE_ANY:
case OFONO_RADIO_ACCESS_MODE_LTE:
if (self->settings->enable_4g) {
- return PREF_NET_TYPE_LTE_ONLY;
+ return PREF_NET_TYPE_LTE_GSM_WCDMA;
}
/* no break */
default:
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_plugin.c
^
|
@@ -134,6 +134,7 @@
static void ril_debug_trace_notify(struct ofono_debug_desc *desc);
static void ril_debug_dump_notify(struct ofono_debug_desc *desc);
static void ril_debug_grilio_notify(struct ofono_debug_desc *desc);
+static void ril_plugin_debug_notify(struct ofono_debug_desc *desc);
static void ril_plugin_retry_init_io(struct ril_slot *slot);
GLOG_MODULE_DEFINE("rilmodem");
@@ -156,6 +157,12 @@
.notify = ril_debug_grilio_notify
};
+static struct ofono_debug_desc ril_plugin_debug OFONO_DEBUG_ATTR = {
+ .name = "ril_plugin",
+ .flags = OFONO_DEBUG_FLAG_DEFAULT,
+ .notify = ril_plugin_debug_notify
+};
+
static struct ril_plugin_priv *ril_plugin_cast(struct ril_plugin *pub)
{
return G_CAST(pub, struct ril_plugin_priv, pub);
@@ -462,9 +469,31 @@
ril_plugin_update_modem_paths(plugin));
}
+static void ril_plugin_update_ready(struct ril_plugin_priv *plugin)
+{
+ GSList *link;
+ gboolean ready = TRUE;
+
+ for (link = plugin->slots; link; link = link->next) {
+ struct ril_slot *slot = link->data;
+
+ if (!slot->imei || !slot->sim_card || !slot->sim_card->status) {
+ ready = FALSE;
+ break;
+ }
+ }
+
+ if (plugin->pub.ready != ready) {
+ DBG("%sready", ready ? "" : "not ");
+ plugin->pub.ready = ready;
+ ril_plugin_dbus_signal(plugin->dbus, RIL_PLUGIN_SIGNAL_READY);
+ }
+}
+
static void ril_plugin_sim_state_changed(struct ril_sim_card *card, void *data)
{
struct ril_slot *slot = data;
+ struct ril_plugin_priv *plugin = slot->plugin;
gboolean present;
if (card && card->status &&
@@ -478,9 +507,10 @@
if (slot->pub.sim_present != present) {
slot->pub.sim_present = present;
- ril_plugin_dbus_signal_sim(slot->plugin->dbus,
- slot->index, present);
+ ril_plugin_dbus_signal_sim(plugin->dbus, slot->index, present);
}
+
+ ril_plugin_update_ready(plugin);
}
static void ril_plugin_sim_watch_done(void *data)
@@ -623,8 +653,12 @@
static void ril_plugin_trace(GRilIoChannel *io, GRILIO_PACKET_TYPE type,
guint id, guint code, const void *data, guint data_len, void *user_data)
{
- /* Use log sub-module to turn prefix off */
- static GLOG_MODULE_DEFINE2_(log_module, NULL, GLOG_MODULE_NAME);
+ /* Turn prefix off */
+ static GLogModule log_module = {
+ .max_level = GLOG_LEVEL_VERBOSE,
+ .level = GLOG_LEVEL_VERBOSE
+ };
+
const char *prefix = io->name ? io->name : "";
const char dir = (type == GRILIO_PACKET_REQ) ? '<' : '>';
const char *scode;
@@ -637,15 +671,15 @@
} else {
scode = ril_request_to_string(code);
}
- gutil_log(&log_module, GLOG_LEVEL_INFO, "%s%c [%08x] %s",
+ gutil_log(&log_module, GLOG_LEVEL_VERBOSE, "%s%c [%08x] %s",
prefix, dir, id, scode);
break;
case GRILIO_PACKET_RESP:
- gutil_log(&log_module, GLOG_LEVEL_INFO, "%s%c [%08x] %s",
+ gutil_log(&log_module, GLOG_LEVEL_VERBOSE, "%s%c [%08x] %s",
prefix, dir, id, ril_error_to_string(code));
break;
case GRILIO_PACKET_UNSOL:
- gutil_log(&log_module, GLOG_LEVEL_INFO, "%s%c %s",
+ gutil_log(&log_module, GLOG_LEVEL_VERBOSE, "%s%c %s",
prefix, dir, ril_unsol_event_to_string(code));
break;
}
@@ -658,7 +692,7 @@
if (!slot->dump_id) {
slot->dump_id =
grilio_channel_add_default_logger(
- slot->io, GLOG_LEVEL_INFO);
+ slot->io, GLOG_LEVEL_VERBOSE);
}
} else if (slot->dump_id) {
grilio_channel_remove_logger(slot->io, slot->dump_id);
@@ -760,6 +794,7 @@
if (slot->modem) {
ril_modem_set_imei(slot->modem, slot->imei);
}
+ ril_plugin_update_ready(plugin);
} else {
ofono_error("Slot %u IMEI query error: %s", slot->config.slot,
ril_error_to_string(status));
@@ -801,6 +836,7 @@
static void ril_plugin_slot_connected(struct ril_slot *slot)
{
+ struct ril_plugin_priv *plugin = slot->plugin;
const char *log_prefix = ril_plugin_log_prefix(slot);
ofono_debug("%s version %u", (slot->name && slot->name[0]) ?
@@ -840,6 +876,8 @@
if (ril_plugin_can_create_modem(slot) && !slot->modem) {
ril_plugin_create_modem(slot);
}
+
+ ril_plugin_update_ready(plugin);
}
static void ril_plugin_slot_connected_cb(GRilIoChannel *io, void *user_data)
@@ -1422,11 +1460,14 @@
static void ril_debug_grilio_notify(struct ofono_debug_desc *desc)
{
- if (desc->flags & OFONO_DEBUG_FLAG_PRINT) {
- grilio_log.level = GLOG_LEVEL_VERBOSE;
- } else {
- grilio_log.level = GLOG_LEVEL_INHERIT;
- }
+ grilio_log.level = (desc->flags & OFONO_DEBUG_FLAG_PRINT) ?
+ GLOG_LEVEL_VERBOSE : GLOG_LEVEL_INHERIT;
+}
+
+static void ril_plugin_debug_notify(struct ofono_debug_desc *desc)
+{
+ GLOG_MODULE_NAME.level = (desc->flags & OFONO_DEBUG_FLAG_PRINT) ?
+ GLOG_LEVEL_VERBOSE : GLOG_LEVEL_INHERIT;
}
static int ril_plugin_init(void)
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_plugin.h
^
|
@@ -61,6 +61,7 @@
const char *default_voice_path;
const char *default_data_path;
const ril_slot_info_ptr *slots;
+ gboolean ready;
};
struct ril_modem {
@@ -83,6 +84,7 @@
#define RIL_PLUGIN_SIGNAL_ENABLED_SLOTS (0x10)
#define RIL_PLUGIN_SIGNAL_MMS_IMSI (0x20)
#define RIL_PLUGIN_SIGNAL_MMS_PATH (0x40)
+#define RIL_PLUGIN_SIGNAL_READY (0x80)
typedef void (*ril_modem_cb_t)(struct ril_modem *modem, void *data);
typedef void (*ril_modem_online_cb_t)(struct ril_modem *modem, gboolean online,
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_plugin_dbus.c
^
|
@@ -46,7 +46,7 @@
#define RIL_DBUS_PATH "/"
#define RIL_DBUS_INTERFACE "org.nemomobile.ofono.ModemManager"
-#define RIL_DBUS_INTERFACE_VERSION (4)
+#define RIL_DBUS_INTERFACE_VERSION (5)
#define RIL_DBUS_SIGNAL_ENABLED_MODEMS_CHANGED "EnabledModemsChanged"
#define RIL_DBUS_SIGNAL_PRESENT_SIMS_CHANGED "PresentSimsChanged"
@@ -56,6 +56,7 @@
#define RIL_DBUS_SIGNAL_DEFAULT_DATA_MODEM_CHANGED "DefaultDataModemChanged"
#define RIL_DBUS_SIGNAL_MMS_SIM_CHANGED "MmsSimChanged"
#define RIL_DBUS_SIGNAL_MMS_MODEM_CHANGED "MmsModemChanged"
+#define RIL_DBUS_SIGNAL_READY_CHANGED "ReadyChanged"
#define RIL_DBUS_IMSI_AUTO "auto"
static gboolean ril_plugin_dbus_enabled(const struct ril_slot_info *slot)
@@ -133,6 +134,11 @@
dbus_message_iter_close_container(it, &array);
}
+static void ril_plugin_dbus_append_boolean(DBusMessageIter *it, dbus_bool_t b)
+{
+ dbus_message_iter_append_basic(it, DBUS_TYPE_BOOLEAN, &b);
+}
+
static void ril_plugin_dbus_append_string(DBusMessageIter *it, const char *str)
{
if (!str) str = "";
@@ -187,6 +193,13 @@
name, DBUS_TYPE_STRING, &str, DBUS_TYPE_INVALID);
}
+static inline void ril_plugin_dbus_signal_boolean(struct ril_plugin_dbus *dbus,
+ const char *name, dbus_bool_t value)
+{
+ g_dbus_emit_signal(dbus->conn, RIL_DBUS_PATH, RIL_DBUS_INTERFACE,
+ name, DBUS_TYPE_BOOLEAN, &value, DBUS_TYPE_INVALID);
+}
+
void ril_plugin_dbus_signal(struct ril_plugin_dbus *dbus, int mask)
{
if (dbus) {
@@ -225,6 +238,11 @@
RIL_DBUS_SIGNAL_MMS_MODEM_CHANGED,
dbus->plugin->mms_path);
}
+ if (mask & RIL_PLUGIN_SIGNAL_READY) {
+ ril_plugin_dbus_signal_boolean(dbus,
+ RIL_DBUS_SIGNAL_READY_CHANGED,
+ dbus->plugin->ready);
+ }
}
}
@@ -350,6 +368,13 @@
ril_plugin_dbus_append_path(it, dbus->plugin->mms_path);
}
+static void ril_plugin_dbus_append_all5(DBusMessageIter *it,
+ struct ril_plugin_dbus *dbus)
+{
+ ril_plugin_dbus_append_all4(it, dbus);
+ ril_plugin_dbus_append_boolean(it, dbus->plugin->ready);
+}
+
static DBusMessage *ril_plugin_dbus_get_all(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -378,6 +403,13 @@
ril_plugin_dbus_append_all4);
}
+static DBusMessage *ril_plugin_dbus_get_all5(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ return ril_plugin_dbus_imei_reply(msg, (struct ril_plugin_dbus *)data,
+ ril_plugin_dbus_append_all5);
+}
+
static DBusMessage *ril_plugin_dbus_get_interface_version(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -510,6 +542,18 @@
return ril_plugin_dbus_reply_with_path(msg, dbus->plugin->mms_path);
}
+static DBusMessage *ril_plugin_dbus_get_ready(DBusConnection *conn,
+ DBusMessage *msg, void *data)
+{
+ struct ril_plugin_dbus *dbus = data;
+ DBusMessage *reply = dbus_message_new_method_return(msg);
+ DBusMessageIter it;
+
+ dbus_message_iter_init_append(reply, &it);
+ ril_plugin_dbus_append_boolean(&it, dbus->plugin->ready);
+ return reply;
+}
+
static DBusMessage *ril_plugin_dbus_set_enabled_modems(DBusConnection *conn,
DBusMessage *msg, void *data)
{
@@ -671,6 +715,9 @@
RIL_DBUS_GET_ALL3_ARGS, \
{"mmsSim", "s" }, \
{"mmsModem" , "s"}
+#define RIL_DBUS_GET_ALL5_ARGS \
+ RIL_DBUS_GET_ALL4_ARGS, \
+ {"ready" , "b"}
static const GDBusMethodTable ril_plugin_dbus_methods[] = {
{ GDBUS_METHOD("GetAll",
@@ -685,6 +732,9 @@
{ GDBUS_ASYNC_METHOD("GetAll4",
NULL, GDBUS_ARGS(RIL_DBUS_GET_ALL4_ARGS),
ril_plugin_dbus_get_all4) },
+ { GDBUS_ASYNC_METHOD("GetAll5",
+ NULL, GDBUS_ARGS(RIL_DBUS_GET_ALL5_ARGS),
+ ril_plugin_dbus_get_all5) },
{ GDBUS_METHOD("GetInterfaceVersion",
NULL, GDBUS_ARGS({ "version", "i" }),
ril_plugin_dbus_get_interface_version) },
@@ -718,6 +768,9 @@
{ GDBUS_METHOD("GetMmsModem",
NULL, GDBUS_ARGS({ "path", "s" }),
ril_plugin_dbus_get_mms_modem) },
+ { GDBUS_METHOD("GetReady",
+ NULL, GDBUS_ARGS({ "ready", "b" }),
+ ril_plugin_dbus_get_ready) },
{ GDBUS_METHOD("SetEnabledModems",
GDBUS_ARGS({ "modems", "ao" }), NULL,
ril_plugin_dbus_set_enabled_modems) },
@@ -751,6 +804,8 @@
GDBUS_ARGS({ "imsi", "s" })) },
{ GDBUS_SIGNAL(RIL_DBUS_SIGNAL_MMS_MODEM_CHANGED,
GDBUS_ARGS({ "path", "s" })) },
+ { GDBUS_SIGNAL(RIL_DBUS_SIGNAL_READY_CHANGED,
+ GDBUS_ARGS({ "ready", "b" })) },
{ }
};
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_sim.c
^
|
@@ -14,7 +14,6 @@
*/
#include "ril_plugin.h"
-#include "ril_radio.h"
#include "ril_sim_card.h"
#include "ril_util.h"
#include "ril_log.h"
@@ -72,14 +71,12 @@
GList *pin_cbd_list;
struct ofono_sim *sim;
struct ril_sim_card *card;
- struct ril_radio *radio;
enum ofono_sim_password_type ofono_passwd_state;
int retries[OFONO_SIM_PASSWORD_INVALID];
guint slot;
gboolean inserted;
guint idle_id;
gulong card_status_id;
- gulong radio_state_id;
/* query_passwd_state context */
ofono_sim_passwd_cb_t query_passwd_state_cb;
@@ -648,24 +645,6 @@
return FALSE;
}
-static void ril_sim_insert_check(struct ril_sim *sd)
-{
- if (!sd->inserted &&
- ril_sim_passwd_state(sd) != OFONO_SIM_PASSWORD_INVALID) {
- switch (sd->radio->state) {
- case RADIO_STATE_SIM_READY:
- case RADIO_STATE_RUIM_READY:
- case RADIO_STATE_ON:
- sd->inserted = TRUE;
- ofono_info("SIM card OK");
- ofono_sim_inserted_notify(sd->sim, TRUE);
- break;
- default:
- break;
- }
- }
-}
-
static void ril_sim_finish_passwd_state_query(struct ril_sim *sd,
enum ofono_sim_password_type state)
{
@@ -713,7 +692,12 @@
if (sc->app) {
enum ofono_sim_password_type ps;
- ril_sim_insert_check(sd);
+ if (!sd->inserted) {
+ sd->inserted = TRUE;
+ ofono_info("SIM card OK");
+ ofono_sim_inserted_notify(sd->sim, TRUE);
+ }
+
ps = ril_sim_passwd_state(sd);
if (ps != OFONO_SIM_PASSWORD_INVALID) {
ril_sim_finish_passwd_state_query(sd, ps);
@@ -731,13 +715,6 @@
}
}
-static void ril_sim_radio_state_cb(struct ril_radio *radio, void *user_data)
-{
- struct ril_sim *sd = user_data;
-
- ril_sim_insert_check(sd);
-}
-
static void ril_sim_query_pin_retries(struct ofono_sim *sim,
ofono_sim_pin_retries_cb_t cb, void *data)
{
@@ -1049,8 +1026,6 @@
ofono_sim_register(sd->sim);
/* Register for change notifications */
- sd->radio_state_id = ril_radio_add_state_changed_handler(sd->radio,
- ril_sim_radio_state_cb, sd);
sd->card_status_id = ril_sim_card_add_status_changed_handler(sd->card,
ril_sim_status_cb, sd);
@@ -1070,7 +1045,6 @@
sd->slot = ril_modem_slot(modem);
sd->io = grilio_channel_ref(ril_modem_io(modem));
sd->card = ril_sim_card_ref(modem->sim_card);
- sd->radio = ril_radio_ref(modem->radio);
/* NB: One queue is used for the requests originated from the ofono
* core, and the second one if for the requests initiated internally
@@ -1114,9 +1088,6 @@
g_source_remove(sd->query_passwd_state_timeout_id);
}
- ril_radio_remove_handler(sd->radio, sd->radio_state_id);
- ril_radio_unref(sd->radio);
-
ril_sim_card_remove_handler(sd->card, sd->card_status_id);
ril_sim_card_unref(sd->card);
|
[-]
[+]
|
Changed |
_service:tar_git:ofono-1.17+git14.tar.bz2/ofono/drivers/ril/ril_voicecall.c
^
|
@@ -322,9 +322,10 @@
ofono_voicecall_notify(vd->vc, nc);
if (vd->cb) {
ofono_voicecall_cb_t cb = vd->cb;
- cb(ril_error_ok(&error), vd->data);
+ void *cbdata = vd->data;
vd->cb = NULL;
vd->data = NULL;
+ cb(ril_error_ok(&error), cbdata);
}
}
@@ -456,8 +457,8 @@
} else {
struct ofono_error error;
ofono_error("call failed.");
- vd->cb = cbd->cb;
- vd->data = cbd->data;
+ vd->cb = NULL;
+ vd->data = NULL;
cbd->cb(ril_error_failure(&error), cbd->data);
}
}
|