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:
Dan Williams
2011-04-08 16:19:36 -05:00
parent 7d20acc566
commit ed5aefb3cb
19 changed files with 20 additions and 18 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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);

View File

@@ -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 */