diff options
author | Dan Williams <dcbw@redhat.com> | 2010-10-22 11:06:48 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-10-22 11:06:48 -0500 |
commit | 7ae8ffe21b9e3bb350dac2f2d34d0711b3255d26 (patch) | |
tree | 83ee2518d8e349d383a3d58f4e82cc2666800b3a /plugins/mm-plugin-hso.c | |
parent | 328d2369a9dadfae786e4c524b5ff2fd0d1a9e17 (diff) |
core: use hardware IDs as part of DeviceIdentifier
Pass the device's hardware IDs through modem creation and use them
when calculating the device's identifier. Add a bunch of testcases
for real hardware to ensure we don't break the device ID in the
future unless we really want to.
Diffstat (limited to 'plugins/mm-plugin-hso.c')
-rw-r--r-- | plugins/mm-plugin-hso.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/plugins/mm-plugin-hso.c b/plugins/mm-plugin-hso.c index dc0a8fcb..7b719322 100644 --- a/plugins/mm-plugin-hso.c +++ b/plugins/mm-plugin-hso.c @@ -105,6 +105,7 @@ grab_port (MMPluginBase *base, const char *name, *subsys, *sysfs_path; char *devfile; guint32 caps; + guint16 vendor = 0, product = 0; port = mm_plugin_base_supports_task_get_port (task); g_assert (port); @@ -112,6 +113,11 @@ grab_port (MMPluginBase *base, subsys = g_udev_device_get_subsystem (port); name = g_udev_device_get_name (port); + if (!mm_plugin_base_get_device_ids (base, subsys, name, &vendor, &product)) { + g_set_error (error, 0, 0, "Could not get modem product ID."); + return NULL; + } + devfile = g_strdup (g_udev_device_get_device_file (port)); if (!devfile) { if (!strcmp (subsys, "net")) { @@ -139,7 +145,9 @@ grab_port (MMPluginBase *base, if (!existing) { modem = mm_modem_hso_new (sysfs_path, mm_plugin_base_supports_task_get_driver (task), - mm_plugin_get_name (MM_PLUGIN (base))); + mm_plugin_get_name (MM_PLUGIN (base)), + vendor, + product); if (modem) { if (!mm_modem_grab_port (modem, subsys, name, MM_PORT_TYPE_UNKNOWN, NULL, error)) { g_object_unref (modem); |