serial: allow plugins to specify probe-time send_delay
Let modems we know don't suck use a zero send-delay at probe time, which greatly reduces time required to probe AT-compatible ports.
This commit is contained in:
@@ -94,7 +94,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -97,7 +97,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -90,7 +90,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -88,7 +88,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 0, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -214,7 +214,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
} else {
|
} else {
|
||||||
HuaweiSupportsInfo *info;
|
HuaweiSupportsInfo *info;
|
||||||
|
@@ -85,7 +85,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -97,7 +97,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -116,7 +116,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 0, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -90,7 +90,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -93,7 +93,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -99,7 +99,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -89,7 +89,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 0, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -90,7 +90,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 0, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -122,7 +122,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -97,7 +97,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -98,7 +98,7 @@ supports_port (MMPluginBase *base,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Otherwise kick off a probe */
|
/* Otherwise kick off a probe */
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -115,7 +115,7 @@ supports_port (MMPluginBase *base,
|
|||||||
*/
|
*/
|
||||||
mm_plugin_base_supports_task_set_custom_init_command (task, "ATE0+CPMS?", 3, 4, FALSE, NULL, NULL);
|
mm_plugin_base_supports_task_set_custom_init_command (task, "ATE0+CPMS?", 3, 4, FALSE, NULL, NULL);
|
||||||
|
|
||||||
if (mm_plugin_base_probe_port (base, task, NULL))
|
if (mm_plugin_base_probe_port (base, task, 100000, NULL))
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
return MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS;
|
||||||
|
|
||||||
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
return MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
@@ -845,6 +845,7 @@ try_open (gpointer user_data)
|
|||||||
gboolean
|
gboolean
|
||||||
mm_plugin_base_probe_port (MMPluginBase *self,
|
mm_plugin_base_probe_port (MMPluginBase *self,
|
||||||
MMPluginBaseSupportsTask *task,
|
MMPluginBaseSupportsTask *task,
|
||||||
|
guint64 send_delay_us,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
MMPluginBaseSupportsTaskPrivate *task_priv = MM_PLUGIN_BASE_SUPPORTS_TASK_GET_PRIVATE (task);
|
MMPluginBaseSupportsTaskPrivate *task_priv = MM_PLUGIN_BASE_SUPPORTS_TASK_GET_PRIVATE (task);
|
||||||
@@ -869,7 +870,7 @@ mm_plugin_base_probe_port (MMPluginBase *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
g_object_set (serial,
|
g_object_set (serial,
|
||||||
MM_SERIAL_PORT_SEND_DELAY, (guint64) 100000,
|
MM_SERIAL_PORT_SEND_DELAY, send_delay_us,
|
||||||
MM_PORT_CARRIER_DETECT, FALSE,
|
MM_PORT_CARRIER_DETECT, FALSE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
@@ -138,6 +138,7 @@ gboolean mm_plugin_base_get_device_ids (MMPluginBase *self,
|
|||||||
|
|
||||||
gboolean mm_plugin_base_probe_port (MMPluginBase *self,
|
gboolean mm_plugin_base_probe_port (MMPluginBase *self,
|
||||||
MMPluginBaseSupportsTask *task,
|
MMPluginBaseSupportsTask *task,
|
||||||
|
guint64 send_delay_us,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
/* Returns TRUE if the port was previously probed, FALSE if not */
|
/* Returns TRUE if the port was previously probed, FALSE if not */
|
||||||
|
Reference in New Issue
Block a user