ofono.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] SARA R4 patches
@ 2021-02-22 10:14 Jupiter
  2021-02-22 10:14 ` [PATCH 1/4] SARA R4 QMI support Jupiter
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Jupiter @ 2021-02-22 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 599 bytes --]

From: jupiter <jupiter.hce@gmail.com>

Resubmit to write proper messages.

jupiter (4):
  SARA R4 QMI support based on uBlox model vendor ID
  Add OFONO_VENDOR_UBLOX_SARA_R4 
  Check SARA R4 vendor ID, need to make it conditional on the actions being attach and detach
  Add SARA R4 vendor and enable vendor in gprs create

 drivers/atmodem/vendor.h |  1 +
 drivers/qmimodem/gprs.c  | 15 +++++++++++++++
 plugins/gobi.c           | 11 ++++++++++-
 plugins/udevng.c         | 41 ++++++++++++++++++++++++++++++++++++++++
 4 files changed, 67 insertions(+), 1 deletion(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] SARA R4 QMI support
  2021-02-22 10:14 [PATCH 0/4] SARA R4 patches Jupiter
@ 2021-02-22 10:14 ` Jupiter
  2021-02-22 16:12   ` Denis Kenzior
  2021-02-22 10:14 ` [PATCH 2/4] Add SARA R4 vendor ID Jupiter
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 6+ messages in thread
From: Jupiter @ 2021-02-22 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2255 bytes --]

From: jupiter <jupiter.hce@gmail.com>

---
 plugins/udevng.c | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/plugins/udevng.c b/plugins/udevng.c
index 34ac1cc0..63d95055 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -1194,6 +1194,45 @@ static gboolean setup_ublox(struct modem_info *modem)
 	return TRUE;
 }
 
+static gboolean setup_ubloxqmi(struct modem_info *modem) {
+	const char *qmi = NULL, *net = NULL, *gps = NULL, *aux = NULL;
+	GSList *list;
+
+	DBG("%s", modem->syspath);
+
+	for (list = modem->devices; list; list = g_slist_next(list)) {
+		struct device_info *info = list->data;
+
+		DBG("%s %s %s %s %s", info->devnode, info->interface,
+				info->number, info->label, info->subsystem);
+
+		if (g_strcmp0(info->interface, "255/255/255") == 0 &&
+				g_strcmp0(info->number, "03") == 0) {
+			if (g_strcmp0(info->subsystem, "net") == 0)
+				net = info->devnode;
+			else if (g_strcmp0(info->subsystem, "usbmisc") == 0)
+				qmi = info->devnode;
+		}
+	}
+
+	DBG("qmi=%s net=%s", qmi, net);
+
+	if (qmi == NULL || net == NULL)
+		return FALSE;
+
+	DBG("qmi=%s net=%s", qmi, net);
+
+	ofono_modem_set_string(modem->modem, "Device", qmi);
+	ofono_modem_set_string(modem->modem, "NetworkInterface", net);
+    ofono_modem_set_string(modem->modem, "Quirk", "SARAR4");
+
+	DBG("gps=%s aux=%s", gps, aux);
+
+	ofono_modem_set_driver(modem->modem, "gobi");
+
+	return TRUE;
+}
+
 static gboolean setup_gemalto(struct modem_info* modem)
 {
 	const char *app = NULL, *gps = NULL, *mdm = NULL,
@@ -1441,6 +1480,7 @@ static struct {
 	{ "quectel",	setup_quectel	},
 	{ "quectelqmi",	setup_quectelqmi},
 	{ "ublox",	setup_ublox	},
+    { "ubloxqmi",   setup_ubloxqmi  },
 	{ "gemalto",	setup_gemalto	},
 	{ "xmm7xxx",	setup_xmm7xxx	},
 	{ "mbim",	setup_mbim	},
@@ -1850,6 +1890,7 @@ static struct {
 	{ "ublox",	"cdc_ncm",	"1546", "110a"	},
 	{ "ublox",	"rndis_host",	"1546", "1146"	},
 	{ "ublox",	"cdc_acm",	"1546", "1146"	},
+    { "ubloxqmi",   "qmi_wwan", "05c6", "90b2"  },
 	{ "gemalto",	"option",	"1e2d",	"0053"	},
 	{ "gemalto",	"cdc_wdm",	"1e2d",	"0053"	},
 	{ "gemalto",	"qmi_wwan",	"1e2d",	"0053"	},
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/4] Add SARA R4 vendor ID
  2021-02-22 10:14 [PATCH 0/4] SARA R4 patches Jupiter
  2021-02-22 10:14 ` [PATCH 1/4] SARA R4 QMI support Jupiter
@ 2021-02-22 10:14 ` Jupiter
  2021-02-22 10:14 ` [PATCH 3/4] Check SARA R4 vendor ID, need to make it conditional on the actions being attach and detach Jupiter
  2021-02-22 10:14 ` [PATCH 4/4] Add SARA R4 vendor and enable vendor in gprs create Jupiter
  3 siblings, 0 replies; 6+ messages in thread
From: Jupiter @ 2021-02-22 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 499 bytes --]

From: jupiter <jupiter.hce@gmail.com>

---
 drivers/atmodem/vendor.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/atmodem/vendor.h b/drivers/atmodem/vendor.h
index 82284e44..38613679 100644
--- a/drivers/atmodem/vendor.h
+++ b/drivers/atmodem/vendor.h
@@ -48,6 +48,7 @@ enum ofono_vendor {
 	OFONO_VENDOR_QUECTEL_EC2X,
 	OFONO_VENDOR_QUECTEL_SERIAL,
 	OFONO_VENDOR_UBLOX,
+    OFONO_VENDOR_UBLOX_SARA_R4,
 	OFONO_VENDOR_XMM,
 	OFONO_VENDOR_GEMALTO,
 };
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/4] Check SARA R4 vendor ID, need to make it conditional on the actions being attach and detach
  2021-02-22 10:14 [PATCH 0/4] SARA R4 patches Jupiter
  2021-02-22 10:14 ` [PATCH 1/4] SARA R4 QMI support Jupiter
  2021-02-22 10:14 ` [PATCH 2/4] Add SARA R4 vendor ID Jupiter
