merge of '2641af179102d54034675cfdb4e90ed8d63ee913'
authorPaul Sokolovsky <pmiscml@gmail.com>
Fri, 1 Feb 2008 17:50:42 +0000 (17:50 +0000)
committerPaul Sokolovsky <pmiscml@gmail.com>
Fri, 1 Feb 2008 17:50:42 +0000 (17:50 +0000)
     and 'e870bd2d79dc7b64ecc6d9ebf5a41c7f98b66d9b'

47 files changed:
MAINTAINERS
conf/checksums.ini
conf/local.conf.sample
conf/machine/mpc8313e-rdb.conf
packages/gcc/gcc-4.1.0/arm-nolibfloat.patch [deleted file]
packages/gcc/gcc-4.1.0/arm-softfloat.patch [deleted file]
packages/gcc/gcc-4.1.0/ldflags.patch [deleted file]
packages/gcc/gcc-4.1.0/pr34130.patch [deleted file]
packages/gcc/gcc-4.1.0/zecke-no-host-includes.patch [deleted file]
packages/gcc/gcc-4.1.0/zecke-xgcc-cpp.patch [deleted file]
packages/libc-client/.mtn2git_empty [new file with mode: 0644]
packages/libc-client/libc-client_2007.bb [new file with mode: 0644]
packages/libexosip2/.mtn2git_empty [new file with mode: 0644]
packages/libexosip2/files/.mtn2git_empty [new file with mode: 0644]
packages/libexosip2/files/simplify-flags.patch [new file with mode: 0644]
packages/libexosip2/libexosip2_2.2.3.bb [new file with mode: 0644]
packages/linux/linux-openmoko_2.6.24.bb [new file with mode: 0644]
packages/linux/linux-rp-2.6.23/defconfig-spitz
packages/linux/linux-rp-2.6.23/mtd-module.patch [new file with mode: 0644]
packages/linux/linux-rp-2.6.23/sharpsl-rc-r1.patch [new file with mode: 0644]
packages/linux/linux-rp-2.6.23/wm8750-treble.patch [new file with mode: 0644]
packages/linux/linux-rp-2.6.24/defconfig-spitz
packages/linux/linux-rp-2.6.24/mtd-module.patch [new file with mode: 0644]
packages/linux/linux-rp-2.6.24/sharpsl-rc-r1.patch [new file with mode: 0644]
packages/linux/linux-rp-2.6.24/wm8750-treble.patch [new file with mode: 0644]
packages/linux/linux-rp_2.6.23.bb
packages/linux/linux-rp_2.6.24.bb
packages/linux/linux_2.6.23.bb
packages/lm_sensors/lmsensors-apps_2.10.1.bb
packages/navit/files/navit.desktop
packages/navit/navit.inc
packages/navit/navit_0.0.3.bb
packages/navit/navit_cvs.bb
packages/php/php-native_4.4.4.bb
packages/php/php-native_5.2.0.bb
packages/php/php.inc
packages/php/php_4.4.4.bb
packages/php/php_5.1.4.bb
packages/php/php_5.2.0.bb
packages/ttf-fonts/ttf-dejavu_2.18.bb [deleted file]
packages/ttf-fonts/ttf-dejavu_2.23.bb [new file with mode: 0644]
packages/u-boot/u-boot-1.3.1/.mtn2git_empty [new file with mode: 0644]
packages/u-boot/u-boot_1.3.1.bb [new file with mode: 0644]
packages/xorg-xserver/xserver-kdrive-1.3.0.0/linux-keyboard-mediumraw.patch [new file with mode: 0644]
packages/xorg-xserver/xserver-kdrive-1.4/linux-keyboard-mediumraw.patch [new file with mode: 0644]
packages/xorg-xserver/xserver-kdrive_1.3.0.0.bb
packages/xorg-xserver/xserver-kdrive_1.4.bb

