diff options
-rw-r--r-- | src/mm-broadband-bearer.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c index f300baa4..61dedbd9 100644 --- a/src/mm-broadband-bearer.c +++ b/src/mm-broadband-bearer.c @@ -1304,6 +1304,7 @@ disconnect_cdma (MMBroadbandBearer *self, gpointer user_data) { DetailedDisconnectContext *ctx; + GError *error = NULL; g_assert (primary != NULL); @@ -1318,6 +1319,13 @@ disconnect_cdma (MMBroadbandBearer *self, callback, user_data); + /* Fully reopen the port before flashing */ + mm_dbg ("Reopening primary port..."); + if (!mm_serial_port_reopen (MM_SERIAL_PORT (ctx->primary), &error)) { + mm_warn ("Disconnecting CDMA: %s", error->message); + g_error_free (error); + } + /* Just flash the data port */ mm_serial_port_flash (MM_SERIAL_PORT (ctx->data), 1000, @@ -1404,6 +1412,15 @@ data_flash_3gpp_ready (MMSerialPort *data, static void data_flash_3gpp (DetailedDisconnectContext *ctx) { + GError *error = NULL; + + /* Fully reopen the port before flashing */ + mm_dbg ("Reopening data port..."); + if (!mm_serial_port_reopen (MM_SERIAL_PORT (ctx->data), &error)) { + mm_warn ("Disconnecting 3GPP: %s", error->message); + g_error_free (error); + } + mm_dbg ("Flash data port..."); mm_serial_port_flash (MM_SERIAL_PORT (ctx->data), 1000, |