base-manager: reprobe device on late port additions
There is no guarantee from the kernel that the ports of a given device will all be notified via uevents on a timely manner. We assume it, but we cannot be completely sure. There are two main scenarios that we have been seen when the ports of a device are not notified close enough to each other: * A modem object is created, but not with the desired control protocol. E.g. a QMI or MBIM modem would end up controlled via AT commands if the cdc-wdm port was added too late. * A modem object is not created at all, and the device object was removed completely. E.g. when the net port addition in a QMI or MBIM modem happens too late. In order to avoid those cases, we will now fully reprobe all the ports of the device from scratch whenever a new valid port addition happens after the initial probing of the device has already been completed. If a modem object is available at that time, we will remove it right away.
This commit is contained in:
@@ -67,6 +67,14 @@ gboolean mm_plugin_manager_device_support_check_cancel (MMPluginManager
|
||||
MMPlugin * mm_plugin_manager_device_support_check_finish (MMPluginManager *self,
|
||||
GAsyncResult *res,
|
||||
GError **error);
|
||||
|
||||
gboolean mm_plugin_manager_device_support_check_ongoing (MMPluginManager *self,
|
||||
MMDevice *device);
|
||||
|
||||
gboolean mm_plugin_manager_device_support_check_add_port (MMPluginManager *self,
|
||||
MMDevice *device,
|
||||
MMKernelDevice *port);
|
||||
|
||||
MMPlugin *mm_plugin_manager_peek_plugin (MMPluginManager *self,
|
||||
const gchar *plugin_name);
|
||||
const gchar **mm_plugin_manager_get_subsystems (MMPluginManager *self);
|
||||
|
||||
Reference in New Issue
Block a user