[oe-commits] org.oe.dev merge of '6ba440770253a20d17a68175abe67875c69ce828'

rwhitby commit openembedded-commits at lists.openembedded.org
Mon Sep 24 09:18:46 UTC 2007


merge of '6ba440770253a20d17a68175abe67875c69ce828'
     and 'd68560eb3e0b38837e6e007a6f82559194d984da'

Author: rwhitby at nslu2-linux.org
Branch: org.openembedded.dev
Revision: e3fa4ab0e51ec72d171b5d973d3cdbdafe22b60c
ViewMTN: http://monotone.openembedded.org/revision/info/e3fa4ab0e51ec72d171b5d973d3cdbdafe22b60c
Files:
1
packages/meta/slugos-packages.bb
packages/redboot-utils/fis_1.0.bb
packages/dbus/dbus/fix-segfault.patch
packages/alsa/alsa-state/a780
packages/alsa/alsa-state/a780/asound.state
packages/evince/evince_2.20.0.bb
packages/gsm/files/0001-Introduce-ports.patch
packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch
packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch
packages/gsm/files/0004-Handle-read-and-write-return-values.patch
packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch
packages/gsm/files/024_sms-text-in-bracket.patch
packages/gsm/files/025_sms-status-report.patch
packages/gsm/files/027_phonebook-find-and-read-range-support.patch
packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch
packages/libpng/libpng-native_1.2.20.bb
packages/libpng/libpng_1.2.20.bb
packages/mplayer/files/simple_idct_armv5te.S
packages/openmoko2/moko-gtk-engine_svn.bb
conf/distro/include/insane-srcrevs.inc
conf/distro/include/moko-autorev.inc
conf/distro/include/sane-srcrevs.inc
packages/alsa/alsa-state.bb
packages/binutils/binutils-cross.inc
packages/dbus/dbus.inc
packages/dbus/dbus_1.0.1.bb
packages/dbus/dbus_1.0.2.bb
packages/gnome/epiphany_2.19.6.bb
packages/gsm/files/default
packages/gsm/libgsmd_svn.bb
packages/linux/linux-ezx-2.6.21/a780/defconfig
packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX
packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch
packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch
packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch
packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch
packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch
packages/linux/linux-ezx-2.6.21/patches/index.html
packages/linux/linux-ezx-2.6.21/patches/series
packages/linux/linux-ezx_2.6.21.bb
packages/mplayer/files/makefile-nostrip-svn.patch
packages/mplayer/mplayer_svn.bb
packages/openmoko2/libmokoui2_svn.bb
packages/openmoko2/openmoko-session2.bb
Diffs:

#
# mt diff -r6ba440770253a20d17a68175abe67875c69ce828 -re3fa4ab0e51ec72d171b5d973d3cdbdafe22b60c
#
# 
# 
# patch "packages/meta/slugos-packages.bb"
#  from [738a66a4cd05dd74381dce0949ddcd547be2497f]
#    to [3e624519aa3c29fb9c243930483b6363f1b191b9]
# 
# patch "packages/redboot-utils/fis_1.0.bb"
#  from [423fde1a30e871e390b48542349b88efb3a07ac9]
#    to [16fa3c9f589d8b24e84de8555dad50affd97b735]
# 
============================================================
--- packages/meta/slugos-packages.bb	738a66a4cd05dd74381dce0949ddcd547be2497f
+++ packages/meta/slugos-packages.bb	3e624519aa3c29fb9c243930483b6363f1b191b9
@@ -5,7 +5,7 @@ LICENSE = "MIT"
 DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
 HOMEPAGE = "http://www.nslu2-linux.org"
 LICENSE = "MIT"
-PR = "r35"
+PR = "r36"
 CONFLICTS = "db3"
 
 COMPATIBLE_MACHINE = "nslu2"
@@ -37,6 +37,7 @@ SLUGOS_PACKAGES = "\
 	binutils \
 	bison \
 	bluez-utils \
+	bluez-hcidump \
 	bogofilter \
 	boost \
 	bridge-utils \
============================================================
--- packages/redboot-utils/fis_1.0.bb	423fde1a30e871e390b48542349b88efb3a07ac9
+++ packages/redboot-utils/fis_1.0.bb	16fa3c9f589d8b24e84de8555dad50affd97b735
@@ -1,7 +1,7 @@ DESCRIPTION = "Tool to edit the Redboot 
 DESCRIPTION = "Tool to edit the Redboot FIS partition layout from userspace"
