public inbox for ofono@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH v2 0/3] droid: migrate to gobi QMI driver
@ 2025-07-29  5:21 Ivaylo Dimitrov
  2025-07-29  5:21 ` [PATCH 1/3] gobi: do not assume LTE is supported, detect it Ivaylo Dimitrov
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Ivaylo Dimitrov @ 2025-07-29  5:21 UTC (permalink / raw)
  To: ofono; +Cc: denkenz, absicsz, merlijn

[PATCH 1/3] gobi: do not assume LTE is supported, detect it
[PATCH 2/3] gobi: Add "OfflineOperatingMode" property
[PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead


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

* [PATCH 1/3] gobi: do not assume LTE is supported, detect it
  2025-07-29  5:21 [PATCH v2 0/3] droid: migrate to gobi QMI driver Ivaylo Dimitrov
@ 2025-07-29  5:21 ` Ivaylo Dimitrov
  2025-07-29 22:13   ` Denis Kenzior
  2025-07-29  5:21 ` [PATCH 2/3] gobi: Add "OfflineOperatingMode" property Ivaylo Dimitrov
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Ivaylo Dimitrov @ 2025-07-29  5:21 UTC (permalink / raw)
  To: ofono; +Cc: denkenz, absicsz, merlijn, Ivaylo Dimitrov

---
 plugins/gobi.c | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/plugins/gobi.c b/plugins/gobi.c
index 3d4d133c..d5a7fc18 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -57,6 +57,7 @@
 #define GOBI_UIM	(1 << 5)
 #define GOBI_VOICE	(1 << 6)
 #define GOBI_WDA	(1 << 7)
+#define GOBI_LTE	(1 << 8)
 
 #define MAX_CONTEXTS 4
 #define DEFAULT_MTU 1400
@@ -263,7 +264,6 @@ static int gobi_probe(struct ofono_modem *modem)
 	data->max_aggregation_size = 16384;
 
 	ofono_modem_set_data(modem, data);
-	ofono_modem_set_capabilities(modem, OFONO_MODEM_CAPABILITY_LTE);
 
 	return 0;
 }
@@ -480,8 +480,17 @@ static void get_caps_cb(struct qmi_result *result, void *user_data)
         DBG("service capabilities %d", caps->data_capa);
         DBG("sim supported %d", caps->sim_supported);
 
-        for (i = 0; i < caps->radio_if_count; i++)
-                DBG("radio = %d", caps->radio_if[i]);
+	for (i = 0; i < caps->radio_if_count; i++) {
+		uint8_t iface = caps->radio_if[i];
+
+		DBG("radio = %d", iface);
+
+		if (iface & QMI_DMS_RADIO_IF_LTE)
+			data->features |= GOBI_LTE;
+	}
+
+	if (data->features & GOBI_LTE)
+		ofono_modem_set_capabilities(modem, OFONO_MODEM_CAPABILITY_LTE);
 
 	if (qmi_service_send(data->dms, QMI_DMS_GET_OPER_MODE, NULL,
 					get_oper_mode_cb, modem, NULL) > 0)
@@ -1144,7 +1153,7 @@ static void gobi_post_sim(struct ofono_modem *modem)
 
 	DBG("%p", modem);
 
-	if (data->features & GOBI_WDS)
+	if (data->features & GOBI_WDS && data->features & GOBI_LTE)
 		ofono_lte_create(modem, 0, "qmimodem",
 					qmi_service_clone(data->wds));
 
-- 
2.25.1


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

* [PATCH 2/3] gobi: Add "OfflineOperatingMode" property
  2025-07-29  5:21 [PATCH v2 0/3] droid: migrate to gobi QMI driver Ivaylo Dimitrov
  2025-07-29  5:21 ` [PATCH 1/3] gobi: do not assume LTE is supported, detect it Ivaylo Dimitrov
@ 2025-07-29  5:21 ` Ivaylo Dimitrov
  2025-07-29  5:21 ` [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead Ivaylo Dimitrov
  2025-07-29 22:20 ` [PATCH v2 0/3] droid: migrate to gobi QMI driver patchwork-bot+ofono
  3 siblings, 0 replies; 8+ messages in thread
