summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorMika Liljeberg <mika.liljeberg@nokia.com>2010-11-11 17:50:00 +0200
committerDenis Kenzior <denkenz@gmail.com>2010-11-11 09:52:34 -0600
commit39d6fffae8923d8e1da8cf30691da7ac17e4e8d4 (patch)
treee34a8c7db3e82c0b0c819c1ff07184cfbc51c1e2 /plugins
parent5a1bd2c352593c198a69f08efb64c3a0bdce20f7 (diff)
downloadofono-39d6fffae8923d8e1da8cf30691da7ac17e4e8d4.tar.bz2
isigen: create four gprs contexts
Diffstat (limited to 'plugins')
-rw-r--r--plugins/isigen.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/plugins/isigen.c b/plugins/isigen.c
index 838d060c..fad4e205 100644
--- a/plugins/isigen.c
+++ b/plugins/isigen.c
@@ -58,6 +58,8 @@
#include "drivers/isimodem/mtc.h"
#include "drivers/isimodem/debug.h"
+#define ISI_DEFAULT_PDPS 4 /* Number of supported PDP contexts */
+
struct isi_data {
struct ofono_modem *modem;
char const *ifname;
@@ -407,6 +409,7 @@ static void isigen_post_online(struct ofono_modem *modem)
struct isi_data *isi = ofono_modem_get_data(modem);
struct ofono_gprs *gprs;
struct ofono_gprs_context *gc;
+ int i;
DBG("(%p) with %s", modem, isi->ifname);
@@ -420,13 +423,21 @@ static void isigen_post_online(struct ofono_modem *modem)
ofono_call_barring_create(isi->modem, 0, "isimodem", isi->idx);
ofono_call_meter_create(isi->modem, 0, "isimodem", isi->idx);
ofono_radio_settings_create(isi->modem, 0, "isimodem", isi->idx);
+
gprs = ofono_gprs_create(isi->modem, 0, "isimodem", isi->idx);
- gc = ofono_gprs_context_create(isi->modem, 0, "isimodem", isi->idx);
+ if (!gprs)
+ return;
+
+ for (i = 0; i < ISI_DEFAULT_PDPS; i++) {
+ gc = ofono_gprs_context_create(isi->modem, 0,
+ "isimodem", isi->idx);
+ if (!gc) {
+ DBG("Failed to add context %d", i);
+ break;
+ }
- if (gprs && gc)
ofono_gprs_add_context(gprs, gc);
- else
- DBG("Failed to add context");
+ }
}
static int isigen_enable(struct ofono_modem *modem)