index 089cf6e..9b1e885 100644 (file)
@@ -193,7 +193,7 @@ Mail:       rpurdie@rpsys.net
 Distros:    poky, openzaurus, Ångström
 Machines:   poodle, c7x0, spitz, nokia770, qemuarm, qemux86, hx2xxx
 Interests:  Kernels, Bitbake, Core OE infrastructure, Zaurus 2.6
-Recipes:    linux-rp, udev, zaurusd, task-base
+Recipes:    linux-rp, udev, zaurusd, task-base, qemu
 
 Person:     Rick Farina
 Mail:       sidhayn@gmail.com
index 821a3a1..36b7a8f 100644 (file)
@@ -8890,7 +8890,7 @@ sha256=6eb45f17b50d864157dac2028ee5d45f4f54548825f5a732e1a430d5aa2dd889
 md5=195b684e025ff5c15617d6f757cf631f
 sha256=e14546d11e899e7e9f06ca58979fee14b273d53c637eb268d7c6fe3bf78d564d
 
-[http://de3.php.net/distributions/php-4.4.4.tar.bz2]
+[http://museum.php.net/php4/php-4.4.4.tar.bz2]
 md5=bc6fa8908e2ac36e93bab9f7d42cda3a
 sha256=9f0742fce014a255f8453c1264afee5de289a9e9dcd57c448c77b46978f6a76b
 
index 4d60fa7..5204039 100644 (file)
@@ -39,7 +39,7 @@ BBMASK = ""
 # generation under qemu (mainly arm glibc) and have an external gcc 3.x compiler
 # that OE recognises. This will mean the gcc-native build is skipped, speeding 
 # builds up.
-# ASSUME_PROVIDED += "gcc-native3"
+# ASSUME_PROVIDED += "gcc3-native"
 
 # Uncomment this if you are building Linux 2.4 Embedix kernels.
 # i.e. openzaurus-sa-2.4.18 and openzaurus-pxa-2.4.18 - and don't forget
index 81c3e29..3bc18e3 100644 (file)
@@ -10,7 +10,7 @@ PREFERRED_VERSION_u-boot = "git"
 
 MACHINE_FEATURES = "kernel26 usbhost ext2"
 
-PREFERRED_VERSION_u-boot = "1.3.0"
+PREFERRED_VERSION_u-boot = "1.3.1"
 UBOOT_MACHINE = "MPC8313ERDB_33_config"
 
 #rootfs on NAND flash
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 (file)
index c4897c0..0000000
+++ /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 (file)
index c86c83e..0000000
+++ /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 (file)
index 9576f60..0000000
+++ /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 (file)
index 415335f..0000000
+++ /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 (file)
index 6afb10d..0000000
+++ /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 (file)
index 120cf55..0000000
+++ /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 (file)
index 0000000..e69de29
diff --git a/packages/libc-client/libc-client_2007.bb b/packages/libc-client/libc-client_2007.bb
new file mode 100644 (file)
index 0000000..87035af
--- /dev/null
@@ -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 (file)
index 0000000..e69de29
diff --git a/packages/libexosip2/files/.mtn2git_empty b/packages/libexosip2/files/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/libexosip2/files/simplify-flags.patch b/packages/libexosip2/files/simplify-flags.patch
new file mode 100644 (file)
index 0000000..62bb768
--- /dev/null
@@ -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 (file)
index 0000000..5251d0e
--- /dev/null
@@ -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 (file)
index 0000000..d58f231
--- /dev/null
@@ -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
index a18218f..a4e849c 100644 (file)
@@ -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 (file)
index 0000000..4aa2f22
--- /dev/null
@@ -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 (file)
index 0000000..08f1f2e
--- /dev/null
@@ -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 (file)
index 0000000..07a8d8e
--- /dev/null
@@ -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),
index d022630..0322da0 100644 (file)
@@ -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 (file)
index 0000000..4aa2f22
--- /dev/null
@@ -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 (file)
index 0000000..453010a
--- /dev/null
@@ -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 (file)
index 0000000..07a8d8e
--- /dev/null
@@ -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),
index a8c5f79..f4967e1 100644 (file)
@@ -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 \
        "
