aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r--src/mm-base-modem.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c
index 2fa39b32..cb044419 100644
--- a/src/mm-base-modem.c
+++ b/src/mm-base-modem.c
@@ -151,6 +151,7 @@ mm_base_modem_grab_port (MMBaseModem *self,
gchar *key;
const gchar *subsys;
const gchar *name;
+ const gchar *flow_control_tag;
g_return_val_if_fail (MM_IS_BASE_MODEM (self), FALSE);
g_return_val_if_fail (MM_IS_KERNEL_DEVICE (kernel_device), FALSE);
@@ -246,11 +247,18 @@ mm_base_modem_grab_port (MMBaseModem *self,
G_CALLBACK (serial_port_timed_out_cb),
self);
- /* For serial ports, optionally use a specific baudrate */
+ /* For serial ports, optionally use a specific baudrate and flow control */
if (mm_kernel_device_has_property (kernel_device, "ID_MM_TTY_BAUDRATE"))
g_object_set (port,
MM_PORT_SERIAL_BAUD, mm_kernel_device_get_property_as_int (kernel_device, "ID_MM_TTY_BAUDRATE"),
NULL);
+ flow_control_tag = mm_kernel_device_get_property (kernel_device,
+ "ID_MM_TTY_FLOW_CONTROL");
+ if (flow_control_tag)
+ g_object_set (port,
+ MM_PORT_SERIAL_FLOW_CONTROL,
+ mm_parse_flow_control_tag (flow_control_tag),
+ NULL);
}
/* Net ports... */
else if (g_str_equal (subsys, "net")) {