All of lore.kernel.org
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCH 1/3] Support Telit cdc acm device
Date: Mon, 17 Dec 2012 10:34:26 -0600	[thread overview]
Message-ID: <50CF4992.4080209@gmail.com> (raw)
In-Reply-To: <1355761338-9081-2-git-send-email-mingli@southpole.se>

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

Hi Mingli,

On 12/17/2012 10:22 AM, Mingli Wu wrote:
> This patch is for Telit HE910 modem. Configure modem and aux ports
> of ACM devices. some code of this patch was found on the Internet.
> ---
>   include/modem.h  |    3 +++
>   plugins/telit.c  |   24 +++++++++++++++++++++++-
>   plugins/udevng.c |   30 +++++++++++++++++++++++++++++-
>   src/modem.c      |   11 +++++++++++
>   4 files changed, 66 insertions(+), 2 deletions(-)

You need to break up these patches, see our patch submission guidelines 
in HACKING document, 'Submitting Patches' section.  Also please review 
the coding style guidelines in doc/coding-style.txt.

>
> diff --git a/include/modem.h b/include/modem.h
> index 6e08275..303bc24 100644
> --- a/include/modem.h
> +++ b/include/modem.h
> @@ -112,6 +112,9 @@ int ofono_modem_set_boolean(struct ofono_modem *modem,
>   ofono_bool_t ofono_modem_get_boolean(struct ofono_modem *modem,
>   					const char *key);
>
> +void ofono_modem_set_modem_info(struct ofono_modem *omodem, void *modem_info);
> +void *ofono_modem_get_modem_info(struct ofono_modem *omodem);
> +

This is not required, ofono_modem_set_string, set_integer, set_boolean 
are already enough.

>   int ofono_modem_driver_register(const struct ofono_modem_driver *);
>   void ofono_modem_driver_unregister(const struct ofono_modem_driver *);
>
> diff --git a/plugins/telit.c b/plugins/telit.c
> index a0f7deb..aaf2a9d 100644
> --- a/plugins/telit.c
> +++ b/plugins/telit.c
> @@ -180,6 +180,7 @@ static gboolean hw_event_cb(GIOChannel *hw_io, GIOCondition condition,
>   	return FALSE;
>   }
>
> +extern gboolean udevng_match_modem_id(struct ofono_modem *modem, char *vendorid, char *productid);
>   static GAtChat *open_device(struct ofono_modem *modem,
>   				const char *key, char *debug)
>   {
> @@ -187,6 +188,7 @@ static GAtChat *open_device(struct ofono_modem *modem,
>   	GAtSyntax *syntax;
>   	GIOChannel *channel;
>   	GAtChat *chat;
> +	GHashTable *options = NULL;
>
>   	device = ofono_modem_get_string(modem, key);
>   	if (device == NULL)
> @@ -194,7 +196,27 @@ static GAtChat *open_device(struct ofono_modem *modem,
>
>   	DBG("%s %s", key, device);
>
> -	channel = g_at_tty_open(device, NULL);
> +	/* This is for Telit HE910. */
> +	if(udevng_match_modem_id(modem, "1bc7", "0021")){
> +		options = g_hash_table_new(g_str_hash, g_str_equal);
> +
> +		if (options == NULL)
> +			return NULL;
> +
> +		g_hash_table_insert(options, "Baud", "115200");
> +		g_hash_table_insert(options, "Parity", "none");
> +		g_hash_table_insert(options, "StopBits", "1");
> +		g_hash_table_insert(options, "DataBits", "8");
> +		g_hash_table_insert(options, "XonXoff", "off");
> +		g_hash_table_insert(options, "Local", "on");
> +		g_hash_table_insert(options, "RtsCts", "on");
> +	}
> +
> +	channel = g_at_tty_open(device, options);
> +	if(options){
> +		g_hash_table_destroy(options);
> +	}
> +

This was already taken care of by the patch from Christopher that was 
applied today.

>   	if (channel == NULL)
>   		return NULL;
>
> diff --git a/plugins/udevng.c b/plugins/udevng.c
> index afb02ca..b7cdef6 100644
> --- a/plugins/udevng.c
> +++ b/plugins/udevng.c
> @@ -57,6 +57,20 @@ struct device_info {
>   	char *sysattr;
>   };
>
> +
> +gboolean udevng_match_modem_id(struct ofono_modem *modem, char *vendorid, char *productid)
> +{
> +	struct modem_info *modem_info = ofono_modem_get_modem_info(modem);
> +
> +	if(!modem_info){
> +		return FALSE;
> +	}
> +	if (g_strcmp0(modem_info->vendor, vendorid) || g_strcmp0(modem_info->model, productid)){
> +		return FALSE;
> +	}
> +	return TRUE;
> +}
> +
>   static gboolean setup_isi(struct modem_info *modem)
>   {
>   	const char *node = NULL;
> @@ -620,6 +634,17 @@ static gboolean setup_telit(struct modem_info *modem)
>   			else if (g_strcmp0(info->number, "03") == 0)
>   				aux = info->devnode;
>   		}
> +		/* This for Telit HE910 */
> +		else if (!g_strcmp0(modem->vendor, "1bc7")&&  !g_strcmp0(modem->model, "0021")){
> +			if (g_strcmp0(info->interface, "2/2/1") == 0) {
> +				if (g_strcmp0(info->number, "00") == 0)
> +					mdm = info->devnode;
> +				else if (g_strcmp0(info->number, "02") == 0)
> +					diag = info->devnode;
> +				else if (g_strcmp0(info->number, "06") == 0)
> +					aux = info->devnode;
> +			}
> +		}
>   	}
>
>   	if (aux == NULL || mdm == NULL)
> @@ -629,7 +654,8 @@ static gboolean setup_telit(struct modem_info *modem)
>
>   	ofono_modem_set_string(modem->modem, "Modem", mdm);
>   	ofono_modem_set_string(modem->modem, "Aux", aux);
> -	ofono_modem_set_string(modem->modem, "GPS", gps);
> +	//ofono_modem_set_string(modem->modem, "GPS", gps);
> +	ofono_modem_set_string(modem->modem, "Diag", diag);

Please do not leave dead code in your patch submissions.

>
>   	return TRUE;
>   }
> @@ -988,6 +1014,7 @@ static struct {
>   	{ "simcom",	"option",	"05c6", "9000"	},
>   	{ "telit",	"usbserial",	"1bc7"		},
>   	{ "telit",	"option",	"1bc7"		},
> +	{ "telit",      "cdc_acm",      "1bc7", "0021"  },
>   	{ "nokia",	"option",	"0421", "060e"	},
>   	{ "nokia",	"option",	"0421", "0623"	},
>   	{ "samsung",	"option",	"04e8", "6889"	},
> @@ -1113,6 +1140,7 @@ static gboolean create_modem(gpointer key, gpointer value, gpointer user_data)
>   	if (modem->modem == NULL)
>   		return TRUE;
>
> +	ofono_modem_set_modem_info(modem->modem, modem);
>   	for (i = 0; driver_list[i].name; i++) {
>   		if (g_str_equal(driver_list[i].name, modem->driver) == FALSE)
>   			continue;
> diff --git a/src/modem.c b/src/modem.c
> index 3c7c80a..207dce8 100644
> --- a/src/modem.c
> +++ b/src/modem.c
> @@ -87,6 +87,7 @@ struct ofono_modem {
>   	void			*driver_data;
>   	char			*driver_type;
>   	char			*name;
> +	void                    *modem_info;
>   };
>
>   struct ofono_devinfo {
> @@ -119,6 +120,16 @@ struct modem_property {
>   	void *value;
>   };
>
> +void ofono_modem_set_modem_info(struct ofono_modem *omodem, void *modem_info)
> +{
> +	omodem->modem_info = modem_info;
> +}
> +
> +void *ofono_modem_get_modem_info(struct ofono_modem *omodem)
> +{
> +	return omodem->modem_info;
> +}
> +
>   static const char *modem_type_to_string(enum ofono_modem_type type)
>   {
>   	switch (type) {

Regards,
-Denis

  reply	other threads:[~2012-12-17 16:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-17 16:22 [PATCH 0/3] Telit HE910 Mingli Wu
2012-12-17 16:22 ` [PATCH 1/3] Support Telit cdc acm device Mingli Wu
2012-12-17 16:34   ` Denis Kenzior [this message]
2012-12-17 18:39     ` Ming Li Wu
2012-12-17 16:22 ` [PATCH 2/3] Drop checking whether +CMER is supported Mingli Wu
2012-12-17 16:27   ` Denis Kenzior
2012-12-18 10:08   ` Christopher Vogl
2012-12-17 16:22 ` [PATCH 3/3] Delay 10 seconds between CFUN=4 and CFUN=1 Mingli Wu

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=50CF4992.4080209@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.