gobi: Update to the new version_list changes

This commit is contained in:
Jonas Bonn 2018-04-03 16:50:55 +02:00 committed by Denis Kenzior
parent 6485522c91
commit c0527a211c
1 changed files with 25 additions and 43 deletions

View File

@ -264,56 +264,38 @@ static void create_shared_dms(void *user_data)
create_dms_cb, modem, NULL);
}
static void discover_cb(uint8_t count, const struct qmi_version *list,
void *user_data)
static void discover_cb(void *user_data)
{
struct ofono_modem *modem = user_data;
struct gobi_data *data = ofono_modem_get_data(modem);
uint8_t i;
uint16_t major, minor;
DBG("");
for (i = 0; i < count; i++) {
DBG("%s %d.%d - %d", list[i].name, list[i].major, list[i].minor,
list[i].type);
switch (list[i].type) {
case QMI_SERVICE_DMS:
data->features |= GOBI_DMS;
break;
case QMI_SERVICE_NAS:
data->features |= GOBI_NAS;
break;
case QMI_SERVICE_WMS:
data->features |= GOBI_WMS;
break;
case QMI_SERVICE_WDS:
data->features |= GOBI_WDS;
break;
case QMI_SERVICE_WDA:
data->features |= GOBI_WDA;
break;
case QMI_SERVICE_PDS:
data->features |= GOBI_PDS;
break;
case QMI_SERVICE_PBM:
data->features |= GOBI_PBM;
break;
case QMI_SERVICE_UIM:
data->features |= GOBI_UIM;
break;
case QMI_SERVICE_CAT:
data->features |= GOBI_CAT;
break;
case QMI_SERVICE_CAT_OLD:
if (list[i].major > 0)
data->features |= GOBI_CAT_OLD;
break;
case QMI_SERVICE_VOICE:
if (qmi_device_has_service(data->device, QMI_SERVICE_DMS))
data->features |= GOBI_DMS;
if (qmi_device_has_service(data->device, QMI_SERVICE_NAS))
data->features |= GOBI_NAS;
if (qmi_device_has_service(data->device, QMI_SERVICE_WMS))
data->features |= GOBI_WMS;
if (qmi_device_has_service(data->device, QMI_SERVICE_WDS))
data->features |= GOBI_WDS;
if (qmi_device_has_service(data->device, QMI_SERVICE_WDA))
data->features |= GOBI_WDA;
if (qmi_device_has_service(data->device, QMI_SERVICE_PDS))
data->features |= GOBI_PDS;
if (qmi_device_has_service(data->device, QMI_SERVICE_PBM))
data->features |= GOBI_PBM;
if (qmi_device_has_service(data->device, QMI_SERVICE_UIM))
data->features |= GOBI_UIM;
if (qmi_device_has_service(data->device, QMI_SERVICE_CAT))
data->features |= GOBI_CAT;
if (qmi_device_get_service_version(data->device,
QMI_SERVICE_CAT_OLD, &major, &minor))
if (major > 0)
data->features |= GOBI_CAT_OLD;
if (qmi_device_has_service(data->device, QMI_SERVICE_VOICE))
data->features |= GOBI_VOICE;
break;
}
}
if (!(data->features & GOBI_DMS)) {
if (++data->discover_attempts < 3) {