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); }
static gboolean ril_delayed_register(gpointer user_data) { struct ofono_radio_settings *rs = user_data; ofono_radio_settings_register(rs); return FALSE; }
static gboolean ste_radio_settings_register(gpointer user) { struct ofono_radio_settings *rs = user; ofono_radio_settings_register(rs); return FALSE; }
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); }
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; }
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); }
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; }