All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH] gatmux: add telit specific mux implementation.
Date: Wed, 05 Oct 2016 14:54:58 -0500	[thread overview]
Message-ID: <57F55A92.3020102@gmail.com> (raw)
In-Reply-To: <1475650301-22115-1-git-send-email-a.aubert@overkiz.com>

[-- Attachment #1: Type: text/plain, Size: 3334 bytes --]

Hi Antoine,

On 10/05/2016 01:51 AM, Antoine Aubert wrote:
> quote from telit: Initiator is the station that take the initiative to initialize the multiplexer (i.e. sends the
> SABM command at DLCI 0 ) and the responder is the station that accepts the initialization
> of the multiplexer (i.e. sends the UA response at DLCI 0)
> In Telit implementation module is NEVER an initiator since it is up to controller to send the
> SABM command to DLCI 0
> ---
>   gatchat/gatmux.c | 24 ++++++++++++++++++++++++
>   gatchat/gatmux.h |  2 ++
>   2 files changed, 26 insertions(+)
>
> diff --git a/gatchat/gatmux.c b/gatchat/gatmux.c
> index 9beeece..5785822 100644
> --- a/gatchat/gatmux.c
> +++ b/gatchat/gatmux.c
> @@ -35,6 +35,7 @@
>   #include "ringbuffer.h"
>   #include "gatmux.h"
>   #include "gsm0710.h"
> +#include "drivers/atmodem/vendor.h"

So we can't do this.  gatchat is a separate library and cannot depend on 
non-system headers.  E.g. anything outside of standard #includes or 
gatchat/*.h.

>
>   static const char *cmux_prefix[] = { "+CMUX:", NULL };
>   static const char *none_prefix[] = { NULL };
> @@ -87,6 +88,7 @@ struct _GAtMux {
>   	char buf[MUX_BUFFER_SIZE];		/* Buffer on the main mux */
>   	int buf_used;				/* Bytes of buf being used */
>   	gboolean shutdown;
> +	unsigned int vendor;			/* Specific vendor */
>   };
>
>   struct mux_setup_data {
> @@ -566,6 +568,8 @@ GAtMux *g_at_mux_new(GIOChannel *channel, const GAtMuxDriver *driver)
>   	mux->channel = channel;
>   	g_io_channel_ref(channel);
>
> +	mux->vendor = OFONO_VENDOR_GENERIC;
> +
>   	g_io_channel_set_close_on_unref(channel, TRUE);
>
>   	return mux;
> @@ -669,6 +673,16 @@ gboolean g_at_mux_set_debug(GAtMux *mux, GAtDebugFunc func, gpointer user_data)
>   	return TRUE;
>   }
>
> +gboolean g_at_mux_set_vendor(GAtMux *mux, unsigned int vendor)
> +{
> +	if (mux == NULL)
> +		return FALSE;
> +
> +	mux->vendor = vendor;
> +
> +	return TRUE;
> +}
> +
>   GIOChannel *g_at_mux_create_channel(GAtMux *mux)
>   {
>   	GAtMuxChannel *mux_channel;
> @@ -951,6 +965,16 @@ static gboolean gsm0710_packet(GAtMux *mux, int dlc, guint8 control,
>   		resp[1] = ((len << 1) | 0x01);
>   		memcpy(resp + 2, data, len);
>   		write_frame(mux, 0, GSM0710_DATA, resp, len + 2);
> +
> +		/* In Telit implementation module is NEVER an initiator
> +		 * since it is up to controller to send the SABM command to DLCI 0
> +		 */

Aren't we already sending the SABM command by virtue of using 
GSM0710_OPEN_CHANNEL inside *_open_dlc?

> +		if (mux->vendor == OFONO_VENDOR_TELIT) {
> +			resp[0] = GSM0710_STATUS_SET;
> +			resp[3] = 0x0D;
> +			write_frame(mux, 0, GSM0710_DATA, resp, len + 2);
> +		}
> +

This looks completely unrelated to SABM.  Are you setting RTC/RTR bits?

>   	}
>
>   	return TRUE;
> diff --git a/gatchat/gatmux.h b/gatchat/gatmux.h
> index 4d77c72..ab1962c 100644
> --- a/gatchat/gatmux.h
> +++ b/gatchat/gatmux.h
> @@ -69,6 +69,8 @@ gboolean g_at_mux_set_disconnect_function(GAtMux *mux,
>
>   gboolean g_at_mux_set_debug(GAtMux *mux, GAtDebugFunc func, gpointer user_data);
>
> +gboolean g_at_mux_set_vendor(GAtMux *mux, unsigned int vendor);
> +
>   GIOChannel *g_at_mux_create_channel(GAtMux *mux);
>
>   /*!
>

Regards,
-Denis

      reply	other threads:[~2016-10-05 19:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-05  6:51 [PATCH] gatmux: add telit specific mux implementation Antoine Aubert
2016-10-05 19:54 ` Denis Kenzior [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=57F55A92.3020102@gmail.com \
    --to=denkenz@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.