Merge remote-tracking branch 'cros/upstream' into 'cros/master'
diff --git a/data/org.freedesktop.ModemManager1.conf.polkit b/data/org.freedesktop.ModemManager1.conf.polkit
index 5c96384..d1ea166 100644
--- a/data/org.freedesktop.ModemManager1.conf.polkit
+++ b/data/org.freedesktop.ModemManager1.conf.polkit
@@ -158,7 +158,7 @@
     <!-- Protected by the Device.Control policy rule -->
     <allow send_destination="org.freedesktop.ModemManager1"
            send_interface="org.freedesktop.ModemManager1.Modem.Location"
-           send_member="Enable"/>
+           send_member="Setup"/>
 
     <!-- Protected by the Location policy rule -->
     <allow send_destination="org.freedesktop.ModemManager1"
diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c
index e4adbb3..358b261 100644
--- a/src/mm-bearer-mbim.c
+++ b/src/mm-bearer-mbim.c
@@ -1054,7 +1054,7 @@
 
         mbim_device_command (ctx->device,
                              message,
-                             10,
+                             30,
                              NULL,
                              (GAsyncReadyCallback)disconnect_set_ready,
                              ctx);
diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c
index be6c501..37dd0a2 100644
--- a/src/mm-broadband-modem-mbim.c
+++ b/src/mm-broadband-modem-mbim.c
@@ -553,7 +553,15 @@
         g_simple_async_result_set_op_res_gpointer (ctx->result,
                                                    GUINT_TO_POINTER (unlock_required),
                                                    NULL);
-    } else
+    }
+    /* VZ20M reports an error when SIM-PIN is required... */
+    else if (g_error_matches (error, MBIM_STATUS_ERROR, MBIM_STATUS_ERROR_PIN_REQUIRED)) {
+        g_error_free (error);
+        g_simple_async_result_set_op_res_gpointer (ctx->result,
+                                                   GUINT_TO_POINTER (MBIM_PIN_TYPE_PIN1),
+                                                   NULL);
+    }
+    else
         g_simple_async_result_take_error (ctx->result, error);
 
     if (response)
@@ -1028,7 +1036,7 @@
     message = mbim_message_radio_state_set_new (state, NULL);
     mbim_device_command (device,
                          message,
-                         10,
+                         20,
                          NULL,
                          ready_cb,
                          result);