@ 2021-02-22 10:14 ` Jupiter
  2021-02-22 10:14 ` [PATCH 4/4] Add SARA R4 vendor and enable vendor in gprs create Jupiter
  3 siblings, 0 replies; 6+ messages in thread
From: Jupiter @ 2021-02-22 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1496 bytes --]

From: jupiter <jupiter.hce@gmail.com>

---
 drivers/qmimodem/gprs.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/drivers/qmimodem/gprs.c b/drivers/qmimodem/gprs.c
index 896a9e4c..64d90257 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,18 @@ static void qmi_set_attached(struct ofono_gprs *gprs, int attached,
 
 	DBG("attached %d", attached);
 
+    if (data->vendor == OFONO_VENDOR_UBLOX_SARA_R4) {
+        /* This assumes neither 'attach' nor 'detach' are
+         * necessary... if 'attach' is required, then you'll
+         * need to make this section conditional on the action
+         * being 'detach'
+         */
+	    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 +420,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);
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/4] Add SARA R4 vendor and enable vendor in gprs create
  2021-02-22 10:14 [PATCH 0/4] SARA R4 patches Jupiter
                   ` (2 preceding siblings ...)
  2021-02-22 10:14 ` [PATCH 3/4] Check SARA R4 vendor ID, need to make it conditional on the actions being attach and detach Jupiter
@ 2021-02-22 10:14 ` Jupiter
  3 siblings, 0 replies; 6+ messages in thread
From: Jupiter @ 2021-02-22 10:14 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1525 bytes --]

From: jupiter <jupiter.hce@gmail.com>

---
 plugins/gobi.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/plugins/gobi.c b/plugins/gobi.c
index 9b5d7cff..5472dd83 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -47,6 +47,7 @@
 #include <ofono/location-reporting.h>
 #include <ofono/log.h>
 #include <ofono/message-waiting.h>
+#include <drivers/atmodem/vendor.h>
 
 #include <drivers/qmimodem/qmi.h>
 #include <drivers/qmimodem/dms.h>
@@ -496,9 +497,17 @@ static void gobi_post_online(struct ofono_modem *modem)
 	struct gobi_data *data = ofono_modem_get_data(modem);
 	struct ofono_gprs *gprs;
 	struct ofono_gprs_context *gc;
+    const char* quirk;
+    unsigned int vendor = 0;
 
 	DBG("%p", modem);
 
+    quirk = ofono_modem_get_string(modem, "Quirk");
+    if (quirk) {
+	    DBG("Debug: vendor = OFONO_VENDOR_UBLOX_SARA_R4");
+        vendor = OFONO_VENDOR_UBLOX_SARA_R4;
+    }
+
 	if (data->features & GOBI_NAS) {
 		ofono_netreg_create(modem, 0, "qmimodem", data->device);
 		ofono_netmon_create(modem, 0, "qmimodem", data->device);
@@ -508,7 +517,7 @@ static void gobi_post_online(struct ofono_modem *modem)
 		ofono_ussd_create(modem, 0, "qmimodem", data->device);
 
 	if (data->features & GOBI_WDS) {
-		gprs = ofono_gprs_create(modem, 0, "qmimodem", data->device);
+		gprs = ofono_gprs_create(modem, vendor, "qmimodem", data->device);
 		gc = ofono_gprs_context_create(modem, 0, "qmimodem",
 							data->device);
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/4] SARA R4 QMI support
  2021-02-22 10:14 ` [PATCH 1/4] SARA R4 QMI support Jupiter
