diff options
38 files changed, 920 insertions, 227 deletions
diff --git a/packages/curl/curl_7.16.4.bb b/packages/curl/curl_7.16.4.bb index 0053a12fdb..555e5bc643 100644 --- a/packages/curl/curl_7.16.4.bb +++ b/packages/curl/curl_7.16.4.bb @@ -2,9 +2,10 @@ DESCRIPTION = "Command line tool and library for client-side URL transfers." LICENSE = "MIT" DEPENDS = "zlib gnutls" SECTION = "console/network" -PR = "r1" +PR = "r2" -SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2" +SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ + file://pkgconfig_fix.patch;patch=1" S = "${WORKDIR}/curl-${PV}" inherit autotools pkgconfig binconfig diff --git a/packages/curl/files/.mtn2git_empty b/packages/curl/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/curl/files/.mtn2git_empty diff --git a/packages/curl/files/pkgconfig_fix.patch b/packages/curl/files/pkgconfig_fix.patch new file mode 100644 index 0000000000..a5730095d2 --- /dev/null +++ b/packages/curl/files/pkgconfig_fix.patch @@ -0,0 +1,14 @@ +Index: curl-7.16.4/libcurl.pc.in +=================================================================== +--- curl-7.16.4.orig/libcurl.pc.in 2007-02-18 09:41:27.000000000 +0000 ++++ curl-7.16.4/libcurl.pc.in 2008-02-29 12:19:32.000000000 +0000 +@@ -33,6 +33,7 @@ + URL: http://curl.haxx.se/ + Description: Library to transfer files with ftp, http, etc. + Version: @VERSION@ +-Libs: -L${libdir} -lcurl @LDFLAGS@ @LIBS@ +-Libs.private: @LIBCURL_LIBS@ @LIBS@ ++Requires.private: gnutls ++Libs: -L${libdir} -lcurl ++Libs.private: -ldl -lz + Cflags: -I${includedir} diff --git a/packages/dtnrg/files/.mtn2git_empty b/packages/dtnrg/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/dtnrg/files/.mtn2git_empty diff --git a/packages/dtnrg/files/configure_fix.patch b/packages/dtnrg/files/configure_fix.patch new file mode 100644 index 0000000000..95587c242c --- /dev/null +++ b/packages/dtnrg/files/configure_fix.patch @@ -0,0 +1,22 @@ +head no longer supports "-1" syntax + +Index: dtn-2.5.0/oasys/aclocal/gcc.ac +=================================================================== +--- dtn-2.5.0.orig/oasys/aclocal/gcc.ac 2008-02-27 22:38:22.000000000 +0000 ++++ dtn-2.5.0/oasys/aclocal/gcc.ac 2008-02-27 22:39:05.000000000 +0000 +@@ -83,13 +83,13 @@ + dnl Figure out the version and set version-specific options + dnl + AC_CACHE_CHECK(for the version of the GNU C compiler, oasys_cv_prog_gccver, [ +- oasys_cv_prog_gccver=`$CC --version | head -1` ++ oasys_cv_prog_gccver=`$CC --version | head -n 1` + oasys_cv_prog_gccver=`echo $oasys_cv_prog_gccver | sed 's/.*gcc.*(GCC) //'` + oasys_cv_prog_gccver=`echo $oasys_cv_prog_gccver | sed 's/ .*//'` + ]) + + AC_CACHE_CHECK(for the version of the GNU C++ compiler, oasys_cv_prog_gxxver, [ +- oasys_cv_prog_gxxver=`$CXX --version | head -1` ++ oasys_cv_prog_gxxver=`$CXX --version | head -n 1` + oasys_cv_prog_gxxver=`echo $oasys_cv_prog_gxxver | sed 's/.*g++.*(GCC) //'` + oasys_cv_prog_gxxver=`echo $oasys_cv_prog_gxxver | sed 's/ .*//'` + ]) diff --git a/packages/gnutls/gnutls-1.6.3/configure_madness.patch b/packages/gnutls/gnutls-1.6.3/configure_madness.patch index 26111dfe96..bdee81cc54 100644 --- a/packages/gnutls/gnutls-1.6.3/configure_madness.patch +++ b/packages/gnutls/gnutls-1.6.3/configure_madness.patch @@ -1,7 +1,7 @@ Index: gnutls-1.6.3/configure.in =================================================================== ---- gnutls-1.6.3.orig/configure.in 2007-05-25 12:28:59.000000000 +0000 -+++ gnutls-1.6.3/configure.in 2007-11-13 17:53:23.000000000 +0000 +--- gnutls-1.6.3.orig/configure.in 2008-02-29 09:58:12.000000000 +0000 ++++ gnutls-1.6.3/configure.in 2008-02-29 09:58:15.000000000 +0000 @@ -574,13 +574,13 @@ AC_LIBTOOL_WIN32_DLL AC_PROG_LIBTOOL @@ -20,3 +20,30 @@ Index: gnutls-1.6.3/configure.in AC_SUBST(LIBGNUTLS_EXTRA_LIBS) AC_SUBST(LIBGNUTLS_EXTRA_CFLAGS) export ac_full +Index: gnutls-1.6.3/lib/gnutls.pc.in +=================================================================== +--- gnutls-1.6.3.orig/lib/gnutls.pc.in 2008-02-29 09:58:23.000000000 +0000 ++++ gnutls-1.6.3/lib/gnutls.pc.in 2008-02-29 09:58:49.000000000 +0000 +@@ -18,6 +18,7 @@ + Name: GnuTLS + Description: Transport Security Layer implementation for the GNU system + Version: @VERSION@ ++Requires.private: gcrypt + Libs: -L${libdir} -lgnutls +-Libs.private: @LIBGNUTLS_LIBS@ ++Libs.private: -L${libdir} -lgnutls + Cflags: -I${includedir} +Index: gnutls-1.6.3/libextra/gnutls-extra.pc.in +=================================================================== +--- gnutls-1.6.3.orig/libextra/gnutls-extra.pc.in 2008-02-29 09:59:02.000000000 +0000 ++++ gnutls-1.6.3/libextra/gnutls-extra.pc.in 2008-02-29 09:59:31.000000000 +0000 +@@ -18,7 +18,8 @@ + Name: GnuTLS-extra + Description: Additional add-ons for GnuTLS licensed under GPL + Requires: gnutls ++Requires.private: gnutls + Version: @VERSION@ + Libs: -L${libdir} -lgnutls-extra +-Libs.private: @LIBGNUTLS_EXTRA_LIBS@ ++Libs.private: -L${libdir} -lgnutls-extra + Cflags: -I${includedir} diff --git a/packages/gnutls/gnutls_1.6.3.bb b/packages/gnutls/gnutls_1.6.3.bb index ddaef1dea3..be68b55d04 100644 --- a/packages/gnutls/gnutls_1.6.3.bb +++ b/packages/gnutls/gnutls_1.6.3.bb @@ -6,4 +6,4 @@ SRC_URI += "\ file://configure_madness.patch;patch=1 \ " -PR = "r3" +PR = "r4" diff --git a/packages/gtk-webcore/files/path_fixes.patch b/packages/gtk-webcore/files/path_fixes.patch new file mode 100644 index 0000000000..adb27bdd85 --- /dev/null +++ b/packages/gtk-webcore/files/path_fixes.patch @@ -0,0 +1,15 @@ +Index: NRCore/configure.in +=================================================================== +--- NRCore.orig/configure.in 2008-02-29 11:01:14.000000000 +0000 ++++ NRCore/configure.in 2008-02-29 12:45:18.000000000 +0000 +@@ -67,8 +67,8 @@ + AC_MSG_RESULT([found. Using prefix $jscore_prefix]) + JSCORE_ENABLE=yes + AC_SUBST(JSCORE_ENABLE) +- JSCORE_LIBS="-L$jscore_prefix/lib -ljscore" +- JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore-jscore/" ++ JSCORE_LIBS="-L$jscore_prefix/lib -lgtk_webcore_jscore" ++ JSCORE_CFLAGS="-I$jscore_prefix/include/gtk-webcore/" + jscore_pkgdatadir="$jscore_prefix/share/gtk-webcore-jscore" + else + AC_MSG_ERROR([JavaScriptCore not found. Use --with-javascriptcore-prefix=PREFIX]) diff --git a/packages/gtk-webcore/osb-nrcit/.mtn2git_empty b/packages/gtk-webcore/osb-nrcit/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/gtk-webcore/osb-nrcit/.mtn2git_empty diff --git a/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch b/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch new file mode 100644 index 0000000000..d26009bbb7 --- /dev/null +++ b/packages/gtk-webcore/osb-nrcit/pkgconfig_fix.patch @@ -0,0 +1,13 @@ +Index: NRCit/gtk-webcore-nrcit.pc.in +=================================================================== +--- NRCit.orig/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:41.000000000 +0000 ++++ NRCit/gtk-webcore-nrcit.pc.in 2008-02-29 13:46:51.000000000 +0000 +@@ -6,6 +6,6 @@ + Name: gtk-webcore-nrcit + Description: Gtk+-WebCore HTML rendering engine, browser interface + Version: @VERSION@ +-Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 +-Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 @LIBCURL_LIBS@ ++Requires: gtk-webcore-jscore gtk-webcore-nrcore xft fontconfig gdk-2.0 gtk+-2.0 glib-2.0 libcurl ++Libs: -L${libdir} -lgtk_webcore_nrcore -lgtk_webcore_nrcit -lgthread-2.0 -lgobject-2.0 + Cflags: -I${includedir}/gtk-webcore/webi -I${includedir}/gtk-webcore diff --git a/packages/gtk-webcore/osb-nrcit_svn.bb b/packages/gtk-webcore/osb-nrcit_svn.bb index 7ea8b3b6fa..57bb096183 100644 --- a/packages/gtk-webcore/osb-nrcit_svn.bb +++ b/packages/gtk-webcore/osb-nrcit_svn.bb @@ -5,11 +5,12 @@ PRIORITY = "optional" SECTION = "gpe" PV = "0.5.2+svnr${SRCREV}" -PR = "r0" +PR = "r1" DEPENDS = "curl librsvg osb-nrcore pango" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCit;proto=https \ + file://pkgconfig_fix.patch;patch=1 \ file://gcc4-fno-threadsafe-statics-NRCit.patch;patch=1" inherit autotools pkgconfig diff --git a/packages/gtk-webcore/osb-nrcore.inc b/packages/gtk-webcore/osb-nrcore.inc index 6fd1d22580..eca304959f 100644 --- a/packages/gtk-webcore/osb-nrcore.inc +++ b/packages/gtk-webcore/osb-nrcore.inc @@ -12,6 +12,8 @@ inherit autotools pkgconfig #/khtml/css/cssproperties.h failes to generate properly with high parallel makes PARALLEL_MAKE = "" +EXTRA_OECONF += "--with-javascriptcore-prefix=${STAGING_EXECPREFIXDIR}" + do_configure () { autotools_do_configure cd ${S} diff --git a/packages/gtk-webcore/osb-nrcore_svn.bb b/packages/gtk-webcore/osb-nrcore_svn.bb index 8e0b4b04b6..b85c06e422 100644 --- a/packages/gtk-webcore/osb-nrcore_svn.bb +++ b/packages/gtk-webcore/osb-nrcore_svn.bb @@ -1,11 +1,12 @@ require osb-nrcore.inc PV = "0.5.2+svnr${SRCREV}" -PR = "r1" +PR = "r3" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \ file://gcc4-fno-threadsafe-statics-NRCore.patch;patch=1 \ - file://build_silence.patch;patch=0;maxdate=20070401" + file://build_silence.patch;patch=0;maxdate=20070401 \ + file://path_fixes.patch;patch=1" S = "${WORKDIR}/NRCore" diff --git a/packages/libmatchbox/files/configure_fixes.patch b/packages/libmatchbox/files/configure_fixes.patch new file mode 100644 index 0000000000..083d32a04f --- /dev/null +++ b/packages/libmatchbox/files/configure_fixes.patch @@ -0,0 +1,79 @@ +--- + configure.ac | 15 +++++++-------- + libmb.pc.in | 2 +- + 2 files changed, 8 insertions(+), 9 deletions(-) + +Index: libmatchbox-1.9/configure.ac +=================================================================== +--- libmatchbox-1.9.orig/configure.ac 2007-11-11 22:26:43.000000000 +0000 ++++ libmatchbox-1.9/configure.ac 2007-11-11 22:52:09.000000000 +0000 +@@ -84,6 +84,7 @@ if test $have_libx11pc = yes; then + xft_pkg=xft + SUPPORTS_XFT=1 + AC_DEFINE(USE_XFT, [1], [Use Xft]) ++ XFT_REQUIRED="xft" + fi + # XXX : xau is missing from x11.pc - workaround is too add here + PKG_CHECK_MODULES(XLIBS, x11 xext $xft_pkg) +@@ -108,6 +109,7 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ XFT_REQUIRED="xft" + else + + AC_PATH_PROG(XFT_CONFIG, xft-config, no) +@@ -122,21 +124,17 @@ if test x$enable_xft != xno; then + AC_DEFINE(USE_XFT, [1], [Use Xft]) + SUPPORTS_XFT=1 + AC_MSG_RESULT(yes) ++ MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XFT_CFLAGS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XFT_LIBS" + fi + fi + fi + + XLIBS_CFLAGS="$XLIBS_CLAGS $XFT_CFLAGS" +-XLIBS_LIBS="$X_LIBS $XFT_LIBS -lX11 -lXext" +- +-MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS" ++XLIBS_LIBS="$XLIBS_LIBS $XFT_LIBS -lX11 -lXext" + + fi + +-# do this here for freetype include +-MB_EXTRA_CFLAGS="$MB_EXTRA_CFLAGS $XLIBS_CFLAGS" +- +- + dnl ------ Check for Pango --------------------------------------------------- + + if test x$enable_pango != xno; then +@@ -172,7 +170,7 @@ if test x$enable_png != xno; then + AC_DEFINE(USE_PNG, [1], [Use Png]) + SUPPORTS_PNG=1 + PNG_LIBS="-lpng -lz" +- MB_EXTRA_LIBS="$MB_EXTRA_LIBS $XLIBS_LIBS $PNG_LIBS" ++ MB_EXTRA_LIBS="$MB_EXTRA_LIBS $PNG_LIBS" + else + AC_MSG_WARN([*** Cannot find PNG, disabling support]) + enable_png=no +@@ -340,6 +338,7 @@ AC_SUBST(MB_EXTRA_CFLAGS) + AC_SUBST(XLIBS_REQUIRED) + AC_SUBST(PANGO_REQUIRED) + AC_SUBST(PNG_REQUIRED) ++AC_SUBST(XFT_REQUIRED) + + dnl ------ Below used for mbconfig.h ---------------------------------------- + +Index: libmatchbox-1.9/libmb.pc.in +=================================================================== +--- libmatchbox-1.9.orig/libmb.pc.in 2007-11-11 22:30:47.000000000 +0000 ++++ libmatchbox-1.9/libmb.pc.in 2007-11-11 22:31:01.000000000 +0000 +@@ -7,6 +7,6 @@ Name: libmb + Description: Utility Library used by Matchbox utilities. + Version: @VERSION@ + +-Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ ++Requires: @XLIBS_REQUIRED@ @PANGO_REQUIRED@ @PNG_REQUIRED@ @XFT_REQUIRED@ + Libs: -L${libdir} -lmb @MB_EXTRA_LIBS@ + Cflags: -I${includedir} @MB_EXTRA_CFLAGS@ diff --git a/packages/libmatchbox/libmatchbox_1.2.bb b/packages/libmatchbox/libmatchbox_1.2.bb deleted file mode 100644 index 467a3b1d74..0000000000 --- a/packages/libmatchbox/libmatchbox_1.2.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r2" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.3.bb b/packages/libmatchbox/libmatchbox_1.3.bb deleted file mode 100644 index 7213e71542..0000000000 --- a/packages/libmatchbox/libmatchbox_1.3.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.4.bb b/packages/libmatchbox/libmatchbox_1.4.bb deleted file mode 100644 index 7213e71542..0000000000 --- a/packages/libmatchbox/libmatchbox_1.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/libmatchbox/${PV}/libmatchbox-${PV}.tar.bz2 \ - file://autofoo.patch;patch=1" diff --git a/packages/libmatchbox/libmatchbox_1.5.bb b/packages/libmatchbox/libmatchbox_1.5.bb deleted file mode 100644 index 2f63f7ee64..0000000000 --- a/packages/libmatchbox/libmatchbox_1.5.bb +++ /dev/null @@ -1,11 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://check.m4 \ - file://autofoo.patch;patch=1" - -do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ -} diff --git a/packages/libmatchbox/libmatchbox_1.6.bb b/packages/libmatchbox/libmatchbox_1.6.bb deleted file mode 100644 index 29b04635ff..0000000000 --- a/packages/libmatchbox/libmatchbox_1.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -require libmatchbox.inc - -PR = "r1" - -SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://check.m4 \ - file://fix-configure-for-1.9.patch;patch=1" - -do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ -} diff --git a/packages/libmatchbox/libmatchbox_1.9.bb b/packages/libmatchbox/libmatchbox_1.9.bb index b9044a1d60..a0c5e272c0 100644 --- a/packages/libmatchbox/libmatchbox_1.9.bb +++ b/packages/libmatchbox/libmatchbox_1.9.bb @@ -1,10 +1,12 @@ require libmatchbox.inc -PR = "r1" + +PR = "r5" SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz \ - file://16bppfixes-2.patch;patch=1 \ + file://16bppfixes.patch;patch=1 \ + file://configure_fixes.patch;patch=1 \ file://check.m4" do_configure_prepend () { - mv ${WORKDIR}/check.m4 ${S}/ + cp ${WORKDIR}/check.m4 ${S}/ } diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch new file mode 100644 index 0000000000..d8b4d2d017 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity-powerpc.patch @@ -0,0 +1,44 @@ +Index: linux-2.6.24.3/arch/powerpc/kernel/idle.c +=================================================================== +--- linux-2.6.24.3.orig/arch/powerpc/kernel/idle.c 2008-02-29 14:49:40.000000000 +0100 ++++ linux-2.6.24.3/arch/powerpc/kernel/idle.c 2008-02-29 16:29:23.000000000 +0100 +@@ -19,6 +19,7 @@ + * 2 of the License, or (at your option) any later version. + */ + ++#include <linux/leds.h> + #include <linux/sched.h> + #include <linux/kernel.h> + #include <linux/smp.h> +@@ -51,6 +52,12 @@ + __setup("powersave=off", powersave_off); + + /* ++ * CPU activity indicator. ++ */ ++void (*leds_idle)(int is_idle); ++EXPORT_SYMBOL(leds_idle); ++ ++/* + * The body of the idle task. + */ + void cpu_idle(void) +@@ -64,7 +71,8 @@ + while (!need_resched() && !need_resched_delayed() && + !cpu_should_die()) { + ppc64_runlatch_off(); +- ++ if (leds_idle) ++ leds_idle(1); + if (ppc_md.power_save) { + clear_thread_flag(TIF_POLLING_NRFLAG); + /* +@@ -99,6 +107,8 @@ + if (cpu_should_die()) + cpu_die(); + __preempt_enable_no_resched(); ++ if (leds_idle) ++ leds_idle(0); + schedule(); + preempt_disable(); + } diff --git a/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch new file mode 100644 index 0000000000..2495b9b3f7 --- /dev/null +++ b/packages/linux/linux-rt-2.6.24/leds-cpu-activity.patch @@ -0,0 +1,554 @@ +Index: linux-2.6.24.3/drivers/leds/Kconfig +=================================================================== +--- linux-2.6.24.3.orig/drivers/leds/Kconfig 2008-02-29 13:56:08.000000000 +0100 ++++ linux-2.6.24.3/drivers/leds/Kconfig 2008-02-29 13:56:11.000000000 +0100 +@@ -130,6 +130,15 @@ + This allows LEDs to be controlled by a programmable timer + via sysfs. If unsure, say Y. + ++config LEDS_TRIGGER_CPU_ACTIVITY ++ tristate "LED CPU Activity Trigger" ++ depends on LEDS_TRIGGERS ++ help ++ This allows LEDs to be set to show cpu activity via sysfs. ++ The LED will blink when the cpu is active and stay steady ++ (on or off according to the trigger selected) when idle. ++ Platform support is needed for this to work. If unsure, say Y. ++ + config LEDS_TRIGGER_IDE_DISK + bool "LED IDE Disk Trigger" + depends on LEDS_TRIGGERS && BLK_DEV_IDEDISK +Index: linux-2.6.24.3/drivers/leds/ledtrig-cpu.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.24.3/drivers/leds/ledtrig-cpu.c 2008-02-29 13:56:11.000000000 +0100 +@@ -0,0 +1,502 @@ ++/* ++ * LEDs CPU activity trigger ++ * ++ * Author: John Bowler <jbowler@acm.org> ++ * ++ * Copyright (c) 2006 John Bowler ++ * ++ * Permission is hereby granted, free of charge, to any ++ * person obtaining a copy of this software and associated ++ * documentation files (the "Software"), to deal in the ++ * Software without restriction, including without ++ * limitation the rights to use, copy, modify, merge, ++ * publish, distribute, sublicense, and/or sell copies of ++ * the Software, and to permit persons to whom the ++ * Software is furnished to do so, subject to the ++ * following conditions: ++ * ++ * The above copyright notice and this permission notice ++ * shall be included in all copies or substantial portions ++ * of the Software. ++ * ++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ++ * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED ++ * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A ++ * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT ++ * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ++ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ++ * OTHER DEALINGS IN THE SOFTWARE. ++ * ++ */ ++ ++#include <linux/ctype.h> ++#include <linux/kernel.h> ++#include <linux/module.h> ++#include <linux/init.h> ++#include <linux/spinlock.h> ++#include <linux/timer.h> ++#include <linux/device.h> ++ ++#include <linux/leds.h> ++#include "leds.h" ++ ++//#include <linux/list.h> ++//#include <linux/sysdev.h> ++ ++ ++/* ++ * To simplify this the LED state is given for each case of ++ * CPU state - idle or active. The LED can be: ++ * ++ * off ++ * flash - slow for idle, fast (flicker) for active ++ * on ++ * ++ * This gives two useless states - off/off and on/on ++ */ ++typedef enum cpu_trigger_led_state { ++ cpu_led_off, ++ cpu_led_flash, ++ cpu_led_on, ++ cpu_led_invalid ++} cpu_trigger_led_state; ++ ++static const char *const cpu_trigger_names[] = { ++ "off", ++ "flash", ++ "on", ++ "invalid" ++}; ++ ++/* Forward declaration - this is called back when an LED property ++ * is changed. ++ */ ++static void leds_cpu_trigger_state_change(void); ++ ++/* ++ * These constants define the actual mark/space of the flashing ++ * in jiffies. msecs_to_jiffies rounds up and is compile time ++ * evaluable for constant arguments. Writing the ?: stuff below ++ * this way ensures the compiler doesn't think it needs to ++ * compile in the math of msecs_to_jiffies. ++ * ++ * These values have been determined by experiment to work well ++ * for the ready/status LED on a LinkSys NSLU2 (light piped) and ++ * for the user LED on a Loft (Gateway Avila variant) board where ++ * the LED was directly visible. Light Output Varies Everywhere. ++ */ ++#define LEDS_CPU_ACTIVE_MARK msecs_to_jiffies(40) ++#define LEDS_CPU_IDLE_MARK msecs_to_jiffies(800) ++#define LEDS_CPU_ACTIVE_SPACE msecs_to_jiffies(60) ++#define LEDS_CPU_IDLE_SPACE msecs_to_jiffies(800) ++ ++ ++/* ++ * Individual LEDs ------------------------------------------------------------ ++ */ ++struct cpu_trigger_data { ++ cpu_trigger_led_state active; /* Behaviour when the CPU is active. */ ++ cpu_trigger_led_state idle; /* Behaviour when the CPU is idle. */ ++}; ++ ++/* ++ * LED state change - called when the state of a single LED might ++ * have changed. Returns true if the LED is blinking. The argument ++ * is the blink state - the brightness of the blinking LED. ++ */ ++static int leds_cpu_trigger_led_state_change(struct led_classdev *led, ++ int is_active, enum led_brightness brightness) ++{ ++ int is_blinking = 0; ++ ++ struct cpu_trigger_data *data = led->trigger_data; ++ ++ /* Find the new brightness for the LED, if the LED is ++ * set to flash then the brightness passed in is the ++ * required value. ++ */ ++ if (likely(data != 0)) ++ switch (is_active ? data->active : data->idle) { ++ case cpu_led_off: brightness = LED_OFF; break; ++ case cpu_led_flash: is_blinking = 1; break; ++ case cpu_led_on: brightness = LED_FULL; break; ++ } ++ else ++ brightness = is_active ? LED_FULL : LED_OFF; ++ ++ led_set_brightness(led, brightness); ++ ++ return is_blinking; ++} ++ ++/* ++ * sysfs properties, the property is output at an list of the ++ * values with the current setting enclosed in [] ++ */ ++static ssize_t leds_cpu_trigger_show_prop(struct device *dev, ++ struct device_attribute *attr, char *buf, size_t where) ++{ ++ struct led_classdev *led = dev_get_drvdata(dev); ++ cpu_trigger_led_state item = cpu_led_invalid, i; ++ char *next; ++ ++ if (likely(led->trigger_data != 0)) ++ item = *(const cpu_trigger_led_state*)( ++ led->trigger_data + where); ++ ++ for (i=0, next=buf; i<cpu_led_invalid; ++i) { ++ const char *name = cpu_trigger_names[i]; ++ size_t len = strlen(name); ++ ++ if (i == item) ++ *next++ = '['; ++ memcpy(next, name, len); ++ next += len; ++ if (i == item) ++ *next++ = ']'; ++ *next++ = ' '; ++ } ++ ++ next[-1] = '\n'; ++ *next++ = 0; ++ ++ return next - buf; ++} ++ ++static ssize_t leds_cpu_trigger_show_active(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, active)); ++} ++ ++static ssize_t leds_cpu_trigger_show_idle(struct device *dev, ++ struct device_attribute *attr, char *buf) ++{ ++ return leds_cpu_trigger_show_prop(dev, attr, buf, ++ offsetof(struct cpu_trigger_data, idle)); ++} ++ ++/* ++ * Any matching leading substring selects a property - so "onoffonoff" ++ * sets the property to off. ++ */ ++static ssize_t leds_cpu_trigger_store_prop(struct device *dev, ++ struct device_attribute *attr, const char *buf, ++ size_t size, size_t where) ++{ ++ size_t rc = 0; ++ cpu_trigger_led_state value = 0/*sic*/; ++ struct led_classdev *led; ++ ++ /* ignore space characters before the value. */ |