From: Ivaylo Dimitrov @ 2025-07-29  5:21 UTC (permalink / raw)
  To: ofono; +Cc: denkenz, absicsz, merlijn, Ivaylo Dimitrov

Some modems properly support PersistentLowPower mode when disabled, allow
them to request that
---
 plugins/gobi.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/plugins/gobi.c b/plugins/gobi.c
index d5a7fc18..ea78a519 100644
--- a/plugins/gobi.c
+++ b/plugins/gobi.c
@@ -109,6 +109,7 @@ struct gobi_data {
 	uint32_t set_powered_id;
 	uint32_t set_mtu_id;
 	enum wda_data_format data_format;
+	uint8_t off_opmode;
 	bool no_pass_through : 1;
 };
 
@@ -217,12 +218,14 @@ static int gobi_probe(struct ofono_modem *modem)
 	struct gobi_data *data;
 	const char *if_driver;
 	const char *ifname;
+	const char *opmode;
 	uint8_t interface_number;
 	int ifindex;
 	const char *bus;
 	struct stat st;
 	_auto_(l_free) char *pass_through = NULL;
 	bool no_pass_through = false;
+	uint8_t off_opmode = QMI_DMS_OPER_MODE_LOW_POWER;
 
 	DBG("%p", modem);
 
@@ -231,6 +234,7 @@ static int gobi_probe(struct ofono_modem *modem)
 	ifname = ofono_modem_get_string(modem, "NetworkInterface");
 	ifindex = ofono_modem_get_integer(modem, "NetworkInterfaceIndex");
 	bus = ofono_modem_get_string(modem, "Bus");
+	opmode = ofono_modem_get_string(modem, "OfflineOperatingMode");
 
 	DBG("net: %s[%s](%d) %s", ifname, if_driver, ifindex, bus);
 
@@ -255,6 +259,15 @@ static int gobi_probe(struct ofono_modem *modem)
 			return -errno;
 	}
 
+	if (opmode) {
+		DBG("offline power mode: %s", opmode);
+
+		if (!strcmp(opmode, "PersistentLowPower"))
+			off_opmode = QMI_DMS_OPER_MODE_PERSIST_LOW_POWER;
+		else if (strcmp(opmode, "LowPower"))
+			return -ENOTSUP;
+	}
+
 	data = l_new(struct gobi_data, 1);
 	data->main_net_ifindex = ifindex;
 	l_strlcpy(data->main_net_name, ifname, sizeof(data->main_net_name));
@@ -262,6 +275,7 @@ static int gobi_probe(struct ofono_modem *modem)
 	data->no_pass_through = no_pass_through;
 	/* See drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h */
 	data->max_aggregation_size = 16384;
+	data->off_opmode = off_opmode;
 
 	ofono_modem_set_data(modem, data);
 
