diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-03 23:28:46 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-03-22 09:40:14 +0100 |
commit | 11a26f10668659fb0c043ec9bc88debacce8cab1 (patch) | |
tree | 53351ee81ae8e19537583559659f963c58bd7d20 /src/mm-port-probe.c | |
parent | 00fb9e98f6003f6b167f7d12a895ec3d1402b027 (diff) |
serial: allow specifying baudrate to use via udev tags
A new 'ID_MM_TTY_BAUDRATE' per-port udev tag is introduced, which
allows specifying the baudrate that will be used when opening a
specific serial port.
E.g.:
ACTION!="add|change|move", GOTO="mm_my_modem_end"
DEVPATH=="/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/*", ENV{ID_MM_TTY_BAUDRATE}="115200"
LABEL="mm_my_modem_end"
https://bugs.freedesktop.org/show_bug.cgi?id=100158
Diffstat (limited to 'src/mm-port-probe.c')
-rw-r--r-- | src/mm-port-probe.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index f5dc90d2..c6c5897f 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -712,6 +712,11 @@ serial_probe_qcdm (MMPortProbe *self) return G_SOURCE_REMOVE; } + if (mm_kernel_device_has_property (self->priv->port, "ID_MM_TTY_BAUDRATE")) + g_object_set (ctx->serial, + MM_PORT_SERIAL_BAUD, mm_kernel_device_get_property_as_int (self->priv->port, "ID_MM_TTY_BAUDRATE"), + NULL); + /* Try to open the port */ if (!mm_port_serial_open (ctx->serial, &error)) { port_probe_task_return_error (self, @@ -1220,6 +1225,11 @@ serial_open_at (MMPortProbe *self) MM_PORT_SERIAL_AT_SEND_LF, ctx->at_send_lf, NULL); + if (mm_kernel_device_has_property (self->priv->port, "ID_MM_TTY_BAUDRATE")) + g_object_set (ctx->serial, + MM_PORT_SERIAL_BAUD, mm_kernel_device_get_property_as_int (self->priv->port, "ID_MM_TTY_BAUDRATE"), + NULL); + parser = mm_serial_parser_v1_new (); mm_serial_parser_v1_add_filter (parser, serial_parser_filter_cb, |