mirror of git://git.sysmocom.de/ofono
icera: Select USSD driver based on USSD mode setting
This commit is contained in:
parent
f29aab2515
commit
27d79055ba
|
@ -54,7 +54,7 @@ struct icera_data {
|
||||||
GAtChat *chat;
|
GAtChat *chat;
|
||||||
struct ofono_sim *sim;
|
struct ofono_sim *sim;
|
||||||
gboolean have_sim;
|
gboolean have_sim;
|
||||||
int ussdmode;
|
gboolean have_ussdmode;
|
||||||
};
|
};
|
||||||
|
|
||||||
static int icera_probe(struct ofono_modem *modem)
|
static int icera_probe(struct ofono_modem *modem)
|
||||||
|
@ -155,7 +155,8 @@ static void ussdmode_query(gboolean ok, GAtResult *result,
|
||||||
|
|
||||||
DBG("mode %d", mode);
|
DBG("mode %d", mode);
|
||||||
|
|
||||||
data->ussdmode = mode;
|
if (mode == 1)
|
||||||
|
data->have_ussdmode = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ussdmode_support(gboolean ok, GAtResult *result,
|
static void ussdmode_support(gboolean ok, GAtResult *result,
|
||||||
|
@ -170,11 +171,9 @@ static void ussdmode_support(gboolean ok, GAtResult *result,
|
||||||
|
|
||||||
g_at_result_iter_init(&iter, result);
|
g_at_result_iter_init(&iter, result);
|
||||||
|
|
||||||
DBG("a");
|
|
||||||
if (!g_at_result_iter_next(&iter, "%IUSSDMODE:"))
|
if (!g_at_result_iter_next(&iter, "%IUSSDMODE:"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
DBG("b");
|
|
||||||
g_at_chat_send(data->chat, "AT%IUSSDMODE?", ussdmode_prefix,
|
g_at_chat_send(data->chat, "AT%IUSSDMODE?", ussdmode_prefix,
|
||||||
ussdmode_query, modem, NULL);
|
ussdmode_query, modem, NULL);
|
||||||
}
|
}
|
||||||
|
@ -404,7 +403,10 @@ static void icera_post_online(struct ofono_modem *modem)
|
||||||
|
|
||||||
ofono_netreg_create(modem, OFONO_VENDOR_ICERA, "atmodem", data->chat);
|
ofono_netreg_create(modem, OFONO_VENDOR_ICERA, "atmodem", data->chat);
|
||||||
|
|
||||||
ofono_ussd_create(modem, 0, "atmodem", data->chat);
|
if (data->have_ussdmode == TRUE)
|
||||||
|
ofono_ussd_create(modem, 0, "huaweimodem", data->chat);
|
||||||
|
else
|
||||||
|
ofono_ussd_create(modem, 0, "atmodem", data->chat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct ofono_modem_driver icera_driver = {
|
static struct ofono_modem_driver icera_driver = {
|
||||||
|
|
Loading…
Reference in New Issue