From f8a375b1fa3c9d5f8b3f0a7f39d0576baa01436c Mon Sep 17 00:00:00 2001 From: Ben Chan Date: Tue, 3 Oct 2017 22:30:49 -0700 Subject: [PATCH] broadband-modem-mbim: use device manufacturer information when available MBIM modems can be supported by the 'generic' plugin. Instead of treating the plugin name (i.e. Generic) as the manufacturer, it's more useful to use the manufacturer information reported by the underlying USB device if that is available. --- src/mm-broadband-modem-mbim.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 79f5998e..fc13911d 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -235,9 +235,17 @@ modem_load_manufacturer (MMIfaceModem *self, gpointer user_data) { GTask *task; - gchar *manufacturer; + gchar *manufacturer = NULL; + MMPortMbim *port; - manufacturer = g_strdup (mm_base_modem_get_plugin (MM_BASE_MODEM (self))); + port = mm_base_modem_peek_port_mbim (MM_BASE_MODEM (self)); + if (port) { + manufacturer = g_strdup (mm_kernel_device_get_physdev_manufacturer ( + mm_port_peek_kernel_device (MM_PORT (port)))); + } + + if (!manufacturer) + manufacturer = g_strdup (mm_base_modem_get_plugin (MM_BASE_MODEM (self))); task = g_task_new (self, NULL, callback, user_data); g_task_return_pointer (task, manufacturer, g_free);