diff options
Diffstat (limited to 'packages')
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 |