aboutsummaryrefslogtreecommitdiff
path: root/src/mm-port-probe.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2017-03-03 23:28:46 +0100
committerAleksander Morgado <aleksander@aleksander.es>2017-03-22 09:40:14 +0100
commit11a26f10668659fb0c043ec9bc88debacce8cab1 (patch)
tree53351ee81ae8e19537583559659f963c58bd7d20 /src/mm-port-probe.c
parent00fb9e98f6003f6b167f7d12a895ec3d1402b027 (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.c10
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,