libgsmd: gsmd/magician: add patch to wait for the interpreter
authorPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 29 Mar 2007 15:33:02 +0000 (15:33 +0000)
committerPhilipp Zabel <philipp.zabel@gmail.com>
Thu, 29 Mar 2007 15:33:02 +0000 (15:33 +0000)
to be ready before sending

packages/gsm/files/magician/interpreter-ready.patch [new file with mode: 0644]
packages/gsm/libgsmd_svn.bb

diff --git a/packages/gsm/files/magician/interpreter-ready.patch b/packages/gsm/files/magician/interpreter-ready.patch
new file mode 100644 (file)
index 0000000..cc6b9c6
--- /dev/null
@@ -0,0 +1,47 @@
+Index: gsm/include/gsmd/gsmd.h
+===================================================================
+--- gsm.orig/include/gsmd/gsmd.h       2007-03-29 17:07:10.000000000 +0200
++++ gsm/include/gsmd/gsmd.h    2007-03-29 17:07:43.000000000 +0200
+@@ -58,6 +58,7 @@
+ struct gsmd {
+       unsigned int flags;
++      int interpreter_ready;
+       struct gsmd_fd gfd_uart;
+       struct gsmd_fd gfd_sock;
+       struct llparser llp;
+Index: gsm/src/gsmd/atcmd.c
+===================================================================
+--- gsm.orig/src/gsmd/atcmd.c  2007-03-29 17:06:01.000000000 +0200
++++ gsm/src/gsmd/atcmd.c       2007-03-29 17:08:27.000000000 +0200
+@@ -183,6 +183,7 @@
+        * an empty string or that 'ready' string, we need to init the modem */
+       if (strlen(buf) == 0 ||
+           !strcmp(buf, "AT-Command Interpreter ready")) {
++              g->interpreter_ready = 1;
+               gsmd_initsettings(g);
+               return 0;
+       }
+@@ -372,7 +373,7 @@
+       }
+       /* write pending commands to UART */
+-      if (what & GSMD_FD_WRITE) {
++      if ((what & GSMD_FD_WRITE) && g->interpreter_ready) {
+               struct gsmd_atcmd *pos, *pos2;
+               llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) {
+                       len = strlen(pos->buf);
+Index: gsm/src/gsmd/gsmd.c
+===================================================================
+--- gsm.orig/src/gsmd/gsmd.c   2007-03-29 17:06:04.000000000 +0200
++++ gsm/src/gsmd/gsmd.c        2007-03-29 17:08:59.000000000 +0200
+@@ -291,7 +291,8 @@
+       gsmd_vendor_plugin_find(&g);
+-      gsmd_initsettings(&g);
++      if (g.interpreter_ready)
++              gsmd_initsettings(&g);
+       gsmd_opname_init(&g);
index d84d363..910fa26 100644 (file)
@@ -12,6 +12,7 @@ SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
 S = "${WORKDIR}/gsm"
 
 SRC_URI_append_magician = " file://vendor-tihtc.patch;patch=1 \
+                            file://interpreter-ready.patch;patch=1 \
                             file://ldisc.patch;patch=1"
 
 inherit autotools pkgconfig update-rc.d