[PATCH] altair-lte: explicitly use primary port for connection/disconnection sequence

Aleksander Morgado aleksander at aleksander.es
Mon Jan 6 23:54:53 PST 2014


On 06/01/14 20:27, Ben Chan wrote:
> The Altair LTE modem only uses its primary AT port for AT commands.
> Instead of referencing any existing secondary port, this patch changes
> MMBroadbandBearerAltairLte to explicitly use the primary port during the
> connection and disconnection sequence.
> ---

Pushed, thanks.

>  plugins/altair/mm-broadband-bearer-altair-lte.c | 64 ++++++++++++-------------
>  1 file changed, 32 insertions(+), 32 deletions(-)
> 
> diff --git a/plugins/altair/mm-broadband-bearer-altair-lte.c b/plugins/altair/mm-broadband-bearer-altair-lte.c
> index d04b272..f1ba73d 100644
> --- a/plugins/altair/mm-broadband-bearer-altair-lte.c
> +++ b/plugins/altair/mm-broadband-bearer-altair-lte.c
> @@ -110,7 +110,7 @@ connect_3gpp_connect_ready (MMBaseModem *modem,
>      GError *error = NULL;
>      MMBearerIpConfig *config;
>  
> -    result = mm_base_modem_at_command_finish (modem, res, &error);
> +    result = mm_base_modem_at_command_full_finish (modem, res, &error);
>      if (!result) {
>          mm_warn ("connect failed: %s", error->message);
>          g_simple_async_result_take_error (ctx->result, error);
> @@ -145,7 +145,7 @@ connect_3gpp_apnsettings_ready (MMBaseModem *modem,
>      const gchar *result;
>      GError *error = NULL;
>  
> -    result = mm_base_modem_at_command_finish (modem, res, &error);
> +    result = mm_base_modem_at_command_full_finish (modem, res, &error);
>      if (!result) {
>          mm_warn ("setting APN failed: %s", error->message);
>          g_simple_async_result_take_error (ctx->result, error);
> @@ -154,13 +154,15 @@ connect_3gpp_apnsettings_ready (MMBaseModem *modem,
>      }
>  
>      mm_dbg ("APN set - connecting bearer");
> -    mm_base_modem_at_command (
> -        ctx->modem,
> -        "%DPDNACT=1",
> -        20, /* timeout */
> -        FALSE, /* allow_cached */
> -        (GAsyncReadyCallback)connect_3gpp_connect_ready, /* callback */
> -        ctx); /* user_data */
> +    mm_base_modem_at_command_full (ctx->modem,
> +                                   ctx->primary,
> +                                   "%DPDNACT=1",
> +                                   20, /* timeout */
> +                                   FALSE, /* allow_cached */
> +                                   FALSE, /* is_raw */
> +                                   ctx->cancellable,
> +                                   (GAsyncReadyCallback)connect_3gpp_connect_ready,
> +                                   ctx); /* user_data */
>  }
>  
>  static void
> @@ -217,13 +219,15 @@ connect_3gpp (MMBroadbandBearer *self,
>      apn = mm_at_serial_port_quote_string (mm_bearer_properties_get_apn (config));
>      command = g_strdup_printf ("%%APNN=%s",apn);
>      g_free (apn);
> -    mm_base_modem_at_command (
> -        ctx->modem,
> -        command,
> -        10, /* timeout */
> -        FALSE, /* allow_cached */
> -        (GAsyncReadyCallback)connect_3gpp_apnsettings_ready,
> -        ctx); /* user_data */
> +    mm_base_modem_at_command_full (ctx->modem,
> +                                   ctx->primary,
> +                                   command,
> +                                   10, /* timeout */
> +                                   FALSE, /* allow_cached */
> +                                   FALSE, /* is_raw */
> +                                   ctx->cancellable,
> +                                   (GAsyncReadyCallback)connect_3gpp_apnsettings_ready,
> +                                   ctx); /* user_data */
>      g_free (command);
>  }
>  
> @@ -234,7 +238,6 @@ typedef struct {
>      MMBroadbandBearer *self;
>      MMBaseModem *modem;
>      MMAtSerialPort *primary;
> -    MMAtSerialPort *secondary;
>      MMPort *data;
>      GSimpleAsyncResult *result;
>  } DetailedDisconnectContext;
> @@ -243,7 +246,6 @@ static DetailedDisconnectContext *
>  detailed_disconnect_context_new (MMBroadbandBearer *self,
>                                   MMBroadbandModem *modem,
>                                   MMAtSerialPort *primary,
> -                                 MMAtSerialPort *secondary,
>                                   MMPort *data,
>                                   GAsyncReadyCallback callback,
>                                   gpointer user_data)
> @@ -254,7 +256,6 @@ detailed_disconnect_context_new (MMBroadbandBearer *self,
>      ctx->self = g_object_ref (self);
>      ctx->modem = MM_BASE_MODEM (g_object_ref (modem));
>      ctx->primary = g_object_ref (primary);
> -    ctx->secondary = (secondary ? g_object_ref (secondary) : NULL);
>      ctx->data = g_object_ref (data);
>      ctx->result = g_simple_async_result_new (G_OBJECT (self),
>                                               callback,
> @@ -277,8 +278,6 @@ detailed_disconnect_context_complete_and_free (DetailedDisconnectContext *ctx)
>      g_simple_async_result_complete_in_idle (ctx->result);
>      g_object_unref (ctx->result);
>      g_object_unref (ctx->data);
> -    if (ctx->secondary)
> -        g_object_unref (ctx->secondary);
>      g_object_unref (ctx->primary);
>      g_object_unref (ctx->modem);
>      g_object_unref (ctx->self);
> @@ -294,7 +293,7 @@ disconnect_3gpp_check_status (MMBaseModem *modem,
>      const gchar *result;
>      GError *error = NULL;
>  
> -    result = mm_base_modem_at_command_finish (modem, res, &error);
> +    result = mm_base_modem_at_command_full_finish (modem, res, &error);
>      if (!result) {
>          mm_warn ("Disconnect failed: %s", error->message);
>          g_simple_async_result_take_error (ctx->result, error);
> @@ -334,16 +333,17 @@ disconnect_3gpp (MMBroadbandBearer *self,
>          return;
>      }
>  
> -    ctx = detailed_disconnect_context_new (self, modem, primary, secondary,
> -                                           data, callback, user_data);
> -
> -    mm_base_modem_at_command (
> -        ctx->modem,
> -        "%DPDNACT=0",
> -        20, /* timeout */
> -        FALSE, /* allow_cached */
> -        (GAsyncReadyCallback)disconnect_3gpp_check_status,
> -        ctx); /* user_data */
> +    ctx = detailed_disconnect_context_new (self, modem, primary, data, callback, user_data);
> +
> +    mm_base_modem_at_command_full (ctx->modem,
> +                                   ctx->primary,
> +                                   "%DPDNACT=0",
> +                                   20, /* timeout */
> +                                   FALSE, /* allow_cached */
> +                                   FALSE, /* is_raw */
> +                                   NULL, /* cancellable */
> +                                   (GAsyncReadyCallback)disconnect_3gpp_check_status,
> +                                   ctx); /* user_data */
>  }
>  
>  /*****************************************************************************/
> 


-- 
Aleksander Morgado
http://aleksander.es


More information about the ModemManager-devel mailing list