@@ -442,7 +456,7 @@ static void get_oper_mode_cb(struct qmi_result *result, void *user_data)
 	switch (data->oper_mode) {
 	case QMI_DMS_OPER_MODE_ONLINE:
 		param = qmi_param_new_uint8(QMI_DMS_PARAM_OPER_MODE,
-					QMI_DMS_OPER_MODE_LOW_POWER);
+						data->off_opmode);
 		if (!param) {
 			shutdown_device(modem);
 			return;
@@ -935,8 +949,7 @@ static int gobi_disable(struct ofono_modem *modem)
 	if (ofono_modem_get_boolean(modem, "AlwaysOnline"))
 		goto out;
 
-	param = qmi_param_new_uint8(QMI_DMS_PARAM_OPER_MODE,
-					QMI_DMS_OPER_MODE_LOW_POWER);
+	param = qmi_param_new_uint8(QMI_DMS_PARAM_OPER_MODE, data->off_opmode);
 	if (!param)
 		return -ENOMEM;
 
-- 
2.25.1


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

* [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead
  2025-07-29  5:21 [PATCH v2 0/3] droid: migrate to gobi QMI driver Ivaylo Dimitrov
  2025-07-29  5:21 ` [PATCH 1/3] gobi: do not assume LTE is supported, detect it Ivaylo Dimitrov
  2025-07-29  5:21 ` [PATCH 2/3] gobi: Add "OfflineOperatingMode" property Ivaylo Dimitrov
@ 2025-07-29  5:21 ` Ivaylo Dimitrov
  2025-07-29 22:13   ` Denis Kenzior
  2025-07-29 22:20 ` [PATCH v2 0/3] droid: migrate to gobi QMI driver patchwork-bot+ofono
  3 siblings, 1 reply; 8+ messages in thread
From: Ivaylo Dimitrov @ 2025-07-29  5:21 UTC (permalink / raw)
  To: ofono; +Cc: denkenz, absicsz, merlijn, Ivaylo Dimitrov

---
 Makefile.am      |   1 -
 plugins/droid.c  | 172 -----------------------------------------------
 plugins/udevng.c |  32 ++++++---
 3 files changed, 21 insertions(+), 184 deletions(-)
 delete mode 100644 plugins/droid.c

diff --git a/Makefile.am b/Makefile.am
index c013e77d..cf51cdf1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -578,7 +578,6 @@ builtin_sources += plugins/telit.c
 builtin_sources += plugins/quectel.c
 builtin_sources += plugins/ublox.c
 builtin_sources += plugins/xmm7xxx.c
-builtin_sources += plugins/droid.c
 
 builtin_modules += stemgr
 builtin_sources += plugins/stemgr.c
diff --git a/plugins/droid.c b/plugins/droid.c
deleted file mode 100644
index 1dfae9ee..00000000
--- a/plugins/droid.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * oFono - Open Source Telephony
- * Copyright (C) 2008-2011  Intel Corporation
- * Copyright (C) 2009  Collabora Ltd
- * Copyright (C) 2020  Pavel Machek
- *
- * SPDX-License-Identifier: GPL-2.0-only
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <errno.h>
-
-#include <glib.h>
-#include <gatchat.h>
-#include <gattty.h>
-
-#define OFONO_API_SUBJECT_TO_CHANGE
-#include <ofono/plugin.h>
-#include <ofono/log.h>
-#include <ofono/modem.h>
-#include <ofono/call-barring.h>
-#include <ofono/call-forwarding.h>
-#include <ofono/call-meter.h>
-#include <ofono/call-settings.h>
-#include <ofono/devinfo.h>
-#include <ofono/message-waiting.h>
-#include <ofono/netreg.h>
-#include <ofono/phonebook.h>
-#include <ofono/sim.h>
-#include <ofono/sms.h>
-#include <ofono/ussd.h>
-#include <ofono/voicecall.h>
-
-#include <drivers/atmodem/atutil.h>
-#include <drivers/atmodem/vendor.h>
-
-static void droid_debug(const char *str, void *user_data)
-{
-	const char *prefix = user_data;
-
-	ofono_info("%s%s", prefix, str);
-}
-
-/* Detect hardware, and initialize if found */
-static int droid_probe(struct ofono_modem *modem)
-{
-	DBG("");
-
-	return 0;
-}
-
-static void droid_remove(struct ofono_modem *modem)
-{
-	GAtChat *chat = ofono_modem_get_data(modem);
-
-	DBG("");
-
-	if (chat) {
-		g_at_chat_unref(chat);
-		ofono_modem_set_data(modem, NULL);
-	}
-}
-
-static void cfun_set_on_cb(gboolean ok, GAtResult *result, gpointer user_data)
-{
-	struct ofono_modem *modem = user_data;
-
-	DBG("");
-
-	if (ok)
-		ofono_modem_set_powered(modem, TRUE);
-}
-
-/* power up hardware */
-static int droid_enable(struct ofono_modem *modem)
-{
-	GAtChat *chat;
-
-	DBG("");
-
-	chat = at_util_open_device(modem, "Device", droid_debug, "", NULL);
-	ofono_modem_set_data(modem, chat);
-
-	/* ensure modem is in a known state; verbose on, echo/quiet off */
-	g_at_chat_send(chat, "ATE0Q0V1", NULL, NULL, NULL, NULL);
-
-	/* power up modem */
-	g_at_chat_send(chat, "AT+CFUN=1", NULL, cfun_set_on_cb, modem, NULL);
-
-	return 0;
-}
-
-static void cfun_set_off_cb(gboolean ok, GAtResult *result, gpointer user_data)
-{
-	struct ofono_modem *modem = user_data;
-	GAtChat *chat = ofono_modem_get_data(modem);
-
-	DBG("");
-
-	g_at_chat_unref(chat);
-	ofono_modem_set_data(modem, NULL);
-
-	if (ok)
-		ofono_modem_set_powered(modem, FALSE);
-}
-
-static int droid_disable(struct ofono_modem *modem)
-{
-	GAtChat *chat = ofono_modem_get_data(modem);
-
-	DBG("");
-
-	/* power down modem */
-	g_at_chat_cancel_all(chat);
-	g_at_chat_unregister_all(chat);
-	g_at_chat_send(chat, "AT+CFUN=0", NULL, cfun_set_off_cb, modem, NULL);
-
-	return -EINPROGRESS;
-}
-
-static void droid_pre_sim(struct ofono_modem *modem)
-{
-	GAtChat *chat = ofono_modem_get_data(modem);
-	struct ofono_sim *sim;
-
-	DBG("");
-
-	ofono_devinfo_create(modem, 0, "atmodem", chat);
-	sim = ofono_sim_create(modem, OFONO_VENDOR_DROID, "atmodem", chat);
-	ofono_voicecall_create(modem, OFONO_VENDOR_DROID, "atmodem", chat);
-
-	if (sim)
-		ofono_sim_inserted_notify(sim, TRUE);
-}
-
-static void droid_post_sim(struct ofono_modem *modem)
-{
-	GAtChat *chat = ofono_modem_get_data(modem);
-	struct ofono_message_waiting *mw;
-
-	DBG("");
-
-	ofono_ussd_create(modem, 0, "atmodem", chat);
-	ofono_call_forwarding_create(modem, 0, "atmodem", chat);
-	ofono_call_settings_create(modem, 0, "atmodem", chat);
-	ofono_netreg_create(modem, 0, "atmodem", chat);
-	/*
-	 * Droid 4 modem has problems with AT+CPUC?, avoid call meter for now.
-	 */
-	ofono_call_barring_create(modem, 0, "atmodem", chat);
-	ofono_sms_create(modem, OFONO_VENDOR_DROID, "atmodem", chat);
-	ofono_phonebook_create(modem, 0, "atmodem", chat);
-
-	mw = ofono_message_waiting_create(modem);
-	if (mw)
-		ofono_message_waiting_register(mw);
-}
-
-static struct ofono_modem_driver droid_driver = {
-	.probe		= droid_probe,
-	.remove		= droid_remove,
-	.enable		= droid_enable,
-	.disable	= droid_disable,
-	.pre_sim	= droid_pre_sim,
-	.post_sim	= droid_post_sim,
-};
-
-OFONO_MODEM_DRIVER_BUILTIN(droid, &droid_driver)
diff --git a/plugins/udevng.c b/plugins/udevng.c
index 320cd3a6..18954d44 100644
--- a/plugins/udevng.c
+++ b/plugins/udevng.c
@@ -870,7 +870,9 @@ static gboolean setup_telitqmi(struct modem_info *modem)
 
 static gboolean setup_droid(struct modem_info *modem)
 {
-	const char *at = NULL;
+	const struct device_info *qmi = NULL;
+	const struct device_info *net = NULL;
+
 	GSList *list;
 
 	DBG("%s", modem->syspath);
@@ -878,23 +880,31 @@ static gboolean setup_droid(struct modem_info *modem)
 	for (list = modem->devices; list; list = list->next) {
 		struct device_info *info = list->data;
 		const char *subsystem =
-			udev_device_get_subsystem(info->udev_device);
-
-		DBG("%s %s %s %s %s", info->devnode, info->interface,
-				info->number, info->label, subsystem);
+				udev_device_get_subsystem(info->udev_device);
+		DBG("%s %s %s %s %s %s", info->devnode, info->interface,
+						info->number, info->label,
+						info->sysattr, subsystem);
 
-		if (g_strcmp0(info->interface, "255/255/255") == 0 &&
-				g_strcmp0(info->number, "04") == 0) {
-			at = info->devnode;
+		if (g_strcmp0(subsystem, "usbmisc") == 0) {
+			if (g_strcmp0(info->number, "05") == 0)
+				qmi = info;
+		} else if (g_strcmp0(subsystem, "net") == 0) {
+			if (g_strcmp0(info->number, "05") == 0)
+				net = info;
 		}
 	}
 
-	if (at == NULL)
+	if (qmi == NULL || net == NULL)
 		return FALSE;
 
-	ofono_modem_set_string(modem->modem, "Device", at);
-	ofono_modem_set_driver(modem->modem, "droid");
+	DBG("qmi=%s net=%s", qmi->devnode, get_ifname(net));
+
+
+	if (setup_qmi_qmux(modem, qmi, net) < 0)
+		return FALSE;
 
+	ofono_modem_set_string(modem->modem, "OfflineOperatingMode",
+				"PersistentLowPower");
 	return TRUE;
 }
 
-- 
2.25.1


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

* Re: [PATCH 1/3] gobi: do not assume LTE is supported, detect it
  2025-07-29  5:21 ` [PATCH 1/3] gobi: do not assume LTE is supported, detect it Ivaylo Dimitrov
@ 2025-07-29 22:13   ` Denis Kenzior
  2025-07-30  5:24     ` Ivaylo Dimitrov
  0 siblings, 1 reply; 8+ messages in thread
From: Denis Kenzior @ 2025-07-29 22:13 UTC (permalink / raw)
  To: Ivaylo Dimitrov, ofono; +Cc: absicsz, merlijn

Hi Ivo,

On 7/29/25 12:21 AM, Ivaylo Dimitrov wrote:
> ---
>   plugins/gobi.c | 17 +++++++++++++----
>   1 file changed, 13 insertions(+), 4 deletions(-)

<snip>

> @@ -480,8 +480,17 @@ static void get_caps_cb(struct qmi_result *result, void *user_data)
>           DBG("service capabilities %d", caps->data_capa);
>           DBG("sim supported %d", caps->sim_supported);
>   
> -        for (i = 0; i < caps->radio_if_count; i++)
> -                DBG("radio = %d", caps->radio_if[i]);
> +	for (i = 0; i < caps->radio_if_count; i++) {
> +		uint8_t iface = caps->radio_if[i];
> +
> +		DBG("radio = %d", iface);
> +
> +		if (iface & QMI_DMS_RADIO_IF_LTE)

QMI_DMS_RADIO_IF_* do not seem to be values that can be used in a bitset, so I 
amended this line to use '==' instead of '&'.

> +			data->features |= GOBI_LTE;
> +	}
> +
> +	if (data->features & GOBI_LTE)
> +		ofono_modem_set_capabilities(modem, OFONO_MODEM_CAPABILITY_LTE);
>   
>   	if (qmi_service_send(data->dms, QMI_DMS_GET_OPER_MODE, NULL,
>   					get_oper_mode_cb, modem, NULL) > 0)

Regards,
-Denis

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

* Re: [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead
  2025-07-29  5:21 ` [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead Ivaylo Dimitrov
@ 2025-07-29 22:13   ` Denis Kenzior
  0 siblings, 0 replies; 8+ messages in thread
From: Denis Kenzior @ 2025-07-29 22:13 UTC (permalink / raw)
  To: Ivaylo Dimitrov, ofono; +Cc: absicsz, merlijn

Hi Ivo,

On 7/29/25 12:21 AM, Ivaylo Dimitrov wrote:
> ---
>   Makefile.am      |   1 -
>   plugins/droid.c  | 172 -----------------------------------------------

Love it.  Thanks for doing this.

>   plugins/udevng.c |  32 ++++++---
>   3 files changed, 21 insertions(+), 184 deletions(-)
>   delete mode 100644 plugins/droid.c
> 

Regards,
-Denis

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

* Re: [PATCH v2 0/3] droid: migrate to gobi QMI driver
  2025-07-29  5:21 [PATCH v2 0/3] droid: migrate to gobi QMI driver Ivaylo Dimitrov
                   ` (2 preceding siblings ...)
  2025-07-29  5:21 ` [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead Ivaylo Dimitrov
@ 2025-07-29 22:20 ` patchwork-bot+ofono
  3 siblings, 0 replies; 8+ messages in thread
From: patchwork-bot+ofono @ 2025-07-29 22:20 UTC (permalink / raw)
  To: Ivaylo Dimitrov; +Cc: ofono, denkenz, absicsz, merlijn

Hello:

This series was applied to ofono.git (master)
by Denis Kenzior <denkenz@gmail.com>:

On Tue, 29 Jul 2025 08:21:29 +0300 you wrote:
> [PATCH 1/3] gobi: do not assume LTE is supported, detect it
> [PATCH 2/3] gobi: Add "OfflineOperatingMode" property
> [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead

Here is the summary with links:
  - [1/3] gobi: do not assume LTE is supported, detect it
    (no matching commit)
  - [2/3] gobi: Add "OfflineOperatingMode" property
    https://git.kernel.org/pub/scm/network/ofono/ofono.git/?id=6e2b8a43d09b
  - [3/3] plugins: drop droid and use gobi for droid4 modem instead
    https://git.kernel.org/pub/scm/network/ofono/ofono.git/?id=3767c404af67

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

* Re: [PATCH 1/3] gobi: do not assume LTE is supported, detect it
  2025-07-29 22:13   ` Denis Kenzior
@ 2025-07-30  5:24     ` Ivaylo Dimitrov
  0 siblings, 0 replies; 8+ messages in thread
From: Ivaylo Dimitrov @ 2025-07-30  5:24 UTC (permalink / raw)
  To: Denis Kenzior, ofono; +Cc: absicsz, merlijn



On 30.07.25 г. 1:13 ч., Denis Kenzior wrote:
> Hi Ivo,
> 
> On 7/29/25 12:21 AM, Ivaylo Dimitrov wrote:
>> ---
>>   plugins/gobi.c | 17 +++++++++++++----
>>   1 file changed, 13 insertions(+), 4 deletions(-)
> 
> <snip>
> 
>> @@ -480,8 +480,17 @@ static void get_caps_cb(struct qmi_result 
>> *result, void *user_data)
>>           DBG("service capabilities %d", caps->data_capa);
>>           DBG("sim supported %d", caps->sim_supported);
>> -        for (i = 0; i < caps->radio_if_count; i++)
>> -                DBG("radio = %d", caps->radio_if[i]);
>> +    for (i = 0; i < caps->radio_if_count; i++) {
>> +        uint8_t iface = caps->radio_if[i];
>> +
>> +        DBG("radio = %d", iface);
>> +
>> +        if (iface & QMI_DMS_RADIO_IF_LTE)
> 
> QMI_DMS_RADIO_IF_* do not seem to be values that can be used in a 
> bitset, so I amended this line to use '==' instead of '&'.
> 

Ugh, right, how did I not see it.

Thanks!

>> +            data->features |= GOBI_LTE;
>> +    }
>> +
>> +    if (data->features & GOBI_LTE)
>> +        ofono_modem_set_capabilities(modem, OFONO_MODEM_CAPABILITY_LTE);
>>       if (qmi_service_send(data->dms, QMI_DMS_GET_OPER_MODE, NULL,
>>                       get_oper_mode_cb, modem, NULL) > 0)
> 
> Regards,
> -Denis

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

end of thread, other threads:[~2025-07-30  5:24 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-29  5:21 [PATCH v2 0/3] droid: migrate to gobi QMI driver Ivaylo Dimitrov
2025-07-29  5:21 ` [PATCH 1/3] gobi: do not assume LTE is supported, detect it Ivaylo Dimitrov
2025-07-29 22:13   ` Denis Kenzior
2025-07-30  5:24     ` Ivaylo Dimitrov
2025-07-29  5:21 ` [PATCH 2/3] gobi: Add "OfflineOperatingMode" property Ivaylo Dimitrov
2025-07-29  5:21 ` [PATCH 3/3] plugins: drop droid and use gobi for droid4 modem instead Ivaylo Dimitrov
2025-07-29 22:13   ` Denis Kenzior
2025-07-29 22:20 ` [PATCH v2 0/3] droid: migrate to gobi QMI driver patchwork-bot+ofono

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox