diff options
Diffstat (limited to 'src/mm-base-modem.c')
-rw-r--r-- | src/mm-base-modem.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index d7c0e477..153e0c4d 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -223,6 +223,7 @@ mm_base_modem_grab_port (MMBaseModem *self, mm_serial_parser_v1_parse, mm_serial_parser_v1_new (), mm_serial_parser_v1_destroy); + /* Prefer plugin-provided flags to the generic ones */ if (at_pflags == MM_PORT_SERIAL_AT_FLAG_NONE) { if (mm_kernel_device_get_property_as_boolean (kernel_device, ID_MM_PORT_TYPE_AT_PRIMARY)) { @@ -236,7 +237,14 @@ mm_base_modem_grab_port (MMBaseModem *self, at_pflags = MM_PORT_SERIAL_AT_FLAG_PPP; } } + + /* The plugin may specify NONE_NO_GENERIC to avoid the generic + * port type hints from being applied. */ + if (at_pflags == MM_PORT_SERIAL_AT_FLAG_NONE_NO_GENERIC) + at_pflags = MM_PORT_SERIAL_AT_FLAG_NONE; + mm_port_serial_at_set_flags (MM_PORT_SERIAL_AT (port), at_pflags); + } else if (ptype == MM_PORT_TYPE_GPS) { /* Raw GPS port */ port = MM_PORT (mm_port_serial_gps_new (name)); |