int ril_create(struct ofono_modem *modem, enum ofono_ril_vendor vendor) { ofono_bool_t lte_cap; struct ril_data *rd = g_try_new0(struct ril_data, 1); if (rd == NULL) { errno = ENOMEM; goto error; } DBG(""); rd->vendor = vendor; rd->ofono_online = FALSE; rd->radio_state = RADIO_STATE_OFF; lte_cap = getenv("OFONO_RIL_RAT_LTE") ? TRUE : FALSE; ofono_modem_set_boolean(modem, MODEM_PROP_LTE_CAPABLE, lte_cap); ofono_modem_set_data(modem, rd); return 0; error: g_free(rd); return -errno; }
static void set_fw_type(struct ofono_modem *modem, int type) { ofono_bool_t lte_cap; struct mtk_data *md = ofono_modem_get_data(modem); md->fw_type = type; lte_cap = (type >= MTK_MD_TYPE_LWG) ? TRUE : FALSE; ofono_modem_set_boolean(modem, MODEM_PROP_LTE_CAPABLE, lte_cap); }
static gboolean setup_telitqmi(struct modem_info *modem) { const char *qmi = NULL, *net = NULL; GSList *list; DBG("%s", modem->syspath); for (list = modem->devices; list; list = list->next) { struct device_info *info = list->data; DBG("%s %s %s %s %s", info->devnode, info->interface, info->number, info->label, info->subsystem); if (g_strcmp0(info->interface, "255/255/255") == 0 && g_strcmp0(info->number, "02") == 0) { if (g_strcmp0(info->subsystem, "net") == 0) net = info->devnode; else if (g_strcmp0(info->subsystem, "usbmisc") == 0) qmi = info->devnode; } } if (qmi == NULL || net == NULL) return FALSE; DBG("qmi=%s net=%s", qmi, net); ofono_modem_set_string(modem->modem, "Device", qmi); ofono_modem_set_string(modem->modem, "NetworkInterface", net); ofono_modem_set_boolean(modem->modem, "ForceSimLegacy", TRUE); ofono_modem_set_boolean(modem->modem, "AlwaysOnline", TRUE); ofono_modem_set_driver(modem->modem, "gobi"); return TRUE; }
static int ril_probe(struct ofono_modem *modem) { struct ril_data *rd; ofono_bool_t lte_cap; DBG(""); rd = g_new0(struct ril_data, 1); lte_cap = getenv("OFONO_RIL_RAT_LTE") ? TRUE : FALSE; ofono_modem_set_boolean(modem, MODEM_PROP_LTE_CAPABLE, lte_cap); ofono_modem_set_data(modem, rd); return 0; }