diff options
author | Aleksander Morgado <aleksander@aleksander.es> | 2013-11-19 20:48:20 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2014-02-13 13:40:58 +0100 |
commit | 070f4938f3ff5425f8c4f18f57e79d935ad05b32 (patch) | |
tree | fc79ee35cf9864551b44a5ced4258cf04554b79f | |
parent | 38ebf7c95b94f065f80c85505e65f102cef733d2 (diff) |
plugin: allow probing non-tty AT ports
-rw-r--r-- | src/mm-plugin.c | 20 | ||||
-rw-r--r-- | src/mm-port-probe.c | 6 |
2 files changed, 15 insertions, 11 deletions
diff --git a/src/mm-plugin.c b/src/mm-plugin.c index 6b33f9a7..a5ddb5db 100644 --- a/src/mm-plugin.c +++ b/src/mm-plugin.c @@ -718,21 +718,27 @@ mm_plugin_supports_port (MMPlugin *self, probe_run_flags |= MM_PORT_PROBE_AT; else if (self->priv->single_at) probe_run_flags |= MM_PORT_PROBE_AT; - if (need_vendor_probing) - probe_run_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_AT_VENDOR); - if (need_product_probing) - probe_run_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_AT_PRODUCT); if (self->priv->qcdm) probe_run_flags |= MM_PORT_PROBE_QCDM; - if (self->priv->icera_probe || self->priv->allowed_icera || self->priv->forbidden_icera) - probe_run_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_AT_ICERA); } else { /* cdc-wdm ports... */ probe_run_flags = MM_PORT_PROBE_NONE; if (self->priv->qmi && find_driver_in_device (device, "qmi_wwan")) probe_run_flags |= MM_PORT_PROBE_QMI; - if (self->priv->mbim && find_driver_in_device (device, "cdc_mbim")) + else if (self->priv->mbim && find_driver_in_device (device, "cdc_mbim")) probe_run_flags |= MM_PORT_PROBE_MBIM; + else + probe_run_flags |= MM_PORT_PROBE_AT; + } + + /* For potential AT ports, check for more things */ + if (probe_run_flags & MM_PORT_PROBE_AT) { + if (need_vendor_probing) + probe_run_flags |= MM_PORT_PROBE_AT_VENDOR; + if (need_product_probing) + probe_run_flags |= MM_PORT_PROBE_AT_PRODUCT; + if (self->priv->icera_probe || self->priv->allowed_icera || self->priv->forbidden_icera) + probe_run_flags |= MM_PORT_PROBE_AT_ICERA; } /* If no explicit probing was required, just request to grab it without probing anything. diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c index 6afd09c8..3d6a0600 100644 --- a/src/mm-port-probe.c +++ b/src/mm-port-probe.c @@ -1177,7 +1177,7 @@ serial_open_at (MMPortProbe *self) g_object_set (task->serial, MM_PORT_SERIAL_SPEW_CONTROL, TRUE, - MM_PORT_SERIAL_SEND_DELAY, task->at_send_delay, + MM_PORT_SERIAL_SEND_DELAY, (subsys == MM_PORT_SUBSYS_TTY ? task->at_send_delay : 0), MM_PORT_SERIAL_AT_REMOVE_ECHO, task->at_remove_echo, MM_PORT_SERIAL_AT_SEND_LF, task->at_send_lf, NULL); @@ -1399,9 +1399,7 @@ mm_port_probe_is_at (MMPortProbe *self) subsys = g_udev_device_get_subsystem (self->priv->port); name = g_udev_device_get_name (self->priv->port); - if (g_str_equal (subsys, "net") || - (g_str_has_prefix (subsys, "usb") && - g_str_has_prefix (name, "cdc-wdm"))) + if (g_str_equal (subsys, "net")) return FALSE; return (self->priv->flags & MM_PORT_PROBE_AT ? |