Update from Qualcomm to support smd devices in Modem Manager
Review URL: http://codereview.chromium.org/661471 (cherry picked from commit 8475eb44b7ea41afa823919b017a39d82b07a5a2) Conflicts: src/mm-plugin-base.c Change-Id: I825886cad62a27acb39dfe74da7028d83adf692a
This commit is contained in:
@@ -48,6 +48,8 @@ G_DEFINE_TYPE_EXTENDED (MMPluginBase, mm_plugin_base, G_TYPE_OBJECT,
|
|||||||
*/
|
*/
|
||||||
static GHashTable *cached_caps = NULL;
|
static GHashTable *cached_caps = NULL;
|
||||||
|
|
||||||
|
/* Virtual port corresponding to the embeded modem */
|
||||||
|
static gchar *virtual_port[] = {"smd0", NULL};
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char *name;
|
char *name;
|
||||||
@@ -1034,6 +1036,7 @@ supports_port (MMPlugin *plugin,
|
|||||||
char *driver = NULL, *key = NULL;
|
char *driver = NULL, *key = NULL;
|
||||||
MMPluginBaseSupportsTask *task;
|
MMPluginBaseSupportsTask *task;
|
||||||
MMPluginSupportsResult result = MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
MMPluginSupportsResult result = MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||||
|
int idx;
|
||||||
|
|
||||||
key = get_key (subsys, name);
|
key = get_key (subsys, name);
|
||||||
task = g_hash_table_lookup (priv->tasks, key);
|
task = g_hash_table_lookup (priv->tasks, key);
|
||||||
@@ -1046,6 +1049,16 @@ supports_port (MMPlugin *plugin,
|
|||||||
if (!port)
|
if (!port)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
// Detect any modems accessible through the list of virtual ports
|
||||||
|
for (idx = 0; virtual_port[idx]; idx++) {
|
||||||
|
if (strcmp(name, virtual_port[idx]))
|
||||||
|
continue;
|
||||||
|
task = supports_task_new (self, port, physdev_path, "virtual", callback, callback_data);
|
||||||
|
g_assert (task);
|
||||||
|
g_hash_table_insert (priv->tasks, g_strdup (key), g_object_ref (task));
|
||||||
|
goto find_plugin;
|
||||||
|
}
|
||||||
|
|
||||||
driver = get_driver_name (port);
|
driver = get_driver_name (port);
|
||||||
if (!driver)
|
if (!driver)
|
||||||
goto out;
|
goto out;
|
||||||
@@ -1054,6 +1067,7 @@ supports_port (MMPlugin *plugin,
|
|||||||
g_assert (task);
|
g_assert (task);
|
||||||
g_hash_table_insert (priv->tasks, g_strdup (key), g_object_ref (task));
|
g_hash_table_insert (priv->tasks, g_strdup (key), g_object_ref (task));
|
||||||
|
|
||||||
|
find_plugin:
|
||||||
result = MM_PLUGIN_BASE_GET_CLASS (self)->supports_port (self, existing, task);
|
result = MM_PLUGIN_BASE_GET_CLASS (self)->supports_port (self, existing, task);
|
||||||
if (result != MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS) {
|
if (result != MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS) {
|
||||||
/* If the plugin doesn't support the port at all, the supports task is
|
/* If the plugin doesn't support the port at all, the supports task is
|
||||||
|
Reference in New Issue
Block a user