@ 2021-02-22 16:12   ` Denis Kenzior
  0 siblings, 0 replies; 6+ messages in thread
From: Denis Kenzior @ 2021-02-22 16:12 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 2703 bytes --]

Hi Jupiter,

On 2/22/21 4:14 AM, Jupiter wrote:
> From: jupiter <jupiter.hce@gmail.com>

Please provide a complete and properly capitalized real name with your 
submission, otherwise I can't apply it.

> 
> ---
>   plugins/udevng.c | 41 +++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 41 insertions(+)
> 
> diff --git a/plugins/udevng.c b/plugins/udevng.c
> index 34ac1cc0..63d95055 100644
> --- a/plugins/udevng.c
> +++ b/plugins/udevng.c
> @@ -1194,6 +1194,45 @@ static gboolean setup_ublox(struct modem_info *modem)
>   	return TRUE;
>   }
>   
> +static gboolean setup_ubloxqmi(struct modem_info *modem) {
> +	const char *qmi = NULL, *net = NULL, *gps = NULL, *aux = NULL;
> +	GSList *list;
> +
> +	DBG("%s", modem->syspath);
> +
> +	for (list = modem->devices; list; list = g_slist_next(list)) {
> +		struct device_info *info = list->data;
> +
> +		DBG("%s %s %s %s %s", info->devnode, info->interface,
> +				info->number, info->label, info->subsystem);
> +
> +		if (g_strcmp0(info->interface, "255/255/255") == 0 &&
> +				g_strcmp0(info->number, "03") == 0) {
> +			if (g_strcmp0(info->subsystem, "net") == 0)
> +				net = info->devnode;
> +			else if (g_strcmp0(info->subsystem, "usbmisc") == 0)
> +				qmi = info->devnode;
> +		}
> +	}
> +
> +	DBG("qmi=%s net=%s", qmi, net);
> +
> +	if (qmi == NULL || net == NULL)
> +		return FALSE;
> +
> +	DBG("qmi=%s net=%s", qmi, net);
> +
> +	ofono_modem_set_string(modem->modem, "Device", qmi);
> +	ofono_modem_set_string(modem->modem, "NetworkInterface", net);
> +    ofono_modem_set_string(modem->modem, "Quirk", "SARAR4");

you seem to be mixing tabs and spaces for indentation.  Please fix that

> +
> +	DBG("gps=%s aux=%s", gps, aux);
> +
> +	ofono_modem_set_driver(modem->modem, "gobi");
> +
> +	return TRUE;
> +}
> +
>   static gboolean setup_gemalto(struct modem_info* modem)
>   {
>   	const char *app = NULL, *gps = NULL, *mdm = NULL,
> @@ -1441,6 +1480,7 @@ static struct {
>   	{ "quectel",	setup_quectel	},
>   	{ "quectelqmi",	setup_quectelqmi},
>   	{ "ublox",	setup_ublox	},
> +    { "ubloxqmi",   setup_ubloxqmi  },

Also here

>   	{ "gemalto",	setup_gemalto	},
>   	{ "xmm7xxx",	setup_xmm7xxx	},
>   	{ "mbim",	setup_mbim	},
> @@ -1850,6 +1890,7 @@ static struct {
>   	{ "ublox",	"cdc_ncm",	"1546", "110a"	},
>   	{ "ublox",	"rndis_host",	"1546", "1146"	},
>   	{ "ublox",	"cdc_acm",	"1546", "1146"	},
> +    { "ubloxqmi",   "qmi_wwan", "05c6", "90b2"  },

and here

>   	{ "gemalto",	"option",	"1e2d",	"0053"	},
>   	{ "gemalto",	"cdc_wdm",	"1e2d",	"0053"	},
>   	{ "gemalto",	"qmi_wwan",	"1e2d",	"0053"	},
> 

Regards,
-Denis

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-02-22 16:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 10:14 [PATCH 0/4] SARA R4 patches Jupiter
2021-02-22 10:14 ` [PATCH 1/4] SARA R4 QMI support Jupiter
2021-02-22 16:12   ` Denis Kenzior
2021-02-22 10:14 ` [PATCH 2/4] Add SARA R4 vendor ID Jupiter
2021-02-22 10:14 ` [PATCH 3/4] Check SARA R4 vendor ID, need to make it conditional on the actions being attach and detach Jupiter
2021-02-22 10:14 ` [PATCH 4/4] Add SARA R4 vendor and enable vendor in gprs create Jupiter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).