Exemple #1
0
static void radio_settings_register(const struct ofono_error *error,
					unsigned int available_rats,
					void *data)
{
	struct ofono_radio_settings *rs = data;
	struct radio_data *rd = ofono_radio_settings_get_data(rs);

	g_ril_register(rd->ril, RIL_UNSOL_RADIO_CAPABILITY,
							radio_caps_event, rd);

	rd->gprs_atom_watch =
		__ofono_modem_add_atom_watch(rd->modem, OFONO_ATOM_TYPE_GPRS,
						gprs_watch_cb, rs, NULL);

	/*
	 * If the preferred technology was unknown/unsupported, change to a
	 * valid one (midori can return PREF_NET_TYPE_CDMA_ONLY, for instance).
	 * Changing to anything above GSM can prevent other radios restoring
	 * their settings.
	 */
	if (rd->rat_mode == OFONO_RADIO_ACCESS_MODE_ANY) {
		struct cb_data *cbd = cb_data_new(set_safe_preferred_cb, rd,
							rd->radio_settings);

		set_preferred_network(rd, cbd, OFONO_RADIO_ACCESS_MODE_GSM);
	}

	/*
	 * We register in all cases, setting FD some times fails until radio is
	 * available (this happens on turbo and maybe in other devices).
	 */
	ofono_radio_settings_register(rs);
}
Exemple #2
0
static gboolean ril_delayed_register(gpointer user_data)
{
	struct ofono_radio_settings *rs = user_data;

	ofono_radio_settings_register(rs);
	return FALSE;
}
Exemple #3
0
static gboolean ste_radio_settings_register(gpointer user)
{
	struct ofono_radio_settings *rs = user;

	ofono_radio_settings_register(rs);

	return FALSE;
}
Exemple #4
0
static void opsys_support_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
	struct ofono_radio_settings *rs = user_data;

	if (!ok)
		return;

	ofono_radio_settings_register(rs);
}
Exemple #5
0
static gboolean ril_delayed_register(gpointer user_data)
{
	struct ofono_radio_settings *rs = user_data;
	struct radio_data *rd = ofono_radio_settings_get_data(rs);

	rd->timer_id = 0;

	ofono_radio_settings_register(rs);
	return FALSE;
}
Exemple #6
0
static void ipbm_support_cb(gboolean ok, GAtResult *result, gpointer user_data)
{
	struct ofono_radio_settings *rs = user_data;

	if (!ok) {
		ofono_radio_settings_remove(rs);
		return;
	}

	ofono_radio_settings_register(rs);
}
Exemple #7
0
static gboolean ril_radio_settings_register(gpointer user_data)
{
	struct ofono_radio_settings *rs = user_data;
	struct ril_radio_settings *rsd = ril_radio_settings_get_data(rs);

	rsd->timer_id = 0;
	ofono_radio_settings_register(rs);

	if (ril_radio_settings_get_config(rsd)) {
		ril_radio_settings_submit_request(rsd, NULL,
			RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE,
			ril_radio_settings_query_rat_mode_cb, NULL, NULL);
	}

	/* Single shot */
	return FALSE;
}