On Tue, May 1, 2018 at 6:20 PM, Matthew Starr <mst...@hedonline.com> wrote:
> 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);
>
> }
>

How about making it so that ublox_custom_init() just returns TRUE in
the GTask right away if the "ready wait time secs" read from the udev
tag is 0? This would get rid of all the custom init logic if there's
no need to wait for the +READY URC.


-- 
Aleksander
https://aleksander.es
_______________________________________________
ModemManager-devel mailing list
ModemManager-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel

Reply via email to