The SARA R4 modem detaches permanently from the network when the NAS
Detach action is called. This is problematic because ofono calls Detach
when network connectivity is temporarily lost resulting in the modem
never attempting to reattach again when the network once again becomes
available.
In testing it was discovered, that the call to Attach doesn't appear to
be required either.
This patch adds a quirk to the QMI GPRS atom to not call the NAS
attach/detach actions for the uBlox SARA R4 device.
This has been tested on several SARA R4 devices that are running in
long-term connectivity tests. With this patch, the modem reconnects as
the network comes and goes; without the patch, the modem goes idle the
first time network connectivity is lost.
/Jonas
On 12/05/2021 09:40, Bing Jupiter wrote:
---
drivers/qmimodem/gprs.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/qmimodem/gprs.c b/drivers/qmimodem/gprs.c
index 896a9e4c..fa20b809 100644
--- a/drivers/qmimodem/gprs.c
+++ b/drivers/qmimodem/gprs.c
@@ -26,6 +26,7 @@
#include <ofono/log.h>
#include <ofono/modem.h>
#include <ofono/gprs.h>
+#include <drivers/atmodem/vendor.h>
#include "qmi.h"
#include "nas.h"
@@ -35,6 +36,7 @@
#include "qmimodem.h"
struct gprs_data {
+ unsigned int vendor;
struct qmi_device *dev;
struct qmi_service *nas;
struct qmi_service *wds;
@@ -284,6 +286,13 @@ static void qmi_set_attached(struct ofono_gprs *gprs, int
attached,
DBG("attached %d", attached);
+ if (data->vendor == OFONO_VENDOR_UBLOX_SARA_R4) {
+ DBG("Debug vendor = OFONO_VENDOR_UBLOX_SARA_R4");
+ CALLBACK_WITH_SUCCESS(cb, cbd->data);
+ g_free(cbd);
+ return;
+ }
+
if (attached)
action = QMI_NAS_ATTACH_ACTION_ATTACH;
else
@@ -406,6 +415,7 @@ static int qmi_gprs_probe(struct ofono_gprs *gprs,
DBG("");
data = g_new0(struct gprs_data, 1);
+ data->vendor = vendor;
ofono_gprs_set_data(gprs, data);
_______________________________________________
ofono mailing list -- [email protected]
To unsubscribe send an email to [email protected]