index 593a70a..cfa6185 100644 (file)
@@ -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 \
        "
index 77137b0..5322c51 100644 (file)
@@ -26,8 +26,6 @@ SRC_URI += "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/patch-2.6.23.12.bz2;patch=
 SRC_URI += "http://people.redhat.com/mingo/cfs-scheduler/sched-cfs-v2.6.23.12-v24.1.patch;patch=1"
 # Add support for squashfs-lzma (a highly compressed read-only filesystem)
 SRC_URI += "http://kamikaze.waninkoko.info/patches/2.6.23/klight1/broken-out/squashfs-lzma-2.6.23.patch;patch=1"
-# Completely fair scheduler
-SRC_URI += "http://people.redhat.com/mingo/cfs-scheduler/sched-cfs-v2.6.23.12-v24.1.patch;patch=1"
 
 # The Atmel patch doesn't apply against 2.6.23.12  :( 
 SRC_URI_avr32 = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \
index 6f89481..9d5a8af 100644 (file)
@@ -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() {
index 52aae31..4d7fda0 100644 (file)
@@ -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
index 06e3a72..23e3f9b 100644 (file)
@@ -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
 }
index a926528..6688768 100644 (file)
@@ -1,5 +1,5 @@
 require navit.inc
 
-PR = "r4"
+PR = "r5"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/navit/navit-${PV}.tar.gz"
index 014e7d3..f548c19 100644 (file)
@@ -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"
 
index c90aa83..07b13be 100644 (file)
@@ -3,3 +3,4 @@ require php_${PV}.bb
 inherit native
 FILESPATH = "${FILE_DIRNAME}/php-${PV}:${FILE_DIRNAME}/php:${FILE_DIRNAME}/files"
 DEPENDS = "zlib-native"
+PR = "r1"
index 7f5bc9f..b3bf7b5 100644 (file)
@@ -6,4 +6,4 @@ export LD_LIBRARY_PATH = "${STAGING_LIBDIR}"
 
 FILESPATH = "${FILE_DIRNAME}/php-${PV}:${FILE_DIRNAME}/php:${FILE_DIRNAME}/files"
 DEPENDS = "zlib-native libxml2-native"
-
+PR = "r1"
index 6e2c265..321034b 100644 (file)
@@ -1,10 +1,12 @@
-SECTION = "console/network"
 DESCRIPTION = "A server-side, HTML-embedded scripting language. This package provides the CGI."
+HOMEPAGE = "http://www.php.net"
+SECTION = "console/network"
 LICENSE = "PHP"
-SRC_URI = "http://de3.php.net/distributions/php-${PV}.tar.bz2 \
-           file://${FILESDIR}/autotools.patch;patch=1 \
-           file://${FILESDIR}/pear.patch;patch=1"
-S = "${WORKDIR}/php-${PV}"
+DEPENDS = "zlib libxml2 mysql virtual/libiconv php-native"
+
+SRC_URI =     "http://us2.php.net/distributions/php-${PV}.tar.bz2\
+               file://autotools.patch;patch=1 \
+               file://acinclude-xml2-config.patch;patch=1"
 
 inherit autotools
 
index c15a9ee..3000ad1 100644 (file)
@@ -1 +1,8 @@
 require php.inc
+
+PR = "r1"
+
+SRC_URI = "http://museum.php.net/php4/php-${PV}.tar.bz2 \
+           file://${FILESDIR}/autotools.patch;patch=1 \
+           file://${FILESDIR}/pear.patch;patch=1"
+
index a9ea9d2..47475da 100644 (file)
@@ -1,21 +1,12 @@
-SECTION = "console/network"
-DESCRIPTION = "A server-side, HTML-embedded scripting language. This package provides the CGI."
-LICENSE = "PHP"
-DEPENDS = "zlib libxml2 mysql virtual/libiconv"
+require php.inc
 
