From c4b5293669f5b956e47a8b0fbfe70d179c0ef43f Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Wed, 19 Sep 2012 10:18:18 +0200 Subject: device: if failed to get VID/PID in first port, try the next one Don't rely only in the first grabbed port to get VID/PID. Some modems, e.g. Huawei E367, won't report a proper VID in the cdc-wdm port, which is the first one probed. --- src/mm-device.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/mm-device.c b/src/mm-device.c index 83b23867..d7ff1fb0 100644 --- a/src/mm-device.c +++ b/src/mm-device.c @@ -267,8 +267,10 @@ mm_device_grab_port (MMDevice *self, if (mm_device_owns_port (self, udev_port)) return; - /* Get the vendor/product IDs out of the first port grabbed */ - if (!self->priv->port_probes) { + /* Get the vendor/product IDs out of the first one that gives us + * some valid value (it seems we may get NULL reported for VID in QMI + * ports, e.g. Huawei E367) */ + if (!self->priv->vendor && !self->priv->product) { if (!get_device_ids (udev_port, &self->priv->vendor, &self->priv->product)) { -- cgit v1.2.3-70-g09d2