diff options
100 files changed, 4164 insertions, 512 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/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/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}" diff --git a/conf/distro/include/preferred-opie-versions-1.2.3.inc b/conf/distro/include/preferred-opie-versions-1.2.3.inc index 1f39916f4f..ffcbbc2217 100644 --- a/conf/distro/include/preferred-opie-versions-1.2.3.inc +++ b/conf/distro/include/preferred-opie-versions-1.2.3.inc @@ -176,7 +176,7 @@ PREFERRED_VERSION_opie-systemtime = "${OPIE_VERSION}" PREFERRED_VERSION_opie-tableviewer = "${OPIE_VERSION}" PREFERRED_VERSION_opie-tabmanager = "${OPIE_VERSION}" PREFERRED_VERSION_opie-taskbar = "${OPIE_VERSION}" -PREFERRED_VERSION_opie-taskbar-images = "${OPIE_VERSION}" +PREFERRED_VERSION_opie-taskbar-images = "${OPIE_VERSION}+cvs20070922" PREFERRED_VERSION_opie-tetrix = "${OPIE_VERSION}" PREFERRED_VERSION_opie-textedit = "${OPIE_VERSION}" PREFERRED_VERSION_opie-theme = "${OPIE_VERSION}" diff --git a/conf/distro/include/preferred-xorg-versions-X11R7.3.inc b/conf/distro/include/preferred-xorg-versions-X11R7.3.inc index 0ff684ed68..19ee48174d 100644 --- a/conf/distro/include/preferred-xorg-versions-X11R7.3.inc +++ b/conf/distro/include/preferred-xorg-versions-X11R7.3.inc @@ -277,6 +277,6 @@ PREFERRED_VERSION_util-macros ?= "1.1.5" PREFERRED_VERSION_xorg-cf-files ?= "1.0.2" # xserver -PREFERRED_VERSION_xserver-kdrive ?= "1.4.0" -PREFERRED_VERSION_xserver-xorg ?= "1.4.0" +PREFERRED_VERSION_xserver-kdrive ?= "1.4" +PREFERRED_VERSION_xserver-xorg ?= "1.4" diff --git a/conf/distro/include/sane-srcrevs.inc b/conf/distro/include/sane-srcrevs.inc index ba5040ba07..3330ecff4d 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" @@ -22,7 +22,7 @@ SRCREV_pn-libgsmd ?= "2957" SRCREV_pn-libmokogsmd2 ?= "2950" SRCREV_pn-libmokojournal2 ?= "2780" SRCREV_pn-libmokopanelui2 ?= "2958" -SRCREV_pn-libmokoui2 ?= "2868" +SRCREV_pn-libmokoui2 ?= "3032" SRCREV_pn-libowl ?= "277" SRCREV_pn-libxosd ?= "627" SRCREV_pn-linux-hackndev-2.6 ?= "1308" @@ -33,10 +33,15 @@ SRCREV_pn-matchbox-desktop-2 ?= "1649" SRCREV_pn-matchbox-keyboard ?= "1675" SRCREV_pn-matchbox-keyboard-inputmethod ?= "1675" SRCREV_pn-matchbox-panel-2 ?= "1626" +SRCREV_moko-gtk-engine ?= "3029" SRCREV_pn-neod ?= "2956" SRCREV_pn-oh-puzzles ?= "22" +SRCREV_pn-osb-browser ?= "125" +SRCREV_pn-osb-jscore ?= "117" +SRCREV_pn-osb-nrcit ?= "125" +SRCREV_pn-osb-nrcore ?= "126" SRCREV_pn-openmoko-appmanager ?= "1851" -SRCREV_pn-openmoko-browser2 ?= "3007" +SRCREV_pn-openmoko-browser2 ?= "3031" SRCREV_pn-openmoko-calculator ?= "2404" SRCREV_pn-openmoko-calculator2 ?= "2789" SRCREV_pn-openmoko-common ?= "397" @@ -91,3 +96,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/conf/machine/dht-walnut.conf b/conf/machine/dht-walnut.conf index d490028eca..ead6a83282 100644 --- a/conf/machine/dht-walnut.conf +++ b/conf/machine/dht-walnut.conf @@ -5,7 +5,7 @@ #@DESCRIPTION: Machine configuration for the DHT-Walnut 405GP development platform TARGET_ARCH = "powerpc" -PACKAGE_EXTRA_ARCHS = "all ${MACHINE} ppc ppc405" +PACKAGE_EXTRA_ARCHS = "ppc ppc405" PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}" UBOOT_ENTRYPOINT = "0" diff --git a/packages/abiword/abiword-2.5.inc b/packages/abiword/abiword-2.5.inc index 42fc6c7d6e..09f61d0534 100644 --- a/packages/abiword/abiword-2.5.inc +++ b/packages/abiword/abiword-2.5.inc @@ -13,10 +13,10 @@ SHRT_VER = "${@bb.data.getVar('PV',d,1).split('.')[0]}.${@bb.data.getVar('PV',d, FILES_${PN} += " \ ${datadir}/icons/* \ - ${datadir}/abiword-${SHRT_VER}/AbiWord/glade \ - ${datadir}/abiword-${SHRT_VER}/AbiWord/scripts \ - ${datadir}/abiword-${SHRT_VER}/AbiWord/system.profile-en \ - ${datadir}/abiword-${SHRT_VER}/AbiWord/system.profile-en_GB \ + ${datadir}/abiword-${SHRT_VER}/glade \ + ${datadir}/abiword-${SHRT_VER}/scripts \ + ${datadir}/abiword-${SHRT_VER}/system.profile-en \ + ${datadir}/abiword-${SHRT_VER}/system.profile-en_GB \ # ${datadir}/abiword-${SHRT_VER}/templates/A4.awt \ # ${datadir}/abiword-${SHRT_VER}/templates/US-Letter.awt \ ${datadir}/abiword-${SHRT_VER}/templates/normal.awt \ diff --git a/packages/abiword/abiword_2.5.1.bb b/packages/abiword/abiword_2.5.1.bb index 5fcc1dd1a2..9741ad6413 100644 --- a/packages/abiword/abiword_2.5.1.bb +++ b/packages/abiword/abiword_2.5.1.bb @@ -2,6 +2,6 @@ require abiword-2.5.inc DEFAULT_PREFERENCE = "-1" -PR = "r1" +PR = "r2" RCONFLICTS = "abiword-embedded" diff --git a/packages/abiword/abiword_2.5.2.bb b/packages/abiword/abiword_2.5.2.bb index 66d8fae0ad..5fcc1dd1a2 100644 --- a/packages/abiword/abiword_2.5.2.bb +++ b/packages/abiword/abiword_2.5.2.bb @@ -2,6 +2,6 @@ require abiword-2.5.inc DEFAULT_PREFERENCE = "-1" -PR = "r0" +PR = "r1" RCONFLICTS = "abiword-embedded" diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index e2a92dcfc8..1bac841a6e 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 = "r3" 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 --- /dev/null +++ b/packages/alsa/alsa-state/a780/.mtn2git_empty 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' + } +} diff --git a/packages/alsa/alsa-state/hx4700/.mtn2git_empty b/packages/alsa/alsa-state/hx4700/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/alsa/alsa-state/hx4700/.mtn2git_empty diff --git a/packages/alsa/alsa-state/hx4700/asound.state b/packages/alsa/alsa-state/hx4700/asound.state new file mode 100644 index 0000000000..98661f5e3a --- /dev/null +++ b/packages/alsa/alsa-state/hx4700/asound.state @@ -0,0 +1,37 @@ +state.'hx4700 Audio' { + control.1 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'Master Playback Volume' + value.0 205 + value.1 205 + } + control.2 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Master Playback Switch' + value true + } + control.3 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 127' + iface MIXER + name 'Mic Capture Gain' + value 16 + } + control.4 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Mic Boost (+20dB)' + value true + } +} diff --git a/packages/alsa/alsa-state/magician/.mtn2git_empty b/packages/alsa/alsa-state/magician/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/alsa/alsa-state/magician/.mtn2git_empty diff --git a/packages/alsa/alsa-state/magician/asound.state b/packages/alsa/alsa-state/magician/asound.state new file mode 100644 index 0000000000..edc85dd364 --- /dev/null +++ b/packages/alsa/alsa-state/magician/asound.state @@ -0,0 +1,202 @@ +state.Magician { + control.1 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'Playback Volume' + value.0 205 + value.1 205 + } + control.2 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 255' + iface MIXER + name 'Mixer Volume' + value.0 255 + value.1 0 + } + control.3 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Flat + comment.item.1 Minimum1 + comment.item.2 Minimum2 + comment.item.3 Maximum + iface MIXER + name 'Sound Processing Filter Mode' + value Flat + } + control.4 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 3' + iface MIXER + name 'Treble Volume' + value.0 0 + value.1 0 + } + control.5 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 15' + iface MIXER + name 'Bass Volume' + value.0 0 + value.1 0 + } + control.6 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 2 + comment.item.0 None + comment.item.1 '32kHz' + comment.item.2 '44.1kHz' + comment.item.3 '48kHz' + comment.item.4 '96kHz' + iface MIXER + name 'Playback De-emphasis' + value.0 None + value.1 None + } + control.7 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 127' + iface MIXER + name 'Capture Volume' + value.0 0 + value.1 0 + } + control.8 { + comment.access 'read write' + comment.type INTEGER + comment.count 2 + comment.range '0 - 15' + iface MIXER + name 'Line Capture Volume' + value.0 0 + value.1 0 + } + control.9 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 11' + iface MIXER + name 'Mic Capture Volume' + value 0 + } + control.10 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 2 + iface MIXER + name 'Playback Switch' + value.0 true + value.1 false + } + control.11 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Capture Switch' + value true + } + control.12 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 7' + iface MIXER + name 'AGC Timing' + value 0 + } + control.13 { + comment.access 'read write' + comment.type INTEGER + comment.count 1 + comment.range '0 - 3' + iface MIXER + name 'AGC Target level' + value 3 + } + control.14 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'AGC Switch' + value false + } + control.15 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name Silence + value false + } + control.16 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Silence Detection' + value false + } + control.17 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Direct + comment.item.1 Mixer + iface MIXER + name 'Output Mux' + value Direct + } + control.18 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 Line + comment.item.1 Mic + iface MIXER + name 'Input Mux' + value Line + } + control.19 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Headphone Switch' + value false + } + control.20 { + comment.access 'read write' + comment.type BOOLEAN + comment.count 1 + iface MIXER + name 'Speaker Switch' + value true + } + control.21 { + comment.access 'read write' + comment.type ENUMERATED + comment.count 1 + comment.item.0 'Call Mic' + comment.item.1 'Headset Mic' + iface MIXER + name 'Input Select' + value 'Call Mic' + } +} diff --git a/packages/binutils/binutils-cross.inc b/packages/binutils/binutils-cross.inc index 74ff4dd7a7..fb966d3c7b 100644 --- a/packages/binutils/binutils-cross.inc +++ b/packages/binutils/binutils-cross.inc @@ -18,13 +18,17 @@ do_stage () { rm -rf ${CROSS_DIR}/share/man rmdir ${CROSS_DIR}/share || : rmdir ${CROSS_DIR}/${libdir}/gcc-lib || : + rmdir ${CROSS_DIR}/${libdir}64/gcc-lib || : rmdir ${CROSS_DIR}/${libdir} || : + rmdir ${CROSS_DIR}/${libdir}64 || : rmdir ${CROSS_DIR}/${prefix} || : # We want to move this into the target specific location mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib - mv -f ${CROSS_DIR}/lib/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib + mv -f ${CROSS_DIR}/lib/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib || \ + mv -f ${CROSS_DIR}/lib64/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib rmdir ${CROSS_DIR}/lib || : + rmdir ${CROSS_DIR}/lib64 || : } do_install () { diff --git a/packages/cairo/cairo-directfb_1.4.8.bb b/packages/cairo/cairo-directfb_1.4.8.bb new file mode 100644 index 0000000000..0a2090cf66 --- /dev/null +++ b/packages/cairo/cairo-directfb_1.4.8.bb @@ -0,0 +1,17 @@ +require cairo.inc +RCONFLICTS = "cairo" +DEPENDS = "directfb libsm libpng fontconfig" +SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz \ + file://cairo_directfb_is_similar-typo.patch;patch=1 \ + " + +EXTRA_OECONF += " --enable-directfb \ + --disable-xlib \ + --disable-win32" + +LDFLAGS_append += " -ldirectfb" +CFLAGS_append += " -I${STAGING_INCDIR}/directfb" + +PR = "r1" + +S = "${WORKDIR}/cairo-${PV}" diff --git a/packages/cairo/files/cairo_directfb_is_similar-typo.patch b/packages/cairo/files/cairo_directfb_is_similar-typo.patch new file mode 100644 index 0000000000..10c81464f0 --- /dev/null +++ b/packages/cairo/files/cairo_directfb_is_similar-typo.patch @@ -0,0 +1,11 @@ +--- cairo-1.4.8/src/cairo-directfb-surface.c~org 2007-09-22 19:34:35.000000000 -0400 ++++ cairo-1.4.8/src/cairo-directfb-surface.c 2007-09-22 19:36:01.000000000 -0400 +@@ -1572,7 +1572,7 @@ + NULL, /* show_glyphs */ + #endif + NULL, /* snapshot */ +- _cairo_directfb_is_similar, ++ _cairo_directfb_surface_is_similar, + NULL /* reset */ + }; + 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" diff --git a/packages/directfb/directfb_1.1.0.bb b/packages/directfb/directfb_1.1.0.bb new file mode 100644 index 0000000000..bbda02e900 --- /dev/null +++ b/packages/directfb/directfb_1.1.0.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "DirectFB is a thin library that provides developers \ +with hardware graphics acceleration, input device handling and \ +abstraction, an integrated windowing system with support for \ +translucent windows and multiple display layers on top of the \ +Linux framebuffer device." +SECTION = "libs" +LICENSE = "LGPL" +HOMEPAGE = "http://directfb.org" +DEPENDS = "jpeg libpng freetype zlib tslib" +PR = "r0" +RV = "1.1-0" + +SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-${PV}.tar.gz \ + file://fix-pkgconfig-cflags.patch;patch=1 \ + file://fix-font-missing-char.patch;patch=1 \ + file://getpagesize.patch;patch=1 \ + file://fix-includes.patch;patch=1 \ + file://mkdfiff.patch;patch=1" + +S = "${WORKDIR}/DirectFB-${PV}" + +LDFLAGS_append =" -lts -lm" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--with-gfxdrivers=none \ + --enable-libmpeg3=no \ + --enable-freetype=yes \ + --enable-sdl=no \ + --disable-x11 \ + " + +do_stage() { + autotools_stage_all +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +FILES_directfb-dbg_append = " ${libdir}/directfb-${RV}/*/*/.debug/*.so \ + ${libdir}/directfb-${RV}/*/.debug/*.so \ + " + +FILES_directfb-dev_append = " ${libdir}/directfb-${RV}/systems/*.la \ + ${libdir}/directfb-${RV}/inputdrivers/*.la \ + ${libdir}/directfb-${RV}/interfaces/*/*.la \ + ${libdir}/directfb-${RV}/wm/*.la \ + " + + +FILES_directfb_append = " ${libdir}/directfb-${RV}/systems/*.so \ + ${libdir}/directfb-${RV}/inputdrivers/*.so \ + ${libdir}/directfb-${RV}/interfaces/*/*.so \ + ${libdir}/directfb-${RV}/wm/*.so \ + ${datadir}/directfb-1.1.0 \ + " diff --git a/packages/directfb/files/fix-font-missing-char.patch b/packages/directfb/files/fix-font-missing-char.patch new file mode 100644 index 0000000000..4c5e5883f4 --- /dev/null +++ b/packages/directfb/files/fix-font-missing-char.patch @@ -0,0 +1,11 @@ +--- git/src/media/idirectfbfont.c~org 2007-07-10 10:35:46.000000000 -0400 ++++ git/src/media/idirectfbfont.c 2007-07-10 10:36:09.000000000 -0400 +@@ -497,7 +497,7 @@ + + if (width<max_width && string >= end) { + *ret_next_line = NULL; +- *ret_str_length = length-1; ++ *ret_str_length = length; + *ret_width = width; + + return DFB_OK; diff --git a/packages/directfb/files/fix-pkgconfig-cflags.patch b/packages/directfb/files/fix-pkgconfig-cflags.patch new file mode 100644 index 0000000000..0273b58ec5 --- /dev/null +++ b/packages/directfb/files/fix-pkgconfig-cflags.patch @@ -0,0 +1,45 @@ +diff -ur DirectFB-1.0.0~org/directfb-internal.pc.in DirectFB-1.0.0/directfb-internal.pc.in +--- DirectFB-1.0.0~org/directfb-internal.pc.in 2003-07-04 13:30:22.000000000 -0400 ++++ DirectFB-1.0.0/directfb-internal.pc.in 2007-03-16 22:34:17.000000000 -0400 +@@ -8,4 +8,4 @@ + Description: Third party module support package for DirectFB. + Version: @VERSION@ + Requires: directfb = @VERSION@ +-Cflags: @DFB_INTERNAL_CFLAGS@ -I@INTERNALINCLUDEDIR@ ++Cflags: @DFB_INTERNAL_CFLAGS@ -I${includedir} +diff -ur DirectFB-1.0.0~org/directfb.pc.in DirectFB-1.0.0/directfb.pc.in +--- DirectFB-1.0.0~org/directfb.pc.in 2004-08-04 12:28:20.000000000 -0400 ++++ DirectFB-1.0.0/directfb.pc.in 2007-03-16 22:31:33.000000000 -0400 +@@ -8,4 +8,4 @@ + Version: @VERSION@ + Requires: fusion direct + Libs: -L${libdir} -ldirectfb @THREADLIB@ @DYNLIB@ @ZLIB_LIBS@ @OSX_LIBS@ +-Cflags: @THREADFLAGS@ -I@INCLUDEDIR@ ++Cflags: @THREADFLAGS@ -I${includedir} +diff -ur DirectFB-1.0.0~org/lib/direct/direct.pc.in DirectFB-1.0.0/lib/direct/direct.pc.in +--- DirectFB-1.0.0~org/lib/direct/direct.pc.in 2005-11-23 09:18:59.000000000 -0500 ++++ DirectFB-1.0.0/lib/direct/direct.pc.in 2007-03-16 22:32:13.000000000 -0400 +@@ -7,4 +7,4 @@ + Description: DirectFB base development library + Version: @VERSION@ + Libs: -L${libdir} -ldirect @THREADLIB@ @DYNLIB@ +-Cflags: @THREADFLAGS@ -I@INCLUDEDIR@ ++Cflags: @THREADFLAGS@ -I${includedir} +diff -ur DirectFB-1.0.0~org/lib/fusion/fusion.pc.in DirectFB-1.0.0/lib/fusion/fusion.pc.in +--- DirectFB-1.0.0~org/lib/fusion/fusion.pc.in 2004-05-19 07:30:56.000000000 -0400 ++++ DirectFB-1.0.0/lib/fusion/fusion.pc.in 2007-03-16 22:32:34.000000000 -0400 +@@ -8,4 +8,4 @@ + Version: @VERSION@ + Requires: direct + Libs: -L${libdir} -lfusion +-Cflags: -I@INCLUDEDIR@ ++Cflags: -I${includedir} +diff -ur DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in DirectFB-1.0.0/lib/voodoo/voodoo.pc.in +--- DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in 2004-05-19 07:31:28.000000000 -0400 ++++ DirectFB-1.0.0/lib/voodoo/voodoo.pc.in 2007-03-16 22:32:55.000000000 -0400 +@@ -8,4 +8,4 @@ + Version: @VERSION@ + Requires: direct + Libs: -L${libdir} -lvoodoo +-Cflags: -I@INCLUDEDIR@ ++Cflags: -I${includedir} diff --git a/packages/directfb/fusionsound_1.1.0+git20070709.bb b/packages/directfb/fusionsound_1.1.0+git20070709.bb new file mode 100644 index 0000000000..54e2ba211f --- /dev/null +++ b/packages/directfb/fusionsound_1.1.0+git20070709.bb @@ -0,0 +1,57 @@ +DESCRIPTION = "FusionSound for DirectFB" +DEPENDS = "directfb" +SECTION = "libs" +LICENSE = "LGPL" +PR = "r0" + +SRC_URI = "git://git.directfb.org/git/directfb/core/FusionSound;protocol=git;tag=0b2162b570c8314fd1240b08d6ab4a8d074ccf37 \ +" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig + +CFLAGS_append += " -I${STAGING_INCDIR}/directfb -I${STAGING_INCDIR}/directfb-internal" + +#Below are some of the configure options +EXTRA_OECONF = " \ + --disable-ieee-floats \ + --disable-precision \ + --enable-linear-filter \ + --disable-dithering \ + --enable-debug \ + --enable-examples \ + --enable-module \ + --disable-timidity \ + --disable-wave \ + --enable-vorbis \ + --enable-tremor \ + --disable-mad \ + --disable-cdda \ + --disable-playlist \ + " + +do_configure_append() { + find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}:g' +} + +do_stage() { + autotools_stage_all +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +FILES_fusionsound-dbg_append = " ${libdir}/directfb-1.1-0/*/*/.debug/*.so \ + ${libdir}/directfb-1.1-0/*/.debug/*.so \ + " + +FILES_fusionsound-dev_append = " ${libdir}/directfb-1.1-0/interfaces/*/*.la \ + ${libdir}/directfb-1.1-0/snddrivers/*.la \ + " + +FILES_fusionsound_append = " ${libdir}/directfb-1.1-0/interfaces/*/*.so \ + ${libdir}/directfb-1.1-0/snddrivers/*.so \ + " + 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 \ + " + diff --git a/packages/ezx/ezxd_svn.bb b/packages/ezx/ezxd_svn.bb index 56bc1c05bf..8b3390cea9 100644 --- a/packages/ezx/ezxd_svn.bb +++ b/packages/ezx/ezxd_svn.bb @@ -4,7 +4,7 @@ SECTION = "devel" AUTHOR = "Daniel Ribeiro" PV = "0.0+svnr${SRCREV}" -PR = "r0" +PR = "r1" SRC_URI = "svn://svn.openezx.org/trunk/src/userspace/;module=ezxd;proto=http \ file://ezxd.init \ @@ -21,8 +21,11 @@ do_configure() { sed -i -e s:CROSS:CC:g Makefile } -do_install() { - install -d ${D}${bindir} +fakeroot do_install() { + install -d ${D}/dev/input + mknod ${D}/dev/input/uinput c 10 223 + + install -d ${D}${bindir} install -m 755 ezxd ${D}${bindir} install -d ${D}${libdir}/ezxd @@ -33,3 +36,5 @@ do_install() { install -m 0755 ${WORKDIR}/ezxd.init ${D}${sysconfdir}/init.d/ezxd } +FILES_${PN} += "/dev" + 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 = "" 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" 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 <balrog@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); ++ } + + return rc; + } +@@ -433,85 +491,23 @@ static int atcmd_prompt(void *data) + { + struct gsmd *g = data; + +- g->gfd_uart.when |= GSMD_FD_WRITE; ++ g->clear_to_send = 1; ++ atcmd_wake_queue(g); + } + + /* callback to be called if [virtual] UART has some data for us */ +-static int atcmd_select_cb(int fd, unsigned int what, void *data) ++static int atcmd_newdata_cb(void *opaque, const char data[], int len) + { +- int len, rc; +- static char rxbuf[1024]; +- struct gsmd *g = data; +- char *cr; +- +- if (what & GSMD_FD_READ) { +- memset(rxbuf, 0, sizeof(rxbuf)); +- while ((len = read(fd, rxbuf, sizeof(rxbuf)))) { +- if (len < 0) { +- if (errno == EAGAIN) +- return 0; +- gsmd_log(GSMD_NOTICE, "ERROR reading from fd %u: %d (%s)\n", fd, len, +- strerror(errno)); +- return len; +- } +- rc = llparse_string(&g->llp, rxbuf, len); +- if (rc < 0) { +- gsmd_log(GSMD_ERROR, "ERROR during llparse_string: %d\n", rc); +- return rc; +- } +- } +- } +- +- /* write pending commands to UART */ +- if ((what & GSMD_FD_WRITE) && g->interpreter_ready) { +- 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 - 1; /* assuming zero-terminated strings */ +- rc = write(fd, pos->cur, len); +- if (rc == 0) { +- gsmd_log(GSMD_ERROR, "write returns 0, aborting\n"); +- break; +- } else if (rc < 0) { +- gsmd_log(GSMD_ERROR, "error during write to fd %d: %d\n", +- fd, rc); +- return rc; +- } +- if (!cr || rc == len) +- rc ++; /* Skip the \n or \0 */ +- pos->buflen -= rc; +- pos->cur += rc; +- write(fd, "\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 */ +- break; +- } else { +- /* The write was short or the atcmd has more +- * lines to send after a "> ". */ +- if (rc < len) +- return 0; +- break; +- } +- } ++ struct gsmd *g = opaque; ++ int rc; + +- /* Either pending_atcmds is empty or a command has to wait */ +- g->gfd_uart.when &= ~GSMD_FD_WRITE; +- } ++ rc = llparse_string(&g->llp, data, len); ++ if (rc < 0) ++ gsmd_log(GSMD_ERROR, "ERROR during llparse_string: %d\n", rc); + +- return 0; ++ return rc; + } + +- + struct gsmd_atcmd *atcmd_fill(const char *cmd, int rlen, + atcmd_cb_t cb, void *ctx, u_int16_t id) + { +@@ -544,36 +540,18 @@ int atcmd_submit(struct gsmd *g, struct gsmd_atcmd *cmd) + { + DEBUGP("submitting command `%s'\n", cmd->buf); + +- if (llist_empty(&g->pending_atcmds)) +- g->gfd_uart.when |= GSMD_FD_WRITE; ++ llist_empty(&g->pending_atcmds); + llist_add_tail(&cmd->list, &g->pending_atcmds); ++ atcmd_wake_queue(g); + + return 0; + } + +-void atcmd_drain(int fd) +-{ +- int rc; +- struct termios t; +- rc = tcflush(fd, TCIOFLUSH); +- rc = tcgetattr(fd, &t); +- DEBUGP("c_iflag = 0x%08x, c_oflag = 0x%08x, c_cflag = 0x%08x, c_lflag = 0x%08x\n", +- t.c_iflag, t.c_oflag, t.c_cflag, t.c_lflag); +- t.c_iflag = t.c_oflag = 0; +- cfmakeraw(&t); +- rc = tcsetattr(fd, TCSANOW, &t); +-} +- + /* init atcmd parser */ +-int atcmd_init(struct gsmd *g, int sockfd) ++int atcmd_init(struct gsmd *g, struct gsmd_port *port) + { + __atcmd_ctx = talloc_named_const(gsmd_tallocs, 1, "atcmds"); + +- g->gfd_uart.fd = sockfd; +- g->gfd_uart.when = GSMD_FD_READ; +- g->gfd_uart.data = g; +- g->gfd_uart.cb = &atcmd_select_cb; +- + INIT_LLIST_HEAD(&g->pending_atcmds); + INIT_LLIST_HEAD(&g->busy_atcmds); + +@@ -581,7 +559,9 @@ int atcmd_init(struct gsmd *g, int sockfd) + + g->mlbuf_len = 0; + g->mlunsolicited = 0; ++ g->clear_to_send = 1; + ++ g->llp.port = port; + g->llp.cur = g->llp.buf; + g->llp.len = sizeof(g->llp.buf); + g->llp.cb = &ml_parse; +@@ -589,5 +569,8 @@ int atcmd_init(struct gsmd *g, int sockfd) + g->llp.ctx = g; + g->llp.flags = LGSM_ATCMD_F_EXTENDED; + +- return gsmd_register_fd(&g->gfd_uart); ++ port->newdata_opaque = g; ++ port->newdata_cb = atcmd_newdata_cb; ++ ++ return 0; + } +diff --git a/src/gsmd/gsmd.c b/src/gsmd/gsmd.c +index 51b4f2c..846bd17 100644 +--- a/src/gsmd/gsmd.c ++++ b/src/gsmd/gsmd.c +@@ -26,7 +26,6 @@ + #include <string.h> + #include <errno.h> + #include <fcntl.h> +-#include <termios.h> + #include <signal.h> + + #define _GNU_SOURCE +@@ -247,56 +246,6 @@ int gsmd_initsettings(struct gsmd *gsmd) + return atcmd_submit(gsmd, cmd); + } + +-struct bdrt { +- int bps; +- u_int32_t b; +-}; +- +-static struct bdrt bdrts[] = { +- { 0, B0 }, +- { 9600, B9600 }, +- { 19200, B19200 }, +- { 38400, B38400 }, +- { 57600, B57600 }, +- { 115200, B115200 }, +- { 230400, B230400 }, +- { 460800, B460800 }, +- { 921600, B921600 }, +-}; +- +-static int set_baudrate(int fd, int baudrate, int hwflow) +-{ +- int i; +- u_int32_t bd = 0; +- struct termios ti; +- +- for (i = 0; i < ARRAY_SIZE(bdrts); i++) { +- if (bdrts[i].bps == baudrate) +- bd = bdrts[i].b; +- } +- if (bd == 0) +- return -EINVAL; +- +- i = tcgetattr(fd, &ti); +- if (i < 0) +- return i; +- +- i = cfsetispeed(&ti, B0); +- if (i < 0) +- return i; +- +- i = cfsetospeed(&ti, bd); +- if (i < 0) +- return i; +- +- if (hwflow) +- ti.c_cflag |= CRTSCTS; +- else +- ti.c_cflag &= ~CRTSCTS; +- +- return tcsetattr(fd, 0, &ti); +-} +- + static int gsmd_initialize(struct gsmd *g) + { + INIT_LLIST_HEAD(&g->users); +@@ -478,14 +427,19 @@ int main(int argc, char **argv) + if (wait >= 0) + g.interpreter_ready = !wait; + +- if (atcmd_init(&g, fd) < 0) { ++ if (uart_init(&g.uart, fd) < 0) { + fprintf(stderr, "can't initialize UART device\n"); + exit(1); + } + +- write(fd, "\r", 1); +- sleep(1); +- atcmd_drain(fd); ++ if (atcmd_init(&g, &g.uart.port) < 0) { ++ fprintf(stderr, "can't initialize AT parser\n"); ++ exit(1); ++ } ++ write(fd, "\r", 1); ++ sleep(1); ++ ++ uart_drain(fd); + + if (usock_init(&g) < 0) { + fprintf(stderr, "can't open unix socket\n"); +diff --git a/src/gsmd/uart.c b/src/gsmd/uart.c +new file mode 100644 +index 0000000..22a4a5c +--- /dev/null ++++ b/src/gsmd/uart.c +@@ -0,0 +1,202 @@ ++/* Wrapper for the physical UART in a struct gsmd_port abstraction. ++ * ++ * Copyright (C) 2007 OpenMoko, Inc. ++ * Written by Andrzej Zaborowski <andrew@openedhand.com> ++ * ++ * This program is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU General Public License as ++ * published by the Free Software Foundation; either version 2 of ++ * the License, or (at your option) any later version. ++ * ++ * 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., 59 Temple Place, Suite 330, Boston, ++ * MA 02111-1307 USA ++ */ ++ ++#include <string.h> ++#include <fcntl.h> ++#include <termios.h> ++#include <unistd.h> ++#include <errno.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++ ++void uart_drain(int fd) ++{ ++ int rc; ++ struct termios t; ++ rc = tcflush(fd, TCIOFLUSH); ++ rc = tcgetattr(fd, &t); ++ DEBUGP( ++ "c_iflag = 0x%08x, c_oflag = 0x%08x, " ++ "c_cflag = 0x%08x, c_lflag = 0x%08x\n", ++ t.c_iflag, t.c_oflag, t.c_cflag, t.c_lflag); ++ t.c_iflag = t.c_oflag = 0; ++ cfmakeraw(&t); ++ rc = tcsetattr(fd, TCSANOW, &t); ++} ++ ++struct bdrt { ++ int bps; ++ u_int32_t b; ++}; ++ ++static struct bdrt bdrts[] = { ++ { 0, B0 }, ++ { 9600, B9600 }, ++ { 19200, B19200 }, ++ { 38400, B38400 }, ++ { 57600, B57600 }, ++ { 115200, B115200 }, ++ { 230400, B230400 }, ++ { 460800, B460800 }, ++ { 921600, B921600 }, ++}; ++ ++int set_baudrate(int fd, int baudrate, int hwflow) ++{ ++ int i; ++ u_int32_t bd = 0; ++ struct termios ti; ++ ++ for (i = 0; i < ARRAY_SIZE(bdrts); i++) { ++ if (bdrts[i].bps == baudrate) ++ bd = bdrts[i].b; ++ } ++ if (bd == 0) ++ return -EINVAL; ++ ++ i = tcgetattr(fd, &ti); ++ if (i < 0) ++ return i; ++ ++ i = cfsetispeed(&ti, B0); ++ if (i < 0) ++ return i; ++ ++ i = cfsetospeed(&ti, bd); ++ if (i < 0) ++ return i; ++ ++ if (hwflow) ++ ti.c_cflag |= CRTSCTS; ++ else ++ ti.c_cflag &= ~CRTSCTS; ++ ++ return tcsetattr(fd, 0, &ti); ++} ++ ++static int uart_select_cb(int fd, unsigned int what, void *data) ++{ ++ struct gsmd_uart *uart = (struct gsmd_uart *) data; ++ static char rxbuf[2048]; ++ int rc, len; ++ ++ if ((what & GSMD_FD_READ) && uart->port.newdata_cb) { ++ while ((len = read(fd, rxbuf, sizeof(rxbuf)))) { ++ if (len < 0) { ++ if (errno == EAGAIN || errno == EINTR) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR reading from " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ rc = uart->port.newdata_cb( ++ uart->port.newdata_opaque, ++ rxbuf, ++ len); ++ if (rc < 0) ++ return rc; ++ } ++ } ++ ++ /* Write pending data to UART. */ ++ if ((what & GSMD_FD_WRITE) && uart->tx_len) { ++ while (uart->tx_start + uart->tx_len >= sizeof(uart->txfifo)) { ++ len = sizeof(uart->txfifo) - uart->tx_start; ++ rc = write(fd, &uart->txfifo[uart->tx_start], len); ++ if (rc < 0 && errno != EINTR) { ++ if (errno == EAGAIN) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR writing " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ if (rc > 0) { ++ uart->tx_start += rc; ++ uart->tx_len -= rc; ++ } ++ } ++ uart->tx_start &= sizeof(uart->txfifo) - 1; ++ ++ while (uart->tx_len) { ++ rc = write(fd, &uart->txfifo[uart->tx_start], ++ uart->tx_len); ++ if (rc < 0 && errno != EINTR) { ++ if (errno == EAGAIN) ++ return 0; ++ gsmd_log(GSMD_NOTICE, "ERROR writing " ++ "fd %u: %d (%s)\n", fd, errno, ++ strerror(errno)); ++ return -errno; ++ } ++ ++ if (rc > 0) { ++ uart->tx_start += rc; ++ uart->tx_len -= rc; ++ } ++ } ++ ++ /* If we reached here, there's no more data for the moment. */ ++ uart->gfd.when &= ~GSMD_FD_WRITE; ++ } ++ ++ return 0; ++} ++ ++static int uart_write(struct gsmd_port *port, const char data[], int len) ++{ ++ struct gsmd_uart *uart = (struct gsmd_uart *) port; ++ int start = (uart->tx_start + uart->tx_len) & ++ (sizeof(uart->txfifo) - 1); ++ int space = sizeof(uart->txfifo) - start; ++ ++ if (uart->tx_len + len > sizeof(uart->txfifo)) ++ len = sizeof(uart->txfifo) - uart->tx_len; ++ ++ if (len) ++ uart->gfd.when |= GSMD_FD_WRITE; ++ ++ if (len > space) { ++ memcpy(uart->txfifo + start, data, space); ++ memcpy(uart->txfifo, data + space, len - space); ++ } else ++ memcpy(uart->txfifo + start, data, len); ++ ++ uart->tx_len += len; ++ return len; ++} ++ ++int uart_init(struct gsmd_uart *uart, int sockfd) ++{ ++ uart->gfd.fd = sockfd; ++ uart->gfd.when = GSMD_FD_READ; ++ uart->gfd.data = uart; ++ uart->gfd.cb = &uart_select_cb; ++ ++ uart->port.write = uart_write; ++ ++ return gsmd_register_fd(&uart->gfd); ++} +-- +1.5.2.1 + diff --git a/packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch b/packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch new file mode 100644 index 0000000000..3683596389 --- /dev/null +++ b/packages/gsm/files/0002-Flush-all-pending-commands-before-restarting-the-mod.patch @@ -0,0 +1,74 @@ +From 1078f7aced63c6216bffe649930b97c9ccf9a16e Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 14:04:50 +0200 +Subject: [PATCH] Flush all pending commands before restarting the modem initialisation. + +--- + include/gsmd/gsmd.h | 1 + + src/gsmd/atcmd.c | 21 +++++++++++++++++++++ + src/gsmd/timer.c | 8 ++++++++ + 3 files changed, 30 insertions(+), 0 deletions(-) + +diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h +index 4afdf66..6ac9d8e 100644 +--- a/include/gsmd/gsmd.h ++++ b/include/gsmd/gsmd.h +@@ -131,6 +131,7 @@ struct gsmd_timer { + + int gsmd_timer_init(void); + void gmsd_timer_check_n_run(void); ++void gsmd_timer_reset(void); + + struct gsmd_timer *gsmd_timer_alloc(void); + int gsmd_timer_register(struct gsmd_timer *timer); +diff --git a/src/gsmd/atcmd.c b/src/gsmd/atcmd.c +index 27dfa41..2f6cee2 100644 +--- a/src/gsmd/atcmd.c ++++ b/src/gsmd/atcmd.c +@@ -264,6 +264,27 @@ static int ml_parse(const char *buf, int len, void *ctx) + if (strlen(buf) == 0 || + !strcmp(buf, "AT-Command Interpreter ready")) { + g->interpreter_ready = 1; ++ g->clear_to_send = 1; ++ ++ /* Flush current queue and reinitialise */ ++ while (!llist_empty(&g->busy_atcmds)) { ++ cmd = llist_entry(g->busy_atcmds.next, ++ struct gsmd_atcmd, list); ++ gsmd_log(GSMD_NOTICE, "discarding busy cmd %s\n", ++ cmd->buf); ++ llist_del(&cmd->list); ++ talloc_free(cmd); ++ } ++ while (!llist_empty(&g->pending_atcmds)) { ++ cmd = llist_entry(g->pending_atcmds.next, ++ struct gsmd_atcmd, list); ++ gsmd_log(GSMD_NOTICE, "discarding pending cmd %s\n", ++ cmd->buf); ++ llist_del(&cmd->list); ++ talloc_free(cmd); ++ } ++ ++ gsmd_timer_reset(); + gsmd_initsettings(g); + gmsd_alive_start(g); + atcmd_wake_queue(g); +diff --git a/src/gsmd/timer.c b/src/gsmd/timer.c +index 5200690..8877275 100644 +--- a/src/gsmd/timer.c ++++ b/src/gsmd/timer.c +@@ -215,3 +215,11 @@ void gsmd_timer_unregister(struct gsmd_timer *timer) + /* re-calculate next expiration */ + calc_next_expiration(); + } ++ ++void gsmd_timer_reset(void) ++{ ++ while (!llist_empty(&gsmd_timers)) ++ /* TODO: free associated resources (e.g timer->cancel_cb()) */ ++ llist_del(&llist_entry(gsmd_timers.next, ++ struct gsmd_timer, list)->list); ++} +-- +1.5.2.1 + diff --git a/packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch b/packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch new file mode 100644 index 0000000000..984acc9369 --- /dev/null +++ b/packages/gsm/files/0003-Correctly-segment-incoming-usock-data-into-packets.patch @@ -0,0 +1,77 @@ +From 8af1bb4a0d0df9baa80859c5f7f56cbd7634aded Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 14:06:19 +0200 +Subject: [PATCH] Correctly segment incoming usock data into packets, handler short reads. + +--- + include/gsmd/gsmd.h | 2 ++ + src/gsmd/usock.c | 20 ++++++++++++++++---- + 2 files changed, 18 insertions(+), 4 deletions(-) + +diff --git a/include/gsmd/gsmd.h b/include/gsmd/gsmd.h +index 6ac9d8e..acec02a 100644 +--- a/include/gsmd/gsmd.h ++++ b/include/gsmd/gsmd.h +@@ -95,6 +95,8 @@ struct gsmd_user { + struct gsmd *gsmd; + struct gsmd_fd gfd; /* the socket */ + u_int32_t subscriptions; /* bitmaks of subscribed event groups */ ++ char usock_fifo[1024]; ++ int usock_len; + + struct llist_head pb_readrg_list; /* our READRG phonebook list */ + struct llist_head pb_find_list; /* our FIND phonebook list */ +diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c +index 32e98d0..bac5f0c 100644 +--- a/src/gsmd/usock.c ++++ b/src/gsmd/usock.c +@@ -1529,14 +1529,15 @@ static int usock_rcv_pcmd(struct gsmd_user *gu, char *buf, int len) + static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + { + struct gsmd_user *gu = data; ++ struct gsmd_msg_hdr *gph; + + /* FIXME: check some kind of backlog and limit it */ + + if (what & GSMD_FD_READ) { +- char buf[1024]; + int rcvlen; + /* read data from socket, determine what he wants */ +- rcvlen = read(fd, buf, sizeof(buf)); ++ rcvlen = read(fd, gu->usock_fifo + gu->usock_len, ++ sizeof(gu->usock_fifo) - gu->usock_len); + if (rcvlen == 0) { + DEBUGP("EOF, this client has just vanished\n"); + /* EOF, this client has just vanished */ +@@ -1549,8 +1550,18 @@ static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + return 0; + } else if (rcvlen < 0) + return rcvlen; +- else +- return usock_rcv_pcmd(gu, buf, rcvlen); ++ ++ gu->usock_len += rcvlen; ++ gph = (struct gsmd_msg_hdr *) gu->usock_fifo; ++ while (gu->usock_len >= sizeof(*gph) && ++ gu->usock_len >= sizeof(*gph) + gph->len) { ++ usock_rcv_pcmd(gu, gu->usock_fifo, gu->usock_len); ++ gu->usock_len -= sizeof(*gph) + gph->len; ++ memmove(gu->usock_fifo, ++ gu->usock_fifo + sizeof(*gph) + ++ gph->len, ++ gu->usock_len); ++ } + } + + if (what & GSMD_FD_WRITE) { +@@ -1609,6 +1620,7 @@ static int gsmd_usock_cb(int fd, unsigned int what, void *data) + newuser->gfd.cb = &gsmd_usock_user_cb; + newuser->gsmd = g; + newuser->subscriptions = 0xffffffff; ++ newuser->usock_len = 0; + INIT_LLIST_HEAD(&newuser->finished_ucmds); + INIT_LLIST_HEAD(&newuser->pb_readrg_list); + INIT_LLIST_HEAD(&newuser->pb_find_list); +-- +1.5.2.1 + diff --git a/packages/gsm/files/0004-Handle-read-and-write-return-values.patch b/packages/gsm/files/0004-Handle-read-and-write-return-values.patch new file mode 100644 index 0000000000..f5e7a7902d --- /dev/null +++ b/packages/gsm/files/0004-Handle-read-and-write-return-values.patch @@ -0,0 +1,176 @@ +From 421b0fa14fefbd13a455c20380fecddda616b41a Mon Sep 17 00:00:00 2001 +From: Andrzej Zaborowski <balrog@zabor.org> +Date: Wed, 19 Sep 2007 18:30:36 +0200 +Subject: [PATCH] Handle read() and write() return values. + +--- + include/libgsmd/libgsmd.h | 3 +- + src/gsmd/usock.c | 38 ++++++++++++++++----------- + src/libgsmd/lgsm_internals.h | 2 + + src/libgsmd/libgsmd.c | 58 ++++++++++++++++++++++++++--------------- + 4 files changed, 63 insertions(+), 38 deletions(-) + +diff --git a/include/libgsmd/libgsmd.h b/include/libgsmd/libgsmd.h +index fc56890..db15aa9 100644 +--- a/include/libgsmd/libgsmd.h ++++ b/include/libgsmd/libgsmd.h +@@ -65,6 +65,7 @@ extern int lgsm_subscriptions(struct lgsm_handle *lh, u_int32_t subscriptions); + + extern struct gsmd_msg_hdr *lgsm_gmh_fill(int type, int subtype, int payload_len); + extern int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh); +-extern int lgsm_handle_packet(struct lgsm_handle *lh, char *buf, int len); ++extern int lgsm_handle_packet(struct lgsm_handle *lh, ++ const char *buf, int len); + + #endif +diff --git a/src/gsmd/usock.c b/src/gsmd/usock.c +index bac5f0c..2283600 100644 +--- a/src/gsmd/usock.c ++++ b/src/gsmd/usock.c +@@ -1569,23 +1569,29 @@ static int gsmd_usock_user_cb(int fd, unsigned int what, void *data) + struct gsmd_ucmd *ucmd, *uctmp; + llist_for_each_entry_safe(ucmd, uctmp, &gu->finished_ucmds, + list) { +- int rc; +- +- rc = write(fd, &ucmd->hdr, sizeof(ucmd->hdr) + ucmd->hdr.len); +- if (rc < 0) { +- DEBUGP("write return %d\n", rc); +- return rc; +- } +- if (rc == 0) { +- DEBUGP("write returns zero!!\n"); +- break; ++ const void *pos = &ucmd->hdr; ++ size_t len = sizeof(ucmd->hdr) + ucmd->hdr.len; ++ ++ while (len) { ++ ssize_t rc; ++ ++ rc = write(fd, pos, len); ++ if (rc < 0 && errno != EINTR) { ++ DEBUGP("write returned %s\n", ++ strerror(errno)); ++ return rc; ++ } ++ if (rc == 0 && pos == &ucmd->hdr) { ++ DEBUGP("write returns zero!!\n"); ++ return 0; ++ } ++ if (rc > 0) { ++ len -= rc; ++ pos += rc; ++ } + } +- if (rc != sizeof(ucmd->hdr) + ucmd->hdr.len) { +- DEBUGP("short write\n"); +- break; +- } +- +- DEBUGP("successfully sent cmd %p to user %p, freeing\n", ucmd, gu); ++ DEBUGP("successfully sent cmd %p to user %p, " ++ "freeing\n", ucmd, gu); + llist_del(&ucmd->list); + talloc_free(ucmd); + } +diff --git a/src/libgsmd/lgsm_internals.h b/src/libgsmd/lgsm_internals.h +index c826723..f1b1a23 100644 +--- a/src/libgsmd/lgsm_internals.h ++++ b/src/libgsmd/lgsm_internals.h +@@ -8,6 +8,8 @@ struct lgsm_handle { + int fd; + lgsm_msg_handler *handler[__NUM_GSMD_MSGS]; + enum lgsm_netreg_state netreg_state; ++ char usock_fifo[1024]; ++ int usock_len; + }; + + int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh); +diff --git a/src/libgsmd/libgsmd.c b/src/libgsmd/libgsmd.c +index 9906ea8..cc804ed 100644 +--- a/src/libgsmd/libgsmd.c ++++ b/src/libgsmd/libgsmd.c +@@ -86,34 +86,37 @@ static int lgsm_open_backend(struct lgsm_handle *lh, const char *device) + } + + /* handle a packet that was received on the gsmd socket */ +-int lgsm_handle_packet(struct lgsm_handle *lh, char *buf, int len) ++int lgsm_handle_packet(struct lgsm_handle *lh, const char *buf, int len) + { + struct gsmd_msg_hdr *gmh; + lgsm_msg_handler *handler; + int rc = 0; + +- while (len) { +- if (len < sizeof(*gmh)) +- return -EINVAL; +- gmh = (struct gsmd_msg_hdr *) buf; +- +- if (len - sizeof(*gmh) < gmh->len) +- return -EINVAL; +- len -= sizeof(*gmh) + gmh->len; +- buf += sizeof(*gmh) + gmh->len; +- +- if (gmh->msg_type >= __NUM_GSMD_MSGS) +- return -EINVAL; +- +- handler = lh->handler[gmh->msg_type]; ++ if (lh->usock_len + len > sizeof(lh->usock_fifo)) ++ return -ENOMEM; + +- if (handler) ++ memcpy(lh->usock_fifo + lh->usock_len, buf, len); ++ lh->usock_len += len; ++ gmh = (struct gsmd_msg_hdr *) lh->usock_fifo; ++ while (lh->usock_len >= sizeof(*gmh) && ++ lh->usock_len >= sizeof(*gmh) + gmh->len) { ++ if (gmh->msg_type < __NUM_GSMD_MSGS && ++ (handler = lh->handler[gmh->msg_type])) + rc |= handler(lh, gmh); +- else +- fprintf(stderr, "unable to handle packet type=%u\n", +- gmh->msg_type); ++ else { ++ fprintf(stderr, "unable to handle packet " ++ "type=%u id=%u\n", ++ gmh->msg_type, gmh->id); ++ rc |= EINVAL; ++ } ++ ++ lh->usock_len -= gmh->len + sizeof(*gmh); ++ memmove(lh->usock_fifo, ++ lh->usock_fifo + gmh->len + sizeof(*gmh), ++ lh->usock_len); + } +- return rc; ++ ++ return -rc; + } + + int lgsm_register_handler(struct lgsm_handle *lh, int type, lgsm_msg_handler *handler) +@@ -193,8 +196,21 @@ static u_int16_t next_msg_id; + + int lgsm_send(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh) + { ++ ssize_t rc; ++ size_t len = sizeof(*gmh) + gmh->len; ++ const void *pos = gmh; ++ + gmh->id = next_msg_id++; +- return send(lh->fd, (char *) gmh, sizeof(*gmh) + gmh->len, 0); ++ while (len) { ++ rc = send(lh->fd, pos, len, 0); ++ if (rc < 0 && errno != EINTR) ++ return -errno; ++ if (rc > 0) { ++ len -= rc; ++ pos += rc; ++ } ++ } ++ return 0; + } + + struct gsmd_msg_hdr *lgsm_gmh_fill(int type, int subtype, int payload_len) +-- +1.5.2.1 + diff --git a/packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch b/packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch new file mode 100644 index 0000000000..e9f49bd7d2 --- /dev/null +++ b/packages/gsm/files/0005-Add-ask-ds-option-forSMS.patch @@ -0,0 +1,130 @@ +diff --git a/include/gsmd/usock.h b/include/gsmd/usock.h +index 236ad78..66cdf48 100644 +--- a/include/gsmd/usock.h ++++ b/include/gsmd/usock.h +@@ -332,6 +332,7 @@ struct gsmd_sms { + struct gsmd_sms_submit { + struct gsmd_addr addr; + struct gsmd_sms payload; ++ int ask_ds; + }; + + /* Refer to GSM 07.05 subclause 4.4 */ +diff --git a/include/libgsmd/sms.h b/include/libgsmd/sms.h +index 3ada62d..9808442 100644 +--- a/include/libgsmd/sms.h ++++ b/include/libgsmd/sms.h +@@ -46,6 +46,7 @@ struct lgsm_sms { + enum gsmd_sms_alphabet alpha; + u_int8_t data[LGSM_SMS_DATA_MAXLEN+1]; + int length; ++ int ask_ds; + }; + + /* GSM 03.40 subclause 9.2.2.2 and GSM 07.05 subclause 4.4 and subclause 3.1 */ +diff --git a/src/gsmd/sms_pdu.c b/src/gsmd/sms_pdu.c +index d1235dd..d461999 100644 +--- a/src/gsmd/sms_pdu.c ++++ b/src/gsmd/sms_pdu.c +@@ -247,7 +247,8 @@ int sms_pdu_make_smssubmit(char *dest, const struct gsmd_sms_submit *src) + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_STATUS_REQUEST | ++ (src->ask_ds ? GSMD_SMS_TP_SRR_STATUS_REQUEST : ++ GSMD_SMS_TP_SRR_NOT_REQUEST) | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; +diff --git a/src/libgsmd/libgsmd_sms.c b/src/libgsmd/libgsmd_sms.c +index 22d7dbf..bbc8689 100644 +--- a/src/libgsmd/libgsmd_sms.c ++++ b/src/libgsmd/libgsmd_sms.c +@@ -126,6 +126,7 @@ int lgsm_sms_send(struct lgsm_handle *lh, + if (lgsm_number2addr(&gss->addr, sms->addr, 1)) + return -EINVAL; + ++ gss->ask_ds = sms->ask_ds; + gss->payload.has_header = 0; + gss->payload.length = sms->length; + gss->payload.coding_scheme = sms->alpha; +@@ -161,6 +162,7 @@ int lgsm_sms_write(struct lgsm_handle *lh, + if (lgsm_number2addr(&gsw->sms.addr, sms_write->sms.addr, 1)) + return -EINVAL; + ++ gsw->sms.ask_ds = sms_write->sms.ask_ds; + gsw->sms.payload.has_header = 0; + gsw->sms.payload.length = sms_write->sms.length; + gsw->sms.payload.coding_scheme = sms_write->sms.alpha; +diff --git a/src/util/shell.c b/src/util/shell.c +index f902126..f26e17e 100644 +--- a/src/util/shell.c ++++ b/src/util/shell.c +@@ -355,7 +355,7 @@ static int shell_help(void) + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +- "\tss\tSMS Send (ss=number,text|[\"text\"])\n" ++ "\tss\tSMS Send (ss=ask_ds,number,text|[\"text\"])\n" + "\tsw\tSMS Write (sw=stat,number,text)\n" + "\tsm\tSMS Storage stats\n" + "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n" +@@ -563,33 +563,29 @@ int shell_main(struct lgsm_handle *lgsmh) + struct lgsm_sms sms; + + ptr = strchr(buf, '='); ++ sms.ask_ds = atoi(ptr+1); + fcomma = strchr(buf, ','); +- if (!ptr || !fcomma) { +- printf("Wrong command format\n"); +- } else { +- strncpy(sms.addr, ptr+1, fcomma-ptr-1); +- sms.addr[fcomma-ptr-1] = '\0'; +- +- /* todo define \" to allow " in text */ +- if (fcomma[1] == '"' && +- !strchr(fcomma+2, '"')) { ++ lcomma = strchr(fcomma+1, ','); ++ strncpy(sms.addr, fcomma+1, lcomma-fcomma-1); ++ sms.addr[lcomma-fcomma-1] = '\0'; ++ /* todo define \" to allow " in text */ ++ if (lcomma[1]=='"' && ++ !strchr(lcomma+2, '"')) { + /* read until closing '"' */ + rc = fscanf(stdin, "%[^\"]\"", +- fcomma+strlen(fcomma)); ++ lcomma+strlen(lcomma)); + if (rc == EOF) { + printf("EOF\n"); + return -1; + } + /* remove brackets */ +- fcomma++; +- fcomma[strlen(fcomma)] = '\0'; +- } +- +- printf("Send SMS\n"); +- packing_7bit_character(fcomma+1, &sms); ++ lcomma++; ++ lcomma[strlen(lcomma)] = '\0'; ++ } ++ printf("Send SMS\n"); ++ packing_7bit_character(lcomma+1, &sms); + +- lgsm_sms_send(lgsmh, &sms); +- } ++ lgsm_sms_send(lgsmh, &sms); + } else if ( !strncmp(buf, "sw", 2)) { + printf("Write SMS\n"); + struct lgsm_sms_write sms_write; +@@ -603,6 +599,7 @@ int shell_main(struct lgsm_handle *lgsmh) + sms_write.sms.addr[lcomma-fcomma-1] = '\0'; + packing_7bit_character( + lcomma+1, &sms_write.sms); ++ sms_write.sms.ask_ds = 0; + + lgsm_sms_write(lgsmh, &sms_write); + } else if (!strncmp(buf, "sm", 2)) { +-- +1.5.2.1 + diff --git a/packages/gsm/files/024_sms-text-in-bracket.patch b/packages/gsm/files/024_sms-text-in-bracket.patch new file mode 100644 index 0000000000..32a1ca33ff --- /dev/null +++ b/packages/gsm/files/024_sms-text-in-bracket.patch @@ -0,0 +1,70 @@ +http://bugzilla.openmoko.org/cgi-bin/bugzilla/show_bug.cgi?id=834 + +From: Kristian Mueller <kristian@mput.de> +Subject: [PATCH] libgsmd-tool does not allow sms with more than one word + +libgsmd-tool only allows for command strings without spaces. +SMS messages with more than one word will be parsed as multible commands. +The patch introduces SMS message text in bracket and fixes a NULL pointer +reference on mailformed "ss" commands. + +Signed-off-by: Jim Huang <jserv@openmoko.org> +--- + src/util/shell.c | 32 ++++++++++++++++++++++++++------ + 1 file changed, 26 insertions(+), 6 deletions(-) + +Index: gsm/src/util/shell.c +=================================================================== +--- gsm.orig/src/util/shell.c 2007-08-31 16:15:30.000000000 +0800 ++++ gsm/src/util/shell.c 2007-09-17 23:35:31.000000000 +0800 +@@ -389,7 +389,7 @@ + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +- "\tss\tSMS Send (ss=number,text)\n" ++ "\tss\tSMS Send (ss=number,text|[\"text\"])\n" + "\tsw\tSMS Write (sw=stat,number,text)\n" + "\tsm\tSMS Storage stats\n" + "\tsM\tSMS Set preferred storage (sM=mem1,mem2,mem3)\n" +@@ -612,16 +612,36 @@ + + lgsm_sms_read(lgsmh, atoi(ptr+1)); + } else if ( !strncmp(buf, "ss", 2)) { +- printf("Send SMS\n"); + struct lgsm_sms sms; + + ptr = strchr(buf, '='); + fcomma = strchr(buf, ','); +- strncpy(sms.addr, ptr+1, fcomma-ptr-1); +- sms.addr[fcomma-ptr-1] = '\0'; +- packing_7bit_character(fcomma+1, &sms); ++ if (!ptr || !fcomma) { ++ printf("Wrong command format\n"); ++ } else { ++ strncpy(sms.addr, ptr+1, fcomma-ptr-1); ++ sms.addr[fcomma-ptr-1] = '\0'; ++ ++ /* todo define \" to allow " in text */ ++ if (fcomma[1] == '"' && ++ !strchr(fcomma+2, '"')) { ++ /* read until closing '"' */ ++ rc = fscanf(stdin, "%[^\"]\"", ++ fcomma+strlen(fcomma)); ++ if (rc == EOF) { ++ printf("EOF\n"); ++ return -1; ++ } ++ /* remove brackets */ ++ fcomma++; ++ fcomma[strlen(fcomma)] = '\0'; ++ } ++ ++ printf("Send SMS\n"); ++ packing_7bit_character(fcomma+1, &sms); + +- lgsm_sms_send(lgsmh, &sms); ++ lgsm_sms_send(lgsmh, &sms); ++ } + } else if ( !strncmp(buf, "sw", 2)) { + printf("Write SMS\n"); + struct lgsm_sms_write sms_write; diff --git a/packages/gsm/files/025_sms-status-report.patch b/packages/gsm/files/025_sms-status-report.patch new file mode 100644 index 0000000000..560e72e380 --- /dev/null +++ b/packages/gsm/files/025_sms-status-report.patch @@ -0,0 +1,133 @@ +From: Erin Yueh <erin_yueh@openmoko.com> +Subject: [PATCH] SMS status report + +I made a patch for SMS status report. It can change SMS-Submit messages +and ask for a status report. When the destination address receives our +message, the service center will send a SMS-STATUS-REPORT to us. We can +tell what messages we sent by TP-MR (message reference number) value and +can know the sending result by TP-ST (Status) value from status report +messages. + +PS. if you don't want to ask a status report, you can change this value +back. Replace "GSMD_SMS_TP_SRR_STATUS_REQUEST" with +"GSMD_SMS_TP_SRR_NOT_REQUEST". +header[pos ++] = + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_NOT_REQUEST | ++ GSMD_SMS_TP_SRR_STATUS_REQUEST | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; + +Signed-off-by: Jim Huang <jserv@openmoko.org> +--- + src/gsmd/sms_pdu.c | 54 +++++++++++++++++++++++++++++++++++++++++++----------- + src/util/event.c | 6 +++++- + 2 files changed, 48 insertions(+), 12 deletions(-) + +Index: gsm/src/gsmd/sms_pdu.c +=================================================================== +--- gsm.orig/src/gsmd/sms_pdu.c 2007-09-06 11:14:34.000000000 +0800 ++++ gsm/src/gsmd/sms_pdu.c 2007-09-17 23:39:20.000000000 +0800 +@@ -139,6 +139,17 @@ + /* Skip TP-PID */ + len -= 9; + src += 9; ++ ++ /* TP-UDL */ ++ dst->payload.length = src[0]; ++ i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); ++ ++ /* TP-UD */ ++ if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) ++ return 1; ++ memcpy(dst->payload.data, src + 1, i); ++ dst->payload.data[i] = 0; ++ + break; + case GSMD_SMS_TP_MTI_SUBMIT: + if (len < 4) +@@ -179,23 +190,44 @@ + src += vpf ? 3 : 2; + + memset(dst->time_stamp, 0, 7); ++ ++ /* TP-UDL */ ++ dst->payload.length = src[0]; ++ i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); ++ ++ /* TP-UD */ ++ if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) ++ return 1; ++ memcpy(dst->payload.data, src + 1, i); ++ dst->payload.data[i] = 0; + break; + case GSMD_SMS_TP_MTI_STATUS_REPORT: +- /* TODO */ ++ if (len < 3) ++ return 1; ++ ++ /* TP-MR set it gsmd_sms_list.index*/ ++ dst->index = (int) src[1]; ++ /* TP-STATUS set it to coding_scheme */ ++ dst->payload.coding_scheme = (int) src[len-1]; ++ /* TP-RA */ ++ i = sms_number_bytelen(src[3], src[2]); ++ if (len < 13 + i) ++ return 1; ++ if (sms_address2ascii(&dst->addr, src + 2)) ++ return 1; ++ len -= 4 + i; ++ src += 4 + i; ++ /* TP-SCTS */ ++ memcpy(dst->time_stamp, src, 7); ++ /* TP-UD */ ++ dst->payload.length = 0; ++ dst->payload.data[0] = 0; ++ break; + default: + /* Unknown PDU type */ + return 1; + } + +- /* TP-UDL */ +- dst->payload.length = src[0]; +- i = sms_data_bytelen(dst->payload.coding_scheme, src[0]); +- +- /* TP-UD */ +- if (len < 1 + i || i > GSMD_SMS_DATA_MAXLEN) +- return 1; +- memcpy(dst->payload.data, src + 1, i); +- dst->payload.data[i] = 0; + + return 0; + } +@@ -215,7 +247,7 @@ + GSMD_SMS_TP_MTI_SUBMIT | + (0 << 2) | /* Reject Duplicates: 0 */ + GSMD_SMS_TP_VPF_NOT_PRESENT | +- GSMD_SMS_TP_SRR_NOT_REQUEST | ++ GSMD_SMS_TP_SRR_STATUS_REQUEST | + (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : + GSMD_SMS_TP_UDHI_NO_HEADER) | + GSMD_SMS_TP_RP_NOT_SET; +Index: gsm/src/util/event.c +=================================================================== +--- gsm.orig/src/util/event.c 2007-09-06 11:14:34.000000000 +0800 ++++ gsm/src/util/event.c 2007-09-17 23:39:47.000000000 +0800 +@@ -128,8 +128,12 @@ + static int inds_handler(struct lgsm_handle *lh, int evt, + struct gsmd_evt_auxdata *aux) + { +- if (aux->u.ds.inlined) ++ if (aux->u.ds.inlined) { ++ struct gsmd_sms_list *sms; ++ sms = (struct gsmd_sms_list *) aux->data; + printf("EVENT: Incoming Status Report\n"); ++ printf("message ref = %d, status = %d\n", sms->index,sms->payload.coding_scheme); ++ } + else + printf("EVENT: Incoming Status Report stored at location %i\n", + aux->u.ds.index); diff --git a/packages/gsm/files/027_phonebook-find-and-read-range-support.patch b/packages/gsm/files/027_phonebook-find-and-read-range-support.patch new file mode 100644 index 0000000000..ea0f12daac --- /dev/null +++ b/packages/gsm/files/027_phonebook-find-and-read-range-support.patch @@ -0,0 +1,423 @@ +From: Sean Chiang <sean_chiang@openmoko.com> +Subject: [PATCH] Improvement for find and read phonebooks in gsmd + +This patch is an improvement for find and read phonebooks. +After clients make a request to find / read phonebooks, then clients +should make a request to retrieve all the records. + +Signed-off-by: Jim Huang <jserv@openmoko.org> +--- + include/gsmd/gsmd.h | 3 + include/gsmd/usock.h | 20 +++- + include/libgsmd/phonebook.h | 6 + + src/gsmd/usock.c | 184 +++++++++++++++++++++++++++++++++++----- + src/libgsmd/libgsmd_phonebook.c | 48 ++++++++++ + 5 files changed, 238 insertions(+), 23 deletions(-) + +Index: gsm/include/libgsmd/phonebook.h +=================================================================== +--- gsm.orig/include/libgsmd/phonebook.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/libgsmd/phonebook.h 2007-09-17 23:48:41.000000000 +0800 +@@ -106,4 +106,10 @@ + /* Get the location range/nlength/tlength supported */ + extern int lgsm_pb_get_support(struct lgsm_handle *lh); + ++/* Retrieve the records of READRG request */ ++extern int lgsm_pb_retrieve_readrg(struct lgsm_handle *lh, int num); ++ ++/* Retrieve the records of FIND request */ ++extern int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num); ++ + #endif +Index: gsm/include/gsmd/gsmd.h +=================================================================== +--- gsm.orig/include/gsmd/gsmd.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/gsmd/gsmd.h 2007-09-17 23:48:41.000000000 +0800 +@@ -92,6 +92,9 @@ + struct gsmd *gsmd; + struct gsmd_fd gfd; /* the socket */ + u_int32_t subscriptions; /* bitmaks of subscribed event groups */ ++ ++ struct llist_head pb_readrg_list; /* our READRG phonebook list */ ++ struct llist_head pb_find_list; /* our FIND phonebook list */ + }; + + #define GSMD_DEBUG 1 /* debugging information */ +Index: gsm/include/gsmd/usock.h +=================================================================== +--- gsm.orig/include/gsmd/usock.h 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/include/gsmd/usock.h 2007-09-17 23:48:56.000000000 +0800 +@@ -194,6 +194,8 @@ + GSMD_PHONEBOOK_GET_SUPPORT = 6, + GSMD_PHONEBOOK_LIST_STORAGE = 7, + GSMD_PHONEBOOK_SET_STORAGE = 8, ++ GSMD_PHONEBOOK_RETRIEVE_READRG = 9, ++ GSMD_PHONEBOOK_RETRIEVE_FIND = 10, + }; + + /* Type-of-Address, Numbering-Plan-Identification field, GSM 03.40, 9.1.2.5 */ +@@ -431,7 +433,6 @@ + char text[GSMD_PB_TEXT_MAXLEN+1]; + } __attribute__ ((packed)); + +- + /* Refer to GSM 07.07 subclause 8.13 */ + /* FIXME: the tlength depends on SIM, use +CPBR=? to get */ + struct gsmd_phonebook_find { +@@ -471,8 +472,18 @@ + char opname_longalpha[16]; + }; + ++/* Refer to GSM 07.07 subclause 8.11 */ ++struct gsmd_phonebook_mem { ++ u_int8_t type[3]; ++ u_int8_t pad; ++ u_int16_t used; ++ u_int16_t total; ++} __attribute__ ((packed)); ++ + struct gsmd_phonebook_storage { +- char storage[3]; ++ /* FIXME the amount of phonebook storage should be dynamic */ ++ u_int8_t num; ++ struct gsmd_phonebook_mem mem[20]; + } __attribute__ ((packed)); + + /* Subscriber number information from 3GPP TS 07.07, Clause 7.1 */ +@@ -517,6 +528,11 @@ + char buf[]; + } __attribute__ ((packed)); + ++struct gsmd_phonebooks { ++ struct llist_head list; ++ struct gsmd_phonebook pb; ++} __attribute__ ((packed)); ++ + extern struct gsmd_ucmd *ucmd_alloc(int extra_size); + extern int usock_init(struct gsmd *g); + extern void usock_cmd_enqueue(struct gsmd_ucmd *ucmd, struct gsmd_user *gu); +Index: gsm/src/libgsmd/libgsmd_phonebook.c +=================================================================== +--- gsm.orig/src/libgsmd/libgsmd_phonebook.c 2007-08-31 16:15:29.000000000 +0800 ++++ gsm/src/libgsmd/libgsmd_phonebook.c 2007-09-17 23:48:41.000000000 +0800 +@@ -33,7 +33,7 @@ + gmh->data[2] = '\0'; + + rc = lgsm_send(lh, gmh); +- if (rc < gmh->len + 3) { ++ if (rc < gmh->len + sizeof(*gmh)) { + lgsm_gmh_free(gmh); + return -EIO; + } +@@ -177,3 +177,49 @@ + { + return lgsm_send_simple(lh, GSMD_MSG_PHONEBOOK, GSMD_PHONEBOOK_GET_SUPPORT); + } ++ ++int lgsm_pb_retrieve_readrg(struct lgsm_handle *lh, int num) ++{ ++ struct gsmd_msg_hdr *gmh; ++ int rc; ++ ++ gmh = lgsm_gmh_fill(GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_READRG, sizeof(int)); ++ if (!gmh) ++ return -ENOMEM; ++ ++ *(int *)(gmh->data) = num; ++ ++ rc = lgsm_send(lh, gmh); ++ if (rc < gmh->len + sizeof(*gmh)) { ++ lgsm_gmh_free(gmh); ++ return -EIO; ++ } ++ ++ lgsm_gmh_free(gmh); ++ ++ return 0; ++} ++ ++int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num) ++{ ++ struct gsmd_msg_hdr *gmh; ++ int rc; ++ ++ gmh = lgsm_gmh_fill(GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_FIND, sizeof(int)); ++ if (!gmh) ++ return -ENOMEM; ++ ++ *(int *)(gmh->data) = num; ++ ++ rc = lgsm_send(lh, gmh); ++ if (rc < gmh->len + sizeof(*gmh)) { ++ lgsm_gmh_free(gmh); ++ return -EIO; ++ } ++ ++ lgsm_gmh_free(gmh); ++ ++ return 0; ++} +Index: gsm/src/gsmd/usock.c +=================================================================== +--- gsm.orig/src/gsmd/usock.c 2007-08-31 16:15:30.000000000 +0800 ++++ gsm/src/gsmd/usock.c 2007-09-17 23:53:34.000000000 +0800 +@@ -1035,21 +1035,56 @@ + + static int phonebook_find_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) + { +- struct gsmd_user *gu = ctx; +- struct gsmd_ucmd *ucmd; +- ++ struct gsmd_user *gu = ctx; ++ struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebooks *gps; ++ char *fcomma, *lcomma, *ptr1, *ptr2 = NULL; ++ int *num; ++ + DEBUGP("resp: %s\n", resp); + +- /* FIXME: using link list, also we need to handle the case of +- * no query result */ +- ucmd = gsmd_ucmd_fill(strlen(resp) + 1, GSMD_MSG_PHONEBOOK, ++ /* ++ * [+CPBF: <index1>,<number>,<type>,<text>[[...] ++ * <CR><LF>+CPBF: <index2>,<unmber>,<type>,<text>]] ++ */ ++ ucmd = gsmd_ucmd_fill(sizeof(int), GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_FIND, 0); + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ num = (int*) ucmd->buf; ++ ++ *num = 0; ++ ++ ptr1 = strtok(resp, "\n"); ++ ++ while (ptr1) { ++ gps = (struct gsmd_phonebooks *) malloc(sizeof(struct gsmd_phonebooks)); ++ ptr2 = strchr(ptr1, ' '); ++ gps->pb.index = atoi(ptr2+1); ++ ++ fcomma = strchr(ptr1, '"'); ++ lcomma = strchr(fcomma+1, '"'); ++ strncpy(gps->pb.numb, fcomma + 1, (lcomma-fcomma-1)); ++ gps->pb.numb[(lcomma - fcomma) - 1] = '\0'; ++ ++ gps->pb.type = atoi(lcomma + 2); ++ ++ ptr2 = strrchr(ptr1, ','); ++ fcomma = ptr2 + 1; ++ lcomma = strchr(fcomma + 1, '"'); ++ strncpy(gps->pb.text, fcomma + 1, (lcomma - fcomma - 1)); ++ gps->pb.text[(lcomma - fcomma) - 1] = '\0'; ++ ++ llist_add_tail(&gps->list, &gu->pb_find_list); ++ ++ (*num)++; ++ ++ ptr1 = strtok(NULL, "\n"); ++ } + + usock_cmd_enqueue(ucmd, gu); ++ + return 0; + } + +@@ -1102,22 +1137,51 @@ + { + struct gsmd_user *gu = ctx; + struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebooks *gps; ++ char *fcomma, *lcomma, *ptr1, *ptr2 = NULL; ++ int *num; + + DEBUGP("resp: %s\n", resp); + + /* +- * +CPBR: 4,"1234",129,"6C5F745E7965" +- * +CPBR: 5,"5678",129,"800062115BB6" +- * +CPBR: 6,"7890",129,"810280AA591A" +- * +CPBR: 8,"36874",129,"005300650061006E" +- * ++ * [+CPBR: <index1>,<number>,<type>,<text>[[...] ++ * <CR><LF>+CPBR: <index2>,<unmber>,<type>,<text>]] + */ +- ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONEBOOK, ++ ucmd = gsmd_ucmd_fill(sizeof(int), GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_READRG, 0); + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ num = (int*) ucmd->buf; ++ ++ *num = 0; ++ ++ ptr1 = strtok(resp, "\n"); ++ ++ while(ptr1) { ++ gps = (struct gsmd_phonebooks *) malloc(sizeof(struct gsmd_phonebooks)); ++ ptr2 = strchr(ptr1, ' '); ++ gps->pb.index = atoi(ptr2+1); ++ ++ fcomma = strchr(ptr1, '"'); ++ lcomma = strchr(fcomma+1, '"'); ++ strncpy(gps->pb.numb, fcomma + 1, (lcomma-fcomma-1)); ++ gps->pb.numb[(lcomma - fcomma) - 1] = '\0'; ++ ++ gps->pb.type = atoi(lcomma + 2); ++ ++ ptr2 = strrchr(ptr1, ','); ++ fcomma = ptr2 + 1; ++ lcomma = strchr(fcomma + 1, '"'); ++ strncpy(gps->pb.text, fcomma + 1, (lcomma - fcomma - 1)); ++ gps->pb.text[(lcomma - fcomma) - 1] = '\0'; ++ ++ llist_add_tail(&gps->list, &gu->pb_readrg_list); ++ ++ (*num)++; ++ ++ ptr1 = strtok(NULL, "\n"); ++ } + + usock_cmd_enqueue(ucmd, gu); + +@@ -1209,22 +1273,38 @@ + static int phonebook_list_storage_cb(struct gsmd_atcmd *cmd, + void *ctx, char *resp) + { +- /* +CPBS: ("EN","BD","FD","DC","LD","RC","LR","MT","AD", +- * "SM","SD","MC","LM","AF","ON","UD") */ + /* TODO; using link list ; need to handle command error */ + struct gsmd_user *gu = ctx; + struct gsmd_ucmd *ucmd; ++ struct gsmd_phonebook_storage *gps; ++ char *ptr; + + DEBUGP("resp: %s\n", resp); + +- ucmd = gsmd_ucmd_fill(strlen(resp) + 1, ++ /* ++ * +CPBS: (<storage>s) ++ */ ++ ++ ucmd = gsmd_ucmd_fill(sizeof(*gps), + GSMD_MSG_PHONEBOOK, + GSMD_PHONEBOOK_LIST_STORAGE, 0); + + if (!ucmd) + return -ENOMEM; + +- strcpy(ucmd->buf, resp); ++ gps = (struct gsmd_phonebook_storage *) ucmd->buf; ++ gps->num = 0; ++ ++ if (!strncmp(resp, "+CPBS", 5)) { ++ char* delim = "(,"; ++ ptr = strpbrk(resp, delim); ++ while ( ptr ) { ++ strncpy(gps->mem[gps->num].type, ptr+2, 2); ++ gps->mem[gps->num].type[2] = '\0'; ++ ptr = strpbrk(ptr+2, delim); ++ gps->num++; ++ } ++ } + + usock_cmd_enqueue(ucmd, gu); + +@@ -1235,11 +1315,13 @@ + struct gsmd_msg_hdr *gph,int len) + { + struct gsmd_atcmd *cmd = NULL; ++ struct gsmd_ucmd *ucmd = NULL; + struct gsmd_phonebook_readrg *gpr; + struct gsmd_phonebook *gp; + struct gsmd_phonebook_find *gpf; +- int *index; +- int atcmd_len; ++ struct gsmd_phonebooks *cur, *cur2; ++ int *index, *num; ++ int atcmd_len, i; + char *storage; + char buf[1024]; + +@@ -1343,6 +1425,66 @@ + cmd = atcmd_fill("AT+CPBR=?", 9+1, + &phonebook_get_support_cb, gu, gph->id); + break; ++ case GSMD_PHONEBOOK_RETRIEVE_READRG: ++ if (len < sizeof(*gph) + sizeof(int)) ++ return -EINVAL; ++ ++ num = (int *) ((void *)gph + sizeof(*gph)); ++ ++ ucmd = gsmd_ucmd_fill(sizeof(struct gsmd_phonebook)*(*num), ++ GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_READRG, 0); ++ if (!ucmd) ++ return -ENOMEM; ++ ++ gp = (struct gsmd_phonebook*) ucmd->buf; ++ ++ if (!llist_empty(&gu->pb_readrg_list)) { ++ ++ llist_for_each_entry_safe(cur, cur2, ++ &gu->pb_readrg_list, list) { ++ gp->index = cur->pb.index; ++ strcpy(gp->numb, cur->pb.numb); ++ gp->type = cur->pb.type; ++ strcpy(gp->text, cur->pb.text); ++ gp++; ++ ++ llist_del(&cur->list); ++ free(cur); ++ } ++ } ++ ++ usock_cmd_enqueue(ucmd, gu); ++ ++ break; ++ case GSMD_PHONEBOOK_RETRIEVE_FIND: ++ if (len < sizeof(*gph) + sizeof(int)) ++ return -EINVAL; ++ ++ num = (int *) ((void *)gph + sizeof(*gph)); ++ ++ ucmd = gsmd_ucmd_fill(sizeof(struct gsmd_phonebook)*(*num), GSMD_MSG_PHONEBOOK, ++ GSMD_PHONEBOOK_RETRIEVE_FIND, 0); ++ if (!ucmd) ++ return -ENOMEM; ++ ++ gp = (struct gsmd_phonebook*) ucmd->buf; ++ ++ if (!llist_empty(&gu->pb_find_list)) { ++ llist_for_each_entry_safe(cur, cur2, &gu->pb_find_list, list) { ++ gp->index = cur->pb.index; ++ strcpy(gp->numb, cur->pb.numb); ++ gp->type = cur->pb.type; ++ strcpy(gp->text, cur->pb.text); ++ gp++; ++ ++ llist_del(&cur->list); ++ free(cur); ++ } ++ } ++ ++ usock_cmd_enqueue(ucmd, gu); ++ break; + default: + return -EINVAL; + } +@@ -1468,6 +1610,8 @@ + newuser->gsmd = g; + newuser->subscriptions = 0xffffffff; + INIT_LLIST_HEAD(&newuser->finished_ucmds); ++ INIT_LLIST_HEAD(&newuser->pb_readrg_list); ++ INIT_LLIST_HEAD(&newuser->pb_find_list); + + llist_add(&newuser->list, &g->users); + gsmd_register_fd(&newuser->gfd); diff --git a/packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch b/packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch new file mode 100644 index 0000000000..db07a5df35 --- /dev/null +++ b/packages/gsm/files/028_shell-phonebook-find-and-read-range-support.patch @@ -0,0 +1,264 @@ +From: Sean Chiang <sean_chiang@openmoko.com> +Subject: [PATCH] improvement for find and read phonebooks in shell + +This patch improves the functions to find and read phonebooks in shell. + +Besides prr and pf, I add two new commands pRr and pRf to retrieve the +phonebook. + +Signed-off-by: Jim Huang <jserv@openmoko.org> + +Index: gsm/src/util/shell.c +=================================================================== +--- gsm.orig/src/util/shell.c 2007-09-17 23:57:51.000000000 +0800 ++++ gsm/src/util/shell.c 2007-09-17 23:59:04.000000000 +0800 +@@ -34,8 +34,6 @@ + #include <gsmd/usock.h> + #include <gsmd/ts0705.h> + +-#include <common/linux_list.h> +- + #ifndef __GSMD__ + #define __GSMD__ + #include <gsmd/talloc.h> +@@ -43,9 +41,8 @@ + #endif + + #define STDIN_BUF_SIZE 1024 +- +-static LLIST_HEAD(storage_list); +-static LLIST_HEAD(phonebook_list); ++static int nFIND = 0; ++static int nREADRG = 0; + + /* this is the handler for receiving passthrough responses */ + static int pt_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh) +@@ -62,46 +59,23 @@ + struct gsmd_phonebook_storage *gpst; + char *payload; + char *fcomma, *lcomma, *ptr = NULL; ++ int *num; + char buf[128]; ++ int i; + + switch (gmh->msg_subtype) { +-#if 0 + case GSMD_PHONEBOOK_FIND: ++ num = (int *) ((char *)gmh + sizeof(*gmh)); ++ printf("Records:%d\n", *num); ++ ++ nFIND = *num; ++ break; + case GSMD_PHONEBOOK_READRG: +- payload = (char *)gmh + sizeof(*gmh); ++ num = (int *) ((char *)gmh + sizeof(*gmh)); ++ printf("Records:%d\n", *num); + +- if (!strncmp(payload, "+CPBR", 5) || +- !strncmp(payload, "+CPBF", 5)) { +- gp = (struct gsmd_phonebook *) malloc(sizeof(struct gsmd_phonebook)); +- ptr = strchr(payload, ' '); +- gp->index = atoi(ptr+1); +- +- fcomma = strchr(payload, '"'); +- lcomma = strchr(fcomma+1, '"'); +- strncpy(gp->numb, fcomma + 1, (lcomma-fcomma-1)); +- gp->numb[(lcomma - fcomma) - 1] = '\0'; +- +- gp->type = atoi(lcomma + 2); +- +- ptr = strrchr(payload, ','); +- fcomma = ptr + 1; +- lcomma = strchr(fcomma + 1, '"'); +- strncpy(gp->text, fcomma + 1, (lcomma - fcomma - 1)); +- gp->text[(lcomma - fcomma) - 1] = '\0'; +- +- llist_add_tail(&gp->list, &phonebook_list); +- +-#if 0 +- llist_for_each_entry(gp, &phonebook_list, list) { +- printf("%d, %s, %d, %s\n", gp->index, gp->numb, gp->type, gp->text); +- } +-#endif +- printf("%d, %s, %d, %s\n", gp->index, gp->numb, gp->type, gp->text); +- } +- else +- printf("%s\n", payload); ++ nREADRG = *num; + break; +-#endif + case GSMD_PHONEBOOK_READ: + gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); + if (gp->index) +@@ -115,48 +89,18 @@ + gps = (struct gsmd_phonebook_support *) ((char *)gmh + sizeof(*gmh)); + printf("(1-%d), %d, %d\n", gps->index, gps->nlength, gps->tlength); + break; +-#if 0 +- case GSMD_PHONEBOOK_LIST_STORAGE: +- payload = (char *)gmh + sizeof(*gmh); + +- if (!strncmp(payload, "+CPBS", 5)) { +- char* delim = "(,"; +- struct gsmd_phonebook_storage *cur, *cur2; +- +- /* Remove previous record */ +- if (!llist_empty(&storage_list)) { +- llist_for_each_entry_safe(cur, cur2, +- &storage_list, list) { +- llist_del(&cur->list); +- talloc_free(cur); +- } +- } +- +- ptr = strpbrk(payload, delim); +- +- while ( ptr ) { +- gpst = (struct gsmd_phonebook_storage *) malloc(sizeof(struct gsmd_phonebook_storage)); +- strncpy(gpst->storage, ptr+2, 2); +- gpst->storage[2] = '\0'; +- +- ptr = strpbrk(ptr+2, delim); +- +- llist_add_tail(&gpst->list, &storage_list); +- } ++ case GSMD_PHONEBOOK_LIST_STORAGE: ++ gpst = (struct gsmd_phonebook_storage *)((char *)gmh + sizeof(*gmh)); + +- if (llist_empty(&storage_list)) +- return 0; ++ for (i = 0; i < gpst->num; i++) { ++ printf("%s, ", gpst->mem[i].type); ++ } + +- llist_for_each_entry(cur, &storage_list, list) { +- printf("\n%s",cur->storage); +- } ++ printf("\n"); + +- printf("\n"); +- } +- else +- printf("%s\n", payload); + break; +-#endif ++ + case GSMD_PHONEBOOK_WRITE: + case GSMD_PHONEBOOK_DELETE: + case GSMD_PHONEBOOK_SET_STORAGE: +@@ -164,6 +108,26 @@ + payload = (char *)gmh + sizeof(*gmh); + printf("%s\n", payload); + break; ++ case GSMD_PHONEBOOK_RETRIEVE_READRG: ++ gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); ++ ++ for (i=0; i<nREADRG; i++) { ++ printf("%d,%s,%d,%s\n", gp->index, gp->numb, gp->type, gp->text); ++ gp++; ++ } ++ ++ nREADRG = 0; ++ break; ++ case GSMD_PHONEBOOK_RETRIEVE_FIND: ++ gp = (struct gsmd_phonebook *) ((char *)gmh + sizeof(*gmh)); ++ ++ for (i = 0; i < nFIND; i++) { ++ printf("%d,%s,%d,%s\n", gp->index, gp->numb, gp->type, gp->text); ++ gp++; ++ } ++ ++ nFIND = 0; ++ break; + default: + return -EINVAL; + } +@@ -381,11 +345,13 @@ + "\tpd\tPB Delete (pb=index)\n" + "\tpr\tPB Read (pr=index)\n" + "\tprr\tPB Read Range (prr=index1,index2)\n" +- "\tpf\tPB Find (pff=indtext)\n" ++ "\tpf\tPB Find (pf=indtext)\n" + "\tpw\tPB Write (pw=index,number,text)\n" + "\tps\tPB Support\n" + "\tpm\tPB Memory\n" + "\tpp\tPB Set Memory (pp=storage)\n" ++ "\tpRr\tRetrieve Readrg Records\n" ++ "\tpRf\tRetrieve Find Records\n" + "\tsd\tSMS Delete (sd=index,delflg)\n" + "\tsl\tSMS List (sl=stat)\n" + "\tsr\tSMS Read (sr=index)\n" +@@ -509,48 +475,21 @@ + printf("Delete Phonebook Entry\n"); + ptr = strchr(buf, '='); + lgsm_pb_del_entry(lgsmh, atoi(ptr+1)); +-#if 0 + } else if ( !strncmp(buf, "prr", 3)) { + printf("Read Phonebook Entries\n"); + struct lgsm_phonebook_readrg pb_readrg; +- struct gsmd_phonebook *gp_cur, *gp_cur2; +- +- /* Remove records */ +- if (!llist_empty(&phonebook_list)) { +- llist_for_each_entry_safe(gp_cur, +- gp_cur2, +- &phonebook_list, +- list) { +- llist_del(&gp_cur->list); +- talloc_free(gp_cur); +- } +- } + + ptr = strchr(buf, '='); + pb_readrg.index1 = atoi(ptr+1); + ptr = strchr(buf, ','); + pb_readrg.index2 = atoi(ptr+1); + lgsm_pb_read_entries(lgsmh, &pb_readrg); +-#endif + } else if ( !strncmp(buf, "pr", 2)) { + ptr = strchr(buf, '='); + lgsm_pb_read_entry(lgsmh, atoi(ptr+1)); +-#if 0 + } else if ( !strncmp(buf, "pf", 2)) { + printf("Find Phonebook Entry\n"); + struct lgsm_phonebook_find pb_find; +- struct gsmd_phonebook *gp_cur, *gp_cur2; +- +- /* Remove records */ +- if (!llist_empty(&phonebook_list)) { +- llist_for_each_entry_safe(gp_cur, +- gp_cur2, +- &phonebook_list, +- list) { +- llist_del(&gp_cur->list); +- talloc_free(gp_cur); +- } +- } + + ptr = strchr(buf, '='); + strncpy(pb_find.findtext, +@@ -559,7 +498,6 @@ + pb_find.findtext[strlen(ptr+1)] = '\0'; + + lgsm_pb_find_entry(lgsmh, &pb_find); +-#endif + } else if ( !strncmp(buf, "pw", 2)) { + printf("Write Phonebook Entry\n"); + struct lgsm_phonebook pb; +@@ -591,6 +529,16 @@ + } else if ( !strncmp(buf, "ps", 2)) { + printf("Get Phonebook Support\n"); + lgsm_pb_get_support(lgsmh); ++ } else if( !strncmp(buf, "pRr", 3) ) { ++ printf("Retrieve Readrg Records\n"); ++ ++ if ( nREADRG ) ++ lgsm_pb_retrieve_readrg(lgsmh, nREADRG); ++ } else if( !strncmp(buf, "pRf", 3) ) { ++ printf("Retrieve Find Records\n"); ++ ++ if ( nFIND ) ++ lgsm_pb_retrieve_find(lgsmh, nFIND); + } else if ( !strncmp(buf, "sd", 2)) { + printf("Delete SMS\n"); + struct lgsm_sms_delete sms_del; diff --git a/packages/gsm/files/default b/packages/gsm/files/default index 0d3eb74c7d..761100f702 100644 --- a/packages/gsm/files/default +++ b/packages/gsm/files/default @@ -26,7 +26,7 @@ case `cpuinfo_id` in GSM_DEV="/dev/ttyS0" ;; "Motorola Ezx Platform") - GSMD_OPTS="-s 115200 -F" + GSMD_OPTS="-s 115200 -F -v ti" GSM_DEV="/dev/mux0" ;; *) diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb index a3b8f8a21a..c2b758ecf4 100644 --- a/packages/gsm/libgsmd_svn.bb +++ b/packages/gsm/libgsmd_svn.bb @@ -4,9 +4,18 @@ LICENSE = "GPL LGPL" SECTION = "libs/gsm" PROVIDES += "gsmd" PV = "0.1+svnr${SRCREV}" -PR = "r27" +PR = "r29" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \ + file://024_sms-text-in-bracket.patch;patch=1;minrev=2957 \ + file://025_sms-status-report.patch;patch=1;minrev=2957 \ + file://027_phonebook-find-and-read-range-support.patch;patch=1;minrev=2957 \ + file://028_shell-phonebook-find-and-read-range-support.patch;patch=1;minrev=2957 \ + file://0001-Introduce-ports.patch;patch=1;minrev=2957 \ + file://0002-Flush-all-pending-commands-before-restarting-the-mod.patch;patch=1;minrev=2957 \ + file://0003-Correctly-segment-incoming-usock-data-into-packets.patch;patch=1;minrev=2957 \ + file://0004-Handle-read-and-write-return-values.patch;patch=1;minrev=2957 \ + file://0005-Add-ask-ds-option-forSMS.patch;patch=1;minrev=2957 \ file://gsmd \ file://default" S = "${WORKDIR}/gsm" diff --git a/packages/gtk-webcore/osb-jscore_svn.bb b/packages/gtk-webcore/osb-jscore_svn.bb index a504be42fa..c75db61a9a 100644 --- a/packages/gtk-webcore/osb-jscore_svn.bb +++ b/packages/gtk-webcore/osb-jscore_svn.bb @@ -5,7 +5,7 @@ PRIORITY = "optional" DEFAULT_PREFERENCE = "-1" -PV = "0.5.2+svnr${SRCREV}" +PV = "0.5.2+svnr${SRCDATE}" PR = "r1" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=JavaScriptCore;proto=https \ diff --git a/packages/gtk-webcore/osb-nrcit_svn.bb b/packages/gtk-webcore/osb-nrcit_svn.bb index 2cab1101ca..d982c6b595 100644 --- a/packages/gtk-webcore/osb-nrcit_svn.bb +++ b/packages/gtk-webcore/osb-nrcit_svn.bb @@ -4,7 +4,7 @@ LICENSE = "nokia" PRIORITY = "optional" SECTION = "gpe" -PV = "0.5.2+svnr${SRCREV}" +PV = "0.5.2+svnr${SRCDATE}" PR = "r0" DEPENDS = "curl librsvg osb-nrcore pango" diff --git a/packages/gtk-webcore/osb-nrcore_svn.bb b/packages/gtk-webcore/osb-nrcore_svn.bb index 402638d28e..5ca22d3083 100644 --- a/packages/gtk-webcore/osb-nrcore_svn.bb +++ b/packages/gtk-webcore/osb-nrcore_svn.bb @@ -2,7 +2,7 @@ require osb-nrcore.inc DEFAULT_PREFERENCE = "-1" -PV = "0.5.2+svnr${SRCREV}" +PV = "0.5.2+svnr${SRCDATE}" PR = "r1" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \ diff --git a/packages/guichan/.mtn2git_empty b/packages/guichan/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/guichan/.mtn2git_empty diff --git a/packages/guichan/guichan_0.7.1.bb b/packages/guichan/guichan_0.7.1.bb new file mode 100644 index 0000000000..28c5c8e948 --- /dev/null +++ b/packages/guichan/guichan_0.7.1.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "A portable C++ GUI library designed for games using Allegro, HGE, OpenGL, OpenLayer and/or SDL." +HOMEPAGE = "http://guichan.sourceforge.net" +DEPENDS = "virtual/libsdl libsdl-image" + +SRC_URI = "http://guichan.googlecode.com/files/guichan-0.7.1.tar.gz" + +inherit autotools + +EXTRA_OECONF = "--disable-opengl --disable-glut --disable-allegro \ + --enable-sdlimage --enable-sdl" + +PACKAGES =+ "libguichan libguichan-sdl" + +FILES_libguichan = "${libdir}/libguichan.so.*" +FILES_libguichan-sdl = "${libdir}/libguichan_sdl.so.*" + +do_stage () { + autotools_stage_all +} + diff --git a/packages/hal/hal-info_20070618.bb b/packages/hal/hal-info_20070618.bb new file mode 100644 index 0000000000..690dbe614d --- /dev/null +++ b/packages/hal/hal-info_20070618.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Hardware Abstraction Layer device information" +HOMEPAGE = "http://freedesktop.org/Software/hal" +SECTION = "unknown" +LICENSE = "GPL AFL" + +SRC_URI = "http://people.freedesktop.org/~david/dist/hal-info-20070618.tar.gz" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-recall --disable-video" + +do_configure() { + gnu-configize + libtoolize --force + oe_runconf +} + + +PACKAGE_ARCH = "all" +FILES_${PN} += "${datadir}/hal/" diff --git a/packages/hal/hal-info_git.bb b/packages/hal/hal-info_git.bb index 597107fe2b..2812f19fe0 100644 --- a/packages/hal/hal-info_git.bb +++ b/packages/hal/hal-info_git.bb @@ -6,6 +6,7 @@ LICENSE = "GPL AFL" PV = "${SRCDATE}+git" PR = "r1" +DEFAULT_PREFERENCE = "-1" SRC_URI = "git://anongit.freedesktop.org/hal-info/;protocol=git" @@ -17,4 +18,4 @@ EXTRA_OECONF = "--disable-recall --disable-video" PACKAGE_ARCH = "all" -FILES_${PN} += "/usr/share/hal/" +FILES_${PN} += "${datadir}/hal/" diff --git a/packages/imagemagick/imagemagick_6.2.9.bb b/packages/imagemagick/imagemagick_6.2.9.bb deleted file mode 100644 index a403e1a629..0000000000 --- a/packages/imagemagick/imagemagick_6.2.9.bb +++ /dev/null @@ -1,33 +0,0 @@ -LICENSE = "GPL" -SECTION = "console/utils" -DEPENDS = "tiff" -DESCRIPTION = "ImageMagick is an image convertion tools" - -SRC_URI = "ftp://ftp.nluug.nl/pub/ImageMagick/ImageMagick-${PV}-2.tar.bz2 \ - file://PerlMagic_MakePatch;patch=1" - -S = "${WORKDIR}/ImageMagick-${PV}" -PR="r1" - -inherit autotools binconfig - -EXTRA_OECONF="--without-x" -EXTRA_OECONF_openprotium="--without-x --without-xml --without-perl" - -LEAD_SONAME="libMagick.so.*" - -FILES_${PN} += "${libdir}/ImageMagick-${PV}/modules-Q16/*/*.so \ - ${libdir}/ImageMagick-${PV}/modules-Q16/*/*.la \ - ${libdir}/ImageMagick-${PV}/config/ \ - ${datadir}/ImageMagick-${PV}" - -FILES_${PN}-dbg += "${libdir}/ImageMagick-${PV}/modules-Q16/*/.debug/*" - -do_stage() { - oe_libinstall -so -a libMagick ${STAGING_LIBDIR} - oe_libinstall -so -a libWand ${STAGING_LIBDIR} - install -d ${STAGING_INCDIR}/wand/ - install -d ${STAGING_INCDIR}/magick/ - install -m 0644 wand/*.h ${STAGING_INCDIR}/wand/ - install -m 0644 magick/*.h ${STAGING_INCDIR}/magick/ -} diff --git a/packages/imagemagick/imagemagick_6.3.5-10.bb b/packages/imagemagick/imagemagick_6.3.5-10.bb new file mode 100644 index 0000000000..56229802ac --- /dev/null +++ b/packages/imagemagick/imagemagick_6.3.5-10.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "ImageMagick is an image convertion tools" +SECTION = "console/utils" +LICENSE = "GPL" +DEPENDS = "tiff" +PR = "r1" + +SRC_URI = "ftp://ftp.nluug.nl/pub/ImageMagick/ImageMagick-${PV}.tar.bz2 \ + file://PerlMagic_MakePatch;patch=1 \ + file://makefile-am.patch;patch=1 \ + file://binconfig-fixes.patch;patch=1 " + +IMVER = "6.3.5" + +S = "${WORKDIR}/ImageMagick-${IMVER}" + +inherit autotools binconfig pkgconfig + +EXTRA_OECONF = "--without-x --without-freetype --without-perl" +EXTRA_OECONF_openprotium = "--without-x --without-freetype --without-xml --without-perl" + +do_stage() { + autotools_stage_all +} + +FILES_${PN} += "${libdir}/ImageMagick-${IMVER}/modules-Q16/*/*.so \ + ${libdir}/ImageMagick-${IMVER}/config/ \ + ${datadir}/ImageMagick-${IMVER}" + +FILES_${PN}-dev += "${libdir}/ImageMagick-${IMVER}/modules-Q16/*/*.la \ + ${libdir}/ImageMagick-${IMVER}/modules-Q16/*/*.a" + +FILES_${PN}-dbg += "${libdir}/ImageMagick-${IMVER}/modules-Q16/*/.debug/*" + +LEAD_SONAME = "libMagick.so.*" + diff --git a/packages/libpng/libpng-native_1.2.20.bb b/packages/libpng/libpng-native_1.2.20.bb new file mode 100644 index 0000000000..231b956678 --- /dev/null +++ b/packages/libpng/libpng-native_1.2.20.bb @@ -0,0 +1,14 @@ +require libpng_${PV}.bb +inherit native +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/libpng-${PV}" +DEPENDS = "zlib-native" + +INHIBIT_NATIVE_STAGE_INSTALL = "1" + +do_stage_append() { + cp libpng.pc libpng12.pc + install -m 644 png.h ${STAGING_INCDIR}/png.h + install -m 644 pngconf.h ${STAGING_INCDIR}/pngconf.h + oe_libinstall -so libpng12 ${STAGING_LIBDIR}/ + ln -sf libpng12.so ${STAGING_LIBDIR}/libpng.so +} diff --git a/packages/libpng/libpng_1.2.20.bb b/packages/libpng/libpng_1.2.20.bb new file mode 100644 index 0000000000..c6c296cae4 --- /dev/null +++ b/packages/libpng/libpng_1.2.20.bb @@ -0,0 +1,50 @@ +DESCRIPTION = "PNG Library" +HOMEPAGE = "http://www.libpng.org/" +LICENSE = "libpng" +SECTION = "libs" +DEPENDS = "zlib" +PRIORITY = "required" +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/libpng-${PV}.tar.bz2" +S = "${WORKDIR}/libpng-${PV}" + +inherit autotools binconfig pkgconfig + +do_stage() { + cp libpng.pc libpng12.pc + install -m 644 png.h ${STAGING_INCDIR}/png.h + install -m 644 pngconf.h ${STAGING_INCDIR}/pngconf.h + oe_libinstall -so libpng ${STAGING_LIBDIR}/ + oe_libinstall -so libpng12 ${STAGING_LIBDIR}/ + ln -sf libpng12.so ${STAGING_LIBDIR}/libpng.so +} + +do_install() { + install -d ${D}${bindir} + install -d ${D}${mandir} + install -d ${D}${libdir} + install -d ${D}${includedir} + unset LDFLAGS + oe_runmake 'prefix=${prefix}' 'DESTDIR=${D}' \ + 'DB=${D}${bindir}' 'DI=${D}${includedir}' \ + 'DL=${D}${libdir}' 'DM=${D}${mandir}' \ + install +} + +python do_package() { + if bb.data.getVar('DEBIAN_NAMES', d, 1): + bb.data.setVar('PKG_${PN}', 'libpng12', d) + bb.build.exec_func('package_do_package', d) +} + +PACKAGES =+ "${PN}12-dbg ${PN}12 ${PN}12-dev" + +FILES_${PN}12-dbg = "${libdir}/libpng12*.dbg" +FILES_${PN}12 = "${libdir}/libpng12.so.*" +FILES_${PN}12-dev = "${libdir}/libpng12.* ${includedir}/libpng12 ${libdir}/pkgconfig/libpng12.pc" +FILES_${PN} = "${libdir}/lib*.so.*" +FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la \ + ${libdir}/*.a ${libdir}/pkgconfig \ + ${datadir}/aclocal ${bindir} ${sbindir}" + diff --git a/packages/libsdl/libsdl-net_1.2.7.bb b/packages/libsdl/libsdl-net_1.2.7.bb index a2ab06d479..8149cce379 100644 --- a/packages/libsdl/libsdl-net_1.2.7.bb +++ b/packages/libsdl/libsdl-net_1.2.7.bb @@ -8,6 +8,7 @@ SRC_URI = "http://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz" S = "${WORKDIR}/SDL_net-${PV}" inherit autotools +EXTRA_OECONF += "SDL_CONFIG=${STAGING_BINDIR_CROSS}/sdl-config" do_stage() { oe_libinstall -so libSDL_net ${STAGING_LIBDIR} diff --git a/packages/libtiff/tiff_3.7.2.bb b/packages/libtiff/tiff_3.7.2.bb index 23110b6007..d98974541d 100644 --- a/packages/libtiff/tiff_3.7.2.bb +++ b/packages/libtiff/tiff_3.7.2.bb @@ -2,7 +2,7 @@ DESCRIPTION = "This software provides support for the Tag Image File Format (TIF LICENSE = "" HOMEPAGE = "http://www.remotesensing.org/libtiff/" DEPENDS = "zlib jpeg" -PR = "r1" +PR = "r2" SRC_URI = "http://dl.maptools.org/dl/libtiff/old/tiff-${PV}.tar.gz" @@ -11,8 +11,9 @@ inherit autotools do_stage() { autotools_stage_includes install -d ${STAGING_LIBDIR} - install -m 755 libtiff/.libs/libtiff.so.3.7.2 ${STAGING_LIBDIR}/libtiff.so - install -m 755 ./libtiff/.libs/libtiffxx.so.3.7.2 ${STAGING_LIBDIR}/libtiffxx.so + oe_libinstall -C libtiff -a -so libtiff ${STAGING_LIBDIR} + oe_libinstall -C libtiff -a -so libtiffxx ${STAGING_LIBDIR} + } PACKAGES =+ "tiffxx tiffxx-dbg tiffxx-dev tiff-utils tiff-utils-dbg" diff --git a/packages/linux/ixp4xx-kernel.inc b/packages/linux/ixp4xx-kernel.inc index 92bc34c987..af5f78b918 100644 --- a/packages/linux/ixp4xx-kernel.inc +++ b/packages/linux/ixp4xx-kernel.inc @@ -213,6 +213,7 @@ do_configure_prepend() { # Kernel module dependencies +DEPENDS += "zd1211-firmware" RDEPENDS_kernel-module-zd1211rw += "zd1211-firmware" diff --git a/packages/linux/linux-davinci/binutils-buildid-arm.patch b/packages/linux/linux-davinci/binutils-buildid-arm.patch new file mode 100644 index 0000000000..edd224f4dd --- /dev/null +++ b/packages/linux/linux-davinci/binutils-buildid-arm.patch @@ -0,0 +1,12 @@ +diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S +index 5ff5406..538fcb5 100644 +--- a/arch/arm/kernel/vmlinux.lds.S ++++ b/arch/arm/kernel/vmlinux.lds.S +@@ -94,6 +94,7 @@ SECTIONS + TEXT_TEXT + SCHED_TEXT + LOCK_TEXT ++ *(.note.*) + #ifdef CONFIG_MMU + *(.fixup) + #endif diff --git a/packages/linux/linux-davinci/davinci-dvevm/defconfig b/packages/linux/linux-davinci/davinci-dvevm/defconfig index 02df8e79d9..e64431a1b6 100644 --- a/packages/linux/linux-davinci/davinci-dvevm/defconfig +++ b/packages/linux/linux-davinci/davinci-dvevm/defconfig @@ -1,13 +1,13 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-omap1 -# Sun Aug 12 17:15:12 2007 +# Linux kernel version: 2.6.23-rc2-davinci1 +# Fri Aug 17 20:43:45 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y CONFIG_GENERIC_GPIO=y -# CONFIG_GENERIC_TIME is not set -# CONFIG_GENERIC_CLOCKEVENTS is not set +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_MMU=y # CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y @@ -26,26 +26,20 @@ CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # -# Code maturity level options +# General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y # CONFIG_SWAP is not set CONFIG_SYSVIPC=y -# CONFIG_IPC_NS is not set CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set -# CONFIG_UTS_NS is not set +# CONFIG_USER_NS is not set # CONFIG_AUDIT is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y @@ -67,34 +61,30 @@ CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y +CONFIG_ANON_INODES=y CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y -CONFIG_SLUB_DEBUG=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 - -# -# Loadable module support -# CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y - -# -# Block layer -# CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set +# CONFIG_BLK_DEV_BSG is not set # # IO Schedulers @@ -126,14 +116,16 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_NETX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IOP32X is not set # CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set # CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_MXC is not set # CONFIG_ARCH_PNX4008 is not set # CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set @@ -141,8 +133,17 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set CONFIG_ARCH_DAVINCI=y +# CONFIG_ARCH_OMAP is not set +# CONFIG_MACH_OMAP_APOLLON_PLUS is not set + +# +# Boot options +# + +# +# Power management +# # # TI DaVinci Implementations @@ -172,6 +173,7 @@ CONFIG_CPU_32=y CONFIG_CPU_ARM926T=y CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5TJ=y +CONFIG_CPU_PABRT_NOIFAR=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_COPY_V4WB=y CONFIG_CPU_TLB_V4WBI=y @@ -191,6 +193,7 @@ CONFIG_ARM_THUMB=y # # Bus support # +# CONFIG_PCI_SYSCALL is not set # CONFIG_ARCH_SUPPORTS_MSI is not set # @@ -202,11 +205,11 @@ CONFIG_ARM_THUMB=y # Kernel Features # # CONFIG_TICK_ONESHOT is not set -CONFIG_PREEMPT=y -# CONFIG_NO_IDLE_HZ is not set +# CONFIG_NO_HZ is not set +# CONFIG_HIGH_RES_TIMERS is not set +# CONFIG_PREEMPT is not set CONFIG_HZ=100 -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +# CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -218,8 +221,9 @@ CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y CONFIG_LEDS=y -# CONFIG_LEDS_TIMER is not set # CONFIG_LEDS_CPU is not set CONFIG_ALIGNMENT_TRAP=y @@ -239,8 +243,7 @@ CONFIG_CMDLINE="" # # At least one emulation must be selected # -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_NWFPE is not set # CONFIG_FPE_FASTFPE is not set # CONFIG_VFP is not set @@ -250,6 +253,7 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # # Power management options @@ -298,10 +302,6 @@ CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set - -# -# IP: Virtual Server Configuration -# # CONFIG_IP_VS is not set CONFIG_IPV6=m # CONFIG_IPV6_PRIVACY is not set @@ -344,20 +344,8 @@ CONFIG_NETFILTER=y # # CONFIG_IP6_NF_QUEUE is not set # CONFIG_IP6_NF_IPTABLES is not set - -# -# DCCP Configuration (EXPERIMENTAL) -# # CONFIG_IP_DCCP is not set - -# -# SCTP Configuration (EXPERIMENTAL) -# # CONFIG_IP_SCTP is not set - -# -# TIPC Configuration (EXPERIMENTAL) -# # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set @@ -393,6 +381,7 @@ CONFIG_NETFILTER=y # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set # # Device Drivers @@ -405,10 +394,6 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y # CONFIG_FW_LOADER is not set # CONFIG_SYS_HYPERVISOR is not set - -# -# Connector - unified userspace <-> kernelspace linker -# # CONFIG_CONNECTOR is not set CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set @@ -494,20 +479,8 @@ CONFIG_MTD_NAND_IDS=y # UBI - Unsorted block images # # CONFIG_MTD_UBI is not set - -# -# Parallel port support -# # CONFIG_PARPORT is not set - -# -# Plug and Play support -# -# CONFIG_PNPACPI is not set - -# -# Block devices -# +CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set @@ -519,10 +492,6 @@ CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set - -# -# ATA/ATAPI/MFM/RLL support -# CONFIG_IDE=y CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y @@ -584,6 +553,7 @@ CONFIG_BLK_DEV_IDEDMA=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m +CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y @@ -613,74 +583,28 @@ CONFIG_SCSI_WAIT_SCAN=m # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set - -# -# SCSI low-level drivers -# +CONFIG_SCSI_LOWLEVEL=y # CONFIG_ISCSI_TCP is not set # CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_ESP_CORE is not set - -# -# Serial ATA (prod) and Parallel ATA (experimental) drivers -# # CONFIG_ATA is not set - -# -# Multi-device support (RAID and LVM) -# # CONFIG_MD is not set - -# -# Fusion MPT device support -# -# CONFIG_FUSION is not set - -# -# IEEE 1394 (FireWire) support -# - -# -# I2O device support -# - -# -# Network device support -# CONFIG_NETDEVICES=y +# CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set +# CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=m - -# -# PHY device support -# # CONFIG_PHYLIB is not set - -# -# Ethernet (10 or 100Mbit) -# CONFIG_NET_ETHERNET=y # CONFIG_MII is not set -CONFIG_TI_DAVINCI_EMAC=y +# CONFIG_AX88796 is not set # CONFIG_SMC91X is not set +CONFIG_TI_DAVINCI_EMAC=y # CONFIG_DM9000 is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# -CONFIG_MLX4_DEBUG=y - -# -# Token Ring devices -# +CONFIG_NETDEV_1000=y +CONFIG_NETDEV_10000=y # # Wireless LAN @@ -697,10 +621,6 @@ CONFIG_MLX4_DEBUG=y # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET_MII is not set # CONFIG_USB_USBNET is not set - -# -# Wan interfaces -# # CONFIG_WAN is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set @@ -711,6 +631,7 @@ CONFIG_PPP_DEFLATE=m # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set +# CONFIG_PPPOL2TP is not set # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_SHAPER is not set @@ -718,10 +639,6 @@ CONFIG_NETCONSOLE=y CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y - -# -# ISDN subsystem -# # CONFIG_ISDN is not set # @@ -729,6 +646,7 @@ CONFIG_NET_POLL_CONTROLLER=y # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set # # Userland interfaces @@ -794,26 +712,13 @@ CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 - -# -# IPMI -# # CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# # CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=y # CONFIG_NVRAM is not set CONFIG_DAVINCI_RTC=y -# CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_RAW_DRIVER is not set - -# -# TPM devices -# # CONFIG_TCG_TPM is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y @@ -833,6 +738,7 @@ CONFIG_I2C_CHARDEV=y # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_TINY_USB is not set CONFIG_I2C_DAVINCI=y @@ -842,13 +748,16 @@ CONFIG_I2C_DAVINCI=y # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set +# CONFIG_DS1682 is not set # CONFIG_SENSORS_EEPROM is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set CONFIG_SENSORS_TLV320AIC23=y -# CONFIG_SENSORS_MAX6875 is not set CONFIG_SENSORS_TLV320AIC33=y +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_SENSORS_TSL2550 is not set +CONFIG_GPIOEXPANDER_DAVINCI=y # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -859,14 +768,11 @@ CONFIG_SENSORS_TLV320AIC33=y # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set - -# -# Dallas's 1-wire bus -# # CONFIG_W1 is not set CONFIG_HWMON=y # CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set # CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set @@ -893,13 +799,16 @@ CONFIG_HWMON=y # CONFIG_SENSORS_LM87 is not set # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set @@ -909,57 +818,33 @@ CONFIG_HWMON=y # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_HWMON_DEBUG_CHIP is not set - -# -# Misc devices -# -# CONFIG_BLINK is not set +CONFIG_MISC_DEVICES=y +# CONFIG_EEPROM_93CX6 is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set - -# -# LED devices -# # CONFIG_NEW_LEDS is not set # -# LED drivers -# - -# -# LED Triggers -# - -# # Multimedia devices # CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y - -# -# Video Capture Adapters -# - -# -# Video Capture Adapters -# +CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_TVP5146 is not set # CONFIG_VIDEO_CPIA is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set -# CONFIG_VIDEO_IVTV is not set - -# -# V4L USB devices -# +# CONFIG_TUNER_TEA5761 is not set +CONFIG_V4L_USB_DRIVERS=y # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set # CONFIG_VIDEO_USBVISION is not set @@ -977,17 +862,11 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # CONFIG_USB_ZC0301 is not set # CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set - -# -# Radio Adapters -# +CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_TEA5761 is not set # CONFIG_USB_DSBR is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set +# CONFIG_DVB_CORE is not set +CONFIG_DAB=y # CONFIG_USB_DABUSB is not set # @@ -1000,6 +879,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # # CONFIG_DISPLAY_SUPPORT is not set # CONFIG_VGASTATE is not set +CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set @@ -1030,6 +910,7 @@ CONFIG_FB_DAVINCI=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y @@ -1053,7 +934,6 @@ CONFIG_SOUND=y # Open Sound System # CONFIG_SOUND_PRIME=y -# CONFIG_OSS_OBSOLETE is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set CONFIG_SOUND_DAVINCI=y @@ -1064,10 +944,7 @@ CONFIG_SOUND_DAVINCI_AIC33=y # # CONFIG_MONOSTEREO_DIFFJACK is not set CONFIG_MONOSTEREO_SAMEJACK=y - -# -# HID Devices -# +CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set @@ -1084,10 +961,7 @@ CONFIG_USB_HID=m # # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE is not set - -# -# USB support -# +CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set @@ -1098,7 +972,7 @@ CONFIG_USB=m # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y -# CONFIG_USB_DEVICE_CLASS is not set +CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_OTG is not set @@ -1107,6 +981,7 @@ CONFIG_USB_DEVICEFS=y # # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set CONFIG_USB_MUSB_HDRC=m CONFIG_USB_MUSB_SOC=y @@ -1197,12 +1072,15 @@ CONFIG_USB_MON=y CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_AMD5536UDC is not set # CONFIG_USB_GADGET_FSL_USB2 is not set # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_M66592 is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_S3C2410 is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set CONFIG_USB_GADGET_DUALSPEED=y @@ -1222,17 +1100,27 @@ CONFIG_MMC=y # MMC/SD Card Drivers # CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_BOUNCE=y # # MMC/SD Host Controller Drivers # # CONFIG_MMC_DAVINCI is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set # -# Real Time Clock +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices # -CONFIG_RTC_LIB=y -# CONFIG_RTC_CLASS is not set # # File systems @@ -1350,7 +1238,6 @@ CONFIG_SMB_FS=m # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set -# CONFIG_9P_FS is not set # # Partition Types @@ -1447,10 +1334,6 @@ CONFIG_FRAME_POINTER=y # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set - -# -# Cryptographic options -# # CONFIG_CRYPTO is not set # @@ -1459,7 +1342,9 @@ CONFIG_FRAME_POINTER=y CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m # CONFIG_CRC16 is not set +# CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y +# CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y diff --git a/packages/linux/linux-davinci_2.6.x+git-davinci.bb b/packages/linux/linux-davinci_2.6.x+git-davinci.bb index b4dcabedd7..0381716253 100644 --- a/packages/linux/linux-davinci_2.6.x+git-davinci.bb +++ b/packages/linux/linux-davinci_2.6.x+git-davinci.bb @@ -6,6 +6,7 @@ PR = "r1" COMPATIBLE_MACHINE = "davinci-dvevm" SRC_URI = "git://source.mvista.com/git/linux-davinci-2.6.git;protocol=git \ + file://binutils-buildid-arm.patch;patch=1 \ file://defconfig" S = "${WORKDIR}/git" diff --git a/packages/linux/linux-ezx-2.6.21/a1200/defconfig b/packages/linux/linux-ezx-2.6.21/a1200/defconfig index b40f2f6eba..929eae4d5c 100755 --- a/packages/linux/linux-ezx-2.6.21/a1200/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a1200/defconfig @@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_BACKLIGHT_EZX=y +CONFIG_BACKLIGHT_EZX=N CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set diff --git a/packages/linux/linux-ezx-2.6.21/a780/defconfig b/packages/linux/linux-ezx-2.6.21/a780/defconfig index 613fe3de5b..f79aaa7e7d 100755 --- a/packages/linux/linux-ezx-2.6.21/a780/defconfig +++ b/packages/linux/linux-ezx-2.6.21/a780/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21.4 -# Sun Sep 9 10:37:45 2007 +# Fri Sep 21 18:10:00 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -152,6 +152,7 @@ CONFIG_PXA_EZX_A780=y # CONFIG_PXA_EZX_E6 is not set CONFIG_EZX_BP=y CONFIG_EZX_PCAP=y +# CONFIG_EZX_EOC is not set CONFIG_EZX_EMU=y CONFIG_EZX_EMU_USB=y # CONFIG_EZX_EMU_UART is not set @@ -589,9 +590,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set # CONFIG_MTD_SHARP_SL is not set CONFIG_MTD_EZX=y -CONFIG_MTD_EZX_A780=y -# CONFIG_MTD_EZX_A780_ALTERNATE is not set +# CONFIG_MTD_EZX_A780 is not set +CONFIG_MTD_EZX_A780_ALTERNATE=y +# CONFIG_MTD_EZX_A1200 is not set # CONFIG_MTD_EZX_E2 is not set +# CONFIG_MTD_EZX_E6 is not set # CONFIG_MTD_PLATRAM is not set # @@ -1019,6 +1022,9 @@ CONFIG_FB_CFB_IMAGEBLIT=y # # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +CONFIG_FB_PXA_OVERLAY=y CONFIG_FB_PXA_PARAMETERS=y # CONFIG_FB_MBX is not set # CONFIG_FB_VIRTUAL is not set diff --git a/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX index 7e7e0f2898..c6d90c61b9 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX +++ b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX @@ -8,12 +8,18 @@ # in your environment. # -PHONES = a780 e680 a1200 e2 e6 +PHONES = a780 e680 a1200 e6 e2 CROSS_COMPILE ?= /home/wyrm/ezx/dev/cross/bin/arm-angstrom-linux-gnueabi- QUILT_PATCHES ?= patches +LV ?= ezxdev # replace LOCALVERSION string +J ?= 2 # simultaneous jobs +SIG ?= 0 # BOOL sign md5sums file + DATE = $(shell date +%Y%m%d) +DEPLOY_SERVER ?= people.openezx.org +DEPLOY_DIR ?= public_html/images/$(DATE)/ all: $(foreach p, $(PHONES), zImage-$(p) modules-$(p).tar.gz) @@ -21,8 +27,27 @@ zImages: $(foreach p, $(PHONES), zImage-$(p)) modules: $(foreach p, $(PHONES), modules-$(p).tar.gz) +config: $(foreach p, $(PHONES), config-$(p)) + +config-%: $(QUILT_PATCHES)/defconfig-% + cp $< .config + make ARCH=arm oldconfig + cp .config $< + +deploy: release + ssh $(DEPLOY_SERVER) \ + mkdir -p $(DEPLOY_DIR) + scp ezxrelease-$(DATE).tar $(DEPLOY_SERVER):$(DEPLOY_DIR) + ssh $(DEPLOY_SERVER) \ + cd $(DEPLOY_DIR)\; \ + tar -xf ezxrelease-$(DATE).tar\; \ + rm -f ezxrelease-$(DATE).tar + release: $(foreach p, $(PHONES), tag-$(p)) - cat md5sums.tmp | gpg --clearsign > md5sums + cp md5sums.tmp md5sums + test "$(SIG)" = "1" && \ + cat md5sums.tmp | gpg --clearsign > md5sums \ + ; echo tar -rf ezxrelease.tar md5sums rm -f md5sums.tmp md5sums mv ezxrelease.tar ezxrelease-$(DATE).tar @@ -30,22 +55,23 @@ release: $(foreach p, $(PHONES), tag-$(p)) tag-%: zImage-% modules-%.tar.gz p=$(patsubst tag-%,%,$@) && \ tag=$(shell cat include/config/kernel.release)-$(DATE) && \ - cp zImage-$$p zImage-$$tag-$$p && \ - cp modules-$$p.tar.gz modules-$$tag-$$p.tar.gz && \ + mv zImage-$$p zImage-$$tag-$$p && \ + mv modules-$$p.tar.gz modules-$$tag-$$p.tar.gz && \ tar -rf ezxrelease.tar zImage-$$tag-$$p modules-$$tag-$$p.tar.gz && \ md5sum zImage-$$tag-$$p modules-$$tag-$$p.tar.gz >> md5sums.tmp && \ rm -f zImage-$$tag-$$p modules-$$tag-$$p.tar.gz zImage-%: $(QUILT_PATCHES)/defconfig-% - cp $< ./.config - make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) zImage + cat $< | sed 's/LOCALVERSION=".*"$$/LOCALVERSION="-$(LV)"/' > .config + make -j$(J) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) zImage mv arch/arm/boot/zImage $@ modules-%.tar.gz: $(QUILT_PATCHES)/defconfig-% - cp $< ./.config + cat $< | sed 's/LOCALVERSION=".*"$$/LOCALVERSION="-$(LV)"/' > .config -find . -name "*.ko" -print0 | xargs -r0 rm - mkdir /tmp/$@ - make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) \ - INSTALL_MOD_PATH=/tmp/$@ modules modules_install - tar -C /tmp/$@ -czf $@ . - rm -rf /tmp/$@ + mkdir -p Makefile.OpenEZX-tmp/$@ + make -j$(J) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules + make -j1 ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) \ + INSTALL_MOD_PATH=Makefile.OpenEZX-tmp/$@ modules_install + tar -C Makefile.OpenEZX-tmp/$@ -czf $@ . + rm -rf Makefile.OpenEZX-tmp/ diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch index 577aa66303..e6146058a0 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-eoc.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 22:15:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-09 13:29:56.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:38:52.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:48:23.000000000 -0300 @@ -25,6 +25,7 @@ #include <asm/arch/mmc.h> @@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c extern void ezx_lcd_power(int, struct fb_var_screeninfo *); extern void ezx_backlight_power(int); -@@ -227,11 +228,69 @@ - .resource = pcap_ts_resources, +@@ -203,8 +204,65 @@ + }, }; + @@ -72,11 +72,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + static struct platform_device *devices[] __initdata = { &a1200_pcap_device, - &pcap_ts_device, + &a1200_eoc_device, }; -+ static void __init a1200_init(void) - { - set_pxa_fb_info(&a1200_fb_info); diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch new file mode 100644 index 0000000000..15d87f7751 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-flip.patch @@ -0,0 +1,47 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 13:28:02.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 13:31:40.000000000 -0300 +@@ -16,6 +16,7 @@ + #include <linux/mmc/host.h> + #include <linux/irq.h> + #include <linux/input.h> ++#include <linux/gpio_keys.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -343,11 +344,34 @@ + .num_resources = ARRAY_SIZE(pcap_ts_resources), + .resource = pcap_ts_resources, + }; ++/* Flip */ ++#undef GPIO_FLIP_PIN ++#define GPIO_FLIP_PIN 15 /* FIXME */ ++static struct gpio_keys_button a1200flip_buttons[] = { ++ [0] = { ++ .keycode = KEY_SLEEP, ++ .gpio = GPIO_FLIP_PIN, ++ .desc = "A1200 flip", ++ }, ++}; ++ ++static struct gpio_keys_platform_data a1200flip_platform_data = { ++ .buttons = a1200flip_buttons, ++ .nbuttons = 1, ++}; ++static struct platform_device a1200flip_device = { ++ .name = "gpio-keys", ++ .id = -1, ++ .dev = { ++ .platform_data = &a1200flip_platform_data, ++ }, ++}; + + static struct platform_device *devices[] __initdata = { + &a1200_pcap_device, + &a1200_eoc_device, + &pcap_ts_device, ++ &a1200flip_device, + }; + + static void __init a1200_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch new file mode 100644 index 0000000000..be1a6f11f7 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-kbd.patch @@ -0,0 +1,99 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 11:48:10.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 13:24:58.000000000 -0300 +@@ -15,6 +15,7 @@ + #include <linux/fb.h> + #include <linux/mmc/host.h> + #include <linux/irq.h> ++#include <linux/input.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -23,12 +24,14 @@ + #include <asm/arch/ezx.h> + #include <asm/arch/ezx-pcap.h> + #include <asm/arch/mmc.h> ++#include <asm/arch/kbd.h> + + #include "generic.h" + #include "ezx-eoc.h" + + extern void ezx_lcd_power(int, struct fb_var_screeninfo *); + extern void ezx_backlight_power(int); ++extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *); + + #ifdef CONFIG_EZX_PCAP + extern int ezx_pcap_mmcsd_power(int); +@@ -284,6 +287,63 @@ + .resource = pcap_ts_resources, + }; + ++/* Keypad */ ++static unsigned char a1200_keycode[] = { ++ /* row 0 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 1 */ ++ KEY_RIGHT, KEY_DOWN, KEY_KPENTER, KEY_UP, KEY_LEFT, ++ /* row 2 */ ++ KEY_PAGEDOWN, KEY_CAMERA, KEY_RECORD, KEY_HOME, KEY_PAGEUP, ++ /* row 3 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 4 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, ++ /* row 5 */ ++ KEY_RESERVED, KEY_RESERVED, KEY_MENU, KEY_RESERVED, KEY_RESERVED, ++}; ++/* ++static unsigned char a1200_direct_keycode[] = { ++ KEY_CAMERA, ++}; ++*/ ++ ++static int a1200_kbd_init(void) ++{ ++ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */ ++ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */ ++ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */ ++ pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */ ++ pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */ ++ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */ ++ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */ ++ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */ ++ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */ ++ pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */ ++ pxa_gpio_mode(108 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<5> */ ++ ++ PKWR = 0xEC000; ++ PGSR3 |= 0x1F80; ++ return 0; ++} ++ ++static struct pxakbd_platform_data a1200_kbd_platform_data = { ++ .init = &a1200_kbd_init, ++ .scan_interval = HZ/40, ++ .matrix = { ++ .keycode = a1200_keycode, ++ .cols = 6, ++ .rows = 5, ++ }, ++/* ++ .direct = { ++ .keycode = a1200_direct_keycode, ++ .num = 1, ++ }, ++*/ ++}; ++ ++ + static struct platform_device *devices[] __initdata = { + &a1200_pcap_device, + &a1200_eoc_device, +@@ -294,6 +354,7 @@ + { + set_pxa_fb_info(&a1200_fb_info); + pxa_set_mci_info(&a1200_mci_platform_data); ++ pxa_set_kbd_info(&a1200_kbd_platform_data); + + platform_add_devices(devices, ARRAY_SIZE(devices)); + } diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch index a8c8f2ee29..2327257507 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:54:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-07 11:55:10.000000000 -0300 -@@ -203,8 +203,33 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:50:31.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-21 21:51:06.000000000 -0300 +@@ -260,9 +260,34 @@ }, }; @@ -32,6 +32,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + static struct platform_device *devices[] __initdata = { &a1200_pcap_device, + &a1200_eoc_device, + &pcap_ts_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch index 79c60c8ca2..f6e152c735 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-eoc.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 22:15:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-09 13:29:56.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:38:52.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:49:42.000000000 -0300 @@ -25,6 +25,7 @@ #include <asm/arch/mmc.h> @@ -10,8 +10,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c extern void ezx_lcd_power(int, struct fb_var_screeninfo *); extern void ezx_backlight_power(int); -@@ -227,11 +228,69 @@ - .resource = pcap_ts_resources, +@@ -203,8 +204,65 @@ + }, }; + @@ -72,11 +72,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + static struct platform_device *devices[] __initdata = { &e6_pcap_device, - &pcap_ts_device, + &e6_eoc_device, }; -+ static void __init e6_init(void) - { - set_pxa_fb_info(&e6_fb_info); diff --git a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch index 6472f77886..a39b782300 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e6-ts.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 11:54:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-07 11:55:10.000000000 -0300 -@@ -203,8 +203,33 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:50:31.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-21 21:51:40.000000000 -0300 +@@ -260,9 +260,34 @@ }, }; @@ -32,6 +32,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + static struct platform_device *devices[] __initdata = { &e6_pcap_device, + &e6_eoc_device, + &pcap_ts_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch index 653e814fb4..e85a40d1a9 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-09-23 11:17:06.000000000 -0300 @@ -53,3 +53,6 @@ str r1, [r0, #0x18] #endif @@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S +#endif Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-28 20:54:54.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-23 11:18:47.000000000 -0300 @@ -37,6 +37,10 @@ bool "Keith und Koep Trizeps4 DIMM-Module" select PXA27x @@ -68,8 +68,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endif Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-28 20:54:54.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-23 11:18:47.000000000 -0300 @@ -18,6 +18,12 @@ obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o @@ -86,7 +86,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 20:54:54.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-09-23 11:18:47.000000000 -0300 @@ -0,0 +1,118 @@ +/* + * ezx.c - Common code for EZX platform. @@ -209,7 +209,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-28 16:51:50.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-09-23 11:17:06.000000000 -0300 @@ -0,0 +1,225 @@ +/* + * linux/include/asm-arm/arch-pxa/ezx.h @@ -438,8 +438,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h + Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-28 18:18:49.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-09-23 11:17:06.000000000 -0300 @@ -849,6 +849,8 @@ #define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */ #define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */ @@ -555,8 +555,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */ Index: linux-2.6.21/arch/arm/boot/compressed/head.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-09-23 11:17:06.000000000 -0300 @@ -117,6 +117,9 @@ mov r0, r0 .endr @@ -569,8 +569,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S .word start @ absolute load/run zImage address Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-09-23 11:17:06.000000000 -0300 @@ -14,14 +14,14 @@ #define STUART ((volatile unsigned long *)0x40700000) #define HWUART ((volatile unsigned long *)0x41600000) @@ -591,8 +591,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h /* Index: linux-2.6.21/arch/arm/mm/init.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-28 16:51:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mm/init.c 2007-06-28 16:51:50.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-09-23 11:16:58.000000000 -0300 ++++ linux-2.6.21/arch/arm/mm/init.c 2007-09-23 11:17:06.000000000 -0300 @@ -241,6 +241,10 @@ */ reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, @@ -607,7 +607,7 @@ Index: linux-2.6.21/arch/arm/mm/init.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-28 20:53:01.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-09-23 11:17:06.000000000 -0300 @@ -0,0 +1,88 @@ +/* + * ezx-a780.c - Code specific to A780 GSM Phone. @@ -700,7 +700,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-28 20:54:24.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-09-23 11:20:03.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-e2.c - Code specific to E2 GSM Phone. @@ -748,7 +748,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -766,7 +766,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, @@ -775,7 +775,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-28 20:53:29.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-09-23 11:17:06.000000000 -0300 @@ -0,0 +1,87 @@ +/* + * ezx-e680.c - Code specific to E680 GSM Phone. @@ -867,7 +867,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-28 20:53:48.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-09-23 11:19:29.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-a1200.c - Code specific to A1200 GSM Phone. @@ -915,7 +915,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -933,7 +933,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, @@ -942,7 +942,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-28 20:54:07.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-09-23 11:19:52.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-e6.c - Code specific to E6 GSM Phone. @@ -990,7 +990,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + .num_modes = 1, + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_backlight_power = &ezx_backlight_power, + .pxafb_lcd_power = &ezx_lcd_power, +}; + @@ -1008,7 +1008,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c + /* Maintainer: OpenEZX Team (www.openezx.org) */ + .phys_io = 0x40000000, + .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, ++ .boot_params = 0xa0000200, + .map_io = pxa_map_io, + .init_irq = pxa_init_irq, + .timer = &pxa_timer, diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch index 77c79fd107..293251423c 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-eoc.patch @@ -1,8 +1,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-11 20:14:33.000000000 -0300 -@@ -0,0 +1,267 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c 2007-09-23 09:31:23.000000000 -0300 +@@ -0,0 +1,272 @@ +/* + * EZX EOC Driver for Motorola EZX phones + * @@ -32,6 +32,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + +#define EOC_REG_ADDR_SIZE 1 +#define EOC_REG_DATA_SIZE 3 ++#define I2C_DRIVERID_EOC 2100 + +struct ezx_eoc_platform_data *pdata; +static int eoc_func = EOC_FUNC_USB_NET; @@ -57,7 +58,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + .driver = { + .name = (char *)eoc_i2c_driver_name, + }, -+ .id = I2C_DRIVERID_EEPROM, ++ .id = I2C_DRIVERID_EOC, + .attach_adapter = ezx_eoc_attach_adapter, + .detach_client = ezx_eoc_detach_client, +}; @@ -154,10 +155,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + } +} + -+ ++int x = 0; +static int ezx_eoc_attach_adapter(struct i2c_adapter *adapter) +{ -+ return i2c_probe(adapter, &addr_data, ezx_eoc_detect); ++ if (!x) { ++ x++; ++ return i2c_probe(adapter, &addr_data, ezx_eoc_detect); ++ } ++ return -1; +} + +/* This function is called by i2c_probe */ @@ -210,11 +215,11 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c + ret = i2c_add_driver(&eoc_i2c_driver); + if (ret != 0) + return -EINVAL; -+ -+ /* ++ ++ /* + * I think we should save platform_data and call init and eoc_switch + * from ezx_eoc_detect, after client is setup. -+ * And there is no need for all the "check if initialised" checks if ++ * And there is no need for all the "check if initialised" checks if + * you assure that you only call read/write after the client is set. + * Probably, this was causing the crash on i2c-core too. + * --WM @@ -267,13 +272,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.c +MODULE_LICENSE("GPL"); + +/* doesnt module_init work?? -WM */ -+/*late_initcall(ezx_eoc_init);*/ -+module_init(ezx_eoc_init); ++late_initcall(ezx_eoc_init); ++//module_init(ezx_eoc_init); +module_exit(ezx_eoc_exit); Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h 2007-09-09 21:46:27.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h 2007-09-22 14:12:05.000000000 -0300 @@ -0,0 +1,33 @@ +/* + * linux/arch/arm/mach-pxa/ezx-eoc.h @@ -310,8 +315,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-eoc.h +#endif /* __EZX_EOC_H__ */ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-09 21:46:27.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-09-22 14:12:05.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-09-22 14:12:05.000000000 -0300 @@ -108,6 +108,12 @@ config EZX_PCAP bool "PCAP Support" @@ -327,8 +332,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig depends on EZX_PCAP Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-09 21:46:27.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-09-22 14:12:05.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-09-22 14:12:05.000000000 -0300 @@ -27,6 +27,7 @@ obj-$(CONFIG_EZX_BP) += ezx-bp.o obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch index ff3413f062..05748e681c 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:28.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/pxa27x.c 2007-09-21 23:57:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/pxa27x.c 2007-09-21 23:57:49.000000000 -0300 @@ -22,6 +22,10 @@ #include <asm/arch/pxa-regs.h> #include <asm/arch/ohci.h> @@ -29,8 +29,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pxa27x.c } Index: linux-2.6.21/arch/arm/mach-pxa/pm.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:28.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/pm.c 2007-09-21 23:57:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/pm.c 2007-09-21 23:57:49.000000000 -0300 @@ -24,6 +24,10 @@ #include <asm/arch/lubbock.h> #include <asm/mach/time.h> @@ -58,8 +58,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/pm.c RESTORE(GPDR0); RESTORE(GPDR1); RESTORE(GPDR2); Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:52.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-28 19:44:58.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-09-21 23:57:48.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-09-22 00:07:34.000000000 -0300 @@ -19,6 +19,7 @@ #include <asm/arch/pxa-regs.h> #include <asm/arch/ohci.h> @@ -68,49 +68,33 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c #include "generic.h" -@@ -122,8 +123,69 @@ +@@ -122,8 +123,53 @@ &ezxbp_device, }; +/* PM */ +extern int bp_handshake_passed(void); + -+#define POWER_OFF_TIMEOUT (2*60*HZ) -+ +static void ezx_reboot_poweroff(char mode) +{ -+#ifdef CONFIG_EZX_BP -+ unsigned long start = jiffies; -+ -+ printk("Waiting for BP to turn off. This can take some time...\n"); + *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = NO_FLAG; + cpu_proc_fin(); + -+ do { -+ /* -+ * Turn off gracefully. Wait BP turn off first, and then -+ * properly turn off. -+ */ -+ if (pxa_gpio_get_value(GPIO_BB_WDI) == 0) { -+ *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = WDI_FLAG; ++#ifdef CONFIG_EZX_BP ++ if (pxa_gpio_get_value(GPIO_BB_WDI) == 0) { ++ *(unsigned long *)(phys_to_virt(BPSIG_ADDR)) = WDI_FLAG; + -+ /* reset BP */ -+ pxa_gpio_set_value(GPIO_BB_RESET, 0); -+ mdelay(1); -+ pxa_gpio_set_value(GPIO_BB_RESET, 1); ++ /* reset BP */ ++ pxa_gpio_set_value(GPIO_BB_RESET, 0); ++ mdelay(1); ++ pxa_gpio_set_value(GPIO_BB_RESET, 1); + -+ if (mode == 'z') -+ arch_reset('h'); -+ break; -+ } -+ /* Just turn it off! */ -+ if (!bp_handshake_passed() || !pxa_gpio_get_value(GPIO_BB_WDI2) -+ || (jiffies - start) >= POWER_OFF_TIMEOUT) { -+ break; ++ if (mode == 'z') { ++ arch_reset('h'); ++ while(1); + } -+ } while(1); ++ } +#endif -+ + if (mode == 'z') + /* Panic! Ask PCAP to turn both processors off */ + pxa_gpio_set_value(GPIO_WDI_AP, 0); diff --git a/packages/linux/linux-ezx-2.6.21/patches/index.html b/packages/linux/linux-ezx-2.6.21/patches/index.html index 4d57380e0c..bbbb40d590 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/index.html +++ b/packages/linux/linux-ezx-2.6.21/patches/index.html @@ -1,9 +1,10 @@ -<html><head><title>Revision 2047: /trunk/src/kernel-2.6/patches</title></head> +<html><head><title>Revision 2059: /trunk/src/kernel-2.6/patches</title></head> <body> - <h2>Revision 2047: /trunk/src/kernel-2.6/patches</h2> + <h2>Revision 2059: /trunk/src/kernel-2.6/patches</h2> <ul> <li><a href="../">..</a></li> <li><a href="Makefile.OpenEZX">Makefile.OpenEZX</a></li> + <li><a href="a1200-eoc.patch">a1200-eoc.patch</a></li> <li><a href="a1200-mci.patch">a1200-mci.patch</a></li> <li><a href="a1200-pcap.patch">a1200-pcap.patch</a></li> <li><a href="a1200-ts.patch">a1200-ts.patch</a></li> @@ -15,6 +16,7 @@ <li><a href="a780-pcap.patch">a780-pcap.patch</a></li> <li><a href="a780-ts.patch">a780-ts.patch</a></li> <li><a href="a780-vibrator.patch">a780-vibrator.patch</a></li> + <li><a href="asoc-fix-loopback.patch">asoc-fix-loopback.patch</a></li> <li><a href="asoc-pxa-ssp.patch">asoc-pxa-ssp.patch</a></li> <li><a href="defconfig-a1200">defconfig-a1200</a></li> <li><a href="defconfig-a780">defconfig-a780</a></li> @@ -22,6 +24,10 @@ <li><a href="defconfig-e6">defconfig-e6</a></li> <li><a href="defconfig-e680">defconfig-e680</a></li> <li><a href="dmesg-a780.log">dmesg-a780.log</a></li> + <li><a href="e6-eoc.patch">e6-eoc.patch</a></li> + <li><a href="e6-mci.patch">e6-mci.patch</a></li> + <li><a href="e6-pcap.patch">e6-pcap.patch</a></li> + <li><a href="e6-ts.patch">e6-ts.patch</a></li> <li><a href="e680-emu.patch">e680-emu.patch</a></li> <li><a href="e680-kbd.patch">e680-kbd.patch</a></li> <li><a href="e680-leds.patch">e680-leds.patch</a></li> @@ -35,10 +41,13 @@ <li><a href="ezx-core.patch">ezx-core.patch</a></li> <li><a href="ezx-emu.patch">ezx-emu.patch</a></li> <li><a href="ezx-enable-stuart.patch">ezx-enable-stuart.patch</a></li> + <li><a href="ezx-eoc.patch">ezx-eoc.patch</a></li> <li><a href="ezx-mtd-map.patch">ezx-mtd-map.patch</a></li> <li><a href="ezx-pcap.patch">ezx-pcap.patch</a></li> <li><a href="ezx-pm.patch">ezx-pm.patch</a></li> <li><a href="ezx-serial-bug-workaround.patch">ezx-serial-bug-workaround.patch</a></li> + <li><a href="i2c-core-fix-a1200.patch">i2c-core-fix-a1200.patch</a></li> + <li><a href="mtdfix.patch">mtdfix.patch</a></li> <li><a href="mux-fix-init-errorpath.patch">mux-fix-init-errorpath.patch</a></li> <li><a href="mux-fix-makefile.patch">mux-fix-makefile.patch</a></li> <li><a href="mux-fix-tty-driver.patch">mux-fix-tty-driver.patch</a></li> @@ -53,6 +62,7 @@ <li><a href="patch-2.6.21.4">patch-2.6.21.4</a></li> <li><a href="pcap-ts.patch">pcap-ts.patch</a></li> <li><a href="pxa-kbd.patch">pxa-kbd.patch</a></li> + <li><a href="pxa27x-udc-fix-a1200.patch">pxa27x-udc-fix-a1200.patch</a></li> <li><a href="pxa27x-udc-support.2.patch">pxa27x-udc-support.2.patch</a></li> <li><a href="series">series</a></li> </ul> diff --git a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch index 9ee87ff903..1dd6edd7c3 100644 --- a/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-fix-a1200.patch @@ -1,7 +1,8 @@ +This hack hardcodes pxa27x-udc to ether_gadget. This is just a temp workaround. Index: linux-2.6.21/drivers/usb/gadget/ether.c =================================================================== ---- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-08-20 22:05:12.000000000 +0800 -+++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-08-20 22:06:25.000000000 +0800 +--- linux-2.6.21.orig/drivers/usb/gadget/ether.c 2007-09-23 09:32:51.000000000 -0300 ++++ linux-2.6.21/drivers/usb/gadget/ether.c 2007-09-23 09:32:52.000000000 -0300 @@ -2697,10 +2697,16 @@ MODULE_LICENSE ("GPL"); @@ -22,8 +23,8 @@ Index: linux-2.6.21/drivers/usb/gadget/ether.c static void __exit cleanup (void) Index: linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c =================================================================== ---- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:31.000000000 +0800 -+++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-08-20 22:07:47.000000000 +0800 +--- linux-2.6.21.orig/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:51.000000000 -0300 ++++ linux-2.6.21/drivers/usb/gadget/pxa27x_udc.c 2007-09-23 09:32:52.000000000 -0300 @@ -2227,6 +2227,8 @@ udc_init_ep(udc); udc_reinit(udc); diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series index ecdc30b5fe..aa95fcbc78 100755 --- a/packages/linux/linux-ezx-2.6.21/patches/series +++ b/packages/linux/linux-ezx-2.6.21/patches/series @@ -1,4 +1,5 @@ patch-2.6.21.4 +mtdfix.patch ezx-core.patch # ezx-core TODO: should be ezx-common @@ -25,10 +26,12 @@ ezx-pcap.patch a780-pcap.patch e680-pcap.patch a1200-pcap.patch +e6-pcap.patch a780-mci.patch e680-mci.patch a1200-mci.patch +e6-mci.patch pxa27x-udc-support.2.patch @@ -36,23 +39,18 @@ ezx-emu.patch # ezx-emu TODO: # userspace interface for controling emu # read adc to find which accessory is plugged - a780-emu.patch e680-emu.patch +ezx-eoc.patch +a1200-eoc.patch +e6-eoc.patch + ezx-mtd-map.patch -# ezx-mtd-map TODO: -# at least the original partition should go on the ezx-phone.c file ezx-serial-bug-workaround.patch -# ezx-serial-bug TODO: -# does anyone have a phone with this bug? pxa-kbd.patch -# pxa-kbd TODO: -# test multi-key presses -# ask Harald about driver status/sending mainline - a780-kbd.patch e680-kbd.patch @@ -60,6 +58,7 @@ pcap-ts.patch a780-ts.patch e680-ts.patch a1200-ts.patch +e6-ts.patch ezx-backlight.patch @@ -83,6 +82,11 @@ mux-fix-tty-driver.patch mux-linux-2.6.21-fix.patch #mux-ifdef-ezx-features.patch #mux_debug.patch + +asoc-pxa-ssp.patch +asoc-fix-loopback.patch +ezx-asoc.patch + # mux_cli TODO: # merge patches # try to understand the code and cleanup (painful) @@ -92,6 +96,8 @@ mux-linux-2.6.21-fix.patch # can NOT run as module (yet) # pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp +# the folowing break too much stuff on other phones. +# i2c-core-fix-a1200.patch (see ezx-eoc.c) +# pxa27x-udc-fix-a1200.patch (see ezx-a1200.c) + # incomplete -asoc-pxa-ssp.patch -ezx-asoc.patch diff --git a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig index 6351d3a45b..7bafcf81f1 100755 --- a/packages/linux/linux-ezx-2.6.21/rokre6/defconfig +++ b/packages/linux/linux-ezx-2.6.21/rokre6/defconfig @@ -1003,7 +1003,7 @@ CONFIG_VIDEO_HELPER_CHIPS_AUTO=y CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_LCD_CLASS_DEVICE=m -CONFIG_BACKLIGHT_EZX=y +CONFIG_BACKLIGHT_EZX=N CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb index 3bdd13b19c..2170b04c97 100644 --- a/packages/linux/linux-ezx_2.6.21.bb +++ b/packages/linux/linux-ezx_2.6.21.bb @@ -2,15 +2,27 @@ DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and AUTHOR = "The OpenEZX Team <openezx-devel@lists.openezx.org>" HOMEPAGE = "http://www.openezx.org" EZX = "ezxdev" -PR = "${EZX}-r17" +PR = "${EZX}-r22" require linux.inc +RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" + SRC_URI = " \ ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://logo_linux_clut224.ppm \ \ file://patches/patch-2.6.21.4;patch=1 \ + ${RPSRC}/lzo_kernel-r0.patch;patch=1 \ + ${RPSRC}/lzo_jffs2-r0.patch;patch=1 \ + ${RPSRC}/lzo_crypto-r1.patch;patch=1 \ + ${RPSRC}/lzo_jffs2_lzomode-r0.patch;patch=1 \ + ${RPSRC}/lzo_jffs2_sysfs-r0.patch;patch=1 \ + ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ + ${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \ + ${RPSRC}/pxa-linking-bug.patch;patch=1;status=unmergable \ + ${RPSRC}/mmcsd_large_cards-r0.patch;patch=1;status=hack \ + ${RPSRC}/mmcsd_no_scr_check-r0.patch;patch=1;status=hack \ file://patches/ezx-core.patch;patch=1 \ file://patches/ezx-bp.patch;patch=1 \ file://patches/ezx-pm.patch;patch=1 \ @@ -25,6 +37,9 @@ SRC_URI = " \ file://patches/e6-mci.patch;patch=1 \ file://patches/pxa27x-udc-support.2.patch;patch=1 \ file://patches/ezx-emu.patch;patch=1 \ + file://patches/ezx-eoc.patch;patch=1 \ + file://patches/a1200-eoc.patch;patch=1 \ + file://patches/e6-eoc.patch;patch=1 \ file://patches/a780-emu.patch;patch=1 \ file://patches/e680-emu.patch;patch=1 \ file://patches/ezx-mtd-map.patch;patch=1 \ @@ -32,16 +47,15 @@ SRC_URI = " \ file://patches/pxa-kbd.patch;patch=1 \ file://patches/a780-kbd.patch;patch=1 \ file://patches/e680-kbd.patch;patch=1 \ + file://patches/a1200-kbd.patch;patch=1 \ file://patches/pcap-ts.patch;patch=1 \ file://patches/a780-ts.patch;patch=1 \ file://patches/e680-ts.patch;patch=1 \ file://patches/a1200-ts.patch;patch=1 \ file://patches/e6-ts.patch;patch=1 \ - file://patches/ezx-eoc.patch;patch=1 \ - file://patches/a1200-eoc.patch;patch=1 \ - file://patches/e6-eoc.patch;patch=1 \ file://patches/a780-flip.patch;patch=1 \ file://patches/e680-locksw.patch;patch=1 \ + file://patches/a1200-flip.patch;patch=1 \ file://patches/a780-leds.patch;patch=1 \ file://patches/e680-leds.patch;patch=1 \ file://patches/a780-vibrator.patch;patch=1 \ @@ -58,24 +72,19 @@ SRC_URI = " \ file://patches/asoc-fix-loopback.patch;patch=1 \ file://patches/ezx-asoc.patch;patch=1 \ file://patches/mtdfix.patch;patch=1 \ - file://patches/lcd_18BPP_support.diff;patch=1 \ + file://patches/ezx-backlight.patch;patch=1 \ + file://patches/pxa27x-udc-fix-a1200.patch;patch=1 \ file://defconfig \ \ " -BACKLIGHTPATCH = " file://patches/ezx-backlight.patch;patch=1 " -BACKLIGHTPATCH_rokre6 = "" - -SRC_URI += "${BACKLIGHTPATCH}" - S = "${WORKDIR}/linux-${PV}" ############################################################## # kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" +# But we can flash it from userspace (flash_unlock /dev/mtdX && flash_eraseall /dev/mtdX && flashcp /boot/zImage /dev/mtdX) +# so lets make a package of it. What about a postinst that flashes the new kernel? COMPATIBLE_HOST = "arm.*-linux" COMPATIBLE_MACHINE = '(a780|e680|a1200|rorkre2|rokre6)' @@ -84,7 +93,7 @@ COMPATIBLE_MACHINE = '(a780|e680|a1200|rorkre2|rokre6)' #CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 " CMDLINE_CON = "console=tty1 " -CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" +CMDLINE_ROOT = "root=/dev/mmcblk0p2 rootfstype=ext2 rootdelay=5" CMDLINE_NFSROOT = "root=/dev/nfs rootfstype=nfs nfsroot=192.168.0.200:/export/ezx-image rootdelay=5 " # Uncomment to enable dyntick #CMDLINE_OTHER = "dyntick=enable" 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" 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 \ 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) diff --git a/packages/mplayer/files/simple_idct_armv5te.S b/packages/mplayer/files/simple_idct_armv5te.S new file mode 100644 index 0000000000..3706f3a4ea --- /dev/null +++ b/packages/mplayer/files/simple_idct_armv5te.S @@ -0,0 +1,715 @@ +/* + * Simple IDCT + * + * Copyright (c) 2001 Michael Niedermayer <michaelni@gmx.at> + * Copyright (c) 2006 Mans Rullgard <mans@mansr.com> + * Copyright (c) 2007 Siarhei Siamashka <ssvb@users.sourceforge.net> + * + * 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 1024 + +/* + * 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..995ed763ff 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,52 +23,61 @@ 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" -PV = "0.0+1.0rc1+svn${SRCDATE}" -PR = "r1" +PV = "0.0+1.0rc1+svnr${SRCREV}" +PR = "r3" 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_a780 = " --enable-pxa " -EXTRA_OECONF_append_magician = " --enable-pxa " -EXTRA_OECONF_append_htcuniversal = " --enable-pxa " +EXTRA_OECONF_append_spitz = " --enable-pxa --enable-iwmmxt " +EXTRA_OECONF_append_akita = " --enable-pxa --enable-iwmmxt " +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" 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 () { 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" diff --git a/packages/networkmanager/networkmanager.inc b/packages/networkmanager/networkmanager.inc index e11a52391d..ce819d64ac 100644 --- a/packages/networkmanager/networkmanager.inc +++ b/packages/networkmanager/networkmanager.inc @@ -54,13 +54,7 @@ FILES_libnmutil += "${libdir}/libnm-util.so.*" FILES_libnmglib += "${libdir}/libnm_glib.so.*" FILES_${PN} += "${datadir} \ - ${sbindir}/* \ - ${bindir}/* \ - ${sysconfdir} \ ${libexecdir}" -FILES_${PN}-dev += "${incdir} \ - ${libdir}/*.a \ - ${libdir}/*.la \ - ${libdir}/pkgconfig" +FILES_${PN}-dev += " ${datadir}/NetworkManager/gdb-cmd " diff --git a/packages/openal/.mtn2git_empty b/packages/openal/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openal/.mtn2git_empty diff --git a/packages/openal/files/.mtn2git_empty b/packages/openal/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openal/files/.mtn2git_empty diff --git a/packages/openal/files/void-workaround.patch b/packages/openal/files/void-workaround.patch new file mode 100644 index 0000000000..c2698a95bb --- /dev/null +++ b/packages/openal/files/void-workaround.patch @@ -0,0 +1,13 @@ +Index: openal-0.0.8/common/include/AL/alc.h +=================================================================== +--- openal-0.0.8.orig/common/include/AL/alc.h 2007-09-22 19:40:47.000000000 +0200 ++++ openal-0.0.8/common/include/AL/alc.h 2007-09-22 19:41:04.000000000 +0200 +@@ -82,7 +82,7 @@ + typedef double ALCdouble; + + /** void type (for opaque pointers only) */ +-typedef void ALCvoid; ++#define ALCvoid void + + + /* Enumerant values begin at column 50. No tabs. */ diff --git a/packages/openal/openal_0.0.8.bb b/packages/openal/openal_0.0.8.bb new file mode 100644 index 0000000000..280c5d75e8 --- /dev/null +++ b/packages/openal/openal_0.0.8.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "OpenAL is a cross-platform 3D audio API." +DEPENDS = "alsa-lib virtual/libsdl libvorbis" + +SRC_URI = "http://www.openal.org/openal_webstf/downloads/${PN}-${PV}.tar.gz \ + file://void-workaround.patch" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--enable-alsa --enable-sdl --enable-vorbis --disable-mp3 \ + --disable-smpeg --disable-arts" + +do_configure_append () { + sed -i "s/@requirements@/alsa vorbis/" admin/pkgconfig/openal.pc +} + +do_stage () { + autotools_stage_all +} + +PACKAGES =+ "libopenal" + +FILES_libopenal += "${libdir}/libopenal.so.*" +FILES_openal-dev += "${bindir}/openal-config" +FILES_openal = "" 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 } - - - diff --git a/packages/openmoko2/moko-gtk-engine_svn.bb b/packages/openmoko2/moko-gtk-engine_svn.bb new file mode 100644 index 0000000000..38bc691c8e --- /dev/null +++ b/packages/openmoko2/moko-gtk-engine_svn.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" + diff --git a/packages/openmoko2/openmoko-session2.bb b/packages/openmoko2/openmoko-session2.bb index 235ca6ad97..b1f9dae38d 100644 --- a/packages/openmoko2/openmoko-session2.bb +++ b/packages/openmoko2/openmoko-session2.bb @@ -4,16 +4,17 @@ SECTION = "x11" RDEPENDS = "matchbox-common matchbox-applet-startup-monitor matchbox-panel-2" RDEPENDS += "openmoko-common2 openmoko-today2 openmoko-dialer2" RCONFLICTS = "openmoko-session" -PR = "r32" +PR = "r33" SRC_URI = "file://etc" S = ${WORKDIR} do_install() { - cp -R ${S}/etc ${D}/etc - rm -fR ${D}/etc/.svn - rm -fR ${D}/etc/matchbox/.svn - chmod -R 755 ${D}/etc + install -d ${D}${sysconfdir} + cp -R ${S}/etc/* ${D}${sysconfdir} + rm -fR ${D}${sysconfdir}/.svn + rm -fR ${D}${sysconfdir}/matchbox/.svn + chmod -R 755 ${D}${sysconfdir}/ } pkg_postinst_openmoko-session2 () { @@ -31,3 +32,6 @@ gconftool-2 --config-source=xml::$D${sysconfdir}/gconf/gconf.xml.defaults --dire } PACKAGE_ARCH = "all" + +CONFFILES_${PN} = "${sysconfdir}/matchbox/session" + diff --git a/packages/opie-taskbar/opie-taskbar-images.inc b/packages/opie-taskbar/opie-taskbar-images.inc index 769b5ff2c0..2eac502751 100644 --- a/packages/opie-taskbar/opie-taskbar-images.inc +++ b/packages/opie-taskbar/opie-taskbar-images.inc @@ -18,7 +18,7 @@ PIXMAP_SIZE_asus730 = "-480x640" PIXMAP_SIZE_htcuniversal= "-480x640" PIXMAP_SIZE_hx4700 = "-480x640" -PACKAGES = "${PN}-480x640 ${PN}-640x480 ${PN}-800x600 ${PN}-600x800 ${PN}-320x240 ${PN}-240x320 ${PN}-320x320" +PACKAGES = "${PN}-320x480 ${PN}-480x320 ${PN}-480x640 ${PN}-640x480 ${PN}-800x600 ${PN}-600x800 ${PN}-320x240 ${PN}-240x320 ${PN}-320x320" do_install() { install -d ${D}${palmtopdir}/pics/launcher @@ -31,7 +31,7 @@ do_install() { install -m 0644 ${WORKDIR}/pics/launcher/firstuse.jpg ${D}${palmtopdir}/pics/launcher/firstuse-320x240.jpg install -m 0644 ${WORKDIR}/pics/launcher/opie-background.jpg ${D}${palmtopdir}/pics/launcher/opie-background-320x240.jpg - for res in 480x640 640x480 800x600; do + for res in 320x480 480x320 480x640 640x480 800x600; do install -m 0644 ${WORKDIR}/pics/launcher/firstuse-${res}.jpg ${D}${palmtopdir}/pics/launcher/firstuse-${res}.jpg install -m 0644 ${WORKDIR}/pics/launcher/opie-background-${res}.jpg ${D}${palmtopdir}/pics/launcher/opie-background-${res}.jpg done @@ -41,7 +41,7 @@ do_install() { } python do_package_prepend () { - reslist = ['240x320','320x240', '320x320', '480x640','640x480', '800x600','600x800'] + reslist = ['240x320','320x240', '320x320', '320x480', '480x320', '480x640','640x480', '800x600','600x800'] dir = bb.data.expand('${palmtopdir}/pics/launcher/', d) ft = bb.data.expand('${palmtopdir}/pics/*/*-%s.*', d) pn = bb.data.getVar('PN', d, 1) diff --git a/packages/opie-taskbar/opie-taskbar-images_1.2.3+cvs20070922.bb b/packages/opie-taskbar/opie-taskbar-images_1.2.3+cvs20070922.bb new file mode 100644 index 0000000000..0905cd5fe3 --- /dev/null +++ b/packages/opie-taskbar/opie-taskbar-images_1.2.3+cvs20070922.bb @@ -0,0 +1,5 @@ +require ${PN}.inc +PR = "r0" +SRCDATE = "20070922" + +SRC_URI = "${HANDHELDS_CVS};module=opie/pics" diff --git a/packages/pimlico/tasks-0.12/.mtn2git_empty b/packages/pimlico/tasks-0.12/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pimlico/tasks-0.12/.mtn2git_empty diff --git a/packages/pimlico/tasks-0.12/tasks-owl.diff b/packages/pimlico/tasks-0.12/tasks-owl.diff new file mode 100644 index 0000000000..ce1ed9db7e --- /dev/null +++ b/packages/pimlico/tasks-0.12/tasks-owl.diff @@ -0,0 +1,62 @@ +Index: src/gtk/tasks-ui.xml +=================================================================== +--- src/gtk/tasks-ui.xml (revision 338) ++++ src/gtk/tasks-ui.xml (working copy) +@@ -7,17 +7,14 @@ + <menuitem action="EditTask"/> + <menuitem action="CompleteTask"/> + <separator/> ++ <menuitem action="Undo"/> ++ <menuitem action="Redo"/> ++ <separator/> + <menuitem action="DeleteTask"/> + <menuitem action="PurgeTasks"/> + <separator/> ++ <menuitem action="About"/> + <menuitem action="Quit"/> + </menu> +- <menu action="EditMenu"> +- <menuitem action="Undo"/> +- <menuitem action="Redo"/> +- </menu> +- <menu action="HelpMenu"> +- <menuitem action="About"/> +- </menu> + </menubar> + </ui> +Index: src/gtk/main.c +=================================================================== +--- src/gtk/main.c (revision 338) ++++ src/gtk/main.c (working copy) +@@ -21,6 +21,7 @@ + #include <libecal/e-cal.h> + #include <glib/gi18n.h> + #include <gtk/gtk.h> ++#include <owlwindowmenu.h> + + #include <libkoto/ical-util.h> + #include <libkoto/koto-actions.h> +@@ -564,8 +565,8 @@ + gtk_window_add_accel_group (GTK_WINDOW (window), gtk_ui_manager_get_accel_group (ui_manager)); + gtk_ui_manager_ensure_update (ui_manager); + +- menu = gtk_ui_manager_get_widget (ui_manager, "/MenuBar"); +- gtk_box_pack_start (GTK_BOX (top_box), menu, FALSE, FALSE, 0); ++ menu = gtk_ui_manager_get_widget (ui_manager, "/MenuBar/TasksMenu"); ++ owl_set_window_menu_item (GTK_WINDOW (window), GTK_MENU_ITEM (menu)); + + box = gtk_vbox_new (FALSE, 4); + gtk_container_set_border_width (GTK_CONTAINER (box), 4); +Index: src/gtk/Makefile.am +=================================================================== +--- src/gtk/Makefile.am (revision 338) ++++ src/gtk/Makefile.am (working copy) +@@ -4,7 +4,7 @@ + bin_PROGRAMS = tasks + tasks_CPPFLAGS = -I$(top_srcdir)/ + tasks_CFLAGS = $(WARN_CFLAGS) $(GTK_CFLAGS) $(ECAL_CFLAGS) $(SEXY_CFLAGS) +-tasks_LDADD = $(top_builddir)/libkoto/libkoto.a $(GTK_LIBS) $(ECAL_LIBS) $(SEXY_LIBS) ++tasks_LDADD = $(top_builddir)/libkoto/libkoto.a $(GTK_LIBS) $(ECAL_LIBS) $(SEXY_LIBS) -lowl + + tasks_SOURCES = \ + main.c \ diff --git a/packages/pimlico/tasks_svn.bb b/packages/pimlico/tasks_svn.bb index b3da6ebe20..5ad983ad97 100644 --- a/packages/pimlico/tasks_svn.bb +++ b/packages/pimlico/tasks_svn.bb @@ -2,7 +2,7 @@ require tasks.inc DEFAULT_PREFERENCE = "-1" -PV = "0.10+svnr${SRCREV}" +PV = "0.12+svnr${SRCREV}" S = "${WORKDIR}/trunk" SRC_URI = "svn://svn.o-hand.com/repos/${PN};module=trunk;proto=http \ diff --git a/packages/pointercal/files/nokia800/pointercal b/packages/pointercal/files/nokia800/pointercal.broken index da96ce5a88..da96ce5a88 100644 --- a/packages/pointercal/files/nokia800/pointercal +++ b/packages/pointercal/files/nokia800/pointercal.broken diff --git a/packages/pointercal/pointercal_0.0.bb b/packages/pointercal/pointercal_0.0.bb index a50281b682..4fa8c1cc0e 100644 --- a/packages/pointercal/pointercal_0.0.bb +++ b/packages/pointercal/pointercal_0.0.bb @@ -1,6 +1,6 @@ DESCRIPTION = "Touchscreen calibration data" SECTION = "base" -PR = "r3" +PR = "r4" SRC_URI = "file://pointercal" S = "${WORKDIR}" diff --git a/packages/ppp/ppp_2.4.3.bb b/packages/ppp/ppp_2.4.3.bb index 98a7251a7e..71c68c2fb8 100644 --- a/packages/ppp/ppp_2.4.3.bb +++ b/packages/ppp/ppp_2.4.3.bb @@ -3,7 +3,7 @@ DESCRIPTION = "Point-to-Point Protocol (PPP) daemon" HOMEPAGE = "http://samba.org/ppp/" DEPENDS = "libpcap" LICENSE = "BSD GPLv2" -PR = "r2" +PR = "r3" SRC_URI = "http://ppp.samba.org/ftp/ppp/ppp-${PV}.tar.gz \ file://makefile.patch;patch=1 \ @@ -28,6 +28,10 @@ inherit autotools EXTRA_OEMAKE = "STRIPPROG=${STRIP} MANDIR=${D}${datadir}/man/man8 INCDIR=${D}/usr/include LIBDIR=${D}/usr/lib/pppd/${PV} BINDIR=${D}/usr/sbin" EXTRA_OECONF = "--disable-strip" +do_stage () { + make INCDIR=${STAGING_INCDIR} install-devel +} + do_install_append () { make install-etcppp ETCDIR=${D}/${sysconfdir}/ppp mkdir -p ${D}${bindir}/ ${D}${sysconfdir}/init.d 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" |