-SRC_URI =     "http://us2.php.net/distributions/php-${PV}.tar.bz2\
-              file://autotools.patch;patch=1 \
-               file://acinclude-xml2-config.patch;patch=1"
-
-S = "${WORKDIR}/php-${PV}"
-PR = "r2"
+PR = "r3"
 
 inherit autotools
 
 export THREADS="pthread"
 export LIBS=" -lpthread "
 
-CFLAGS += " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
 EXTRA_OECONF = "--without-iconv \
                --enable-discard-path \
                --enable-sockets \
@@ -28,13 +19,7 @@ EXTRA_OECONF += " --without-pear --with-libxml-dir=${STAGING_BINDIR} "
 #EXTRA_OECONF += " --with-pear-php-cli=${STAGING_BINDIR_NATIVE}/php"
 #DEPENDS += " php-native"
 
-acpaths = ""
-
 do_configure_append() {
     find ${S} -type f | xargs sed -i 's:/usr/lib:${STAGING_LIBDIR}:'
     find ${S} -type f | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:'
 }
-
-do_install  () {
-       oe_runmake 'INSTALL_ROOT=${D}' install
-}
index ea4b0ea..4ed88cf 100644 (file)
@@ -1,22 +1,12 @@
-SECTION = "console/network"
-DESCRIPTION = "A server-side, HTML-embedded scripting language. This package provides the CGI."
-LICENSE = "PHP"
-DEPENDS = "zlib libxml2 mysql virtual/libiconv php-native"
+require php.inc
 
-SRC_URI = "http://us2.php.net/distributions/php-${PV}.tar.bz2\
-               file://autotools.patch;patch=1 \
-               file://acinclude-xml2-config.patch;patch=1 \
-                file://pear-makefile.patch;patch=1 \
-        "
-S = "${WORKDIR}/php-${PV}"
-PR = "r1"
+PR = "r2"
 
-inherit autotools
+SRC_URI += "file://pear-makefile.patch;patch=1 "
 
 export THREADS="pthread"
 export LIBS=" -lpthread "
 
-CFLAGS += " -DPTYS_ARE_GETPT -DPTYS_ARE_SEARCHED"
 EXTRA_OECONF = "    --without-iconv \
                    --enable-discard-path \
                    --enable-sockets \
@@ -29,28 +19,16 @@ EXTRA_OECONF = "    --without-iconv \
                     --with-mysqli="${STAGING_BINDIR_NATIVE}/mysql_config" \
 "
 
-
-
-
-# Uncomment the following two lines, and comment the above to enable PEAR
 EXTRA_OECONF += " --with-pear-php-cli=${STAGING_BINDIR} --with-libxml-dir=${STAGING_BINDIR}"
 
 export LD_LIBRARY_PATH = "${STAGING_LIBDIR}"
 export PHP_NATIVE_DIR="${STAGING_BINDIR_NATIVE}"
 export PHP_PEAR_PHP_BIN="/usr/bin/php"
 
-acpaths = ""
-
 do_configure_append() {
     find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}:g'
 }
 
-do_install  () {
-       oe_runmake 'INSTALL_ROOT=${D}' install
-}
-
-
-
 PACKAGES = "${PN}-dbg \
             ${PN}-cli \
             ${PN}-pear \
@@ -76,17 +54,12 @@ FILES_${PN}-pear            ="/usr/bin/pear* /usr/bin/pecl \
                              /usr/lib/php/.depdb /usr/lib/php/.depdblock /usr/lib/php/.filemap \
                              /usr/lib/php/.lock"
 
-
 FILES_${PN}-dev            ="/usr/include/php /usr/include/build \
                             /usr/bin/phpize /usr/bin/php-config"
 
 FILES_${PN}                 ="/usr/lib/php"
 FILES_${PN}                +="/usr/bin"
 
