diff options
Diffstat (limited to 'packages')
33 files changed, 1393 insertions, 144 deletions
diff --git a/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch b/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch deleted file mode 100644 index c4897c0330..0000000000 --- a/packages/gcc/gcc-4.1.0/arm-nolibfloat.patch +++ /dev/null @@ -1,24 +0,0 @@ -# Dimitry Andric <dimitry@andric.com>, 2004-05-01 -# -# * Removed the extra -lfloat option from LIBGCC_SPEC, since it isn't needed -# anymore. (The required functions are now in libgcc.) -# -# Fixes errors like -# arm-softfloat-linux-gnu/3.4.0/../../../../arm-softfloat-linux-gnu/bin/ld: cannot find -lfloat -# collect2: ld returned 1 exit status -# make[2]: *** [arm-softfloat-linux-gnu/gcc-3.4.0-glibc-2.3.2/build-glibc/iconvdata/ISO8859-1.so] Error 1 -# when building glibc-2.3.3 with gcc-3.4.0 for arm-softfloat - -Index: gcc-4.0.2/gcc/config/arm/linux-elf.h -=================================================================== ---- gcc-4.0.2.orig/gcc/config/arm/linux-elf.h 2005-03-04 16:14:01.000000000 +0000 -+++ gcc-4.0.2/gcc/config/arm/linux-elf.h 2005-11-11 18:02:54.000000000 +0000 -@@ -56,7 +56,7 @@ - %{shared:-lc} \ - %{!shared:%{profile:-lc_p}%{!profile:-lc}}" - --#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" -+#define LIBGCC_SPEC "-lgcc" - - /* Provide a STARTFILE_SPEC appropriate for GNU/Linux. Here we add - the GNU/Linux magical crtbegin.o file (see crtstuff.c) which diff --git a/packages/gcc/gcc-4.1.0/arm-softfloat.patch b/packages/gcc/gcc-4.1.0/arm-softfloat.patch deleted file mode 100644 index c86c83ed15..0000000000 --- a/packages/gcc/gcc-4.1.0/arm-softfloat.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: gcc-4.0.2/gcc/config/arm/t-linux -=================================================================== ---- gcc-4.0.2.orig/gcc/config/arm/t-linux 2004-05-15 12:41:35.000000000 +0000 -+++ gcc-4.0.2/gcc/config/arm/t-linux 2005-11-11 16:07:53.000000000 +0000 -@@ -4,7 +4,10 @@ - LIBGCC2_DEBUG_CFLAGS = -g0 - - LIB1ASMSRC = arm/lib1funcs.asm --LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx -+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \ -+ _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \ -+ _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \ -+ _fixsfsi _fixunssfsi _floatdidf _floatdisf - - # MULTILIB_OPTIONS = mhard-float/msoft-float - # MULTILIB_DIRNAMES = hard-float soft-float diff --git a/packages/gcc/gcc-4.1.0/ldflags.patch b/packages/gcc/gcc-4.1.0/ldflags.patch deleted file mode 100644 index 9576f60778..0000000000 --- a/packages/gcc/gcc-4.1.0/ldflags.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- /tmp/Makefile.in 2006-02-23 20:56:01.399758728 +0100 -+++ gcc-4.1-20060217/Makefile.in 2006-02-23 20:56:16.874406224 +0100 -@@ -334,7 +334,7 @@ - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates --LDFLAGS_FOR_TARGET = -+LDFLAGS_FOR_TARGET = @LDFLAGS@ - PICFLAG_FOR_TARGET = - - # ------------------------------------ ---- /tmp/Makefile.tpl 2006-02-23 20:50:34.077519272 +0100 -+++ gcc-4.1-20060217/Makefile.tpl 2006-02-23 21:04:31.092273688 +0100 -@@ -337,7 +337,7 @@ - CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) - LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) - LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates --LDFLAGS_FOR_TARGET = -+LDFLAGS_FOR_TARGET = @LDFLAGS@ - PICFLAG_FOR_TARGET = - - # ------------------------------------ diff --git a/packages/gcc/gcc-4.1.0/pr34130.patch b/packages/gcc/gcc-4.1.0/pr34130.patch deleted file mode 100644 index 415335f4b4..0000000000 --- a/packages/gcc/gcc-4.1.0/pr34130.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: gcc-4.1.2/gcc/fold-const.c -=================================================================== ---- gcc-4.1.2.orig/gcc/fold-const.c 2007-11-21 18:53:42.000000000 +0100 -+++ gcc-4.1.2/gcc/fold-const.c 2007-11-21 18:56:26.000000000 +0100 -@@ -5339,7 +5339,10 @@ - } - break; - } -- /* FALLTHROUGH */ -+ /* If the constant is negative, we cannot simplify this. */ -+ if (tree_int_cst_sgn (c) == -1) -+ break; -+ /* FALLTHROUGH */ - case NEGATE_EXPR: - if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0) - return fold_build1 (tcode, ctype, fold_convert (ctype, t1)); diff --git a/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch b/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch deleted file mode 100644 index 6afb10d6ef..0000000000 --- a/packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch +++ /dev/null @@ -1,31 +0,0 @@ -Index: gcc-4.0.2/gcc/c-incpath.c -=================================================================== ---- gcc-4.0.2.orig/gcc/c-incpath.c 2005-01-23 16:05:27.000000000 +0100 -+++ gcc-4.0.2/gcc/c-incpath.c 2006-05-15 21:23:02.000000000 +0200 -@@ -350,6 +350,26 @@ - p->construct = 0; - p->user_supplied_p = user_supplied_p; - -+#ifdef CROSS_COMPILE -+ /* A common error when cross compiling is including -+ host headers. This code below will try to fail fast -+ for cross compiling. Currently we consider /usr/include, -+ /opt/include and /sw/include as harmful. */ -+ { -+ /* printf("Adding Path: %s\n", p->name ); */ -+ if( strstr(p->name, "/usr/include" ) == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /usr/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } else if( strstr(p->name, "/sw/include") == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /sw/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } else if( strstr(p->name, "/opt/include") == p->name ) { -+ fprintf(stderr, _("CROSS COMPILE Badness: /opt/include in INCLUDEPATH: %s\n"), p->name); -+ abort(); -+ } -+ } -+#endif -+ - add_cpp_dir_path (p, chain); - } - diff --git a/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch b/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch deleted file mode 100644 index 120cf55a0f..0000000000 --- a/packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: gcc-4.1.0/Makefile.in -=================================================================== ---- gcc-4.1.0.orig/Makefile.in 2005-12-15 15:02:02.000000000 +0100 -+++ gcc-4.1.0/Makefile.in 2006-08-06 13:29:36.000000000 +0200 -@@ -194,6 +194,7 @@ - AS="$(COMPILER_AS_FOR_TARGET)"; export AS; \ - CC="$(CC_FOR_TARGET)"; export CC; \ - CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ -+ CPP="$(CC_FOR_TARGET) -E"; export CCP; \ - CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ - CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \ - CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ diff --git a/packages/libc-client/.mtn2git_empty b/packages/libc-client/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libc-client/.mtn2git_empty diff --git a/packages/libc-client/libc-client_2007.bb b/packages/libc-client/libc-client_2007.bb new file mode 100644 index 0000000000..87035afec4 --- /dev/null +++ b/packages/libc-client/libc-client_2007.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "UW c-client library for mail protocols" +SECTION = "devel" +PRIORITY = "optional" +LICENSE = "University of Washington's Free-Fork License" +DEPENDS = "libpam openssl" + +SRC_URI = "ftp://ftp.cac.washington.edu/imap/c-client.tar.Z" + +S = "${WORKDIR}/imap-2007" + +EXTRA_OEMAKE = "CC='${CC}'" + +HEADERS = "src/c-client/*.h src/osdep/unix/*.h c-client/auths.c c-client/linkage.c c-client/linkage.h c-client/osdep.h" + +do_compile() { + echo "SSLINCLUDE=${STAGING_INCDIR}/openssl SSLLIB=${STAGING_LIBDIR}" > ${S}/SPECIALS + oe_runmake lnp +} + +do_stage() { + install -d ${STAGING_INCDIR}/c-client + install ${HEADERS} ${STAGING_INCDIR}/c-client + install c-client/c-client.a ${STAGING_LIBDIR}/libc-client.a +} + diff --git a/packages/libexosip2/.mtn2git_empty b/packages/libexosip2/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libexosip2/.mtn2git_empty diff --git a/packages/libexosip2/files/.mtn2git_empty b/packages/libexosip2/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/libexosip2/files/.mtn2git_empty diff --git a/packages/libexosip2/files/simplify-flags.patch b/packages/libexosip2/files/simplify-flags.patch new file mode 100644 index 0000000000..62bb768861 --- /dev/null +++ b/packages/libexosip2/files/simplify-flags.patch @@ -0,0 +1,27 @@ +diff -urN libeXosip2-2.2.3.orig/src/Makefile.am libeXosip2-2.2.3/src/Makefile.am +--- libeXosip2-2.2.3.orig/src/Makefile.am 2005-10-07 14:44:38.000000000 +0200 ++++ libeXosip2-2.2.3/src/Makefile.am 2008-01-23 16:05:07.000000000 +0100 +@@ -27,7 +27,7 @@ + jpipe.c jpipe.h jauth.c \ + sdp_offans.c jpublish.c + +-libeXosip2_la_LDFLAGS = -L$(prefix)/lib -version-info $(LIBEXOSIP_SO_VERSION) ++libeXosip2_la_LDFLAGS = -version-info $(LIBEXOSIP_SO_VERSION) + libeXosip2_la_LIBADD = -losip2 @EXOSIP_LIB@ @PTHREAD_LIBS@ + +-INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include -I$(includedir) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include +diff -urN libeXosip2-2.2.3.orig/tools/Makefile.am libeXosip2-2.2.3/tools/Makefile.am +--- libeXosip2-2.2.3.orig/tools/Makefile.am 2005-07-24 02:11:43.000000000 +0200 ++++ libeXosip2-2.2.3/tools/Makefile.am 2008-01-23 16:11:07.000000000 +0100 +@@ -9,8 +9,8 @@ + + sip_reg_LDFLAGS = -O @EXOSIP_LIB@ @PTHREAD_LIBS@ @JOSUA_LIB@ + +-sip_reg_LDADD = -L$(prefix)/lib $(top_builddir)/src/libeXosip2.la -losip2 -losipparser2 ++sip_reg_LDADD = $(top_builddir)/src/libeXosip2.la -losip2 -losipparser2 + +-INCLUDES = -I$(prefix)/include -I$(top_srcdir) -I$(top_srcdir)/include -I$(includedir) ++INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/include + + diff --git a/packages/libexosip2/libexosip2_2.2.3.bb b/packages/libexosip2/libexosip2_2.2.3.bb new file mode 100644 index 0000000000..5251d0e2e2 --- /dev/null +++ b/packages/libexosip2/libexosip2_2.2.3.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "High level Session Initiation Protocol (SIP) library" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPL" +DEPENDS = "libosip2" +SRCNAME = "libeXosip2" +LEAD_SONAME = "libeXosip2" + +PR = "r0" +SRC_URI = "http://download.savannah.nongnu.org/releases/exosip/${SRCNAME}-${PV}.tar.gz \ + file://simplify-flags.patch;patch=1" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools pkgconfig +EXTRA_OECONF = "--disable-josua" + +do_stage() { + autotools_stage_all +} diff --git a/packages/linux/linux-openmoko_2.6.24.bb b/packages/linux/linux-openmoko_2.6.24.bb new file mode 100644 index 0000000000..d58f231d69 --- /dev/null +++ b/packages/linux/linux-openmoko_2.6.24.bb @@ -0,0 +1,60 @@ +require linux.inc +require linux-openmoko.inc + +DESCRIPTION = "Linux 2.6.x (development) kernel for FIC SmartPhones shipping w/ OpenMoko" +VANILLA_VERSION = "2.6.24" +KERNEL_RELEASE = "2.6.24" + +KERNEL_VERSION = "${KERNEL_RELEASE}" + +PV = "${VANILLA_VERSION}+svnr${SRCREV}" +PR = "r1" + +KERNEL_IMAGETYPE = "uImage" +UBOOT_ENTRYPOINT = "30008000" + +############################################################## +# source and patches +# +SRCREV_FORMAT = "patches-rconfig" + +SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=patches;proto=http;name=patches \ + svn://svn.openmoko.org/branches/src/target/kernel/2.6.24.x;module=config;proto=http;name=config " + +S = "${WORKDIR}/linux-${VANILLA_VERSION}" + +############################################################## +# kernel image resides on a seperate flash partition (for now) +# +ALLOW_EMPTY = "1" + +COMPATIBLE_HOST = "arm.*-linux" +COMPATIBLE_MACHINE = 'fic-gta01|fic-gta02' + +CMDLINE = "unused -- bootloader passes ATAG list" + +############################################################### +# module configs specific to this kernel +# + +# usb +module_autoload_ohci-hcd = "ohci-hcd" +module_autoload_hci_usb = "hci_usb" +module_autoload_g_ether = "g_ether" +# audio +module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753" +module_autoload_snd-soc-neo1973-gta02-wm8753 = "snd-soc-neo1973-gta02-wm8753" +module_autoload_snd-pcm-oss = "snd-pcm-oss" +module_autoload_snd-mixer-oss = "snd-mixer-oss" +# sd/mmc +module_autoload_s3cmci = "s3cmci" + +do_prepatch() { + mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av + mv patches patches.openmoko + mv .pc .pc.old + mv ${WORKDIR}/config/defconfig-${KERNEL_VERSION} ${WORKDIR}/defconfig +} + +addtask prepatch after do_unpack before do_patch diff --git a/packages/linux/linux-rp-2.6.23/defconfig-spitz b/packages/linux/linux-rp-2.6.23/defconfig-spitz index a18218f2d1..a4e849cba2 100644 --- a/packages/linux/linux-rp-2.6.23/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.23/defconfig-spitz @@ -579,7 +579,7 @@ CONFIG_MTD_ROM=m # CONFIG_MTD_COMPLEX_MAPPINGS=y # CONFIG_MTD_PHYSMAP is not set -CONFIG_MTD_SHARP_SL=y +CONFIG_MTD_SHARP_SL=m # CONFIG_MTD_PLATRAM is not set # @@ -821,6 +821,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y +CONFIG_SHARPSL_RC=m # CONFIG_KEYBOARD_PXA27x is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_INPUT_MOUSE is not set diff --git a/packages/linux/linux-rp-2.6.23/mtd-module.patch b/packages/linux/linux-rp-2.6.23/mtd-module.patch new file mode 100644 index 0000000000..4aa2f22aee --- /dev/null +++ b/packages/linux/linux-rp-2.6.23/mtd-module.patch @@ -0,0 +1,13 @@ +Index: linux-2.6.23/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.23/drivers/mtd/maps/Kconfig ++++ linux-2.6.23/drivers/mtd/maps/Kconfig +@@ -600,7 +600,7 @@ + default "4" + + config MTD_SHARP_SL +- bool "ROM mapped on Sharp SL Series" ++ tristate "ROM mapped on Sharp SL Series" + depends on ARCH_PXA + help + This enables access to the flash chip on the Sharp SL Series of PDAs. diff --git a/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch b/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch new file mode 100644 index 0000000000..08f1f2e721 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch @@ -0,0 +1,519 @@ +Index: linux-2.6.23/arch/arm/mach-pxa/spitz.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/mach-pxa/spitz.c ++++ linux-2.6.23/arch/arm/mach-pxa/spitz.c +@@ -245,6 +245,13 @@ static struct platform_device spitzkbd_d + .id = -1, + }; + ++/* ++ * Spitz Remote Control Device ++ */ ++static struct platform_device sharpsl_rc_device = { ++ .name = "sharpsl-remote-control", ++ .id = -1, ++}; + + /* + * Spitz LEDs +@@ -477,6 +484,7 @@ static struct platform_device *devices[] + &spitzscoop_device, + &spitzssp_device, + &spitzkbd_device, ++ &sharpsl_rc_device, + &spitzts_device, + &spitzbl_device, + &spitzled_device, +Index: linux-2.6.23/drivers/input/keyboard/Kconfig +=================================================================== +--- linux-2.6.23.orig/drivers/input/keyboard/Kconfig ++++ linux-2.6.23/drivers/input/keyboard/Kconfig +@@ -154,6 +154,17 @@ config KEYBOARD_SPITZ + To compile this driver as a module, choose M here: the + module will be called spitzkbd. + ++config SHARPSL_RC ++ tristate "Sharp SL-Cxx00 Remote Control" ++ depends on PXA_SHARPSL ++ default y ++ help ++ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00, ++ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called sharpsl_rc. ++ + config KEYBOARD_AMIGA + tristate "Amiga keyboard" + depends on AMIGA +Index: linux-2.6.23/drivers/input/keyboard/Makefile +=================================================================== +--- linux-2.6.23.orig/drivers/input/keyboard/Makefile ++++ linux-2.6.23/drivers/input/keyboard/Makefile +@@ -15,6 +15,7 @@ obj-$(CONFIG_KEYBOARD_NEWTON) += newton + obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o + obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o + obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o ++obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o + obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o + obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o + obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o +Index: linux-2.6.23/drivers/input/keyboard/sharpsl_rc.c +=================================================================== +--- /dev/null ++++ linux-2.6.23/drivers/input/keyboard/sharpsl_rc.c +@@ -0,0 +1,291 @@ ++/* ++ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00) ++ * ++ * Copyright (c) 2004-2005 Richard Purdie ++ * ++ * Based on corgikbd.c and Sharp's RC driver ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#define DEBUG 1 ++#include <linux/delay.h> ++#include <linux/platform_device.h> ++#include <linux/init.h> ++#include <linux/input.h> ++#include <linux/interrupt.h> ++#include <linux/jiffies.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++#ifdef CONFIG_MACH_SPITZ ++#include <asm/arch/spitz.h> ++#endif ++#ifdef CONFIG_MACH_CORGI ++#include <asm/arch/corgi.h> ++#endif ++ ++#include <asm/arch/hardware.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/hardware/scoop.h> ++#include <asm/arch/sharpsl.h> ++#include <asm/hardware/sharpsl_pm.h> ++ ++#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args) ++ ++struct remote_control_key { ++ unsigned char min; ++ unsigned char max; ++ unsigned char key; ++}; ++ ++#ifdef CONFIG_MACH_SPITZ ++#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE spitzscoop2_device ++#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT ++#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++#ifdef CONFIG_MACH_CORGI ++#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE corgiscoop_device ++#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT ++#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ //These need to be fixed for the CE-RH1's values ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++ ++#define RELEASE_HI 230 ++#define MAX_EARPHONE 6 ++#define RC_POLL_MS 10 ++#define RC_FINISH_MS 500 ++#define WAIT_STATE 3 ++#define NOISE_THRESHOLD 100 ++ ++struct sharpsl_rc { ++ struct input_dev *input; ++ struct device *dev; ++ ++ spinlock_t lock; ++ struct timer_list rctimer; ++ struct timer_list rctimer_finish; ++ ++ unsigned int handling_press; ++ unsigned int noise; ++ unsigned int state; ++ unsigned int last_key; ++}; ++ ++static int get_remocon_raw(void) ++{ ++ int i, val; ++ ++ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM); ++ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) { ++ if (val >= remote_keys[i].min ++ && val <= remote_keys[i].max) { ++ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key); ++ return remote_keys[i].key; ++ } ++ } ++ return 0; ++} ++ ++static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ struct sharpsl_rc *data = dev_id; ++ DPRINTK("sharpsl_rc_interrupt %d\n", irq); ++ if (!data->handling_press) { ++ DPRINTK("handling interrupt"); ++ data->handling_press = 1; ++ data->noise = 0; ++ data->state = 0; ++ data->last_key = 0; ++ ++ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } ++ return IRQ_HANDLED; ++} ++ ++static void sharpsl_rc_timer_callback(unsigned long dataPtr) ++{ ++ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr; ++ int timer = 1; ++ int key = get_remocon_raw(); ++ DPRINTK("timer callback, key: %d", key); ++ ++ //wait for value to stabilize ++ if (data->state < WAIT_STATE) { ++ if (data->last_key != key) { ++ ++data->noise; ++ if (data->noise > NOISE_THRESHOLD) { ++ DPRINTK("too much noise, bailing"); ++ timer = 0; ++ } ++ data->state = 0; ++ } else { ++ ++data->state; ++ } ++ data->last_key = key; ++ ++ //stable value, send event ++ } else if (data->state == WAIT_STATE) { ++ data->noise = 0; ++ //non-key returned, skip the rest of the states and bail now ++ if (data->last_key == 0) { ++ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise); ++ timer = 0; ++ //send button press ++ } else { ++ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise); ++ input_report_key(data->input, data->last_key, 1); ++ } ++ ++data->state; ++ ++ //wait until key is released ++ } else if (data->state < WAIT_STATE * 2) { ++ if (key == data->last_key ++ && data->noise < NOISE_THRESHOLD) { ++ data->state = WAIT_STATE + 1; ++ ++data->noise; ++ } else { ++ ++data->state; ++ } ++ //key is released, send event ++ } else { ++ //send button release ++ DPRINTK("release key %d", data->last_key); ++ input_report_key(data->input, data->last_key, 0); ++ timer = 0; ++ } ++ if (timer) { ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } else { ++ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ data->handling_press = 0; ++ } ++} ++ ++static int __init sharpsl_rc_probe(struct platform_device *pdev) ++{ ++ struct sharpsl_rc *sharpsl_rc; ++ struct input_dev *input_dev; ++ int i, ret; ++ ++ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n"); ++ ++ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL); ++ input_dev = input_allocate_device(); ++ if (!sharpsl_rc || !input_dev) { ++ kfree(sharpsl_rc); ++ input_free_device(input_dev); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(pdev, sharpsl_rc); ++ ++ sharpsl_rc->dev = &pdev->dev; ++ sharpsl_rc->input = input_dev; ++ spin_lock_init(&sharpsl_rc->lock); ++ ++ /* Init Remote Control Timer */ ++ init_timer(&sharpsl_rc->rctimer); ++ sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback; ++ sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc; ++ ++ input_dev->name = "Sharp Remote Control CE-RHX"; ++ input_dev->phys = "sharpsl_rc/input0"; ++ input_dev->id.bustype = BUS_HOST; ++ input_dev->id.vendor = 0x0001; ++ input_dev->id.product = 0x0001; ++ input_dev->id.version = 0x0100; ++ input_dev->cdev.dev = &pdev->dev; ++ input_dev->private = sharpsl_rc; ++ ++ input_dev->evbit[0] = BIT(EV_KEY); ++ ++ for (i = 0; i <= ARRAY_SIZE(remote_keys); i++) ++ set_bit(remote_keys[i].key, input_dev->keybit); ++ ++ input_register_device(sharpsl_rc->input); ++ ++ pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN); ++ ret = request_irq(REMOTE_IRQ_INT, ++ sharpsl_rc_interrupt, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, ++ "sharpsl_rc", ++ sharpsl_rc); ++ if (ret < 0) { ++ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i); ++ kfree(sharpsl_rc); ++ input_free_device(input_dev); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int sharpsl_rc_remove(struct platform_device *pdev) ++{ ++ struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev); ++ ++ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n"); ++ ++ free_irq(REMOTE_IRQ_INT, sharpsl_rc); ++ del_timer_sync(&sharpsl_rc->rctimer); ++ input_unregister_device(sharpsl_rc->input); ++ kfree(sharpsl_rc); ++ ++ return 0; ++} ++ ++static struct platform_driver sharpsl_rc_driver = { ++ .probe = sharpsl_rc_probe, ++ .remove = sharpsl_rc_remove, ++ .suspend = NULL, ++ .resume = NULL, ++ .driver = { ++ .name = "sharpsl-remote-control", ++ }, ++}; ++ ++static int __devinit sharpsl_rc_init(void) ++{ ++ printk("sharpsl_rc_init\n"); ++ return platform_driver_register(&sharpsl_rc_driver); ++} ++ ++static void __exit sharpsl_rc_exit(void) ++{ ++ printk("sharpsl_rc_exit\n"); ++ platform_driver_unregister(&sharpsl_rc_driver); ++} ++ ++module_init(sharpsl_rc_init); ++module_exit(sharpsl_rc_exit); ++ ++MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>"); ++MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>"); ++MODULE_DESCRIPTION("SharpSL Remote Control Driver"); ++MODULE_LICENSE("GPL"); +Index: linux-2.6.23/drivers/input/keyboard/spitzkbd.c +=================================================================== +--- linux-2.6.23.orig/drivers/input/keyboard/spitzkbd.c ++++ linux-2.6.23/drivers/input/keyboard/spitzkbd.c +@@ -19,6 +19,7 @@ + #include <linux/jiffies.h> + #include <linux/module.h> + #include <linux/slab.h> ++#include <linux/kmod.h> + + #include <asm/arch/spitz.h> + #include <asm/arch/hardware.h> +@@ -279,13 +280,21 @@ static irqreturn_t spitzkbd_hinge_isr(in + static int sharpsl_hinge_state; + static int hinge_count; + ++void spitzkbd_handle_sharpsl_rc(void *arg) { ++ request_module("sharpsl_rc"); ++} ++ ++DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc); ++ + static void spitzkbd_hinge_timer(unsigned long data) + { + struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data; + unsigned long state; + unsigned long flags; ++ unsigned int headphone, remote; + + state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB)); ++ state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)); + state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)); + if (state != sharpsl_hinge_state) { + hinge_count = 0; +@@ -299,9 +308,18 @@ static void spitzkbd_hinge_timer(unsigne + + input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0)); + input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0)); +- input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0)); ++ ++ headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0); ++ input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone); ++ ++ remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0); ++ input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote); + input_sync(spitzkbd_data->input); + ++ if (remote) { ++ schedule_work(&spitzkbd_work); ++ } ++ + spin_unlock_irqrestore(&spitzkbd_data->lock, flags); + } else { + mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL)); +@@ -393,6 +411,7 @@ static int __init spitzkbd_probe(struct + set_bit(SW_LID, input_dev->swbit); + set_bit(SW_TABLET_MODE, input_dev->swbit); + set_bit(SW_HEADPHONE_INSERT, input_dev->swbit); ++ set_bit(SW_REMOTE_INSERT, input_dev->swbit); + + err = input_register_device(input_dev); + if (err) +@@ -430,9 +449,12 @@ static int __init spitzkbd_probe(struct + request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr, + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, + "Spitzkbd SWB", spitzkbd); +- request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, ++ request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr, + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, + "Spitzkbd HP", spitzkbd); ++ request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, ++ "Spitzkbd HP Type", spitzkbd); + + return 0; + +@@ -453,6 +475,7 @@ static int spitzkbd_remove(struct platfo + free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd); ++ free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd); + + del_timer_sync(&spitzkbd->htimer); +Index: linux-2.6.23/arch/arm/mach-pxa/sharpsl.h +=================================================================== +--- linux-2.6.23.orig/arch/arm/mach-pxa/sharpsl.h ++++ linux-2.6.23/arch/arm/mach-pxa/sharpsl.h +@@ -50,15 +50,10 @@ void spitz_wait_hsync(void); + + #define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x)) + +-/* MAX1111 Channel Definitions */ +-#define MAX1111_BATT_VOLT 4u +-#define MAX1111_BATT_TEMP 2u +-#define MAX1111_ACIN_VOLT 6u +- + extern struct battery_thresh spitz_battery_levels_acin[]; + extern struct battery_thresh spitz_battery_levels_noac[]; + void sharpsl_pm_pxa_init(void); + void sharpsl_pm_pxa_remove(void); +-int sharpsl_pm_pxa_read_max1111(int channel); ++ + + +Index: linux-2.6.23/arch/arm/mach-pxa/sharpsl_pm.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/mach-pxa/sharpsl_pm.c ++++ linux-2.6.23/arch/arm/mach-pxa/sharpsl_pm.c +@@ -135,6 +135,8 @@ int sharpsl_pm_pxa_read_max1111(int chan + | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); + } + ++EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111); ++ + void sharpsl_pm_pxa_init(void) + { + pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN); +Index: linux-2.6.23/include/asm-arm/hardware/sharpsl_pm.h +=================================================================== +--- linux-2.6.23.orig/include/asm-arm/hardware/sharpsl_pm.h ++++ linux-2.6.23/include/asm-arm/hardware/sharpsl_pm.h +@@ -104,3 +104,10 @@ irqreturn_t sharpsl_ac_isr(int irq, void + irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id); + irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id); + ++/* MAX1111 Channel Definitions */ ++#define MAX1111_REMCOM 0u ++#define MAX1111_BATT_VOLT 4u ++#define MAX1111_BATT_TEMP 2u ++#define MAX1111_ACIN_VOLT 6u ++ ++int sharpsl_pm_pxa_read_max1111(int channel); +Index: linux-2.6.23/include/linux/input.h +=================================================================== +--- linux-2.6.23.orig/include/linux/input.h ++++ linux-2.6.23/include/linux/input.h +@@ -621,6 +621,7 @@ struct input_absinfo { + #define SW_TABLET_MODE 0x01 /* set = tablet mode */ + #define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ + #define SW_RADIO 0x03 /* set = radio enabled */ ++#define SW_REMOTE_INSERT 0x04 /* set = remote */ + #define SW_MAX 0x0f + + /* +Index: linux-2.6.23/arch/arm/mach-pxa/spitz_pm.c +=================================================================== +--- linux-2.6.23.orig/arch/arm/mach-pxa/spitz_pm.c ++++ linux-2.6.23/arch/arm/mach-pxa/spitz_pm.c +@@ -162,6 +162,13 @@ static int spitz_should_wakeup(unsigned + if (resume_on_alarm && (PEDR & PWER_RTC)) + is_resume |= PWER_RTC; + ++ printk("wakeup: PEDR: %x, PKSR: %x, HP_IN: %x, AK_INT: %x\n", PEDR, PKSR, GPIO_bit(SPITZ_GPIO_HP_IN), GPIO_bit(SPITZ_GPIO_AK_INT)); ++ ++ //remote/headphone interrupt, wakeup ++ if (PEDR == 0 && (PKSR & 0xc0d01) != 0) { ++ is_resume |= PWER_RTC; ++ } ++ + dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume); + return is_resume; + } diff --git a/packages/linux/linux-rp-2.6.23/wm8750-treble.patch b/packages/linux/linux-rp-2.6.23/wm8750-treble.patch new file mode 100644 index 0000000000..07a8d8e141 --- /dev/null +++ b/packages/linux/linux-rp-2.6.23/wm8750-treble.patch @@ -0,0 +1,11 @@ +--- linux-2.6.23/sound/soc/codecs/wm8750.c 2007-10-09 22:31:38.000000000 +0200 ++++ linux-2.6.23/sound/soc/codecs/wm8750.c 2007-11-02 16:47:35.000000000 +0100 +@@ -189,7 +189,7 @@ + SOC_ENUM("Bass Filter", wm8750_enum[1]), + SOC_SINGLE("Bass Volume", WM8750_BASS, 0, 15, 1), + +-SOC_SINGLE("Treble Volume", WM8750_TREBLE, 0, 15, 0), ++SOC_SINGLE("Treble Volume", WM8750_TREBLE, 0, 15, 1), + SOC_ENUM("Treble Cut-off", wm8750_enum[2]), + + SOC_SINGLE("3D Switch", WM8750_3D, 0, 1, 0), diff --git a/packages/linux/linux-rp-2.6.24/defconfig-spitz b/packages/linux/linux-rp-2.6.24/defconfig-spitz index d0226301f7..0322da0ec1 100644 --- a/packages/linux/linux-rp-2.6.24/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.24/defconfig-spitz @@ -589,7 +589,7 @@ CONFIG_MTD_ROM=m # CONFIG_MTD_COMPLEX_MAPPINGS=y # CONFIG_MTD_PHYSMAP is not set -CONFIG_MTD_SHARP_SL=y +CONFIG_MTD_SHARP_SL=m # CONFIG_MTD_PLATRAM is not set # @@ -839,6 +839,7 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y +CONFIG_SHARPSL_RC=m # CONFIG_KEYBOARD_PXA27x is not set # CONFIG_KEYBOARD_GPIO is not set # CONFIG_INPUT_MOUSE is not set diff --git a/packages/linux/linux-rp-2.6.24/mtd-module.patch b/packages/linux/linux-rp-2.6.24/mtd-module.patch new file mode 100644 index 0000000000..4aa2f22aee --- /dev/null +++ b/packages/linux/linux-rp-2.6.24/mtd-module.patch @@ -0,0 +1,13 @@ +Index: linux-2.6.23/drivers/mtd/maps/Kconfig +=================================================================== +--- linux-2.6.23/drivers/mtd/maps/Kconfig ++++ linux-2.6.23/drivers/mtd/maps/Kconfig +@@ -600,7 +600,7 @@ + default "4" + + config MTD_SHARP_SL +- bool "ROM mapped on Sharp SL Series" ++ tristate "ROM mapped on Sharp SL Series" + depends on ARCH_PXA + help + This enables access to the flash chip on the Sharp SL Series of PDAs. diff --git a/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch new file mode 100644 index 0000000000..453010a197 --- /dev/null +++ b/packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch @@ -0,0 +1,519 @@ +Index: linux-2.6.24/arch/arm/mach-pxa/spitz.c +=================================================================== +--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz.c 2008-01-27 02:10:17.000000000 +0000 ++++ linux-2.6.24/arch/arm/mach-pxa/spitz.c 2008-01-27 02:10:52.000000000 +0000 +@@ -259,6 +259,13 @@ + .id = -1, + }; + ++/* ++ * Spitz Remote Control Device ++ */ ++static struct platform_device sharpsl_rc_device = { ++ .name = "sharpsl-remote-control", ++ .id = -1, ++}; + + /* + * Spitz LEDs +@@ -548,6 +555,7 @@ + &spitzscoop_device, + &spitzssp_device, + &spitzkbd_device, ++ &sharpsl_rc_device, + &spitzts_device, + &spitzbl_device, + &spitzled_device, +Index: linux-2.6.24/drivers/input/keyboard/Kconfig +=================================================================== +--- linux-2.6.24.orig/drivers/input/keyboard/Kconfig 2008-01-27 02:10:20.000000000 +0000 ++++ linux-2.6.24/drivers/input/keyboard/Kconfig 2008-01-27 02:10:52.000000000 +0000 +@@ -154,6 +154,17 @@ + To compile this driver as a module, choose M here: the + module will be called spitzkbd. + ++config SHARPSL_RC ++ tristate "Sharp SL-Cxx00 Remote Control" ++ depends on PXA_SHARPSL ++ default y ++ help ++ Say Y here to enable the remote on the Sharp Zaurus SL-Cxx00, ++ SL-C1000, SL-C3000 and Sl-C3100 series of PDAs. ++ ++ To compile this driver as a module, choose M here: the ++ module will be called sharpsl_rc. ++ + config KEYBOARD_AMIGA + tristate "Amiga keyboard" + depends on AMIGA +Index: linux-2.6.24/drivers/input/keyboard/Makefile +=================================================================== +--- linux-2.6.24.orig/drivers/input/keyboard/Makefile 2008-01-27 02:10:20.000000000 +0000 ++++ linux-2.6.24/drivers/input/keyboard/Makefile 2008-01-27 02:11:43.000000000 +0000 +@@ -15,6 +15,7 @@ + obj-$(CONFIG_KEYBOARD_STOWAWAY) += stowaway.o + obj-$(CONFIG_KEYBOARD_CORGI) += corgikbd.o + obj-$(CONFIG_KEYBOARD_SPITZ) += spitzkbd.o ++obj-$(CONFIG_SHARPSL_RC) += sharpsl_rc.o + obj-$(CONFIG_KEYBOARD_ASIC3) += asic3_keys.o + obj-$(CONFIG_KEYBOARD_HIL) += hil_kbd.o + obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o +Index: linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.24/drivers/input/keyboard/sharpsl_rc.c 2008-01-27 02:10:52.000000000 +0000 +@@ -0,0 +1,291 @@ ++/* ++ * Keyboard driver for Sharp Clamshell Models (SL-Cxx00) ++ * ++ * Copyright (c) 2004-2005 Richard Purdie ++ * ++ * Based on corgikbd.c and Sharp's RC driver ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#define DEBUG 1 ++#include <linux/delay.h> ++#include <linux/platform_device.h> ++#include <linux/init.h> ++#include <linux/input.h> ++#include <linux/interrupt.h> ++#include <linux/jiffies.h> ++#include <linux/module.h> ++#include <linux/slab.h> ++ ++#ifdef CONFIG_MACH_SPITZ ++#include <asm/arch/spitz.h> ++#endif ++#ifdef CONFIG_MACH_CORGI ++#include <asm/arch/corgi.h> ++#endif ++ ++#include <asm/arch/hardware.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/hardware/scoop.h> ++#include <asm/arch/sharpsl.h> ++#include <asm/hardware/sharpsl_pm.h> ++ ++#define DPRINTK(fmt, args...) dev_dbg(data->dev, fmt "\n", ##args) ++ ++struct remote_control_key { ++ unsigned char min; ++ unsigned char max; ++ unsigned char key; ++}; ++ ++#ifdef CONFIG_MACH_SPITZ ++#define REMOTE_AKIN_PULLUP SPITZ_SCP2_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE spitzscoop2_device ++#define REMOTE_GPIO_INT SPITZ_GPIO_AK_INT ++#define REMOTE_IRQ_INT SPITZ_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++#ifdef CONFIG_MACH_CORGI ++#define REMOTE_AKIN_PULLUP CORGI_SCP_AKIN_PULLUP ++#define REMOTE_SCOOP_DEVICE corgiscoop_device ++#define REMOTE_GPIO_INT CORGI_GPIO_AK_INT ++#define REMOTE_IRQ_INT CORGI_IRQ_GPIO_AK_INT ++static struct remote_control_key remote_keys[] = { ++ //These need to be fixed for the CE-RH1's values ++ { 25, 35, KEY_STOPCD}, ++ { 55, 65, KEY_PLAYPAUSE}, ++ { 85, 95, KEY_NEXTSONG}, ++ { 115, 125, KEY_VOLUMEUP}, ++ { 145, 155, KEY_PREVIOUSSONG}, ++ { 180, 190, KEY_MUTE}, ++ { 215, 225, KEY_VOLUMEDOWN}, ++}; ++#endif ++ ++#define RELEASE_HI 230 ++#define MAX_EARPHONE 6 ++#define RC_POLL_MS 10 ++#define RC_FINISH_MS 500 ++#define WAIT_STATE 3 ++#define NOISE_THRESHOLD 100 ++ ++struct sharpsl_rc { ++ struct input_dev *input; ++ struct device *dev; ++ ++ spinlock_t lock; ++ struct timer_list rctimer; ++ struct timer_list rctimer_finish; ++ ++ unsigned int handling_press; ++ unsigned int noise; ++ unsigned int state; ++ unsigned int last_key; ++}; ++ ++static int get_remocon_raw(void) ++{ ++ int i, val; ++ ++ val = sharpsl_pm_pxa_read_max1111(MAX1111_REMCOM); ++ for (i = 0; i < ARRAY_SIZE(remote_keys); ++i) { ++ if (val >= remote_keys[i].min ++ && val <= remote_keys[i].max) { ++ printk("get_remocon_raw: VAL=%i, KEY=%i\n", val, remote_keys[i].key); ++ return remote_keys[i].key; ++ } ++ } ++ return 0; ++} ++ ++static irqreturn_t sharpsl_rc_interrupt(int irq, void *dev_id, struct pt_regs *regs) ++{ ++ struct sharpsl_rc *data = dev_id; ++ DPRINTK("sharpsl_rc_interrupt %d\n", irq); ++ if (!data->handling_press) { ++ DPRINTK("handling interrupt"); ++ data->handling_press = 1; ++ data->noise = 0; ++ data->state = 0; ++ data->last_key = 0; ++ ++ reset_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } ++ return IRQ_HANDLED; ++} ++ ++static void sharpsl_rc_timer_callback(unsigned long dataPtr) ++{ ++ struct sharpsl_rc *data = (struct sharpsl_rc *) dataPtr; ++ int timer = 1; ++ int key = get_remocon_raw(); ++ DPRINTK("timer callback, key: %d", key); ++ ++ //wait for value to stabilize ++ if (data->state < WAIT_STATE) { ++ if (data->last_key != key) { ++ ++data->noise; ++ if (data->noise > NOISE_THRESHOLD) { ++ DPRINTK("too much noise, bailing"); ++ timer = 0; ++ } ++ data->state = 0; ++ } else { ++ ++data->state; ++ } ++ data->last_key = key; ++ ++ //stable value, send event ++ } else if (data->state == WAIT_STATE) { ++ data->noise = 0; ++ //non-key returned, skip the rest of the states and bail now ++ if (data->last_key == 0) { ++ DPRINTK("non-key detected %d, noise: %d", data->last_key, data->noise); ++ timer = 0; ++ //send button press ++ } else { ++ DPRINTK("key press detected %d, noise %d", data->last_key, data->noise); ++ input_report_key(data->input, data->last_key, 1); ++ } ++ ++data->state; ++ ++ //wait until key is released ++ } else if (data->state < WAIT_STATE * 2) { ++ if (key == data->last_key ++ && data->noise < NOISE_THRESHOLD) { ++ data->state = WAIT_STATE + 1; ++ ++data->noise; ++ } else { ++ ++data->state; ++ } ++ //key is released, send event ++ } else { ++ //send button release ++ DPRINTK("release key %d", data->last_key); ++ input_report_key(data->input, data->last_key, 0); ++ timer = 0; ++ } ++ if (timer) { ++ mod_timer(&data->rctimer, jiffies + msecs_to_jiffies(RC_POLL_MS)); ++ } else { ++ set_scoop_gpio(&REMOTE_SCOOP_DEVICE.dev, REMOTE_AKIN_PULLUP); ++ data->handling_press = 0; ++ } ++} ++ ++static int __init sharpsl_rc_probe(struct platform_device *pdev) ++{ ++ struct sharpsl_rc *sharpsl_rc; ++ struct input_dev *input_dev; ++ int i, ret; ++ ++ dev_dbg(&pdev->dev, "sharpsl_rc_probe\n"); ++ ++ sharpsl_rc = kzalloc(sizeof(struct sharpsl_rc), GFP_KERNEL); ++ input_dev = input_allocate_device(); ++ if (!sharpsl_rc || !input_dev) { ++ kfree(sharpsl_rc); ++ input_free_device(input_dev); ++ return -ENOMEM; ++ } ++ ++ platform_set_drvdata(pdev, sharpsl_rc); ++ ++ sharpsl_rc->dev = &pdev->dev; ++ sharpsl_rc->input = input_dev; ++ spin_lock_init(&sharpsl_rc->lock); ++ ++ /* Init Remote Control Timer */ ++ init_timer(&sharpsl_rc->rctimer); ++ sharpsl_rc->rctimer.function = sharpsl_rc_timer_callback; ++ sharpsl_rc->rctimer.data = (unsigned long) sharpsl_rc; ++ ++ input_dev->name = "Sharp Remote Control CE-RHX"; ++ input_dev->phys = "sharpsl_rc/input0"; ++ input_dev->id.bustype = BUS_HOST; ++ input_dev->id.vendor = 0x0001; ++ input_dev->id.product = 0x0001; ++ input_dev->id.version = 0x0100; ++ input_dev->cdev.dev = &pdev->dev; ++ input_dev->private = sharpsl_rc; ++ ++ input_dev->evbit[0] = BIT(EV_KEY); ++ ++ for (i = 0; i <= ARRAY_SIZE(remote_keys); i++) ++ set_bit(remote_keys[i].key, input_dev->keybit); ++ ++ input_register_device(sharpsl_rc->input); ++ ++ pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN); ++ ret = request_irq(REMOTE_IRQ_INT, ++ sharpsl_rc_interrupt, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, ++ "sharpsl_rc", ++ sharpsl_rc); ++ if (ret < 0) { ++ dev_dbg(&pdev->dev, "Can't get IRQ: %d!\n", i); ++ kfree(sharpsl_rc); ++ input_free_device(input_dev); ++ return ret; ++ } ++ ++ return 0; ++} ++ ++static int sharpsl_rc_remove(struct platform_device *pdev) ++{ ++ struct sharpsl_rc *sharpsl_rc = platform_get_drvdata(pdev); ++ ++ dev_dbg(&pdev->dev, "sharpsl_rc_remove\n"); ++ ++ free_irq(REMOTE_IRQ_INT, sharpsl_rc); ++ del_timer_sync(&sharpsl_rc->rctimer); ++ input_unregister_device(sharpsl_rc->input); ++ kfree(sharpsl_rc); ++ ++ return 0; ++} ++ ++static struct platform_driver sharpsl_rc_driver = { ++ .probe = sharpsl_rc_probe, ++ .remove = sharpsl_rc_remove, ++ .suspend = NULL, ++ .resume = NULL, ++ .driver = { ++ .name = "sharpsl-remote-control", ++ }, ++}; ++ ++static int __devinit sharpsl_rc_init(void) ++{ ++ printk("sharpsl_rc_init\n"); ++ return platform_driver_register(&sharpsl_rc_driver); ++} ++ ++static void __exit sharpsl_rc_exit(void) ++{ ++ printk("sharpsl_rc_exit\n"); ++ platform_driver_unregister(&sharpsl_rc_driver); ++} ++ ++module_init(sharpsl_rc_init); ++module_exit(sharpsl_rc_exit); ++ ++MODULE_AUTHOR("Justin Patrin <papercrane@reversefold.com>"); ++MODULE_AUTHOR("Richard Purdie <rpurdie@rpsys.net>"); ++MODULE_DESCRIPTION("SharpSL Remote Control Driver"); ++MODULE_LICENSE("GPL"); +Index: linux-2.6.24/drivers/input/keyboard/spitzkbd.c +=================================================================== +--- linux-2.6.24.orig/drivers/input/keyboard/spitzkbd.c 2008-01-24 22:58:37.000000000 +0000 ++++ linux-2.6.24/drivers/input/keyboard/spitzkbd.c 2008-01-27 02:10:52.000000000 +0000 +@@ -19,6 +19,7 @@ + #include <linux/jiffies.h> + #include <linux/module.h> + #include <linux/slab.h> ++#include <linux/kmod.h> + + #include <asm/arch/spitz.h> + #include <asm/arch/hardware.h> +@@ -279,13 +280,21 @@ + static int sharpsl_hinge_state; + static int hinge_count; + ++void spitzkbd_handle_sharpsl_rc(void *arg) { ++ request_module("sharpsl_rc"); ++} ++ ++DECLARE_WORK(spitzkbd_work, spitzkbd_handle_sharpsl_rc); ++ + static void spitzkbd_hinge_timer(unsigned long data) + { + struct spitzkbd *spitzkbd_data = (struct spitzkbd *) data; + unsigned long state; + unsigned long flags; ++ unsigned int headphone, remote; + + state = GPLR(SPITZ_GPIO_SWA) & (GPIO_bit(SPITZ_GPIO_SWA)|GPIO_bit(SPITZ_GPIO_SWB)); ++ state |= (GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)); + state |= (GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)); + if (state != sharpsl_hinge_state) { + hinge_count = 0; +@@ -299,9 +308,18 @@ + + input_report_switch(spitzkbd_data->input, SW_LID, ((GPLR(SPITZ_GPIO_SWA) & GPIO_bit(SPITZ_GPIO_SWA)) != 0)); + input_report_switch(spitzkbd_data->input, SW_TABLET_MODE, ((GPLR(SPITZ_GPIO_SWB) & GPIO_bit(SPITZ_GPIO_SWB)) != 0)); +- input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) != 0)); ++ ++ headphone = ((GPLR(SPITZ_GPIO_HP_IN) & GPIO_bit(SPITZ_GPIO_HP_IN)) != 0); ++ input_report_switch(spitzkbd_data->input, SW_HEADPHONE_INSERT, headphone); ++ ++ remote = headphone && ((GPLR(SPITZ_GPIO_AK_INT) & GPIO_bit(SPITZ_GPIO_AK_INT)) == 0); ++ input_report_switch(spitzkbd_data->input, SW_REMOTE_INSERT, remote); + input_sync(spitzkbd_data->input); + ++ if (remote) { ++ schedule_work(&spitzkbd_work); ++ } ++ + spin_unlock_irqrestore(&spitzkbd_data->lock, flags); + } else { + mod_timer(&spitzkbd_data->htimer, jiffies + msecs_to_jiffies(HINGE_SCAN_INTERVAL)); +@@ -395,6 +413,7 @@ + set_bit(SW_LID, input_dev->swbit); + set_bit(SW_TABLET_MODE, input_dev->swbit); + set_bit(SW_HEADPHONE_INSERT, input_dev->swbit); ++ set_bit(SW_REMOTE_INSERT, input_dev->swbit); + + err = input_register_device(input_dev); + if (err) +@@ -432,9 +451,12 @@ + request_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd_hinge_isr, + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, + "Spitzkbd SWB", spitzkbd); +- request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, ++ request_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd_hinge_isr, + IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, + "Spitzkbd HP", spitzkbd); ++ request_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd_hinge_isr, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, ++ "Spitzkbd HP Type", spitzkbd); + + return 0; + +@@ -455,6 +477,7 @@ + free_irq(SPITZ_IRQ_GPIO_ON_KEY, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_SWA, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_SWB, spitzkbd); ++ free_irq(SPITZ_IRQ_GPIO_HP_IN, spitzkbd); + free_irq(SPITZ_IRQ_GPIO_AK_INT, spitzkbd); + + del_timer_sync(&spitzkbd->htimer); +Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl.h +=================================================================== +--- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl.h 2008-01-27 02:10:15.000000000 +0000 ++++ linux-2.6.24/arch/arm/mach-pxa/sharpsl.h 2008-01-27 02:10:52.000000000 +0000 +@@ -37,15 +37,10 @@ + */ + #define READ_GPIO_BIT(x) (GPLR(x) & GPIO_bit(x)) + +-/* MAX1111 Channel Definitions */ +-#define MAX1111_BATT_VOLT 4u +-#define MAX1111_BATT_TEMP 2u +-#define MAX1111_ACIN_VOLT 6u +- + extern struct battery_thresh spitz_battery_levels_acin[]; + extern struct battery_thresh spitz_battery_levels_noac[]; + void sharpsl_pm_pxa_init(void); + void sharpsl_pm_pxa_remove(void); +-int sharpsl_pm_pxa_read_max1111(int channel); ++ + + +Index: linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c +=================================================================== +--- linux-2.6.24.orig/arch/arm/mach-pxa/sharpsl_pm.c 2008-01-24 22:58:37.000000000 +0000 ++++ linux-2.6.24/arch/arm/mach-pxa/sharpsl_pm.c 2008-01-27 02:10:52.000000000 +0000 +@@ -135,6 +135,8 @@ + | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); + } + ++EXPORT_SYMBOL(sharpsl_pm_pxa_read_max1111); ++ + void sharpsl_pm_pxa_init(void) + { + pxa_gpio_mode(sharpsl_pm.machinfo->gpio_acin | GPIO_IN); +Index: linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h +=================================================================== +--- linux-2.6.24.orig/include/asm-arm/hardware/sharpsl_pm.h 2008-01-24 22:58:37.000000000 +0000 ++++ linux-2.6.24/include/asm-arm/hardware/sharpsl_pm.h 2008-01-27 02:10:52.000000000 +0000 +@@ -104,3 +104,10 @@ + irqreturn_t sharpsl_chrg_full_isr(int irq, void *dev_id); + irqreturn_t sharpsl_fatal_isr(int irq, void *dev_id); + ++/* MAX1111 Channel Definitions */ ++#define MAX1111_REMCOM 0u ++#define MAX1111_BATT_VOLT 4u ++#define MAX1111_BATT_TEMP 2u ++#define MAX1111_ACIN_VOLT 6u ++ ++int sharpsl_pm_pxa_read_max1111(int channel); +Index: linux-2.6.24/include/linux/input.h +=================================================================== +--- linux-2.6.24.orig/include/linux/input.h 2008-01-24 22:58:37.000000000 +0000 ++++ linux-2.6.24/include/linux/input.h 2008-01-27 02:10:52.000000000 +0000 +@@ -636,6 +636,7 @@ + #define SW_TABLET_MODE 0x01 /* set = tablet mode */ + #define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ + #define SW_RADIO 0x03 /* set = radio enabled */ ++#define SW_REMOTE_INSERT 0x04 /* set = remote */ + #define SW_MAX 0x0f + #define SW_CNT (SW_MAX+1) + +Index: linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c +=================================================================== +--- linux-2.6.24.orig/arch/arm/mach-pxa/spitz_pm.c 2008-01-24 22:58:37.000000000 +0000 ++++ linux-2.6.24/arch/arm/mach-pxa/spitz_pm.c 2008-01-27 02:10:52.000000000 +0000 +@@ -162,6 +162,13 @@ + if (resume_on_alarm && (PEDR & PWER_RTC)) + is_resume |= PWER_RTC; + ++ printk("wakeup: PEDR: %x, PKSR: %x, HP_IN: %x, AK_INT: %x\n", PEDR, PKSR, GPIO_bit(SPITZ_GPIO_HP_IN), GPIO_bit(SPITZ_GPIO_AK_INT)); ++ ++ //remote/headphone interrupt, wakeup ++ if (PEDR == 0 && (PKSR & 0xc0d01) != 0) { ++ is_resume |= PWER_RTC; ++ } ++ + dev_dbg(sharpsl_pm.dev, "is_resume: %x\n",is_resume); + return is_resume; + } diff --git a/packages/linux/linux-rp-2.6.24/wm8750-treble.patch b/packages/linux/linux-rp-2.6.24/wm8750-treble.patch new file mode 100644 index 0000000000..07a8d8e141 --- /dev/null +++ b/packages/linux/linux-rp-2.6.24/wm8750-treble.patch @@ -0,0 +1,11 @@ +--- linux-2.6.23/sound/soc/codecs/wm8750.c 2007-10-09 22:31:38.000000000 +0200 ++++ linux-2.6.23/sound/soc/codecs/wm8750.c 2007-11-02 16:47:35.000000000 +0100 +@@ -189,7 +189,7 @@ + SOC_ENUM("Bass Filter", wm8750_enum[1]), + SOC_SINGLE("Bass Volume", WM8750_BASS, 0, 15, 1), + +-SOC_SINGLE("Treble Volume", WM8750_TREBLE, 0, 15, 0), ++SOC_SINGLE("Treble Volume", WM8750_TREBLE, 0, 15, 1), + SOC_ENUM("Treble Cut-off", wm8750_enum[2]), + + SOC_SINGLE("3D Switch", WM8750_3D, 0, 1, 0), diff --git a/packages/linux/linux-rp_2.6.23.bb b/packages/linux/linux-rp_2.6.23.bb index a8c5f79f67..f4967e16ae 100644 --- a/packages/linux/linux-rp_2.6.23.bb +++ b/packages/linux/linux-rp_2.6.23.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r26" +PR = "r27" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 @@ -130,6 +130,18 @@ SRC_URI_append_tosa = "\ " # ${DOSRC}/tosa-asoc-r1.patch;patch=1 " +SRC_URI_append_akita = "\ + file://sharpsl-rc-r1.patch;patch=1;status=external \ + file://wm8750-treble.patch;patch=1;status=external \ + file://mtd-module.patch;patch=1 \ + " + +SRC_URI_append_spitz = "\ + file://sharpsl-rc-r1.patch;patch=1;status=external \ + file://wm8750-treble.patch;patch=1;status=external \ + file://mtd-module.patch;patch=1 \ + " + SRC_URI_append_htcuniversal ="\ file://htcuni-acx.patch;patch=1;status=external \ " diff --git a/packages/linux/linux-rp_2.6.24.bb b/packages/linux/linux-rp_2.6.24.bb index 593a70a48b..cfa61853b1 100644 --- a/packages/linux/linux-rp_2.6.24.bb +++ b/packages/linux/linux-rp_2.6.24.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r2" +PR = "r3" DEFAULT_PREFERENCE = "-1" DEFAULT_PREFERENCE_collie = "1" @@ -136,6 +136,18 @@ SRC_URI_append_tosa = "\ " # ${DOSRC}/tosa-asoc-r1.patch;patch=1 " +SRC_URI_append_akita = "\ + file://mtd-module.patch;patch=1;status=external \ + file://wm8750-treble.patch;patch=1;status=external \ + file://sharpsl-rc-r1.patch;patch=1 \ + " + +SRC_URI_append_spitz = "\ + file://mtd-module.patch;patch=1;status=external \ + file://wm8750-treble.patch;patch=1;status=external \ + file://sharpsl-rc-r1.patch;patch=1 \ + " + SRC_URI_append_htcuniversal ="\ file://htcuni-acx.patch;patch=1;status=external \ " diff --git a/packages/lm_sensors/lmsensors-apps_2.10.1.bb b/packages/lm_sensors/lmsensors-apps_2.10.1.bb index 6f89481f88..9d5a8af9fb 100644 --- a/packages/lm_sensors/lmsensors-apps_2.10.1.bb +++ b/packages/lm_sensors/lmsensors-apps_2.10.1.bb @@ -1,8 +1,8 @@ DESCRIPTION = "Hardware health monitoring applications" -HOMEPAGE = "http://secure.netroedge.com/~lm78/" +HOMEPAGE = "http://www.lm-sensors.org/" DEPENDS = "sysfsutils virtual/libiconv" LICENSE = "GPL" -PR = "r2" +PR = "r3" SRC_URI = "http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-${PV}.tar.gz \ file://prefix-fix.patch;patch=1 \ @@ -13,7 +13,7 @@ SRC_URI_append_uclibc = "file://iconv.patch;patch=1" S = "${WORKDIR}/lm_sensors-${PV}" do_compile() { - oe_runmake LINUX=${STAGING_KERNEL_DIR} EXLDFLAGS="${LDFLAGS}" user PROG_EXTRA=sensors + oe_runmake user LINUX=${STAGING_KERNEL_DIR} EXLDFLAGS="${LDFLAGS}" PROG_EXTRA=sensors MACHINE=${TARGET_ARCH} } do_install() { diff --git a/packages/navit/files/navit.desktop b/packages/navit/files/navit.desktop index 52aae31fce..4d7fda0e35 100644 --- a/packages/navit/files/navit.desktop +++ b/packages/navit/files/navit.desktop @@ -1,12 +1,10 @@ [Desktop Entry] -Encoding=UTF-8 Name=Navit Comment=GPS Navigation Exec=navit Icon=openmoko-terminal Terminal=false Type=Application -Categories=GTK;Application;Utilities; +Categories=GTK; MimeType=text/x-vcard; -SingleInstance=true StartupNotify=true diff --git a/packages/navit/navit.inc b/packages/navit/navit.inc index 06e3a72664..23e3f9b23d 100644 --- a/packages/navit/navit.inc +++ b/packages/navit/navit.inc @@ -1,5 +1,6 @@ DESCRIPTION = "Navit is a car navigation system with routing engine." LICENSE = "GPL" +SECTION = "x11/applications" DEPENDS = "glib-2.0 gtk+" RRECOMMENDS = "gpsd speechd flite" @@ -10,7 +11,7 @@ EXTRA_OECONF = "--disable-binding-python --disable-gui-sdl --disable-samplemap - PACKAGES = "${PN}-dbg ${PN}-dev ${PN} ${PN}-doc ${PN}-locale" FILES_${PN}-dbg += "${libdir}/${PN}/*/.debug" -FILES_${PN}-dev += "${libdir}/${PN}/*/*.so" +FILES_${PN}-dev += "${libdir}/${PN}/*/*.so ${libdir}/${PN}/*/*.la" SRC_URI_append = " \ file://navit.xml-so.patch;patch=1 \ @@ -19,9 +20,9 @@ SRC_URI_append = " \ " do_install_append() { - install -d ${D}/usr/share/applications/ - install -m 0644 ${WORKDIR}/navit.desktop ${D}/usr/share/applications/ + install -d ${D}${datadir}/applications/ + install -m 0644 ${WORKDIR}/navit.desktop ${D}${datadir}/applications/ - mv ${D}/usr/bin/navit ${D}/usr/bin/navit.real - install -m 0755 ${WORKDIR}/navit.launcher ${D}/usr/bin/navit + mv ${D}${bindir}/navit ${D}${bindir}/navit.real + install -m 0755 ${WORKDIR}/navit.launcher ${D}${bindir}/navit } diff --git a/packages/navit/navit_0.0.3.bb b/packages/navit/navit_0.0.3.bb index a926528faf..6688768b88 100644 --- a/packages/navit/navit_0.0.3.bb +++ b/packages/navit/navit_0.0.3.bb @@ -1,5 +1,5 @@ require navit.inc -PR = "r4" +PR = "r5" SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz" diff --git a/packages/navit/navit_cvs.bb b/packages/navit/navit_cvs.bb index 014e7d3a53..f548c192df 100644 --- a/packages/navit/navit_cvs.bb +++ b/packages/navit/navit_cvs.bb @@ -1,7 +1,7 @@ require navit.inc -PV = "0.0.3+cvs${SRCDATE}" -PR = "r4" +PV = "0.0.4+cvs${SRCDATE}" +PR = "r5" S = "${WORKDIR}/navit" diff --git a/packages/ttf-fonts/ttf-dejavu_2.18.bb b/packages/ttf-fonts/ttf-dejavu_2.23.bb index 6f05cef5d6..c0655ec5f4 100644 --- a/packages/ttf-fonts/ttf-dejavu_2.18.bb +++ b/packages/ttf-fonts/ttf-dejavu_2.23.bb @@ -5,12 +5,11 @@ HOMEPAGE = "http://dejavu.sourceforge.net/wiki/" LICENSE = "Bitstream Vera" RDEPENDS = "ttf-dejavu-common" RDEPENDS_ttf-dejavu-common = "" -PR = "r2" -SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-ttf-${PV}.tar.bz2 \ +SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \ file://30-dejavu-aliases.conf" -S = "${WORKDIR}/dejavu-ttf-${PV}" +S = "${WORKDIR}/dejavu-fonts-ttf-${PV}/ttf" do_install_append () { install -d ${D}${sysconfdir}/fonts/conf.d/ diff --git a/packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch new file mode 100644 index 0000000000..997028ad8d --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch @@ -0,0 +1,83 @@ +Index: xorg-server-1.3.0.0/hw/kdrive/linux/keyboard.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/kdrive/linux/keyboard.c 2006-11-16 18:01:23.000000000 +0000 ++++ xorg-server-1.3.0.0/hw/kdrive/linux/keyboard.c 2007-08-12 12:14:29.000000000 +0000 +@@ -384,14 +384,35 @@ + LinuxKeyboardRead (int fd, void *closure) + { + unsigned char buf[256], *b; +- int n; ++ int n, mediumraw_data, mediumraw_event; ++ static enum { LOWKEY, BYTE1, BYTE2 } mediumraw_state = LOWKEY; + + while ((n = read (fd, buf, sizeof (buf))) > 0) + { + b = buf; + while (n--) + { +- KdEnqueueKeyboardEvent (b[0] & 0x7f, b[0] & 0x80); ++ switch (mediumraw_state) ++ { ++ case LOWKEY: ++ if ( (b[0] & 0x7f) == 0) ++ { ++ mediumraw_state = BYTE1; ++ mediumraw_event = b[0] & 0x80; ++ } ++ else ++ KdEnqueueKeyboardEvent (b[0] & 0x7f, b[0] & 0x80); ++ break; ++ case BYTE1: ++ mediumraw_data = (b[0] & 0x7f) << 7; ++ mediumraw_state = BYTE2; ++ break; ++ case BYTE2: ++ /* FIXME: KdEnqueueKeyboardEvent should accept word size */ ++ KdEnqueueKeyboardEvent ( mediumraw_data | (b[0] & 0x7f), mediumraw_event); ++ mediumraw_state = LOWKEY; ++ break; ++ } + b++; + } + } +Index: xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_kbd.c +=================================================================== +--- xorg-server-1.3.0.0.orig/hw/xfree86/os-support/linux/lnx_kbd.c 2006-11-16 18:01:25.000000000 +0000 ++++ xorg-server-1.3.0.0/hw/xfree86/os-support/linux/lnx_kbd.c 2007-08-12 12:14:29.000000000 +0000 +@@ -430,12 +430,32 @@ + { + KbdDevPtr pKbd = (KbdDevPtr) pInfo->private; + unsigned char rBuf[64]; +- int nBytes, i; ++ int nBytes, i, mediumraw_data, mediumraw_event; ++ static enum { LOWKEY, BYTE1, BYTE2 } mediumraw_state = LOWKEY; + if ((nBytes = read( pInfo->fd, (char *)rBuf, sizeof(rBuf))) > 0) { +- for (i = 0; i < nBytes; i++) +- pKbd->PostEvent(pInfo, rBuf[i] & 0x7f, +- rBuf[i] & 0x80 ? FALSE : TRUE); ++ for (i = 0; i < nBytes; i++) { ++ switch (mediumraw_state) { ++ case LOWKEY: ++ if ( (rBuf[i] & 0x7f) == 0) { ++ mediumraw_state = BYTE1; ++ mediumraw_event = rBuf[i] & 0x80; ++ } ++ else ++ pKbd->PostEvent(pInfo, rBuf[i] & 0x7f, ++ rBuf[i] & 0x80 ? FALSE : TRUE); ++ break; ++ case BYTE1: ++ mediumraw_data = (rBuf[i] & 0x7f) << 7; ++ mediumraw_state = BYTE2; ++ break; ++ case BYTE2: ++ pKbd->PostEvent(pInfo, mediumraw_data | (rBuf[i] & 0x7f), ++ mediumraw_event ? FALSE : TRUE); ++ mediumraw_state = LOWKEY; ++ break; ++ } + } ++ } + } + + static Bool diff --git a/packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch b/packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch new file mode 100644 index 0000000000..36d2f8eae8 --- /dev/null +++ b/packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch @@ -0,0 +1,44 @@ +Index: git/hw/kdrive/linux/keyboard.c +=================================================================== +--- git.orig/hw/kdrive/linux/keyboard.c 2007-11-14 21:30:45.000000000 +0000 ++++ git/hw/kdrive/linux/keyboard.c 2007-11-15 12:00:11.000000000 +0000 +@@ -42,6 +42,8 @@ + #include <sys/ioctl.h> + + extern int LinuxConsoleFd; ++static unsigned char mediumraw_data, mediumraw_up; ++static enum { DEFAULT, EXTBYTE1, EXTBYTE2 } mediumraw_state = DEFAULT; + + static const KeySym linux_to_x[256] = { + NoSymbol, NoSymbol, NoSymbol, NoSymbol, +@@ -701,7 +703,29 @@ + else + #endif + scancode = b[0] & 0x7f; +- KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80); ++ /* This is extended medium raw mode interpreter ++ see linux/drivers/keyboard.c (kbd->kbdmode == VC_MEDIUMRAW) */ ++ switch (mediumraw_state) ++ { ++ case DEFAULT: ++ if (scancode == 0) ++ { ++ mediumraw_state = EXTBYTE1; ++ mediumraw_up = b[0] & 0x80; ++ } ++ else ++ KdEnqueueKeyboardEvent (closure, scancode, b[0] & 0x80); ++ break; ++ case EXTBYTE1: ++ mediumraw_data = scancode; ++ mediumraw_state = EXTBYTE2; ++ break; ++ case EXTBYTE2: ++ /* Note: Only codes < 256 will pass correctly through KdEnqueueKeyboardEvent() */ ++ KdEnqueueKeyboardEvent (closure, (int)mediumraw_data << 7 | scancode, mediumraw_up); ++ mediumraw_state = DEFAULT; ++ break; ++ } + b++; + } + } diff --git a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb index 71d0eccba8..755a51ca63 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb @@ -3,7 +3,7 @@ require xserver-kdrive-common.inc DEPENDS += "libxkbfile libxcalibrate" PE = "1" -PR = "r23" +PR = "r24" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ ${KDRIVE_COMMON_PATCHES} \ @@ -20,6 +20,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://w100-autofoo.patch;patch=1 \ file://w100-fix-offscreen-bmp.patch;patch=1 \ file://kdrive-1.3-18bpp.patch;patch=1 \ + file://linux-keyboard-mediumraw.patch;patch=1 \ file://gumstix-kmode.patch;patch=1 \ file://smedia-glamo.patch;patch=1 \ file://build-glamo.patch;patch=1 \ diff --git a/packages/xorg-xserver/xserver-kdrive_1.4.bb b/packages/xorg-xserver/xserver-kdrive_1.4.bb index f2d9810ec4..f4d5be38e1 100644 --- a/packages/xorg-xserver/xserver-kdrive_1.4.bb +++ b/packages/xorg-xserver/xserver-kdrive_1.4.bb @@ -3,7 +3,7 @@ require xserver-kdrive-common.inc DEPENDS += "hal libxkbfile libxcalibrate pixman" PE = "1" -PR = "r1" +PR = "r2" SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ ${KDRIVE_COMMON_PATCHES} \ @@ -16,6 +16,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \ file://w100-autofoo.patch;patch=1 \ file://w100-fix-offscreen-bmp.patch;patch=1 \ file://w100-new-input-world-order.patch;patch=1 \ + file://linux-keyboard-mediumraw.patch;patch=1 \ file://xcalibrate-new-input-world-order.patch;patch=1 \ file://tslib-default-device.patch;patch=1 \ file://fbdev-evdev.patch;patch=1 \ |