-PR = "r4"
+PR = "r5"
 
-SRC_URI = "svn://svn.nslu2-linux.org/svnroot/fis;module=trunk;proto=http"
+SRC_URI = "svn://svn.nslu2-linux.org/svnroot/fis;module=trunk;proto=http;rev=6"
 S="${WORKDIR}/trunk"
 
 export CFLAGS += "--std=c99"


#
# mt diff -rd68560eb3e0b38837e6e007a6f82559194d984da -re3fa4ab0e51ec72d171b5d973d3cdbdafe22b60c
#
# 
# 
# delete "packages/dbus/dbus/fix-segfault.patch"
# 
# add_dir "packages/alsa/alsa-state/a780"
# 
# add_file "packages/alsa/alsa-state/a780/asound.state"
#  content [4dcd614c25848709bf9253b66bdef488e0b5d69e]
# 
# add_file "packages/evince/evince_2.20.0.bb"
#  content [34ce863fa5246e0dc1a81e7faafdb04621146434]
# 
# add_file "packages/gsm/files/0001-Introduce-ports.patch"
#  content [495de01c198c9aef61386914d9f83972993bec04]
# 
# add_file "packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch"
#  content [727397828e25f970deb5eba71a00c67fe7d61fcc]
# 
# add_file "packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch"
#  content [1c0d8ab106bd79dd2536d7e17ca5200b0dc79d8b]
# 
# add_file "packages/gsm/files/0004-Handle-read-and-write-return-values.patch"
#  content [edea7b387edd3e3a8ea4acef972c4c1de31289fb]
# 
# add_file "packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch"
#  content [654b448848c4dd43294f2b0100d135cd0d3cf716]
# 
# add_file "packages/gsm/files/024_sms-text-in-bracket.patch"
#  content [456608cfb3f474e5dc2890863b132eb46e113d27]
# 
# add_file "packages/gsm/files/025_sms-status-report.patch"
#  content [47651ed89a0cad3619e60adbfb40a50747b7e8bb]
# 
# add_file "packages/gsm/files/027_phonebook-find-and-read-range-support.patch"
#  content [9bb08a6fe29c664fec3fbeae4954ee8b4b81e3e2]
# 
# add_file "packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch"
#  content [701d0d8e6dbaca2aa88ca100d44e5735e64c5b8f]
# 
# add_file "packages/libpng/libpng-native_1.2.20.bb"
#  content [f167e03f1cc222c183f8550ccbd0bd04fb3381e4]
# 
# add_file "packages/libpng/libpng_1.2.20.bb"
#  content [ba2b48a9b944d81e98b332c04a4cc1932a682fd4]
# 
# add_file "packages/mplayer/files/simple_idct_armv5te.S"
#  content [fc4be210fa21372489890682636c49da9fa17135]
# 
# add_file "packages/openmoko2/moko-gtk-engine_svn.bb"
#  content [07a7a3d2f336737f5cdd0625996442c5b9687030]
# 
# patch "conf/distro/include/insane-srcrevs.inc"
#  from [77f0eea1a733be785bb5acfaed64815e5f62f68a]
#    to [6e7da1aa2c6130db2db09ae85664c3d6180a620c]
# 
# patch "conf/distro/include/moko-autorev.inc"
#  from [cb196173c3a1b600e59b8b160c7290b856d0faa5]
#    to [2adf1e65425295ff0b2e60d7b25f0d0f3cddb224]
# 
# patch "conf/distro/include/sane-srcrevs.inc"
#  from [856bf7364f21ec188e4ce2f7c98e3a9a8dd0c6b7]
#    to [ddaac7ee320dd8ad4baff5a250bd943c0a5c9e96]
# 
# patch "packages/alsa/alsa-state.bb"
#  from [87b0604266eaf34469b6a192b574a846d8b290d5]
#    to [5a71abc6d18c594bd887abadbe6d7af926ff1301]
# 
# patch "packages/binutils/binutils-cross.inc"
#  from [2a9f9e4a843e43fc6356fa81e25f167e69bdd8d2]
#    to [5220c374da49786833122769e3c53593a8202d99]
# 
# patch "packages/dbus/dbus.inc"
#  from [c8b2145db8681919b67a8e50346da67c283e0233]
#    to [f2c229e2a89e9b3da17fe11252f2d44b73ce7007]
# 
# patch "packages/dbus/dbus_1.0.1.bb"
#  from [b55c8edfb32c457a02e1e498f6b14acebc1bbf8e]
#    to [e01bd6fd36c624af9c31cd0f6020204db116a678]
# 
# patch "packages/dbus/dbus_1.0.2.bb"
#  from [a8ce6355ed3da04736b057936a57f1aeed630228]
#    to [e167627a54c23293d250970ba68ae39a4a15fa60]
# 
# patch "packages/gnome/epiphany_2.19.6.bb"
#  from [77e6f8b09f3aef06dc17ffec1072c16e0554132b]
#    to [512e68fe35d35c49f00a87261347fa9027d99af6]
# 
# patch "packages/gsm/files/default"
#  from [4f5482852a023458bb03627f6e4033dc88afaba6]
#    to [fff8f5a5e6aa3b4c82a98e13da7f097b7ee15b91]
# 
# patch "packages/gsm/libgsmd_svn.bb"
#  from [4cba1496c29bd744fd3f2e590315d449dbe0b940]
#    to [8fae0d7334ab46af3afa0e6fadd8b9b7e7441a06]
# 
# patch "packages/linux/linux-ezx-2.6.21/a780/defconfig"
#  from [0e933c30a4d63a963503d4f698df5f63d7e6e277]
#    to [f9631dffecc5e6e24b6e67894d393c7a2bd167cf]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX"
#  from [0957542823ce200c987b90229c09b1f241b31129]
#    to [cc114d60321d96d4b3fbb7521674c768df2b07d6]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch"
#  from [f77d63718749f790e05d457841ea6d193c0797cd]
#    to [f76cfad1cf632fbdccf9e774251130df373d9e1c]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch"
#  from [f9f2a5e0463bcd8fc66b335e3d5b662e155cb5cc]
#    to [5ea57d6607f060b9fbee31cf4214bbe0fd8b1329]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch"
#  from [29ee8f5ee384b18b942b0ec97bbf2863060ff82a]
#    to [0f9cc6315d859bc506bd8e94753ef7a2c8065044]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch"
#  from [94c28b6a622e7780a5b713495bdf60040bbf6a47]
#    to [57b7f73511468ddffaba28b95d19ed84d5a2eb8a]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch"
#  from [7032ffa72e6985ba4f8a0127460bf0a44993a522]
#    to [2c2252c7f3cb6ebbb8009b3e9ce084e0873e107d]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/index.html"
#  from [ee7841873ec6f4e23154b8d4ea96d9158dcfb788]
#    to [d69eb69c21a746109581d807596c32a688aad0fa]
# 
# patch "packages/linux/linux-ezx-2.6.21/patches/series"
#  from [5d4e5f0306d194f5628bbf152d8ab695698e62d5]
#    to [e0ee47911741d71f5de5441dd40ff435eda64fa7]
# 
# patch "packages/linux/linux-ezx_2.6.21.bb"
#  from [8c02835ff0311dd8dfb6c691f61ccde14407e0ab]
#    to [2fa81f07979a54fc0cb831c107b4aef98834a892]
# 
# patch "packages/mplayer/files/makefile-nostrip-svn.patch"
#  from [0464c9bb63ca08855ae73e041a81742fa9dc24ad]
#    to [a56997c18d0d3b9bbe0a65391debcd74767affc1]
# 
# patch "packages/mplayer/mplayer_svn.bb"
#  from [4bd662cb276c19ccc5ae33d6f9d95b0adec0f0cc]
#    to [3c711098eaa0aee3aca128c98616d85649428eea]
# 
# patch "packages/openmoko2/libmokoui2_svn.bb"
#  from [9e415b0e1b1fa3a3d28466bdab59e21147011500]
#    to [fc7b7b01cd80ded36029ab7f5bcebade47a07051]
# 
# patch "packages/openmoko2/openmoko-session2.bb"
#  from [2f8ec02e7147e7aad394dad1204d210e52626bc8]
#    to [496842695053a5e4f7cd66d4e569a3903302e8ae]
# 
============================================================
--- packages/alsa/alsa-state/a780/asound.state	4dcd614c25848709bf9253b66bdef488e0b5d69e
+++ packages/alsa/alsa-state/a780/asound.state	4dcd614c25848709bf9253b66bdef488e0b5d69e
@@ -0,0 +1,80 @@
+state.EZX {
+	control.1 {
+		comment.access 'read write'
+		comment.type INTEGER
+		comment.count 1
+		comment.range '0 - 15'
+		iface MIXER
+		name 'Output gain'
+		value 9
+	}
+	control.2 {
+		comment.access 'read write'
+		comment.type INTEGER
+		comment.count 1
+		comment.range '0 - 31'
+		iface MIXER
+		name 'Input gain'
+		value 14
+	}
+	control.3 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Input Mixer A3 Switch'
+		value true
+	}
+	control.4 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Input Mixer A5 Switch'
+		value true
+	}
+	control.5 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Output Mixer A1 Switch'
+		value true
+	}
+	control.6 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Output Mixer A2 Switch'
+		value true
+	}
+	control.7 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Output Mixer AR Switch'
+		value true
+	}
+	control.8 {
+		comment.access 'read write'
+		comment.type BOOLEAN
+		comment.count 1
+		iface MIXER
+		name 'Output Mixer AL Switch'
+		value true
+	}
+	control.9 {
+		comment.access 'read write'
+		comment.type ENUMERATED
+		comment.count 1
+		comment.item.0 '2ch'
+		comment.item.1 '2->1ch'
+		comment.item.2 '2->1ch -3db'
+		comment.item.3 '2->1ch -6db'
+		iface MIXER
+		name Downmixer
+		value '2ch'
+	}
+}
============================================================
--- packages/evince/evince_2.20.0.bb	34ce863fa5246e0dc1a81e7faafdb04621146434
+++ packages/evince/evince_2.20.0.bb	34ce863fa5246e0dc1a81e7faafdb04621146434
@@ -0,0 +1,19 @@
+DESCRIPTION = "Evince is a document viewer for document formats like pdf, ps, djvu."
+LICENSE = "GPL"
+SECTION = "x11/office"
+DEPENDS = "tiff djvulibre libxt espgs gnome-doc-utils poppler libxml2 gtk+ gnome-vfs gconf libglade gnome-keyring "
+RDEPENDS = "espgs "
+RRECOMMENDS = "gnome-vfs-plugin-file"
+PR = "r2"
+
+inherit gnome pkgconfig gtk-icon-cache
+
+SRC_URI += "file://no-icon-theme.diff;patch=1;pnum=0 \
+            file://no-help-dir.patch;patch=1"
+
+EXTRA_OECONF = " --without-libgnome \
+                 --disable-thumbnailer \
+		 --disable-scrollkeeper \
+		 --enable-djvu \
+		 "
+
============================================================
--- packages/gsm/files/0001-Introduce-ports.patch	495de01c198c9aef61386914d9f83972993bec04
+++ packages/gsm/files/0001-Introduce-ports.patch	495de01c198c9aef61386914d9f83972993bec04
@@ -0,0 +1,710 @@
+From 516d67c679101d1503dbd4c0613bcd6ff1b604e4 Mon Sep 17 00:00:00 2001
+From: Andrzej Zaborowski <balrog at zabor.org>
+Date: Wed, 19 Sep 2007 14:03:28 +0200
+Subject: [PATCH] Introduce ports.
+
+---
+ include/gsmd/atcmd.h        |    2 +-
+ include/gsmd/gsmd.h         |    7 +-
+ include/gsmd/uart.h         |   28 ++++++
+ include/gsmd/vendorplugin.h |    4 +-
+ src/gsmd/Makefile.am        |    2 +-
+ src/gsmd/atcmd.c            |  177 +++++++++++++++++---------------------
+ src/gsmd/gsmd.c             |   64 ++------------
+ src/gsmd/uart.c             |  202 +++++++++++++++++++++++++++++++++++++++++++
+ 8 files changed, 328 insertions(+), 158 deletions(-)
+ create mode 100644 include/gsmd/uart.h
+ create mode 100644 src/gsmd/uart.c
+
+diff --git a/include/gsmd/atcmd.h b/include/gsmd/atcmd.h
+index 0d6c62a..a1af6a0 100644
+--- a/include/gsmd/atcmd.h
++++ b/include/gsmd/atcmd.h
+@@ -9,7 +9,7 @@ typedef int atcmd_cb_t(struct gsmd_atcmd *cmd, void *ctx, char *resp);
+ 
+ extern struct gsmd_atcmd *atcmd_fill(const char *cmd, int rlen, atcmd_cb_t *cb, void *ctx, u_int16_t id);
+ extern int atcmd_submit(struct gsmd *g, struct gsmd_atcmd *cmd);
+-extern int atcmd_init(struct gsmd *g, int sockfd);
++extern int atcmd_init(struct gsmd *g, struct gsmd_port *port);
+ extern void atcmd_drain(int fd);
+ 
+ #endif /* __GSMD__ */
+diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h
+index ed334f1..4afdf66 100644
+--- a/include/gsmd/gsmd.h
++++ b/include/gsmd/gsmd.h
+@@ -10,6 +10,7 @@
+ #include <gsmd/machineplugin.h>
+ #include <gsmd/vendorplugin.h>
+ #include <gsmd/select.h>
++#include <gsmd/uart.h>
+ #include <gsmd/state.h>
+ 
+ void *gsmd_tallocs;
+@@ -52,6 +53,7 @@ enum llparse_state {
+ #define MLPARSE_BUF_SIZE	65535
+ 
+ struct llparser {
++	struct gsmd_port *port;
+ 	enum llparse_state state;
+ 	unsigned int len;
+ 	unsigned int flags;
+@@ -70,7 +72,7 @@ struct gsmd;
+ struct gsmd {
+ 	unsigned int flags;
+ 	int interpreter_ready;
+-	struct gsmd_fd gfd_uart;
++	struct gsmd_uart uart;
+ 	struct gsmd_fd gfd_sock;
+ 	struct llparser llp;
+ 	struct llist_head users;
+@@ -81,9 +83,10 @@ struct gsmd {
+ 	struct gsmd_device_state dev_state;
+ 
+ 	struct llist_head operators;		/* cached list of operator names */
+-	unsigned char *mlbuf;		/* ml_parse buffer */
++	char *mlbuf;			/* ml_parse buffer */
+ 	unsigned int mlbuf_len;
+ 	int mlunsolicited;
++	int clear_to_send;
+ };
+ 
+ struct gsmd_user {
+diff --git a/include/gsmd/uart.h b/include/gsmd/uart.h
+new file mode 100644
+index 0000000..a006fa7
+--- /dev/null
++++ b/include/gsmd/uart.h
+@@ -0,0 +1,28 @@
++#ifndef __GSMD_UART_H
++#define __GSMD_UART_H
++
++#ifdef __GSMD__
++
++struct gsmd_port {
++	int (*write)(struct gsmd_port *port, const char data[], int len);
++	int (*set_break)(struct gsmd_port *port, int state);
++	/* more parameters here */
++	int (*newdata_cb)(void *opaque, const char data[], int len);
++	void *newdata_opaque;
++};
++
++struct gsmd_uart {
++	struct gsmd_port port;
++	struct gsmd_fd gfd;
++	char txfifo[2048];
++	int tx_start;
++	int tx_len;
++};
++
++extern int set_baudrate(int fd, int baudrate, int hwflow);
++extern void uart_drain(int fd);
++extern int uart_init(struct gsmd_uart *uart, int sockfd);
++
++#endif /* __GSMD__ */
++
++#endif
+diff --git a/include/gsmd/vendorplugin.h b/include/gsmd/vendorplugin.h
+index 1911fef..1c82790 100644
+--- a/include/gsmd/vendorplugin.h
++++ b/include/gsmd/vendorplugin.h
+@@ -11,8 +11,8 @@ struct gsmd_unsolicit;
+ 
+ struct gsmd_vendor_plugin {
+ 	struct llist_head list;
+-	unsigned char *name;
+-	unsigned char *ext_chars;
++	char *name;
++	char *ext_chars;
+ 	unsigned int num_unsolicit;
+ 	const struct gsmd_unsolicit *unsolicit;
+ 	int (*detect)(struct gsmd *g);
+diff --git a/src/gsmd/Makefile.am b/src/gsmd/Makefile.am
+index 9ac45ee..110b757 100644
+--- a/src/gsmd/Makefile.am
++++ b/src/gsmd/Makefile.am
+@@ -13,7 +13,7 @@ sbin_PROGRAMS = gsmd
+ gsmd_CFLAGS = -D PLUGINDIR=\"$(plugindir)\"
+ gsmd_SOURCES = gsmd.c atcmd.c select.c machine.c vendor.c unsolicited.c log.c \
+ 	       usock.c talloc.c timer.c operator_cache.c ext_response.c \
+-	       sms_cb.c sms_pdu.c
++	       sms_cb.c sms_pdu.c uart.c
+ gsmd_LDADD = -ldl
+ gsmd_LDFLAGS = -Wl,--export-dynamic
+ 
+diff --git a/src/gsmd/atcmd.c b/src/gsmd/atcmd.c
+index 2ef6a10..27dfa41 100644
+--- a/src/gsmd/atcmd.c
++++ b/src/gsmd/atcmd.c
+@@ -159,7 +159,8 @@ static int llparse_byte(struct llparser *llp, char byte)
+ 	return ret;
+ }
+ 
+-static int llparse_string(struct llparser *llp, char *buf, unsigned int len)
++static int llparse_string(struct llparser *llp, const char *buf,
++		unsigned int len)
+ {
+ 	while (len--) {
+ 		int rc = llparse_byte(llp, *(buf++));
+@@ -187,6 +188,55 @@ static int llparse_init(struct llparser *llp)
+ 	return 0;
+ }
+ 
++/* See if we can now send more commands to the port */
++static void atcmd_wake_queue(struct gsmd *g)
++{
++	int len, rc;
++	char *cr;
++
++	/* write pending commands to UART */
++	while (g->interpreter_ready && g->clear_to_send) {
++		struct gsmd_atcmd *pos, *pos2;
++		llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) {
++			cr = strchr(pos->cur, '\n');
++			if (cr)
++				len = cr - pos->cur;
++			else
++				len = pos->buflen;
++			rc = g->llp.port->write(g->llp.port, pos->cur, len);
++			if (rc == 0) {
++				gsmd_log(GSMD_ERROR,
++						"write returns 0, aborting\n");
++				break;
++			}
++			if (cr && rc == len)
++				rc ++;	/* Skip the \n */
++			pos->buflen -= rc;
++			pos->cur += rc;
++			g->llp.port->write(g->llp.port, "\r", 1);
++
++			if (!pos->buflen) {
++				/* success: remove from global list of
++				 * to-be-sent atcmds */
++				llist_del(&pos->list);
++				/* append to global list of executing atcmds */
++				llist_add_tail(&pos->list, &g->busy_atcmds);
++
++				/* we only send one cmd at the moment */
++				g->clear_to_send = 0;
++				break;
++			} else {
++				/* The write was short or the atcmd has more
++				 * lines to send after a "> ".  */
++				if (rc < len)
++					break;
++				g->clear_to_send = 0;
++				break;
++			}
++		}
++	}
++}
++
+ /* mid-level parser */
+ 
+ static int parse_final_result(const char *res)
+@@ -216,6 +266,7 @@ static int ml_parse(const char *buf, int len, void *ctx)
+ 		g->interpreter_ready = 1;
+ 		gsmd_initsettings(g);
+ 		gmsd_alive_start(g);
++		atcmd_wake_queue(g);
+ 		return 0;
+ 	}
+ 
+@@ -316,6 +367,7 @@ static int ml_parse(const char *buf, int len, void *ctx)
+ 				} else {
+ 					DEBUGP("Calling cmd->cb()\n");
+ 					cmd->resp = g->mlbuf;
++					g->mlbuf[g->mlbuf_len] = 0;
+ 					rc = cmd->cb(cmd, cmd->ctx, cmd->resp);
+ 					DEBUGP("Clearing mlbuf\n");
+ 				}
+@@ -370,12 +422,15 @@ static int ml_parse(const char *buf, int len, void *ctx)
+ 	if (g->mlbuf_len)
+ 		g->mlbuf[g->mlbuf_len ++] = '\n';
+ 	DEBUGP("Appending buf to mlbuf\n");
+-	if (len > MLPARSE_BUF_SIZE - g->mlbuf_len)
++	if (len > MLPARSE_BUF_SIZE - g->mlbuf_len) {
+ 		len = MLPARSE_BUF_SIZE - g->mlbuf_len;
++		gsmd_log(GSMD_NOTICE, "g->mlbuf overrun\n");
++	}
+ 	memcpy(g->mlbuf + g->mlbuf_len, buf, len);
+ 	g->mlbuf_len += len;
+ 
+ 	if (g->mlunsolicited) {
++		g->mlbuf[g->mlbuf_len] = 0;
+ 		rc = unsolicited_parse(g, g->mlbuf, g->mlbuf_len,
+ 				strchr(g->mlbuf, ':') + 1);
+ 		if (rc == -EAGAIN) {
+@@ -422,8 +477,11 @@ final_cb:
+ 
+ 	/* if we're finished with current commands, but still have pending
+ 	 * commands: we want to WRITE again */
+-	if (llist_empty(&g->busy_atcmds) && !llist_empty(&g->pending_atcmds))
+-		g->gfd_uart.when |= GSMD_FD_WRITE;
++	if (llist_empty(&g->busy_atcmds)) {
++		g->clear_to_send = 1;
++		if (!llist_empty(&g->pending_atcmds))
++			atcmd_wake_queue(g);
++	}
%s
>>> DIFF TRUNCATED @ 16K






More information about the Openembedded-commits mailing list