-
-
 RDEPENDS_${PN}-pear         =${PN}
 RDEPENDS_${PN}-cli          =${PN}
 RDEPENDS_${PN}-dev          =${PN}
-
-
diff --git a/packages/ttf-fonts/ttf-dejavu_2.18.bb b/packages/ttf-fonts/ttf-dejavu_2.18.bb
deleted file mode 100644 (file)
index 6f05cef..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-require ttf.inc
-
-DESCRIPTION = "DejaVu font - TTF Edition"
-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 \
-           file://30-dejavu-aliases.conf"
-
-S = "${WORKDIR}/dejavu-ttf-${PV}"
-
-do_install_append () { 
-       install -d ${D}${sysconfdir}/fonts/conf.d/
-       install -m 0644 ${WORKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
-}
-
-PACKAGES = "${PN}-dbg ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-sans-condensed \
-           ttf-dejavu-serif ttf-dejavu-serif-condensed ttf-dejavu-common"
-
-FILES_ttf-dejavu-sans            = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf"
-FILES_ttf-dejavu-sans-mono       = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf"
-FILES_ttf-dejavu-sans-condensed  = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf"
-FILES_ttf-dejavu-serif           = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf"
-FILES_ttf-dejavu-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf"
-FILES_ttf-dejavu-common          = "${sysconfdir}"
diff --git a/packages/ttf-fonts/ttf-dejavu_2.23.bb b/packages/ttf-fonts/ttf-dejavu_2.23.bb
new file mode 100644 (file)
index 0000000..c0655ec
--- /dev/null
@@ -0,0 +1,27 @@
+require ttf.inc
+
+DESCRIPTION = "DejaVu font - TTF Edition"
+HOMEPAGE = "http://dejavu.sourceforge.net/wiki/"
+LICENSE = "Bitstream Vera"
+RDEPENDS = "ttf-dejavu-common"
+RDEPENDS_ttf-dejavu-common = ""
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \
+           file://30-dejavu-aliases.conf"
+
+S = "${WORKDIR}/dejavu-fonts-ttf-${PV}/ttf"
+
+do_install_append () { 
+       install -d ${D}${sysconfdir}/fonts/conf.d/
+       install -m 0644 ${WORKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
+}
+
+PACKAGES = "${PN}-dbg ttf-dejavu-sans ttf-dejavu-sans-mono ttf-dejavu-sans-condensed \
+           ttf-dejavu-serif ttf-dejavu-serif-condensed ttf-dejavu-common"
+
+FILES_ttf-dejavu-sans            = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf"
+FILES_ttf-dejavu-sans-mono       = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf"
+FILES_ttf-dejavu-sans-condensed  = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf"
+FILES_ttf-dejavu-serif           = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf"
+FILES_ttf-dejavu-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf"
+FILES_ttf-dejavu-common          = "${sysconfdir}"
diff --git a/packages/u-boot/u-boot-1.3.1/.mtn2git_empty b/packages/u-boot/u-boot-1.3.1/.mtn2git_empty
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/packages/u-boot/u-boot_1.3.1.bb b/packages/u-boot/u-boot_1.3.1.bb
new file mode 100644 (file)
index 0000000..60074d3
--- /dev/null
@@ -0,0 +1,9 @@
+require u-boot.inc
+
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "ftp://ftp.denx.de/pub/u-boot/u-boot-${PV}.tar.bz2 \
+           file://mpc8313e-rdb-autoboot.patch;patch=1 \
+           file://mpc8313e-rdb-nand.patch;patch=1"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
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 (file)
index 0000000..997028a
--- /dev/null
@@ -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 (file)
index 0000000..36d2f8e
--- /dev/null
@@ -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++;
+       }
+     }
index 71d0ecc..755a51c 100644 (file)
@@ -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 \
index f2d9810..f4d5be3 100644 (file)
@@ -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 \