Made changes in xmm7modem plugin to allow mutiple PDP context
activation and to assign correct network interface to the
activated PDP context.
---
plugins/udevng.c | 12 +++++++++++-
plugins/xmm7xxx.c | 21 +++++++++++++++++++++
2 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/plugins/udevng.c b/plugins/udevng.c
index ff6e1fc..e00b6ac 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -1179,7 +1179,7 @@ static gboolean setup_gemalto(struct modem_info* modem)
static gboolean setup_xmm7xxx(struct modem_info *modem)
{
- const char *mdm = NULL, *net = NULL;
+ const char *mdm = NULL, *net = NULL, *net2 = NULL, *net3 = NULL;
GSList *list;
DBG("%s %s\n", __DATE__, __TIME__);
@@ -1200,6 +1200,10 @@ static gboolean setup_xmm7xxx(struct modem_info *modem)
} else if (g_strcmp0(info->subsystem, "net") == 0) {
if (g_strcmp0(info->number, "06") == 0)
net = info->devnode;
+ if (g_strcmp0(info->number, "08") == 0)
+ net2 = info->devnode;
+ if (g_strcmp0(info->number, "0a") == 0)
+ net3 = info->devnode;
}
} else {
if (g_strcmp0(info->subsystem, "tty") == 0) {
@@ -1219,6 +1223,12 @@ static gboolean setup_xmm7xxx(struct modem_info *modem)
ofono_modem_set_string(modem->modem, "Modem", mdm);
ofono_modem_set_string(modem->modem, "NetworkInterface", net);
+ if (net2)
+ ofono_modem_set_string(modem->modem, "NetworkInterface2", net2);
+ if (net3)
+ ofono_modem_set_string(modem->modem, "NetworkInterface3", net3);
+ ofono_modem_set_string(modem->modem, "CtrlPath", "/USBCDC/0");
+ ofono_modem_set_string(modem->modem, "DataPath", "/USBHS/NCM/");
return TRUE;
}
diff --git a/plugins/xmm7xxx.c b/plugins/xmm7xxx.c
index 237c62c..eaae4ad 100644
--- a/plugins/xmm7xxx.c
+++ b/plugins/xmm7xxx.c
@@ -1269,6 +1269,7 @@ static void xmm7xxx_post_online(struct ofono_modem *modem)
struct xmm7xxx_data *data = ofono_modem_get_data(modem);
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
+ const char *interface = NULL;
DBG("%p", modem);
@@ -1282,6 +1283,26 @@ static void xmm7xxx_post_online(struct ofono_modem
*modem)
if (gprs && gc)
ofono_gprs_add_context(gprs, gc);
+ interface = ofono_modem_get_string(modem, "NetworkInterface2");
+
+ if (interface) {
+ gc = ofono_gprs_context_create(modem, OFONO_VENDOR_XMM,
"ifxmodem",
+ data->chat);
+
+ if (gprs && gc)
+ ofono_gprs_add_context(gprs, gc);
+ }
+
+ interface = ofono_modem_get_string(modem, "NetworkInterface3");
+
+ if (interface) {
+ gc = ofono_gprs_context_create(modem, OFONO_VENDOR_XMM,
"ifxmodem",
+ data->chat);
+
+ if (gprs && gc)
+ ofono_gprs_add_context(gprs, gc);
+ }
+
ofono_ims_create(modem, "xmm7modem", data->chat);
ofono_netmon_create(modem, 0, "xmm7modem", data->chat);
}
--
1.9.1
_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono