summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorRobert Schuster <thebohemian@gmx.net>2008-07-21 11:38:32 +0000
committerRobert Schuster <thebohemian@gmx.net>2008-07-21 11:38:32 +0000
commitb56be2db834164a767740da4b63ee35c42164086 (patch)
tree611333460a7d42b461ae975d18b5609fd223b9f4 /packages
parent4f512b95406a1e0354cb64ce4e679c6ed1437b17 (diff)
parentbacf7fec4317a33c54f60e59032b4dc4f9e264d0 (diff)
merge of 'a153d288427652523d9cf6ef78faccfc723035d5'
and 'd910c68cbd1dafb9c6b77187abde5e456d8606e9'
Diffstat (limited to 'packages')
-rw-r--r--packages/alsa/alsa-lib/fix_libmath.patch17
-rw-r--r--packages/alsa/alsa-lib_1.0.15.bb14
-rw-r--r--packages/alsa/alsa-oss_1.0.15.bb5
-rw-r--r--packages/alsa/alsa-versym.inc21
-rw-r--r--packages/alsa/files/libio.patch43
-rw-r--r--packages/dfu-util/dfu-util-native_svn.bb5
-rw-r--r--packages/dfu-util/dfu-util_svn.bb2
-rw-r--r--packages/ffmpeg/ffmpeg_git.bb4
-rw-r--r--packages/ffmpeg/omapfbplay_git.bb4
-rw-r--r--packages/freesmartphone/frameworkd/a780/.mtn2git_empty0
-rw-r--r--packages/freesmartphone/frameworkd/a780/frameworkd.conf15
-rw-r--r--packages/freesmartphone/frameworkd/frameworkd.conf1
-rw-r--r--packages/freesmartphone/frameworkd/magician/.mtn2git_empty0
-rw-r--r--packages/freesmartphone/frameworkd/magician/frameworkd.conf17
-rw-r--r--packages/freesmartphone/frameworkd/om-gta01/frameworkd.conf5
-rw-r--r--packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf8
-rw-r--r--packages/freesmartphone/frameworkd_git.bb2
-rw-r--r--packages/iptables/iptables.inc (renamed from packages/iptables/iptables_1.3.3.bb)20
-rw-r--r--packages/iptables/iptables_1.2.11.bb29
-rw-r--r--packages/iptables/iptables_1.2.9.bb22
-rw-r--r--packages/iptables/iptables_1.3.8.bb36
-rw-r--r--packages/libftdi/files/autotools.patch895
-rw-r--r--packages/libftdi/libftdi-native_0.13.bb5
-rw-r--r--packages/libftdi/libftdi_0.13.bb20
-rw-r--r--packages/linux/linux-neuros_git.bb4
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch86
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch114
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch126
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch81
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch275
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch220
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch318
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch275
-rw-r--r--packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch299
-rw-r--r--packages/linux/linux-omap2_git.bb9
-rw-r--r--packages/linux/linux-openmoko-devel/defconfig-oe2
-rw-r--r--packages/linux/linux-openmoko-devel_git.bb2
-rw-r--r--packages/linux/linux_2.6.25.bb7
-rw-r--r--packages/opkg-utils/.mtn2git_empty0
-rw-r--r--packages/opkg-utils/opkg-utils-native_svn.bb10
-rw-r--r--packages/opkg-utils/opkg-utils_svn.bb18
-rw-r--r--packages/pulseaudio/pulseaudio-0.9.10/libiconv.patch22
-rw-r--r--packages/pulseaudio/pulseaudio_0.9.10.bb3
-rw-r--r--packages/python/python-2.5-manifest.inc20
-rw-r--r--packages/python/python_2.5.2.bb2
-rw-r--r--packages/speech-dispatcher/files/configure_fix.patch30
-rw-r--r--packages/speech-dispatcher/speech-dispatcher_0.6.6.bb2
-rw-r--r--packages/sysklogd/sysklogd-1.5/.mtn2git_empty0
-rw-r--r--packages/sysklogd/sysklogd-1.5/nonrootinstall.patch21
-rw-r--r--packages/sysklogd/sysklogd.inc17
-rw-r--r--packages/sysklogd/sysklogd_1.4.1.bb18
-rw-r--r--packages/sysklogd/sysklogd_1.5.bb1
-rw-r--r--packages/tree/tree_1.5.2.bb (renamed from packages/tree/tree_1.5.1.bb)0
-rw-r--r--packages/u-boot/u-boot-openmoko-devel_git.bb70
-rw-r--r--packages/u-boot/u-boot-openmoko.inc (renamed from packages/u-boot/u-boot-openmoko_svn.bb)26
-rw-r--r--packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb86
-rw-r--r--packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb77
57 files changed, 3033 insertions, 398 deletions
diff --git a/packages/alsa/alsa-lib/fix_libmath.patch b/packages/alsa/alsa-lib/fix_libmath.patch
new file mode 100644
index 0000000000..23309ce381
--- /dev/null
+++ b/packages/alsa/alsa-lib/fix_libmath.patch
@@ -0,0 +1,17 @@
+Index: alsa-lib-1.0.15/configure.in
+===================================================================
+--- alsa-lib-1.0.15.orig/configure.in 2007-10-15 10:45:26.000000000 +0200
++++ alsa-lib-1.0.15/configure.in 2008-07-19 15:51:34.177119589 +0200
+@@ -191,9 +191,9 @@
+ AC_MSG_RESULT(no)
+ fi
+
+-ALSA_DEPLIBS=""
+-if test "$softfloat" != "yes"; then
+- ALSA_DEPLIBS="-lm"
++ALSA_DEPLIBS="-lm"
++if test "$softfloat" = "yes"; then
++ AC_CHECK_LIB([m], [floor], , [ALSA_DEPLIBS=""])
+ fi
+
+ dnl Check for libdl
diff --git a/packages/alsa/alsa-lib_1.0.15.bb b/packages/alsa/alsa-lib_1.0.15.bb
index 60b44dbc8e..399352f299 100644
--- a/packages/alsa/alsa-lib_1.0.15.bb
+++ b/packages/alsa/alsa-lib_1.0.15.bb
@@ -2,6 +2,7 @@ DESCRIPTION = "Alsa sound library"
HOMEPAGE = "http://www.alsa-project.org"
SECTION = "libs/multimedia"
LICENSE = "GPL"
+PR = "1"
# configure.in sets -D__arm__ on the command line for any arm system
# (not just those with the ARM instruction set), this should be removed,
@@ -10,14 +11,23 @@ LICENSE = "GPL"
ARM_INSTRUCTION_SET = "arm"
SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
- file://fix-tstamp-declaration.patch;patch=1"
+ file://fix-tstamp-declaration.patch;patch=1 \
+ file://fix_libmath.patch;patch=1 \
+ "
inherit autotools pkgconfig
+
+EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python"
+
+
require alsa-fpu.inc
EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
-EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python"
+
+require alsa-versym.inc
+EXTRA_OECONF += "${@get_alsa_versym_setting(bb, d)} "
+
do_stage () {
oe_libinstall -so -C src libasound ${STAGING_LIBDIR}/
diff --git a/packages/alsa/alsa-oss_1.0.15.bb b/packages/alsa/alsa-oss_1.0.15.bb
index b11947e86a..3cfe886d61 100644
--- a/packages/alsa/alsa-oss_1.0.15.bb
+++ b/packages/alsa/alsa-oss_1.0.15.bb
@@ -2,8 +2,11 @@ DESCRIPTION = "Alsa OSS Compatibility Package"
SECTION = "libs/multimedia"
LICENSE = "GPL"
DEPENDS = "alsa-lib"
+PR = "1"
-SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2"
+SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
+ file://libio.patch;patch=1 \
+ "
inherit autotools
diff --git a/packages/alsa/alsa-versym.inc b/packages/alsa/alsa-versym.inc
new file mode 100644
index 0000000000..6d585ecf4a
--- /dev/null
+++ b/packages/alsa/alsa-versym.inc
@@ -0,0 +1,21 @@
+
+def get_alsa_versym_setting(bb, d):
+ # Versioned symbols don't work propery with uClibc
+ if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
+ return "--with-versioned=no"
+ return ""
+
+
+def get_alsa_versym_setting(bb, d):
+ # Versioned symbols don't work propery with uClibc
+ if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
+ return "--with-versioned=no"
+ return ""
+
+
+def get_alsa_versym_setting(bb, d):
+ # Versioned symbols don't work propery with uClibc
+ if bb.data.getVar('TARGET_OS', d, 1).find('uclibc') >= 0:
+ return "--with-versioned=no"
+ return ""
+
diff --git a/packages/alsa/files/libio.patch b/packages/alsa/files/libio.patch
new file mode 100644
index 0000000000..83345a98d3
--- /dev/null
+++ b/packages/alsa/files/libio.patch
@@ -0,0 +1,43 @@
+Index: alsa-oss-1.0.15/alsa/stdioemu.c
+===================================================================
+--- alsa-oss-1.0.15.orig/alsa/stdioemu.c 2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/alsa/stdioemu.c 2008-07-20 22:29:46.767474560 +0200
+@@ -37,7 +37,9 @@
+ #endif
+
+ #include <stdio.h>
++#ifdef HAVE_LIBIO_H
+ #include <libio.h>
++#endif
+
+ struct fd_cookie {
+ int fd;
+@@ -99,7 +101,11 @@
+
+ if (open_mode && fdc->fd > 0) {
+ result = fopencookie (fdc,"w", fns);
++#ifdef HAVE_FILENO
+ result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */
++else
++ result->_filedes = fdc->fd;
++#endif
+ }
+ return result;
+ }
+Index: alsa-oss-1.0.15/configure.in
+===================================================================
+--- alsa-oss-1.0.15.orig/configure.in 2007-10-15 10:50:40.000000000 +0200
++++ alsa-oss-1.0.15/configure.in 2008-07-20 22:49:45.455837502 +0200
+@@ -33,6 +33,12 @@
+ LIBS="$OLD_LIBS"
+ fi
+
++AC_CHECK_HEADERS_ONCE([libio.h])
++
++AC_CHECK_MEMBER([struct _IO_FILE._fileno],
++ [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])],
++ [],[])
++
+ AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \
+ oss-redir/Makefile test/Makefile \
+ alsa/testaoss test/testaoss)
diff --git a/packages/dfu-util/dfu-util-native_svn.bb b/packages/dfu-util/dfu-util-native_svn.bb
index 6304fad55b..ad0bece8fa 100644
--- a/packages/dfu-util/dfu-util-native_svn.bb
+++ b/packages/dfu-util/dfu-util-native_svn.bb
@@ -7,11 +7,16 @@ DEPENDS = "libusb-native usbpath-native"
do_stage() {
install -d ${STAGING_BINDIR_NATIVE}
install -m 0755 src/dfu-util ${STAGING_BINDIR_NATIVE}/dfu-util-${PV}
+ rm -f ${STAGING_BINDIR_NATIVE}/dfu-util
+ ln -sf ./dfu-util-${PV} ${STAGING_BINDIR_NATIVE}/dfu-util
}
do_deploy() {
install -d ${DEPLOY_DIR_TOOLS}
install -m 0755 src/dfu-util_static ${DEPLOY_DIR_TOOLS}/dfu-util-${PV}
+ rm -f ${DEPLOY_DIR_TOOLS}/dfu-util
+ ln -sf ./dfu-util-${PV} ${DEPLOY_DIR_TOOLS}/dfu-util
+
}
addtask deploy before do_package after do_install
diff --git a/packages/dfu-util/dfu-util_svn.bb b/packages/dfu-util/dfu-util_svn.bb
index 2e1afd55b1..5cb95cbac8 100644
--- a/packages/dfu-util/dfu-util_svn.bb
+++ b/packages/dfu-util/dfu-util_svn.bb
@@ -3,7 +3,7 @@ SECTION = "devel"
AUTHOR = "Harald Welte <laforge@openmoko.org>"
LICENSE = "GPL"
PV = "0.1+svnr${SRCREV}"
-PR = "r1"
+PR = "r2"
DEPENDS = "libusb usbpath"
diff --git a/packages/ffmpeg/ffmpeg_git.bb b/packages/ffmpeg/ffmpeg_git.bb
index 979da0362e..b0c57288a1 100644
--- a/packages/ffmpeg/ffmpeg_git.bb
+++ b/packages/ffmpeg/ffmpeg_git.bb
@@ -3,7 +3,7 @@ require ffmpeg.inc
DEPENDS += "libgsm"
PV = "0.4.9+${PR}+gitr${SRCREV}"
-PR = "r15"
+PR = "r16"
DEFAULT_PREFERENCE = "-1"
DEFAULT_PREFERENCE_armv7a = "1"
@@ -12,7 +12,7 @@ FFBRANCH_arm = "arm-neon"
FFBRANCH ?= "master"
SRCREV = "dee1c2d60a67dc6411ed3fcbe26db5113cb1a371"
-SRCREV_arm = "7137e7907e706300183c120703d4c9b46db93029"
+SRCREV_arm = "699f491ee2d3c3216ef16ea30ec3956f4cb583db"
SRC_URI = "git://git.mansr.com/ffmpeg.mru;protocol=git;branch=${FFBRANCH} \
"
diff --git a/packages/ffmpeg/omapfbplay_git.bb b/packages/ffmpeg/omapfbplay_git.bb
index 9494e57d33..dd89b8eae8 100644
--- a/packages/ffmpeg/omapfbplay_git.bb
+++ b/packages/ffmpeg/omapfbplay_git.bb
@@ -2,13 +2,13 @@ DESCRIPTION = "Simple ffmpeg-based player that uses the omapfb overlays"
DEPENDS = "bzip2 lame ffmpeg virtual/kernel"
LICENSE = "MIT"
-PR = "r5"
+PR = "r6"
inherit module-base
PV = "0.0+${PR}+gitr${SRCREV}"
-SRCREV = "5d0a1fd4c9733ef8c57823c368e21688344bbeb4"
+SRCREV = "0e4b69dbdc807da9b51e97fcffd8e26427b57162"
SRC_URI = "git://git.mansr.com/${PN};protocol=git \
file://fbplay-static.diff;patch=1 "
diff --git a/packages/freesmartphone/frameworkd/a780/.mtn2git_empty b/packages/freesmartphone/frameworkd/a780/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/freesmartphone/frameworkd/a780/.mtn2git_empty
diff --git a/packages/freesmartphone/frameworkd/a780/frameworkd.conf b/packages/freesmartphone/frameworkd/a780/frameworkd.conf
new file mode 100644
index 0000000000..4499acc47e
--- /dev/null
+++ b/packages/freesmartphone/frameworkd/a780/frameworkd.conf
@@ -0,0 +1,15 @@
+[idlenotifier]
+
+[input]
+# keys (copied from Openmoko, need to adjust)
+report1 = AUX,key,169,1
+report2 = POWER,key,116,1
+report3 = CHARGER,key,356,0
+report4 = HEADSET,switch,2,0
+
+[ogsmd]
+# A780 has Freescale Neptune LTE
+modemtype = freescale_neptune
+
+[opreferencesd]
+rootdir = ../etc/freesmartphone/opreferences:/etc/freesmartphone/opreferences:/usr/etc/freesmartphone/opreferences
diff --git a/packages/freesmartphone/frameworkd/frameworkd.conf b/packages/freesmartphone/frameworkd/frameworkd.conf
index 36b4f5fc8e..3d0bbc3c1c 100644
--- a/packages/freesmartphone/frameworkd/frameworkd.conf
+++ b/packages/freesmartphone/frameworkd/frameworkd.conf
@@ -14,6 +14,7 @@ ignoreinput = 2,3,4
disable = 0
[ogsmd]
+# specify your modemtype here
modemtype = ti_calypso
[opreferencesd]
diff --git a/packages/freesmartphone/frameworkd/magician/.mtn2git_empty b/packages/freesmartphone/frameworkd/magician/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/freesmartphone/frameworkd/magician/.mtn2git_empty
diff --git a/packages/freesmartphone/frameworkd/magician/frameworkd.conf b/packages/freesmartphone/frameworkd/magician/frameworkd.conf
new file mode 100644
index 0000000000..cbafb1925f
--- /dev/null
+++ b/packages/freesmartphone/frameworkd/magician/frameworkd.conf
@@ -0,0 +1,17 @@
+[idlenotifier]
+
+[input]
+# magician doesn't have AUX, use the CAMERA key for now
+# (it's in about the same place as AUX on gta01/02)
+report1 = AUX,key,212,1
+report2 = POWER,key,116,1
+# magician doesn't use KEY_POWER2 for the charger, need to fix
+report3 = CHARGER,key,356,0
+report4 = HEADSET,switch,2,0
+
+[ophoned]
+# Magician has TI Calypso
+modemtype = ti_calypso
+
+[opreferencesd]
+rootdir = ../etc/freesmartphone/opreferences:/etc/freesmartphone/opreferences:/usr/etc/freesmartphone/opreferences
diff --git a/packages/freesmartphone/frameworkd/om-gta01/frameworkd.conf b/packages/freesmartphone/frameworkd/om-gta01/frameworkd.conf
index 15c489156b..64c00a4a92 100644
--- a/packages/freesmartphone/frameworkd/om-gta01/frameworkd.conf
+++ b/packages/freesmartphone/frameworkd/om-gta01/frameworkd.conf
@@ -1,13 +1,14 @@
[idlenotifier]
[input]
+# Keys
report1 = AUX,key,169,1
report2 = POWER,key,116,1
report3 = CHARGER,key,356,0
report4 = HEADSET,switch,2,0
-[ophoned]
-# GTA02 has TI Calypso
+[ogsmd]
+# GTA01 has TI Calypso
modemtype = ti_calypso
[opreferencesd]
diff --git a/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf b/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
index cac51ce102..79c06edff2 100644
--- a/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
+++ b/packages/freesmartphone/frameworkd/om-gta02/frameworkd.conf
@@ -5,14 +5,20 @@ ignoreinput=2,3
[input]
# don't read from accellerometers for GTA02
ignoreinput=2,3
+# keys
report1 = AUX,key,169,1
report2 = POWER,key,116,1
report3 = CHARGER,key,356,0
report4 = HEADSET,switch,2,0
-[ophoned]
+[ogsmd]
# GTA02 has TI Calypso
modemtype = ti_calypso
+[ogpsd]
+device = GTA02Device
+channel = SerialChannel
+path = /dev/ttySAC1
+
[opreferencesd]
rootdir = ../etc/freesmartphone/opreferences:/etc/freesmartphone/opreferences:/usr/etc/freesmartphone/opreferences
diff --git a/packages/freesmartphone/frameworkd_git.bb b/packages/freesmartphone/frameworkd_git.bb
index 3a6d280f33..20c655e98d 100644
--- a/packages/freesmartphone/frameworkd_git.bb
+++ b/packages/freesmartphone/frameworkd_git.bb
@@ -5,7 +5,7 @@ SECTION = "console/network"
DEPENDS = "python-cython-native python-pyrex-native"
LICENSE = "GPL"
PV = "0.8.1+gitr${SRCREV}"
-PR = "r7"
+PR = "r9"
inherit distutils update-rc.d
diff --git a/packages/iptables/iptables_1.3.3.bb b/packages/iptables/iptables.inc
index 5f19d45317..0f4bacaf14 100644
--- a/packages/iptables/iptables_1.3.3.bb
+++ b/packages/iptables/iptables.inc
@@ -2,20 +2,11 @@ DESCRIPTION = "iptables network filtering tools"
HOMEPAGE = "http://www.netfilter.org/"
SECTION = "console/utils"
LICENSE = "GPL"
-RRECOMMENDS = "kernel-module-ip-tables kernel-module-iptable-filter"
-PR = "r4"
-
-
-
-PACKAGES =+ "${PN}-utils"
-FILES_${PN}-utils = "${sbindir}/iptables-save ${sbindir}/iptables-restore"
-
-SRC_URI = "http://www.netfilter.org/files/iptables-${PV}.tar.bz2 \
- file://compile.patch;patch=1"
+SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2"
S = "${WORKDIR}/iptables-${PV}"
-PARALLEL_MAKE=""
+PARALLEL_MAKE = ""
export COPT_FLAGS = "${CFLAGS}"
export KERNEL_DIR = "${STAGING_INCDIR}"
@@ -30,5 +21,12 @@ do_install () {
oe_runmake BINDIR=${D}${sbindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} install NO_SHARED_LIBS=1
}
+PACKAGES =+ "${PN}-utils"
+FILES_${PN}-utils = "${sbindir}/iptables-save ${sbindir}/iptables-restore"
FILES_${PN}-doc += "${mandir}"
+RRECOMMENDS = "\
+ kernel-module-ip-tables \
+ kernel-module-iptable-nat \
+ kernel-module-iptable-filter \
+"
diff --git a/packages/iptables/iptables_1.2.11.bb b/packages/iptables/iptables_1.2.11.bb
deleted file mode 100644
index 0d6d8ccadf..0000000000
--- a/packages/iptables/iptables_1.2.11.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "iptables network filtering tools"
-HOMEPAGE = "http://www.netfilter.org/"
-SECTION = "console/utils"
-LICENSE = "GPL"
-PR = "r1"
-
-PACKAGES =+ "${PN}-utils"
-FILES_${PN}-utils = "${bindir}/iptables-save ${bindir}/iptables-restore"
-
-SRC_URI = "http://www.netfilter.org/files/iptables-${PV}.tar.bz2"
-
-S = "${WORKDIR}/iptables-${PV}"
-
-PARALLEL_MAKE=""
-
-export COPT_FLAGS = "${CFLAGS}"
-export KERNEL_DIR = "${STAGING_INCDIR}"
-
-do_compile () {
- unset CFLAGS
- oe_runmake BINDIR=${D}${bindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} NO_SHARED_LIBS=1
-}
-
-do_install () {
- oe_runmake BINDIR=${D}${bindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} install NO_SHARED_LIBS=1
-}
-
-FILES_${PN}-doc += "${mandir}"
-
diff --git a/packages/iptables/iptables_1.2.9.bb b/packages/iptables/iptables_1.2.9.bb
deleted file mode 100644
index 213802d17f..0000000000
--- a/packages/iptables/iptables_1.2.9.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SECTION = "console/network"
-DESCRIPTION = "iptables network filtering tools"
-LICENSE = "GPL"
-PR = "r2"
-
-SRC_URI = "http://www.netfilter.org/files/iptables-${PV}.tar.bz2 \
- file://compile.patch;patch=1"
-
-S = "${WORKDIR}/iptables-${PV}"
-
-export COPT_FLAGS = "${CFLAGS}"
-export KERNEL_DIR = "${STAGING_INCDIR}"
-
-do_compile () {
- unset CFLAGS
- oe_runmake BINDIR=${D}${bindir} LIBDIR=${D}${libdir} MANDIR=${D}/usr/man NO_SHARED_LIBS=1
-}
-
-do_install () {
-# oe_runmake PREFIX=${prefix} DESTDIR=${D} install
- oe_runmake BINDIR=${D}${bindir} LIBDIR=${D}${libdir} MANDIR=${D}/usr/man install NO_SHARED_LIBS=1
-}
diff --git a/packages/iptables/iptables_1.3.8.bb b/packages/iptables/iptables_1.3.8.bb
index 8dfb6c7842..4475402df8 100644
--- a/packages/iptables/iptables_1.3.8.bb
+++ b/packages/iptables/iptables_1.3.8.bb
@@ -1,32 +1,8 @@
-DESCRIPTION = "iptables network filtering tools"
-HOMEPAGE = "http://www.netfilter.org/"
-SECTION = "console/utils"
-LICENSE = "GPL"
-RRECOMMENDS = "kernel-module-ip-tables kernel-module-iptable-filter"
-PR = "r2"
-SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \
- file://getsockopt-failed.patch;patch=1 \
- file://iptables-use-s6_addr32.patch;patch=1 \
- "
+require iptables.inc
+PR = "r3"
-S = "${WORKDIR}/iptables-${PV}"
-
-PARALLEL_MAKE=""
-
-export COPT_FLAGS = "${CFLAGS}"
-export KERNEL_DIR = "${STAGING_INCDIR}"
-
-do_compile () {
- unset CFLAGS
- oe_runmake BINDIR=${D}${sbindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} NO_SHARED_LIBS=1
-}
-
-do_install () {
- unset CFLAGS
- oe_runmake BINDIR=${D}${sbindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} install NO_SHARED_LIBS=1
-}
-
-PACKAGES =+ "${PN}-utils"
-FILES_${PN}-utils = "${sbindir}/iptables-save ${sbindir}/iptables-restore"
-FILES_${PN}-doc += "${mandir}"
+SRC_URI += "\
+ file://getsockopt-failed.patch;patch=1 \
+ file://iptables-use-s6_addr32.patch;patch=1 \
+"
diff --git a/packages/libftdi/files/autotools.patch b/packages/libftdi/files/autotools.patch
new file mode 100644
index 0000000000..ab0bb02a85
--- /dev/null
+++ b/packages/libftdi/files/autotools.patch
@@ -0,0 +1,895 @@
+Index: libftdi-0.13/configure.ac
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libftdi-0.13/configure.ac 2008-07-18 14:35:52.710117546 +0200
+@@ -0,0 +1,53 @@
++# -*- Autoconf -*-
++# Process this file with autoconf to produce a configure script.
++
++AC_PREREQ(2.61)
++AC_INIT([libftdi], [0.13])
++AM_INIT_AUTOMAKE
++AC_CONFIG_SRCDIR([config.h.in])
++AC_CONFIG_HEADER([config.h])
++
++AC_CONFIG_MACRO_DIR([m4])
++
++# Checks for programs.
++AC_PROG_CC
++AC_PROG_CPP
++AC_PROG_INSTALL
++AC_PROG_LN_S
++AC_PROG_MAKE_SET
++AC_PROG_RANLIB
++AM_PROG_LIBTOOL
++AC_LIB_RPATH
++AC_LIB_LINKFLAGS_FROM_LIBS
++
++# Checks for libraries.
++PKG_PROG_PKG_CONFIG
++PKG_CHECK_MODULES([LIBUSB],[libusb >= 0.1.7],,[AC_MSG_ERROR(libusb library not found.)])
++
++# Checks for header files.
++AC_HEADER_STDC
++AC_CHECK_HEADERS([stdlib.h string.h sys/ioctl.h sys/time.h unistd.h])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++AC_HEADER_TIME
++
++# Checks for library functions.
++AC_PROG_GCC_TRADITIONAL
++AC_FUNC_MALLOC
++AC_FUNC_MEMCMP
++AC_FUNC_REALLOC
++AC_FUNC_SELECT_ARGTYPES
++AC_CHECK_FUNCS([memmove memset select strtol])
++
++AC_CHECK_ENABLE_ASYNC_MODE
++AC_CHECK_ENABLE_DOCS
++
++AC_CONFIG_FILES([Makefile
++ libftdi-config
++ libftdi.pc
++ libftdi.spec
++ doc/Makefile
++ src/Makefile])
++AC_CONFIG_COMMANDS([default],[[chmod a+x libftdi-config]],[[]])
++AC_OUTPUT
+Index: libftdi-0.13/configure.in
+===================================================================
+--- libftdi-0.13.orig/configure.in 2008-06-13 10:28:54.000000000 +0200
++++ /dev/null 1970-01-01 00:00:00.000000000 +0000
+@@ -1,55 +0,0 @@
+-AC_INIT(configure.in)
+-
+-AM_CONFIG_HEADER(config.h)
+-AM_INIT_AUTOMAKE(libftdi, 0.13)
+-
+-AC_LANG_C
+-AC_PROG_CC
+-AM_PROG_LIBTOOL
+-
+-dnl check for libusb-config
+-AC_PATH_PROG(HAVELIBUSB, libusb-config, $PATH)
+-
+-if test ! -z "$HAVELIBUSB"; then
+- LIBUSB_CFLAGS=`$HAVELIBUSB --cflags`
+- LIBUSB_LIBS=`$HAVELIBUSB --libs`
+-
+- CFLAGS="$CFLAGS $LIBUSB_CFLAGS"
+- LIBS="$LIBS $LIBUSB_LIBS"
+-else
+- AC_MSG_ERROR([*** libusb-config not found. You need a working libusb installation.])
+-fi
+-
+-dnl check for version of libusb
+-AC_MSG_CHECKING([if libusb version is >= 0.1.7])
+-libusb_version_needed="1007"
+-libusb_version=`$HAVELIBUSB --version | sed -e "s/libusb //" | awk 'BEGIN { FS = "."; } { printf "%d", ($''1 * 1000 + $''2) * 1000 + $''3;}'`
+-
+-if test $libusb_version -lt $libusb_version_needed; then
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR([*** libusb is too old ($libusb_version). You need a libusb installation newer or equal to 0.1.7.])
+-else
+- AC_MSG_RESULT(yes)
+-fi
+-
+-ENABLE_ASYNC_MODE=0
+-AC_ARG_WITH(async-mode,
+-[ --with-async-mode enable experimental async mode. Linux only.],
+-[
+- AC_MSG_CHECKING(for experimental linux async mode)
+- if test "$withval" != "no"; then
+- ENABLE_ASYNC_MODE=1
+- CFLAGS="$CFLAGS -DLIBFTDI_LINUX_ASYNC_MODE"
+- AC_MSG_RESULT(yes)
+- else
+- AC_MSG_RESULT(no)
+- fi
+-])
+-AC_SUBST(ENABLE_ASYNC_MODE)
+-
+-dnl check for doxygen
+-AC_PATH_PROG(DOXYGEN, doxygen)
+-AM_CONDITIONAL(HAVE_DOXYGEN, test -n $DOXYGEN)
+-
+-AC_OUTPUT([libftdi-config],[chmod a+x libftdi-config])
+-AC_OUTPUT(Makefile src/Makefile examples/Makefile doc/Doxyfile doc/Makefile libftdi.pc libftdi.spec)
+Index: libftdi-0.13/m4/async.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libftdi-0.13/m4/async.m4 2008-07-18 14:35:52.710117546 +0200
+@@ -0,0 +1,17 @@
++AC_DEFUN([AC_CHECK_ENABLE_ASYNC_MODE],[
++AC_MSG_CHECKING([whether to compile with async-mode])
++ENABLE_ASYNC_MODE=0
++AC_ARG_WITH(async-mode,
++[ --with-async-mode enable experimental async mode. Linux only.],
++[
++ AC_MSG_CHECKING(for experimental linux async mode)
++ if test "$withval" != "no"; then
++ ENABLE_ASYNC_MODE=1
++ CFLAGS="$CFLAGS -DLIBFTDI_LINUX_ASYNC_MODE"
++ AC_MSG_RESULT(yes)
++ else
++ AC_MSG_RESULT(no)
++ fi
++])
++AC_SUBST(ENABLE_ASYNC_MODE)
++])
+Index: libftdi-0.13/m4/doxygen.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libftdi-0.13/m4/doxygen.m4 2008-07-18 14:35:52.710117546 +0200
+@@ -0,0 +1,11 @@
++AC_DEFUN([AC_CHECK_ENABLE_DOCS],[
++AC_MSG_CHECKING([whether to compile the docs])
++AC_ARG_ENABLE([docs],
++[ --enable-docs Turn on debugging],
++[case "${enableval}" in
++ yes) AC_PATH_PROG(DOXYGEN, doxygen);;
++ no) ;;
++ *) AC_MSG_ERROR([bad value ${enableval} for --enable-docs]) ;;
++esac],[DOXYGEN=""])
++AM_CONDITIONAL([HAVE_DOXYGEN], [test -n $DOXYGENx])
++])
+Index: libftdi-0.13/Makefile.am
+===================================================================
+--- libftdi-0.13.orig/Makefile.am 2008-06-13 10:28:54.000000000 +0200
++++ libftdi-0.13/Makefile.am 2008-07-18 14:36:25.160089170 +0200
+@@ -2,7 +2,9 @@
+ # have all needed files, that a GNU package needs
+ AUTOMAKE_OPTIONS = foreign 1.4
+
+-SUBDIRS = src examples doc
++ACLOCAL_AMFLAGS = -I m4
++
++SUBDIRS = src doc
+
+ EXTRA_DIST = libftdi.spec libftdi.spec.in COPYING.LIB README AUTHORS ChangeLog libftdi-config.in
+
+Index: libftdi-0.13/m4/lib-link.m4
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libftdi-0.13/m4/lib-link.m4 2008-07-18 14:35:52.713438346 +0200
+@@ -0,0 +1,709 @@
++# lib-link.m4 serial 13 (gettext-0.17)
++dnl Copyright (C) 2001-2007 Free Software Foundation, Inc.
++dnl This file is free software; the Free Software Foundation
++dnl gives unlimited permission to copy and/or distribute it,
++dnl with or without modifications, as long as this notice is preserved.
++
++dnl From Bruno Haible.
++
++AC_PREREQ(2.54)
++
++dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
++dnl augments the CPPFLAGS variable.
++dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
++dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
++AC_DEFUN([AC_LIB_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
++ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
++ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
++ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
++ ])
++ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
++ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
++ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
++ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ AC_SUBST([LIB]NAME[_PREFIX])
++ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
++ dnl results of this search when this library appears as a dependency.
++ HAVE_LIB[]NAME=yes
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
++dnl searches for libname and the libraries corresponding to explicit and
++dnl implicit dependencies, together with the specified include files and
++dnl the ability to compile and link the specified testcode. If found, it
++dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
++dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
++dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
++dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
++dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
++dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
++AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
++ AC_REQUIRE([AC_LIB_RPATH])
++ define([Name],[translit([$1],[./-], [___])])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++
++ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
++ dnl accordingly.
++ AC_LIB_LINKFLAGS_BODY([$1], [$2])
++
++ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
++ dnl because if the user has installed lib[]Name and not disabled its use
++ dnl via --without-lib[]Name-prefix, he wants to use it.
++ ac_save_CPPFLAGS="$CPPFLAGS"
++ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
++
++ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
++ ac_save_LIBS="$LIBS"
++ LIBS="$LIBS $LIB[]NAME"
++ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
++ LIBS="$ac_save_LIBS"
++ ])
++ if test "$ac_cv_lib[]Name" = yes; then
++ HAVE_LIB[]NAME=yes
++ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
++ AC_MSG_CHECKING([how to link with lib[]$1])
++ AC_MSG_RESULT([$LIB[]NAME])
++ else
++ HAVE_LIB[]NAME=no
++ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
++ dnl $INC[]NAME either.
++ CPPFLAGS="$ac_save_CPPFLAGS"
++ LIB[]NAME=
++ LTLIB[]NAME=
++ LIB[]NAME[]_PREFIX=
++ fi
++ AC_SUBST([HAVE_LIB]NAME)
++ AC_SUBST([LIB]NAME)
++ AC_SUBST([LTLIB]NAME)
++ AC_SUBST([LIB]NAME[_PREFIX])
++ undefine([Name])
++ undefine([NAME])
++])
++
++dnl Determine the platform dependent parameters needed to use rpath:
++dnl acl_libext,
++dnl acl_shlibext,
++dnl acl_hardcode_libdir_flag_spec,
++dnl acl_hardcode_libdir_separator,
++dnl acl_hardcode_direct,
++dnl acl_hardcode_minus_L.
++AC_DEFUN([AC_LIB_RPATH],
++[
++ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
++ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
++ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
++ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
++ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
++ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
++ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
++ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
++ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
++ . ./conftest.sh
++ rm -f ./conftest.sh
++ acl_cv_rpath=done
++ ])
++ wl="$acl_cv_wl"
++ acl_libext="$acl_cv_libext"
++ acl_shlibext="$acl_cv_shlibext"
++ acl_libname_spec="$acl_cv_libname_spec"
++ acl_library_names_spec="$acl_cv_library_names_spec"
++ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
++ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
++ acl_hardcode_direct="$acl_cv_hardcode_direct"
++ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
++ dnl Determine whether the user wants rpath handling at all.
++ AC_ARG_ENABLE(rpath,
++ [ --disable-rpath do not hardcode runtime library paths],
++ :, enable_rpath=yes)
++])
++
++dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
++dnl the libraries corresponding to explicit and implicit dependencies.
++dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
++dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
++dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
++AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
++[
++ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
++ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
++ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
++ dnl Autoconf >= 2.61 supports dots in --with options.
++ define([N_A_M_E],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit([$1],[.],[_])],[$1])])
++ dnl By default, look in $includedir and $libdir.
++ use_additional=yes
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ AC_LIB_ARG_WITH([lib]N_A_M_E[-prefix],
++[ --with-lib]N_A_M_E[-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
++ --without-lib]N_A_M_E[-prefix don't search for lib$1 in includedir and libdir],
++[
++ if test "X$withval" = "Xno"; then
++ use_additional=no
++ else
++ if test "X$withval" = "X"; then
++ AC_LIB_WITH_FINAL_PREFIX([
++ eval additional_includedir=\"$includedir\"
++ eval additional_libdir=\"$libdir\"
++ ])
++ else
++ additional_includedir="$withval/include"
++ additional_libdir="$withval/$acl_libdirstem"
++ fi
++ fi
++])
++ dnl Search the library and its dependencies in $additional_libdir and
++ dnl $LDFLAGS. Using breadth-first-seach.
++ LIB[]NAME=
++ LTLIB[]NAME=
++ INC[]NAME=
++ LIB[]NAME[]_PREFIX=
++ rpathdirs=
++ ltrpathdirs=
++ names_already_handled=
++ names_next_round='$1 $2'
++ while test -n "$names_next_round"; do
++ names_this_round="$names_next_round"
++ names_next_round=
++ for name in $names_this_round; do
++ already_handled=
++ for n in $names_already_handled; do
++ if test "$n" = "$name"; then
++ already_handled=yes
++ break
++ fi
++ done
++ if test -z "$already_handled"; then
++ names_already_handled="$names_already_handled $name"
++ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
++ dnl or AC_LIB_HAVE_LINKFLAGS call.
++ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
++ eval value=\"\$HAVE_LIB$uppername\"
++ if test -n "$value"; then
++ if test "$value" = yes; then
++ eval value=\"\$LIB$uppername\"
++ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
++ eval value=\"\$LTLIB$uppername\"
++ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
++ else
++ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
++ dnl that this library doesn't exist. So just drop it.
++ :
++ fi
++ else
++ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
++ dnl and the already constructed $LIBNAME/$LTLIBNAME.
++ found_dir=
++ found_la=
++ found_so=
++ found_a=
++ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
++ if test -n "$acl_shlibext"; then
++ shrext=".$acl_shlibext" # typically: shrext=.so
++ else
++ shrext=
++ fi
++ if test $use_additional = yes; then
++ dir="$additional_libdir"
++ dnl The same code as in the loop below:
++ dnl First look for a shared library.
++ if test -n "$acl_shlibext"; then
++ if test -f "$dir/$libname$shrext"; then
++ found_dir="$dir"
++ found_so="$dir/$libname$shrext"
++ else
++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
++ ver=`(cd "$dir" && \
++ for f in "$libname$shrext".*; do echo "$f"; done \
++ | sed -e "s,^$libname$shrext\\\\.,," \
++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
++ | sed 1q ) 2>/dev/null`
++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
++ found_dir="$dir"
++ found_so="$dir/$libname$shrext.$ver"
++ fi
++ else
++ eval library_names=\"$acl_library_names_spec\"
++ for f in $library_names; do
++ if test -f "$dir/$f"; then
++ found_dir="$dir"
++ found_so="$dir/$f"
++ break
++ fi
++ done
++ fi
++ fi
++ fi
++ dnl Then look for a static library.
++ if test "X$found_dir" = "X"; then
++ if test -f "$dir/$libname.$acl_libext"; then
++ found_dir="$dir"
++ found_a="$dir/$libname.$acl_libext"
++ fi
++ fi
++ if test "X$found_dir" != "X"; then
++ if test -f "$dir/$libname.la"; then
++ found_la="$dir/$libname.la"
++ fi
++ fi
++ fi
++ if test "X$found_dir" = "X"; then
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ case "$x" in
++ -L*)
++ dir=`echo "X$x" | sed -e 's/^X-L//'`
++ dnl First look for a shared library.
++ if test -n "$acl_shlibext"; then
++ if test -f "$dir/$libname$shrext"; then
++ found_dir="$dir"
++ found_so="$dir/$libname$shrext"
++ else
++ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
++ ver=`(cd "$dir" && \
++ for f in "$libname$shrext".*; do echo "$f"; done \
++ | sed -e "s,^$libname$shrext\\\\.,," \
++ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
++ | sed 1q ) 2>/dev/null`
++ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
++ found_dir="$dir"
++ found_so="$dir/$libname$shrext.$ver"
++ fi
++ else
++ eval library_names=\"$acl_library_names_spec\"
++ for f in $library_names; do
++ if test -f "$dir/$f"; then
++ found_dir="$dir"
++ found_so="$dir/$f"
++ break
++ fi
++ done
++ fi
++ fi
++ fi
++ dnl Then look for a static library.
++ if test "X$found_dir" = "X"; then
++ if test -f "$dir/$libname.$acl_libext"; then
++ found_dir="$dir"
++ found_a="$dir/$libname.$acl_libext"
++ fi
++ fi
++ if test "X$found_dir" != "X"; then
++ if test -f "$dir/$libname.la"; then
++ found_la="$dir/$libname.la"
++ fi
++ fi
++ ;;
++ esac
++ if test "X$found_dir" != "X"; then
++ break
++ fi
++ done
++ fi
++ if test "X$found_dir" != "X"; then
++ dnl Found the library.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
++ if test "X$found_so" != "X"; then
++ dnl Linking with a shared library. We attempt to hardcode its
++ dnl directory into the executable's runpath, unless it's the
++ dnl standard /usr/lib.
++ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then
++ dnl No hardcoding is needed.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $found_dir"
++ fi
++ dnl The hardcoding into $LIBNAME is system dependent.
++ if test "$acl_hardcode_direct" = yes; then
++ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
++ dnl resulting binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
++ dnl Use an explicit option to hardcode DIR into the resulting
++ dnl binary.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $found_dir"
++ fi
++ else
++ dnl Rely on "-L$found_dir".
++ dnl But don't add it if it's already contained in the LDFLAGS
++ dnl or the already constructed $LIBNAME
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$found_dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
++ fi
++ if test "$acl_hardcode_minus_L" != no; then
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
++ else
++ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
++ dnl here, because this doesn't fit in flags passed to the
++ dnl compiler. So give up. No hardcoding. This affects only
++ dnl very old systems.
++ dnl FIXME: Not sure whether we should use
++ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
++ dnl here.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ fi
++ else
++ if test "X$found_a" != "X"; then
++ dnl Linking with a static library.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
++ else
++ dnl We shouldn't come here, but anyway it's good to have a
++ dnl fallback.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
++ fi
++ fi
++ dnl Assume the include files are nearby.
++ additional_includedir=
++ case "$found_dir" in
++ */$acl_libdirstem | */$acl_libdirstem/)
++ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
++ LIB[]NAME[]_PREFIX="$basedir"
++ additional_includedir="$basedir/include"
++ ;;
++ esac
++ if test "X$additional_includedir" != "X"; then
++ dnl Potentially add $additional_includedir to $INCNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/include,
++ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
++ dnl 3. if it's already present in $CPPFLAGS or the already
++ dnl constructed $INCNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_includedir" != "X/usr/include"; then
++ haveit=
++ if test "X$additional_includedir" = "X/usr/local/include"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ for x in $CPPFLAGS $INC[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-I$additional_includedir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_includedir"; then
++ dnl Really add $additional_includedir to $INCNAME.
++ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
++ fi
++ fi
++ fi
++ fi
++ fi
++ dnl Look for dependencies.
++ if test -n "$found_la"; then
++ dnl Read the .la file. It defines the variables
++ dnl dlname, library_names, old_library, dependency_libs, current,
++ dnl age, revision, installed, dlopen, dlpreopen, libdir.
++ save_libdir="$libdir"
++ case "$found_la" in
++ */* | *\\*) . "$found_la" ;;
++ *) . "./$found_la" ;;
++ esac
++ libdir="$save_libdir"
++ dnl We use only dependency_libs.
++ for dep in $dependency_libs; do
++ case "$dep" in
++ -L*)
++ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
++ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
++ dnl But don't add it
++ dnl 1. if it's the standard /usr/lib,
++ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
++ dnl 3. if it's already present in $LDFLAGS or the already
++ dnl constructed $LIBNAME,
++ dnl 4. if it doesn't exist as a directory.
++ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
++ haveit=
++ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
++ if test -n "$GCC"; then
++ case $host_os in
++ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
++ esac
++ fi
++ fi
++ if test -z "$haveit"; then
++ haveit=
++ for x in $LDFLAGS $LIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LIBNAME.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ haveit=
++ for x in $LDFLAGS $LTLIB[]NAME; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X-L$additional_libdir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ if test -d "$additional_libdir"; then
++ dnl Really add $additional_libdir to $LTLIBNAME.
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
++ fi
++ fi
++ fi
++ fi
++ ;;
++ -R*)
++ dir=`echo "X$dep" | sed -e 's/^X-R//'`
++ if test "$enable_rpath" != no; then
++ dnl Potentially add DIR to rpathdirs.
++ dnl The rpathdirs will be appended to $LIBNAME at the end.
++ haveit=
++ for x in $rpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ rpathdirs="$rpathdirs $dir"
++ fi
++ dnl Potentially add DIR to ltrpathdirs.
++ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
++ haveit=
++ for x in $ltrpathdirs; do
++ if test "X$x" = "X$dir"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ ltrpathdirs="$ltrpathdirs $dir"
++ fi
++ fi
++ ;;
++ -l*)
++ dnl Handle this in the next round.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
++ ;;
++ *.la)
++ dnl Handle this in the next round. Throw away the .la's
++ dnl directory; it is already contained in a preceding -L
++ dnl option.
++ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
++ ;;
++ *)
++ dnl Most likely an immediate library name.
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
++ ;;
++ esac
++ done
++ fi
++ else
++ dnl Didn't find the library; assume it is in the system directories
++ dnl known to the linker and runtime loader. (All the system
++ dnl directories known to the linker should also be known to the
++ dnl runtime loader, otherwise the system is severely misconfigured.)
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
++ fi
++ fi
++ fi
++ done
++ done
++ if test "X$rpathdirs" != "X"; then
++ if test -n "$acl_hardcode_libdir_separator"; then
++ dnl Weird platform: only the last -rpath option counts, the user must
++ dnl pass all path elements in one option. We can arrange that for a
++ dnl single library, but not when more than one $LIBNAMEs are used.
++ alldirs=
++ for found_dir in $rpathdirs; do
++ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
++ done
++ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
++ acl_save_libdir="$libdir"
++ libdir="$alldirs"
++ eval flag=\"$acl_hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ else
++ dnl The -rpath options are cumulative.
++ for found_dir in $rpathdirs; do
++ acl_save_libdir="$libdir"
++ libdir="$found_dir"
++ eval flag=\"$acl_hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
++ done
++ fi
++ fi
++ if test "X$ltrpathdirs" != "X"; then
++ dnl When using libtool, the option that works for both libraries and
++ dnl executables is -R. The -R options are cumulative.
++ for found_dir in $ltrpathdirs; do
++ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
++ done
++ fi
++])
++
++dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
++dnl unless already present in VAR.
++dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
++dnl contains two or three consecutive elements that belong together.
++AC_DEFUN([AC_LIB_APPENDTOVAR],
++[
++ for element in [$2]; do
++ haveit=
++ for x in $[$1]; do
++ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
++ if test "X$x" = "X$element"; then
++ haveit=yes
++ break
++ fi
++ done
++ if test -z "$haveit"; then
++ [$1]="${[$1]}${[$1]:+ }$element"
++ fi
++ done
++])
++
++dnl For those cases where a variable contains several -L and -l options
++dnl referring to unknown libraries and directories, this macro determines the
++dnl necessary additional linker options for the runtime path.
++dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
++dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
++dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
++dnl otherwise linking without libtool is assumed.
++AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
++[
++ AC_REQUIRE([AC_LIB_RPATH])
++ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
++ $1=
++ if test "$enable_rpath" != no; then
++ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
++ dnl Use an explicit option to hardcode directories into the resulting
++ dnl binary.
++ rpathdirs=
++ next=
++ for opt in $2; do
++ if test -n "$next"; then
++ dir="$next"
++ dnl No need to hardcode the standard /usr/lib.
++ if test "X$dir" != "X/usr/$acl_libdirstem"; then
++ rpathdirs="$rpathdirs $dir"
++ fi
++ next=
++ else
++ case $opt in
++ -L) next=yes ;;
++ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
++ dnl No need to hardcode the standard /usr/lib.
++ if test "X$dir" != "X/usr/$acl_libdirstem"; then
++ rpathdirs="$rpathdirs $dir"
++ fi
++ next= ;;
++ *) next= ;;
++ esac
++ fi
++ done
++ if test "X$rpathdirs" != "X"; then
++ if test -n ""$3""; then
++ dnl libtool is used for linking. Use -R options.
++ for dir in $rpathdirs; do
++ $1="${$1}${$1:+ }-R$dir"
++ done
++ else
++ dnl The linker is used for linking directly.
++ if test -n "$acl_hardcode_libdir_separator"; then
++ dnl Weird platform: only the last -rpath option counts, the user
++ dnl must pass all path elements in one option.
++ alldirs=
++ for dir in $rpathdirs; do
++ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
++ done
++ acl_save_libdir="$libdir"
++ libdir="$alldirs"
++ eval flag=\"$acl_hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ $1="$flag"
++ else
++ dnl The -rpath options are cumulative.
++ for dir in $rpathdirs; do
++ acl_save_libdir="$libdir"
++ libdir="$dir"
++ eval flag=\"$acl_hardcode_libdir_flag_spec\"
++ libdir="$acl_save_libdir"
++ $1="${$1}${$1:+ }$flag"
++ done
++ fi
++ fi
++ fi
++ fi
++ fi
++ AC_SUBST([$1])
++])
+Index: libftdi-0.13/src/Makefile.am
+===================================================================
+--- libftdi-0.13.orig/src/Makefile.am 2008-06-13 10:28:53.000000000 +0200
++++ libftdi-0.13/src/Makefile.am 2008-07-18 14:35:52.713438346 +0200
+@@ -10,4 +10,4 @@
+ # Note: If you specify a:b:c as the version in the next line,
+ # the library that is made has version (a-c).c.b. In this
+ # example, the version is 2.1.2. (3:2:1)
+-libftdi_la_LDFLAGS = -version-info 14:0:13 $(all_libraries)
++libftdi_la_LDFLAGS = -version-info 14:0:13 $(all_libraries) @LIBUSB_LIBS@
diff --git a/packages/libftdi/libftdi-native_0.13.bb b/packages/libftdi/libftdi-native_0.13.bb
new file mode 100644
index 0000000000..24f82778e5
--- /dev/null
+++ b/packages/libftdi/libftdi-native_0.13.bb
@@ -0,0 +1,5 @@
+require libftdi_${PV}.bb
+
+inherit native
+
+DEPENDS = "libusb-native"
diff --git a/packages/libftdi/libftdi_0.13.bb b/packages/libftdi/libftdi_0.13.bb
new file mode 100644
index 0000000000..3e787ca512
--- /dev/null
+++ b/packages/libftdi/libftdi_0.13.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "libftdi is a library to talk to FTDI chips.\
+FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
+including the popular bitbang mode."
+HOMEPAGE = "http://www.intra2net.com/de/produkte/opensource/ftdi/"
+LICENSE = "LGPL"
+SECTION = "libs"
+
+DEPENDS = "libusb"
+
+SRC_URI = "http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/libftdi-${PV}.tar.gz \
+ file://autotools.patch;patch=1 \
+ "
+
+inherit autotools binconfig pkgconfig
+
+EXTRA_OECONF += "--disable-rpath"
+
+do_stage() {
+ autotools_stage_all
+}
diff --git a/packages/linux/linux-neuros_git.bb b/packages/linux/linux-neuros_git.bb
index 1a5bd607fa..2fe367cd49 100644
--- a/packages/linux/linux-neuros_git.bb
+++ b/packages/linux/linux-neuros_git.bb
@@ -2,10 +2,10 @@ require linux.inc
DESCRIPTION = "Linux kernel for Neuros OSD devices"
-SRCREV = "a4701816600fbfc6d3144fa169a27a57d05d2682"
+SRCREV = "e014243410af1c7c214e6974f5fc2f23c0a1c1ee"
PV = "2.6.23-${PR}+git${SRCREV}"
-PR = "r6"
+PR = "r7"
COMPATIBLE_MACHINE = "(neuros-osd|neuros-osd2)"
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch
new file mode 100644
index 0000000000..b6142ea1f5
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-01.patch
@@ -0,0 +1,86 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
+ autolearn=ham version=3.2.1
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 26975 invoked by uid 1003); 18 Jul 2008 01:35:27 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:27 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1756265AbYGRBf0 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:26 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751582AbYGRBfZ
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:25 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49361 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1752321AbYGRBfX (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:23 -0400
+Received: (qmail 13868 invoked by uid 526); 18 Jul 2008 01:35:22 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:49 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 1/9] TWL4030: remove superfluous PWR interrupt status clear
+ before masking
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:49 -0600
+Message-ID: <20080718013448.18943.6984.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_irq_init() clears PWR interrupt status bits, then masks the interrupts
+off, then clears the PWR interrupt status bits again. The first clear
+seems unnecessary, so, remove it.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 18 ------------------
+ 1 files changed, 0 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index adc45d4..ff662bc 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -719,24 +719,6 @@ static void twl_init_irq(void)
+ char *msg = "Unable to register interrupt subsystem";
+ unsigned int irq_num;
+
+- /*
+- * We end up with interrupts from other modules before
+- * they get a chance to handle them...
+- */
+- /* PWR_ISR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x00);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
+-
+- /* PWR_ISR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x02);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
+-
+ /* PWR_IMR1 */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
+ if (res < 0) {
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch
new file mode 100644
index 0000000000..18b2f589c1
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-02.patch
@@ -0,0 +1,114 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 17413 invoked by uid 1003); 18 Jul 2008 01:35:27 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:27 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1757296AbYGRBf1 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:27 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751582AbYGRBf0
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:26 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49362 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1754168AbYGRBfY (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
+Received: (qmail 13872 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:50 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 2/9] TWL4030: clear TWL GPIO interrupt status registers
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:50 -0600
+Message-ID: <20080718013449.18943.78895.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_init_irq() does not clear the TWL GPIO ISR registers, but the PIH
+ISR thinks that it has. This causes any previously-latched GPIO interrupts
+to be stuck on until twl4030-gpio.c initializes, often drowning the console in
+
+ TWL4030 module irq 368 is disabled but can't be masked!
+
+messages. This seems to be a particular problem when booting on Beagle.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 42 ++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 42 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index ff662bc..dfc3805 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -857,6 +857,48 @@ static void twl_init_irq(void)
+ return;
+ }
+
++ /* GPIO_ISR1A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x19);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* GPIO_ISR2A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1a);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* GPIO_ISR3A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1b);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* GPIO_ISR1B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1f);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* GPIO_ISR2B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x20);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* GPIO_ISR3B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x21);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
+ /* install an irq handler for each of the PIH modules */
+ for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
+ set_irq_chip(i, &twl4030_irq_chip);
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch
new file mode 100644
index 0000000000..062d99fe5a
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-03.patch
@@ -0,0 +1,126 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 14206 invoked by uid 1003); 18 Jul 2008 01:35:28 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:28 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1751582AbYGRBf1 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:27 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf1
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:27 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49363 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1754586AbYGRBfY (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
+Received: (qmail 13876 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:50 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 3/9] TWL4030: use correct register addresses for BCI IMR
+ registers
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:50 -0600
+Message-ID: <20080718013450.18943.33123.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+The existing code to mask and clear BCI interrupts in twl_init_irq() is
+wrong. It uses the wrong register offsets, it does not mask all of the
+BCI IMR registers, and it does not clear all of the BCI ISR registers.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 40 ++++++++++++++++++++++++++++++++------
+ 1 files changed, 34 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index dfc3805..bb0732c 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -750,29 +750,57 @@ static void twl_init_irq(void)
+ /* POWER HACK (END) */
+ /* Slave address 0x4A */
+
+- /* BCIIMR1_1 */
++ /* BCIIMR1A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x2);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* BCIIMR2A */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x3);
+ if (res < 0) {
+ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+ return;
+ }
+
+- /* BCIIMR1_2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x4);
++ /* BCIIMR1B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x6);
+ if (res < 0) {
+ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+ return;
+ }
+
+- /* BCIIMR2_1 */
++ /* BCIIMR2B */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x7);
+ if (res < 0) {
+ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+ return;
+ }
+
+- /* BCIIMR2_2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x8);
++ /* BCIISR1A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x0);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* BCIISR2A */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x1);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* BCIISR1B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x4);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* BCIISR2B */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x5);
+ if (res < 0) {
+ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+ return;
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch
new file mode 100644
index 0000000000..12d76bfb23
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-04.patch
@@ -0,0 +1,81 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 21713 invoked by uid 1003); 18 Jul 2008 01:35:29 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:29 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1754758AbYGRBf2 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:28 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757008AbYGRBf1
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:27 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49364 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1754758AbYGRBfY (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:24 -0400
+Received: (qmail 13880 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:51 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 4/9] TWL4030: clear MADC interrupt status registers upon init
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:51 -0600
+Message-ID: <20080718013450.18943.33397.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_init_irq() does not clear MADC interrupt status registers upon init -
+fix.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 14 ++++++++++++++
+ 1 files changed, 14 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index bb0732c..9d93524 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -821,6 +821,20 @@ static void twl_init_irq(void)
+ return;
+ }
+
++ /* MADC_ISR1 */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x61);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
++ /* MADC_ISR2 */
++ res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x63);
++ if (res < 0) {
++ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
++ return;
++ }
++
+ /* key Pad */
+ /* KEYPAD - IMR1 */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x12));
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch
new file mode 100644
index 0000000000..b41c836711
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-05.patch
@@ -0,0 +1,275 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 11680 invoked by uid 1003); 18 Jul 2008 01:35:29 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:29 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1755063AbYGRBf2 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:28 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf2
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:28 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49365 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1755063AbYGRBfZ (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
+Received: (qmail 13884 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:52 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 5/9] TWL4030: read and write module ISRs to clear them at init
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:52 -0600
+Message-ID: <20080718013451.18943.18579.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+TWL4030 interrupt status register bits can be cleared in one of two ways:
+either by reading from the register, or by writing a 1 to the
+appropriate bit(s) in the register. This behavior can be altered at any
+time by the <twlmodule>_SIH_CTRL.COR register bit ("clear-on-read").
+
+twl4030-core.c does not touch these *_SIH_CTRL registers during boot,
+and the TWL4030 TRM is deeply confused as to whether COR=1 means that
+the registers are cleared on reads, or cleared on writes.
+
+So, take the cautious way out and both read from and write to the TWL4030
+module ISRs to clear them at startup. Also, use WARN_ON() to warn if the
+read/write failed, and don't skip the rest of the initialization on failure
+either.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 128 +++++++++++++++-----------------------
+ 1 files changed, 51 insertions(+), 77 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index 9d93524..615fb84 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -712,6 +712,28 @@ static int power_companion_init(void)
+ return e;
+ }
+
++/**
++ * twl4030_i2c_clear_isr - clear TWL4030 SIH ISR regs via read + write
++ * @mod_no: TWL4030 module number
++ * @reg: register index to clear
++ *
++ * Reads, then writes 0xff to a TWL4030 interrupt status register to ensure
++ * that interrupts are cleared. The read + write is necessary since we
++ * don't know whether the COR bit is set in <module>_SIH_CTRL. Returns
++ * the status from the I2C read operation.
++ */
++static int twl4030_i2c_clear_isr(u8 mod_no, u8 reg)
++{
++ int res;
++ u8 tmp;
++
++ res = twl4030_i2c_read_u8(mod_no, &tmp, reg);
++ if (res < 0)
++ return res;
++
++ return twl4030_i2c_write_u8(mod_no, 0xff, reg);
++}
++
+ static void twl_init_irq(void)
+ {
+ int i = 0;
+@@ -719,6 +741,13 @@ static void twl_init_irq(void)
+ char *msg = "Unable to register interrupt subsystem";
+ unsigned int irq_num;
+
++ /*
++ * For each TWL4030 module with ISR/IMR registers, mask all
++ * interrupts and then clear any existing interrupt status bits,
++ * since we initially do not have any TWL4030 module interrupt
++ * handlers present.
++ */
++
+ /* PWR_IMR1 */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
+ if (res < 0) {
+@@ -735,19 +764,11 @@ static void twl_init_irq(void)
+
+ /* Clear off any other pending interrupts on power */
+ /* PWR_ISR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x00);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00) < 0);
+
+ /* PWR_ISR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x02);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
+- /* POWER HACK (END) */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02) < 0);
++
+ /* Slave address 0x4A */
+
+ /* BCIIMR1A */
+@@ -779,32 +800,16 @@ static void twl_init_irq(void)
+ }
+
+ /* BCIISR1A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x0);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
+
+ /* BCIISR2A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x1);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1) < 0);
+
+ /* BCIISR1B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x4);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4) < 0);
+
+ /* BCIISR2B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x5);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5) < 0);
+
+ /* MAD C */
+ /* MADC_IMR1 */
+@@ -822,18 +827,10 @@ static void twl_init_irq(void)
+ }
+
+ /* MADC_ISR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x61);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
+
+ /* MADC_ISR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x63);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63) < 0);
+
+ /* key Pad */
+ /* KEYPAD - IMR1 */
+@@ -842,12 +839,10 @@ static void twl_init_irq(void)
+ pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+ return;
+ }
+- {
+- u8 clear;
+- /* Clear ISR */
+- twl4030_i2c_read_u8(TWL4030_MODULE_KEYPAD, &clear, 0x11);
+- twl4030_i2c_read_u8(TWL4030_MODULE_KEYPAD, &clear, 0x11);
+- }
++
++ /* KEYPAD - ISR1 */
++ /* XXX does this still need to be done twice for some reason? */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
+
+ /* KEYPAD - IMR2 */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x14));
+@@ -856,6 +851,9 @@ static void twl_init_irq(void)
+ return;
+ }
+
++ /* KEYPAD - ISR2 */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
++
+ /* Slave address 0x49 */
+ /* GPIO_IMR1A */
+ res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x1C));
+@@ -900,46 +898,22 @@ static void twl_init_irq(void)
+ }
+
+ /* GPIO_ISR1A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x19);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
+
+ /* GPIO_ISR2A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1a);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a) < 0);
+
+ /* GPIO_ISR3A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1b);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b) < 0);
+
+ /* GPIO_ISR1B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1f);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f) < 0);
+
+ /* GPIO_ISR2B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x20);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20) < 0);
+
+ /* GPIO_ISR3B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x21);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21) < 0);
+
+ /* install an irq handler for each of the PIH modules */
+ for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch
new file mode 100644
index 0000000000..501437a365
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-06.patch
@@ -0,0 +1,220 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
+ autolearn=ham version=3.2.1
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 19695 invoked by uid 1003); 18 Jul 2008 01:35:30 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:30 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1756218AbYGRBf3 (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:29 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754168AbYGRBf3
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:29 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49366 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1756218AbYGRBfZ (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
+Received: (qmail 13888 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:53 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 6/9] TWL4030: change init-time IMR mask code to WARN if error
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:53 -0600
+Message-ID: <20080718013452.18943.96350.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_init_irq() prints error messages and returns if any interrupt mask
+register writes fail. Change this to generate a warning traceback and
+to continue execution rather than skipping TWL init. (These mask
+writes should not fail at all unless either the I2C bus or the TWL4030
+is somehow wedged.)
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 100 +++++++-------------------------------
+ 1 files changed, 18 insertions(+), 82 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index 615fb84..1906635 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -749,18 +749,10 @@ static void twl_init_irq(void)
+ */
+
+ /* PWR_IMR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x1);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x1) < 0);
+
+ /* PWR_IMR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xFF, 0x3);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x3) < 0);
+
+ /* Clear off any other pending interrupts on power */
+ /* PWR_ISR1 */
+@@ -772,32 +764,16 @@ static void twl_init_irq(void)
+ /* Slave address 0x4A */
+
+ /* BCIIMR1A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x2);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x2) < 0);
+
+- /* BCIIMR2A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x3);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ /* BCIIMR2A */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x3) < 0);
+
+- /* BCIIMR1B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x6);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ /* BCIIMR2A */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x6) < 0);
+
+ /* BCIIMR2B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xFF, 0x7);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x7) < 0);
+
+ /* BCIISR1A */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
+@@ -813,18 +789,10 @@ static void twl_init_irq(void)
+
+ /* MAD C */
+ /* MADC_IMR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x62);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x62) < 0);
+
+ /* MADC_IMR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xFF, 0x64);
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x64) < 0);
+
+ /* MADC_ISR1 */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
+@@ -834,68 +802,36 @@ static void twl_init_irq(void)
+
+ /* key Pad */
+ /* KEYPAD - IMR1 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x12));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x12) < 0);
+
+ /* KEYPAD - ISR1 */
+ /* XXX does this still need to be done twice for some reason? */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
+
+ /* KEYPAD - IMR2 */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xFF, (0x14));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x14) < 0);
+
+ /* KEYPAD - ISR2 */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
+
+ /* Slave address 0x49 */
+ /* GPIO_IMR1A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x1C));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1c) < 0);
+
+ /* GPIO_IMR2A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x1D));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1d) < 0);
+
+ /* GPIO_IMR3A */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x1E));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1e) < 0);
+
+ /* GPIO_IMR1B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x22));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x22) < 0);
+
+ /* GPIO_IMR2B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x23));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x23) < 0);
+
+ /* GPIO_IMR3B */
+- res = twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xFF, (0x24));
+- if (res < 0) {
+- pr_err("%s[%d][%d]\n", msg, res, __LINE__);
+- return;
+- }
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x24) < 0);
+
+ /* GPIO_ISR1A */
+ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
new file mode 100644
index 0000000000..2847e84f62
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-07.patch
@@ -0,0 +1,318 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 26193 invoked by uid 1003); 18 Jul 2008 01:35:31 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:31 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1752321AbYGRBfb (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:31 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756854AbYGRBfb
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:31 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49367 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1756351AbYGRBfZ (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
+Received: (qmail 13892 invoked by uid 526); 18 Jul 2008 01:35:23 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:54 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 7/9] TWL4030: move TWL module register defs into separate
+ include files
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:54 -0600
+Message-ID: <20080718013453.18943.69329.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_init_irq() accesses TWL module IMR and ISR registers. Currently, it
+uses "magic numbers" for these register indices, but symbolic constants
+are definitely preferred. Rather than duplicating already existing
+symbolic constants in twl4030-gpio.c and twl4030-pwrirq.c, move the
+existing constants out into include files. This patch should not change
+kernel behavior.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-gpio.c | 48 -----------------------
+ drivers/i2c/chips/twl4030-pwrirq.c | 15 +++----
+ include/linux/i2c/twl4030-gpio.h | 76 ++++++++++++++++++++++++++++++++++++
+ include/linux/i2c/twl4030-pwrirq.h | 37 ++++++++++++++++++
+ 4 files changed, 121 insertions(+), 55 deletions(-)
+ create mode 100644 include/linux/i2c/twl4030-gpio.h
+ create mode 100644 include/linux/i2c/twl4030-pwrirq.h
+
+diff --git a/drivers/i2c/chips/twl4030-gpio.c b/drivers/i2c/chips/twl4030-gpio.c
+index f16a48b..9d17f45 100644
+--- a/drivers/i2c/chips/twl4030-gpio.c
++++ b/drivers/i2c/chips/twl4030-gpio.c
+@@ -38,6 +38,7 @@
+
+ #include <linux/i2c.h>
+ #include <linux/i2c/twl4030.h>
++#include <linux/i2c/twl4030-gpio.h>
+ #include <linux/slab.h>
+
+ #include <asm/arch/irqs.h>
+@@ -47,53 +48,6 @@
+
+ #include <linux/device.h>
+
+-/*
+- * GPIO Block Register definitions
+- */
+-
+-#define REG_GPIODATAIN1 0x0
+-#define REG_GPIODATAIN2 0x1
+-#define REG_GPIODATAIN3 0x2
+-#define REG_GPIODATADIR1 0x3
+-#define REG_GPIODATADIR2 0x4
+-#define REG_GPIODATADIR3 0x5
+-#define REG_GPIODATAOUT1 0x6
+-#define REG_GPIODATAOUT2 0x7
+-#define REG_GPIODATAOUT3 0x8
+-#define REG_CLEARGPIODATAOUT1 0x9
+-#define REG_CLEARGPIODATAOUT2 0xA
+-#define REG_CLEARGPIODATAOUT3 0xB
+-#define REG_SETGPIODATAOUT1 0xC
+-#define REG_SETGPIODATAOUT2 0xD
+-#define REG_SETGPIODATAOUT3 0xE
+-#define REG_GPIO_DEBEN1 0xF
+-#define REG_GPIO_DEBEN2 0x10
+-#define REG_GPIO_DEBEN3 0x11
+-#define REG_GPIO_CTRL 0x12
+-#define REG_GPIOPUPDCTR1 0x13
+-#define REG_GPIOPUPDCTR2 0x14
+-#define REG_GPIOPUPDCTR3 0x15
+-#define REG_GPIOPUPDCTR4 0x16
+-#define REG_GPIOPUPDCTR5 0x17
+-#define REG_GPIO_ISR1A 0x19
+-#define REG_GPIO_ISR2A 0x1A
+-#define REG_GPIO_ISR3A 0x1B
+-#define REG_GPIO_IMR1A 0x1C
+-#define REG_GPIO_IMR2A 0x1D
+-#define REG_GPIO_IMR3A 0x1E
+-#define REG_GPIO_ISR1B 0x1F
+-#define REG_GPIO_ISR2B 0x20
+-#define REG_GPIO_ISR3B 0x21
+-#define REG_GPIO_IMR1B 0x22
+-#define REG_GPIO_IMR2B 0x23
+-#define REG_GPIO_IMR3B 0x24
+-#define REG_GPIO_EDR1 0x28
+-#define REG_GPIO_EDR2 0x29
+-#define REG_GPIO_EDR3 0x2A
+-#define REG_GPIO_EDR4 0x2B
+-#define REG_GPIO_EDR5 0x2C
+-#define REG_GPIO_SIH_CTRL 0x2D
+-
+ /* BitField Definitions */
+
+ /* Data banks : 3 banks for 8 gpios each */
+diff --git a/drivers/i2c/chips/twl4030-pwrirq.c b/drivers/i2c/chips/twl4030-pwrirq.c
+index a4d2e92..1afdb65 100644
+--- a/drivers/i2c/chips/twl4030-pwrirq.c
++++ b/drivers/i2c/chips/twl4030-pwrirq.c
+@@ -27,10 +27,8 @@
+ #include <linux/random.h>
+ #include <linux/kthread.h>
+ #include <linux/i2c/twl4030.h>
++#include <linux/i2c/twl4030-pwrirq.h>
+
+-#define PWR_ISR1 0
+-#define PWR_IMR1 1
+-#define PWR_SIH_CTRL 7
+ #define PWR_SIH_CTRL_COR (1<<2)
+
+ static u8 twl4030_pwrirq_mask;
+@@ -93,7 +91,8 @@ static void do_twl4030_pwrmodule_irq(unsigned int irq, irq_desc_t *desc)
+ twl4030_pwrirq_mask |= 1 << (irq - TWL4030_PWR_IRQ_BASE);
+ local_irq_enable();
+ twl4030_i2c_write_u8(TWL4030_MODULE_INT,
+- twl4030_pwrirq_mask, PWR_IMR1);
++ twl4030_pwrirq_mask,
++ TWL4030_INT_PWR_IMR1);
+ }
+ }
+ }
+@@ -115,7 +114,7 @@ static void do_twl4030_pwrirq(unsigned int irq, irq_desc_t *desc)
+
+ local_irq_enable();
+ ret = twl4030_i2c_read_u8(TWL4030_MODULE_INT, &pwr_isr,
+- PWR_ISR1);
++ TWL4030_INT_PWR_ISR1);
+ if (ret) {
+ printk(KERN_WARNING
+ "I2C error %d while reading TWL4030"
+@@ -151,7 +150,7 @@ static int twl4030_pwrirq_thread(void *data)
+ twl4030_pwrirq_mask &= ~local_unmask;
+
+ twl4030_i2c_write_u8(TWL4030_MODULE_INT, twl4030_pwrirq_mask,
+- PWR_IMR1);
++ TWL4030_INT_PWR_IMR1);
+
+ local_irq_disable();
+ if (!twl4030_pwrirq_pending_unmask)
+@@ -172,14 +171,14 @@ static int __init twl4030_pwrirq_init(void)
+ twl4030_pwrirq_pending_unmask = 0;
+
+ err = twl4030_i2c_write_u8(TWL4030_MODULE_INT, twl4030_pwrirq_mask,
+- PWR_IMR1);
++ TWL4030_INT_PWR_IMR1);
+ if (err)
+ return err;
+
+ /* Enable clear on read */
+
+ err = twl4030_i2c_write_u8(TWL4030_MODULE_INT, PWR_SIH_CTRL_COR,
+- PWR_SIH_CTRL);
++ TWL4030_INT_PWR_SIH_CTRL);
+ if (err)
+ return err;
+
+diff --git a/include/linux/i2c/twl4030-gpio.h b/include/linux/i2c/twl4030-gpio.h
+new file mode 100644
+index 0000000..7cbf610
+--- /dev/null
++++ b/include/linux/i2c/twl4030-gpio.h
+@@ -0,0 +1,76 @@
++/*
++ * twl4030-gpio.h - header for TWL4030 GPIO module
++ *
++ * Copyright (C) 2005-2006, 2008 Texas Instruments, Inc.
++ * Copyright (C) 2008 Nokia Corporation
++ *
++ * Based on tlv320aic23.c:
++ * Copyright (c) by Kai Svahn <kai.svahn@nokia.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
++ *
++ */
++
++#ifndef __TWL4030_GPIO_H_
++#define __TWL4030_GPIO_H_
++
++/*
++ * GPIO Block Register definitions
++ */
++
++#define REG_GPIODATAIN1 0x0
++#define REG_GPIODATAIN2 0x1
++#define REG_GPIODATAIN3 0x2
++#define REG_GPIODATADIR1 0x3
++#define REG_GPIODATADIR2 0x4
++#define REG_GPIODATADIR3 0x5
++#define REG_GPIODATAOUT1 0x6
++#define REG_GPIODATAOUT2 0x7
++#define REG_GPIODATAOUT3 0x8
++#define REG_CLEARGPIODATAOUT1 0x9
++#define REG_CLEARGPIODATAOUT2 0xA
++#define REG_CLEARGPIODATAOUT3 0xB
++#define REG_SETGPIODATAOUT1 0xC
++#define REG_SETGPIODATAOUT2 0xD
++#define REG_SETGPIODATAOUT3 0xE
++#define REG_GPIO_DEBEN1 0xF
++#define REG_GPIO_DEBEN2 0x10
++#define REG_GPIO_DEBEN3 0x11
++#define REG_GPIO_CTRL 0x12
++#define REG_GPIOPUPDCTR1 0x13
++#define REG_GPIOPUPDCTR2 0x14
++#define REG_GPIOPUPDCTR3 0x15
++#define REG_GPIOPUPDCTR4 0x16
++#define REG_GPIOPUPDCTR5 0x17
++#define REG_GPIO_ISR1A 0x19
++#define REG_GPIO_ISR2A 0x1A
++#define REG_GPIO_ISR3A 0x1B
++#define REG_GPIO_IMR1A 0x1C
++#define REG_GPIO_IMR2A 0x1D
++#define REG_GPIO_IMR3A 0x1E
++#define REG_GPIO_ISR1B 0x1F
++#define REG_GPIO_ISR2B 0x20
++#define REG_GPIO_ISR3B 0x21
++#define REG_GPIO_IMR1B 0x22
++#define REG_GPIO_IMR2B 0x23
++#define REG_GPIO_IMR3B 0x24
++#define REG_GPIO_EDR1 0x28
++#define REG_GPIO_EDR2 0x29
++#define REG_GPIO_EDR3 0x2A
++#define REG_GPIO_EDR4 0x2B
++#define REG_GPIO_EDR5 0x2C
++#define REG_GPIO_SIH_CTRL 0x2D
++
++#endif /* End of __TWL4030_GPIO_H */
+diff --git a/include/linux/i2c/twl4030-pwrirq.h b/include/linux/i2c/twl4030-pwrirq.h
+new file mode 100644
+index 0000000..7a13368
+--- /dev/null
++++ b/include/linux/i2c/twl4030-pwrirq.h
+@@ -0,0 +1,37 @@
++/*
++ * twl4030-gpio.h - header for TWL4030 GPIO module
++ *
++ * Copyright (C) 2008 Texas Instruments, Inc.
++ * Copyright (C) 2008 Nokia Corporation
++ *
++ * 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
++ *
++ */
++
++#ifndef __TWL4030_PWRIRQ_H_
++#define __TWL4030_PWRIRQ_H_
++
++/*
++ * INT Module Register definitions
++ * (not all registers are defined below)
++ */
++
++#define TWL4030_INT_PWR_ISR1 0x0
++#define TWL4030_INT_PWR_IMR1 0x1
++#define TWL4030_INT_PWR_ISR2 0x2
++#define TWL4030_INT_PWR_IMR2 0x3
++#define TWL4030_INT_PWR_SIH_CTRL 0x7
++
++#endif /* End of __TWL4030_PWRIRQ_H */
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch
new file mode 100644
index 0000000000..713eebffd6
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-08.patch
@@ -0,0 +1,275 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.2 (2007-07-23) on
+ morningsun.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-3.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME,
+ DK_POLICY_SIGNSOME,RCVD_IN_DNSWL_MED autolearn=ham version=3.2.2
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 12254 invoked by uid 1003); 18 Jul 2008 01:35:31 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:31 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1756410AbYGRBfa (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:30 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1757008AbYGRBfa
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:30 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49368 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1756410AbYGRBfZ (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
+Received: (qmail 13896 invoked by uid 526); 18 Jul 2008 01:35:24 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:55 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 8/9] TWL4030: use symbolic ISR/IMR register names during
+ twl_init_irq()
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:55 -0600
+Message-ID: <20080718013454.18943.7428.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+twl_init_irq() uses a bunch of magic numbers as register indices; this
+has already led to several errors, fixed earlier in this patch series.
+Now use descriptive macros instead of magic numbers. This patch should
+not change kernel behavior.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 181 +++++++++++++++++++-------------------
+ 1 files changed, 89 insertions(+), 92 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index 1906635..5855f5f 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -40,6 +40,9 @@
+
+ #include <linux/i2c.h>
+ #include <linux/i2c/twl4030.h>
++#include <linux/i2c/twl4030-gpio.h>
++#include <linux/i2c/twl4030-madc.h>
++#include <linux/i2c/twl4030-pwrirq.h>
+ #include <linux/slab.h>
+ #include <linux/clk.h>
+ #include <linux/device.h>
+@@ -114,6 +117,23 @@
+ #define TWL4030_BASEADD_RTC 0x001C
+ #define TWL4030_BASEADD_SECURED_REG 0x0000
+
++/* TWL4030 BCI registers */
++#define TWL4030_INTERRUPTS_BCIIMR1A 0x2
++#define TWL4030_INTERRUPTS_BCIIMR2A 0x3
++#define TWL4030_INTERRUPTS_BCIIMR1B 0x6
++#define TWL4030_INTERRUPTS_BCIIMR2B 0x7
++#define TWL4030_INTERRUPTS_BCIISR1A 0x0
++#define TWL4030_INTERRUPTS_BCIISR2A 0x1
++#define TWL4030_INTERRUPTS_BCIISR1B 0x4
++#define TWL4030_INTERRUPTS_BCIISR2B 0x5
++
++/* TWL4030 keypad registers */
++#define TWL4030_KEYPAD_KEYP_IMR1 0x12
++#define TWL4030_KEYPAD_KEYP_IMR2 0x14
++#define TWL4030_KEYPAD_KEYP_ISR1 0x11
++#define TWL4030_KEYPAD_KEYP_ISR2 0x13
++
++
+ /* Triton Core internal information (END) */
+
+ /* Few power values */
+@@ -748,108 +768,85 @@ static void twl_init_irq(void)
+ * handlers present.
+ */
+
+- /* PWR_IMR1 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x1) < 0);
+-
+- /* PWR_IMR2 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff, 0x3) < 0);
+-
+- /* Clear off any other pending interrupts on power */
+- /* PWR_ISR1 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x00) < 0);
+-
+- /* PWR_ISR2 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT, 0x02) < 0);
++ /* Mask INT (PWR) interrupts at TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
++ TWL4030_INT_PWR_IMR1) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
++ TWL4030_INT_PWR_IMR2) < 0);
++ /* Clear TWL4030 INT (PWR) ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
++ TWL4030_INT_PWR_ISR1) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
++ TWL4030_INT_PWR_ISR2) < 0);
+
+ /* Slave address 0x4A */
+
+- /* BCIIMR1A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x2) < 0);
+-
+- /* BCIIMR2A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x3) < 0);
+-
+- /* BCIIMR2A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x6) < 0);
+-
+- /* BCIIMR2B */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff, 0x7) < 0);
+-
+- /* BCIISR1A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x0) < 0);
+-
+- /* BCIISR2A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x1) < 0);
+-
+- /* BCIISR1B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x4) < 0);
+-
+- /* BCIISR2B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS, 0x5) < 0);
++ /* Mask BCI interrupts at TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
++ TWL4030_INTERRUPTS_BCIIMR1A) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
++ TWL4030_INTERRUPTS_BCIIMR2A) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
++ TWL4030_INTERRUPTS_BCIIMR1B) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
++ TWL4030_INTERRUPTS_BCIIMR2B) < 0);
++ /* Clear TWL4030 BCI ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
++ TWL4030_INTERRUPTS_BCIISR1A) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
++ TWL4030_INTERRUPTS_BCIISR2A) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
++ TWL4030_INTERRUPTS_BCIISR1B) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
++ TWL4030_INTERRUPTS_BCIISR2B) < 0);
+
+ /* MAD C */
+- /* MADC_IMR1 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x62) < 0);
+-
+- /* MADC_IMR2 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff, 0x64) < 0);
+-
+- /* MADC_ISR1 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x61) < 0);
+-
+- /* MADC_ISR2 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC, 0x63) < 0);
++ /* Mask MADC interrupts at TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
++ TWL4030_MADC_IMR1) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
++ TWL4030_MADC_IMR2) < 0);
++ /* Clear TWL4030 MADC ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
++ TWL4030_MADC_ISR1) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
++ TWL4030_MADC_ISR2) < 0);
+
+ /* key Pad */
+- /* KEYPAD - IMR1 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x12) < 0);
+-
+- /* KEYPAD - ISR1 */
++ /* Mask keypad interrupts at TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
++ TWL4030_KEYPAD_KEYP_IMR1) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
++ TWL4030_KEYPAD_KEYP_IMR2) < 0);
++ /* Clear TWL4030 keypad ISRs */
+ /* XXX does this still need to be done twice for some reason? */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x11) < 0);
+-
+- /* KEYPAD - IMR2 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff, 0x14) < 0);
+-
+- /* KEYPAD - ISR2 */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD, 0x13) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
++ TWL4030_KEYPAD_KEYP_ISR1) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
++ TWL4030_KEYPAD_KEYP_ISR2) < 0);
+
+ /* Slave address 0x49 */
+- /* GPIO_IMR1A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1c) < 0);
+-
+- /* GPIO_IMR2A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1d) < 0);
+-
+- /* GPIO_IMR3A */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x1e) < 0);
+-
+- /* GPIO_IMR1B */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x22) < 0);
+-
+- /* GPIO_IMR2B */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x23) < 0);
+-
+- /* GPIO_IMR3B */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff, 0x24) < 0);
+-
+- /* GPIO_ISR1A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x19) < 0);
+-
+- /* GPIO_ISR2A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1a) < 0);
+-
+- /* GPIO_ISR3A */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1b) < 0);
+-
+- /* GPIO_ISR1B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x1f) < 0);
+-
+- /* GPIO_ISR2B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x20) < 0);
+-
+- /* GPIO_ISR3B */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, 0x21) < 0);
++ /* Mask GPIO interrupts at TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR1A) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR2A) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR3A) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR1B) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR2B) < 0);
++ WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
++ REG_GPIO_IMR3B) < 0);
++
++ /* Clear TWL4030 GPIO ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B) < 0);
++ WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B) < 0);
+
+ /* install an irq handler for each of the PIH modules */
+ for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch b/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch
new file mode 100644
index 0000000000..3a2eb05fd8
--- /dev/null
+++ b/packages/linux/linux-omap2-git/beagleboard/TWL4030-09.patch
@@ -0,0 +1,299 @@
+X-Mozilla-Status: 0001
+X-Mozilla-Status2: 00000000
+Return-Path: <linux-omap-owner@vger.kernel.org>
+X-Spam-Checker-Version: SpamAssassin 3.2.1 (2007-05-02) on shovel.geekisp.com
+X-Spam-Level:
+X-Spam-Status: No, score=-1.0 required=5.0 tests=AWL,DKIM_POLICY_SIGNSOME
+ autolearn=ham version=3.2.1
+Delivered-To: balister.org-philip@balister.org
+Received: (qmail 21557 invoked by uid 1003); 18 Jul 2008 01:35:32 -0000
+Received: from vger.kernel.org (209.132.176.167)
+ by mail.geekisp.com with SMTP; 18 Jul 2008 01:35:32 -0000
+Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
+ id S1757008AbYGRBfb (ORCPT <rfc822;philip@balister.org>);
+ Thu, 17 Jul 2008 21:35:31 -0400
+Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1756351AbYGRBfb
+ (ORCPT <rfc822;linux-omap-outgoing>);
+ Thu, 17 Jul 2008 21:35:31 -0400
+Received: from utopia.booyaka.com ([72.9.107.138]:49369 "EHLO
+ utopia.booyaka.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
+ with ESMTP id S1756783AbYGRBfZ (ORCPT
+ <rfc822;linux-omap@vger.kernel.org>); Thu, 17 Jul 2008 21:35:25 -0400
+Received: (qmail 13900 invoked by uid 526); 18 Jul 2008 01:35:24 -0000
+MBOX-Line: From nobody Thu Jul 17 19:34:56 2008
+From: Paul Walmsley <paul@pwsan.com>
+Subject: [PATCH 9/9] TWL4030: convert early interrupt mask/clear funcs to use
+ array
+To: linux-omap@vger.kernel.org
+Date: Thu, 17 Jul 2008 19:34:56 -0600
+Message-ID: <20080718013455.18943.62389.stgit@localhost.localdomain>
+In-Reply-To: <20080718013205.18943.34047.stgit@localhost.localdomain>
+References: <20080718013205.18943.34047.stgit@localhost.localdomain>
+User-Agent: StGIT/0.14.3.163.g06f9
+MIME-Version: 1.0
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: 7bit
+Sender: linux-omap-owner@vger.kernel.org
+Precedence: bulk
+List-ID: <linux-omap.vger.kernel.org>
+X-Mailing-List: linux-omap@vger.kernel.org
+
+Mask/clear TWL module IMRs/ISRs by iterating through arrays rather than
+using a block of cut-and-pasted commands. Removes 632 bytes of bloat.
+
+Signed-off-by: Paul Walmsley <paul@pwsan.com>
+---
+
+ drivers/i2c/chips/twl4030-core.c | 218 ++++++++++++++++++++++++--------------
+ 1 files changed, 137 insertions(+), 81 deletions(-)
+
+diff --git a/drivers/i2c/chips/twl4030-core.c b/drivers/i2c/chips/twl4030-core.c
+index 5855f5f..47d547d 100644
+--- a/drivers/i2c/chips/twl4030-core.c
++++ b/drivers/i2c/chips/twl4030-core.c
+@@ -153,6 +153,130 @@
+ /* on I2C-1 for 2430SDP */
+ #define CONFIG_I2C_TWL4030_ID 1
+
++/**
++ * struct twl4030_mod_iregs - TWL module IMR/ISR regs to mask/clear at init
++ * @mod_no: TWL4030 module number (e.g., TWL4030_MODULE_GPIO)
++ * @reg_cnt: number of IMR/ISR regs
++ * @imrs: pointer to array of TWL module interrupt mask register indices
++ * @isrs: pointer to array of TWL module interrupt status register indices
++ *
++ * Ties together TWL4030 modules and lists of IMR/ISR registers to mask/clear
++ * during twl_init_irq().
++ */
++struct twl4030_mod_iregs {
++ const u8 mod_no;
++ const u8 reg_cnt;
++ const u8 *imrs;
++ const u8 *isrs;
++};
++
++/* TWL4030 INT module interrupt mask registers */
++static const u8 __initconst twl4030_int_imr_regs[] = {
++ TWL4030_INT_PWR_IMR1,
++ TWL4030_INT_PWR_IMR2,
++};
++
++/* TWL4030 INT module interrupt status registers */
++static const u8 __initconst twl4030_int_isr_regs[] = {
++ TWL4030_INT_PWR_ISR1,
++ TWL4030_INT_PWR_ISR2,
++};
++
++/* TWL4030 INTERRUPTS module interrupt mask registers */
++static const u8 __initconst twl4030_interrupts_imr_regs[] = {
++ TWL4030_INTERRUPTS_BCIIMR1A,
++ TWL4030_INTERRUPTS_BCIIMR1B,
++ TWL4030_INTERRUPTS_BCIIMR2A,
++ TWL4030_INTERRUPTS_BCIIMR2B,
++};
++
++/* TWL4030 INTERRUPTS module interrupt status registers */
++static const u8 __initconst twl4030_interrupts_isr_regs[] = {
++ TWL4030_INTERRUPTS_BCIISR1A,
++ TWL4030_INTERRUPTS_BCIISR1B,
++ TWL4030_INTERRUPTS_BCIISR2A,
++ TWL4030_INTERRUPTS_BCIISR2B,
++};
++
++/* TWL4030 MADC module interrupt mask registers */
++static const u8 __initconst twl4030_madc_imr_regs[] = {
++ TWL4030_MADC_IMR1,
++ TWL4030_MADC_IMR2,
++};
++
++/* TWL4030 MADC module interrupt status registers */
++static const u8 __initconst twl4030_madc_isr_regs[] = {
++ TWL4030_MADC_ISR1,
++ TWL4030_MADC_ISR2,
++};
++
++/* TWL4030 keypad module interrupt mask registers */
++static const u8 __initconst twl4030_keypad_imr_regs[] = {
++ TWL4030_KEYPAD_KEYP_IMR1,
++ TWL4030_KEYPAD_KEYP_IMR2,
++};
++
++/* TWL4030 keypad module interrupt status registers */
++static const u8 __initconst twl4030_keypad_isr_regs[] = {
++ TWL4030_KEYPAD_KEYP_ISR1,
++ TWL4030_KEYPAD_KEYP_ISR2,
++};
++
++/* TWL4030 GPIO module interrupt mask registers */
++static const u8 __initconst twl4030_gpio_imr_regs[] = {
++ REG_GPIO_IMR1A,
++ REG_GPIO_IMR1B,
++ REG_GPIO_IMR2A,
++ REG_GPIO_IMR2B,
++ REG_GPIO_IMR3A,
++ REG_GPIO_IMR3B,
++};
++
++/* TWL4030 GPIO module interrupt status registers */
++static const u8 __initconst twl4030_gpio_isr_regs[] = {
++ REG_GPIO_ISR1A,
++ REG_GPIO_ISR1B,
++ REG_GPIO_ISR2A,
++ REG_GPIO_ISR2B,
++ REG_GPIO_ISR3A,
++ REG_GPIO_ISR3B,
++};
++
++/* TWL4030 modules that have IMR/ISR registers that must be masked/cleared */
++static const struct twl4030_mod_iregs __initconst twl4030_mod_regs[] = {
++ {
++ .mod_no = TWL4030_MODULE_INT,
++ .reg_cnt = ARRAY_SIZE(twl4030_int_imr_regs),
++ .imrs = twl4030_int_imr_regs,
++ .isrs = twl4030_int_isr_regs,
++ },
++ {
++ .mod_no = TWL4030_MODULE_INTERRUPTS,
++ .reg_cnt = ARRAY_SIZE(twl4030_interrupts_imr_regs),
++ .imrs = twl4030_interrupts_imr_regs,
++ .isrs = twl4030_interrupts_isr_regs,
++ },
++ {
++ .mod_no = TWL4030_MODULE_MADC,
++ .reg_cnt = ARRAY_SIZE(twl4030_madc_imr_regs),
++ .imrs = twl4030_madc_imr_regs,
++ .isrs = twl4030_madc_isr_regs,
++ },
++ {
++ .mod_no = TWL4030_MODULE_KEYPAD,
++ .reg_cnt = ARRAY_SIZE(twl4030_keypad_imr_regs),
++ .imrs = twl4030_keypad_imr_regs,
++ .isrs = twl4030_keypad_isr_regs,
++ },
++ {
++ .mod_no = TWL4030_MODULE_GPIO,
++ .reg_cnt = ARRAY_SIZE(twl4030_gpio_imr_regs),
++ .imrs = twl4030_gpio_imr_regs,
++ .isrs = twl4030_gpio_isr_regs,
++ },
++};
++
++
+ /* Helper functions */
+ static int
+ twl4030_detect_client(struct i2c_adapter *adapter, unsigned char sid);
+@@ -756,7 +880,7 @@ static int twl4030_i2c_clear_isr(u8 mod_no, u8 reg)
+
+ static void twl_init_irq(void)
+ {
+- int i = 0;
++ int i, j;
+ int res = 0;
+ char *msg = "Unable to register interrupt subsystem";
+ unsigned int irq_num;
+@@ -767,86 +891,18 @@ static void twl_init_irq(void)
+ * since we initially do not have any TWL4030 module interrupt
+ * handlers present.
+ */
+-
+- /* Mask INT (PWR) interrupts at TWL4030 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
+- TWL4030_INT_PWR_IMR1) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INT, 0xff,
+- TWL4030_INT_PWR_IMR2) < 0);
+- /* Clear TWL4030 INT (PWR) ISRs */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
+- TWL4030_INT_PWR_ISR1) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INT,
+- TWL4030_INT_PWR_ISR2) < 0);
+-
+- /* Slave address 0x4A */
+-
+- /* Mask BCI interrupts at TWL4030 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+- TWL4030_INTERRUPTS_BCIIMR1A) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+- TWL4030_INTERRUPTS_BCIIMR2A) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+- TWL4030_INTERRUPTS_BCIIMR1B) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_INTERRUPTS, 0xff,
+- TWL4030_INTERRUPTS_BCIIMR2B) < 0);
+- /* Clear TWL4030 BCI ISRs */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
+- TWL4030_INTERRUPTS_BCIISR1A) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
+- TWL4030_INTERRUPTS_BCIISR2A) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
+- TWL4030_INTERRUPTS_BCIISR1B) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_INTERRUPTS,
+- TWL4030_INTERRUPTS_BCIISR2B) < 0);
+-
+- /* MAD C */
+- /* Mask MADC interrupts at TWL4030 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
+- TWL4030_MADC_IMR1) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_MADC, 0xff,
+- TWL4030_MADC_IMR2) < 0);
+- /* Clear TWL4030 MADC ISRs */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
+- TWL4030_MADC_ISR1) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_MADC,
+- TWL4030_MADC_ISR2) < 0);
+-
+- /* key Pad */
+- /* Mask keypad interrupts at TWL4030 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
+- TWL4030_KEYPAD_KEYP_IMR1) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_KEYPAD, 0xff,
+- TWL4030_KEYPAD_KEYP_IMR2) < 0);
+- /* Clear TWL4030 keypad ISRs */
+- /* XXX does this still need to be done twice for some reason? */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
+- TWL4030_KEYPAD_KEYP_ISR1) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_KEYPAD,
+- TWL4030_KEYPAD_KEYP_ISR2) < 0);
+-
+- /* Slave address 0x49 */
+- /* Mask GPIO interrupts at TWL4030 */
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR1A) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR2A) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR3A) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR1B) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR2B) < 0);
+- WARN_ON(twl4030_i2c_write_u8(TWL4030_MODULE_GPIO, 0xff,
+- REG_GPIO_IMR3B) < 0);
+-
+- /* Clear TWL4030 GPIO ISRs */
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1A) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2A) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3A) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR1B) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR2B) < 0);
+- WARN_ON(twl4030_i2c_clear_isr(TWL4030_MODULE_GPIO, REG_GPIO_ISR3B) < 0);
++ for (i = 0; i < ARRAY_SIZE(twl4030_mod_regs); i++) {
++ const struct twl4030_mod_iregs tmr = twl4030_mod_regs[i];
++
++ for (j = 0; j < tmr.reg_cnt; j++) {
++ /* Mask interrupts at the TWL4030 */
++ WARN_ON(twl4030_i2c_write_u8(tmr.mod_no, 0xff,
++ tmr.imrs[j]) < 0);
++ /* Clear TWL4030 ISRs */
++ WARN_ON(twl4030_i2c_clear_isr(tmr.mod_no,
++ tmr.isrs[j]) < 0);
++ }
++ }
+
+ /* install an irq handler for each of the PIH modules */
+ for (i = TWL4030_IRQ_BASE; i < TWL4030_IRQ_END; i++) {
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-omap" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html
+
diff --git a/packages/linux/linux-omap2_git.bb b/packages/linux/linux-omap2_git.bb
index cf16b6a2f6..88cd433166 100644
--- a/packages/linux/linux-omap2_git.bb
+++ b/packages/linux/linux-omap2_git.bb
@@ -32,6 +32,15 @@ SRC_URI_append_beagleboard = " file://no-harry-potter.diff;patch=1 \
file://cache-display-fix.patch;patch=1 \
file://serialfix.diff;patch=1 \
file://i2c-omap-race-fix.diff;patch=1 \
+ file://TWL4030-01.patch;patch=1 \
+ file://TWL4030-02.patch;patch=1 \
+ file://TWL4030-03.patch;patch=1 \
+ file://TWL4030-04.patch;patch=1 \
+ file://TWL4030-05.patch;patch=1 \
+ file://TWL4030-06.patch;patch=1 \
+ file://TWL4030-07.patch;patch=1 \
+ file://TWL4030-08.patch;patch=1 \
+ file://TWL4030-09.patch;patch=1 \
"
SRC_URI_append_omap3evm = " file://no-harry-potter.diff;patch=1 \
diff --git a/packages/linux/linux-openmoko-devel/defconfig-oe b/packages/linux/linux-openmoko-devel/defconfig-oe
index 1741cbab88..c4d80f66c7 100644
--- a/packages/linux/linux-openmoko-devel/defconfig-oe
+++ b/packages/linux/linux-openmoko-devel/defconfig-oe
@@ -1484,7 +1484,7 @@ CONFIG_RTC_DRV_S3C=m
#
# File systems
#
-CONFIG_EXT2_FS=m
+CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
diff --git a/packages/linux/linux-openmoko-devel_git.bb b/packages/linux/linux-openmoko-devel_git.bb
index f8a315f558..24ff29d0f1 100644
--- a/packages/linux/linux-openmoko-devel_git.bb
+++ b/packages/linux/linux-openmoko-devel_git.bb
@@ -9,7 +9,7 @@ KERNEL_VERSION = "${KERNEL_RELEASE}"
# If you use a rc, you will need to use this:
PV = "${KERNEL_RELEASE}+gitr${SRCREV}"
-PR = "r2"
+PR = "r3"
KERNEL_IMAGETYPE = "uImage"
UBOOT_ENTRYPOINT = "30008000"
diff --git a/packages/linux/linux_2.6.25.bb b/packages/linux/linux_2.6.25.bb
index e228860a49..dc9a35e3bb 100644
--- a/packages/linux/linux_2.6.25.bb
+++ b/packages/linux/linux_2.6.25.bb
@@ -1,6 +1,6 @@
require linux.inc
-PR = "r2"
+PR = "r3"
# Mark archs/machines that this kernel supports
DEFAULT_PREFERENCE = "-1"
@@ -10,6 +10,7 @@ DEFAULT_PREFERENCE_sequoia = "1"
DEFAULT_PREFERENCE_cm-x270 = "1"
DEFAULT_PREFERENCE_alix = "1"
DEFAULT_PREFERENCE_at32stk1000 = "1"
+DEFAULT_PREFERENCE_at91-l9260 = "1"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.25.tar.bz2 \
file://defconfig"
@@ -32,6 +33,10 @@ SRC_URI_append_at32stk1000 = " \
http://avr32linux.org/twiki/pub/Main/LinuxPatches/linux-2.6.25.6.atmel.1.patch.bz2;patch=1 \
"
+SRC_URI_append_at91-l9260 = " \
+ http://maxim.org.za/AT91RM9200/2.6/2.6.25-at91.patch.gz;patch=1 \
+"
+
CMDLINE_cm-x270 = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=1 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
FILES_kernel-image_cm-x270 = ""
diff --git a/packages/opkg-utils/.mtn2git_empty b/packages/opkg-utils/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/opkg-utils/.mtn2git_empty
diff --git a/packages/opkg-utils/opkg-utils-native_svn.bb b/packages/opkg-utils/opkg-utils-native_svn.bb
new file mode 100644
index 0000000000..0495b1eda3
--- /dev/null
+++ b/packages/opkg-utils/opkg-utils-native_svn.bb
@@ -0,0 +1,10 @@
+require opkg-utils_svn.bb
+
+RDEPENDS = ""
+
+inherit native
+
+# Avoid circular dependencies from package_ipk.bbclass
+PACKAGES = ""
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/opkg-utils"
+
diff --git a/packages/opkg-utils/opkg-utils_svn.bb b/packages/opkg-utils/opkg-utils_svn.bb
new file mode 100644
index 0000000000..4c3c0905ea
--- /dev/null
+++ b/packages/opkg-utils/opkg-utils_svn.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "OPKG Package Manager Utilities"
+SECTION = "base"
+PRIORITY = "optional"
+LICENSE = "GPL"
+RDEPENDS = "python"
+PR = "r2"
+
+SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=opkg-utils;proto=http"
+
+S = "${WORKDIR}/opkg-utils"
+
+inherit autotools
+
+S = "${WORKDIR}/opkg-utils"
+
+do_stage () {
+ autotools_stage_all
+}
diff --git a/packages/pulseaudio/pulseaudio-0.9.10/libiconv.patch b/packages/pulseaudio/pulseaudio-0.9.10/libiconv.patch
new file mode 100644
index 0000000000..273b446d78
--- /dev/null
+++ b/packages/pulseaudio/pulseaudio-0.9.10/libiconv.patch
@@ -0,0 +1,22 @@
+Index: pulseaudio-0.9.10/src/Makefile.am
+===================================================================
+--- pulseaudio-0.9.10.orig/src/Makefile.am 2008-07-20 13:16:51.548858829 +0200
++++ pulseaudio-0.9.10/src/Makefile.am 2008-07-20 13:43:39.842031837 +0200
+@@ -551,7 +551,7 @@
+
+ libpulse_la_CFLAGS = $(AM_CFLAGS)
+ libpulse_la_LDFLAGS = -version-info $(LIBPULSE_VERSION_INFO) -Wl,-version-script=$(srcdir)/map-file
+-libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LIBICONV)
++libpulse_la_LIBADD = $(AM_LIBADD) $(WINSOCK_LIBS) $(LTLIBICONV)
+
+ if HAVE_X11
+ libpulse_la_CFLAGS += $(X_CFLAGS)
+@@ -771,7 +771,7 @@
+
+ libpulsecore_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBOIL_CFLAGS)
+ libpulsecore_la_LDFLAGS = -version-info $(LIBPULSECORE_VERSION_INFO)
+-libpulsecore_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LIBOIL_LIBS) $(LIBICONV) libspeex-resampler-fixed.la libspeex-resampler-float.la libffmpeg-resampler.la
++libpulsecore_la_LIBADD = $(AM_LIBADD) $(LIBLTDL) $(LIBSAMPLERATE_LIBS) $(LIBSNDFILE_LIBS) $(WINSOCK_LIBS) $(LIBOIL_LIBS) $(LTLIBICONV) libspeex-resampler-fixed.la libspeex-resampler-float.la libffmpeg-resampler.la
+
+ ###################################
+ # Plug-in support libraries #
diff --git a/packages/pulseaudio/pulseaudio_0.9.10.bb b/packages/pulseaudio/pulseaudio_0.9.10.bb
index 8c858f9015..8da4a1c7da 100644
--- a/packages/pulseaudio/pulseaudio_0.9.10.bb
+++ b/packages/pulseaudio/pulseaudio_0.9.10.bb
@@ -1,7 +1,7 @@
require pulseaudio.inc
DEPENDS += "dbus"
-PR = "r3"
+PR = "r4"
SRC_URI += "\
file://disable-using-glibc-tls.patch;patch=1 \
@@ -10,6 +10,7 @@ SRC_URI += "\
# file://libtool2.patch;patch=1 \
file://2113.diff;patch=1;pnum=0 \
file://2114.diff;patch=1;pnum=0 \
+ file://libiconv.patch;patch=1 \
"
do_compile_prepend() {
diff --git a/packages/python/python-2.5-manifest.inc b/packages/python/python-2.5-manifest.inc
index 06c187fe91..95a7bd8e0b 100644
--- a/packages/python/python-2.5-manifest.inc
+++ b/packages/python/python-2.5-manifest.inc
@@ -1,5 +1,5 @@
########################################################################################################################
-### AUTO-GENERATED by '../../contrib/python/generate-manifest-2.5.py' [(C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de>] on Thu May 1 12:24:55 2008
+### AUTO-GENERATED by '../../contrib/python/generate-manifest-2.5.py' [(C) 2002-2008 Michael 'Mickey' Lauer <mlauer@vanille-media.de>] on Mon Jul 21 17:03:43 2008
###
### Visit THE Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy
###
@@ -8,9 +8,9 @@
########################################################################################################################
-PROVIDES+="python-profile python-threading python-distutils python-textutils python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-tests python-core-dbg python-resource python-devel python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-debugger python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio "
+PROVIDES+="python-profile python-threading python-distutils python-textutils python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-doctest python-tests python-core-dbg python-resource python-devel python-difflib python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-debugger python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio "
-PACKAGES="python-profile python-threading python-distutils python-textutils python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-tests python-core-dbg python-resource python-devel python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-debugger python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio "
+PACKAGES="python-profile python-threading python-distutils python-textutils python-codecs python-ctypes python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-doctest python-tests python-core-dbg python-resource python-devel python-difflib python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-sqlite3 python-sqlite3-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-debugger python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio "
DESCRIPTION_python-profile="Python Basic Profiling Support"
PR_python-profile="ml0"
@@ -97,6 +97,11 @@ PR_python-image="ml0"
RDEPENDS_python-image="python-core"
FILES_python-image="${libdir}/python2.5/colorsys.* ${libdir}/python2.5/imghdr.* ${libdir}/python2.5/lib-dynload/imageop.so ${libdir}/python2.5/lib-dynload/rgbimg.so "
+DESCRIPTION_python-doctest="Python framework for running examples in docstrings."
+PR_python-doctest="ml0"
+RDEPENDS_python-doctest="python-core python-lang python-io python-re python-unittest python-debugger python-difflib"
+FILES_python-doctest="${libdir}/python2.5/doctest.* "
+
DESCRIPTION_python-tests="Python Tests"
PR_python-tests="ml0"
RDEPENDS_python-tests="python-core"
@@ -117,6 +122,11 @@ PR_python-devel="ml0"
RDEPENDS_python-devel="python-core"
FILES_python-devel="${includedir} ${libdir}/python2.5/config "
+DESCRIPTION_python-difflib="Python helpers for computing deltas between objects."
+PR_python-difflib="ml0"
+RDEPENDS_python-difflib="python-lang python-re"
+FILES_python-difflib="${libdir}/python2.5/difflib.* "
+
DESCRIPTION_python-math="Python Math Support"
PR_python-math="ml0"
RDEPENDS_python-math="python-core"
@@ -253,8 +263,8 @@ RDEPENDS_python-compile="python-core"
FILES_python-compile="${libdir}/python2.5/py_compile.* ${libdir}/python2.5/compileall.* "
DESCRIPTION_python-debugger="Python Debugger"
-PR_python-debugger="ml0"
-RDEPENDS_python-debugger="python-core python-io python-lang python-re python-stringold python-shell"
+PR_python-debugger="ml1"
+RDEPENDS_python-debugger="python-core python-io python-lang python-re python-stringold python-shell python-pprint"
FILES_python-debugger="${libdir}/python2.5/bdb.* ${libdir}/python2.5/pdb.* "
DESCRIPTION_python-shell="Python Shell-Like Functionality"
diff --git a/packages/python/python_2.5.2.bb b/packages/python/python_2.5.2.bb
index 9617871fff..b47ed0b7cf 100644
--- a/packages/python/python_2.5.2.bb
+++ b/packages/python/python_2.5.2.bb
@@ -6,7 +6,7 @@ PRIORITY = "optional"
DEPENDS = "python-native readline zlib gdbm openssl sqlite3 tcl tk"
DEPENDS_sharprom = "python-native readline zlib gdbm openssl"
# bump this on every change in contrib/python/generate-manifest-2.5.py
-PR = "ml6"
+PR = "ml7"
PYTHON_MAJMIN = "2.5"
diff --git a/packages/speech-dispatcher/files/configure_fix.patch b/packages/speech-dispatcher/files/configure_fix.patch
index 19feabf379..d593d4e0ab 100644
--- a/packages/speech-dispatcher/files/configure_fix.patch
+++ b/packages/speech-dispatcher/files/configure_fix.patch
@@ -1,8 +1,16 @@
-Index: speech-dispatcher-0.6.5/configure.in
+Index: speech-dispatcher-0.6.6/configure.in
===================================================================
---- speech-dispatcher-0.6.5.orig/configure.in 2008-03-10 23:11:42.000000000 +0000
-+++ speech-dispatcher-0.6.5/configure.in 2008-03-10 23:14:02.000000000 +0000
-@@ -134,12 +134,15 @@
+--- speech-dispatcher-0.6.6.orig/configure.in 2008-07-20 13:10:44.208894676 +0200
++++ speech-dispatcher-0.6.6/configure.in 2008-07-20 13:11:16.946093820 +0200
+@@ -5,6 +5,7 @@
+
+ dnl progs
+ AC_PROG_CC
++AC_PROG_CXX
+
+ dnl info
+ AM_INIT_AUTOMAKE("speech-dispatcher", "`cat version.sh|grep '^VERSION'|awk -F= '{print $2}'`")
+@@ -134,12 +135,15 @@
AC_SUBST(ibmtts_include)
dnl check for espeak support
@@ -18,10 +26,10 @@ Index: speech-dispatcher-0.6.5/configure.in
AC_ARG_WITH(espeak, AS_HELP_STRING(--with-espeak, Compile with espeak support),
if test $withval = "no"; then
echo "Forced compilation without espeak support.";
-Index: speech-dispatcher-0.6.5/src/modules/Makefile.am
+Index: speech-dispatcher-0.6.6/src/modules/Makefile.am
===================================================================
---- speech-dispatcher-0.6.5.orig/src/modules/Makefile.am 2008-03-10 23:18:50.000000000 +0000
-+++ speech-dispatcher-0.6.5/src/modules/Makefile.am 2008-03-10 23:25:39.000000000 +0000
+--- speech-dispatcher-0.6.6.orig/src/modules/Makefile.am 2008-07-20 13:10:51.768895801 +0200
++++ speech-dispatcher-0.6.6/src/modules/Makefile.am 2008-07-20 13:10:57.665559805 +0200
@@ -8,6 +8,7 @@
EXTRA_DIST = module_main.c module_utils_addvoice.c festival_client.c festival_client.h
@@ -32,15 +40,15 @@ Index: speech-dispatcher-0.6.5/src/modules/Makefile.am
if ibmtts_support
@@ -45,6 +46,6 @@
sd_cicero_SOURCES = cicero.c module_utils.c module_utils.h
- sd_cicero_LDADD = -lm -lpthread -ldotconf @glib_libs@
+ sd_cicero_LDADD = -lpthread -ldotconf @glib_libs@ @gthread_libs@
-sd_espeak_SOURCES = espeak.c module_utils.c module_utils.h
+sd_espeak_SOURCES = espeak.c module_utils.c module_utils.h dummy.cpp
sd_espeak_LDFLAGS = -rpath '$(spdlibdir)'
- sd_espeak_LDADD = -lsdaudio -lm -lespeak -lpthread -ldotconf @SNDFILE_LIBS@ @gthread_libs@
-Index: speech-dispatcher-0.6.5/src/modules/dummy.cpp
+ sd_espeak_LDADD = -lsdaudio -lespeak -lpthread -ldotconf @glib_libs@ @SNDFILE_LIBS@ @gthread_libs@
+Index: speech-dispatcher-0.6.6/src/modules/dummy.cpp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ speech-dispatcher-0.6.5/src/modules/dummy.cpp 2008-03-10 23:26:50.000000000 +0000
++++ speech-dispatcher-0.6.6/src/modules/dummy.cpp 2008-07-20 13:10:57.668895216 +0200
@@ -0,0 +1 @@
+
diff --git a/packages/speech-dispatcher/speech-dispatcher_0.6.6.bb b/packages/speech-dispatcher/speech-dispatcher_0.6.6.bb
index 302f642d67..105c32312f 100644
--- a/packages/speech-dispatcher/speech-dispatcher_0.6.6.bb
+++ b/packages/speech-dispatcher/speech-dispatcher_0.6.6.bb
@@ -5,7 +5,7 @@ LICENSE = "GPLv2"
DEPENDS = "espeak flite pulseaudio libdotconf glib-2.0"
RPROVIDES_${PN} += "speechd"
-PR = "r0"
+PR = "r1"
inherit autotools update-rc.d
diff --git a/packages/sysklogd/sysklogd-1.5/.mtn2git_empty b/packages/sysklogd/sysklogd-1.5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/sysklogd/sysklogd-1.5/.mtn2git_empty
diff --git a/packages/sysklogd/sysklogd-1.5/nonrootinstall.patch b/packages/sysklogd/sysklogd-1.5/nonrootinstall.patch
new file mode 100644
index 0000000000..1f15fa5a46
--- /dev/null
+++ b/packages/sysklogd/sysklogd-1.5/nonrootinstall.patch
@@ -0,0 +1,21 @@
+upstream: not applicable. It seems upstream has made a conscious choice here. See lines 56-61 in the Makefile.
+
+Index: tmp/sysklogd-1.5/Makefile
+===================================================================
+--- sysklogd-1.5.orig/Makefile 2008-07-19 13:33:35.793734746 +0200
++++ sysklogd-1.5/Makefile 2008-07-19 13:34:07.351535636 +0200
+@@ -131,10 +131,10 @@
+ ${INSTALL} -m 500 -s klogd ${BINDIR}/klogd
+
+ install_man:
+- ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} sysklogd.8 ${MANDIR}/man8/sysklogd.8
+- ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} syslogd.8 ${MANDIR}/man8/syslogd.8
+- ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} syslog.conf.5 ${MANDIR}/man5/syslog.conf.5
+- ${INSTALL} -o ${MAN_USER} -g ${MAN_GROUP} -m ${MAN_PERMS} klogd.8 ${MANDIR}/man8/klogd.8
++ ${INSTALL} -m ${MAN_PERMS} sysklogd.8 ${MANDIR}/man8/sysklogd.8
++ ${INSTALL} -m ${MAN_PERMS} syslogd.8 ${MANDIR}/man8/syslogd.8
++ ${INSTALL} -m ${MAN_PERMS} syslog.conf.5 ${MANDIR}/man5/syslog.conf.5
++ ${INSTALL} -m ${MAN_PERMS} klogd.8 ${MANDIR}/man8/klogd.8
+
+ obj-m += oops.o
+
diff --git a/packages/sysklogd/sysklogd.inc b/packages/sysklogd/sysklogd.inc
new file mode 100644
index 0000000000..da05c0e02e
--- /dev/null
+++ b/packages/sysklogd/sysklogd.inc
@@ -0,0 +1,17 @@
+LICENSE = "GPL"
+SECTION = "base"
+DESCRIPTION = "The sysklogd package implements \
+two system log daemons."
+
+SRC_URI = "http://www.ibiblio.org/pub/Linux/system/daemons/sysklogd-${PV}.tar.gz \
+ file://nonrootinstall.patch;patch=1"
+
+CFLAGS_append = " -DSYSV"
+
+do_install () {
+ install -d ${D}${mandir}/man8 \
+ ${D}${mandir}/man5 \
+ ${D}${bindir}
+ oe_runmake 'BINDIR=${D}${bindir}' \
+ 'MANDIR=${D}${mandir}' install
+}
diff --git a/packages/sysklogd/sysklogd_1.4.1.bb b/packages/sysklogd/sysklogd_1.4.1.bb
index da05c0e02e..31843d603f 100644
--- a/packages/sysklogd/sysklogd_1.4.1.bb
+++ b/packages/sysklogd/sysklogd_1.4.1.bb
@@ -1,17 +1 @@
-LICENSE = "GPL"
-SECTION = "base"
-DESCRIPTION = "The sysklogd package implements \
-two system log daemons."
-
-SRC_URI = "http://www.ibiblio.org/pub/Linux/system/daemons/sysklogd-${PV}.tar.gz \
- file://nonrootinstall.patch;patch=1"
-
-CFLAGS_append = " -DSYSV"
-
-do_install () {
- install -d ${D}${mandir}/man8 \
- ${D}${mandir}/man5 \
- ${D}${bindir}
- oe_runmake 'BINDIR=${D}${bindir}' \
- 'MANDIR=${D}${mandir}' install
-}
+require sysklogd.inc
diff --git a/packages/sysklogd/sysklogd_1.5.bb b/packages/sysklogd/sysklogd_1.5.bb
new file mode 100644
index 0000000000..31843d603f
--- /dev/null
+++ b/packages/sysklogd/sysklogd_1.5.bb
@@ -0,0 +1 @@
+require sysklogd.inc
diff --git a/packages/tree/tree_1.5.1.bb b/packages/tree/tree_1.5.2.bb
index 8bca919b22..8bca919b22 100644
--- a/packages/tree/tree_1.5.1.bb
+++ b/packages/tree/tree_1.5.2.bb
diff --git a/packages/u-boot/u-boot-openmoko-devel_git.bb b/packages/u-boot/u-boot-openmoko-devel_git.bb
index c1a5cefe77..3659241dfa 100644
--- a/packages/u-boot/u-boot-openmoko-devel_git.bb
+++ b/packages/u-boot/u-boot-openmoko-devel_git.bb
@@ -1,72 +1,8 @@
-DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) and Neo FreeRunner (GTA02) support"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPL"
-SECTION = "bootloader"
-PRIORITY = "optional"
-PROVIDES = "virtual/bootloader"
-LOCALVERSION = "+git${SRCREV}"
-PV = "1.3.1${LOCALVERSION}"
-PR = "r1"
+require u-boot-openmoko.inc
-UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v4 gta02v5"
-
-DEFAULT_PREFERENCE = "-1"
-
-SRCREV_FORMAT = "git.openmoko.org"
-
-SRCREV = "1dd080c17b105da5cd4720307fa62de38276796a"
-
-SRC_URI = "git://git.openmoko.org/git/u-boot.git;protocol=git;branch=andy \
- file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
+SRC_URI = "\
+ git://git.openmoko.org/git/u-boot.git;protocol=git;branch=andy \
file://makefile-no-dirafter.patch;patch=1 \
"
S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
-TARGET_LDFLAGS = ""
-
-do_svnrev() {
- mv -f tools/setlocalversion tools/setlocalversion.old
- echo "echo ${LOCALVERSION}" >>tools/setlocalversion
-}
-
-do_compile () {
- chmod +x board/neo1973/gta*/split_by_variant.sh
- for mach in ${UBOOT_MACHINES}
- do
- oe_runmake ${mach}_config
- oe_runmake clean
- find board -name lowlevel_foo.bin -exec rm '{}' \;
- oe_runmake all
- oe_runmake u-boot.udfu
- if [ -f u-boot.udfu ]; then
- mv u-boot.udfu u-boot_${mach}.bin
- else
- mv u-boot.bin u-boot_${mach}.bin
- fi
- if [ -f board/${mach}/lowlevel_foo.bin ]; then
- mv board/${mach}/lowlevel_foo.bin lowlevel_foo_${mach}.bin
- else
- find board -name lowlevel_foo.bin -exec mv '{}' lowlevel_foo_${mach}.bin \;
- fi
- done
-}
-
-do_deploy () {
- install -d ${DEPLOY_DIR_IMAGE}
- for mach in ${UBOOT_MACHINES}
- do
- install -m 0644 ${S}/u-boot_${mach}.bin ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/uboot-${mach}-latest.bin
- if [ -f ${S}/lowlevel_foo_${mach}.bin ]; then
- install -m 0644 ${S}/lowlevel_foo_${mach}.bin ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/lowlevel-foo-${mach}-latest.bin
- fi
- done
- install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage
-}
-
-do_deploy[dirs] = "${S}"
-addtask deploy before do_package after do_install
-addtask quilt before do_patch after do_unpack
-addtask svnrev before do_patch after do_quilt
diff --git a/packages/u-boot/u-boot-openmoko_svn.bb b/packages/u-boot/u-boot-openmoko.inc
index ba172c094e..c25afd38f6 100644
--- a/packages/u-boot/u-boot-openmoko_svn.bb
+++ b/packages/u-boot/u-boot-openmoko.inc
@@ -1,40 +1,20 @@
DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) and Neo FreeRunner (GTA02) support"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
+AUTHOR = "Harald Welte <laforge@openmoko.org> et. al."
LICENSE = "GPL"
SECTION = "bootloader"
PRIORITY = "optional"
PROVIDES = "virtual/bootloader"
-LOCALVERSION = "+git${SRCDATE}+svnr${SRCREV}"
+LOCALVERSION = "+gitr${SRCREV}"
PV = "1.3.1${LOCALVERSION}"
-PR = "r1"
-
-SRCREV_FORMAT = "patches"
+PR = "r0"
UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v4 gta02v5"
DEFAULT_PREFERENCE = "-1"
-BLESSED_GIT_REV = "928d1d77f8623c120d8763e20e1ca58df9c5c4c6"
-
-SRC_URI = "\
-
-git://www.denx.de/git/u-boot.git/;protocol=git;name=upstream;tag=${BLESSED_GIT_REV} \
- svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http;name=patches \
- file://uboot-eabi-fix-HACK.patch;patch=1;maxrev=3773 \
- file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
- file://makefile-no-dirafter.patch;patch=1 \
- file://boot-menu-gfx-fix-openmoko-bug-1140.patch;patch=1;maxrev=3775 \
-"
-S = "${WORKDIR}/git"
-
EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
TARGET_LDFLAGS = ""
-do_quilt() {
- mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
- rm -Rf patches .pc
-}
-
do_svnrev() {
mv -f tools/setlocalversion tools/setlocalversion.old
echo "echo ${LOCALVERSION}" >>tools/setlocalversion
diff --git a/packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb b/packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb
deleted file mode 100644
index 2610e16040..0000000000
--- a/packages/u-boot/u-boot-openmoko_1.2.0+git+svn.bb
+++ /dev/null
@@ -1,86 +0,0 @@
-DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) support"
-AUTHOR = "Harald Welte <laforge@openmoko.org>, Openmoko <openmoko-kernel@lists.openmoko.org>"
-LICENSE = "GPL"
-SECTION = "bootloader"
-PRIORITY = "optional"
-
-UBOOT_UPSTREAM_REV = "f34024d4a328e6edd906456da98d2c537155c4f7"
-UBOOT_OPENMOKO_REV = "2943"
-UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4"
-
-LOCALVERSION = "+git${UBOOT_UPSTREAM_REV}+svn${UBOOT_OPENMOKO_REV}"
-PV = "1.2.0${LOCALVERSION}"
-PR = "r2"
-
-PROVIDES = "virtual/bootloader"
-S = "${WORKDIR}/git"
-
-SRC_URI = "\
- git://www.denx.de/git/u-boot.git;protocol=git;tag=${UBOOT_UPSTREAM_REV} \
- svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;rev=${UBOOT_OPENMOKO_REV};proto=http \
- file://uboot-eabi-fix-HACK.patch \
- file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
- file://makefile-no-dirafter.patch;patch=1 \
-"
-
-EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
-TARGET_LDFLAGS = ""
-
-do_quilt() {
- mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
- rm -Rf patches .pc
-}
-
-do_svnrev() {
- mv -f tools/setlocalversion tools/setlocalversion.old
- echo "echo ${LOCALVERSION}" >>tools/setlocalversion
-}
-
-do_configure_prepend() {
- find . -name "*.mk" -exec sed -i 's,-mabi=apcs-gnu,,' {} \;
- find . -name "Makefile" -exec sed -i 's,-mabi=apcs-gnu,,' {} \;
- cat ${WORKDIR}/uboot-eabi-fix-HACK.patch |patch -p1
-}
-
-do_compile () {
- chmod +x board/neo1973/gta*/split_by_variant.sh
- for mach in ${UBOOT_MACHINES}
- do
- oe_runmake ${mach}_config
- oe_runmake clean
- find board -name lowlevel_foo.bin -exec rm '{}' \;
- oe_runmake all
- oe_runmake u-boot.udfu
- if [ -f u-boot.udfu ]; then
- mv u-boot.udfu u-boot_${mach}.bin
- else
- mv u-boot.bin u-boot_${mach}.bin
- fi
- if [ -f board/${mach}/lowlevel_foo.bin ]; then
- mv board/${mach}/lowlevel_foo.bin \
- lowlevel_foo_${mach}.bin
- else
- find board -name lowlevel_foo.bin \
- -exec mv '{}' lowlevel_foo_${mach}.bin \;
- fi
- done
-}
-
-do_deploy () {
- install -d ${DEPLOY_DIR_IMAGE}
- for mach in ${UBOOT_MACHINES}
- do
- install -m 0644 ${S}/u-boot_${mach}.bin ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/uboot-${mach}-latest.bin
- if [ -f ${S}/lowlevel_foo_${mach}.bin ]; then
- install -m 0644 ${S}/lowlevel_foo_${mach}.bin ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/lowlevel-foo-${mach}-latest.bin
- fi
- done
- install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage
-}
-
-do_deploy[dirs] = "${S}"
-addtask deploy before do_package after do_install
-addtask quilt before do_patch after do_unpack
-addtask svnrev before do_patch after do_quilt
diff --git a/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb b/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb
deleted file mode 100644
index 502a62b6ea..0000000000
--- a/packages/u-boot/u-boot-openmoko_1.3.1+git+svn.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-DESCRIPTION = "U-boot bootloader w/ Neo1973 (GTA01) and Neo FreeRunner (GTA02) support"
-AUTHOR = "Harald Welte <laforge@openmoko.org>, Openmoko <openmoko-kernel@lists.openmoko.org>"
-LICENSE = "GPL"
-SECTION = "bootloader"
-PRIORITY = "optional"
-
-UBOOT_UPSTREAM_REV = "b29661fc1151077776454288051bc9a488351ce8"
-UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 gta02v2 gta02v3 gta02v4 gta02v5"
-SRCREV_FORMAT = "patchset"
-
-PV = "1.3.1+svnr${SRCREV}+git${UBOOT_UPSTREAM_REV}"
-PR = "r3"
-
-PROVIDES = "virtual/bootloader"
-S = "${WORKDIR}/git"
-
-SRC_URI = "\
- git://www.denx.de/git/u-boot.git;protocol=git;tag=${UBOOT_UPSTREAM_REV};name=upstream \
- svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http;name=patchset \
- file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \
-"
-
-EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} CROSS_COMPILE=${TARGET_PREFIX}"
-TARGET_LDFLAGS = ""
-
-do_quilt() {
- mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av
- rm -Rf patches .pc
-}
-
-do_svnrev() {
- mv -f tools/setlocalversion tools/setlocalversion.old
- echo "echo ${LOCALVERSION}" >>tools/setlocalversion
-}
-
-do_compile () {
- chmod +x board/neo1973/gta*/split_by_variant.sh
- for mach in ${UBOOT_MACHINES}
- do
- oe_runmake ${mach}_config
- oe_runmake clean
- find board -name lowlevel_foo.bin -exec rm '{}' \;
- oe_runmake all
- oe_runmake u-boot.udfu
- if [ -f u-boot.udfu ]; then
- mv u-boot.udfu u-boot_${mach}.bin
- else
- mv u-boot.bin u-boot_${mach}.bin
- fi
- if [ -f board/${mach}/lowlevel_foo.bin ]; then
- mv board/${mach}/lowlevel_foo.bin \
- lowlevel_foo_${mach}.bin
- else
- find board -name lowlevel_foo.bin \
- -exec mv '{}' lowlevel_foo_${mach}.bin \;
- fi
- done
-}
-
-do_deploy () {
- install -d ${DEPLOY_DIR_IMAGE}
- for mach in ${UBOOT_MACHINES}
- do
- install -m 0644 ${S}/u-boot_${mach}.bin ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/uboot-${mach}-latest.bin
- if [ -f ${S}/lowlevel_foo_${mach}.bin ]; then
- install -m 0644 ${S}/lowlevel_foo_${mach}.bin ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin
- ln -sf ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PV}-${PR}.bin ${DEPLOY_DIR_IMAGE}/lowlevel-foo-${mach}-latest.bin
- fi
- done
- install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage
-}
-
-do_deploy[dirs] = "${S}"
-addtask deploy before do_package after do_install
-addtask quilt before do_patch after do_unpack
-addtask svnrev before do_patch after do_quilt