diff options
author | Dan Williams <dcbw@redhat.com> | 2010-10-22 11:34:55 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2010-10-22 11:34:55 -0500 |
commit | 46106660fe6aae1018f6f6c45281ccef837e78f8 (patch) | |
tree | 574c3949149d3b1b74a9f86c75f88f4d11de12fc /src | |
parent | 0ec4dbcc1aa5fdcfedb74619fab0fc93dc4c2f1d (diff) |
core: print out modem hardware VID/PID and subsystem
Diffstat (limited to 'src')
-rw-r--r-- | src/mm-manager.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/mm-manager.c b/src/mm-manager.c index 1dd19026..0aaac9cf 100644 --- a/src/mm-manager.c +++ b/src/mm-manager.c @@ -248,8 +248,10 @@ check_export_modem (MMManager *self, MMModem *modem) /* No outstanding port tasks, so if the modem is valid we can export it */ if (mm_modem_get_valid (modem)) { - static guint32 id = 0; + static guint32 id = 0, vid = 0, pid = 0; char *path, *data_device = NULL; + GUdevDevice *physdev; + const char *subsys = NULL; path = g_strdup_printf (MM_DBUS_PATH"/Modems/%d", id++); dbus_g_connection_register_g_object (priv->connection, path, G_OBJECT (modem)); @@ -257,10 +259,24 @@ check_export_modem (MMManager *self, MMModem *modem) g_debug ("Exported modem %s as %s", modem_physdev, path); - g_object_get (G_OBJECT (modem), MM_MODEM_DATA_DEVICE, &data_device, NULL); + physdev = g_udev_client_query_by_sysfs_path (priv->udev, modem_physdev); + if (physdev) + subsys = g_udev_device_get_subsystem (physdev); + + g_object_get (G_OBJECT (modem), + MM_MODEM_DATA_DEVICE, &data_device, + MM_MODEM_HW_VID, &vid, + MM_MODEM_HW_PID, &pid, + NULL); + g_debug ("(%s): VID 0x%04X PID 0x%04X (%s)", + path, (vid & 0xFFFF), (pid & 0xFFFF), + subsys ? subsys : "unknown"); g_debug ("(%s): data port is %s", path, data_device); g_free (data_device); + if (physdev) + g_object_unref (physdev); + g_signal_emit (self, signals[DEVICE_ADDED], 0, modem); } |