[PATCH 2/2] ublox: use ID_MM_PORT_READY_DELAY udev flag for ready delay

Matthew Starr mstarr at hedonline.com
Tue May 1 16:20:06 UTC 2018


Add reading the ID_MM_PORT_READY_DELAY udev flag value and using it as
an init delay when a value is set.

The 20 second delay for the TOBY-L4 +READY URC has been reimplemented
using the new ready delay timeout value.
---
plugins/ublox/77-mm-ublox-port-types.rules |  2 ++
plugins/ublox/mm-plugin-ublox.c            | 10 ++++++----
2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/plugins/ublox/77-mm-ublox-port-types.rules b/plugins/ublox/77-mm-ublox-port-types.rules
index 31128dac..8873047e 100644
--- a/plugins/ublox/77-mm-ublox-port-types.rules
+++ b/plugins/ublox/77-mm-ublox-port-types.rules
@@ -11,9 +11,11 @@ SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="?*", ENV{.MM_USBIFNUM}="$attr{bInte
#  ttyACM0 (if #2): secondary (ignore)
#  ttyACM1 (if #4): debug port (ignore)
#  ttyACM2 (if #6): primary
+#      Wait up to 20s for the +READY URC
#  ttyACM3 (if #8): AT port for FOTA (ignore)
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="02", ENV{ID_MM_PORT_IGNORE}="1"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="04", ENV{ID_MM_PORT_IGNORE}="1"
+ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="06", ENV{ID_MM_PORT_READY_DELAY}="20"
ATTRS{idVendor}=="1546", ATTRS{idProduct}=="1010", ENV{.MM_USBIFNUM}=="08", ENV{ID_MM_PORT_IGNORE}="1"
 # TOBY-R2 port types
diff --git a/plugins/ublox/mm-plugin-ublox.c b/plugins/ublox/mm-plugin-ublox.c
index f4553a60..b96ca583 100644
--- a/plugins/ublox/mm-plugin-ublox.c
+++ b/plugins/ublox/mm-plugin-ublox.c
@@ -50,9 +50,6 @@ create_modem (MMPlugin     *self,
/*****************************************************************************/
/* Custom init context */
-/* Wait up to 20s for the +READY URC */
-#define READY_WAIT_TIME_SECS 20
-
typedef struct {
     MMPortSerialAt *port;
     GRegex         *ready_regex;
@@ -147,8 +144,13 @@ wait_for_ready (GTask *task)
                                                    task,
                                                    NULL);
+    mm_dbg ("(%s/%s) waiting %d seconds for init timeout",
+            mm_port_probe_get_port_subsys (probe),
+            mm_port_probe_get_port_name   (probe),
+            mm_port_probe_get_ready_delay (probe));
+
     /* Otherwise, let the custom init timeout in some seconds. */
-    ctx->timeout_id = g_timeout_add_seconds (READY_WAIT_TIME_SECS, (GSourceFunc) ready_timeout, task);
+    ctx->timeout_id = g_timeout_add_seconds (mm_port_probe_get_ready_delay (probe), (GSourceFunc) ready_timeout, task);
}
 static void
--
2.14.1

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/modemmanager-devel/attachments/20180501/9d52afec/attachment.html>


More information about the ModemManager-devel mailing list