Merge remote-tracking branch 'cros/upstream' into 'cros/master'
diff --git a/plugins/novatel/mm-broadband-modem-novatel.c b/plugins/novatel/mm-broadband-modem-novatel.c
index 1cbaa50..e4b6b6a 100644
--- a/plugins/novatel/mm-broadband-modem-novatel.c
+++ b/plugins/novatel/mm-broadband-modem-novatel.c
@@ -815,6 +815,8 @@
         quality = get_one_quality (response, "1x RSSI=");
     if (quality < 0)
         quality = get_one_quality (response, "RX1=");
+    if (quality < 0)
+        quality = get_one_quality (response, "HDR RSSI=");
 
     if (quality >= 0)
         g_simple_async_result_set_op_res_gpointer (simple,
diff --git a/src/77-mm-usb-device-blacklist.rules b/src/77-mm-usb-device-blacklist.rules
index 59795b6..7bb894f 100644
--- a/src/77-mm-usb-device-blacklist.rules
+++ b/src/77-mm-usb-device-blacklist.rules
@@ -88,6 +88,12 @@
 ATTRS{idVendor}=="239a", ATTRS{idProduct}=="0004", ENV{ID_MM_DEVICE_IGNORE}="1"
 ATTRS{idVendor}=="239a", ATTRS{idProduct}=="8004", ENV{ID_MM_DEVICE_IGNORE}="1"
 
+# All devices from Pololu Corporation
+# except some possible future products.
+ATTRS{idVendor}=="1ffb", ENV{ID_MM_DEVICE_IGNORE}="1"
+ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="00ad", ENV{ID_MM_DEVICE_IGNORE}="0"
+ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="00ae", ENV{ID_MM_DEVICE_IGNORE}="0"
+
 # Altair U-Boot device
 ATTRS{idVendor}=="0216", ATTRS{idProduct}=="0051", ENV{ID_MM_DEVICE_IGNORE}="1"
 
diff --git a/src/mm-port-probe.c b/src/mm-port-probe.c
index 3d6a060..a0028c7 100644
--- a/src/mm-port-probe.c
+++ b/src/mm-port-probe.c
@@ -509,22 +509,6 @@
                         self);
 }
 
-static gboolean
-mbim_sleep_ready (MMPortProbe *self)
-{
-    PortProbeRunTask *task = self->priv->task;
-
-    task->source_id = 0;
-
-    /* Create a port and try to open it */
-    task->mbim_port = mm_port_mbim_new (g_udev_device_get_name (self->priv->port));
-    mm_port_mbim_open (task->mbim_port,
-                       NULL,
-                       (GAsyncReadyCallback)mbim_port_open_ready,
-                       self);
-    return FALSE;
-}
-
 #endif /* WITH_MBIM */
 
 static void
@@ -537,7 +521,12 @@
             g_udev_device_get_subsystem (self->priv->port),
             g_udev_device_get_name (self->priv->port));
 
-    task->source_id = g_timeout_add_seconds (3, (GSourceFunc)mbim_sleep_ready, self);
+    /* Create a port and try to open it */
+    task->mbim_port = mm_port_mbim_new (g_udev_device_get_name (self->priv->port));
+    mm_port_mbim_open (task->mbim_port,
+                       NULL,
+                       (GAsyncReadyCallback)mbim_port_open_ready,
+                       self);
 #else
     /* If not compiled with MBIM support, just assume we won't have any MBIM port */
     mm_port_probe_set_result_mbim (self, FALSE);