All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-06 12:34 [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules Bertrand Aygon
@ 2011-07-06  5:53 ` Denis Kenzior
  2011-07-06 16:21   ` Aygon, Bertrand
  2011-07-06 18:07 ` Marcel Holtmann
  1 sibling, 1 reply; 9+ messages in thread
From: Denis Kenzior @ 2011-07-06  5:53 UTC (permalink / raw)
  To: ofono

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

Hi Bertrand,

On 07/06/2011 07:34 AM, Bertrand Aygon wrote:
> ---
>  Makefile.am         |    3 +
>  plugins/ofono.rules |    9 ++
>  plugins/speedup.c   |  334 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  plugins/udev.c      |   54 ++++++++
>  4 files changed, 400 insertions(+), 0 deletions(-)
>  create mode 100644 plugins/speedup.c
> 

Can you split this up into two patches, one adding the speedup plugin +
Makefile.am changes and one for udev/ofono.rules

> diff --git a/Makefile.am b/Makefile.am
> index dd4fb8f..ffe2e98 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -329,6 +329,9 @@ builtin_sources += plugins/linktop.c
>  builtin_modules += telit
>  builtin_sources += plugins/telit.c
>  
> +builtin_modules += speedup
> +builtin_sources += plugins/speedup.c
> +
>  if BLUETOOTH
>  builtin_modules += bluetooth
>  builtin_sources += plugins/bluetooth.c plugins/bluetooth.h
> diff --git a/plugins/ofono.rules b/plugins/ofono.rules
> index 268b327..3d66723 100644
> --- a/plugins/ofono.rules
> +++ b/plugins/ofono.rules
> @@ -344,6 +344,10 @@ ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1485", ENV{OFONO_IFACE_NUM}=="02", E
>  ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1486", ENV{OFONO_IFACE_NUM}=="00", ENV{OFONO_HUAWEI_TYPE}="Modem"
>  ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1486", ENV{OFONO_IFACE_NUM}=="02", ENV{OFONO_HUAWEI_TYPE}="Pcui"
>  
> +# SpeedUp 9800
> +ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{OFONO_IFACE_NUM}=="01", ENV{OFONO_SPEEDUP_TYPE}="modem"
> +ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{OFONO_IFACE_NUM}=="02", ENV{OFONO_SPEEDUP_TYPE}="aux"
> +
>  LABEL="ofono_tty_end"
>  
>  # ISI/Phonet drivers
> @@ -384,6 +388,11 @@ ATTRS{idVendor}=="19d2", ENV{OFONO_DRIVER}="zte"
>  
>  ATTRS{idVendor}=="19d2", ATTRS{serial}=="1234567890ABCDEF", ENV{ID_SERIAL_SHORT}=""
>  
> +# SpeedUp
> +ATTRS{idVendor}=="1c9e", ENV{OFONO_DRIVER}="speedup"
> +
> +ATTRS{idVendor}=="1c9e", ATTRS{serial}=="1234567890ABCDEF", ENV{ID_SERIAL_SHORT}=""
> +
>  # Option Globetrotter
>  ATTRS{idVendor}=="0af0", ATTRS{idProduct}=="6911", ENV{OFONO_DRIVER}="hso"
>  ATTRS{idVendor}=="0af0", ATTRS{idProduct}=="6971", ENV{OFONO_DRIVER}="hso"
> diff --git a/plugins/speedup.c b/plugins/speedup.c
> new file mode 100644
> index 0000000..23813a5
> --- /dev/null
> +++ b/plugins/speedup.c
> @@ -0,0 +1,334 @@
> +/*
> + *
> + *  oFono - Open Source Telephony
> + *
> + *  Copyright (C) 2008-2010  Intel Corporation. All rights reserved.

Copyright year should be updated accordingly

> + *
> + *  This program is free software; you can redistribute it and/or modify
> + *  it under the terms of the GNU General Public License version 2 as
> + *  published by the Free Software Foundation.
> + *
> + *  This program is distributed in the hope that it will be useful,
> + *  but WITHOUT ANY WARRANTY; without even the implied warranty of
> + *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> + *  GNU General Public License for more details.
> + *
> + *  You should have received a copy of the GNU General Public License
> + *  along with this program; if not, write to the Free Software
> + *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
> + *
> + */
> +
> +#ifdef HAVE_CONFIG_H
> +#include <config.h>
> +#endif
> +
> +#include <stdio.h>
> +#include <errno.h>
> +#include <stdlib.h>
> +
> +#include <glib.h>
> +#include <gatchat.h>
> +#include <gattty.h>
> +
> +#define OFONO_API_SUBJECT_TO_CHANGE
> +#include <ofono/plugin.h>
> +#include <ofono/modem.h>
> +#include <ofono/devinfo.h>
> +#include <ofono/netreg.h>
> +#include <ofono/sim.h>
> +#include <ofono/cbs.h>
> +#include <ofono/sms.h>
> +#include <ofono/ussd.h>
> +#include <ofono/gprs.h>
> +#include <ofono/gprs-context.h>
> +#include <ofono/phonebook.h>
> +#include <ofono/log.h>
> +
> +#include <drivers/atmodem/atutil.h>
> +#include <drivers/atmodem/vendor.h>
> +
> +static const char *none_prefix[] = { NULL };
> +
> +struct speedup_data {
> +	GAtChat *modem;
> +	GAtChat *aux;
> +	struct ofono_gprs *gprs;
> +	struct ofono_gprs_context *gc;
> +};
> +
> +static int speedup_probe(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data;
> +
> +	DBG("%p", modem);
> +
> +	data = g_try_new0(struct speedup_data, 1);
> +	if (data == NULL)
> +		return -ENOMEM;
> +
> +	ofono_modem_set_data(modem, data);
> +
> +	return 0;
> +}
> +
> +static void speedup_remove(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("%p", modem);
> +
> +	ofono_modem_set_data(modem, NULL);
> +
> +	g_at_chat_unref(data->modem);
> +	g_at_chat_unref(data->aux);
> +
> +	g_free(data);
> +}
> +
> +static void speedup_debug(const char *str, void *user_data)
> +{
> +        const char *prefix = user_data;
> +
> +        ofono_info("%s%s", prefix, str);
> +}
> +
> +static GAtChat *open_device(struct ofono_modem *modem,
> +				const char *key, char *debug)
> +{
> +	const char *device;
> +	GAtSyntax *syntax;
> +	GIOChannel *channel;
> +	GAtChat *chat;
> +
> +	device = ofono_modem_get_string(modem, key);
> +	if (device == NULL)
> +		return NULL;
> +
> +	DBG("%s %s", key, device);
> +
> +	channel = g_at_tty_open(device, NULL);
> +	if (channel == NULL)
> +		return NULL;
> +
> +	syntax = g_at_syntax_new_gsm_permissive();
> +	chat = g_at_chat_new(channel, syntax);
> +	g_at_syntax_unref(syntax);
> +	g_io_channel_unref(channel);
> +
> +	if (chat == NULL)
> +		return NULL;
> +
> +	if (getenv("OFONO_AT_DEBUG"))
> +		g_at_chat_set_debug(chat, speedup_debug, debug);
> +
> +	return chat;
> +}
> +
> +static void speedup_disconnect(gpointer user_data)
> +{
> +	struct ofono_modem *modem = user_data;
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("");
> +
> +	ofono_gprs_context_remove(data->gc);
> +
> +	g_at_chat_unref(data->modem);
> +	data->modem = NULL;
> +
> +	data->modem = open_device(modem, "Modem", "Modem: ");
> +	if (data->modem == NULL)
> +		return;
> +
> +	g_at_chat_set_disconnect_function(data->modem,
> +						speedup_disconnect, modem);
> +
> +	ofono_info("Reopened GPRS context channel");
> +
> +	data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
> +
> +	if (data->gprs && data->gc)
> +		ofono_gprs_add_context(data->gprs, data->gc);
> +}
> +
> +static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
> +{
> +	struct ofono_modem *modem = user_data;
> +
> +	DBG("");
> +
> +	ofono_modem_set_powered(modem, ok);
> +}
> +
> +static int speedup_enable(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("%p", modem);
> +
> +	data->modem = open_device(modem, "Modem", "Modem: ");
> +	if (data->modem == NULL)
> +		return -EINVAL;
> +
> +	g_at_chat_set_disconnect_function(data->modem,
> +						speedup_disconnect, modem);
> +
> +	data->aux = open_device(modem, "Aux", "Aux: ");
> +	if (data->aux == NULL) {
> +		g_at_chat_unref(data->modem);
> +		data->modem = NULL;
> +		return -EIO;
> +	}
> +
> +	g_at_chat_send(data->aux, "ATE0 +CMEE=1", none_prefix,
> +						NULL, NULL, NULL);
> +
> +	g_at_chat_send(data->aux, "AT+CFUN=1", none_prefix,
> +					cfun_enable, modem, NULL);
> +
> +	return -EINPROGRESS;
> +}
> +
> +static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
> +{
> +	struct ofono_modem *modem = user_data;
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("");
> +
> +	g_at_chat_unref(data->aux);
> +	data->aux = NULL;
> +
> +	if (ok)
> +		ofono_modem_set_powered(modem, FALSE);
> +}
> +
> +static int speedup_disable(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("%p", modem);
> +
> +	if (data->modem) {
> +		g_at_chat_cancel_all(data->modem);
> +		g_at_chat_unregister_all(data->modem);
> +		g_at_chat_unref(data->modem);
> +		data->modem = NULL;
> +	}
> +
> +	if (data->aux == NULL)
> +		return 0;
> +
> +	g_at_chat_cancel_all(data->aux);
> +	g_at_chat_unregister_all(data->aux);
> +	g_at_chat_send(data->aux, "AT+CFUN=0", none_prefix,
> +					cfun_disable, modem, NULL);
> +
> +	return -EINPROGRESS;
> +}
> +
> +static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
> +{
> +	struct cb_data *cbd = user_data;
> +	ofono_modem_online_cb_t cb = cbd->cb;
> +
> +	if (ok)
> +		CALLBACK_WITH_SUCCESS(cb, cbd->data);
> +	else
> +		CALLBACK_WITH_FAILURE(cb, cbd->data);

Please avoid this construct when possible, it is better to use
at_util_decode_error here

> +}
> +
> +static void speedup_set_online(struct ofono_modem *modem, ofono_bool_t online,
> +				ofono_modem_online_cb_t cb, void *user_data)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +	GAtChat *chat = data->aux;
> +	struct cb_data *cbd = cb_data_new(cb, user_data);
> +	char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
> +
> +	DBG("modem %p %s", modem, online ? "online" : "offline");
> +
> +	if (chat == NULL)
> +		goto error;
> +
> +	if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
> +		return;
> +
> +error:
> +	g_free(cbd);
> +
> +	CALLBACK_WITH_FAILURE(cb, cbd->data);
> +}
> +
> +static void speedup_pre_sim(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +	struct ofono_sim *sim;
> +
> +	DBG("%p", modem);
> +
> +	ofono_devinfo_create(modem, 0, "atmodem", data->aux);
> +	sim = ofono_sim_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
> +				"atmodem", data->aux);
> +
> +	if (sim)
> +		ofono_sim_inserted_notify(sim, TRUE);
> +}
> +
> +static void speedup_post_sim(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("%p", modem);
> +
> +	ofono_phonebook_create(modem, 0, "atmodem", data->aux);
> +
> +	ofono_sms_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
> +					"atmodem", data->aux);
> +}
> +
> +static void speedup_post_online(struct ofono_modem *modem)
> +{
> +	struct speedup_data *data = ofono_modem_get_data(modem);
> +
> +	DBG("%p", modem);
> +
> +	ofono_netreg_create(modem, OFONO_VENDOR_ZTE, "atmodem", data->aux);
> +
> +	ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
> +					"atmodem", data->aux);
> +	ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
> +					"atmodem", data->aux);
> +	data->gprs = ofono_gprs_create(modem, 0, "atmodem", data->aux);
> +
> +	data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
> +
> +	if (data->gprs && data->gc)
> +		ofono_gprs_add_context(data->gprs, data->gc);

Please create gprs and gc in post_sim, not post_online.  Doing so in
post_online will lead to quite a bit of problems.

> +}
> +
> +static struct ofono_modem_driver speedup_driver = {
> +	.name		= "speedup",
> +	.probe		= speedup_probe,
> +	.remove		= speedup_remove,
> +	.enable		= speedup_enable,
> +	.disable	= speedup_disable,
> +	.set_online     = speedup_set_online,
> +	.pre_sim	= speedup_pre_sim,
> +	.post_sim	= speedup_post_sim,
> +	.post_online    = speedup_post_online,
> +};
> +
> +static int speedup_init(void)
> +{
> +	return ofono_modem_driver_register(&speedup_driver);
> +}
> +
> +static void speedup_exit(void)
> +{
> +	ofono_modem_driver_unregister(&speedup_driver);
> +}
> +
> +OFONO_PLUGIN_DEFINE(speedup, "SpeedUp modem driver", VERSION,
> +		OFONO_PLUGIN_PRIORITY_DEFAULT, speedup_init, speedup_exit)
> diff --git a/plugins/udev.c b/plugins/udev.c
> index 0234fc0..27f27bc 100644
> --- a/plugins/udev.c
> +++ b/plugins/udev.c
> @@ -587,6 +587,58 @@ static void add_linktop(struct ofono_modem *modem,
>  	}
>  }
>  
> +static void add_speedup(struct ofono_modem *modem,
> +					struct udev_device *udev_device)
> +{
> +	struct udev_list_entry *entry;
> +	const char *devnode, *type;
> +
> +	int ppp, aux;
> +
> +	DBG("modem %p", modem);
> +
> +	ppp = ofono_modem_get_integer(modem, "ModemRegistered");
> +	aux = ofono_modem_get_integer(modem, "AuxRegistered");
> +
> +	if (ppp && aux)
> +		return;
> +
> +	entry = udev_device_get_properties_list_entry(udev_device);
> +	while (entry) {
> +		const char *name = udev_list_entry_get_name(entry);
> +		type = udev_list_entry_get_value(entry);
> +
> +		if (g_str_equal(name, "OFONO_SPEEDUP_TYPE") != TRUE) {
> +			entry = udev_list_entry_get_next(entry);
> +			continue;
> +		}
> +
> +		if (g_str_equal(type, "modem") == TRUE) {
> +			if (ppp != 0)
> +				return;
> +
> +			devnode = udev_device_get_devnode(udev_device);
> +			ofono_modem_set_string(modem, "Modem", devnode);
> +			ppp = 1;
> +			ofono_modem_set_integer(modem, "ModemRegistered", ppp);
> +		} else if (g_str_equal(type, "aux") == TRUE) {
> +			if (aux != 0)
> +				return;
> +
> +			devnode = udev_device_get_devnode(udev_device);
> +			ofono_modem_set_string(modem, "Aux", devnode);
> +
> +			aux = 1;
> +			ofono_modem_set_integer(modem, "AuxRegistered", aux);
> +		}
> +
> +		break;
> +	}
> +
> +	if (ppp && aux)
> +		ofono_modem_register(modem);
> +}
> +
>  static void add_modem(struct udev_device *udev_device)
>  {
>  	struct ofono_modem *modem;
> @@ -685,6 +737,8 @@ done:
>  		add_nokiacdma(modem, udev_device);
>          else if (g_strcmp0(driver, "linktop") == 0)
>  		add_linktop(modem, udev_device);
> +        else if (g_strcmp0(driver, "speedup") == 0)
> +		add_speedup(modem, udev_device);
>  }
>  
>  static gboolean devpath_remove(gpointer key, gpointer value, gpointer user_data)

Regards,
-Denis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-06 16:21   ` Aygon, Bertrand
@ 2011-07-06  5:56     ` Denis Kenzior
  0 siblings, 0 replies; 9+ messages in thread
From: Denis Kenzior @ 2011-07-06  5:56 UTC (permalink / raw)
  To: ofono

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

Hi Bertrand,

On 07/06/2011 11:21 AM, Aygon, Bertrand wrote:
> Hi Denis,
> 
> Thanks for those comment, I will apply.
> 
> One point, the speedup.c is a copy of zte.c.
> 
> Do you want me to apply also for zte.c?

Please do.

Regards,
-Denis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
@ 2011-07-06 12:34 Bertrand Aygon
  2011-07-06  5:53 ` Denis Kenzior
  2011-07-06 18:07 ` Marcel Holtmann
  0 siblings, 2 replies; 9+ messages in thread
From: Bertrand Aygon @ 2011-07-06 12:34 UTC (permalink / raw)
  To: ofono

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

---
 Makefile.am         |    3 +
 plugins/ofono.rules |    9 ++
 plugins/speedup.c   |  334 +++++++++++++++++++++++++++++++++++++++++++++++++++
 plugins/udev.c      |   54 ++++++++
 4 files changed, 400 insertions(+), 0 deletions(-)
 create mode 100644 plugins/speedup.c

diff --git a/Makefile.am b/Makefile.am
index dd4fb8f..ffe2e98 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -329,6 +329,9 @@ builtin_sources += plugins/linktop.c
 builtin_modules += telit
 builtin_sources += plugins/telit.c
 
+builtin_modules += speedup
+builtin_sources += plugins/speedup.c
+
 if BLUETOOTH
 builtin_modules += bluetooth
 builtin_sources += plugins/bluetooth.c plugins/bluetooth.h
diff --git a/plugins/ofono.rules b/plugins/ofono.rules
index 268b327..3d66723 100644
--- a/plugins/ofono.rules
+++ b/plugins/ofono.rules
@@ -344,6 +344,10 @@ ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1485", ENV{OFONO_IFACE_NUM}=="02", E
 ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1486", ENV{OFONO_IFACE_NUM}=="00", ENV{OFONO_HUAWEI_TYPE}="Modem"
 ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1486", ENV{OFONO_IFACE_NUM}=="02", ENV{OFONO_HUAWEI_TYPE}="Pcui"
 
+# SpeedUp 9800
+ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{OFONO_IFACE_NUM}=="01", ENV{OFONO_SPEEDUP_TYPE}="modem"
+ATTRS{idVendor}=="1c9e", ATTRS{idProduct}=="9800", ENV{OFONO_IFACE_NUM}=="02", ENV{OFONO_SPEEDUP_TYPE}="aux"
+
 LABEL="ofono_tty_end"
 
 # ISI/Phonet drivers
@@ -384,6 +388,11 @@ ATTRS{idVendor}=="19d2", ENV{OFONO_DRIVER}="zte"
 
 ATTRS{idVendor}=="19d2", ATTRS{serial}=="1234567890ABCDEF", ENV{ID_SERIAL_SHORT}=""
 
+# SpeedUp
+ATTRS{idVendor}=="1c9e", ENV{OFONO_DRIVER}="speedup"
+
+ATTRS{idVendor}=="1c9e", ATTRS{serial}=="1234567890ABCDEF", ENV{ID_SERIAL_SHORT}=""
+
 # Option Globetrotter
 ATTRS{idVendor}=="0af0", ATTRS{idProduct}=="6911", ENV{OFONO_DRIVER}="hso"
 ATTRS{idVendor}=="0af0", ATTRS{idProduct}=="6971", ENV{OFONO_DRIVER}="hso"
diff --git a/plugins/speedup.c b/plugins/speedup.c
new file mode 100644
index 0000000..23813a5
--- /dev/null
+++ b/plugins/speedup.c
@@ -0,0 +1,334 @@
+/*
+ *
+ *  oFono - Open Source Telephony
+ *
+ *  Copyright (C) 2008-2010  Intel Corporation. All rights reserved.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <glib.h>
+#include <gatchat.h>
+#include <gattty.h>
+
+#define OFONO_API_SUBJECT_TO_CHANGE
+#include <ofono/plugin.h>
+#include <ofono/modem.h>
+#include <ofono/devinfo.h>
+#include <ofono/netreg.h>
+#include <ofono/sim.h>
+#include <ofono/cbs.h>
+#include <ofono/sms.h>
+#include <ofono/ussd.h>
+#include <ofono/gprs.h>
+#include <ofono/gprs-context.h>
+#include <ofono/phonebook.h>
+#include <ofono/log.h>
+
+#include <drivers/atmodem/atutil.h>
+#include <drivers/atmodem/vendor.h>
+
+static const char *none_prefix[] = { NULL };
+
+struct speedup_data {
+	GAtChat *modem;
+	GAtChat *aux;
+	struct ofono_gprs *gprs;
+	struct ofono_gprs_context *gc;
+};
+
+static int speedup_probe(struct ofono_modem *modem)
+{
+	struct speedup_data *data;
+
+	DBG("%p", modem);
+
+	data = g_try_new0(struct speedup_data, 1);
+	if (data == NULL)
+		return -ENOMEM;
+
+	ofono_modem_set_data(modem, data);
+
+	return 0;
+}
+
+static void speedup_remove(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("%p", modem);
+
+	ofono_modem_set_data(modem, NULL);
+
+	g_at_chat_unref(data->modem);
+	g_at_chat_unref(data->aux);
+
+	g_free(data);
+}
+
+static void speedup_debug(const char *str, void *user_data)
+{
+        const char *prefix = user_data;
+
+        ofono_info("%s%s", prefix, str);
+}
+
+static GAtChat *open_device(struct ofono_modem *modem,
+				const char *key, char *debug)
+{
+	const char *device;
+	GAtSyntax *syntax;
+	GIOChannel *channel;
+	GAtChat *chat;
+
+	device = ofono_modem_get_string(modem, key);
+	if (device == NULL)
+		return NULL;
+
+	DBG("%s %s", key, device);
+
+	channel = g_at_tty_open(device, NULL);
+	if (channel == NULL)
+		return NULL;
+
+	syntax = g_at_syntax_new_gsm_permissive();
+	chat = g_at_chat_new(channel, syntax);
+	g_at_syntax_unref(syntax);
+	g_io_channel_unref(channel);
+
+	if (chat == NULL)
+		return NULL;
+
+	if (getenv("OFONO_AT_DEBUG"))
+		g_at_chat_set_debug(chat, speedup_debug, debug);
+
+	return chat;
+}
+
+static void speedup_disconnect(gpointer user_data)
+{
+	struct ofono_modem *modem = user_data;
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("");
+
+	ofono_gprs_context_remove(data->gc);
+
+	g_at_chat_unref(data->modem);
+	data->modem = NULL;
+
+	data->modem = open_device(modem, "Modem", "Modem: ");
+	if (data->modem == NULL)
+		return;
+
+	g_at_chat_set_disconnect_function(data->modem,
+						speedup_disconnect, modem);
+
+	ofono_info("Reopened GPRS context channel");
+
+	data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+
+	if (data->gprs && data->gc)
+		ofono_gprs_add_context(data->gprs, data->gc);
+}
+
+static void cfun_enable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+	struct ofono_modem *modem = user_data;
+
+	DBG("");
+
+	ofono_modem_set_powered(modem, ok);
+}
+
+static int speedup_enable(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("%p", modem);
+
+	data->modem = open_device(modem, "Modem", "Modem: ");
+	if (data->modem == NULL)
+		return -EINVAL;
+
+	g_at_chat_set_disconnect_function(data->modem,
+						speedup_disconnect, modem);
+
+	data->aux = open_device(modem, "Aux", "Aux: ");
+	if (data->aux == NULL) {
+		g_at_chat_unref(data->modem);
+		data->modem = NULL;
+		return -EIO;
+	}
+
+	g_at_chat_send(data->aux, "ATE0 +CMEE=1", none_prefix,
+						NULL, NULL, NULL);
+
+	g_at_chat_send(data->aux, "AT+CFUN=1", none_prefix,
+					cfun_enable, modem, NULL);
+
+	return -EINPROGRESS;
+}
+
+static void cfun_disable(gboolean ok, GAtResult *result, gpointer user_data)
+{
+	struct ofono_modem *modem = user_data;
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("");
+
+	g_at_chat_unref(data->aux);
+	data->aux = NULL;
+
+	if (ok)
+		ofono_modem_set_powered(modem, FALSE);
+}
+
+static int speedup_disable(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("%p", modem);
+
+	if (data->modem) {
+		g_at_chat_cancel_all(data->modem);
+		g_at_chat_unregister_all(data->modem);
+		g_at_chat_unref(data->modem);
+		data->modem = NULL;
+	}
+
+	if (data->aux == NULL)
+		return 0;
+
+	g_at_chat_cancel_all(data->aux);
+	g_at_chat_unregister_all(data->aux);
+	g_at_chat_send(data->aux, "AT+CFUN=0", none_prefix,
+					cfun_disable, modem, NULL);
+
+	return -EINPROGRESS;
+}
+
+static void set_online_cb(gboolean ok, GAtResult *result, gpointer user_data)
+{
+	struct cb_data *cbd = user_data;
+	ofono_modem_online_cb_t cb = cbd->cb;
+
+	if (ok)
+		CALLBACK_WITH_SUCCESS(cb, cbd->data);
+	else
+		CALLBACK_WITH_FAILURE(cb, cbd->data);
+}
+
+static void speedup_set_online(struct ofono_modem *modem, ofono_bool_t online,
+				ofono_modem_online_cb_t cb, void *user_data)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+	GAtChat *chat = data->aux;
+	struct cb_data *cbd = cb_data_new(cb, user_data);
+	char const *command = online ? "AT+CFUN=1" : "AT+CFUN=4";
+
+	DBG("modem %p %s", modem, online ? "online" : "offline");
+
+	if (chat == NULL)
+		goto error;
+
+	if (g_at_chat_send(chat, command, NULL, set_online_cb, cbd, g_free))
+		return;
+
+error:
+	g_free(cbd);
+
+	CALLBACK_WITH_FAILURE(cb, cbd->data);
+}
+
+static void speedup_pre_sim(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+	struct ofono_sim *sim;
+
+	DBG("%p", modem);
+
+	ofono_devinfo_create(modem, 0, "atmodem", data->aux);
+	sim = ofono_sim_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+				"atmodem", data->aux);
+
+	if (sim)
+		ofono_sim_inserted_notify(sim, TRUE);
+}
+
+static void speedup_post_sim(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("%p", modem);
+
+	ofono_phonebook_create(modem, 0, "atmodem", data->aux);
+
+	ofono_sms_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+					"atmodem", data->aux);
+}
+
+static void speedup_post_online(struct ofono_modem *modem)
+{
+	struct speedup_data *data = ofono_modem_get_data(modem);
+
+	DBG("%p", modem);
+
+	ofono_netreg_create(modem, OFONO_VENDOR_ZTE, "atmodem", data->aux);
+
+	ofono_cbs_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+					"atmodem", data->aux);
+	ofono_ussd_create(modem, OFONO_VENDOR_QUALCOMM_MSM,
+					"atmodem", data->aux);
+	data->gprs = ofono_gprs_create(modem, 0, "atmodem", data->aux);
+
+	data->gc = ofono_gprs_context_create(modem, 0, "atmodem", data->modem);
+
+	if (data->gprs && data->gc)
+		ofono_gprs_add_context(data->gprs, data->gc);
+}
+
+static struct ofono_modem_driver speedup_driver = {
+	.name		= "speedup",
+	.probe		= speedup_probe,
+	.remove		= speedup_remove,
+	.enable		= speedup_enable,
+	.disable	= speedup_disable,
+	.set_online     = speedup_set_online,
+	.pre_sim	= speedup_pre_sim,
+	.post_sim	= speedup_post_sim,
+	.post_online    = speedup_post_online,
+};
+
+static int speedup_init(void)
+{
+	return ofono_modem_driver_register(&speedup_driver);
+}
+
+static void speedup_exit(void)
+{
+	ofono_modem_driver_unregister(&speedup_driver);
+}
+
+OFONO_PLUGIN_DEFINE(speedup, "SpeedUp modem driver", VERSION,
+		OFONO_PLUGIN_PRIORITY_DEFAULT, speedup_init, speedup_exit)
diff --git a/plugins/udev.c b/plugins/udev.c
index 0234fc0..27f27bc 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -587,6 +587,58 @@ static void add_linktop(struct ofono_modem *modem,
 	}
 }
 
+static void add_speedup(struct ofono_modem *modem,
+					struct udev_device *udev_device)
+{
+	struct udev_list_entry *entry;
+	const char *devnode, *type;
+
+	int ppp, aux;
+
+	DBG("modem %p", modem);
+
+	ppp = ofono_modem_get_integer(modem, "ModemRegistered");
+	aux = ofono_modem_get_integer(modem, "AuxRegistered");
+
+	if (ppp && aux)
+		return;
+
+	entry = udev_device_get_properties_list_entry(udev_device);
+	while (entry) {
+		const char *name = udev_list_entry_get_name(entry);
+		type = udev_list_entry_get_value(entry);
+
+		if (g_str_equal(name, "OFONO_SPEEDUP_TYPE") != TRUE) {
+			entry = udev_list_entry_get_next(entry);
+			continue;
+		}
+
+		if (g_str_equal(type, "modem") == TRUE) {
+			if (ppp != 0)
+				return;
+
+			devnode = udev_device_get_devnode(udev_device);
+			ofono_modem_set_string(modem, "Modem", devnode);
+			ppp = 1;
+			ofono_modem_set_integer(modem, "ModemRegistered", ppp);
+		} else if (g_str_equal(type, "aux") == TRUE) {
+			if (aux != 0)
+				return;
+
+			devnode = udev_device_get_devnode(udev_device);
+			ofono_modem_set_string(modem, "Aux", devnode);
+
+			aux = 1;
+			ofono_modem_set_integer(modem, "AuxRegistered", aux);
+		}
+
+		break;
+	}
+
+	if (ppp && aux)
+		ofono_modem_register(modem);
+}
+
 static void add_modem(struct udev_device *udev_device)
 {
 	struct ofono_modem *modem;
@@ -685,6 +737,8 @@ done:
 		add_nokiacdma(modem, udev_device);
         else if (g_strcmp0(driver, "linktop") == 0)
 		add_linktop(modem, udev_device);
+        else if (g_strcmp0(driver, "speedup") == 0)
+		add_speedup(modem, udev_device);
 }
 
 static gboolean devpath_remove(gpointer key, gpointer value, gpointer user_data)
-- 
1.7.4.1

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* RE: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-06  5:53 ` Denis Kenzior
@ 2011-07-06 16:21   ` Aygon, Bertrand
  2011-07-06  5:56     ` Denis Kenzior
  0 siblings, 1 reply; 9+ messages in thread
From: Aygon, Bertrand @ 2011-07-06 16:21 UTC (permalink / raw)
  To: ofono

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

Hi Denis,

Thanks for those comment, I will apply.

One point, the speedup.c is a copy of zte.c.

Do you want me to apply also for zte.c?

Regards,

Bertrand

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-06 12:34 [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules Bertrand Aygon
  2011-07-06  5:53 ` Denis Kenzior
@ 2011-07-06 18:07 ` Marcel Holtmann
  2011-07-07  7:06   ` Deng, Ying An
  1 sibling, 1 reply; 9+ messages in thread
From: Marcel Holtmann @ 2011-07-06 18:07 UTC (permalink / raw)
  To: ofono

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

Hi Betrand,

>  Makefile.am         |    3 +
>  plugins/ofono.rules |    9 ++
>  plugins/speedup.c   |  334 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  plugins/udev.c      |   54 ++++++++
>  4 files changed, 400 insertions(+), 0 deletions(-)
>  create mode 100644 plugins/speedup.c

same request as for everybody else in the past. Please split udev rules
and detection into a separate patch.

Regards

Marcel



^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-06 18:07 ` Marcel Holtmann
@ 2011-07-07  7:06   ` Deng, Ying An
  2011-07-07  7:29     ` Aygon, Bertrand
  0 siblings, 1 reply; 9+ messages in thread
From: Deng, Ying An @ 2011-07-07  7:06 UTC (permalink / raw)
  To: ofono

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

I tried with the code, but my speedup dongle still failed to work.

Until I issue command manually: modprobe usbserial vendor=0x1c9e product=0x9800, then the driver is attached and ttyUSB0, 1, 2 devices are created, and ofono starts to probe the device.
After ofono starts to initialize the Speedup modem, the registration process failed. I attach the log here with AT debug info.

Question: why the usbserial driver cannot probe and installed with the speedup dongle automatically?  


Thanks.
Best regards,
Y.A.



> -----Original Message-----
> From: ofono-bounces(a)ofono.org [mailto:ofono-bounces(a)ofono.org] On Behalf
> Of Marcel Holtmann
> Sent: Thursday, July 07, 2011 2:08 AM
> To: ofono(a)ofono.org
> Subject: Re: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and
> add corresponding udev rules
> 
> Hi Betrand,
> 
> >  Makefile.am         |    3 +
> >  plugins/ofono.rules |    9 ++
> >  plugins/speedup.c   |  334
> +++++++++++++++++++++++++++++++++++++++++++++++++++
> >  plugins/udev.c      |   54 ++++++++
> >  4 files changed, 400 insertions(+), 0 deletions(-)
> >  create mode 100644 plugins/speedup.c
> 
> same request as for everybody else in the past. Please split udev rules
> and detection into a separate patch.
> 
> Regards
> 
> Marcel
> 
> 
> _______________________________________________
> ofono mailing list
> ofono(a)ofono.org
> http://lists.ofono.org/listinfo/ofono

[-- Attachment #2: speeduplog_at.txt --]
[-- Type: text/plain, Size: 23072 bytes --]


[root@user-desktop user]# export OFONO_AT_DEBUG=1
[root@user-desktop user]# /usr/sbin/ofonod -d -n
ofonod[1798]: oFono version 0.51
ofonod[1798]: src/plugin.c:__ofono_plugin_init() 
ofonod[1798]: plugins/push-notification.c:push_notification_init() 
ofonod[1798]: plugins/smart-messaging.c:smart_messaging_init() 
ofonod[1798]: plugins/dun_gw.c:dun_gw_init() 
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160fe0, name: hfp
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160f80, name: speedup
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160f20, name: telit
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160ec0, name: linktop
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160e60, name: nokiacdma
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160e00, name: nokia
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160da0, name: tc65
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160d20, name: ste
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160cc0, name: ifx
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160c60, name: palmpre
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160c00, name: novatel
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160ba0, name: sierra
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160b40, name: huawei
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160ae0, name: zte
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160a80, name: hso
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160a20, name: mbm
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x81609c0, name: calypso
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160960, name: wavecom
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x8160900, name: gobi
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x81608a0, name: g1
ofonod[1798]: src/cdma-voicecall.c:ofono_cdma_voicecall_driver_register() driver: 0x8160824, name: cdmamodem
ofonod[1798]: src/modem.c:ofono_devinfo_driver_register() driver: 0x8160838, name: cdmamodem
ofonod[1798]: src/cdma-connman.c:ofono_cdma_connman_driver_register() driver: 0x8160854, name: cdmamodem
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x81607e0, name: phonesim
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x81607cc, name: phonesim
ofonod[1798]: src/ctm.c:ofono_ctm_driver_register() driver: 0x81607b8, name: phonesim
ofonod[1798]: plugins/phonesim.c:parse_config() filename /etc/ofono/phonesim.conf
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x81606e0, name: stemodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x816076c, name: stemodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x8160740, name: stemodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x81605a0, name: ifxmodem
ofonod[1798]: src/audio-settings.c:ofono_audio_settings_driver_register() driver: 0x81605f0, name: ifxmodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x8160620, name: ifxmodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x816064c, name: ifxmodem
ofonod[1798]: src/stk.c:ofono_stk_driver_register() driver: 0x8160670, name: ifxmodem
ofonod[1798]: src/ctm.c:ofono_ctm_driver_register() driver: 0x8160694, name: ifxmodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x816050c, name: hsomodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x8160540, name: hsomodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x8160494, name: mbmmodem
ofonod[1798]: src/stk.c:ofono_stk_driver_register() driver: 0x81604b8, name: mbmmodem
ofonod[1798]: src/location-reporting.c:ofono_location_reporting_driver_register() driver: 0x81604d4, name: mbmmodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x81603c0, name: hfpmodem
ofonod[1798]: src/network.c:ofono_netreg_driver_register() driver: 0x8160420, name: hfpmodem
ofonod[1798]: src/call-volume.c:ofono_call_volume_driver_register() driver: 0x8160454, name: hfpmodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x8160340, name: calypsomodem
ofonod[1798]: src/stk.c:ofono_stk_driver_register() driver: 0x8160388, name: calypsomodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x8160260, name: huaweimodem
ofonod[1798]: src/audio-settings.c:ofono_audio_settings_driver_register() driver: 0x81602a8, name: huaweimodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x81602e0, name: huaweimodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x81602bc, name: huaweimodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x8160200, name: nwmodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x8160080, name: atmodem
ofonod[1798]: src/modem.c:ofono_devinfo_driver_register() driver: 0x8160120, name: atmodem
ofonod[1798]: src/call-barring.c:ofono_call_barring_driver_register() driver: 0x81600d8, name: atmodem
ofonod[1798]: src/call-forwarding.c:ofono_call_forwarding_driver_register() driver: 0x815fea0, name: atmodem
ofonod[1798]: src/call-meter.c:ofono_call_meter_driver_register() driver: 0x815fee0, name: atmodem
ofonod[1798]: src/call-settings.c:ofono_call_settings_driver_register() driver: 0x815fda0, name: atmodem
ofonod[1798]: src/phonebook.c:ofono_phonebook_driver_register() driver: 0x81600f8, name: atmodem
ofonod[1798]: src/ussd.c:ofono_ussd_driver_register() driver: 0x8160048, name: atmodem
ofonod[1798]: src/sms.c:ofono_sms_driver_register() driver: 0x815fe20, name: atmodem
ofonod[1798]: src/sim.c:ofono_sim_driver_register() driver: 0x815ffa0, name: atmodem
ofonod[1798]: src/stk.c:ofono_stk_driver_register() driver: 0x8160024, name: atmodem
ofonod[1798]: src/network.c:ofono_netreg_driver_register() driver: 0x815ff40, name: atmodem
ofonod[1798]: src/cbs.c:ofono_cbs_driver_register() driver: 0x815fe80, name: atmodem
ofonod[1798]: src/call-volume.c:ofono_call_volume_driver_register() driver: 0x816013c, name: atmodem
ofonod[1798]: src/gprs.c:ofono_gprs_driver_register() driver: 0x8160164, name: atmodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x8160188, name: atmodem
ofonod[1798]: src/sim-auth.c:ofono_sim_auth_driver_register() driver: 0x816019c, name: atmodem
ofonod[1798]: src/gnss.c:ofono_gnss_driver_register() driver: 0x81601b4, name: atmodem
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x815fc20, name: u8500
ofonod[1798]: src/modem.c:ofono_devinfo_driver_register() driver: 0x815fbf8, name: u8500
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x815fba0, name: n900
ofonod[1798]: src/modem.c:ofono_modem_driver_register() driver: 0x815fb40, name: isiusb
ofonod[1798]: src/modem.c:ofono_devinfo_driver_register() driver: 0x815f834, name: isimodem
ofonod[1798]: src/phonebook.c:ofono_phonebook_driver_register() driver: 0x815f824, name: isimodem
ofonod[1798]: src/network.c:ofono_netreg_driver_register() driver: 0x815f860, name: isimodem
ofonod[1798]: src/voicecall.c:ofono_voicecall_driver_register() driver: 0x815f8a0, name: isimodem
ofonod[1798]: src/sms.c:ofono_sms_driver_register() driver: 0x815f900, name: isimodem
ofonod[1798]: src/cbs.c:ofono_cbs_driver_register() driver: 0x815f920, name: isimodem
ofonod[1798]: src/sim.c:ofono_sim_driver_register() driver: 0x815f940, name: isimodem
ofonod[1798]: src/ussd.c:ofono_ussd_driver_register() driver: 0x815f988, name: isimodem
ofonod[1798]: src/call-forwarding.c:ofono_call_forwarding_driver_register() driver: 0x815f9a0, name: isimodem
ofonod[1798]: src/call-settings.c:ofono_call_settings_driver_register() driver: 0x815f9c0, name: isimodem
ofonod[1798]: src/call-barring.c:ofono_call_barring_driver_register() driver: 0x815f9f0, name: isimodem
ofonod[1798]: src/call-meter.c:ofono_call_meter_driver_register() driver: 0x815fa20, name: isimodem
ofonod[1798]: src/radio-settings.c:ofono_radio_settings_driver_register() driver: 0x815fa60, name: isimodem
ofonod[1798]: src/gprs.c:ofono_gprs_driver_register() driver: 0x815fa84, name: isimodem
ofonod[1798]: src/gprs.c:ofono_gprs_context_driver_register() driver: 0x815fa98, name: isimodem
ofonod[1798]: src/audio-settings.c:ofono_audio_settings_driver_register() driver: 0x815faac, name: isimodem
ofonod[1798]: src/sim.c:ofono_sim_driver_register() driver: 0x815fac0, name: wgmodem2.5
ofonod[1798]: src/modem.c:ofono_modem_create() name: (null), type: speedup
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property Path
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property Registered
ofonod[1798]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.0/ttyUSB0/tty/ttyUSB0 (speedup)
ofonod[1798]: plugins/udev.c:add_speedup() modem 0x85d8e48
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property ModemRegistered
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property AuxRegistered
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property Path
ofonod[1798]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.1/ttyUSB1/tty/ttyUSB1 (speedup)
ofonod[1798]: plugins/udev.c:add_speedup() modem 0x85d8e48
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property ModemRegistered
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property AuxRegistered
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property Modem
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property ModemRegistered
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property Path
ofonod[1798]: plugins/udev.c:add_modem() /devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1:1.2/ttyUSB2/tty/ttyUSB2 (speedup)
ofonod[1798]: plugins/udev.c:add_speedup() modem 0x85d8e48
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property ModemRegistered
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property AuxRegistered
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property Aux
ofonod[1798]: src/modem.c:set_modem_property() modem 0x85d8e48 property AuxRegistered
ofonod[1798]: plugins/speedup.c:speedup_probe() 0x85d8e48
ofonod[1798]: plugins/hfp_ag.c:modem_watch() modem: 0x85d8e48, added: 1
ofonod[1798]: plugins/dun_gw.c:modem_watch() modem: 0x85d8e48, added: 1
ofonod[1798]: plugins/smart-messaging.c:modem_watch() modem: 0x85d8e48, added: 1
ofonod[1798]: plugins/push-notification.c:modem_watch() modem: 0x85d8e48, added: 1
ofonod[1798]: plugins/speedup.c:speedup_enable() 0x85d8e48
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property Modem
ofonod[1798]: plugins/speedup.c:open_device() Modem /dev/ttyUSB1
ofonod[1798]: src/modem.c:get_modem_property() modem 0x85d8e48 property Aux
ofonod[1798]: plugins/speedup.c:open_device() Aux /dev/ttyUSB2
ofonod[1798]: Aux: > ATE0 +CMEE=1\r
ofonod[1798]: Aux: < \r\n+CREG: 0\r\n\r\n+CGREG: 0\r\n
ofonod[1798]: plugins/bluetooth.c:manager_properties_cb() 
ofonod[1798]: plugins/bluetooth.c:parse_adapters() 
ofonod[1798]: plugins/bluetooth.c:parse_adapters() Calling GetProperties on /org/bluez/477/hci0
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+CFUN=1\r
ofonod[1798]: plugins/bluetooth.c:adapter_properties_cb() 
ofonod[1798]: plugins/bluetooth.c:parse_devices() 
ofonod[1798]: plugins/bluetooth.c:adapter_properties_cb() Adapter Address: 74:F0:6D:C4:1D:64, Path: /org/bluez/477/hci0
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: plugins/speedup.c:cfun_enable() 
ofonod[1798]: src/modem.c:modem_change_state() old state: 0, new state: 1
ofonod[1798]: plugins/speedup.c:speedup_pre_sim() 0x85d8e48
ofonod[1798]: src/sim.c:ofono_sim_add_state_watch() 0x85d4548
ofonod[1798]: src/sim.c:ofono_sim_add_state_watch() 0x85d4548
ofonod[1798]: Aux: > AT+CGMI\r
ofonod[1798]: Aux: < \r\nManufacturer\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=192,12258,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183022FE2A503C001028A01058B032F06038002000A880110"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CGMM\r
ofonod[1798]: Aux: < \r\nHSPA USB MODEM\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=176,12258,0,0,10\r
ofonod[1798]: Aux: < \r\n+CREG: 0\r\n\r\n+CGREG: 0\r\n\r\n+CREG: 0\r\n\r\n+CGREG: 0\r\n\r\n+CRSM: 110,0,""\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CGMR\r
ofonod[1798]: Aux: < \r\nLWA6R04.1.0_MG35\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=192,28421,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183026F05A5038001718A01058B036F060180020004880110"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CGSN\r
ofonod[1798]: Aux: < \r\n355132040089759\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=176,28421,0,0,4\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"7A68656E"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 4
ofonod[1798]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 4
ofonod[1798]: Aux: > AT+CRSM=192,12037,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183022F05A5038001718A01058B032F060280020004880128"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CRSM=176,12037,0,0,4\r
ofonod[1798]: Aux: < \r\n+CREG: 2\r\n\r\n+CGREG: 2\r\n\r\n+CREG: 1, A80D, CB2D3D\r\n\r\n+CGREG: 0\r\n\r\n+CRSM: 144,0,"FFFFFFFF"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 4
ofonod[1798]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 4
ofonod[1798]: Aux: > AT+CPIN?\r
ofonod[1798]: Aux: < \r\n+CPIN: READY\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_cpin_cb() crsm_pin_cb: READY
ofonod[1798]: drivers/atmodem/sim.c:at_pin_retries_query() 
ofonod[1798]: Aux: > AT+CPINR\r
ofonod[1798]: Aux: < \r\nERROR\r\n
ofonod[1798]: Querying remaining pin retries failed
ofonod[1798]: Aux: > AT+CRSM=192,28590,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=192,28589,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183026FADA5038001718A01058B036F060580020004880118"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CRSM=176,28589,0,0,4\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"00000002"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 4
ofonod[1798]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 4
ofonod[1798]: Aux: > AT+CRSM=192,28438,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=192,28472,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183026F38A503C001028A01058B036F06028002000A880120"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CRSM=176,28472,0,0,10\r
ofonod[1798]: Aux: < \r\n+CREG: 1, A80D, CB2D3D\r\n\r\n+CGREG: 1, A80D, CB2D3D\r\n\r\n+CRSM: 144,0,"9EFFBFFDFF3EDC034001"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 10
ofonod[1798]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 10
ofonod[1798]: Aux: > AT+CRSM=192,28502,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621C8202412183026F56A5038001718A01058B036F060680020001880128"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 30
ofonod[1798]: Aux: > AT+CRSM=176,28502,0,0,1\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"00"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 1
ofonod[1798]: src/simfs.c:sim_fs_op_read_block_cb() bufoff: 0, dataoff: 0, tocopy: 1
ofonod[1798]: Aux: > AT+CIMI\r
ofonod[1798]: Aux: < \r\n460010021773447\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_cimi_cb() cimi_cb: 460010021773447
ofonod[1798]: src/modem.c:modem_change_state() old state: 1, new state: 2
ofonod[1798]: plugins/speedup.c:speedup_post_sim() 0x85d8e48
ofonod[1798]: drivers/atmodem/gprs-context.c:at_gprs_context_probe() 
ofonod[1798]: Aux: > AT+CSCS=?\r
ofonod[1798]: Aux: < \r\n+CSCS: ("IRA","GSM","UCS2")\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CSMS=?\r
ofonod[1798]: Aux: < \r\n+CSMS: (0-1)\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sms.c:at_csms_query_cb() CSMS query parsed successfully
ofonod[1798]: Aux: > AT+CGDCONT=?\r
ofonod[1798]: plugins/speedup.c:speedup_set_online() modem 0x85d8e48 online
ofonod[1798]: Aux: < \r\n+CGDCONT: (1-16),"IP",,,(0-2),(0-4)\r\n+CGDCONT: (1-16),"PPP",,,(0-2),(0-4)\r\n+CGDCONT: (1-16),"IPV6",,,(0-2),(0-4)\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=192,28480,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"621E82054221001C0283026F40A5038001718A01058B036F0603800200388800"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_info_cb() crsm_info_cb: 90, 00, 32
ofonod[1798]: Aux: > AT+CPBS=?\r
ofonod[1798]: Aux: < \r\n+CPBS: ("DC","FD","MC","ME","RC","EN","ON")\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CSMS=1\r
ofonod[1798]: Aux: < \r\n+CSMS: 1,1,1\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CFUN=1\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: src/modem.c:modem_change_state() old state: 2, new state: 3
ofonod[1798]: plugins/speedup.c:speedup_post_online() 0x85d8e48
ofonod[1798]: Aux: > AT+CGREG=?\r
ofonod[1798]: Aux: < \r\n+CGREG: (0-2)\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=178,28480,1,4,28\r
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"FFFFFFFFFFFFFFFFFFFFFFFFFFFF08A14115200744F7FFFFFFFFFFFF"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 28
ofonod[1798]: Aux: > AT+CSMS?\r
ofonod[1798]: Aux: < \r\n+CSMS: 1,1,1,1\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CREG=?\r
ofonod[1798]: Aux: < \r\n+CREG: (0-2)\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CSCB=?\r
ofonod[1798]: Aux: < \r\n+CSCB: (0-1)\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CSCS?\r
ofonod[1798]: Aux: < \r\n+CSCS: "IRA"\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CUSD=1\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+CGREG=2\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+CGAUTO=0\r
ofonod[1798]: Aux: < \r\nERROR\r\n
ofonod[1798]: Aux: > AT+CGEREP=2,1\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+CRSM=178,28480,2,4,28\r
ofonod[1798]: Registered handle for channel 1: 0x10009
ofonod[1798]: Aux: < \r\n+CRSM: 144,0,"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sim.c:at_crsm_read_cb() crsm_read_cb: 90, 00, 28
ofonod[1798]: Aux: > AT+CMGF=?\r
ofonod[1798]: Aux: < \r\n+CMGF: (0-1)\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CREG=2\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: src/network.c:__ofono_netreg_add_status_watch() 0x85d8bb8
ofonod[1798]: Aux: > AT+CSCB=1,"0-65535"\r
ofonod[1798]: Aux: < \r\n+CMS ERROR: 314\r\n
ofonod[1798]: src/cbs.c:cbs_got_imsi() Got IMSI: 460010021773447
ofonod[1798]: src/network.c:__ofono_netreg_add_status_watch() 0x85d8bb8
ofonod[1798]: Aux: > AT+CPSB=1\r
ofonod[1798]: src/simfs.c:sim_fs_op_read_block() bufoff: 0, seekoff: 39, toread: 17
ofonod[1798]: EFspn read successfully, but couldn't parse
ofonod[1798]: Aux: < \r\nERROR\r\n
ofonod[1798]: Aux: > AT+CPMS=?\r
ofonod[1798]: Aux: < \r\n+CPMS: ("ME","MT","SM","SR"),("ME","MT","SM","SR"),("ME","MT","SM","SR")\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CREG?\r
ofonod[1798]: src/simfs.c:sim_fs_op_read_block() bufoff: 0, seekoff: 39, toread: 20
ofonod[1798]: drivers/atmodem/cbs.c:at_cbs_set_topics() 
ofonod[1798]: Aux: < \r\n+CREG: 2,1, A80D, CB2D3D\r\n\r\nOK\r\n
ofonod[1798]: src/cbs.c:cbs_location_changed() 1, -1, -1, -1, (null)(null)
ofonod[1798]: src/gprs.c:netreg_status_changed() 1
ofonod[1798]: Aux: > AT+CMGF=0\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+CSCB=1\r
ofonod[1798]: Aux: < \r\n+CMS ERROR: 314\r\n
ofonod[1798]: Aux: > AT+CSCB=0,"4352-4356"\r
ofonod[1798]: Aux: < \r\n+CMS ERROR: 314\r\n
ofonod[1798]: Setting Cell Broadcast topics failed
ofonod[1798]: Aux: > AT+COPS=3,2\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+COPS?\r
ofonod[1798]: Aux: < \r\n+COPS: 0,2,"46001",2\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/network-registration.c:cops_numeric_cb() Cops numeric got mcc: 460, mnc: 01
ofonod[1798]: Aux: > AT+CSQ\r
ofonod[1798]: Aux: < \r\n+CSQ: 7,99\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/network-registration.c:csq_cb() csq_cb: 7
ofonod[1798]: Aux: > AT+CGATT=1\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: src/gprs.c:gprs_attach_callback() /speedup0 error = 0
ofonod[1798]: Aux: > AT+CSQ\r
ofonod[1798]: Aux: < \r\n+CSQ: 7,99\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/network-registration.c:csq_cb() csq_cb: 7
ofonod[1798]: Aux: > AT+CRSM=192,28437,0,0,255\r
ofonod[1798]: Aux: < \r\n+CRSM: 106,130,""\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CPMS="ME","ME","ME"\r
ofonod[1798]: Aux: < \r\n+CMS ERROR: 314\r\n
ofonod[1798]: Aux: > AT+COPS=3,0\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: Aux: > AT+COPS?\r
ofonod[1798]: Aux: < \r\n+COPS: 0,0,"",2\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/network-registration.c:cops_cb() cops_cb: , 460 01 2
ofonod[1798]: src/network.c:current_operator_callback() 0x85d8bb8, (nil)
ofonod[1798]: src/cbs.c:cbs_location_changed() 1, -1, -1, -1, 46001
ofonod[1798]: src/cbs.c:cbs_location_changed() 1, 0, 0
ofonod[1798]: src/gprs.c:netreg_status_changed() 1
ofonod[1798]: Aux: > AT+CGREG?\r
ofonod[1798]: Aux: < \r\n+CGREG: 2,1, A80D, CB2D3D\r\n\r\nOK\r\n
ofonod[1798]: src/gprs.c:registration_status_cb() /speedup0 error 0 status 1
ofonod[1798]: src/gprs.c:ofono_gprs_status_notify() /speedup0 status 1
ofonod[1798]: Aux: > AT+CPMS="ME","ME","ME"\r
ofonod[1798]: Aux: < \r\n+CMS ERROR: 314\r\n
ofonod[1798]: Aux: > AT+CPMS="ME","ME","ME"\r
ofonod[1798]: Aux: < \r\n+CPMS: 0,23,0,23,0,23\r\n\r\nOK\r\n
ofonod[1798]: Aux: > AT+CNMI=?\r
ofonod[1798]: Aux: < \r\n+CNMI: (0,1,2),(0,1,2,3),(0,2),(0,1,2),(0,1)\r\n\r\nOK\r\n
ofonod[1798]: drivers/atmodem/sms.c:build_cnmi_string() 
ofonod[1798]: drivers/atmodem/sms.c:construct_ack_pdu() 
ofonod[1798]: Aux: > AT+CNMI=1,2,2,1,0\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: src/network.c:__ofono_netreg_add_status_watch() 0x85d8bb8
ofonod[1798]: src/sms.c:sms_restore_tx_queue() 
ofonod[1798]: plugins/push-notification.c:sms_watch() registered
ofonod[1798]: plugins/smart-messaging.c:sms_watch() registered
ofonod[1798]: Aux: > AT+CMGL=4\r
ofonod[1798]: Aux: < \r\nOK\r\n
ofonod[1798]: drivers/atmodem/sms.c:at_cmgl_done() 
ofonod[1798]: Aux: > AT+CGSMS=3\r
ofonod[1798]: Aux: < \r\nOK\r\n



^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-07  7:06   ` Deng, Ying An
@ 2011-07-07  7:29     ` Aygon, Bertrand
  2011-07-07  8:04       ` Marcel Holtmann
  0 siblings, 1 reply; 9+ messages in thread
From: Aygon, Bertrand @ 2011-07-07  7:29 UTC (permalink / raw)
  To: ofono

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

Hi,

>I tried with the code, but my speedup dongle still failed to work.
>
>Until I issue command manually: modprobe usbserial vendor=0x1c9e product=0x9800, then the driver is >attached and ttyUSB0, 1, 2 devices are created, and ofono starts to probe the device.
>After ofono starts to initialize the Speedup modem, the registration process failed. I attach the >log here with AT debug info.
>
>Question: why the usbserial driver cannot probe and installed with the speedup dongle automatically?  

Yes I know, and I am working on it.

I don't know why we have to do the modprobe manually. If someone has some info, I would be very happy to get them.

Regards,

Bertrand
---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-07  7:29     ` Aygon, Bertrand
@ 2011-07-07  8:04       ` Marcel Holtmann
  2011-07-07  9:08         ` Aygon, Bertrand
  0 siblings, 1 reply; 9+ messages in thread
From: Marcel Holtmann @ 2011-07-07  8:04 UTC (permalink / raw)
  To: ofono

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

Hi Bertrand,

> >I tried with the code, but my speedup dongle still failed to work.
> >
> >Until I issue command manually: modprobe usbserial vendor=0x1c9e product=0x9800, then the driver is >attached and ttyUSB0, 1, 2 devices are created, and ofono starts to probe the device.
> >After ofono starts to initialize the Speedup modem, the registration process failed. I attach the >log here with AT debug info.
> >
> >Question: why the usbserial driver cannot probe and installed with the speedup dongle automatically?  
> 
> Yes I know, and I am working on it.
> 
> I don't know why we have to do the modprobe manually. If someone has some info, I would be very happy to get them.

I am not even sure that the usbserial driver is 100% the right one for
this hardware. That is something that SpeedUp should confirm. However if
the VID/PID combination is not listed in any USB_DEVICE() entry of any
driver, then of course the kernel can not pick the device. Actually I
don't see usbserial has any USB_DEVICE entries. They are all in
specialized drivers.

Anyhow, the linux-usb mailing list should be the first contact point for
this.

Regards

Marcel



^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules
  2011-07-07  8:04       ` Marcel Holtmann
@ 2011-07-07  9:08         ` Aygon, Bertrand
  0 siblings, 0 replies; 9+ messages in thread
From: Aygon, Bertrand @ 2011-07-07  9:08 UTC (permalink / raw)
  To: ofono

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

Hi,

There has been an update on usb_modeswitch 2 days ago, and now SU9800 are recognized automatically.

This is working great!

Just take 1.1.8 and latest data.

Regards,

Bertrand.

---------------------------------------------------------------------
Intel Corporation SAS (French simplified joint stock company)
Registered headquarters: "Les Montalets"- 2, rue de Paris, 
92196 Meudon Cedex, France
Registration Number:  302 456 199 R.C.S. NANTERRE
Capital: 4,572,000 Euros

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-07-07  9:08 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-06 12:34 [PATCH] Create a SpeedUp plugin, using standard AT Modem, and add corresponding udev rules Bertrand Aygon
2011-07-06  5:53 ` Denis Kenzior
2011-07-06 16:21   ` Aygon, Bertrand
2011-07-06  5:56     ` Denis Kenzior
2011-07-06 18:07 ` Marcel Holtmann
2011-07-07  7:06   ` Deng, Ying An
2011-07-07  7:29     ` Aygon, Bertrand
2011-07-07  8:04       ` Marcel Holtmann
2011-07-07  9:08         ` Aygon, Bertrand

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.