plugin-base: avoid launching AT probing on new ports if the modem expects only one
If we got an existing modem showing a new port, and the plugin handling that modem said that only one AT port was expected, we shouldn't be AT-probing it any more.
This commit is contained in:
@@ -680,7 +680,7 @@ supports_port (MMPlugin *plugin,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Build flags depending on what probing needed */
|
/* Build flags depending on what probing needed */
|
||||||
probe_run_flags = 0;
|
probe_run_flags = MM_PORT_PROBE_NONE;
|
||||||
if (priv->at)
|
if (priv->at)
|
||||||
probe_run_flags |= MM_PORT_PROBE_AT;
|
probe_run_flags |= MM_PORT_PROBE_AT;
|
||||||
else if (priv->single_at)
|
else if (priv->single_at)
|
||||||
@@ -691,8 +691,24 @@ supports_port (MMPlugin *plugin,
|
|||||||
probe_run_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_AT_PRODUCT);
|
probe_run_flags |= (MM_PORT_PROBE_AT | MM_PORT_PROBE_AT_PRODUCT);
|
||||||
if (priv->qcdm)
|
if (priv->qcdm)
|
||||||
probe_run_flags |= MM_PORT_PROBE_QCDM;
|
probe_run_flags |= MM_PORT_PROBE_QCDM;
|
||||||
|
|
||||||
g_assert (probe_run_flags != MM_PORT_PROBE_NONE);
|
g_assert (probe_run_flags != MM_PORT_PROBE_NONE);
|
||||||
|
|
||||||
|
/* If a modem is already available and the plugin says that only one AT port is
|
||||||
|
* expected, check if we alredy got the single AT port. And if so, we know this
|
||||||
|
* port being probed won't be AT. */
|
||||||
|
if (priv->single_at &&
|
||||||
|
existing &&
|
||||||
|
mm_base_modem_has_at_port (existing)) {
|
||||||
|
mm_dbg ("(%s) not setting up AT probing tasks for (%s,%s): "
|
||||||
|
"modem already has the expected single AT port",
|
||||||
|
priv->name, subsys, name);
|
||||||
|
|
||||||
|
/* Assuming it won't be an AT port. We still run the probe anyway, in
|
||||||
|
* case we need to check for other port types (e.g. QCDM) */
|
||||||
|
mm_port_probe_set_result_at (probe, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
/* Setup async call context */
|
/* Setup async call context */
|
||||||
ctx = g_new (PortProbeRunContext, 1);
|
ctx = g_new (PortProbeRunContext, 1);
|
||||||
ctx->plugin = g_object_ref (self);
|
ctx->plugin = g_object_ref (self);
|
||||||
|
Reference in New Issue
Block a user