All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support
@ 2012-05-31 14:01 pablo
  2012-05-31 14:01 ` [PATCH 1/2] udev: add Wavecom support pablo
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: pablo @ 2012-05-31 14:01 UTC (permalink / raw)
  To: ofono

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

From: Pablo Neira Ayuso <pablo@gnumonks.org>

Hi!

This patch adds the missing bits to fully support Wavecom
Q2403/Q2686 modems.

Thanks to Denis Kenzior for providing useful tips to get a
much nicer patch.

Pablo Neira Ayuso (2):
  udev: add Wavecom support
  plugins: add support for Wavecom Q2403/Q2686 modems

 drivers/atmodem/sim.c |    3 +++
 plugins/udev.c        |   27 +++++++++++++++++++++++++++
 plugins/wavecom.c     |   21 +++++++++++++++++++--
 3 files changed, 49 insertions(+), 2 deletions(-)

-- 
1.7.10


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

* [PATCH 1/2] udev: add Wavecom support
  2012-05-31 14:01 [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support pablo
@ 2012-05-31 14:01 ` pablo
  2012-05-31 14:01 ` [PATCH 2/2] plugins: add support for Wavecom Q2403/Q2686 modems pablo
  2012-05-31 14:50 ` [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support Denis Kenzior
  2 siblings, 0 replies; 4+ messages in thread
From: pablo @ 2012-05-31 14:01 UTC (permalink / raw)
  To: ofono

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

From: Pablo Neira Ayuso <pablo@gnumonks.org>

This adds OFONO_WAVECOM_MODEL that can set in the udev rules file
to indicate the modem model, eg.

 ENV{OFONO_WAVECOM_MODEL}="Q2XXX"
---
 plugins/udev.c |   27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/plugins/udev.c b/plugins/udev.c
index 8cb87a5..a78cd41 100644
--- a/plugins/udev.c
+++ b/plugins/udev.c
@@ -167,6 +167,31 @@ static void add_calypso(struct ofono_modem *modem,
 	ofono_modem_register(modem);
 }
 
+static void add_wavecom(struct ofono_modem *modem,
+					struct udev_device *udev_device)
+{
+	const char *devnode;
+	struct udev_list_entry *entry;
+
+	DBG("modem %p", modem);
+
+	devnode = udev_device_get_devnode(udev_device);
+	ofono_modem_set_string(modem, "Device", devnode);
+
+	entry = udev_device_get_properties_list_entry(udev_device);
+	while (entry) {
+		const char *name = udev_list_entry_get_name(entry);
+		const char *value = udev_list_entry_get_value(entry);
+
+		if (g_str_equal(name, "OFONO_WAVECOM_MODEL") == TRUE)
+			ofono_modem_set_string(modem, "Model", value);
+
+		entry = udev_list_entry_get_next(entry);
+	}
+
+	ofono_modem_register(modem);
+}
+
 static void add_tc65(struct ofono_modem *modem,
 			struct udev_device *udev_device)
 {
@@ -286,6 +311,8 @@ done:
 		add_nokiacdma(modem, udev_device);
 	else if (g_strcmp0(driver, "sim900") == 0)
 		add_sim900(modem, udev_device);
+	else if (g_strcmp0(driver, "wavecom") == 0)
+		add_wavecom(modem, udev_device);
 }
 
 static gboolean devpath_remove(gpointer key, gpointer value, gpointer user_data)
-- 
1.7.10


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

* [PATCH 2/2] plugins: add support for Wavecom Q2403/Q2686 modems
  2012-05-31 14:01 [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support pablo
  2012-05-31 14:01 ` [PATCH 1/2] udev: add Wavecom support pablo
@ 2012-05-31 14:01 ` pablo
  2012-05-31 14:50 ` [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support Denis Kenzior
  2 siblings, 0 replies; 4+ messages in thread
From: pablo @ 2012-05-31 14:01 UTC (permalink / raw)
  To: ofono

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

From: Pablo Neira Ayuso <pablo@netfilter.org>

---
 drivers/atmodem/sim.c |    3 +++
 plugins/wavecom.c     |   21 +++++++++++++++++++--
 2 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/drivers/atmodem/sim.c b/drivers/atmodem/sim.c
index 603024d..7b48cd9 100644
--- a/drivers/atmodem/sim.c
+++ b/drivers/atmodem/sim.c
@@ -1305,6 +1305,9 @@ static int at_sim_probe(struct ofono_sim *sim, unsigned int vendor,
 	case OFONO_VENDOR_MBM:
 		g_at_chat_send(sd->chat, "AT*EPEE=1", NULL, NULL, NULL, NULL);
 		break;
+	case OFONO_VENDOR_WAVECOM_Q2XXX:
+		g_at_chat_add_terminator(chat, "+CPIN: READY", -1, TRUE);
+		break;
 	default:
 		break;
 	}
diff --git a/plugins/wavecom.c b/plugins/wavecom.c
index 5d30f39..f3f022c 100644
--- a/plugins/wavecom.c
+++ b/plugins/wavecom.c
@@ -25,6 +25,7 @@
 
 #include <errno.h>
 #include <stdlib.h>
+#include <string.h>
 
 #include <glib.h>
 #include <gatchat.h>
@@ -134,28 +135,44 @@ static int wavecom_disable(struct ofono_modem *modem)
 static void wavecom_pre_sim(struct ofono_modem *modem)
 {
 	GAtChat *chat = ofono_modem_get_data(modem);
+	const char *model;
+	enum ofono_vendor vendor = 0;
+	struct ofono_sim *sim;
 
 	DBG("%p", modem);
 
+	model = ofono_modem_get_string(modem, "Model");
+	if (model && strcmp(model, "Q2XXX") == 0)
+		vendor = OFONO_VENDOR_WAVECOM_Q2XXX;
+
 	ofono_devinfo_create(modem, 0, "atmodem", chat);
-	ofono_sim_create(modem, OFONO_VENDOR_WAVECOM, "atmodem", chat);
+	sim = ofono_sim_create(modem, vendor, "atmodem", chat);
 	ofono_voicecall_create(modem, 0, "atmodem", chat);
+
+	if (vendor == OFONO_VENDOR_WAVECOM_Q2XXX)
+		ofono_sim_inserted_notify(sim, TRUE);
 }
 
 static void wavecom_post_sim(struct ofono_modem *modem)
 {
 	GAtChat *chat = ofono_modem_get_data(modem);
 	struct ofono_message_waiting *mw;
+	const char *model;
+	enum ofono_vendor vendor = 0;
 
 	DBG("%p", modem);
 
+	model = ofono_modem_get_string(modem, "Model");
+	if (model && strcmp(model, "Q2XXX") == 0)
+		vendor = OFONO_VENDOR_WAVECOM_Q2XXX;
+
 	ofono_ussd_create(modem, 0, "atmodem", chat);
 	ofono_call_forwarding_create(modem, 0, "atmodem", chat);
 	ofono_call_settings_create(modem, 0, "atmodem", chat);
 	ofono_netreg_create(modem, 0, "atmodem", chat);
 	ofono_call_meter_create(modem, 0, "atmodem", chat);
 	ofono_call_barring_create(modem, 0, "atmodem", chat);
-	ofono_sms_create(modem, 0, "atmodem", chat);
+	ofono_sms_create(modem, vendor, "atmodem", chat);
 	ofono_phonebook_create(modem, 0, "atmodem", chat);
 
 	mw = ofono_message_waiting_create(modem);
-- 
1.7.10


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

* Re: [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support
  2012-05-31 14:01 [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support pablo
  2012-05-31 14:01 ` [PATCH 1/2] udev: add Wavecom support pablo
  2012-05-31 14:01 ` [PATCH 2/2] plugins: add support for Wavecom Q2403/Q2686 modems pablo
@ 2012-05-31 14:50 ` Denis Kenzior
  2 siblings, 0 replies; 4+ messages in thread
From: Denis Kenzior @ 2012-05-31 14:50 UTC (permalink / raw)
  To: ofono

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

Hi Pablo,

On 05/31/2012 09:01 AM, pablo(a)gnumonks.org wrote:
> From: Pablo Neira Ayuso<pablo@gnumonks.org>
>
> Hi!
>
> This patch adds the missing bits to fully support Wavecom
> Q2403/Q2686 modems.
>
> Thanks to Denis Kenzior for providing useful tips to get a
> much nicer patch.
>
> Pablo Neira Ayuso (2):
>    udev: add Wavecom support
>    plugins: add support for Wavecom Q2403/Q2686 modems
>
>   drivers/atmodem/sim.c |    3 +++
>   plugins/udev.c        |   27 +++++++++++++++++++++++++++
>   plugins/wavecom.c     |   21 +++++++++++++++++++--
>   3 files changed, 49 insertions(+), 2 deletions(-)
>

Everything in this series has been pushed upstream.  I did split patch 
#2 into two commits.

Thanks,
-Denis

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

end of thread, other threads:[~2012-05-31 14:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-31 14:01 [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support pablo
2012-05-31 14:01 ` [PATCH 1/2] udev: add Wavecom support pablo
2012-05-31 14:01 ` [PATCH 2/2] plugins: add support for Wavecom Q2403/Q2686 modems pablo
2012-05-31 14:50 ` [PATCH 0/2] v3: Wavecom Q2403/Q2686 modems support Denis Kenzior

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.