For LTE, a context is created automatically when the modem registers
to the network.  The read_settings function is called for these
automatic contexts to get their configuration.
---
 drivers/qmimodem/gprs-context.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/drivers/qmimodem/gprs-context.c b/drivers/qmimodem/gprs-context.c
index 1ae2a5a..3841c7e 100644
--- a/drivers/qmimodem/gprs-context.c
+++ b/drivers/qmimodem/gprs-context.c
@@ -153,6 +153,31 @@ done:
        g_free(cbd);
 }
 
+static void qmi_gprs_read_settings(struct ofono_gprs_context* gc,
+                                       unsigned int cid,
+                                       ofono_gprs_context_cb_t cb,
+                                       void *user_data)
+{
+       struct cb_data *cbd = cb_data_new(cb, user_data);
+       struct gprs_context_data *data = ofono_gprs_context_get_data(gc);
+
+       DBG("cid %u", cid);
+
+       data->active_context = cid;
+
+       cbd->user = gc;
+
+       if (qmi_service_send(data->wds, QMI_WDS_GET_SETTINGS, NULL,
+                                       get_settings_cb, cbd, NULL) > 0)
+               return;
+
+       data->active_context = 0;
+
+       CALLBACK_WITH_FAILURE(cb, cbd->data);
+
+       g_free(cbd);
+}
+
 static void start_net_cb(struct qmi_result *result, void *user_data)
 {
        struct cb_data *cbd = user_data;
@@ -450,6 +475,7 @@ static struct ofono_gprs_context_driver driver = {
        .remove                 = qmi_gprs_context_remove,
        .activate_primary       = qmi_activate_primary,
        .deactivate_primary     = qmi_deactivate_primary,
+       .read_settings          = qmi_gprs_read_settings,
 };
 
 void qmi_gprs_context_init(void)
-- 
2.9.3

_______________________________________________
ofono mailing list
[email protected]
https://lists.ofono.org/mailman/listinfo/ofono

Reply via email to