From 8fefce8f2207333a88439bccce5f99278ef47b85 Mon Sep 17 00:00:00 2001 From: Rod Whitby Date: Tue, 18 Sep 2007 02:32:41 +0000 Subject: slugos-packages: Added bluez-hcidump --- packages/meta/slugos-packages.bb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb index 26b89ff000..6b34fc187a 100644 --- a/packages/meta/slugos-packages.bb +++ b/packages/meta/slugos-packages.bb @@ -5,7 +5,7 @@ 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 \ -- cgit v1.2.3 From 94dbc414617838abb51de8b76a2aad14e98161a5 Mon Sep 17 00:00:00 2001 From: Rod Whitby Date: Tue, 18 Sep 2007 02:32:51 +0000 Subject: fis: Update to svn rev 6 --- packages/redboot-utils/fis_1.0.bb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/redboot-utils/fis_1.0.bb b/packages/redboot-utils/fis_1.0.bb index 87246f2717..e1ac56448b 100644 --- a/packages/redboot-utils/fis_1.0.bb +++ b/packages/redboot-utils/fis_1.0.bb @@ -1,7 +1,7 @@ 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" -- cgit v1.2.3 From 4b38215b677e37bc93757f1841ae0b390dc46033 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 19 Sep 2007 12:01:58 +0000 Subject: gcc 4.1.2: disable fortran as it doesn't build for everybody (it works fine on the autobuilder and my home machine) --- packages/gcc/gcc_4.1.2.bb | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb index 1d76a48d3b..5d01163d94 100644 --- a/packages/gcc/gcc_4.1.2.bb +++ b/packages/gcc/gcc_4.1.2.bb @@ -38,7 +38,6 @@ SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 " #Set the fortran bits # ',fortran' or '', not 'f77' like gcc3 had FORTRAN = "" -FORTRAN_linux-gnueabi = ",fortran" #Set the java bits JAVA = "" -- cgit v1.2.3 From 2d93fd391935e63504acc767c0194412651c8a56 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Wed, 19 Sep 2007 14:48:41 +0000 Subject: matchbox-keyboard-im: apply small-screen patch --- packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb index 16d5f0e2e6..efdaaaa06a 100644 --- a/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb +++ b/packages/matchbox-keyboard/matchbox-keyboard-inputmethod_svn.bb @@ -6,10 +6,11 @@ RPROVIDES_${PN} = matchbox-keyboard #DEFAULT_PREFERENCE = "-1" SECTION = "x11" PV = "0.0+svnr${SRCREV}" -PR = "r5" +PR = "r6" SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=matchbox-keyboard;proto=http \ - file://matchbox-keyboard-applet.patch;patch=1;pnum=0 \ + file://smallscreen-fontsize.patch;patch=1 \ + file://matchbox-keyboard-applet.patch;patch=1;pnum=0 \ file://80matchboxkeyboard \ file://matchbox-keyboard-hide-delay.patch;patch=1" -- cgit v1.2.3 From df3d0775db1ad3459bddcf9db1b28a7b87c28997 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 19 Sep 2007 18:54:29 +0000 Subject: Update SVN revision of eglibc. --- conf/distro/include/sane-srcrevs.inc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index ba5040ba07..0c53d56605 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -8,9 +8,9 @@ SRCREV_pn-bfin-uclibc ?= "1806" SRCREV_pn-dfu-util ?= "2866" SRCREV_pn-dfu-util-native ?= "2866" -SRCREV_pn-eglibc ?= "3468" -SRCREV_pn-eglibc-initial ?= "3468" -SRCREV_pn-eglibc-intermediate ?= "3468" +SRCREV_pn-eglibc ?= "3531" +SRCREV_pn-eglibc-initial ?= "3531" +SRCREV_pn-eglibc-intermediate ?= "3531" SRCREV_pn-ezxd ?= "2058" SRCREV_pn-elf2flt="1786" SRCREV_pn-fbgrab-viewer-native ?= "1943" -- cgit v1.2.3 From f727b6fbab3e8b22a0a55d1a1dd783b4ebe64f1d Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Wed, 19 Sep 2007 22:59:40 +0000 Subject: navit: Add checksums for navit tgz. Improve performance on arm (thanks cp15) --- conf/checksums.ini | 4 ++++ packages/navit/navit_0.0.1.bb | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/conf/checksums.ini b/conf/checksums.ini index 9e2b73cc5e..27b9e87e92 100644 --- a/conf/checksums.ini +++ b/conf/checksums.ini @@ -11914,3 +11914,7 @@ sha256=9bb7412a03a76da4219215d2f92addf71305ab3fcc7d9315bb6f9c41fbe851fd md5=e34320c97d768191217424af64de380a sha256=f8e9efccbccbe1326a0a2579eb86651cf65e0937a38fae1afaec2269208d24a1 +[http://downloads.sourceforge.net/navit/navit-0.0.1.tar.gz] +md5=521fbc102a804f7c26d4240b3f970380 +sha256=d79151209bf6b2d470773968b62258c56313bf857cda8ef27f8e321dd1a9d084 + diff --git a/packages/navit/navit_0.0.1.bb b/packages/navit/navit_0.0.1.bb index 947d2b3ba8..74ce41b78f 100644 --- a/packages/navit/navit_0.0.1.bb +++ b/packages/navit/navit_0.0.1.bb @@ -2,13 +2,13 @@ DESCRIPTION = "Navit is a car navigation system with routing engine." LICENSE = "GPL" DEPENDS = "glib-2.0 gtk+" PV = "0.0.1" -PR = "r1" +PR = "r2" inherit autotools SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz \ file://compile-fix.patch;patch=1" -EXTRA_OECONF = "--disable-gui-sdl --disable-binding-python" +EXTRA_OECONF = "--disable-gui-sdl --disable-binding-python --enable-avoid-unaligned --enable-avoid-float" FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug" -- cgit v1.2.3 From 1840d404a9da0ef34a42659520001366cc701877 Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Thu, 20 Sep 2007 09:46:39 +0000 Subject: mplayer/mplayer_svn.bb : update the svn build again and also add ssvb's turbo speed IDCT routine from https://garage.maemo.org/projects/mplayer/ --- packages/mplayer/files/simple_idct_armv5te.S | 715 +++++++++++++++++++++++++++ packages/mplayer/mplayer_svn.bb | 88 ++-- 2 files changed, 767 insertions(+), 36 deletions(-) create mode 100644 packages/mplayer/files/simple_idct_armv5te.S diff --git a/packages/mplayer/files/simple_idct_armv5te.S b/packages/mplayer/files/simple_idct_armv5te.S new file mode 100644 index 0000000000..f43fd19785 --- /dev/null +++ b/packages/mplayer/files/simple_idct_armv5te.S @@ -0,0 +1,715 @@ +/* + * Simple IDCT + * + * Copyright (c) 2001 Michael Niedermayer + * Copyright (c) 2006 Mans Rullgard + * Copyright (c) 2007 Siarhei Siamashka + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +.arch armv5te + +/* IMPORTANT: this value should be the same as defined in dsputil.h */ +#define MAX_NEG_CROP 2048 + +/* + * ARM EABI guarantees 8 byte stack alignment, so we can use LDRD instructions + * for accessing stack and load two registers per cycle to improve performance + * on ARM11 and XScale + */ +#ifdef __ARM_EABI__ +#define DWORD_ALIGNED_STACK 1 +#endif + +#define W1 22725 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W2 21407 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W3 19266 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W4 16383 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W5 12873 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W6 8867 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define W7 4520 /* cos(i*M_PI/16)*sqrt(2)*(1<<14) + 0.5 */ +#define ROW_SHIFT 11 +#define COL_SHIFT 20 + +#define W13 (W1 | (W3 << 16)) +#define W26 (W2 | (W6 << 16)) +#define W57 (W5 | (W7 << 16)) + +#define W22 ((-W2 & 0xFFFF) | (W2 << 16)) +#define W44 ((-W4 & 0xFFFF) | (W4 << 16)) +#define W66 ((-W6 & 0xFFFF) | (W6 << 16)) + +#define M51 ((-W5 & 0xFFFF) | ((-W1 & 0xFFFF) << 16)) + + .text + +/* + * a local pool with 64-bit constants for 'idct_rows_armv5te' function, + * we align it at 16 byte boundary in order to ensure that it does not cross + * cache line boundary (occupies only a single cache line) + */ + .balign 16 +w2266idct_rows_armv5te: + .long W22 + .long W66 +w1357idct_rows_armv5te: + .long W13 + .long W57 + +/* + * A rows processing function. Benchmarks on a few video files show that + * about 80-90% of uses of this function have all rows empty except for + * the row[0]. + * + * On entry: + * a1 - row address + * lr - return address + * + * On exit: + * a1 - row address + * + * Registers usage within this function: + * a1 - row address + * a2 - temporary register + * v5, v6, v7, v8 - row data + * v1, v2, v3, v4 - A0, A1, A2 and A3 variables + * a3, a4 - used for loading constants + * ip - temporary register + * lr - temporary register, also holds initial row address value + * to check end of loop condition + */ + .balign 32 + .type idct_rows_armv5te, %function + .func idct_rows_armv5te +idct_rows_armv5te: + str a1, [sp, #-4]! + str lr, [sp, #-4]! + mov lr, a1 + ldrd v7, [a1, #(8 * 16 - 8)]! /* v7 = row[5:4], v8 = row[7:6] */ +1: + ldrd v5, [a1, #-8]! /* v5 = row[1:0], v6 = row[3:2] */ + orrs v1, v7, v8 + cmpeq v1, v6 + cmpeq v1, v5, lsr #16 + bne 2f /* jump to process full row */ + /* only row[0] is not empty here */ + mov v5, v5, lsl #19 + cmp a1, lr + orr v5, v5, v5, lsr #16 + str v5, [a1] + str v5, [a1, #4] + str v5, [a1, #8] + str v5, [a1, #12] + ldrned v7, [a1, #-8]! /* v7 = row[5:4], v8 = row[7:6] */ + bne 1b + ldr pc, [sp], #8 + +2: /* process full row */ + /* the next code fragment calculates A variables */ + + ldr a2, w44 /* a2 = -W4 | (W4 << 16) */ + ldrd a3, w2266idct_rows_armv5te /* a3 = -W2 | (W2 << 16) */ + /* a4 = -W6 | (W6 << 16) */ + mov v1, #(1<<(ROW_SHIFT-1)) + smlatb v1, a2, v5, v1 /* v1 = W4*row[0]+(1<<(ROW_SHIFT-1)) */ + + cmp a1, lr + + smlabb v2, a2, v7, v1 /* v2 = v1 - W4*row[4] */ + smlatb v1, a2, v7, v1 /* v1 = v1 - W4*row[4] */ + + smlabb v3, a4, v6, v2 /* v3 = v2 - W6*row[2] */ + smlabb v4, a3, v6, v1 /* v4 = v1 - W2*row[2] */ + + smlatb v3, a3, v8, v3 /* v3 += W2*row[6] */ + smlabb v4, a4, v8, v4 /* v4 -= W6*row[6] */ + + ldrd a3, w1357idct_rows_armv5te /* a3 = W1 | (W3 << 16) */ + /* a4 = W5 | (W7 << 16) */ + + rsb v2, v3, v2, lsl #1 /* v2 = 2*v2 - v3 */ + rsb v1, v4, v1, lsl #1 /* v1 = 2*v1 - v4 */ + + /* all A variables are now calculated (and stored in v1, v2, v3, v4 registers) */ + + smulbt a2, a3, v5 /* b0 = W1*row[1] */ + smultt ip, a3, v5 /* tmp = W3*row[1] */ + smultt lr, a4, v6 /* -b1 = W7*row[3] */ + smlatt a2, a3, v6, a2 /* b0 += W3*row[3] */ + smlabt lr, a3, v7, lr /* -b1 += W1*row[5] */ + smlabt a2, a4, v7, a2 /* b0 += W5*row[5] */ + smlabt lr, a4, v8, lr /* -b1 += W5*row[7] */ + smlatt a2, a4, v8, a2 /* b0 += W7*row[7] */ + sub lr, ip, lr /* b1 = -b1 - tmp */ + + /* B0 is now calculated (a2), B1 is now calculated (lr) */ + + add ip, v1, a2 /* ip = (A0 + B0) */ + sub a2, v1, a2 /* a2 = (A0 - B0) */ + mov ip, ip, asr #ROW_SHIFT + mov a2, a2, asr #ROW_SHIFT + strh ip, [a1, #0] /* row[0] = (A0 + B0) >> ROW_SHIFT */ + strh a2, [a1, #14] /* row[7] = (A0 - B0) >> ROW_SHIFT */ + + ldr v1, m51 /* v1 = ((-W5 & 0xFFFF) | ((-W1 & 0xFFFF) << 16)) */ + + add ip, v2, lr /* ip = (A1 + B1) */ + sub a2, v2, lr /* ip = (A1 - B1) */ + mov ip, ip, asr #ROW_SHIFT + mov a2, a2, asr #ROW_SHIFT + strh ip, [a1, #2] /* row[1] = (A1 + B1) >> ROW_SHIFT */ + strh a2, [a1, #12] /* row[6] = (A1 - B1) >> ROW_SHIFT */ + + smulbt a2, a4, v5 /* b2 = W5*row[1] */ + smultt v2, a4, v5 /* b3 = W7*row[1] */ + smlatt a2, v1, v6, a2 /* b2 -= W1*row[3] */ + smlatt v2, a3, v7, v2 /* b3 += W3*row[5] */ + smlatt a2, a4, v7, a2 /* b2 += W7*row[5] */ + smlatt v2, v1, v8, v2 /* b3 -= W1*row[7] */ + smlatt a2, a3, v8, a2 /* b2 += W3*row[7] */ + smlabt v2, v1, v6, v2 /* b3 -= W5*row[3] */ + + /* B2 is now calculated (a2), B3 is now calculated (v2) */ + + ldr lr, [sp, #4] + + add ip, v3, a2 /* ip = (A2 + B2) */ + sub a2, v3, a2 /* a2 = (A2 - B2) */ + mov ip, ip, asr #ROW_SHIFT + mov a2, a2, asr #ROW_SHIFT + strh ip, [a1, #4] /* row[2] = (A2 + B2) >> ROW_SHIFT */ + strh a2, [a1, #10] /* row[5] = (A2 - B2) >> ROW_SHIFT */ + + add ip, v4, v2 /* ip = (A3 + B3) */ + sub a2, v4, v2 /* a2 = (A3 - B3) */ + mov ip, ip, asr #ROW_SHIFT + mov a2, a2, asr #ROW_SHIFT + strh ip, [a1, #6] /* row[3] = (A3 + B3) >> ROW_SHIFT */ + strh a2, [a1, #8] /* row[4] = (A3 - B3) >> ROW_SHIFT */ + + ldrned v7, [a1, #-8]! /* v7 = row[5:4], v8 = row[7:6] */ + bne 1b + ldr pc, [sp], #8 + .endfunc + +/******************************************************************************/ + +/* + * a global pool with 32-bit constants (used from all the functions in this module), + * we align it at 32 byte boundary in order to ensure that it does not cross cache + * line boundary (occupies only a single cache line) + */ + .balign 32 +simple_idct_croptbl_armv5te: + .long (ff_cropTbl + MAX_NEG_CROP) +m51: .long M51 +w44: .long W44 +xxx: .long (((1<<(COL_SHIFT-1))/W4)*W4) +m7: .long (-W7) + +/* + * Enforce 8 byte stack alignment if it is not provided by ABI. Used at the beginning + * of global functions. If stack is not properly aligned, real return address is + * pushed to stack (thus fixing stack alignment) and lr register is set to a thunk + * function 'unaligned_return_thunk_armv5te' which is responsible for providing + * correct return from the function in this case. + */ + .macro idct_stackalign_armv5te +#ifndef DWORD_ALIGNED_STACK + tst sp, #4 + strne lr, [sp, #-4]! + adrne lr, unaligned_return_thunk_armv5te +#endif + .endm + +/* + * Process two columns at once. + * + * Registers usage within this macro: + * a1 - column address + * a2 - temporary register + * A0b (v1), A0t (v2), A1b (v3), A1t (v4), A2b (v5), A2t (v6), A3b (v7), A3t (v8) + * B0b (v1), B0t (v2), B1b (v3), B1t (v4), B2b (v5), B2t (v6), B3b (v7), B3t (v8) + * a3, a4 - used for loading constants + * ip - temporary register + * lr - temporary register + * + * Data on exit ('b' suffix - first column (also bottom 16-bits of a register), + * 't' suffix - second column (also top 16-bits of a register)): + * A0b, A0t, A1b, A1t, A2b, A2t, A3b, A3t - are returned in stack + * B0b, B0t, B1b, B1t, B2b, B2t, B3b, B3t - are returned in v1, v2, v3, v4, v5, v6, v7, v8 registers + * a1 - address of the next pair of columns + */ + .macro idct_two_col_armv5te DWORD_CONST_SUFFIX + ldr v4, [a1], #4 /* v4 = col_t[0]:col_b[0] */ + ldr a2, w44 /* a2 = -W4 | (W4 << 16) */ + ldr v1, xxx /* v1 = (((1<<(COL_SHIFT-1))/W4)*W4) */ + ldr ip, [a1, #(16*4 - 4)] /* ip = col_t[4]:col_b[4] */ + ldrd a3, w2266\DWORD_CONST_SUFFIX /* a3 = -W2 | (W2 << 16) */ + /* a4 = -W6 | (W6 << 16) */ + smlatt v2, a2, v4, v1 /* A0t = W4 * (col_t[0] + ((1<<(COL_SHIFT-1))/W4)) */ + smlatb v1, a2, v4, v1 /* A0b = W4 * (col_b[0] + ((1<<(COL_SHIFT-1))/W4)) */ + + ldr lr, [a1, #(16*2 - 4)] /* lr = col_t[2]:col_b[2] */ + + smlabb v3, a2, ip, v1 /* A1b = A0b - W4*col_b[4] */ + smlatb v1, a2, ip, v1 /* A0b = A0b + W4*col_b[4] */ + smlabt v4, a2, ip, v2 /* A1t = A0t - W4*col_t[4] */ + smlatt v2, a2, ip, v2 /* A0t = A0t + W4*col_t[4] */ + + ldr ip, [a1, #(16*6 - 4)] /* ip = col_t[6]:col_b[6] */ + + smlabb v5, a4, lr, v3 /* A2b = A1b - W6*col_b[2] */ + smlabb v7, a3, lr, v1 /* A3b = A0b - W2*col_b[2] */ + smlabt v6, a4, lr, v4 /* A2t = A1t - W6*col_t[2] */ + smlabt v8, a3, lr, v2 /* A3t = A0t - W2*col_t[2] */ + + ldr lr, [a1, #(16*1 - 4)] /* lr = col_t[1]:col_b[1] */ + + smlatb v5, a3, ip, v5 /* A2b += W2*col_b[6] */ + smlabb v7, a4, ip, v7 /* A3b -= W6*col_b[6] */ + smlatt v6, a3, ip, v6 /* A2t += W2*col_t[6] */ + smlabt v8, a4, ip, v8 /* A3t -= W6*col_t[6] */ + + ldrd a3, w1357\DWORD_CONST_SUFFIX /* a3 = W1 | (W3 << 16) */ + /* a4 = W5 | (W7 << 16) */ + + rsb v3, v5, v3, lsl #1 /* A1b = 2*A1b - A2b */ + rsb v1, v7, v1, lsl #1 /* A0b = 2*A0b - A3b */ + rsb v4, v6, v4, lsl #1 /* A1t = 2*A1t - A2t */ + rsb v2, v8, v2, lsl #1 /* A0t = 2*A0t - A3t */ + + ldr ip, [a1, #(16*5 - 4)] /* ip = col_t[5]:col_b[5] */ + ldr a2, m51 /* a2 = ((-W5 & 0xFFFF) | ((-W1 & 0xFFFF) << 16)) */ + + stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8} + + smulbb v1, a3, lr /* B0b = W1*col_b[1] */ + smulbt v2, a3, lr /* B0t = W1*col_t[1] */ + smultb v3, a3, lr /* B1b = W3*col_b[1] */ + smultt v4, a3, lr /* B1t = W3*col_t[1] */ + smulbb v5, a4, lr /* B2b = W5*col_b[1] */ + smulbt v6, a4, lr /* B2t = W5*col_t[1] */ + smultb v7, a4, lr /* B3b = W7*col_b[1] */ + smultt v8, a4, lr /* B3t = W7*col_t[1] */ + + ldr lr, [a1, #(16*7 - 4)] /* lr = col_t[7]:col_b[7] */ + + cmp ip, #0 + beq 2f /* jump probability is typically more than 75% */ + + smlabt v2, a4, ip, v2 /* B0t += W5*col_t[5] */ + smlatt v4, a2, ip, v4 /* B1t -= W1*col_t[5] */ + smlatt v6, a4, ip, v6 /* B2t += W7*col_t[5] */ + smlatt v8, a3, ip, v8 /* B3t += W3*col_t[5] */ + smlabb v1, a4, ip, v1 /* B0b += W5*col_b[5] */ + smlatb v3, a2, ip, v3 /* B1b -= W1*col_b[5] */ + smlatb v5, a4, ip, v5 /* B2b += W7*col_b[5] */ + smlatb v7, a3, ip, v7 /* B3b += W3*col_b[5] */ +2: + ldr ip, [a1, #(16*3 - 4)] /* ip = col_t[3]:col_b[3] */ + + cmp lr, #0 + beq 3f /* jump probability is typically more than 90% */ + + smlatt v2, a4, lr, v2 /* B0t += W7*col_t[7] */ + smlabt v4, a2, lr, v4 /* B1t -= W5*col_t[7] */ + smlatt v6, a3, lr, v6 /* B2t += W3*col_t[7] */ + smlatt v8, a2, lr, v8 /* B3t -= W1*col_t[7] */ + + smlatb v1, a4, lr, v1 /* B0b += W7*col_b[7] */ + smlabb v3, a2, lr, v3 /* B1b -= W5*col_b[7] */ + smlatb v5, a3, lr, v5 /* B2b += W3*col_b[7] */ + smlatb v7, a2, lr, v7 /* B3b -= W1*col_b[7] */ +3: + cmp ip, #0 + beq 4f /* jump probability is typically more than 65% */ + + ldr a4, m7 + + smlatt v2, a3, ip, v2 /* B0t += W3*col_t[3] */ + smlatt v6, a2, ip, v6 /* B2t -= W1*col_t[3] */ + smlabt v8, a2, ip, v8 /* B3t -= W5*col_t[3] */ + smlabt v4, a4, ip, v4 /* B1t -= W7*col_t[3] */ + + smlatb v1, a3, ip, v1 /* B0b += W3*col_b[3] */ + smlatb v5, a2, ip, v5 /* B2b -= W1*col_b[3] */ + smlabb v7, a2, ip, v7 /* B3b -= W5*col_b[3] */ + smlabb v3, a4, ip, v3 /* B1b -= W7*col_b[3] */ +4: + .endm + +/******************************************************************************/ + +/* + * a local pool with 64-bit constants for 'simple_idct_put_armv5te' function, + * we align it at 16 byte boundary in order to ensure that it does not cross + * cache line boundary (occupies only a single cache line) + */ + .balign 16 +w2266simple_idct_put_armv5te: + .long W22 + .long W66 +w1357simple_idct_put_armv5te: + .long W13 + .long W57 + + .balign 32 + .global simple_idct_put_armv5te + .type simple_idct_put_armv5te, %function + .func simple_idct_put_armv5te +simple_idct_put_armv5te: + + idct_stackalign_armv5te + + stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, lr} + strd a1, [sp, #-12]! + + mov a1, a3 + bl idct_rows_armv5te + + add a2, a1, #16 + strd a1, [sp, #-8]! +1: + idct_two_col_armv5te simple_idct_put_armv5te + str a1, [sp, #(0 + 32)] + ldrd a3, [sp, #(8 + 32)] + ldr lr, simple_idct_croptbl_armv5te + + ldrd a1, [sp], #8 + add ip, a3, #2 + str ip, [sp, #(8 + 32 - 8)] + + add ip, a1, v1 + sub v1, a1, v1 + add a1, a2, v2 + sub v2, a2, v2 + ldrb a1, [lr, a1, asr #COL_SHIFT] + ldrb ip, [lr, ip, asr #COL_SHIFT] + ldrb v2, [lr, v2, asr #COL_SHIFT] + ldrb v1, [lr, v1, asr #COL_SHIFT] + orr ip, ip, a1, asl #8 + ldrd a1, [sp], #8 + orr v1, v1, v2, asl #8 + strh ip, [a3], a4 + + add ip, a1, v3 + sub v3, a1, v3 + add a1, a2, v4 + sub v4, a2, v4 + ldrb a1, [lr, a1, asr #COL_SHIFT] + ldrb ip, [lr, ip, asr #COL_SHIFT] + ldrb v4, [lr, v4, asr #COL_SHIFT] + ldrb v3, [lr, v3, asr #COL_SHIFT] + orr ip, ip, a1, asl #8 + ldrd a1, [sp], #8 + orr v3, v3, v4, asl #8 + strh ip, [a3], a4 + + add ip, a1, v5 + sub v5, a1, v5 + add a1, a2, v6 + sub v6, a2, v6 + ldrb a1, [lr, a1, asr #COL_SHIFT] + ldrb ip, [lr, ip, asr #COL_SHIFT] + ldrb v6, [lr, v6, asr #COL_SHIFT] + ldrb v5, [lr, v5, asr #COL_SHIFT] + orr ip, ip, a1, asl #8 + ldrd a1, [sp], #8 + orr v5, v5, v6, asl #8 + strh ip, [a3], a4 + + add ip, a1, v7 + sub v7, a1, v7 + add a1, a2, v8 + sub v8, a2, v8 + ldrb a1, [lr, a1, asr #COL_SHIFT] + ldrb ip, [lr, ip, asr #COL_SHIFT] + ldrb v8, [lr, v8, asr #COL_SHIFT] + ldrb v7, [lr, v7, asr #COL_SHIFT] + orr ip, ip, a1, asl #8 + strh ip, [a3], a4 + + ldrd a1, [sp, #0] + orr v7, v7, v8, asl #8 + + strh v7, [a3], a4 + strh v5, [a3], a4 + cmp a1, a2 + strh v3, [a3], a4 + strh v1, [a3], a4 + + bne 1b + + add sp, sp, #20 + ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, pc} + .endfunc + +/******************************************************************************/ + +/* + * a local pool with 64-bit constants for 'simple_idct_add_armv5te' function, we + * align it at 16 byte boundary in order to ensure that it does not cross + * cache line boundary (occupies only a single cache line) + */ + .balign 16 +w2266simple_idct_add_armv5te: + .long W22 + .long W66 +w1357simple_idct_add_armv5te: + .long W13 + .long W57 + + .balign 32 + .global simple_idct_add_armv5te + .type simple_idct_add_armv5te, %function + .func simple_idct_add_armv5te +simple_idct_add_armv5te: + + idct_stackalign_armv5te + + stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, lr} + strd a1, [sp, #-12]! + + mov a1, a3 + bl idct_rows_armv5te + + add a2, a1, #16 + strd a1, [sp, #-8]! + + sub sp, sp, #8 +1: + idct_two_col_armv5te simple_idct_add_armv5te + ldrd a3, [sp, #(8 + 40)] + str a1, [sp, #(0 + 40)] + + ldrd a1, [sp], #8 + add ip, a3, #2 + str ip, [sp, #(8 + 40 - 8)] + + add ip, a1, v1 + sub v1, a1, v1 + add a1, a2, v2 + sub v2, a2, v2 + strd v1, [sp, #(32 - 8)] /* save v1 and v2 to stack in order to use them as temporary registers */ + ldrb v1, [a3, #1] + ldrb v2, [a3] + ldr lr, simple_idct_croptbl_armv5te + add v1, v1, a1, asr #COL_SHIFT + ldrd a1, [sp], #8 + add ip, v2, ip, asr #COL_SHIFT + ldrb v2, [lr, v1] + ldrb ip, [lr, ip] + + add v1, a1, v3 + sub v3, a1, v3 + + ldrb a1, [a3, a4] + orr ip, ip, v2, asl #8 + strh ip, [a3], a4 + + ldrb v2, [a3, #1] + + add ip, a2, v4 + sub v4, a2, v4 + add ip, v2, ip, asr #COL_SHIFT + add v1, a1, v1, asr #COL_SHIFT + ldrb v2, [lr, ip] + ldrb ip, [lr, v1] + ldrb v1, [a3, a4] + ldrd a1, [sp], #8 + orr ip, ip, v2, asl #8 + strh ip, [a3], a4 + + ldrb v2, [a3, #1] + add ip, a1, v5 + sub v5, a1, v5 + add a1, a2, v6 + sub v6, a2, v6 + add a1, v2, a1, asr #COL_SHIFT + add ip, v1, ip, asr #COL_SHIFT + ldrb v2, [lr, a1] + ldrb ip, [lr, ip] + ldrb v1, [a3, a4] + ldrd a1, [sp], #8 + orr ip, ip, v2, asl #8 + strh ip, [a3], a4 + + ldrb v2, [a3, #1] + add ip, a1, v7 + sub v7, a1, v7 + add a1, a2, v8 + sub v8, a2, v8 + add a1, v2, a1, asr #COL_SHIFT + add ip, v1, ip, asr #COL_SHIFT + ldrb v2, [lr, a1] + ldrb ip, [lr, ip] + ldrb v1, [a3, a4] + add a2, lr, v7, asr #COL_SHIFT + orr ip, ip, v2, asl #8 + strh ip, [a3], a4 + + ldrb v2, [a3, #1] + add v8, lr, v8, asr #COL_SHIFT + mov v7, a3 /* a good news, now we have two more spare registers v7 and v8 */ + ldrb ip, [a2, v1] + ldrb v8, [v8, v2] + ldrb v1, [v7, a4]! + ldrb v2, [v7, #1] + orr ip, ip, v8, asl #8 + strh ip, [a3], a4 + + ldrb a1, [v7, a4]! + ldrb a2, [v7, #1] + + add v6, v2, v6, asr #COL_SHIFT + add v5, v1, v5, asr #COL_SHIFT + ldrb v6, [lr, v6] + ldrb v5, [lr, v5] + ldrd v1, [sp, #0] /* restore v1 and v2 that were saved earlier */ + orr v5, v5, v6, asl #8 + strh v5, [a3], a4 + ldrb v5, [v7, a4]! + ldrb v6, [v7, #1] + + add v4, a2, v4, asr #COL_SHIFT + add v3, a1, v3, asr #COL_SHIFT + ldrb v4, [lr, v4] + ldrb v3, [lr, v3] + + ldrd a1, [sp, #8] + add v2, v6, v2, asr #COL_SHIFT + add v1, v5, v1, asr #COL_SHIFT + ldrb v2, [lr, v2] + ldrb v1, [lr, v1] + cmp a1, a2 + orr v3, v3, v4, asl #8 + strh v3, [a3], a4 + orr v1, v1, v2, asl #8 + strh v1, [a3], a4 + + bne 1b + + add sp, sp, #28 + ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, pc} + .endfunc + +/******************************************************************************/ + +/* + * a local pool with 64-bit constants for 'simple_idct_armv5te' function, we + * align it at 16 byte boundary in order to ensure that it does not cross + * cache line boundary (occupies only a single cache line) + */ + .balign 16 +w2266simple_idct_armv5te: + .long W22 + .long W66 +w1357simple_idct_armv5te: + .long W13 + .long W57 + + .balign 32 + .global simple_idct_armv5te + .type simple_idct_armv5te, %function + .func simple_idct_armv5te +simple_idct_armv5te: + + idct_stackalign_armv5te + + stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, lr} + strd a1, [sp, #-12]! + + bl idct_rows_armv5te + + add a2, a1, #16 + str a2, [sp, #-8]! +1: + idct_two_col_armv5te simple_idct_armv5te + + ldr lr, [sp, #32] + + ldrd a3, [sp], #8 + + cmp lr, a1 + + add a2, a3, v1 + add ip, a4, v2 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*0 - 4)] + strh ip, [a1, #(16*0 + 2 - 4)] + sub a2, a3, v1 + sub ip, a4, v2 + ldrd a3, [sp], #8 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*7 - 4)] + strh ip, [a1, #(16*7 + 2 - 4)] + + add a2, a3, v3 + add ip, a4, v4 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*1 - 4)] + strh ip, [a1, #(16*1 + 2 - 4)] + sub a2, a3, v3 + sub ip, a4, v4 + ldrd a3, [sp], #8 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*6 - 4)] + strh ip, [a1, #(16*6 + 2 - 4)] + + add a2, a3, v5 + add ip, a4, v6 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*2 - 4)] + strh ip, [a1, #(16*2 + 2 - 4)] + sub a2, a3, v5 + sub ip, a4, v6 + ldrd a3, [sp], #8 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*5 - 4)] + strh ip, [a1, #(16*5 + 2 - 4)] + + add a2, a3, v7 + add ip, a4, v8 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*3 - 4)] + strh ip, [a1, #(16*3 + 2 - 4)] + sub a2, a3, v7 + sub ip, a4, v8 + mov a2, a2, asr #COL_SHIFT + mov ip, ip, asr #COL_SHIFT + strh a2, [a1, #(16*4 - 4)] + strh ip, [a1, #(16*4 + 2 - 4)] + + bne 1b + + add sp, sp, #20 + ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, v8, pc} + .endfunc + +/******************************************************************************/ + +unaligned_return_thunk_armv5te: + ldr pc, [sp], #4 diff --git a/packages/mplayer/mplayer_svn.bb b/packages/mplayer/mplayer_svn.bb index 4a47d744ca..6e81f3b53b 100644 --- a/packages/mplayer/mplayer_svn.bb +++ b/packages/mplayer/mplayer_svn.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Open Source multimedia player." SECTION = "multimedia" PRIORITY = "optional" HOMEPAGE = "http://www.mplayerhq.hu/" -DEPENDS = "virtual/libsdl libmad zlib libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses lame" +DEPENDS = "virtual/libsdl libmad zlib libpng jpeg liba52 freetype fontconfig alsa-lib lzo ncurses lame libxv virtual/libx11" RDEPENDS = "mplayer-common" LICENSE = "GPL" SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \ @@ -11,6 +11,7 @@ SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \ file://vo_w100_fb.h \ file://vo_pxa.c \ file://vo_pxa.h \ + file://simple_idct_armv5te.S \ file://Makefile-codec-cfg.patch;patch=1 \ file://w100-configure-svn.patch;patch=1 \ file://w100-video_out.patch;patch=1 \ @@ -22,6 +23,14 @@ SRC_URI = "svn://svn.mplayerhq.hu/mplayer;module=trunk \ file://pxa_configure.patch;patch=1 \ file://pxa-video_out.patch;patch=1 " +# This is required for the collie machine only as all stacks in that +# machine seem to be set to executable by the toolchain. If someone +# discovers this is more general than please make this more general +# ie. for all armv4 machines. +SRC_URI_append_collie = "file://disable-executable-stack-test.patch;patch=1" +PACKAGE_ARCH_mplayer_collie = "collie" +PACKAGE_ARCH_mencoder_collie = "collie" + RCONFLICTS_${PN} = "mplayer-atty" RREPLACES_${PN} = "mplayer-atty" @@ -31,43 +40,44 @@ DEFAULT_PREFERENCE = "-1" PARALLEL_MAKE = "" -DEPENDS_append_c7x0 = " sharp-aticore-oss" +DEPENDS_append_c7x0 = " sharp-aticore-oss libw100 " +DEPENDS_append_hx4700 = " libw100 " -S = "${WORKDIR}/trunk/" +S = "${WORKDIR}/trunk" PACKAGES =+ "mencoder" -FILES_${PN} = "${bindir}/mplayer" +FILES_${PN} = "${bindir}/mplayer ${libdir}" FILES_mencoder = "${bindir}/mencoder" inherit autotools pkgconfig EXTRA_OECONF = " \ --prefix=/usr \ - --mandir=${mandir} \ + --mandir=${mandir} \ --target=${TARGET_SYS} \ - \ - --enable-mencoder \ - --disable-gui \ - --enable-largefiles \ - --disable-linux-devfs \ - --disable-lirc \ - --disable-lircc \ + \ + --enable-mencoder \ + --disable-gui \ + --enable-largefiles \ + --disable-linux-devfs \ + --disable-lirc \ + --disable-lircc \ --disable-joystick \ --disable-vm \ --disable-xf86keysym \ - --disable-tv \ + --disable-tv \ --disable-tv-v4l2 \ --disable-tv-bsdbt848 \ - --enable-rtc \ + --enable-rtc \ --enable-network \ --disable-winsock2 \ - --disable-smb \ + --disable-smb \ --disable-live \ - --disable-dvdnav \ + --disable-dvdnav \ --disable-dvdread \ - --disable-dvdread-internal \ - --disable-libdvdcss-internal \ + --disable-libdvdcss-internal \ + --disable-dvdread-internal \ --disable-cdparanoia \ --enable-freetype \ --disable-unrarlib \ @@ -86,7 +96,6 @@ EXTRA_OECONF = " \ --enable-jpeg \ --disable-libcdio \ --disable-liblzo \ - --disable-win32 \ --disable-qtx \ --disable-xanim \ --disable-real \ @@ -98,7 +107,7 @@ EXTRA_OECONF = " \ --disable-libavformat_so \ --disable-libpostproc_so \ \ - --enable-tremor-low \ + --enable-tremor-low \ \ --disable-speex \ --disable-theora \ @@ -109,19 +118,14 @@ EXTRA_OECONF = " \ --disable-toolame \ --disable-twolame \ --disable-xmms \ - --disable-mp3lib \ - --disable-libdts \ + --disable-mp3lib \ --enable-libmpeg2 \ --disable-musepack \ - --disable-amr_nb \ - --disable-amr_nb-fixed \ - --disable-amr_wb \ - \ + \ --disable-gl \ - --disable-dga \ --disable-vesa \ --disable-svga \ - --enable-sdl \ + --enable-sdl \ --disable-aa \ --disable-caca \ --disable-ggi \ @@ -133,12 +137,12 @@ EXTRA_OECONF = " \ --disable-dvbhead \ --disable-mga \ --disable-xmga \ - --disable-xv \ + --enable-xv \ --disable-xvmc \ --disable-vm \ --disable-xinerama \ - --disable-x11 \ - --enable-fbdev \ + --enable-x11 \ + --enable-fbdev \ --disable-mlib \ --disable-3dfx \ --disable-tdfxfb \ @@ -173,18 +177,22 @@ EXTRA_OECONF_append_arm = " --disable-decoder=vorbis_decoder \ EXTRA_OECONF_append_progear = " --disable-sse --disable-3dnow --disable-mmxext --disable-sse2" #enable support for the ati imageon series (w100 and w3220) -EXTRA_OECONF_append_c7x0 = " --enable-w100 " +EXTRA_OECONF_append_c7x0 = " --enable-w100 --enable-imageon " EXTRA_OECONF_append_hx4700 = " --enable-imageon " #enable pxa270 overlay support -EXTRA_OECONF_append_spitz = " --enable-pxa " +EXTRA_OECONF_append_spitz = " --enable-pxa --enable-iwmmxt " +EXTRA_OECONF_append_akita = " --enable-pxa --enable-iwmmxt " EXTRA_OECONF_append_a780 = " --enable-pxa " EXTRA_OECONF_append_magician = " --enable-pxa " EXTRA_OECONF_append_htcuniversal = " --enable-pxa " +EXTRA_OECONF_append_palmld = " --enable-pxa " #build with support for the iwmmxt instruction support (pxa270 and up) TARGET_CC_ARCH_spitz = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_spitz = "iwmmxt" +TARGET_CC_ARCH_akita = "-march=iwmmxt -mtune=iwmmxt" +PACKAGE_ARCH_akita = "iwmmxt" TARGET_CC_ARCH_a780 = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_a780 = "iwmmxt" TARGET_CC_ARCH_hx4700 = "-march=iwmmxt -mtune=iwmmxt" @@ -193,15 +201,23 @@ TARGET_CC_ARCH_magician = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_magician = "iwmmxt" TARGET_CC_ARCH_htcuniversal = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_htcuniversal = "iwmmxt" +TARGET_CC_ARCH_palmld = "-march=iwmmxt -mtune=iwmmxt" +PACKAGE_ARCH_palmld = "iwmmxt" do_configure() { cp ${WORKDIR}/vo_w100.c ${S}/libvo cp ${WORKDIR}/vo_w100_api.h ${S}/libvo cp ${WORKDIR}/vo_w100_fb.h ${S}/libvo - cp ${WORKDIR}/vo_pxa.c ${S}/libvo - cp ${WORKDIR}/vo_pxa.h ${S}/libvo + cp ${WORKDIR}/vo_pxa.c ${S}/libvo + cp ${WORKDIR}/vo_pxa.h ${S}/libvo + cp ${WORKDIR}/simple_idct_armv5te.S ${S}/libavcodec/armv4l/ + + sed -i 's|/usr/include|${STAGING_INCDIR}|g' ${S}/configure + sed -i 's|/usr/lib|${STAGING_LIBDIR}|g' ${S}/configure + sed -i 's|/usr/\S*include[\w/]*||g' ${S}/configure + sed -i 's|/usr/\S*lib[\w/]*||g' ${S}/configure - ./configure ${EXTRA_OECONF} + ./configure ${EXTRA_OECONF} } do_compile () { -- cgit v1.2.3 From b319ccd3268754c478a21536264c000cac1418b3 Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Thu, 20 Sep 2007 10:49:11 +0000 Subject: mplayer/mplayer_svn.bb : convert to SRCREV --- conf/distro/include/insane-srcrevs.inc | 1 + conf/distro/include/sane-srcrevs.inc | 2 ++ packages/mplayer/mplayer_svn.bb | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/conf/distro/include/insane-srcrevs.inc b/conf/distro/include/insane-srcrevs.inc index 14d6336b96..ae1ec5fb9c 100644 --- a/conf/distro/include/insane-srcrevs.inc +++ b/conf/distro/include/insane-srcrevs.inc @@ -78,5 +78,6 @@ SRCREV_pn-sjf2410-linux-native ?= "${AUTOREV}" SRCREV_pn-sphyrna ?= "${AUTOREV}" SRCREV_pn-webkit-gtk ?= "${AUTOREV}" SRCREV_pn-xoo ?= "${AUTOREV}" +SRCREV_pn-mplayer ?= "${AUTOREV}" SRCREV ?= "${AUTOREV}" diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index 0c53d56605..8397eb84b8 100644 --- a/conf/distro/include/sane-srcrevs.inc +++ b/conf/distro/include/sane-srcrevs.inc @@ -91,3 +91,5 @@ SRCREV_pn-sjf2410-linux-native ?= "933" SRCREV_pn-sphyrna ?= "44" SRCREV_pn-webkit-gtk ?= "25615" SRCREV_pn-xoo ?= "1623" +SRCREV_pn-mplayer ?= "24587" + diff --git a/packages/mplayer/mplayer_svn.bb b/packages/mplayer/mplayer_svn.bb index 6e81f3b53b..73b1fbcc5f 100644 --- a/packages/mplayer/mplayer_svn.bb +++ b/packages/mplayer/mplayer_svn.bb @@ -34,7 +34,7 @@ PACKAGE_ARCH_mencoder_collie = "collie" RCONFLICTS_${PN} = "mplayer-atty" RREPLACES_${PN} = "mplayer-atty" -PV = "0.0+1.0rc1+svn${SRCDATE}" +PV = "0.0+1.0rc1+svnr${SRCREV}" PR = "r1" DEFAULT_PREFERENCE = "-1" -- cgit v1.2.3 From 911384ab61fe4b5ae963dd9b4b523e73c8978919 Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Thu, 20 Sep 2007 10:55:37 +0000 Subject: mplayer/files/makefile-nostrip-svn.patch : forget to push latest version --- packages/mplayer/files/makefile-nostrip-svn.patch | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/packages/mplayer/files/makefile-nostrip-svn.patch b/packages/mplayer/files/makefile-nostrip-svn.patch index 44087e7dca..a1b6a0b43f 100644 --- a/packages/mplayer/files/makefile-nostrip-svn.patch +++ b/packages/mplayer/files/makefile-nostrip-svn.patch @@ -1,8 +1,8 @@ Index: trunk/Makefile =================================================================== ---- trunk.orig/Makefile -+++ trunk/Makefile -@@ -264,7 +264,7 @@ install-dirs: +--- trunk.orig/Makefile 2007-06-29 14:48:19.000000000 +0100 ++++ trunk/Makefile 2007-06-29 14:48:43.000000000 +0100 +@@ -252,7 +252,7 @@ if test -f $(CONFDIR)/codecs.conf ; then mv -f $(CONFDIR)/codecs.conf $(CONFDIR)/codecs.conf.old ; fi install-mplayer: mplayer$(EXESUF) @@ -11,7 +11,7 @@ Index: trunk/Makefile install-mplayer-man: for i in $(MAN_LANG); do \ -@@ -277,7 +277,7 @@ install-mplayer-man: +@@ -265,7 +265,7 @@ done install-mencoder: mencoder$(EXESUF) @@ -20,12 +20,3 @@ Index: trunk/Makefile for i in $(MAN_LANG); do \ if test "$$i" = en ; then \ cd $(MANDIR)/man1 && ln -sf mplayer.1 mencoder.1 ; \ -@@ -299,7 +299,7 @@ install-gui: - install-vidix: - $(MAKE) -C libdha install - mkdir -p $(LIBDIR)/mplayer/vidix -- $(INSTALL) -m 755 $(INSTALLSTRIP) -p vidix/drivers/*.so $(LIBDIR)/mplayer/vidix -+ $(INSTALL) -m 755 -p vidix/drivers/*.so $(LIBDIR)/mplayer/vidix - - uninstall: - -rm -f $(BINDIR)/mplayer$(EXESUF) $(BINDIR)/gmplayer$(EXESUF) -- cgit v1.2.3 From a85482782d823d1c083c668c90e0c4d7de537b4f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 20 Sep 2007 11:33:33 +0000 Subject: dbus: Drop fix-segfault patch. Thei issue it fixed can no longer be reproduced (tested by thos) --- packages/dbus/dbus.inc | 1 - packages/dbus/dbus/fix-segfault.patch | 11 ----------- packages/dbus/dbus_1.0.1.bb | 2 +- packages/dbus/dbus_1.0.2.bb | 2 +- 4 files changed, 2 insertions(+), 14 deletions(-) delete mode 100644 packages/dbus/dbus/fix-segfault.patch diff --git a/packages/dbus/dbus.inc b/packages/dbus/dbus.inc index 8baf8d9feb..b329e82fa3 100644 --- a/packages/dbus/dbus.inc +++ b/packages/dbus/dbus.inc @@ -7,7 +7,6 @@ DEPENDS = "expat virtual/libintl" SRC_URI = "http://dbus.freedesktop.org/releases/dbus/dbus-${PV}.tar.gz \ file://tmpdir.patch;patch=1 \ file://dbus-1.init \ - file://fix-segfault.patch;patch=1 \ file://cross.patch;patch=1 \ file://fix-install-daemon.patch;patch=1" diff --git a/packages/dbus/dbus/fix-segfault.patch b/packages/dbus/dbus/fix-segfault.patch deleted file mode 100644 index de5bcff774..0000000000 --- a/packages/dbus/dbus/fix-segfault.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/dbus-marshal-recursive.c 2006-07-28 14:58:08.000000000 +0200 -+++ dbus-0.90/dbus/dbus-marshal-recursive.c 2006-07-28 14:58:18.724411000 +0200 -@@ -1294,7 +1294,7 @@ - _dbus_string_get_length (&block->replacement) - block->padding, - &fixups)) - goto oom; -- -+printf("%s(%d)""got here", __FILE__, __LINE__); - #if RECURSIVE_MARSHAL_WRITE_TRACE - _dbus_verbose ("REPLACEMENT at padding %d len %d\n", block->padding, - _dbus_string_get_length (&block->replacement) - block->padding); diff --git a/packages/dbus/dbus_1.0.1.bb b/packages/dbus/dbus_1.0.1.bb index 3c45ee8bd6..f5e4aa16ea 100644 --- a/packages/dbus/dbus_1.0.1.bb +++ b/packages/dbus/dbus_1.0.1.bb @@ -2,4 +2,4 @@ require dbus.inc SRC_URI += "file://dbus-exploit-fix.patch;patch=1" -PR = "r3" +PR = "r4" diff --git a/packages/dbus/dbus_1.0.2.bb b/packages/dbus/dbus_1.0.2.bb index 0c97e30406..799509ab66 100644 --- a/packages/dbus/dbus_1.0.2.bb +++ b/packages/dbus/dbus_1.0.2.bb @@ -2,4 +2,4 @@ require dbus.inc SRC_URI += " file://fix-waitpid.patch;patch=1" -PR = "r3" +PR = "r4" -- cgit v1.2.3 From 00e9bd3dc6ad3fe960926f8867976cf0ca8bfedd Mon Sep 17 00:00:00 2001 From: Daniel Willmann Date: Thu, 20 Sep 2007 12:07:36 +0000 Subject: libmokoui2: Touch gtk-doc.make to fix issues with gtk-doc support (Thomas Wood) --- packages/openmoko2/libmokoui2_svn.bb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/openmoko2/libmokoui2_svn.bb b/packages/openmoko2/libmokoui2_svn.bb index 86372ae274..50c3928670 100644 --- a/packages/openmoko2/libmokoui2_svn.bb +++ b/packages/openmoko2/libmokoui2_svn.bb @@ -1,14 +1,15 @@ SECTION = "openmoko/libs" DEPENDS = "gtk+" PV = "0.1.0+svn${SVNREV}" -PR = "r1" +PR = "r2" inherit openmoko2 +do_configure_prepend() { + touch gtk-doc.make +} + do_stage() { autotools_stage_all } - - - -- cgit v1.2.3 From 17f206c22d95debcff4dd22a9729849a766be84c Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Thu, 20 Sep 2007 13:34:26 +0000 Subject: mplayer/files/simple_idct_armv5te.S : reduce MAX_NEG_CROP to same as dsputil.h until SSVB has managed to get his patch series into mplayer. --- packages/mplayer/files/simple_idct_armv5te.S | 2 +- packages/mplayer/mplayer_svn.bb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/mplayer/files/simple_idct_armv5te.S b/packages/mplayer/files/simple_idct_armv5te.S index f43fd19785..3706f3a4ea 100644 --- a/packages/mplayer/files/simple_idct_armv5te.S +++ b/packages/mplayer/files/simple_idct_armv5te.S @@ -25,7 +25,7 @@ .arch armv5te /* IMPORTANT: this value should be the same as defined in dsputil.h */ -#define MAX_NEG_CROP 2048 +#define MAX_NEG_CROP 1024 /* * ARM EABI guarantees 8 byte stack alignment, so we can use LDRD instructions diff --git a/packages/mplayer/mplayer_svn.bb b/packages/mplayer/mplayer_svn.bb index 73b1fbcc5f..fb2989fa93 100644 --- a/packages/mplayer/mplayer_svn.bb +++ b/packages/mplayer/mplayer_svn.bb @@ -35,7 +35,7 @@ RCONFLICTS_${PN} = "mplayer-atty" RREPLACES_${PN} = "mplayer-atty" PV = "0.0+1.0rc1+svnr${SRCREV}" -PR = "r1" +PR = "r2" DEFAULT_PREFERENCE = "-1" PARALLEL_MAKE = "" -- cgit v1.2.3 From 51adbd1db64907d755c82168adfdd8c33883c78f Mon Sep 17 00:00:00 2001 From: Cliff Brake Date: Thu, 20 Sep 2007 14:37:53 +0000 Subject: epiphany: add libstartup-notification to DEPENDS --- packages/gnome/epiphany_2.19.6.bb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gnome/epiphany_2.19.6.bb b/packages/gnome/epiphany_2.19.6.bb index cebd39637d..570f8ba4f5 100644 --- a/packages/gnome/epiphany_2.19.6.bb +++ b/packages/gnome/epiphany_2.19.6.bb @@ -1,5 +1,5 @@ DESCRIPTION = "GNOME default webbrowser" -DEPENDS = "gnome-desktop gnome-vfs libgnomeui webkit-gtk iso-codes" +DEPENDS = "gnome-desktop gnome-vfs libgnomeui webkit-gtk iso-codes libstartup-notification" RDEPENDS = "gnome-vfs-plugin-http" PR = "r1" -- cgit v1.2.3 From 4cbfa7e3e50a426b68a228457de9ff6fc8454b7a Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Thu, 20 Sep 2007 15:13:28 +0000 Subject: add moko-gtk-engine, a gtk theme engine to improve painting performance --- packages/openmoko2/moko-gtk-engine.bb | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 packages/openmoko2/moko-gtk-engine.bb diff --git a/packages/openmoko2/moko-gtk-engine.bb b/packages/openmoko2/moko-gtk-engine.bb new file mode 100644 index 0000000000..38bc691c8e --- /dev/null +++ b/packages/openmoko2/moko-gtk-engine.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Moko GTK+ theme engine" +SECTION = "openmoko/libs" +PV = "0.1.0+svn${SVNREV}" +PR = "r0" + +inherit openmoko2 + +PACKAGES += "moko-gtk-theme" +FILES_${PN} = "${libdir}/gtk-2.0/*/engines/*.so " +FILES_${PN}-dev = "${libdir}/gtk-2.0/*/engines/*" +FILES_${PN}-dbg = "${libdir}/gtk-2.0/*/engines/.debug" +FILES_moko-gtk-theme = "${datadir}/themes" +RDEPENDS_${PN} = "moko-gtk-theme" + -- cgit v1.2.3 From c4ec4ae5b17cb586436e9e873f5ed8b9e1ea43ce Mon Sep 17 00:00:00 2001 From: Michael Lauer Date: Thu, 20 Sep 2007 15:46:55 +0000 Subject: moko-autorev.inc: add entry for moko-gtk-engine --- conf/distro/include/moko-autorev.inc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/conf/distro/include/moko-autorev.inc b/conf/distro/include/moko-autorev.inc index 020a8ebf86..c4d478ccde 100644 --- a/conf/distro/include/moko-autorev.inc +++ b/conf/distro/include/moko-autorev.inc @@ -6,6 +6,8 @@ SRCREV_pn-libmokoui2 ?= "${AUTOREV}" SRCREV_pn-linux-openmoko ?= "${AUTOREV}" SRCREV_pn-linux-openmoko-devel ?= "${AUTOREV}" +SRCREV_pn-moko-gtk-engine ?= "${AUTOREV}" + SRCREV_pn-openmoko-appmanager ?= "${AUTOREV}" SRCREV_pn-openmoko-calculator ?= "${AUTOREV}" SRCREV_pn-openmoko-calculator2 ?= "${AUTOREV}" -- cgit v1.2.3 From 194fcc1d60a9a1ff6980ae7902645b2060d589ea Mon Sep 17 00:00:00 2001 From: Graeme Gregory Date: Thu, 20 Sep 2007 14:55:17 +0000 Subject: evince/evince_2.20.0.bb : new release with gnome 2.20 --- packages/evince/evince_2.20.0.bb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 packages/evince/evince_2.20.0.bb diff --git a/packages/evince/evince_2.20.0.bb b/packages/evince/evince_2.20.0.bb new file mode 100644 index 0000000000..dbfec26f4e --- /dev/null +++ b/packages/evince/evince_2.20.0.bb @@ -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 \ + " + -- cgit v1.2.3 From d2a11d6e6baf43e83a769b58d04be160bf3987ca Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 21 Sep 2007 06:40:31 +0000 Subject: mplayer: enable iwmmxt for more machines * time for MACHINE_FEATURES = iwmmxt? --- packages/mplayer/mplayer_svn.bb | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/mplayer/mplayer_svn.bb b/packages/mplayer/mplayer_svn.bb index fb2989fa93..995ed763ff 100644 --- a/packages/mplayer/mplayer_svn.bb +++ b/packages/mplayer/mplayer_svn.bb @@ -35,7 +35,7 @@ RCONFLICTS_${PN} = "mplayer-atty" RREPLACES_${PN} = "mplayer-atty" PV = "0.0+1.0rc1+svnr${SRCREV}" -PR = "r2" +PR = "r3" DEFAULT_PREFERENCE = "-1" PARALLEL_MAKE = "" @@ -183,10 +183,10 @@ EXTRA_OECONF_append_hx4700 = " --enable-imageon " #enable pxa270 overlay support EXTRA_OECONF_append_spitz = " --enable-pxa --enable-iwmmxt " EXTRA_OECONF_append_akita = " --enable-pxa --enable-iwmmxt " -EXTRA_OECONF_append_a780 = " --enable-pxa " -EXTRA_OECONF_append_magician = " --enable-pxa " -EXTRA_OECONF_append_htcuniversal = " --enable-pxa " -EXTRA_OECONF_append_palmld = " --enable-pxa " +EXTRA_OECONF_append_a780 = " --enable-pxa --enable-iwmmxt" +EXTRA_OECONF_append_magician = " --enable-pxa --enable-iwmmxt" +EXTRA_OECONF_append_htcuniversal = " --enable-pxa --enable-iwmmxt" +EXTRA_OECONF_append_palmld = " --enable-pxa --enable-iwmmxt" #build with support for the iwmmxt instruction support (pxa270 and up) TARGET_CC_ARCH_spitz = "-march=iwmmxt -mtune=iwmmxt" -- cgit v1.2.3 From 91956c1fa5dff3c9bebe9e8fa33742aa0bdcb332 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 21 Sep 2007 10:10:32 +0000 Subject: alsa-state: add config for a780 --- packages/alsa/alsa-state.bb | 2 +- packages/alsa/alsa-state/a780/.mtn2git_empty | 0 packages/alsa/alsa-state/a780/asound.state | 80 ++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 packages/alsa/alsa-state/a780/.mtn2git_empty create mode 100644 packages/alsa/alsa-state/a780/asound.state diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index e2a92dcfc8..0544dd4bd5 100644 --- a/packages/alsa/alsa-state.bb +++ b/packages/alsa/alsa-state.bb @@ -8,7 +8,7 @@ DESCRIPTION = "Default ALSA configuration" LICENSE = "GPL" RRECOMMENDS_alsa-state = "alsa-states" PV = "0.1.0" -PR = "r1" +PR = "r2" SRC_URI = " \ file://asoundrc \ diff --git a/packages/alsa/alsa-state/a780/.mtn2git_empty b/packages/alsa/alsa-state/a780/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/alsa/alsa-state/a780/asound.state b/packages/alsa/alsa-state/a780/asound.state new file mode 100644 index 0000000000..eafd409857 --- /dev/null +++ b/packages/alsa/alsa-state/a780/asound.state @@ -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' + } +} -- cgit v1.2.3 From 1f565faf00fa1673f5696c44771b750eeaa7beb3 Mon Sep 17 00:00:00 2001 From: Koen Kooi Date: Fri, 21 Sep 2007 14:47:25 +0000 Subject: libgsmd: apply queued patches and updates from Andzej and Erin --- packages/gsm/files/0001-Introduce-ports.patch | 710 +++++++++++++++++++++ ...ending-commands-before-restarting-the-mod.patch | 74 +++ ...-segment-incoming-usock-data-into-packets.patch | 77 +++ .../0004-Handle-read-and-write-return-values.patch | 176 +++++ .../gsm/files/0005-Add-ask-ds-option-forSMS.patch | 130 ++++ packages/gsm/files/024_sms-text-in-bracket.patch | 70 ++ packages/gsm/files/025_sms-status-report.patch | 133 ++++ ...027_phonebook-find-and-read-range-support.patch | 423 ++++++++++++ ...ell-phonebook-find-and-read-range-support.patch | 264 ++++++++ packages/gsm/libgsmd_svn.bb | 11 +- 10 files changed, 2067 insertions(+), 1 deletion(-) create mode 100644 packages/gsm/files/0001-Introduce-ports.patch create mode 100644 packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch create mode 100644 packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch create mode 100644 packages/gsm/files/0004-Handle-read-and-write-return-values.patch create mode 100644 packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch create mode 100644 packages/gsm/files/024_sms-text-in-bracket.patch create mode 100644 packages/gsm/files/025_sms-status-report.patch create mode 100644 packages/gsm/files/027_phonebook-find-and-read-range-support.patch create mode 100644 packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch diff --git a/packages/gsm/files/0001-Introduce-ports.patch b/packages/gsm/files/0001-Introduce-ports.patch new file mode 100644 index 0000000000..b3ba3cb957 --- /dev/null +++ b/packages/gsm/files/0001-Introduce-ports.patch @@ -0,0 +1,710 @@ +From 516d67c679101d1503dbd4c0613bcd6ff1b604e4 Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski +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 + #include + #include ++#include + #include + + 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 ag