summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/gcc/gcc-cross-sdk_4.1.2.bb42
-rw-r--r--packages/gcc/gcc-cross_4.1.1.bb2
-rw-r--r--packages/gcc/gcc-cross_4.1.2.bb2
-rw-r--r--packages/gcc/gcc-package-sdk.inc2
-rw-r--r--packages/gcc/gcc_4.1.1.bb3
-rw-r--r--packages/gcc/gcc_4.1.2.bb3
-rwxr-xr-xpackages/gpephone/gpe-session-scripts-phone/phonesession8
-rw-r--r--packages/gpephone/gpe-session-scripts-phone_0.67.bb2
-rw-r--r--packages/gpephone/ptim-engine/.mtn2git_empty (renamed from packages/sysvinit/sysvinit/htcuniversal/.mtn2git_empty)0
-rw-r--r--packages/gpephone/ptim-engine/gtkmodule-location.patch11
-rw-r--r--packages/gpephone/ptim-engine_svn.bb23
-rw-r--r--packages/gpephone/ptim-headers_svn.bb18
-rw-r--r--packages/gpephone/ptim-helper/.mtn2git_empty0
-rw-r--r--packages/gpephone/ptim-helper/gtkmodule-location.patch22
-rw-r--r--packages/gpephone/ptim-helper_svn.bb23
-rw-r--r--packages/gpephone/ptim-manager/.mtn2git_empty0
-rw-r--r--packages/gpephone/ptim-manager/gtkmodule-location.patch21
-rw-r--r--packages/gpephone/ptim-manager_svn.bb23
-rw-r--r--packages/gsm/files/htcuniversal/.mtn2git_empty0
-rw-r--r--packages/gsm/files/htcuniversal/default10
-rw-r--r--packages/gsm/files/interpreter-ready.patch47
-rw-r--r--packages/gsm/files/magician/default5
-rw-r--r--packages/gsm/files/magician/ldisc.patch66
-rw-r--r--packages/gsm/files/magician/vendor-tihtc.patch325
-rw-r--r--packages/gsm/files/numeric.patch56
-rw-r--r--packages/gsm/files/plugin.patch935
-rw-r--r--packages/gsm/libgsmd_svn.bb14
-rw-r--r--packages/gtk+/gtk+_2.6.10.bb2
-rw-r--r--packages/hal/files/99_hal1
-rw-r--r--packages/hal/hal_0.5.9.bb2
-rw-r--r--packages/hwdata/.mtn2git_empty0
-rw-r--r--packages/hwdata/hwdata_0.191.bb14
-rw-r--r--packages/linux/linux-jlime-jornada6xx-2.6.21rc5/.mtn2git_empty0
-rw-r--r--packages/linux/linux-jlime-jornada6xx-2.6.21rc5/defconfig1245
-rw-r--r--packages/linux/linux-jlime-jornada6xx-2.6.21rc5/git-20070405-2.patch1058
-rw-r--r--packages/linux/linux-jlime-jornada6xx-2.6.21rc5/hp6xx-IRQ3.patch4
-rw-r--r--packages/linux/linux-jlime-jornada6xx_2.6.21rc5.bb33
-rw-r--r--packages/linux/linux-x86-2.6.20/netvista/defconfig63
-rw-r--r--packages/linux/linux-x86_2.6.20.bb10
-rw-r--r--packages/meta/meta-e-x11-core.bb4
-rw-r--r--packages/meta/meta-e-x11.bb4
-rw-r--r--packages/meta/meta-gpe-extras.bb7
-rw-r--r--packages/meta/meta-gpe.bb7
-rw-r--r--packages/meta/meta-gpephone.bb7
-rw-r--r--packages/meta/meta-opie-all.bb18
-rw-r--r--packages/meta/meta-opie.bb5
-rw-r--r--packages/meta/meta-sdk-sbox.bb16
-rw-r--r--packages/meta/meta-sdk.bb7
-rw-r--r--packages/meta/meta-sdl.bb12
-rw-r--r--packages/meta/meta-sectest-gpe.bb7
-rw-r--r--packages/meta/meta-toolchain.bb6
-rw-r--r--packages/meta/slugos-packages.bb6
-rw-r--r--packages/meta/xbase-clients.bb3
-rw-r--r--packages/openmoko-base/openmoko-common_svn.bb2
-rw-r--r--packages/perl/perl-5.8.4/.mtn2git_empty0
-rw-r--r--packages/perl/perl-5.8.4/Makefile.SH.patch (renamed from packages/perl/files/Makefile.SH.patch)0
-rw-r--r--packages/perl/perl-5.8.4/Makefile.patch (renamed from packages/perl/files/Makefile.patch)0
-rw-r--r--packages/perl/perl-5.8.4/config.sh-arm-linux.patch (renamed from packages/perl/files/config.sh-arm-linux.patch)0
-rw-r--r--packages/perl/perl-5.8.4/config.sh-i686-linux (renamed from packages/perl/files/config.sh-i686-linux)0
-rw-r--r--packages/perl/perl-5.8.4/config.sh-mipsel-linux (renamed from packages/perl/files/config.sh-mipsel-linux)0
-rw-r--r--packages/perl/perl-5.8.4/uclibc.patch (renamed from packages/perl/files/uclibc.patch)0
-rw-r--r--packages/perl/perl.inc27
-rw-r--r--packages/perl/perl_5.8.4.bb26
-rw-r--r--packages/perl/perl_5.8.7.bb16
-rw-r--r--packages/sysvinit/sysvinit/htcuniversal/inittab30
-rw-r--r--packages/tasks/task-base.bb4
-rw-r--r--packages/tasks/task-gpephone.bb6
-rw-r--r--packages/tasks/task-sdk-sbox.bb22
-rw-r--r--packages/uboot/uboot-gta01_svn.bb2
-rw-r--r--packages/xserver-common/xserver-common_1.16.bb18
70 files changed, 3754 insertions, 603 deletions
diff --git a/packages/gcc/gcc-cross-sdk_4.1.2.bb b/packages/gcc/gcc-cross-sdk_4.1.2.bb
new file mode 100644
index 0000000000..f3968f512d
--- /dev/null
+++ b/packages/gcc/gcc-cross-sdk_4.1.2.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "The GNU cc and gcc C compilers."
+HOMEPAGE = "http://www.gnu.org/software/gcc/"
+SECTION = "devel"
+LICENSE = "GPL"
+PR = "r0"
+
+inherit sdk
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/gcc-${PV}"
+
+DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
+PACKAGES = "${PN}"
+
+require gcc_${PV}.bb
+require gcc4-build-sdk.inc
+require gcc-package-sdk.inc
+
+SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 \
+ file://100-uclibc-conf.patch;patch=1 \
+ file://110-arm-eabi.patch;patch=1 \
+ file://200-uclibc-locale.patch;patch=1 \
+ file://300-libstdc++-pic.patch;patch=1 \
+ file://301-missing-execinfo_h.patch;patch=1 \
+ file://302-c99-snprintf.patch;patch=1 \
+ file://303-c99-complex-ugly-hack.patch;patch=1 \
+ file://304-index_macro.patch;patch=1 \
+ file://602-sdk-libstdc++-includes.patch;patch=1 \
+ file://740-sh-pr24836.patch;patch=1 \
+ file://800-arm-bigendian.patch;patch=1 \
+ file://801-arm-bigendian-eabi.patch;patch=1 \
+ file://arm-nolibfloat.patch;patch=1 \
+ file://arm-softfloat.patch;patch=1 \
+ file://gcc41-configure.in.patch;patch=1 \
+ file://arm-thumb.patch;patch=1 \
+ file://arm-thumb-cache.patch;patch=1 \
+ file://ldflags.patch;patch=1 \
+ file://unbreak-armv4t.patch;patch=1 \
+ file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \
+ "
+
+SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
+
diff --git a/packages/gcc/gcc-cross_4.1.1.bb b/packages/gcc/gcc-cross_4.1.1.bb
index 67dbc83940..04b34919ec 100644
--- a/packages/gcc/gcc-cross_4.1.1.bb
+++ b/packages/gcc/gcc-cross_4.1.1.bb
@@ -15,4 +15,6 @@ require gcc3-build-cross.inc
# cross packaging
require gcc-package-cross.inc
+SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
+
EXTRA_OECONF += "--with-mpfr=${STAGING_DIR}/${BUILD_SYS}"
diff --git a/packages/gcc/gcc-cross_4.1.2.bb b/packages/gcc/gcc-cross_4.1.2.bb
index bb1114cf3b..dab2f332a2 100644
--- a/packages/gcc/gcc-cross_4.1.2.bb
+++ b/packages/gcc/gcc-cross_4.1.2.bb
@@ -15,4 +15,6 @@ require gcc3-build-cross.inc
# cross packaging
require gcc-package-cross.inc
+SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
+
EXTRA_OECONF += "--disable-libunwind-exceptions --with-mpfr=${STAGING_DIR}/${BUILD_SYS}"
diff --git a/packages/gcc/gcc-package-sdk.inc b/packages/gcc/gcc-package-sdk.inc
index 9d44fb51ab..1e5f2aaa5d 100644
--- a/packages/gcc/gcc-package-sdk.inc
+++ b/packages/gcc/gcc-package-sdk.inc
@@ -41,7 +41,7 @@ do_install () {
# the packaging.
if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then
${TARGET_PREFIX}strip ${D}${libdir}/libstdc++.so.*
- ${TARGET_PREFIX}strip ${D}${libdir}/libg2c.so.*
+ ${TARGET_PREFIX}strip ${D}${libdir}/libg2c.so.* || true
${TARGET_PREFIX}strip ${D}${base_libdir}/libgcc_s.so.*
fi
}
diff --git a/packages/gcc/gcc_4.1.1.bb b/packages/gcc/gcc_4.1.1.bb
index b668769ceb..c88692ae0c 100644
--- a/packages/gcc/gcc_4.1.1.bb
+++ b/packages/gcc/gcc_4.1.1.bb
@@ -1,4 +1,4 @@
-PR = "r12"
+PR = "r13"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
@@ -35,7 +35,6 @@ SRC_URI = "http://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.1/gcc-4.1.1.tar.bz2 \
file://gcc-ignore-cache.patch;patch=1 \
"
-SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
SRC_URI_append_powerpc = " file://ppc-gcc-41-20060515.patch;patch=1 \
diff --git a/packages/gcc/gcc_4.1.2.bb b/packages/gcc/gcc_4.1.2.bb
index 91f6624aa1..2e6036d119 100644
--- a/packages/gcc/gcc_4.1.2.bb
+++ b/packages/gcc/gcc_4.1.2.bb
@@ -1,4 +1,4 @@
-PR = "r0"
+PR = "r1"
DESCRIPTION = "The GNU cc and gcc C compilers."
HOMEPAGE = "http://www.gnu.org/software/gcc/"
SECTION = "devel"
@@ -32,7 +32,6 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/gcc/gcc-4.1.2/gcc-4.1.2.tar.bz2 \
file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 \
"
-SRC_URI_append_fail-fast = " file://zecke-no-host-includes.patch;patch=1 "
SRC_URI_append_sh3 = " file://sh3-installfix-fixheaders.patch;patch=1 "
#Set the fortran bits
diff --git a/packages/gpephone/gpe-session-scripts-phone/phonesession b/packages/gpephone/gpe-session-scripts-phone/phonesession
index 689b3c01ed..38c1f90db0 100755
--- a/packages/gpephone/gpe-session-scripts-phone/phonesession
+++ b/packages/gpephone/gpe-session-scripts-phone/phonesession
@@ -30,6 +30,14 @@ export TINYMAIL_CACHE_DIR=$APP_PATH/share/tinymail.cache
# For Calendar
export CAL_RES_PATH=$APP_PATH/share/res
+# For GTK input engine
+export PTIM_PATH=/usr/lib/gtk-2.0/2.4.0/immodules/ptim
+export PTIM_PIXMAPS_PATH=$PTIM_PATH/pixmaps
+export PTIM_CONFIG_FILE=$PTIM_PATH/imconfig
+export PTIM_HELPER_PATH=$PTIM_PATH/helper
+export PTIM_ENGINE_PATH=$PTIM_PATH/engine
+export GTK_IM_MODULE=ptim
+
# Start GPE Phone Edition apps through matchbox session
gpe-applauncher&
sleep 2
diff --git a/packages/gpephone/gpe-session-scripts-phone_0.67.bb b/packages/gpephone/gpe-session-scripts-phone_0.67.bb
index 5312d63249..5af3ff683a 100644
--- a/packages/gpephone/gpe-session-scripts-phone_0.67.bb
+++ b/packages/gpephone/gpe-session-scripts-phone_0.67.bb
@@ -13,7 +13,7 @@ SRC_URI = "${GPE_MIRROR}/gpe-session-scripts-${PV}.tar.gz \
file://phonesession \
file://disable-composite.xsettings"
-PR = "r3"
+PR = "r4"
S = "${WORKDIR}/gpe-session-scripts-${PV}"
diff --git a/packages/sysvinit/sysvinit/htcuniversal/.mtn2git_empty b/packages/gpephone/ptim-engine/.mtn2git_empty
index e69de29bb2..e69de29bb2 100644
--- a/packages/sysvinit/sysvinit/htcuniversal/.mtn2git_empty
+++ b/packages/gpephone/ptim-engine/.mtn2git_empty
diff --git a/packages/gpephone/ptim-engine/gtkmodule-location.patch b/packages/gpephone/ptim-engine/gtkmodule-location.patch
new file mode 100644
index 0000000000..6882f1239d
--- /dev/null
+++ b/packages/gpephone/ptim-engine/gtkmodule-location.patch
@@ -0,0 +1,11 @@
+--- src/Makefile.am~ 2007-04-05 16:49:43.000000000 +0200
++++ src/Makefile.am 2007-04-05 16:49:43.000000000 +0200
+@@ -3,7 +3,7 @@
+ GTK_PREFIX=`pkg-config gtk+-2.0 --variable=libdir`
+ GTK_BINARY_VERSION=`pkg-config gtk+-2.0 --variable=gtk_binary_version`
+
+-moduledir = $(GTK_PREFIX)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/engine
++moduledir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/engine
+
+ INCLUDES = -DPACKAGE_LOCALE_DIR=\"@datadir@/locale/@PACKAGE_NAME@\" -DSN_API_NOT_YET_FROZEN \
+ -I. $(IMENGINE_CFLAGS)
diff --git a/packages/gpephone/ptim-engine_svn.bb b/packages/gpephone/ptim-engine_svn.bb
new file mode 100644
index 0000000000..286a1edf8d
--- /dev/null
+++ b/packages/gpephone/ptim-engine_svn.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Phone input method engine"
+SECTION = "gpephone"
+PRIORITY = "optional"
+LICENSE = "LiPS"
+DEPENDS = "gtk+ ptim-headers"
+PV = "0.1+svn-${SRCDATE}"
+
+DEFAULT_PREFERENCE = "-1"
+
+inherit gpephone pkgconfig autotools
+
+SRC_URI = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source/ptim;module=imengine \
+ file://gtkmodule-location.patch;patch=1;pnum=0"
+
+S = "${WORKDIR}/imengine"
+
+FILES_${PN} += " ${libdir}/gtk-2.0/*/immodules/ptim/engine/*.so "
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/immodules/ptim/engine/.debug/*.so"
+FILES_${PN}-dev += "${libdir}/gtk-2.0/*/immodules/ptim/engine/*.la"
+
+do_stage () {
+ autotools_stage_all
+} \ No newline at end of file
diff --git a/packages/gpephone/ptim-headers_svn.bb b/packages/gpephone/ptim-headers_svn.bb
new file mode 100644
index 0000000000..304c103505
--- /dev/null
+++ b/packages/gpephone/ptim-headers_svn.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Phone input method - shared headers"
+SECTION = "gpephone"
+PRIORITY = "optional"
+LICENSE = "LiPS"
+DEPENDS = "gtk+"
+PV = "0.1+svn-${SRCDATE}"
+
+inherit gpephone pkgconfig autotools
+
+SRC_URI = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source/ptim;module=imheaders"
+
+S = "${WORKDIR}/imheaders"
+
+DEFAULT_PREFERENCE = "-1"
+
+do_stage () {
+ autotools_stage_all
+} \ No newline at end of file
diff --git a/packages/gpephone/ptim-helper/.mtn2git_empty b/packages/gpephone/ptim-helper/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpephone/ptim-helper/.mtn2git_empty
diff --git a/packages/gpephone/ptim-helper/gtkmodule-location.patch b/packages/gpephone/ptim-helper/gtkmodule-location.patch
new file mode 100644
index 0000000000..cd0e469608
--- /dev/null
+++ b/packages/gpephone/ptim-helper/gtkmodule-location.patch
@@ -0,0 +1,22 @@
+--- src/Makefile.am~ 2007-04-05 16:40:45.000000000 +0200
++++ src/Makefile.am 2007-04-05 16:40:45.000000000 +0200
+@@ -3,7 +3,7 @@
+ GTK_PREFIX=`pkg-config gtk+-2.0 --variable=libdir`
+ GTK_BINARY_VERSION=`pkg-config gtk+-2.0 --variable=gtk_binary_version`
+
+-moduledir = $(GTK_PREFIX)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/helper
++moduledir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/helper
+
+ INCLUDES = -DPACKAGE_LOCALE_DIR=\"@datadir@/locale/@PACKAGE_NAME@\" -DSN_API_NOT_YET_FROZEN \
+ -I. $(IMHELPER_CFLAGS)
+--- pixmaps/Makefile.am~ 2007-04-05 16:43:16.000000000 +0200
++++ pixmaps/Makefile.am 2007-04-05 16:43:16.000000000 +0200
+@@ -1,7 +1,7 @@
+ GTK_PREFIX=`pkg-config gtk+-2.0 --variable=libdir`
+ GTK_BINARY_VERSION=`pkg-config gtk+-2.0 --variable=gtk_binary_version`
+
+-pixmapsdir = $(GTK_PREFIX)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/pixmaps
++pixmapsdir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/pixmaps
+ pixmaps_DATA = \
+ next.png \
+ prev.png \
diff --git a/packages/gpephone/ptim-helper_svn.bb b/packages/gpephone/ptim-helper_svn.bb
new file mode 100644
index 0000000000..0d0ac653b5
--- /dev/null
+++ b/packages/gpephone/ptim-helper_svn.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Phone input method helper module"
+SECTION = "gpephone"
+PRIORITY = "optional"
+LICENSE = "LiPS"
+DEPENDS = "gtk+ ptim-headers"
+PV = "0.1+svn-${SRCDATE}"
+
+DEFAULT_PREFERENCE = "-1"
+
+inherit gpephone pkgconfig autotools
+
+SRC_URI = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source/ptim;module=imhelper \
+ file://gtkmodule-location.patch;patch=1;pnum=0"
+
+S = "${WORKDIR}/imhelper"
+
+FILES_${PN} += " ${libdir}/gtk-2.0/*/immodules/ptim/helper/*.so ${libdir}/gtk-2.0/*/immodules/ptim/pixmaps"
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/immodules/ptim/helper/.debug/*.so"
+FILES_${PN}-dev += "${libdir}/gtk-2.0/*/immodules/ptim/helper/*.la"
+
+do_stage () {
+ autotools_stage_all
+} \ No newline at end of file
diff --git a/packages/gpephone/ptim-manager/.mtn2git_empty b/packages/gpephone/ptim-manager/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gpephone/ptim-manager/.mtn2git_empty
diff --git a/packages/gpephone/ptim-manager/gtkmodule-location.patch b/packages/gpephone/ptim-manager/gtkmodule-location.patch
new file mode 100644
index 0000000000..d02166e1ac
--- /dev/null
+++ b/packages/gpephone/ptim-manager/gtkmodule-location.patch
@@ -0,0 +1,21 @@
+--- src/Makefile.am~ 2007-04-05 16:01:29.000000000 +0200
++++ src/Makefile.am 2007-04-05 16:01:29.000000000 +0200
+@@ -3,7 +3,7 @@
+ GTK_PREFIX=`pkg-config gtk+-2.0 --variable=libdir`
+ GTK_BINARY_VERSION=`pkg-config gtk+-2.0 --variable=gtk_binary_version`
+
+-moduledir = $(GTK_PREFIX)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules
++moduledir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules
+
+ INCLUDES = -DPACKAGE_LOCALE_DIR=\"@datadir@/locale/@PACKAGE_NAME@\" -DSN_API_NOT_YET_FROZEN \
+ -I. $(IMMANAGER_CFLAGS)
+--- Makefile.am~ 2007-04-05 16:21:36.000000000 +0200
++++ Makefile.am 2007-04-05 16:21:36.000000000 +0200
+@@ -3,6 +3,6 @@
+ GTK_PREFIX=`pkg-config gtk+-2.0 --variable=libdir`
+ GTK_BINARY_VERSION=`pkg-config gtk+-2.0 --variable=gtk_binary_version`
+
+-confdir = $(GTK_PREFIX)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/
++confdir = $(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules/ptim/
+ conf_DATA = \
+ conf/imconfig
diff --git a/packages/gpephone/ptim-manager_svn.bb b/packages/gpephone/ptim-manager_svn.bb
new file mode 100644
index 0000000000..b1113636e9
--- /dev/null
+++ b/packages/gpephone/ptim-manager_svn.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Phone input method manager module"
+SECTION = "gpephone"
+PRIORITY = "optional"
+LICENSE = "LiPS"
+DEPENDS = "gtk+ ptim-headers libiac"
+PV = "0.1+svn-${SRCDATE}"
+
+DEFAULT_PREFERENCE = "-1"
+
+inherit gpephone pkgconfig autotools
+
+SRC_URI = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source/ptim;module=immanager \
+ file://gtkmodule-location.patch;patch=1;pnum=0"
+
+S = "${WORKDIR}/immanager"
+
+FILES_${PN} += "${libdir}/gtk-2.0/*/immodules/*.so ${libdir}/gtk-2.0/*/immodules/ptim"
+FILES_${PN}-dbg += "${libdir}/gtk-2.0/*/immodules/.debug/*.so"
+FILES_${PN}-dev += "${libdir}/gtk-2.0/*/immodules/*.la"
+
+do_stage () {
+ autotools_stage_all
+} \ No newline at end of file
diff --git a/packages/gsm/files/htcuniversal/.mtn2git_empty b/packages/gsm/files/htcuniversal/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/gsm/files/htcuniversal/.mtn2git_empty
diff --git a/packages/gsm/files/htcuniversal/default b/packages/gsm/files/htcuniversal/default
new file mode 100644
index 0000000000..3c9a8da949
--- /dev/null
+++ b/packages/gsm/files/htcuniversal/default
@@ -0,0 +1,10 @@
+# gsmd This shell script configures for the gsmd init script.
+
+GSMD_OPTS="-s 115200 -F"
+
+# If your GSM device needs to be powered up, uncomment and modify the next line
+#GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
+
+# this should be in a common /etc/default/serial, together
+# with BT_DEV, and IR_DEV
+GSM_DEV="/dev/ttyS0"
diff --git a/packages/gsm/files/interpreter-ready.patch b/packages/gsm/files/interpreter-ready.patch
deleted file mode 100644
index cc6b9c6e2b..0000000000
--- a/packages/gsm/files/interpreter-ready.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Index: gsm/include/gsmd/gsmd.h
-===================================================================
---- gsm.orig/include/gsmd/gsmd.h 2007-03-29 17:07:10.000000000 +0200
-+++ gsm/include/gsmd/gsmd.h 2007-03-29 17:07:43.000000000 +0200
-@@ -58,6 +58,7 @@
-
- struct gsmd {
- unsigned int flags;
-+ int interpreter_ready;
- struct gsmd_fd gfd_uart;
- struct gsmd_fd gfd_sock;
- struct llparser llp;
-Index: gsm/src/gsmd/atcmd.c
-===================================================================
---- gsm.orig/src/gsmd/atcmd.c 2007-03-29 17:06:01.000000000 +0200
-+++ gsm/src/gsmd/atcmd.c 2007-03-29 17:08:27.000000000 +0200
-@@ -183,6 +183,7 @@
- * an empty string or that 'ready' string, we need to init the modem */
- if (strlen(buf) == 0 ||
- !strcmp(buf, "AT-Command Interpreter ready")) {
-+ g->interpreter_ready = 1;
- gsmd_initsettings(g);
- return 0;
- }
-@@ -372,7 +373,7 @@
- }
-
- /* write pending commands to UART */
-- if (what & GSMD_FD_WRITE) {
-+ if ((what & GSMD_FD_WRITE) && g->interpreter_ready) {
- struct gsmd_atcmd *pos, *pos2;
- llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) {
- len = strlen(pos->buf);
-Index: gsm/src/gsmd/gsmd.c
-===================================================================
---- gsm.orig/src/gsmd/gsmd.c 2007-03-29 17:06:04.000000000 +0200
-+++ gsm/src/gsmd/gsmd.c 2007-03-29 17:08:59.000000000 +0200
-@@ -291,7 +291,8 @@
-
- gsmd_vendor_plugin_find(&g);
-
-- gsmd_initsettings(&g);
-+ if (g.interpreter_ready)
-+ gsmd_initsettings(&g);
-
- gsmd_opname_init(&g);
-
diff --git a/packages/gsm/files/magician/default b/packages/gsm/files/magician/default
index a9c3b94b1d..523d0b9479 100644
--- a/packages/gsm/files/magician/default
+++ b/packages/gsm/files/magician/default
@@ -1,9 +1,10 @@
# gsmd This shell script configures for the gsmd init script.
-# Set line Discipline 17 (N_TIHTC), needs ldisc.patch-ed gsmd
-GSMD_OPTS="-s 115200 -F -D 17"
+GSMD_OPTS="-s 115200 -F"
# If your GSM device needs to be powered up, uncomment and modify the next line
#GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on"
+# this should be in a common /etc/default/serial, together
+# with BT_DEV, and IR_DEV
GSM_DEV="/dev/ttyS1"
diff --git a/packages/gsm/files/magician/ldisc.patch b/packages/gsm/files/magician/ldisc.patch
deleted file mode 100644
index 30d4a8812a..0000000000
--- a/packages/gsm/files/magician/ldisc.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Index: gsm/src/gsmd/gsmd.c
-===================================================================
---- gsm.orig/src/gsmd/gsmd.c 2007-03-29 15:29:31.000000000 +0200
-+++ gsm/src/gsmd/gsmd.c 2007-03-29 15:33:07.000000000 +0200
-@@ -32,6 +32,7 @@
- #define _GNU_SOURCE
- #include <getopt.h>
-
-+#include <sys/ioctl.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-
-@@ -150,6 +151,7 @@
- { "speed", 1, NULL, 's' },
- { "logfile", 1, NULL, 'l' },
- { "hwflow", 0, NULL, 'F' },
-+ { "ldisc", 1, NULL, 'D' },
- { "leak-report", 0, NULL, 'L' },
- { 0, 0, 0, 0 }
- };
-@@ -165,6 +167,7 @@
- "\t-p dev\t--device dev\tSpecify serial device to be used\n"
- "\t-s spd\t--speed spd\tSpecify speed in bps (9600,38400,115200,...)\n"
- "\t-F\t--hwflow\tHardware Flow Control (RTS/CTS)\n"
-+ "\t-D\t--ldisc num\tSet line discipline (0=N_TTY,...)\n"
- "\t-L\t--leak-report\tLeak Report of talloc memory allocator\n"
- "\t-l file\t--logfile file\tSpecify a logfile to log to\n"
- );
-@@ -191,6 +194,7 @@
- int daemonize = 0;
- int bps = 115200;
- int hwflow = 0;
-+ int ldisc = 0;
- char *device = "/dev/ttyUSB0";
- char *logfile = "syslog";
-
-@@ -202,7 +206,7 @@
- gsmd_tallocs = talloc_named_const(NULL, 1, "GSMD");
-
- /*FIXME: parse commandline, set daemonize, device, ... */
-- while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:", opts, NULL)) != -1) {
-+ while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:D:", opts, NULL)) != -1) {
- switch (argch) {
- case 'V':
- /* FIXME */
-@@ -232,6 +236,8 @@
- fprintf(stderr, "can't open logfile `%s'\n", optarg);
- exit(2);
- }
-+ case 'D':
-+ ldisc = atoi(optarg);
- break;
- }
- }
-@@ -249,6 +255,11 @@
- exit(1);
- }
-
-+ if (ldisc && ioctl(fd, TIOCSETD, &ldisc) < 0) {
-+ fprintf(stderr, "can't set line discipline\n");
-+ exit(1);
-+ }
-+
- if (gsmd_initialize(&g) < 0) {
- fprintf(stderr, "internal error\n");
- exit(1);
diff --git a/packages/gsm/files/magician/vendor-tihtc.patch b/packages/gsm/files/magician/vendor-tihtc.patch
deleted file mode 100644
index a2f22ffbea..0000000000
--- a/packages/gsm/files/magician/vendor-tihtc.patch
+++ /dev/null
@@ -1,325 +0,0 @@
-Index: gsm/src/gsmd/vendor_tihtc.c
-===================================================================
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ gsm/src/gsmd/vendor_tihtc.c 2007-03-27 13:12:05.000000000 +0200
-@@ -0,0 +1,294 @@
-+/* TI [Calypso] with HTC firmware gsmd plugin
-+ *
-+ * Written by Philipp Zabel <philipp.zabel@gmail.com>
-+ * based on vendor_ti.c
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ */
-+
-+#include <stdlib.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <errno.h>
-+
-+#include "gsmd.h"
-+
-+#include <gsmd/gsmd.h>
-+#include <gsmd/usock.h>
-+#include <gsmd/event.h>
-+#include <gsmd/talloc.h>
-+#include <gsmd/extrsp.h>
-+#include <gsmd/atcmd.h>
-+#include <gsmd/vendorplugin.h>
-+#include <gsmd/unsolicited.h>
-+
-+#if 0
-+#include "vendorplugin.h"
-+
-+static int
-+ti_getopt(struct gsmd *gh, int optname, void *optval, int *optlen)
-+{
-+ switch (optname) {
-+ case GSMD_OPT_CIPHER_IND:
-+ /* FIXME: send AT%CPRI=? */
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+static int
-+ti_setopt(struct gsmd *gh, int optname, const void *optval, int optlen)
-+{
-+ switch (optname) {
-+ case GSMD_OPT_CIPHER_IND:
-+ /* FIXME: send AT%CPRI= */
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+}
-+
-+#endif
-+
-+
-+static int htccsq_parse(char *buf, int len, const char *param,
-+ struct gsmd *gsmd)
-+{
-+ char *tok;
-+ struct gsmd_evt_auxdata *aux;
-+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL,
-+ sizeof(*aux));
-+
-+ DEBUGP("entering htccsq_parse param=`%s'\n", param);
-+ if (!ucmd)
-+ return -EINVAL;
-+
-+
-+ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
-+
-+ /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */
-+ /* 2 --> 11 */
-+ aux->u.signal.sigq.rssi = atoi(buf);
-+ aux->u.signal.sigq.ber = 99;
-+
-+ DEBUGP("sending EVT_SIGNAL\n");
-+ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL);
-+
-+ return 0;
-+
-+out_free_io:
-+ free(ucmd);
-+ return -EIO;
-+}
-+
-+static int cpri_parse(char *buf, int len, const char *param, struct gsmd *gsmd)
-+{
-+ char *tok1, *tok2;
-+
-+ tok1 = strtok(buf, ",");
-+ if (!tok1)
-+ return -EIO;
-+
-+ tok2 = strtok(NULL, ",");
-+ if (!tok2) {
-+ switch (atoi(tok1)) {
-+ case 0:
-+ gsmd->dev_state.ciph_ind.flags &= ~GSMD_CIPHIND_ACTIVE;
-+ break;
-+ case 1:
-+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_ACTIVE;
-+ break;
-+ case 2:
-+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_DISABLED_SIM;
-+ break;
-+ }
-+ } else {
-+ struct gsmd_evt_auxdata *aux;
-+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT,
-+ GSMD_EVT_CIPHER,
-+ sizeof(*aux));
-+ if (!ucmd)
-+ return -ENOMEM;
-+
-+ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
-+
-+ aux->u.cipher.net_state_gsm = atoi(tok1);
-+ aux->u.cipher.net_state_gsm = atoi(tok2);
-+
-+ usock_evt_send(gsmd, ucmd, GSMD_EVT_CIPHER);
-+ }
-+
-+ return 0;
-+}
-+
-+/* Call Progress Information */
-+static int cpi_parse(char *buf, int len, const char *param, struct gsmd *gsmd)
-+{
-+ char *tok;
-+ struct gsmd_evt_auxdata *aux;
-+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT,
-+ GSMD_EVT_OUT_STATUS,
-+ sizeof(*aux));
-+
-+ DEBUGP("entering cpi_parse param=`%s'\n", param);
-+ if (!ucmd)
-+ return -EINVAL;
-+
-+ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
-+
-+ /* Format: cId, msgType, ibt, tch, dir,[mode],[number],[type],[alpha],[cause],line */
-+
-+ /* call ID */
-+ tok = strtok(buf, ",");
-+ if (!tok)
-+ goto out_free_io;
-+
-+ /* message type (layer 3) */
-+ tok = strtok(NULL, ",");
-+ if (!tok)
-+ goto out_free_io;
-+ aux->u.call_status.prog = atoi(tok);
-+
-+ /* in-band tones */
-+ tok = strtok(NULL, ",");
-+ if (!tok)
-+ goto out_free_io;
-+
-+ if (*tok == '1')
-+ aux->u.call_status.ibt = 1;
-+ else
-+ aux->u.call_status.ibt = 0;
-+
-+ /* TCH allocated */
-+ tok = strtok(NULL, ",");
-+ if (!tok)
-+ goto out_free_io;
-+
-+ if (*tok == '1')
-+ aux->u.call_status.tch = 1;
-+ else
-+ aux->u.call_status.tch = 0;
-+
-+ /* direction */
-+ tok = strtok(NULL, ",");
-+ if (!tok)
-+ goto out_send;
-+
-+ switch (*tok) {
-+ case '0':
-+ case '1':
-+ case '2':
-+ case '3':
-+ aux->u.call_status.dir = (*tok - '0');
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ /* mode */
-+ tok = strtok(NULL, ",");
-+ if (!tok)
-+ goto out_send;
-+
-+out_send:
-+ usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_STATUS);
-+
-+ return 0;
-+
-+out_free_io:
-+ talloc_free(ucmd);
-+ return -EIO;
-+}
-+
-+static const struct gsmd_unsolicit tihtc_unsolicit[] = {
-+ { "%HTCCSQ", &htccsq_parse }, /* Signal Quality */
-+ { "%CPRI", &cpri_parse }, /* Ciphering Indication */
-+ { "%CPI", &cpi_parse }, /* Call Progress Information */
-+
-+ /* FIXME: parse the below and generate the respective events */
-+
-+ /* %CGREG: reports extended information about GPRS registration state */
-+};
-+
-+static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
-+{
-+ struct gsmd *g = ctx;
-+ struct gsm_extrsp *er;
-+
-+ if (strncmp(resp, "%CPI: ", 6))
-+ return -EINVAL;
-+ resp += 6;
-+
-+ er = extrsp_parse(cmd, resp);
-+ if (!er)
-+ return -EINVAL;
-+
-+ if (extrsp_supports(er, 0, 3))
-+ return gsmd_simplecmd(g, "AT%CPI=3");
-+ else if (extrsp_supports(er, 0, 2))
-+ return gsmd_simplecmd(g, "AT%CPI=2");
-+ else
-+ DEBUGP("Call Progress Indication mode 2 or 3 not supported!!\n");
-+
-+ talloc_free(er);
-+ return 0;
-+}
-+
-+static int tihtc_detect(struct gsmd *g)
-+{
-+ /* FIXME: do actual detection of vendor if we have multiple vendors */
-+ /* open /proc/cpuinfo and check for HTC Magician or HTC Blueangel? */
-+ /* check for N_TIHTC ldisc? or set it ourselves? */
-+ return 1;
-+}
-+
-+static int tihtc_initsettings(struct gsmd *g)
-+{
-+ int rc;
-+ struct gsmd_atcmd *cmd;
-+
-+ /* use %CGREG */
-+ //rc |= gsmd_simplecmd(g, "AT%CGREG=3");
-+ /* enable %CPRI: ciphering indications */
-+ rc |= gsmd_simplecmd(g, "AT%CPRI=1");
-+ /* enable %HTCCSQ: signal quality reports */
-+ rc |= gsmd_simplecmd(g, "AT%HTCCSQ=1");
-+ /* send unsolicited commands at any time */
-+ rc |= gsmd_simplecmd(g, "AT%CUNS=0");
-+
-+ /* enable %CPI: call progress indication */
-+ cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0);
-+ if (cmd)
-+ atcmd_submit(g, cmd);
-+
-+ return rc;
-+}
-+
-+static struct gsmd_vendor_plugin plugin_tihtc = {
-+ .name = "TI Calypso / HTC firmware",
-+ .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit),
-+ .unsolicit = tihtc_unsolicit,
-+ .detect = &tihtc_detect,
-+ .initsettings = &tihtc_initsettings,
-+};
-+
-+/* FIXME: this will be _init() when we make this a plugin */
-+int tihtc_init(void)
-+{
-+ return gsmd_vendor_plugin_register(&plugin_tihtc);
-+}
-Index: gsm/src/gsmd/gsmd.c
-===================================================================
---- gsm.orig/src/gsmd/gsmd.c 2007-03-27 13:07:59.000000000 +0200
-+++ gsm/src/gsmd/gsmd.c 2007-03-27 13:08:08.000000000 +0200
-@@ -276,7 +276,7 @@
- }
-
- /* FIXME: do this dynamically */
-- ticalypso_init();
-+ tihtc_init();
-
- gsmd_vendor_plugin_find(&g);
-
-Index: gsm/src/gsmd/Makefile.am
-===================================================================
---- gsm.orig/src/gsmd/Makefile.am 2007-03-27 13:09:11.000000000 +0200
-+++ gsm/src/gsmd/Makefile.am 2007-03-27 13:09:20.000000000 +0200
-@@ -4,7 +4,7 @@
- sbin_PROGRAMS = gsmd
-
- gsmd_SOURCES = gsmd.c atcmd.c select.c vendor.c usock.c unsolicited.c log.c \
-- vendor_ti.c talloc.c operator_cache.c ext_response.c
-+ vendor_ti.c vendor_tihtc.c talloc.c operator_cache.c ext_response.c
- #gsmd_LDADD = ../libgsmd/libgsmd.la
- #gsmd_LDFLAGS = -dynamic
-
diff --git a/packages/gsm/files/numeric.patch b/packages/gsm/files/numeric.patch
new file mode 100644
index 0000000000..cd1990cbe5
--- /dev/null
+++ b/packages/gsm/files/numeric.patch
@@ -0,0 +1,56 @@
+Index: gsm/src/gsmd/atcmd.c
+===================================================================
+--- gsm.orig/src/gsmd/atcmd.c 2007-04-02 09:59:16.000000000 +0200
++++ gsm/src/gsmd/atcmd.c 2007-04-02 10:10:54.000000000 +0200
+@@ -207,7 +207,7 @@
+ * TBD
+ */
+
+- if (buf[0] == '+' || buf[0] == '%') {
++ if (buf[0] == '+' || buf[0] == '%' || buf[0] == '@') {
+ /* an extended response */
+ const char *colon = strchr(buf, ':');
+ if (!colon) {
+@@ -269,14 +269,13 @@
+ memcpy(cmd->buf, buf, len);
+ }
+ } else {
+- if (!strcmp(buf, "RING")) {
++ if (!strcmp(buf, "RING") || buf[0] == '2') {
+ /* this is the only non-extended unsolicited return
+ * code, part of Case 'B' */
+ return unsolicited_parse(g, buf, len, NULL);
+ }
+
+- if (!strcmp(buf, "ERROR") ||
+- ((g->flags & GSMD_FLAG_V0) && buf[0] == '4')) {
++ if (!strcmp(buf, "ERROR") || buf[0] == '4') {
+ /* Part of Case 'C' */
+ DEBUGP("unspecified error\n");
+ if (cmd)
+@@ -285,8 +284,7 @@
+ goto final_cb;
+ }
+
+- if (!strncmp(buf, "OK", 2)
+- || ((g->flags & GSMD_FLAG_V0) && buf[0] == '0')) {
++ if (!strncmp(buf, "OK", 2) || buf[0] == '0') {
+ /* Part of Case 'C' */
+ if (cmd)
+ cmd->ret = 0;
+@@ -296,13 +294,13 @@
+
+ /* FIXME: handling of those special commands in response to
+ * ATD / ATA */
+- if (!strncmp(buf, "NO CARRIER", 11)) {
++ if (!strncmp(buf, "NO CARRIER", 11) || buf[0] == '3') {
+ /* Part of Case 'D' */
+ final = 1;
+ goto final_cb;
+ }
+
+- if (!strncmp(buf, "BUSY", 4)) {
++ if (!strncmp(buf, "BUSY", 4) || buf[0] == '7') {
+ /* Part of Case 'D' */
+ final = 1;
+ goto final_cb;
diff --git a/packages/gsm/files/plugin.patch b/packages/gsm/files/plugin.patch
new file mode 100644
index 0000000000..7f455ce718
--- /dev/null
+++ b/packages/gsm/files/plugin.patch
@@ -0,0 +1,935 @@
+Index: gsm/include/gsmd/gsmd.h
+===================================================================
+--- gsm.orig/include/gsmd/gsmd.h 2007-04-02 09:58:55.000000000 +0200
++++ gsm/include/gsmd/gsmd.h 2007-04-02 11:03:41.000000000 +0200
+@@ -7,6 +7,7 @@
+
+ #include <common/linux_list.h>
+
++#include <gsmd/machineplugin.h>
+ #include <gsmd/vendorplugin.h>
+ #include <gsmd/select.h>
+ #include <gsmd/state.h>
+@@ -58,12 +59,14 @@
+
+ struct gsmd {
+ unsigned int flags;
++ int interpreter_ready;
+ struct gsmd_fd gfd_uart;
+ struct gsmd_fd gfd_sock;
+ struct llparser llp;
+ struct llist_head users;
+ struct llist_head pending_atcmds; /* our busy gsmd_atcmds */
+ struct llist_head busy_atcmds; /* our busy gsmd_atcmds */
++ struct gsmd_machine_plugin *machinepl;
+ struct gsmd_vendor_plugin *vendorpl;
+ struct gsmd_device_state dev_state;
+
+Index: gsm/include/gsmd/machineplugin.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/include/gsmd/machineplugin.h 2007-04-02 11:03:41.000000000 +0200
+@@ -0,0 +1,24 @@
++#ifndef _GSMD_MACHINEPLUG_H
++#define _GSMD_MACHINEPLUG_H
++
++#ifdef __GSMD__
++
++#include <common/linux_list.h>
++#include <gsmd/gsmd.h>
++
++struct gsmd;
++
++struct gsmd_machine_plugin {
++ struct llist_head list;
++ unsigned char *name;
++ int (*detect)(struct gsmd *g);
++ int (*init)(struct gsmd *g, int fd);
++};
++
++extern int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl);
++extern void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl);
++extern int gsmd_machine_plugin_find(struct gsmd *g);
++
++#endif /* __GSMD__ */
++
++#endif
+Index: gsm/src/gsmd/machine_tihtc.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/src/gsmd/machine_tihtc.c 2007-04-02 11:03:41.000000000 +0200
+@@ -0,0 +1,71 @@
++/* TI [Calypso] with HTC firmware machine plugin
++ *
++ * Written by Philipp Zabel <philipp.zabel@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdio.h>
++#include <errno.h>
++#include <sys/ioctl.h>
++
++#include "gsmd.h"
++
++#include <gsmd/gsmd.h>
++#include <gsmd/usock.h>
++#include <gsmd/event.h>
++#include <gsmd/talloc.h>
++#include <gsmd/extrsp.h>
++#include <gsmd/machineplugin.h>
++
++#define N_TIHTC 17
++
++static int tihtc_detect(struct gsmd *g)
++{
++ /* FIXME: do actual detection of machine if we have multiple machines */
++ return 1;
++}
++
++static int tihtc_init(struct gsmd *g, int fd)
++{
++ int ldisc = N_TIHTC;
++ int rc;
++
++ /*
++ * Himalaya, Blueangel, Alpine and Magican
++ * power up their GSM chipsets when the
++ * tty is opened. Wait for the "AT-Command
++ * Interpreter ready" message before trying
++ * to send commands.
++ */
++ g->interpreter_ready = 0;
++
++ /* Set the line discipline to N_TIHTC */
++ rc = ioctl(fd, TIOCSETD, &ldisc);
++ if (rc < 0)
++ fprintf(stderr, "can't set line discipline\n");
++
++ return rc;
++}
++
++struct gsmd_machine_plugin gsmd_machine_plugin = {
++ .name = "TI Calypso / HTC firmware",
++ .detect = &tihtc_detect,
++ .init = &tihtc_init,
++};
+Index: gsm/src/gsmd/machine_generic.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/src/gsmd/machine_generic.c 2007-04-02 11:03:41.000000000 +0200
+@@ -0,0 +1,61 @@
++/* generic machine plugin
++ *
++ * Written by Philipp Zabel <philipp.zabel@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdio.h>
++#include <errno.h>
++
++#include "gsmd.h"
++
++#include <gsmd/gsmd.h>
++#include <gsmd/usock.h>
++#include <gsmd/event.h>
++#include <gsmd/talloc.h>
++#include <gsmd/extrsp.h>
++#include <gsmd/machineplugin.h>
++
++static int generic_detect(struct gsmd *g)
++{
++ /* FIXME: do actual detection of machine if we have multiple machines */
++ return 1;
++}
++
++static int generic_init(struct gsmd *g, int fd)
++{
++ int rc;
++
++ /*
++ * We assume that the GSM chipset can take
++ * input immediately, so we don't have to
++ * wait for the "AT-Command Interpreter ready"
++ * message before trying to send commands.
++ */
++ g->interpreter_ready = 1;
++
++ return 0;
++}
++
++struct gsmd_machine_plugin gsmd_machine_plugin = {
++ .name = "generic",
++ .detect = &generic_detect,
++ .init = &generic_init,
++};
+Index: gsm/src/gsmd/machine.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/src/gsmd/machine.c 2007-04-02 13:43:04.000000000 +0200
+@@ -0,0 +1,140 @@
++/* gsmd machine plugin core
++ *
++ * Written by Philipp Zabel <philipp.zabel@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include <dlfcn.h>
++#include <errno.h>
++#include <stdio.h>
++#include <string.h>
++
++#include <common/linux_list.h>
++
++#include "gsmd.h"
++
++#include <gsmd/gsmd.h>
++#include <gsmd/machineplugin.h>
++
++static LLIST_HEAD(machinepl_list);
++
++int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl)
++{
++ llist_add(&pl->list, &machinepl_list);
++
++ return 0;
++}
++
++void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl)
++{
++ llist_del(&pl->list);
++}
++
++int gsmd_machine_plugin_find(struct gsmd *g)
++{
++ struct gsmd_machine_plugin *pl;
++
++ if (g->machinepl)
++ return -EEXIST;
++
++ llist_for_each_entry(pl, &machinepl_list, list) {
++ if (pl->detect(g) == 1) {
++ DEBUGP("selecting machine plugin \"%s\"\n", pl->name);
++ g->machinepl = pl;
++ return 1;
++ }
++ }
++
++ return 0;
++}
++
++int gsmd_machine_plugin_load(char *name)
++{
++ int rc = -1;
++ void *plugin;
++ struct gsmd_machine_plugin *pl;
++ char buf[128];
++
++ DEBUGP("loading machine plugin \"%s\"\n", name);
++
++ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-machine_%s.so", name);
++
++ plugin = dlopen(buf, RTLD_LAZY);
++ if (!plugin) {
++ fprintf(stderr, "gsmd_machine_plugin_load: %s\n", dlerror());
++ return -1;
++ }
++
++ pl = dlsym(plugin, "gsmd_machine_plugin");
++ if (pl)
++ rc = gsmd_machine_plugin_register(pl);
++ else
++ dlclose(plugin);
++
++ return rc;
++}
++
++/* maybe /etc/gsmd/cpuinfo */
++struct machines {
++ char *cpuinfo;
++ char *machine;
++ char *vendor;
++} machines[] = {
++ { "GTA01", "generic", "ti" },
++ { "HTC Blueangel", "tihtc", "tihtc" },
++ { "HTC Himalaya", "tihtc", "tihtc" },
++ { "HTC Magician", "tihtc", "tihtc" },
++ { "HTC Universal", "generic", "qc" },
++ { NULL, NULL, NULL },
++};
++
++int gsmd_machine_plugin_init(struct gsmd *g, int fd)
++{
++ FILE *cpuinfo;
++ char buf[1024];
++ char *line, *machine = NULL;
++ int i, rc;
++
++ cpuinfo = fopen("/proc/cpuinfo", "r");
++ fread(buf, sizeof(buf), 1, cpuinfo);
++ fclose(cpuinfo);
++
++ line = strtok(buf, "\n");
++ while (line = strtok(NULL, "\n")) {
++ if (strncmp(line, "Hardware\t: ", 11) == 0) {
++ machine = line+11;
++ break;
++ }
++ }
++ /* FIXME: do this dynamically */
++ if (machine) {
++ for (i = 0; machines[i].cpuinfo; i++) {
++ if (strcmp(machine, machines[i].cpuinfo) == 0) {
++ DEBUGP("detected %s\n", machine);
++ rc = gsmd_machine_plugin_load(machines[i].machine);
++ rc |= gsmd_vendor_plugin_load(machines[i].vendor);
++ return rc;
++ }
++ }
++ }
++ /* load generic machine and all vendor plugins */
++ rc = gsmd_machine_plugin_load("generic");
++ gsmd_vendor_plugin_load("ti");
++ gsmd_vendor_plugin_load("tihtc");
++ gsmd_vendor_plugin_load("qc");
++ return rc;
++}
+Index: gsm/src/gsmd/vendor_qc.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/src/gsmd/vendor_qc.c 2007-04-02 11:03:41.000000000 +0200
+@@ -0,0 +1,104 @@
++/* Qualcomm [msm6250] gsmd plugin
++ *
++ * Written by Philipp Zabel <philipp.zabel@gmail.com>
++ * based on vendor_ti.c
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdio.h>
++#include <errno.h>
++
++#include "gsmd.h"
++
++#include <gsmd/gsmd.h>
++#include <gsmd/usock.h>
++#include <gsmd/event.h>
++#include <gsmd/talloc.h>
++#include <gsmd/extrsp.h>
++#include <gsmd/atcmd.h>
++#include <gsmd/vendorplugin.h>
++#include <gsmd/unsolicited.h>
++
++static int htccsq_parse(char *buf, int len, const char *param,
++ struct gsmd *gsmd)
++{
++ char *tok;
++ struct gsmd_evt_auxdata *aux;
++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL,
++ sizeof(*aux));
++ static int rssi_table[] = { 0,5,10,15,20,25,99 }; /* FIXME */
++ unsigned int i;
++
++ DEBUGP("entering htccsq_parse param=`%s'\n", param);
++ if (!ucmd)
++ return -EINVAL;
++
++
++ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
++
++ i = atoi(buf);
++ if (i > 6)
++ i = 6;
++ aux->u.signal.sigq.rssi = rssi_table[atoi(buf)];
++ aux->u.signal.sigq.ber = 99;
++
++ DEBUGP("sending EVT_SIGNAL\n");
++ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL);
++
++ return 0;
++
++out_free_io:
++ free(ucmd);
++ return -EIO;
++}
++
++static const struct gsmd_unsolicit qc_unsolicit[] = {
++ { "@HTCCSQ", &htccsq_parse }, /* Signal Quality */
++
++ /* FIXME: parse the below and generate the respective events */
++
++ /* %CGREG: reports extended information about GPRS registration state */
++};
++
++static int qc_detect(struct gsmd *g)
++{
++ /* FIXME: do actual detection of vendor if we have multiple vendors */
++ /* open /proc/cpuinfo and check for HTC Universal? */
++ return 1;
++}
++
++static int qc_initsettings(struct gsmd *g)
++{
++ int rc;
++ struct gsmd_atcmd *cmd;
++
++ /* enable @HTCCSQ: signal quality reports */
++ rc |= gsmd_simplecmd(g, "AT@HTCCSQ=1");
++
++ return rc;
++}
++
++struct gsmd_vendor_plugin gsmd_vendor_plugin = {
++ .name = "Qualcomm msm6250",
++ .num_unsolicit = ARRAY_SIZE(qc_unsolicit),
++ .unsolicit = qc_unsolicit,
++ .detect = &qc_detect,
++ .initsettings = &qc_initsettings,
++};
+Index: gsm/src/gsmd/Makefile.am
+===================================================================
+--- gsm.orig/src/gsmd/Makefile.am 2007-04-02 09:58:55.000000000 +0200
++++ gsm/src/gsmd/Makefile.am 2007-04-02 13:33:11.000000000 +0200
+@@ -1,11 +1,26 @@
+ INCLUDES = $(all_includes) -I$(top_srcdir)/include
+ AM_CFLAGS = -std=gnu99
++plugindir = $(libdir)/gsmd
+
+ sbin_PROGRAMS = gsmd
+
+-gsmd_SOURCES = gsmd.c atcmd.c select.c vendor.c usock.c unsolicited.c log.c \
+- vendor_ti.c talloc.c operator_cache.c ext_response.c
+-#gsmd_LDADD = ../libgsmd/libgsmd.la
+-#gsmd_LDFLAGS = -dynamic
++gsmd_CFLAGS = -D PLUGINDIR=\"$(plugindir)\"
++gsmd_SOURCES = gsmd.c atcmd.c select.c machine.c vendor.c unsolicited.c log.c \
++ usock.c talloc.c operator_cache.c ext_response.c
++gsmd_LDADD = -ldl
++gsmd_LDFLAGS = -Wl,--export-dynamic
++
++plugin_LTLIBRARIES = libgsmd-machine_generic.la \
++ libgsmd-machine_tihtc.la \
++ libgsmd-vendor_ti.la \
++ libgsmd-vendor_tihtc.la \
++ libgsmd-vendor_qc.la
++
++libgsmd_machine_generic_la_SOURCES = machine_generic.c
++libgsmd_machine_tihtc_la_SOURCES = machine_tihtc.c
++
++libgsmd_vendor_ti_la_SOURCES = vendor_ti.c
++libgsmd_vendor_tihtc_la_SOURCES = vendor_tihtc.c
++libgsmd_vendor_qc_la_SOURCES = vendor_qc.c
+
+ noinst_HEADERS = gsmd.h
+Index: gsm/src/gsmd/atcmd.c
+===================================================================
+--- gsm.orig/src/gsmd/atcmd.c 2007-04-02 11:03:40.000000000 +0200
++++ gsm/src/gsmd/atcmd.c 2007-04-02 11:03:41.000000000 +0200
+@@ -183,6 +183,7 @@
+ * an empty string or that 'ready' string, we need to init the modem */
+ if (strlen(buf) == 0 ||
+ !strcmp(buf, "AT-Command Interpreter ready")) {
++ g->interpreter_ready = 1;
+ gsmd_initsettings(g);
+ return 0;
+ }
+@@ -370,7 +371,7 @@
+ }
+
+ /* write pending commands to UART */
+- if (what & GSMD_FD_WRITE) {
++ if ((what & GSMD_FD_WRITE) && g->interpreter_ready) {
+ struct gsmd_atcmd *pos, *pos2;
+ llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) {
+ len = strlen(pos->buf);
+Index: gsm/src/gsmd/vendor_tihtc.c
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ gsm/src/gsmd/vendor_tihtc.c 2007-04-02 13:16:45.000000000 +0200
+@@ -0,0 +1,305 @@
++/* TI [Calypso] with HTC firmware gsmd plugin
++ *
++ * Written by Philipp Zabel <philipp.zabel@gmail.com>
++ * based on vendor_ti.c
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License along
++ * with this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ */
++
++#include <stdlib.h>
++#include <unistd.h>
++#include <string.h>
++#include <stdio.h>
++#include <errno.h>
++
++#include "gsmd.h"
++
++#include <gsmd/gsmd.h>
++#include <gsmd/usock.h>
++#include <gsmd/event.h>
++#include <gsmd/talloc.h>
++#include <gsmd/extrsp.h>
++#include <gsmd/atcmd.h>
++#include <gsmd/vendorplugin.h>
++#include <gsmd/unsolicited.h>
++
++static int gsmd_test_atcb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
++{
++ printf("`%s' returned `%s'\n", cmd->buf, resp);
++ return 0;
++}
++
++int gsmd_simplecmd(struct gsmd *gsmd, char *cmdtxt)
++{
++ struct gsmd_atcmd *cmd;
++ cmd = atcmd_fill(cmdtxt, strlen(cmdtxt)+1, &gsmd_test_atcb, NULL, 0);
++ if (!cmd)
++ return -ENOMEM;
++
++ return atcmd_submit(gsmd, cmd);
++}
++
++
++#if 0
++#include "vendorplugin.h"
++
++static int
++ti_getopt(struct gsmd *gh, int optname, void *optval, int *optlen)
++{
++ switch (optname) {
++ case GSMD_OPT_CIPHER_IND:
++ /* FIXME: send AT%CPRI=? */
++ break;
++ default:
++ return -EINVAL;
++ }
++}
++
++static int
++ti_setopt(struct gsmd *gh, int optname, const void *optval, int optlen)
++{
++ switch (optname) {
++ case GSMD_OPT_CIPHER_IND:
++ /* FIXME: send AT%CPRI= */
++ break;
++ default:
++ return -EINVAL;
++ }
++}
++
++#endif
++
++
++static int htccsq_parse(char *buf, int len, const char *param,
++ struct gsmd *gsmd)
++{
++ char *tok;
++ struct gsmd_evt_auxdata *aux;
++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL,
++ sizeof(*aux));
++
++ DEBUGP("entering htccsq_parse param=`%s'\n", param);
++ if (!ucmd)
++ return -EINVAL;
++
++
++ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
++
++ /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */
++ /* 2 --> 11 */
++ aux->u.signal.sigq.rssi = atoi(buf);
++ aux->u.signal.sigq.ber = 99;
++
++ DEBUGP("sending EVT_SIGNAL\n");
++ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL);
++
++ return 0;
++
++out_free_io:
++ free(ucmd);
++ return -EIO;
++}
++
++static int cpri_parse(char *buf, int len, const char *param, struct gsmd *gsmd)
++{
++ char *tok1, *tok2;
++
++ tok1 = strtok(buf, ",");
++ if (!tok1)
++ return -EIO;
++
++ tok2 = strtok(NULL, ",");
++ if (!tok2) {
++ switch (atoi(tok1)) {
++ case 0:
++ gsmd->dev_state.ciph_ind.flags &= ~GSMD_CIPHIND_ACTIVE;
++ break;
++ case 1:
++ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_ACTIVE;
++ break;
++ case 2:
++ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_DISABLED_SIM;
++ break;
++ }
++ } else {
++ struct gsmd_evt_auxdata *aux;
++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT,
++ GSMD_EVT_CIPHER,
++ sizeof(*aux));
++ if (!ucmd)
++ return -ENOMEM;
++
++ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
++
++ aux->u.cipher.net_state_gsm = atoi(tok1);
++ aux->u.cipher.net_state_gsm = atoi(tok2);
++
++ usock_evt_send(gsmd, ucmd, GSMD_EVT_CIPHER);
++ }
++
++ return 0;
++}
++
++/* Call Progress Information */
++static int cpi_parse(char *buf, int len, const char *param, struct gsmd *gsmd)
++{
++ char *tok;
++ struct gsmd_evt_auxdata *aux;
++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT,
++ GSMD_EVT_OUT_STATUS,
++ sizeof(*aux));
++
++ DEBUGP("entering cpi_parse param=`%s'\n", param);
++ if (!ucmd)
++ return -EINVAL;
++
++ aux = (struct gsmd_evt_auxdata *) ucmd->buf;
++
++ /* Format: cId, msgType, ibt, tch, dir,[mode],[number],[type],[alpha],[cause],line */
++
++ /* call ID */
++ tok = strtok(buf, ",");
++ if (!tok)
++ goto out_free_io;
++
++ /* message type (layer 3) */
++ tok = strtok(NULL, ",");
++ if (!tok)
++ goto out_free_io;
++ aux->u.call_status.prog = atoi(tok);
++
++ /* in-band tones */
++ tok = strtok(NULL, ",");
++ if (!tok)
++ goto out_free_io;
++
++ if (*tok == '1')
++ aux->u.call_status.ibt = 1;
++ else
++ aux->u.call_status.ibt = 0;
++
++ /* TCH allocated */
++ tok = strtok(NULL, ",");
++ if (!tok)
++ goto out_free_io;
++
++ if (*tok == '1')
++ aux->u.call_status.tch = 1;
++ else
++ aux->u.call_status.tch = 0;
++
++ /* direction */
++ tok = strtok(NULL, ",");
++ if (!tok)
++ goto out_send;
++
++ switch (*tok) {
++ case '0':
++ case '1':
++ case '2':
++ case '3':
++ aux->u.call_status.dir = (*tok - '0');
++ break;
++ default:
++ break;
++ }
++
++ /* mode */
++ tok = strtok(NULL, ",");
++ if (!tok)
++ goto out_send;
++
++out_send:
++ usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_STATUS);
++
++ return 0;
++
++out_free_io:
++ talloc_free(ucmd);
++ return -EIO;
++}
++
++static const struct gsmd_unsolicit tihtc_unsolicit[] = {
++ { "%HTCCSQ", &htccsq_parse }, /* Signal Quality */
++ { "%CPRI", &cpri_parse }, /* Ciphering Indication */
++ { "%CPI", &cpi_parse }, /* Call Progress Information */
++
++ /* FIXME: parse the below and generate the respective events */
++
++ /* %CGREG: reports extended information about GPRS registration state */
++};
++
++static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
++{
++ struct gsmd *g = ctx;
++ struct gsm_extrsp *er;
++
++ if (strncmp(resp, "%CPI: ", 6))
++ return -EINVAL;
++ resp += 6;
++
++ er = extrsp_parse(cmd, resp);
++ if (!er)
++ return -EINVAL;
++
++ if (extrsp_supports(er, 0, 3))
++ return gsmd_simplecmd(g, "AT%CPI=3");
++ else if (extrsp_supports(er, 0, 2))
++ return gsmd_simplecmd(g, "AT%CPI=2");
++ else
++ DEBUGP("Call Progress Indication mode 2 or 3 not supported!!\n");
++
++ talloc_free(er);
++ return 0;
++}
++
++static int tihtc_detect(struct gsmd *g)
++{
++ /* FIXME: do actual detection of vendor if we have multiple vendors */
++ /* open /proc/cpuinfo and check for HTC Magician or HTC Blueangel? */
++ /* check for N_TIHTC ldisc? or set it ourselves? */
++ return 1;
++}
++
++static int tihtc_initsettings(struct gsmd *g)
++{
++ int rc;
++ struct gsmd_atcmd *cmd;
++
++ /* use %CGREG */
++ //rc |= gsmd_simplecmd(g, "AT%CGREG=3");
++ /* enable %CPRI: ciphering indications */
++ rc |= gsmd_simplecmd(g, "AT%CPRI=1");
++ /* enable %HTCCSQ: signal quality reports */
++ rc |= gsmd_simplecmd(g, "AT%HTCCSQ=1");
++ /* send unsolicited commands at any time */
++ rc |= gsmd_simplecmd(g, "AT%CUNS=0");
++
++ /* enable %CPI: call progress indication */
++ cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0);
++ if (cmd)
++ atcmd_submit(g, cmd);
++
++ return rc;
++}
++
++struct gsmd_vendor_plugin gsmd_vendor_plugin = {
++ .name = "TI Calypso / HTC firmware",
++ .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit),
++ .unsolicit = tihtc_unsolicit,
++ .detect = &tihtc_detect,
++ .initsettings = &tihtc_initsettings,
++};
+Index: gsm/src/gsmd/vendor_ti.c
+===================================================================
+--- gsm.orig/src/gsmd/vendor_ti.c 2007-04-02 09:58:55.000000000 +0200
++++ gsm/src/gsmd/vendor_ti.c 2007-04-02 11:03:41.000000000 +0200
+@@ -301,16 +301,10 @@
+ return rc;
+ }
+
+-static struct gsmd_vendor_plugin plugin_ticalypso = {
++struct gsmd_vendor_plugin gsmd_vendor_plugin = {
+ .name = "TI Calypso",
+ .num_unsolicit = ARRAY_SIZE(ticalypso_unsolicit),
+ .unsolicit = ticalypso_unsolicit,
+ .detect = &ticalypso_detect,
+ .initsettings = &ticalypso_initsettings,
+ };
+-
+-/* FIXME: this will be _init() when we make this a plugin */
+-int ticalypso_init(void)
+-{
+- return gsmd_vendor_plugin_register(&plugin_ticalypso);
+-}
+Index: gsm/src/gsmd/gsmd.c
+===================================================================
+--- gsm.orig/src/gsmd/gsmd.c 2007-04-02 09:58:55.000000000 +0200
++++ gsm/src/gsmd/gsmd.c 2007-04-02 13:39:40.000000000 +0200
+@@ -254,6 +254,21 @@
+ exit(1);
+ }
+
++ if (gsmd_machine_plugin_init(&g) < 0) {
++ fprintf(stderr, "no machine plugins found\n");
++ exit(1);
++ }
++
++ /* select a machine plugin and load possible vendor plugins */
++ gsmd_machine_plugin_find(&g);
++
++ /* initialize the machine plugin */
++ if (g.machinepl->init)
++ if (g.machinepl->init(&g, fd) < 0) {
++ fprintf(stderr, "couldn't initialize machine plugin\n");
++ exit(1);
++ }
++
+ if (atcmd_init(&g, fd) < 0) {
+ fprintf(stderr, "can't initialize UART device\n");
+ exit(1);
+@@ -275,12 +290,11 @@
+ setsid();
+ }
+
+- /* FIXME: do this dynamically */
+- ticalypso_init();
+-
++ /* select a vendor plugin */
+ gsmd_vendor_plugin_find(&g);
+
+- gsmd_initsettings(&g);
++ if (g.interpreter_ready)
++ gsmd_initsettings(&g);
+
+ gsmd_opname_init(&g);
+
+Index: gsm/src/gsmd/vendor.c
+===================================================================
+--- gsm.orig/src/gsmd/vendor.c 2007-04-02 09:58:55.000000000 +0200
++++ gsm/src/gsmd/vendor.c 2007-04-02 13:38:38.000000000 +0200
+@@ -20,7 +20,10 @@
+ *
+ */
+
++#include <dlfcn.h>
+ #include <errno.h>
++#include <stdio.h>
++#include <string.h>
+
+ #include <common/linux_list.h>
+
+@@ -52,6 +55,7 @@
+
+ llist_for_each_entry(pl, &vendorpl_list, list) {
+ if (pl->detect(g) == 1) {
++ DEBUGP("selecting vendor plugin \"%s\"\n", pl->name);
+ g->vendorpl = pl;
+ return 1;
+ }
+@@ -59,3 +63,29 @@
+
+ return 0;
+ }
++
++int gsmd_vendor_plugin_load(char *name)
++{
++ int rc = -1;
++ void *lib;
++ struct gsmd_vendor_plugin *pl;
++ char buf[128];
++
++ DEBUGP("loading vendor plugin \"%s\"\n", name);
++
++ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-vendor_%s.so", name);
++
++ lib = dlopen(buf, RTLD_LAZY);
++ if (!lib) {
++ fprintf(stderr, "gsmd_vendor_plugin_load: %s\n", dlerror());
++ return -1;
++ }
++
++ pl = dlsym(lib, "gsmd_vendor_plugin");
++ if (pl)
++ rc = gsmd_vendor_plugin_register(pl);
++ else
++ dlclose(lib);
++
++ return rc;
++}
diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb
index 2019185b33..607d4db1be 100644
--- a/packages/gsm/libgsmd_svn.bb
+++ b/packages/gsm/libgsmd_svn.bb
@@ -4,17 +4,17 @@ LICENSE = "GPL"
SECTION = "libs/gsm"
PROVIDES += "gsmd"
PV = "0.0+svn${SRCDATE}"
-PR = "r8"
+PR = "r10"
SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
file://gsmd \
file://default"
S = "${WORKDIR}/gsm"
-SRC_URI_append_htcuniversal = " file://interpreter-ready.patch;patch=1"
-SRC_URI_append_magician = " file://vendor-tihtc.patch;patch=1 \
- file://interpreter-ready.patch;patch=1 \
- file://ldisc.patch;patch=1"
+SRC_URI_append_magician = "file://numeric.patch;patch=1 \
+ file://plugin.patch;patch=1"
+SRC_URI_append_htcuniversal = "file://numeric.patch;patch=1 \
+ file://plugin.patch;patch=1"
inherit autotools pkgconfig update-rc.d
@@ -32,10 +32,12 @@ do_install_append() {
install ${WORKDIR}/default ${D}/${sysconfdir}/default/gsmd
}
-PACKAGES =+ "${PN}-tools gsmd"
+PACKAGES =+ "${PN}-tools gsmd gsmd-plugins"
RDEPENDS_${PN} = "gsmd"
+RRECOMMENDS_gsmd = "gsmd-plugins"
FILES_${PN}-tools = "${bindir}/*"
FILES_gsmd = "${sbindir}/gsmd ${sysconfdir}"
+FILES_gsmd-plugins = "${libdir}/gsmd/*.so*"
PACKAGES_DYNAMIC = "libgsmd* gsmd"
diff --git a/packages/gtk+/gtk+_2.6.10.bb b/packages/gtk+/gtk+_2.6.10.bb
index c096bbe688..ed2d9aea80 100644
--- a/packages/gtk+/gtk+_2.6.10.bb
+++ b/packages/gtk+/gtk+_2.6.10.bb
@@ -5,7 +5,7 @@ SECTION = "libs"
LICENSE = "LGPL"
PRIORITY = "optional"
DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor gtk-doc libgcrypt"
-PR = "r9"
+PR = "r10"
SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.6/gtk+-${PV}.tar.bz2 \
file://help.patch;patch=1 \
diff --git a/packages/hal/files/99_hal b/packages/hal/files/99_hal
index f3d477231e..f983db9ee5 100644
--- a/packages/hal/files/99_hal
+++ b/packages/hal/files/99_hal
@@ -1 +1,2 @@
d root root 0700 /var/run/hald none
+d root root 0700 /var/cache/hald none
diff --git a/packages/hal/hal_0.5.9.bb b/packages/hal/hal_0.5.9.bb
index e021f03045..bb9dc82b52 100644
--- a/packages/hal/hal_0.5.9.bb
+++ b/packages/hal/hal_0.5.9.bb
@@ -8,7 +8,7 @@ RDEPENDS += "udev hal-info"
#RDEPENDS_hal-device-manager = "python hal python-pygnome"
RRECOMMENDS = "udev-utils"
-PR = "r0"
+PR = "r1"
SRC_URI = "http://freedesktop.org/~david/dist/hal-${PV}.tar.gz \
file://99_hal"
diff --git a/packages/hwdata/.mtn2git_empty b/packages/hwdata/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/hwdata/.mtn2git_empty
diff --git a/packages/hwdata/hwdata_0.191.bb b/packages/hwdata/hwdata_0.191.bb
new file mode 100644
index 0000000000..2dfe1433bf
--- /dev/null
+++ b/packages/hwdata/hwdata_0.191.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "This package contains various hardware identification and configuration data, such as the pci.ids database, or the XFree86/xorg Cards database. It's needed for the kudzu hardware detection."
+LICENSE = "GPL + X11"
+
+SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/h/hwdata/hwdata_0.191.orig.tar.gz \
+ http://archive.ubuntu.com/ubuntu/pool/main/h/hwdata/hwdata_0.191-1.diff.gz;patch=1 \
+ "
+
+PACKAGE_ARCH = "all"
+
+
+do_install() {
+ mkdir -p ${D}${datadir}/hwdata
+ install -m644 MonitorsDB pci* usb.ids video* upgradelist ${D}${datadir}/hwdata
+}
diff --git a/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/.mtn2git_empty b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/.mtn2git_empty
diff --git a/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/defconfig b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/defconfig
new file mode 100644
index 0000000000..2a86055123
--- /dev/null
+++ b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/defconfig
@@ -0,0 +1,1245 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.21-rc5
+# Wed Apr 4 23:26:23 2007
+#
+CONFIG_SUPERH=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+# CONFIG_GENERIC_TIME is not set
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_IPC_NS is not set
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_UTS_NS is not set
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+CONFIG_IKCONFIG_PROC=y
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_RELAY=y
+# CONFIG_BLK_DEV_INITRD is not set
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_SLAB=y
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+# CONFIG_KMOD is not set
+
+#
+# Block layer
+#
+CONFIG_BLOCK=y
+# CONFIG_LBD is not set
+# CONFIG_BLK_DEV_IO_TRACE is not set
+# CONFIG_LSF is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IOSCHED_AS is not set
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_AS is not set
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+
+#
+# System type
+#
+# CONFIG_SH_SOLUTION_ENGINE is not set
+# CONFIG_SH_7751_SOLUTION_ENGINE is not set
+# CONFIG_SH_7300_SOLUTION_ENGINE is not set
+# CONFIG_SH_7343_SOLUTION_ENGINE is not set
+# CONFIG_SH_73180_SOLUTION_ENGINE is not set
+# CONFIG_SH_7751_SYSTEMH is not set
+CONFIG_SH_HP6XX=y
+# CONFIG_SH_SATURN is not set
+# CONFIG_SH_DREAMCAST is not set
+# CONFIG_SH_MPC1211 is not set
+# CONFIG_SH_SH03 is not set
+# CONFIG_SH_SECUREEDGE5410 is not set
+# CONFIG_SH_HS7751RVOIP is not set
+# CONFIG_SH_7710VOIPGW is not set
+# CONFIG_SH_RTS7751R2D is not set
+# CONFIG_SH_R7780RP is not set
+# CONFIG_SH_EDOSK7705 is not set
+# CONFIG_SH_SH4202_MICRODEV is not set
+# CONFIG_SH_LANDISK is not set
+# CONFIG_SH_TITAN is not set
+# CONFIG_SH_SHMIN is not set
+# CONFIG_SH_7206_SOLUTION_ENGINE is not set
+# CONFIG_SH_7619_SOLUTION_ENGINE is not set
+# CONFIG_SH_UNKNOWN is not set
+
+#
+# Processor selection
+#
+CONFIG_CPU_SH3=y
+
+#
+# SH-2 Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH7604 is not set
+# CONFIG_CPU_SUBTYPE_SH7619 is not set
+
+#
+# SH-2A Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH7206 is not set
+
+#
+# SH-3 Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH7300 is not set
+# CONFIG_CPU_SUBTYPE_SH7705 is not set
+# CONFIG_CPU_SUBTYPE_SH7706 is not set
+# CONFIG_CPU_SUBTYPE_SH7707 is not set
+# CONFIG_CPU_SUBTYPE_SH7708 is not set
+CONFIG_CPU_SUBTYPE_SH7709=y
+# CONFIG_CPU_SUBTYPE_SH7710 is not set
+
+#
+# SH-4 Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH7750 is not set
+# CONFIG_CPU_SUBTYPE_SH7091 is not set
+# CONFIG_CPU_SUBTYPE_SH7750R is not set
+# CONFIG_CPU_SUBTYPE_SH7750S is not set
+# CONFIG_CPU_SUBTYPE_SH7751 is not set
+# CONFIG_CPU_SUBTYPE_SH7751R is not set
+# CONFIG_CPU_SUBTYPE_SH7760 is not set
+# CONFIG_CPU_SUBTYPE_SH4_202 is not set
+
+#
+# ST40 Processor Support
+#
+# CONFIG_CPU_SUBTYPE_ST40STB1 is not set
+# CONFIG_CPU_SUBTYPE_ST40GX1 is not set
+
+#
+# SH-4A Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH7770 is not set
+# CONFIG_CPU_SUBTYPE_SH7780 is not set
+# CONFIG_CPU_SUBTYPE_SH7785 is not set
+
+#
+# SH4AL-DSP Processor Support
+#
+# CONFIG_CPU_SUBTYPE_SH73180 is not set
+# CONFIG_CPU_SUBTYPE_SH7343 is not set
+# CONFIG_CPU_SUBTYPE_SH7722 is not set
+
+#
+# Memory management options
+#
+CONFIG_MMU=y
+CONFIG_PAGE_OFFSET=0x80000000
+CONFIG_MEMORY_START=0x0d000000
+CONFIG_MEMORY_SIZE=0x00400000
+CONFIG_VSYSCALL=y
+CONFIG_PAGE_SIZE_4KB=y
+# CONFIG_PAGE_SIZE_8KB is not set
+# CONFIG_PAGE_SIZE_64KB is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_RESOURCES_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+
+#
+# Cache configuration
+#
+# CONFIG_SH_DIRECT_MAPPED is not set
+CONFIG_SH_WRITETHROUGH=y
+# CONFIG_SH_OCRAM is not set
+
+#
+# Processor features
+#
+CONFIG_CPU_LITTLE_ENDIAN=y
+# CONFIG_CPU_BIG_ENDIAN is not set
+# CONFIG_SH_FPU_EMU is not set
+CONFIG_SH_DSP=y
+CONFIG_SH_ADC=y
+CONFIG_CPU_HAS_INTEVT=y
+CONFIG_CPU_HAS_PINT_IRQ=y
+CONFIG_CPU_HAS_IPR_IRQ=y
+CONFIG_CPU_HAS_SR_RB=y
+
+#
+# Timer support
+#
+CONFIG_SH_TMU=y
+CONFIG_SH_TIMER_IRQ=16
+# CONFIG_NO_IDLE_HZ is not set
+CONFIG_SH_PCLK_FREQ=22110000
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
+
+#
+# DMA support
+#
+CONFIG_SH_DMA=y
+CONFIG_NR_ONCHIP_DMA_CHANNELS=4
+# CONFIG_NR_DMA_CHANNELS_BOOL is not set
+
+#
+# Companion Chips
+#
+CONFIG_HD6446X_SERIES=y
+CONFIG_HD64461=y
+# CONFIG_HD64465 is not set
+CONFIG_HD64461_IRQ=36
+CONFIG_HD64461_IOBASE=0xb0000000
+CONFIG_HD64461_ENABLER=y
+
+#
+# Additional SuperH Device Drivers
+#
+# CONFIG_PUSH_SWITCH is not set
+
+#
+# Kernel features
+#
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ=250
+# CONFIG_KEXEC is not set
+# CONFIG_SMP is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+
+#
+# Boot options
+#
+CONFIG_ZERO_PAGE_OFFSET=0x00001000
+CONFIG_BOOT_LINK_OFFSET=0x00800000
+# CONFIG_UBC_WAKEUP is not set
+# CONFIG_CMDLINE_BOOL is not set
+
+#
+# Bus options
+#
+CONFIG_ISA=y
+# CONFIG_PCI is not set
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=y
+# CONFIG_PCMCIA_DEBUG is not set
+CONFIG_PCMCIA=y
+CONFIG_PCMCIA_LOAD_CIS=y
+# CONFIG_PCMCIA_IOCTL is not set
+
+#
+# PC-card bridges
+#
+# CONFIG_I82365 is not set
+# CONFIG_TCIC is not set
+CONFIG_PCMCIA_PROBE=y
+
+#
+# PCI Hotplug Support
+#
+
+#
+# Executable file formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_FLAT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options (EXPERIMENTAL)
+#
+# CONFIG_PM is not set
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_NETDEBUG=y
+CONFIG_PACKET=y
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+# CONFIG_XFRM_USER is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+# CONFIG_XFRM_MIGRATE is not set
+CONFIG_NET_KEY=y
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_INET=y
+# CONFIG_IP_MULTICAST is not set
+# CONFIG_IP_ADVANCED_ROUTER is not set
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_PNP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_ARPD is not set
+# CONFIG_SYN_COOKIES is not set
+# CONFIG_INET_AH is not set
+# CONFIG_INET_ESP is not set
+# CONFIG_INET_IPCOMP is not set
+# CONFIG_INET_XFRM_TUNNEL is not set
+# CONFIG_INET_TUNNEL is not set
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_DIAG=y
+CONFIG_INET_TCP_DIAG=y
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_TCP_MD5SIG is not set
+# CONFIG_IPV6 is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_NETWORK_SECMARK is not set
+# CONFIG_NETFILTER is not set
+
+#
+# DCCP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_DCCP is not set
+
+#
+# SCTP Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP_SCTP is not set
+
+#
+# TIPC Configuration (EXPERIMENTAL)
+#
+# CONFIG_TIPC is not set
+# CONFIG_ATM is not set
+# CONFIG_BRIDGE is not set
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
+CONFIG_IEEE80211=y
+# CONFIG_IEEE80211_DEBUG is not set
+CONFIG_IEEE80211_CRYPT_WEP=y
+# CONFIG_IEEE80211_CRYPT_CCMP is not set
+# CONFIG_IEEE80211_CRYPT_TKIP is not set
+# CONFIG_IEEE80211_SOFTMAC is not set
+CONFIG_WIRELESS_EXT=y
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_STANDALONE=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_FW_LOADER=y
+# CONFIG_SYS_HYPERVISOR is not set
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+# CONFIG_MTD is not set
+
+#
+# Parallel port support
+#
+CONFIG_PARPORT=y
+# CONFIG_PARPORT_PC is not set
+# CONFIG_PARPORT_GSC is not set
+# CONFIG_PARPORT_AX88796 is not set
+# CONFIG_PARPORT_1284 is not set
+
+#
+# Plug and Play support
+#
+# CONFIG_PNP is not set
+# CONFIG_PNPACPI is not set
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+# CONFIG_BLK_DEV_NBD is not set
+# CONFIG_BLK_DEV_RAM is not set
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# Misc devices
+#
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+# CONFIG_IDE is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+# CONFIG_SCSI_TGT is not set
+# CONFIG_SCSI_NETLINK is not set
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=y
+
+#
+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
+#
+# CONFIG_SCSI_MULTI_LUN is not set
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+# CONFIG_SCSI_SCAN_ASYNC is not set
+
+#
+# SCSI Transports
+#
+# CONFIG_SCSI_SPI_ATTRS is not set
+# CONFIG_SCSI_FC_ATTRS is not set
+# CONFIG_SCSI_ISCSI_ATTRS is not set
+# CONFIG_SCSI_SAS_ATTRS is not set
+# CONFIG_SCSI_SAS_LIBSAS is not set
+
+#
+# SCSI low-level drivers
+#
+# CONFIG_ISCSI_TCP is not set
+# CONFIG_SCSI_AHA152X is not set
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+# CONFIG_SCSI_IN2000 is not set
+# CONFIG_SCSI_DTC3280 is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+# CONFIG_SCSI_GENERIC_NCR5380 is not set
+# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
+# CONFIG_SCSI_NCR53C406A is not set
+# CONFIG_SCSI_PAS16 is not set
+# CONFIG_SCSI_PSI240I is not set
+# CONFIG_SCSI_QLOGIC_FAS is not set
+# CONFIG_SCSI_SYM53C416 is not set
+# CONFIG_SCSI_T128 is not set
+# CONFIG_SCSI_DEBUG is not set
+
+#
+# PCMCIA SCSI adapter support
+#
+# CONFIG_PCMCIA_AHA152X is not set
+# CONFIG_PCMCIA_FDOMAIN is not set
+# CONFIG_PCMCIA_NINJA_SCSI is not set
+# CONFIG_PCMCIA_QLOGIC is not set
+# CONFIG_PCMCIA_SYM53C500 is not set
+
+#
+# Serial ATA (prod) and Parallel ATA (experimental) drivers
+#
+CONFIG_ATA=y
+# CONFIG_ATA_NONSTANDARD is not set
+# CONFIG_PATA_LEGACY is not set
+# CONFIG_PATA_PCMCIA is not set
+# CONFIG_PATA_QDI is not set
+# CONFIG_PATA_WINBOND_VLB is not set
+CONFIG_PATA_PLATFORM=y
+
+#
+# Old CD-ROM drivers (not SCSI, not IDE)
+#
+# CONFIG_CD_NO_IDESCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+CONFIG_DUMMY=y
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# ARCnet devices
+#
+# CONFIG_ARCNET is not set
+
+#
+# PHY device support
+#
+# CONFIG_PHYLIB is not set
+
+#
+# Ethernet (10 or 100Mbit)
+#
+CONFIG_NET_ETHERNET=y
+CONFIG_MII=y
+# CONFIG_STNIC is not set
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_SMC is not set
+# CONFIG_SMC91X is not set
+# CONFIG_NET_VENDOR_RACAL is not set
+# CONFIG_AT1700 is not set
+# CONFIG_DEPCA is not set
+# CONFIG_HP100 is not set
+# CONFIG_NET_ISA is not set
+# CONFIG_NET_PCI is not set
+# CONFIG_NET_POCKET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+# CONFIG_TR is not set
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+# CONFIG_NET_WIRELESS_RTNETLINK is not set
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_ARLAN is not set
+# CONFIG_WAVELAN is not set
+# CONFIG_PCMCIA_WAVELAN is not set
+# CONFIG_PCMCIA_NETWAVE is not set
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+# CONFIG_PCMCIA_RAYCS is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_WL3501 is not set
+# CONFIG_HOSTAP is not set
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+CONFIG_NET_PCMCIA=y
+# CONFIG_PCMCIA_3C589 is not set
+# CONFIG_PCMCIA_3C574 is not set
+# CONFIG_PCMCIA_FMVJ18X is not set
+# CONFIG_PCMCIA_PCNET is not set
+# CONFIG_PCMCIA_NMCLAN is not set
+# CONFIG_PCMCIA_SMC91C92 is not set
+# CONFIG_PCMCIA_XIRC2PS is not set
+# CONFIG_PCMCIA_AXNET is not set
+
+#
+# Wan interfaces
+#
+# CONFIG_WAN is not set
+# CONFIG_PLIP is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
+# CONFIG_SHAPER is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Telephony Support
+#
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+# CONFIG_INPUT_FF_MEMLESS is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_TSDEV=y
+CONFIG_INPUT_TSDEV_SCREEN_X=240
+CONFIG_INPUT_TSDEV_SCREEN_Y=320
+# CONFIG_INPUT_EVDEV is not set
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+CONFIG_INPUT_KEYBOARD=y
+# CONFIG_KEYBOARD_ATKBD is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_STOWAWAY is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+CONFIG_TOUCHSCREEN_HP600=y
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_UCB1400 is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+CONFIG_SERIAL_SH_SCI=y
+CONFIG_SERIAL_SH_SCI_NR_UARTS=2
+CONFIG_SERIAL_SH_SCI_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=5
+# CONFIG_PRINTER is not set
+# CONFIG_PPDEV is not set
+# CONFIG_TIPAR is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+CONFIG_HW_RANDOM=m
+# CONFIG_GEN_RTC is not set
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+
+#
+# I2C support
+#
+# CONFIG_I2C is not set
+
+#
+# SPI support
+#
+# CONFIG_SPI is not set
+# CONFIG_SPI_MASTER is not set
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ABITUGURU is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_PC87427 is not set
+# CONFIG_SENSORS_VT1211 is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_SM501 is not set
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_HP680=y
+CONFIG_FB=y
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FB_DDC is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frambuffer hardware drivers
+#
+# CONFIG_FB_EPSON1355 is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_HIT=y
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_MDA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_PEARL_8x8=y
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+
+#
+# Sound
+#
+# CONFIG_SOUND is not set
+
+#
+# HID Devices
+#
+CONFIG_HID=y
+# CONFIG_HID_DEBUG is not set
+
+#
+# USB support
+#
+# CONFIG_USB_ARCH_HAS_HCD is not set
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+# CONFIG_USB_GADGET is not set
+
+#
+# MMC/SD Card support
+#
+# CONFIG_MMC is not set
+
+#
+# LED devices
+#
+# CONFIG_NEW_LEDS is not set
+
+#
+# LED drivers
+#
+
+#
+# LED Triggers
+#
+
+#
+# InfiniBand support
+#
+
+#
+# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
+#
+
+#
+# Real Time Clock
+#
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+
+#
+# RTC drivers
+#
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+CONFIG_RTC_DRV_SH=y
+# CONFIG_RTC_DRV_TEST is not set
+# CONFIG_RTC_DRV_V3020 is not set
+
+#
+# DMA Engine support
+#
+# CONFIG_DMA_ENGINE is not set
+
+#
+# DMA Clients
+#
+
+#
+# DMA Devices
+#
+
+#
+# Auxiliary Display support
+#
+
+#
+# Virtualization
+#
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT3_FS_POSIX_ACL is not set
+# CONFIG_EXT3_FS_SECURITY is not set
+# CONFIG_EXT4DEV_FS is not set
+CONFIG_JBD=y
+# CONFIG_JBD_DEBUG is not set
+CONFIG_FS_MBCACHE=y
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+CONFIG_AUTOFS_FS=y
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+# CONFIG_ISO9660_FS is not set
+# CONFIG_UDF_FS is not set
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=y
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=y
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_HUGETLBFS is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_SYSV_FS is not set
+# CONFIG_UFS_FS is not set
+
+#
+# Network File Systems
+#
+CONFIG_NFS_FS=m
+# CONFIG_NFS_V3 is not set
+# CONFIG_NFS_V4 is not set
+# CONFIG_NFS_DIRECTIO is not set
+CONFIG_NFSD=m
+# CONFIG_NFSD_V3 is not set
+CONFIG_NFSD_TCP=y
+CONFIG_LOCKD=m
+CONFIG_EXPORTFS=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+# CONFIG_RPCSEC_GSS_KRB5 is not set
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CIFS is not set
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+# CONFIG_9P_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+# CONFIG_LDM_PARTITION is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+# CONFIG_EFI_PARTITION is not set
+
+#
+# Native Language Support
+#
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+
+#
+# Distributed Lock Manager
+#
+# CONFIG_DLM is not set
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+# CONFIG_PRINTK_TIME is not set
+CONFIG_ENABLE_MUST_CHECK=y
+# CONFIG_MAGIC_SYSRQ is not set
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_KERNEL is not set
+CONFIG_LOG_BUF_SHIFT=14
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_SH_STANDARD_BIOS is not set
+# CONFIG_EARLY_SCIF_CONSOLE is not set
+# CONFIG_KGDB is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_MANAGER=y
+# CONFIG_CRYPTO_HMAC is not set
+# CONFIG_CRYPTO_XCBC is not set
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_SHA1=m
+# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_WP512 is not set
+# CONFIG_CRYPTO_TGR192 is not set
+# CONFIG_CRYPTO_GF128MUL is not set
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_PCBC=m
+# CONFIG_CRYPTO_LRW is not set
+# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_FCRYPT is not set
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+CONFIG_CRYPTO_AES=m
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+CONFIG_CRYPTO_ARC4=y
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+# CONFIG_CRYPTO_DEFLATE is not set
+CONFIG_CRYPTO_MICHAEL_MIC=m
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CAMELLIA is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=m
+CONFIG_CRC32=y
+CONFIG_LIBCRC32C=m
+CONFIG_PLIST=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
diff --git a/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/git-20070405-2.patch b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/git-20070405-2.patch
new file mode 100644
index 0000000000..205d62a952
--- /dev/null
+++ b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/git-20070405-2.patch
@@ -0,0 +1,1058 @@
+diff --git a/arch/sh/boards/hp6xx/setup.c b/arch/sh/boards/hp6xx/setup.c
+index b5a9664..5c6726d 100644
+--- a/arch/sh/boards/hp6xx/setup.c
++++ b/arch/sh/boards/hp6xx/setup.c
+@@ -2,6 +2,8 @@
+ * linux/arch/sh/boards/hp6xx/setup.c
+ *
+ * Copyright (C) 2002 Andriy Skulysh
++ * Copyright (C) 2007 Kristoffer Ericson <Kristoffer_e1@hotmail.com>
++ *
+ *
+ * May be copied or modified under the terms of the GNU General Public
+ * License. See linux/COPYING for more information.
+@@ -10,6 +12,7 @@
+ */
+ #include <linux/types.h>
+ #include <linux/init.h>
++#include <linux/platform_device.h>
+ #include <asm/hd64461.h>
+ #include <asm/io.h>
+ #include <asm/irq.h>
+@@ -19,6 +22,41 @@
+ #define SCPCR 0xa4000116
+ #define SCPDR 0xa4000136
+
++/* CF Slot */
++static struct resource cf_ide_resources[] = {
++ [0] = {
++ .start = 0x15000000 + 0x1f0,
++ .end = 0x15000000 + 0x1f0 + 0x08 - 0x01,
++ .flags = IORESOURCE_MEM,
++ },
++ [1] = {
++ .start = 0x15000000 + 0x1fe,
++ .end = 0x15000000 + 0x1fe + 0x01,
++ .flags = IORESOURCE_MEM,
++ },
++ [2] = {
++ .start = 93,
++ .flags = IORESOURCE_IRQ,
++ },
++};
++
++static struct platform_device cf_ide_device = {
++ .name = "pata_platform",
++ .id = -1,
++ .num_resources = ARRAY_SIZE(cf_ide_resources),
++ .resource = cf_ide_resources,
++};
++
++static struct platform_device *hp6xx_devices[] __initdata = {
++
++ &cf_ide_device,
++};
++
++static int __init hp6xx_devices_setup(void)
++{
++ return platform_add_devices(hp6xx_devices,ARRAY_SIZE(hp6xx_devices));
++}
++
+ static void __init hp6xx_setup(char **cmdline_p)
+ {
+ u8 v8;
+@@ -61,40 +99,12 @@ static void __init hp6xx_setup(char **cmdline_p)
+ ctrl_outw(v, SCPCR);
+ }
+
+-/*
+- * XXX: This is stupid, we should have a generic machine vector for the cchips
+- * and just wrap the platform setup code in to this, as it's the only thing
+- * that ends up being different.
+- */
++device_initcall(hp6xx_devices_setup);
++
+ struct sh_machine_vector mv_hp6xx __initmv = {
+ .mv_name = "hp6xx",
+ .mv_setup = hp6xx_setup,
+ .mv_nr_irqs = HD64461_IRQBASE + HD64461_IRQ_NUM,
+-
+- .mv_inb = hd64461_inb,
+- .mv_inw = hd64461_inw,
+- .mv_inl = hd64461_inl,
+- .mv_outb = hd64461_outb,
+- .mv_outw = hd64461_outw,
+- .mv_outl = hd64461_outl,
+-
+- .mv_inb_p = hd64461_inb_p,
+- .mv_inw_p = hd64461_inw,
+- .mv_inl_p = hd64461_inl,
+- .mv_outb_p = hd64461_outb_p,
+- .mv_outw_p = hd64461_outw,
+- .mv_outl_p = hd64461_outl,
+-
+- .mv_insb = hd64461_insb,
+- .mv_insw = hd64461_insw,
+- .mv_insl = hd64461_insl,
+- .mv_outsb = hd64461_outsb,
+- .mv_outsw = hd64461_outsw,
+- .mv_outsl = hd64461_outsl,
+-
+- .mv_readw = hd64461_readw,
+- .mv_writew = hd64461_writew,
+-
+ .mv_irq_demux = hd64461_irq_demux,
+ };
+ ALIAS_MV(hp6xx)
+diff --git a/arch/sh/cchips/hd6446x/hd64461/setup.c b/arch/sh/cchips/hd6446x/hd64461/setup.c
+index 4d49b5c..f59e73f 100644
+--- a/arch/sh/cchips/hd6446x/hd64461/setup.c
++++ b/arch/sh/cchips/hd6446x/hd64461/setup.c
+@@ -122,7 +122,7 @@ int hd64461_irq_demux(int irq)
+ }
+ }
+ }
+- return __irq_demux(irq);
++ return (irq);
+ }
+
+ static struct irqaction irq0 = { hd64461_interrupt, IRQF_DISABLED, CPU_MASK_NONE, "HD64461", NULL, NULL };
+diff --git a/arch/sh/drivers/dma/dma-sh.c b/arch/sh/drivers/dma/dma-sh.c
+index 06ed060..b56fab8 100644
+--- a/arch/sh/drivers/dma/dma-sh.c
++++ b/arch/sh/drivers/dma/dma-sh.c
+@@ -19,6 +19,13 @@
+ #include <asm/io.h>
+ #include "dma-sh.h"
+
++#ifdef CONFIG_CPU_SUBTYPE_SH7709
++ #define DMTE0_IRQ 48
++ #define DMTE1_IRQ 49
++ #define DMTE2_IRQ 50
++ #define DMTE3_IRQ 51
++#endif
++
+ static int dmte_irq_map[] = {
+ DMTE0_IRQ,
+ DMTE1_IRQ,
+diff --git a/arch/sh/kernel/cpu/sh3/setup-sh7709.c b/arch/sh/kernel/cpu/sh3/setup-sh7709.c
+index dc9b211..3e9bb0c 100644
+--- a/arch/sh/kernel/cpu/sh3/setup-sh7709.c
++++ b/arch/sh/kernel/cpu/sh3/setup-sh7709.c
+@@ -52,20 +52,29 @@ static int __init sh7709_devices_setup(void)
+ }
+ __initcall(sh7709_devices_setup);
+
+-#define IPRx(A,N) .addr=A, .shift=0*N*-1
++#define IPRx(A,N) .addr=A, .shift=N
+ #define IPRA(N) IPRx(0xfffffee2UL,N)
+ #define IPRB(N) IPRx(0xfffffee4UL,N)
++#define IPRC(N) IPRx(0xa4000016UL,N)
++#define IPRD(N) IPRx(0xa4000018UL,N)
+ #define IPRE(N) IPRx(0xa400001aUL,N)
+
+ static struct ipr_data sh7709_ipr_map[] = {
+- [16] = { IPRA(15-12), 2 }, /* TMU TUNI0 */
+- [17] = { IPRA(11-8), 4 }, /* TMU TUNI1 */
+- [22] = { IPRA(3-0), 2 }, /* RTC CUI */
+- [23 ... 26] = { IPRB(7-4), 3 }, /* SCI */
+- [27] = { IPRB(15-12), 2 }, /* WDT ITI */
+- [48 ... 51] = { IPRE(15-12), 7 }, /* DMA */
+- [52 ... 55] = { IPRE(11-8), 3 }, /* IRDA */
+- [56 ... 59] = { IPRE(7-4), 3 }, /* SCIF */
++ [16] = { IPRA(12), 2 }, /* TMU TUNI0 */
++ [17] = { IPRA(8), 4 }, /* TMU TUNI1 */
++ [18 ... 19] = { IPRA(4), 1 }, /* TMU TUNI1 */
++ [20 ... 22] = { IPRA(0), 2 }, /* RTC CUI */
++ [23 ... 26] = { IPRB(4), 3 }, /* SCI */
++ [27] = { IPRB(12), 2 }, /* WDT ITI */
++ [32] = { IPRC(0), 1 }, /* IRQ 0 */
++ [33] = { IPRC(4), 1 }, /* IRQ 1 */
++ [34] = { IPRC(8), 1 }, /* IRQ 2 APM */
++ [35] = { IPRC(12), 1 }, /* IRQ 3 TOUCHSCREEN */
++ [36] = { IPRD(0), 1 }, /* IRQ 4 */
++ [37] = { IPRD(4), 1 }, /* IRQ 5 */
++ [48 ... 51] = { IPRE(12), 7 }, /* DMA */
++ [52 ... 55] = { IPRE(8), 3 }, /* IRDA */
++ [56 ... 59] = { IPRE(4), 3 }, /* SCIF */
+ };
+
+ void __init init_IRQ_ipr()
+diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig
+index f17e9c7..52a6323 100644
+--- a/drivers/input/keyboard/Kconfig
++++ b/drivers/input/keyboard/Kconfig
+@@ -68,6 +68,9 @@ config KEYBOARD_ATKBD_RDI_KEYCODES
+ right-hand column will be interpreted as the key shown in the
+ left-hand column.
+
++config KEYBOARD_HP680
++ tristate "HP 680 Keyboard Driver"
++
+ config KEYBOARD_SUNKBD
+ tristate "Sun Type 4 and Type 5 keyboard"
+ select SERIO
+diff --git a/drivers/input/keyboard/Makefile b/drivers/input/keyboard/Makefile
+index 586a0fe..09ee105 100644
+--- a/drivers/input/keyboard/Makefile
++++ b/drivers/input/keyboard/Makefile
+@@ -19,4 +19,4 @@ obj-$(CONFIG_KEYBOARD_HIL_OLD) += hilkbd.o
+ obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o
+ obj-$(CONFIG_KEYBOARD_AAED2000) += aaed2000_kbd.o
+ obj-$(CONFIG_KEYBOARD_GPIO) += gpio_keys.o
+-
++obj-$(CONFIG_KEYBOARD_HP680) += scan_keyb.o hp680_keyb.o
+diff --git a/drivers/input/keyboard/hp680_keyb.c b/drivers/input/keyboard/hp680_keyb.c
+new file mode 100644
+index 0000000..d534a2c
+--- /dev/null
++++ b/drivers/input/keyboard/hp680_keyb.c
+@@ -0,0 +1,235 @@
++/*
++ * drivers/input/keyboard/hp680_keyb.c
++ *
++ * HP Jornada 680/690 scan keyboard
++ *
++ * Copyright (C) 2005 Andriy Skulysh
++ * Copyright (C) 2006 Paul Mundt
++ * Copyright (C) 2007 Kristoffer Ericson
++ *
++ * Splited from drivers/input/keyboard/hp600_keyb.c
++ *
++ * Copyright (C) 2000 YAEGASHI Takeshi
++ * HP600 keyboard scan routine and translation table
++ * Copyright (C) 2000 Niibe Yutaka
++ * HP620 keyboard translation table
++ */
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <asm/delay.h>
++#include <asm/io.h>
++#include "scan_keyb.h"
++
++#define PCCR 0xa4000104
++#define PDCR 0xa4000106
++#define PECR 0xa4000108
++#define PFCR 0xa400010a
++#define PCDR 0xa4000124
++#define PDDR 0xa4000126
++#define PEDR 0xa4000128
++#define PFDR 0xa400012a
++#define PGDR 0xa400012c
++#define PHDR 0xa400012e
++#define PJDR 0xa4000130
++#define PKDR 0xa4000132
++#define PLDR 0xa4000134
++
++/***************************************************************
++HP Jornada 680(SWEDISH version) keyboard
++[!] indicates Special Characters
++
++_______________________________________________________________________
++| ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 POWER|
++| 1 2 3 4 5 6 7 8 9 0 + ` BKPSPACE|
++|* Q W E R T Y U I O P ! ^ ENTER|
++| TAB A S D F G H J K L ! ! ' ENTER|
++| SHIFT Z X C V B N M , . - UP SHIFT|
++| CTRL WIN ALT ? =======SPACE======== ALTG DEL LEF DO RI ]
++-----------------------------------------------------------------------
++
++
++****************************************************************/
++
++
++
++/****************************************************************
++HP Jornada 690(Japanese version) keyboard scan matrix
++
++ PTC7 PTC6 PTC5 PTC4 PTC3 PTC2 PTC1 PTC0
++PTD1 REC Escape on/off Han/Zen Hira Eisu
++PTD5 REC Z on/off Enter : /
++PTD7 REC Right Down
++PTE0 REC Windows on/off
++PTE1 REC A on/off ] [ ;
++PTE3 REC Tab on/off ShirtR \ Up
++PTE6 REC Q on/off BS @ P
++PTE7 REC 1 on/off ^ - 0
++
++ PTF7 PTF6 PTF5 PTF4 PTF3 PTF2 PTF1 PTF0
++PTD1 F5 F4 F6 F7 F8 F3 F2 F1
++PTD5 N B M , . V C X
++PTD7 Muhen Alt Left
++PTE0 Henkan _ Del Space Ctrl
++PTE1 H G J K L F D S
++PTE3 ShiftL
++PTE6 Y T U I O R E W
++PTE7 6 5 7 8 9 4 3 2
++
++ PTG5 PTG4 PTG3 PTG0 PTH0
++* REC REW FWW Cover on/off
++
++
++ 7 6 5 4 3 2 1 0
++C: 0xffff 0xdf IP IP IP IP IP IP IP IP
++D: 0x6786 0x59 O I O IP I F O I
++E: 0x5045 0x00 O O F F O F O O
++F: 0xffff 0xff IP IP IP IP IP IP IP IP
++G: 0xaffe 0xfd I I IP IP IP IP IP I
++H: 0x70f2 0x49 O IP F F IP IP F I
++J: 0x0704 0x22 F F O IP F F O F
++K: 0x0100 0x10 F F F O F F F F
++L: 0x0c3c 0x26 F F IP F F IP IP F
++
++****************************************************************/
++
++static const unsigned char hp680_japanese_table[] = {
++/*
++ /* PTD1 */
++ /* ? ? ? ? Esc ? ? ? */
++ 0x3a, 0x70, 0x29, 0x00, 0x01, 0x00, 0x00, 0x00,
++ /* F1 F2 F3 F8 F7 F6 F4 F5 */
++ 0x3b, 0x3c, 0x3d, 0x42, 0x41, 0x40, 0x3e, 0x3f,
++
++ /* PTD5 */
++ /* / : Enter ? Z ? ? ? */
++ 0x35, 0x28, 0x1c, 0x00, 0x2c, 0x00, 0x00, 0x00,
++ /* X C V . , M B N */
++ 0x2d, 0x2e, 0x2f, 0x34, 0x33, 0x32, 0x30, 0x31,
++
++ /* PTD7 */
++ /* Down Right ? ? ? ? ? ? */
++ 0x50, 0x4d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ /* ? ? ? Left ? ? Alt ? */
++ 0x00, 0x00, 0x00, 0x4b, 0x00, 0x00, 0x38, 0x7b,
++
++ /* PTE0 */
++ /* ? ? ? ? Win ? ? ? */
++ 0x00, 0x00, 0x00, 0x00, 0xdb, 0x00, 0x00, 0x00,
++ /* Ctrl ? Space Del _ ? ? ? */
++ 0x1d, 0x00, 0x39, 0x53, 0x73, 0xf9, 0x00, 0x00,
++
++ /* PTE1 */
++ /* ; [ ] ? A ? ? ? */
++ 0x27, 0x1b, 0x2b, 0x00, 0x1e, 0x00, 0x00, 0x00,
++ /* S D F L K J G H */
++ 0x1f, 0x20, 0x21, 0x26, 0x25, 0x24, 0x22, 0x23,
++
++ /* PTE3 */
++ /* Up \ ShiftR ? Q ? ? ? */
++ 0x48, 0x7d, 0x36, 0x00, 0x0f, 0x00, 0x00, 0x00,
++ /* ? ShiftL ? ? ? ? ? ? */
++ 0x00, 0x2a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++
++ /* PTE6 */
++ /* P @ BS ? Q ? ? ? */
++ 0x19, 0x1a, 0x0e, 0x00, 0x10, 0x00, 0x00, 0x00,
++ /* W E R O I U T Y */
++ 0x11, 0x12, 0x13, 0x18, 0x17, 0x16, 0x14, 0x15,
++
++ /* PTE7 */
++ /* 0 + = ? 1 ? ? ? */
++ 0x0b, 0x0c, 0x0d, 0x00, 0x02, 0x00, 0x00, 0x00,
++ /* 2 3 4 9 8 7 5 6 */
++ 0x03, 0x04, 0x05, 0x0a, 0x09, 0x08, 0x06, 0x07,
++
++ /* **** */
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++};
++
++static int hp680_japanese_scan_kbd(unsigned char *s)
++{
++ int i;
++ unsigned short ec_static,dc_static; /* = UINT16_t */
++ unsigned char matrix_switch[] = {
++ 0xfd, 0xff, /* PTD1 PD(1) */
++ 0xdf, 0xff, /* PTD5 PD(5) */
++ 0x7f, 0xff, /* PTD7 PD(7) */
++ 0xff, 0xfe, /* PTE0 PE(0) */
++ 0xff, 0xfd, /* PTE1 PE(1) */
++ 0xff, 0xf7, /* PTE3 PE(3) */
++ 0xff, 0xbf, /* PTE6 PE(6) */
++ 0xff, 0x7f, /* PTE7 PE(7) */
++ }, *t=matrix_switch;
++ /* PD(x) :
++ 1. 0xcc0c & (1~(1 << (2*(x)+1)))))
++ 2. (0xf0cf & 0xfffff) */
++ /* PE(x) :
++ 1. 0xcc0c & 0xffff
++ 2. 0xf0cf & (1~(1 << (2*(x)+1))))) */
++ unsigned short matrix_PDE[] = {
++ 0xcc04, 0xf0cf, /* PD(1) */
++ 0xc40c, 0xf0cf, /* PD(5) */
++ 0x4c0c, 0xf0cf, /* PD(7) */
++ 0xcc0c, 0xf0cd, /* PE(0) */
++ 0xcc0c, 0xf0c7, /* PE(1) */
++ 0xcc0c, 0xf04f, /* PE(3) */
++ 0xcc0c, 0xd0cf, /* PE(6) */
++ 0xcc0c, 0x70cf, /* PE(7) */
++ }
++ , *y=matrix_PDE;
++ /* Save these control reg bits */
++ dc_static = (ctrl_inw(PDCR) & (~0xcc0c));
++ ec_static = (ctrl_inw(PECR) & (~0xf0cf));
++
++ for(i=0; i<8; i++) {
++ /* disable output for all but the one we want to scan */
++ ctrl_outw((dc_static | *y++), PDCR);
++ ctrl_outw((ec_static | *y++), PECR);
++ udelay(5);
++
++ /* Get scanline row */
++ ctrl_outb(*t++, PDDR);
++ ctrl_outb(*t++, PEDR);
++ udelay(50);
++
++ /* Read data */
++ *s++=ctrl_inb(PCDR);
++ *s++=ctrl_inb(PFDR);
++ }
++ /* Scan no lines */
++ ctrl_outb(0xff, PDDR);
++ ctrl_outb(0xff, PEDR);
++
++ /* Enable all scanlines */
++ ctrl_outw((dc_static | (0x5555 & 0xcc0c)),PDCR);
++ ctrl_outw((ec_static | (0x5555 & 0xf0cf)),PECR);
++ /* Ignore extra keys and events */
++
++ *s++=ctrl_inb(PGDR);
++ *s++=ctrl_inb(PHDR);
++
++ return 0;
++}
++
++static struct scan_keyboard hp680_kbd = {
++ .scan = hp680_japanese_scan_kbd,
++ .table = hp680_japanese_table,
++ .length = 16,
++};
++
++static int __init hp680_kbd_init_hw(void)
++{
++ printk(KERN_INFO "HP680 matrix scan keyboard registered\n");
++ return register_scan_keyboard(&hp680_kbd);
++}
++
++static void __exit hp680_kbd_exit_hw(void)
++{
++ unregister_scan_keyboard(&hp680_kbd);
++}
++
++module_init(hp680_kbd_init_hw);
++module_exit(hp680_kbd_exit_hw);
++MODULE_LICENSE("GPL");
+diff --git a/drivers/input/keyboard/scan_keyb.c b/drivers/input/keyboard/scan_keyb.c
+new file mode 100644
+index 0000000..e65668b
+--- /dev/null
++++ b/drivers/input/keyboard/scan_keyb.c
+@@ -0,0 +1,148 @@
++/*
++ * Generic scan keyboard driver
++ *
++ * Copyright (C) 2000 YAEGASHI Takeshi
++ * Copyright (C) 2003 Andriy Skulysh
++ * Copyright (C) 2006 Paul Mundt
++ *
++ * This file is subject to the terms and conditions of the GNU General Public
++ * License. See the file "COPYING" in the main directory of this archive
++ * for more details.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/sched.h>
++#include <linux/init.h>
++#include <linux/slab.h>
++#include <linux/interrupt.h>
++#include <linux/kbd_kern.h>
++#include <linux/input.h>
++#include <linux/timer.h>
++#include "scan_keyb.h"
++
++#define SCANHZ (HZ/20)
++
++static int scan_jiffies;
++static struct scan_keyboard *keyboards;
++struct timer_list scan_timer;
++static char *hpkbd_name = "Hitachi scankeyboard";
++static char *hpkbd_phys = "input0";
++
++static void check_kbd(struct scan_keyboard *kbd,
++ unsigned char *new, unsigned char *old)
++{
++ const unsigned char *table = kbd->table;
++ int length = kbd->length;
++ int need_tasklet_schedule = 0;
++ unsigned int xor, bit;
++
++ while (length-- > 0) {
++ if ((xor = *new ^ *old) == 0)
++ table += 8;
++ else {
++ for (bit = 0x01; bit < 0x100; bit <<= 1) {
++ if (xor & bit) {
++ input_report_key(kbd->dev, *table,
++ !(*new & bit));
++ need_tasklet_schedule = 1;
++ }
++
++ table++;
++ }
++ }
++
++ new++;
++ old++;
++ }
++
++ if (need_tasklet_schedule) {
++ input_sync(kbd->dev);
++ tasklet_schedule(&keyboard_tasklet);
++ }
++}
++
++static void scan_kbd(unsigned long dummy)
++{
++ struct scan_keyboard *kbd;
++
++ scan_jiffies++;
++
++ for (kbd = keyboards; kbd != NULL; kbd = kbd->next) {
++ if (scan_jiffies & 1) {
++ if (!kbd->scan(kbd->s0))
++ check_kbd(kbd, kbd->s0, kbd->s1);
++ else
++ memcpy(kbd->s0, kbd->s1, kbd->length);
++ } else {
++ if (!kbd->scan(kbd->s1))
++ check_kbd(kbd, kbd->s1, kbd->s0);
++ else
++ memcpy(kbd->s1, kbd->s0, kbd->length);
++ }
++ }
++
++ mod_timer(&scan_timer, jiffies + SCANHZ);
++}
++
++int register_scan_keyboard(struct scan_keyboard *kbd)
++{
++ int i;
++
++ kbd->s0 = kmalloc(kbd->length, GFP_KERNEL);
++ if (kbd->s0 == NULL)
++ goto error;
++
++ kbd->s1 = kmalloc(kbd->length, GFP_KERNEL);
++ if (kbd->s1 == NULL)
++ goto error;
++
++ memset(kbd->s0, -1, kbd->length);
++ memset(kbd->s1, -1, kbd->length);
++
++ kbd->dev = input_allocate_device();
++ if (!kbd->dev)
++ goto error;
++
++ kbd->dev->name = hpkbd_name;
++ kbd->dev->phys = hpkbd_phys;
++ kbd->dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
++ //init_input_dev(kbd->dev);
++ kbd->dev->keycode = (unsigned char *)kbd->table;
++ kbd->dev->keycodesize = sizeof(unsigned char);
++ kbd->dev->keycodemax = ARRAY_SIZE(kbd->table);
++
++ for (i = 0; i < 128; i++)
++ if (kbd->table[i])
++ set_bit(kbd->table[i], kbd->dev->keybit);
++
++ clear_bit(0, kbd->dev->keybit);
++ input_register_device(kbd->dev);
++
++ kbd->next = keyboards;
++ keyboards = kbd;
++
++ init_timer(&scan_timer);
++ scan_timer.expires = jiffies + SCANHZ;
++ scan_timer.data = 0;
++ scan_timer.function = scan_kbd;
++ add_timer(&scan_timer);
++
++ return 0;
++
++error:
++ kfree(kbd->s1);
++ kfree(kbd->s0);
++
++ return -ENOMEM;
++}
++EXPORT_SYMBOL_GPL(register_scan_keyboard);
++
++void unregister_scan_keyboard(struct scan_keyboard *kbd)
++{
++ del_timer_sync(&scan_timer);
++ keyboards = kbd->next;
++ input_unregister_device(kbd->dev);
++ input_free_device(kbd->dev);
++}
++EXPORT_SYMBOL_GPL(unregister_scan_keyboard);
+diff --git a/drivers/input/keyboard/scan_keyb.h b/drivers/input/keyboard/scan_keyb.h
+new file mode 100644
+index 0000000..e50510f
+--- /dev/null
++++ b/drivers/input/keyboard/scan_keyb.h
+@@ -0,0 +1,16 @@
++#ifndef __DRIVER_CHAR_SCAN_KEYB_H
++#define __DRIVER_CHAR_SCAN_KEYB_H
++
++struct scan_keyboard {
++ struct scan_keyboard *next;
++ int (*scan)(unsigned char *buffer);
++ const unsigned char *table;
++ unsigned char *s0, *s1;
++ int length;
++ struct input_dev *dev;
++};
++
++int register_scan_keyboard(struct scan_keyboard *);
++void unregister_scan_keyboard(struct scan_keyboard *);
++
++#endif
+diff --git a/drivers/input/touchscreen/hp680_ts_input.c b/drivers/input/touchscreen/hp680_ts_input.c
+index 2490874..0450d28 100644
+--- a/drivers/input/touchscreen/hp680_ts_input.c
++++ b/drivers/input/touchscreen/hp680_ts_input.c
+@@ -18,12 +18,12 @@
+ #define PHDR 0xa400012e
+ #define SCPDR 0xa4000136
+
+-static void do_softint(void *data);
++static void do_softint(struct work_struct *work);
+
+ static struct input_dev *hp680_ts_dev;
+-static DECLARE_WORK(work, do_softint, 0);
++static DECLARE_DELAYED_WORK(work, do_softint);
+
+-static void do_softint(void *data)
++static void do_softint(struct work_struct *work)
+ {
+ int absx = 0, absy = 0;
+ u8 scpdr;
+@@ -68,9 +68,8 @@ static void do_softint(void *data)
+
+ static irqreturn_t hp680_ts_interrupt(int irq, void *dev)
+ {
+- disable_irq_nosync(irq);
++ disable_irq_nosync(irq);
+ schedule_delayed_work(&work, HZ / 20);
+-
+ return IRQ_HANDLED;
+ }
+
+@@ -108,7 +107,7 @@ static int __init hp680_ts_init(void)
+ return 0;
+
+ fail2: free_irq(HP680_TS_IRQ, NULL);
+- cancel_delayed_work(&work);
++ cancel_delayed_work(&work); /* delay_ts->work */
+ flush_scheduled_work();
+ fail1: input_free_device(hp680_ts_dev);
+ return err;
+diff --git a/drivers/video/backlight/hp680_bl.c b/drivers/video/backlight/hp680_bl.c
+index 0899fcc..109329a 100644
+--- a/drivers/video/backlight/hp680_bl.c
++++ b/drivers/video/backlight/hp680_bl.c
+@@ -125,8 +125,8 @@ static int hp680bl_remove(struct platform_device *pdev)
+ {
+ struct backlight_device *bd = platform_get_drvdata(pdev);
+
+- hp680bl_data.brightness = 0;
+- hp680bl_data.power = 0;
++// hp680bl_data.brightness = 0;
++// hp680bl_data.power = 0;
+ hp680bl_send_intensity(bd);
+
+ backlight_device_unregister(bd);
+diff --git a/include/asm-sh/hd64461.h b/include/asm-sh/hd64461.h
+index 27e5c34..cd2e5f9 100644
+--- a/include/asm-sh/hd64461.h
++++ b/include/asm-sh/hd64461.h
+@@ -9,111 +9,122 @@
+ /* Constants for PCMCIA mappings */
+ #define HD64461_PCC_WINDOW 0x01000000
+
+-#define HD64461_PCC0_BASE 0xb8000000 /* area 6 */
+-#define HD64461_PCC0_ATTR (HD64461_PCC0_BASE)
+-#define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW)
+-#define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW)
+-
+-#define HD64461_PCC1_BASE 0xb4000000 /* area 5 */
+-#define HD64461_PCC1_ATTR (HD64461_PCC1_BASE)
+-#define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW)
+-
+-#define HD64461_STBCR 0x10000
+-#define HD64461_STBCR_CKIO_STBY 0x2000
+-#define HD64461_STBCR_SAFECKE_IST 0x1000
+-#define HD64461_STBCR_SLCKE_IST 0x0800
+-#define HD64461_STBCR_SAFECKE_OST 0x0400
+-#define HD64461_STBCR_SLCKE_OST 0x0200
+-#define HD64461_STBCR_SMIAST 0x0100
+-#define HD64461_STBCR_SLCDST 0x0080
+-#define HD64461_STBCR_SPC0ST 0x0040
+-#define HD64461_STBCR_SPC1ST 0x0020
+-#define HD64461_STBCR_SAFEST 0x0010
+-#define HD64461_STBCR_STM0ST 0x0008
+-#define HD64461_STBCR_STM1ST 0x0004
+-#define HD64461_STBCR_SIRST 0x0002
+-#define HD64461_STBCR_SURTST 0x0001
+-
+-#define HD64461_SYSCR 0x10002
+-#define HD64461_SCPUCR 0x10004
+-
+-#define HD64461_LCDCBAR 0x11000
+-#define HD64461_LCDCLOR 0x11002
+-#define HD64461_LCDCCR 0x11004
+-#define HD64461_LCDCCR_STBACK 0x0400
+-#define HD64461_LCDCCR_STREQ 0x0100
+-#define HD64461_LCDCCR_MOFF 0x0080
+-#define HD64461_LCDCCR_REFSEL 0x0040
+-#define HD64461_LCDCCR_EPON 0x0020
+-#define HD64461_LCDCCR_SPON 0x0010
+-
+-#define HD64461_LDR1 0x11010
++#define HD64461_PCC0_BASE 0xb8000000 /* area 6 */
++#define HD64461_PCC0_ATTR (HD64461_PCC0_BASE) /* 0xb8000000 */
++#define HD64461_PCC0_COMM (HD64461_PCC0_BASE+HD64461_PCC_WINDOW) /* 0xb9000000 */
++#define HD64461_PCC0_IO (HD64461_PCC0_BASE+2*HD64461_PCC_WINDOW) /* 0xba000000 */
++
++#define HD64461_PCC1_BASE 0xb4000000 /* area 5 */
++#define HD64461_PCC1_ATTR (HD64461_PCC1_BASE) /* 0xb4000000 */
++#define HD64461_PCC1_COMM (HD64461_PCC1_BASE+HD64461_PCC_WINDOW) /* 0xb5000000 */
++
++/* if PORT < 0xf000 then ADDR = 0xa0000000 + PORT */
++#define HD64461_STBCR (CONFIG_HD64461_IOBASE)
++#define HD64461_STBCR_CKIO_STBY 0xa0002000
++#define HD64461_STBCR_SAFECKE_IST 0xa0001000
++#define HD64461_STBCR_SLCKE_IST 0xa0000800
++#define HD64461_STBCR_SAFECKE_OST 0xa0000400
++#define HD64461_STBCR_SLCKE_OST 0xa0000200
++#define HD64461_STBCR_SMIAST 0xa0000100
++#define HD64461_STBCR_SLCDST 0xa0000080
++#define HD64461_STBCR_SPC0ST 0xa0000040
++#define HD64461_STBCR_SPC1ST 0xa0000020
++#define HD64461_STBCR_SAFEST 0xa0000010
++#define HD64461_STBCR_STM0ST 0xa0000008
++#define HD64461_STBCR_STM1ST 0xa0000004
++#define HD64461_STBCR_SIRST 0xa0000002
++#define HD64461_STBCR_SURTST 0xa0000001
++
++/* if PORT < 0x20000 then ADDR = CONFIG_HD64461_IOBASE + PORT - 0x10000 */
++#define HD64461_SYSCR (CONFIG_HD64461_IOBASE + 0x10002 - 0x10000)
++#define HD64461_SCPUCR (CONFIG_HD64461_IOBASE + 0x10004 - 0x10000)
++#define HD64461_LCDCBAR (CONFIG_HD64461_IOBASE + 0x11000 - 0x10000)
++#define HD64461_LCDCLOR (CONFIG_HD64461_IOBASE + 0x11002 - 0x10000)
++#define HD64461_LCDCCR (CONFIG_HD64461_IOBASE + 0x11004 - 0x10000)
++
++
++/* if PORT < 0xf000 then ADDR = 0xa0000000 + PORT */
++#define HD64461_LCDCCR_STBACK (0xa0000000 + 0x0400)
++#define HD64461_LCDCCR_STREQ (0xa0000000 + 0x0100)
++#define HD64461_LCDCCR_MOFF (0xa0000000 + 0x0080)
++#define HD64461_LCDCCR_REFSEL (0xa0000000 + 0x0040)
++#define HD64461_LCDCCR_EPON (0xa0000000 + 0x0020)
++#define HD64461_LCDCCR_SPON (0xa0000000 + 0x0010)
++
++/* if PORT < 0x20000 then ADDR = CONFIG_HD64461_IOBASE + PORT - 0x10000 */
++#define HD64461_LDR1 (CONFIG_HD64461_IOBASE + 0x11010 - 0x10000)
++
++/* if PORT < 0xf000 then ADDR = 0xa0000000 + PORT */
+ #define HD64461_LDR1_DON 0x01
+ #define HD64461_LDR1_DINV 0x80
+
+-#define HD64461_LDR2 0x11012
+-#define HD64461_LDHNCR 0x11014
+-#define HD64461_LDHNSR 0x11016
+-#define HD64461_LDVNTR 0x11018
+-#define HD64461_LDVNDR 0x1101a
+-#define HD64461_LDVSPR 0x1101c
+-#define HD64461_LDR3 0x1101e
+-
+-#define HD64461_CPTWAR 0x11030
+-#define HD64461_CPTWDR 0x11032
+-#define HD64461_CPTRAR 0x11034
+-#define HD64461_CPTRDR 0x11036
+-
+-#define HD64461_GRDOR 0x11040
+-#define HD64461_GRSCR 0x11042
+-#define HD64461_GRCFGR 0x11044
++/* if PORT < 0x20000 then ADDR = CONFIG_HD64461_IOBASE + PORT - 0x10000 */
++#define HD64461_LDR2 (CONFIG_HD64461_IOBASE + 0x11012 - 0x10000)
++#define HD64461_LDHNCR (CONFIG_HD64461_IOBASE + 0x11014 - 0x10000)
++#define HD64461_LDHNSR (CONFIG_HD64461_IOBASE + 0x11016 - 0x10000)
++#define HD64461_LDVNTR (CONFIG_HD64461_IOBASE + 0x11018 - 0x10000)
++#define HD64461_LDVNDR (CONFIG_HD64461_IOBASE + 0x1101a - 0x10000)
++#define HD64461_LDVSPR (CONFIG_HD64461_IOBASE + 0x1101c - 0x10000)
++#define HD64461_LDR3 (CONFIG_HD64461_IOBASE + 0x1101e - 0x10000)
++
++#define HD64461_CPTWAR (CONFIG_HD64461_IOBASE + 0x11030 - 0x10000)
++#define HD64461_CPTWDR (CONFIG_HD64461_IOBASE + 0x11032 - 0x10000)
++#define HD64461_CPTRAR (CONFIG_HD64461_IOBASE + 0x11034 - 0x10000)
++#define HD64461_CPTRDR (CONFIG_HD64461_IOBASE + 0x11036 - 0x10000)
++
++#define HD64461_GRDOR (CONFIG_HD64461_IOBASE + 0x11040 - 0x10000)
++#define HD64461_GRSCR (CONFIG_HD64461_IOBASE + 0x11042 - 0x10000)
++#define HD64461_GRCFGR (CONFIG_HD64461_IOBASE + 0x11044 - 0x10000)
++
+ #define HD64461_GRCFGR_ACCSTATUS 0x10
+ #define HD64461_GRCFGR_ACCRESET 0x08
+-#define HD64461_GRCFGR_ACCSTART_BITBLT 0x06
+-#define HD64461_GRCFGR_ACCSTART_LINE 0x04
++#define HD64461_GRCFGR_ACCSTART_BITBLT 0x06
++#define HD64461_GRCFGR_ACCSTART_LINE 0x04
+ #define HD64461_GRCFGR_COLORDEPTH16 0x01
+
+-#define HD64461_LNSARH 0x11046
+-#define HD64461_LNSARL 0x11048
+-#define HD64461_LNAXLR 0x1104a
+-#define HD64461_LNDGR 0x1104c
+-#define HD64461_LNAXR 0x1104e
+-#define HD64461_LNERTR 0x11050
+-#define HD64461_LNMDR 0x11052
+-#define HD64461_BBTSSARH 0x11054
+-#define HD64461_BBTSSARL 0x11056
+-#define HD64461_BBTDSARH 0x11058
+-#define HD64461_BBTDSARL 0x1105a
+-#define HD64461_BBTDWR 0x1105c
+-#define HD64461_BBTDHR 0x1105e
+-#define HD64461_BBTPARH 0x11060
+-#define HD64461_BBTPARL 0x11062
+-#define HD64461_BBTMARH 0x11064
+-#define HD64461_BBTMARL 0x11066
+-#define HD64461_BBTROPR 0x11068
+-#define HD64461_BBTMDR 0x1106a
+-
++/* if PORT < 0x20000 then CONFIG_HD64461_IOBASE + PORT - 0x10000 */
++#define HD64461_LNSARH (CONFIG_HD64461_IOBASE + 0x11046 - 0x10000)
++#define HD64461_LNSARL (CONFIG_HD64461_IOBASE + 0x11048 - 0x10000)
++#define HD64461_LNAXLR (CONFIG_HD64461_IOBASE + 0x1104a - 0x10000)
++#define HD64461_LNDGR (CONFIG_HD64461_IOBASE + 0x1104c - 0x10000)
++#define HD64461_LNAXR (CONFIG_HD64461_IOBASE + 0x1104e - 0x10000)
++#define HD64461_LNERTR (CONFIG_HD64461_IOBASE + 0x11050 - 0x10000)
++#define HD64461_LNMDR (CONFIG_HD64461_IOBASE + 0x11052 - 0x10000)
++#define HD64461_BBTSSARH (CONFIG_HD64461_IOBASE + 0x11054 - 0x10000)
++#define HD64461_BBTSSARL (CONFIG_HD64461_IOBASE + 0x11056 - 0x10000)
++#define HD64461_BBTDSARH (CONFIG_HD64461_IOBASE + 0x11058 - 0x10000)
++#define HD64461_BBTDSARL (CONFIG_HD64461_IOBASE + 0x1105a - 0x10000)
++#define HD64461_BBTDWR (CONFIG_HD64461_IOBASE + 0x1105c - 0x10000)
++#define HD64461_BBTDHR (CONFIG_HD64461_IOBASE + 0x1105e - 0x10000)
++#define HD64461_BBTPARH (CONFIG_HD64461_IOBASE + 0x11060 - 0x10000)
++#define HD64461_BBTPARL (CONFIG_HD64461_IOBASE + 0x11062 - 0x10000)
++#define HD64461_BBTMARH (CONFIG_HD64461_IOBASE + 0x11064 - 0x10000)
++#define HD64461_BBTMARL (CONFIG_HD64461_IOBASE + 0x11066 - 0x10000)
++#define HD64461_BBTROPR (CONFIG_HD64461_IOBASE + 0x11068 - 0x10000)
++#define HD64461_BBTMDR (CONFIG_HD64461_IOBASE + 0x1106a - 0x10000)
++
++/* These must be like this, otherwise the Jornada will not boot! */
+ /* PC Card Controller Registers */
+-#define HD64461_PCC0ISR 0x12000 /* socket 0 interface status */
+-#define HD64461_PCC0GCR 0x12002 /* socket 0 general control */
+-#define HD64461_PCC0CSCR 0x12004 /* socket 0 card status change */
+-#define HD64461_PCC0CSCIER 0x12006 /* socket 0 card status change interrupt enable */
+-#define HD64461_PCC0SCR 0x12008 /* socket 0 software control */
+-#define HD64461_PCC1ISR 0x12010 /* socket 1 interface status */
+-#define HD64461_PCC1GCR 0x12012 /* socket 1 general control */
+-#define HD64461_PCC1CSCR 0x12014 /* socket 1 card status change */
+-#define HD64461_PCC1CSCIER 0x12016 /* socket 1 card status change interrupt enable */
+-#define HD64461_PCC1SCR 0x12018 /* socket 1 software control */
++#define HD64461_PCC0ISR (CONFIG_HD64461_IOBASE + 0x12000 - 0x10000) /* socket 0 interface status */
++#define HD64461_PCC0GCR (CONFIG_HD64461_IOBASE + 0x12002 - 0x10000) /* socket 0 general control */
++#define HD64461_PCC0CSCR (CONFIG_HD64461_IOBASE + 0x12004 - 0x10000) /* socket 0 card status change */
++#define HD64461_PCC0CSCIER (CONFIG_HD64461_IOBASE + 0x12006 - 0x10000) /* socket 0 card status change interrupt enable */
++#define HD64461_PCC0SCR (CONFIG_HD64461_IOBASE + 0x12008 - 0x10000) /* socket 0 software control */
++#define HD64461_PCC1ISR (CONFIG_HD64461_IOBASE + 0x12010 - 0x10000) /* socket 1 interface status */
++#define HD64461_PCC1GCR (CONFIG_HD64461_IOBASE + 0x12012 - 0x10000) /* socket 1 general control */
++#define HD64461_PCC1CSCR (CONFIG_HD64461_IOBASE + 0x12014 - 0x10000) /* socket 1 card status change */
++#define HD64461_PCC1CSCIER (CONFIG_HD64461_IOBASE + 0x12016 - 0x10000) /* socket 1 card status change interrupt enable */
++#define HD64461_PCC1SCR (CONFIG_HD64461_IOBASE + 0x12018 - 0x10000) /* socket 1 software control */
+
+ /* PCC Interface Status Register */
+-#define HD64461_PCCISR_READY 0x80 /* card ready */
+-#define HD64461_PCCISR_MWP 0x40 /* card write-protected */
+-#define HD64461_PCCISR_VS2 0x20 /* voltage select pin 2 */
+-#define HD64461_PCCISR_VS1 0x10 /* voltage select pin 1 */
+-#define HD64461_PCCISR_CD2 0x08 /* card detect 2 */
+-#define HD64461_PCCISR_CD1 0x04 /* card detect 1 */
+-#define HD64461_PCCISR_BVD2 0x02 /* battery 1 */
+-#define HD64461_PCCISR_BVD1 0x01 /* battery 1 */
++#define HD64461_PCCISR_READY 0x80 /* card ready */
++#define HD64461_PCCISR_MWP 0x40 /* card write-protected */
++#define HD64461_PCCISR_VS2 0x20 /* voltage select pin 2 */
++#define HD64461_PCCISR_VS1 0x10 /* voltage select pin 1 */
++#define HD64461_PCCISR_CD2 0x08 /* card detect 2 */
++#define HD64461_PCCISR_CD1 0x04 /* card detect 1 */
++#define HD64461_PCCISR_BVD2 0x02 /* battery 1 */
++#define HD64461_PCCISR_BVD1 0x01 /* battery 1 */
+
+ #define HD64461_PCCISR_PCD_MASK 0x0c /* card detect */
+ #define HD64461_PCCISR_BVD_MASK 0x03 /* battery voltage */
+@@ -160,29 +171,29 @@
+ #define HD64461_PCCSCR_VCC1 0x02 /* voltage control pin 1 */
+ #define HD64461_PCCSCR_SWP 0x01 /* write protect */
+
+-#define HD64461_P0OCR 0x1202a
+-#define HD64461_P1OCR 0x1202c
+-#define HD64461_PGCR 0x1202e
+-
+-#define HD64461_GPACR 0x14000
+-#define HD64461_GPBCR 0x14002
+-#define HD64461_GPCCR 0x14004
+-#define HD64461_GPDCR 0x14006
+-#define HD64461_GPADR 0x14010
+-#define HD64461_GPBDR 0x14012
+-#define HD64461_GPCDR 0x14014
+-#define HD64461_GPDDR 0x14016
+-#define HD64461_GPAICR 0x14020
+-#define HD64461_GPBICR 0x14022
+-#define HD64461_GPCICR 0x14024
+-#define HD64461_GPDICR 0x14026
+-#define HD64461_GPAISR 0x14040
+-#define HD64461_GPBISR 0x14042
+-#define HD64461_GPCISR 0x14044
+-#define HD64461_GPDISR 0x14046
+-
+-#define HD64461_NIRR 0x15000
+-#define HD64461_NIMR 0x15002
++#define HD64461_P0OCR (CONFIG_HD64461_IOBASE + 0x1202a - 0x10000)
++#define HD64461_P1OCR (CONFIG_HD64461_IOBASE + 0x1202c - 0x10000)
++#define HD64461_PGCR (CONFIG_HD64461_IOBASE + 0x1202e - 0x10000)
++
++#define HD64461_GPACR (CONFIG_HD64461_IOBASE + 0x14000 - 0x10000)
++#define HD64461_GPBCR (CONFIG_HD64461_IOBASE + 0x14002 - 0x10000)
++#define HD64461_GPCCR (CONFIG_HD64461_IOBASE + 0x14004 - 0x10000)
++#define HD64461_GPDCR (CONFIG_HD64461_IOBASE + 0x14006 - 0x10000)
++#define HD64461_GPADR (CONFIG_HD64461_IOBASE + 0x14010 - 0x10000)
++#define HD64461_GPBDR (CONFIG_HD64461_IOBASE + 0x14012 - 0x10000)
++#define HD64461_GPCDR (CONFIG_HD64461_IOBASE + 0x14014 - 0x10000)
++#define HD64461_GPDDR (CONFIG_HD64461_IOBASE + 0x14016 - 0x10000)
++#define HD64461_GPAICR (CONFIG_HD64461_IOBASE + 0x14020 - 0x10000)
++#define HD64461_GPBICR (CONFIG_HD64461_IOBASE + 0x14022 - 0x10000)
++#define HD64461_GPCICR (CONFIG_HD64461_IOBASE + 0x14024 - 0x10000)
++#define HD64461_GPDICR (CONFIG_HD64461_IOBASE + 0x14026 - 0x10000)
++#define HD64461_GPAISR (CONFIG_HD64461_IOBASE + 0x14040 - 0x10000)
++#define HD64461_GPBISR (CONFIG_HD64461_IOBASE + 0x14042 - 0x10000)
++#define HD64461_GPCISR (CONFIG_HD64461_IOBASE + 0x14044 - 0x10000)
++#define HD64461_GPDISR (CONFIG_HD64461_IOBASE + 0x14046 - 0x10000)
++
++#define HD64461_NIRR 0xb0005000 /* 0x10005000 */
++#define HD64461_NIMR 0xb0005002 /* 0x10005002 */
+
+ #define HD64461_IRQBASE OFFCHIP_IRQ_BASE
+ #define HD64461_IRQ_NUM 16
+diff --git a/include/asm-sh/io.h b/include/asm-sh/io.h
+index a0e55b0..08848ee 100644
+--- a/include/asm-sh/io.h
++++ b/include/asm-sh/io.h
+@@ -143,6 +143,7 @@ void __raw_readsl(unsigned long addr, void *data, int longlen);
+ #define readl_relaxed(a) readl(a)
+
+ /* Simple MMIO */
++#ifndef CONFIG_CPU_SUBTYPE_SH7709
+ #define ioread8(a) readb(a)
+ #define ioread16(a) readw(a)
+ #define ioread16be(a) be16_to_cpu(__raw_readw((a)))
+@@ -154,6 +155,7 @@ void __raw_readsl(unsigned long addr, void *data, int longlen);
+ #define iowrite16be(v,a) __raw_writew(cpu_to_be16((v)),(a))
+ #define iowrite32(v,a) writel((v),(a))
+ #define iowrite32be(v,a) __raw_writel(cpu_to_be32((v)),(a))
++#endif
+
+ #define ioread8_rep(a,d,c) insb((a),(d),(c))
+ #define ioread16_rep(a,d,c) insw((a),(d),(c))
+@@ -163,6 +165,20 @@ void __raw_readsl(unsigned long addr, void *data, int longlen);
+ #define iowrite16_rep(a,s,c) outsw((a),(s),(c))
+ #define iowrite32_rep(a,s,c) outsl((a),(s),(c))
+
++#ifdef CONFIG_CPU_SUBTYPE_SH7709
++ #define ioread8(a) inb(a)
++ #define ioread16(a) inw(a)
++ #define ioread16be(a) be16_to_cpu(inw((a)))
++ #define ioread32(a) inl(a)
++ #define ioread32be(v,a) be32_to_cpu(inl((a)))
++
++ #define iowrite8(v,a) outb((v),(a))
++ #define iowrite16(v,a) outw((v),(a))
++ #define iowrite16be(v,a) outw(cpu_to_be16((v),(a)))
++ #define iowrite32(v,a) outl((v),(a))
++ #define iowrite32be(v,a) outl(cpu_to_be32((v),(a)))
++#endif
++
+ #define mmiowb() wmb() /* synco on SH-4A, otherwise a nop */
+
+ /*
+diff --git a/include/asm-sh/irq.h b/include/asm-sh/irq.h
+index afe188f..95f9a1a 100644
+--- a/include/asm-sh/irq.h
++++ b/include/asm-sh/irq.h
+@@ -23,6 +23,40 @@
+ defined(CONFIG_CPU_SUBTYPE_SH7705)
+ # define ONCHIP_NR_IRQS 64 // Actually 61
+ # define PINT_NR_IRQS 16
++
++ #define INTC_IRR0 0xa4000004UL
++ #define INTC_IRR1 0xa4000006UL
++ #define INTC_IRR2 0xa4000008UL
++
++ #define INTC_IPRA 0xfffffee2UL
++ #define INTC_IPRB 0xfffffee4UL
++ #define INTC_IPRD 0xa4000018UL
++
++ #define INTC_INTER 0xa4000014UL
++
++ #define INTC_ICR0 0xfffffee0UL
++ #define INTC_ICR1 0xa4000010UL
++ #define INTC_ICR2 0xa4000012UL
++
++ #define PORT_PACR 0xa4000100UL
++ #define PORT_PBCR 0xa4000102UL
++ #define PORT_PCCR 0xa4000104UL
++ #define PORT_PFCR 0xa400010aUL
++
++ #define PORT_PADR 0xa4000120UL
++ #define PORT_PBDR 0xa4000122UL
++ #define PORT_PCDR 0xa4000124UL
++ #define PORT_PFDR 0xa400012aUL
++
++ #define PINT0_IRQ 40
++ #define PINT8_IRQ 41
++ #define PINT0_IPR_ADDR INTC_IPRD
++ #define PINT8_IPR_ADDR INTC_IPRD
++ #define PINT0_IPR_POS 3
++ #define PINT8_IPR_POS 2
++ #define PINT0_PRIORITY 2
++ #define PINT8_PRIORITY 2
++
+ #elif defined(CONFIG_CPU_SUBTYPE_SH7710)
+ # define ONCHIP_NR_IRQS 104
+ #elif defined(CONFIG_CPU_SUBTYPE_SH7750)
+diff --git a/sound/oss/sh_dac_audio.c b/sound/oss/sh_dac_audio.c
+index 7ea9acc..dcfcad0 100644
+--- a/sound/oss/sh_dac_audio.c
++++ b/sound/oss/sh_dac_audio.c
+@@ -32,6 +32,7 @@
+ #define MODNAME "sh_dac_audio"
+
+ #define TMU_TOCR_INIT 0x00
++#define TIMER1_IRQ 14
+
+ #define TMU1_TCR_INIT 0x0020 /* Clock/4, rising edge; interrupt on */
+ #define TMU1_TSTR_INIT 0x02 /* Bit to turn on TMU1 */
+@@ -104,7 +105,7 @@ static void dac_audio_set_rate(void)
+ unsigned long interval;
+ struct clk *clk;
+
+- clk = clk_get("module_clk");
++ clk = clk_get("module_clk", NULL);
+ interval = (clk_get_rate(clk) / 4) / rate;
+ clk_put(clk);
+ ctrl_outl(interval, TMU1_TCOR);
diff --git a/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/hp6xx-IRQ3.patch b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/hp6xx-IRQ3.patch
new file mode 100644
index 0000000000..c4819514d7
--- /dev/null
+++ b/packages/linux/linux-jlime-jornada6xx-2.6.21rc5/hp6xx-IRQ3.patch
@@ -0,0 +1,4 @@
+14c14
+< #define HP680_TS_IRQ IRQ3_IRQ
+---
+> #define HP680_TS_IRQ 35
diff --git a/packages/linux/linux-jlime-jornada6xx_2.6.21rc5.bb b/packages/linux/linux-jlime-jornada6xx_2.6.21rc5.bb
new file mode 100644
index 0000000000..82b54258b5
--- /dev/null
+++ b/packages/linux/linux-jlime-jornada6xx_2.6.21rc5.bb
@@ -0,0 +1,33 @@
+SECTION = "kernel"
+DESCRIPTION = "JLime Linux kernel for SuperH based Jornada 6xx"
+LICENSE = "GPL"
+PR = "r0"
+
+COMPATIBLE_HOST = "sh.*-linux"
+#COMPATIBLE_MACHINE = "jornada6xx"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=v2.6.21-rc5 \
+ file://git-20070405-2.patch;patch=1 \
+ file://hp6xx-IRQ3.patch;patch=1 \
+ file://defconfig"
+
+
+S = "${WORKDIR}/git"
+
+inherit kernel
+
+#Lets let 3.4.x handle the compilation of this one
+KERNEL_CCSUFFIX = "-3.4.4"
+
+ARCH = "sh"
+KERNEL_IMAGETYPE = "zImage"
+FILES_kernel-image = "/boot/${KERNEL_IMAGETYPE}*"
+
+do_configure_prepend() {
+ install -m 0644 ${WORKDIR}/defconfig ${S}/.config
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/$(ARCH)/boot/$(KERNEL_IMAGETYPE) $(DEPLOY_DIR)/images/$(KERNEL_IMAGETYPE)
+}
diff --git a/packages/linux/linux-x86-2.6.20/netvista/defconfig b/packages/linux/linux-x86-2.6.20/netvista/defconfig
index 864a42b303..4db3370642 100644
--- a/packages/linux/linux-x86-2.6.20/netvista/defconfig
+++ b/packages/linux/linux-x86-2.6.20/netvista/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.20
-# Tue Apr 3 00:46:14 2007
+# Thu Apr 5 12:46:55 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
@@ -870,11 +870,13 @@ CONFIG_INPUT=y
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=800
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600
# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_TSDEV is not set
-# CONFIG_INPUT_EVDEV is not set
+CONFIG_INPUT_TSDEV=m
+CONFIG_INPUT_TSDEV_SCREEN_X=800
+CONFIG_INPUT_TSDEV_SCREEN_Y=600
+CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_EVBUG is not set
#
@@ -892,7 +894,15 @@ CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_UCB1400=m
# CONFIG_INPUT_MISC is not set
#
@@ -1117,6 +1127,7 @@ CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
+CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
@@ -1134,7 +1145,8 @@ CONFIG_SND_VERBOSE_PROCFS=y
#
# Generic devices
#
-CONFIG_SND_AC97_CODEC=y
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
@@ -1160,7 +1172,7 @@ CONFIG_SND_AC97_CODEC=y
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5535AUDIO is not set
+CONFIG_SND_CS5535AUDIO=m
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
@@ -1185,7 +1197,7 @@ CONFIG_SND_AC97_CODEC=y
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
-CONFIG_SND_INTEL8X0=y
+CONFIG_SND_INTEL8X0=m
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
@@ -1197,9 +1209,9 @@ CONFIG_SND_INTEL8X0=y
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
-# CONFIG_SND_TRIDENT is not set
-# CONFIG_SND_VIA82XX is not set
-# CONFIG_SND_VIA82XX_MODEM is not set
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_AC97_POWER_SAVE is not set
@@ -1213,8 +1225,31 @@ CONFIG_SND_INTEL8X0=y
#
# Open Sound System
#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=y
+CONFIG_SOUND_PRIME=m
+# CONFIG_SOUND_BT878 is not set
+# CONFIG_SOUND_ES1371 is not set
+# CONFIG_SOUND_ICH is not set
+# CONFIG_SOUND_TRIDENT is not set
+# CONFIG_SOUND_MSNDCLAS is not set
+# CONFIG_SOUND_MSNDPIN is not set
+# CONFIG_SOUND_VIA82CXXX is not set
+CONFIG_SOUND_OSS=m
+# CONFIG_SOUND_TRACEINIT is not set
+# CONFIG_SOUND_DMAP is not set
+# CONFIG_SOUND_CS4232 is not set
+# CONFIG_SOUND_SSCAPE is not set
+# CONFIG_SOUND_VMIDI is not set
+# CONFIG_SOUND_TRIX is not set
+# CONFIG_SOUND_MSS is not set
+# CONFIG_SOUND_MPU401 is not set
+# CONFIG_SOUND_PAS is not set
+# CONFIG_SOUND_PSS is not set
+CONFIG_SOUND_SB=m
+# CONFIG_SOUND_YM3812 is not set
+# CONFIG_SOUND_UART6850 is not set
+# CONFIG_SOUND_AEDSP16 is not set
+# CONFIG_SOUND_KAHLUA is not set
+CONFIG_AC97_BUS=m
#
# HID Devices
diff --git a/packages/linux/linux-x86_2.6.20.bb b/packages/linux/linux-x86_2.6.20.bb
index 5db1563733..c73ee58d2f 100644
--- a/packages/linux/linux-x86_2.6.20.bb
+++ b/packages/linux/linux-x86_2.6.20.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Linux Kernel for x86 compatible machines"
SECTION = "kernel"
LICENSE = "GPL"
-PR = "r0"
+PR = "r2"
SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://defconfig"
@@ -17,3 +17,11 @@ do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
}
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/i386/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_populate_staging after do_compile
diff --git a/packages/meta/meta-e-x11-core.bb b/packages/meta/meta-e-x11-core.bb
index 21960c6573..cdc76402e1 100644
--- a/packages/meta/meta-e-x11-core.bb
+++ b/packages/meta/meta-e-x11-core.bb
@@ -4,7 +4,7 @@ ALLOW_EMPTY = "1"
PR = "r1"
PACKAGE_ARCH = "all"
LICENSE = "MIT"
-BUILD_ALL_DEPS="1"
-DEPENDS = "task-e-x11-core"
RDEPENDS = "task-e-x11-core"
+
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-e-x11.bb b/packages/meta/meta-e-x11.bb
index 0edfd43496..1182b0cf42 100644
--- a/packages/meta/meta-e-x11.bb
+++ b/packages/meta/meta-e-x11.bb
@@ -4,7 +4,7 @@ ALLOW_EMPTY = "1"
PR = "r1"
PACKAGE_ARCH = "all"
LICENSE = "MIT"
-BUILD_ALL_DEPS = "1"
-DEPENDS = "task-e-x11"
RDEPENDS = "task-e-x11"
+
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-gpe-extras.bb b/packages/meta/meta-gpe-extras.bb
index 0adb7c4e05..b4425a682e 100644
--- a/packages/meta/meta-gpe-extras.bb
+++ b/packages/meta/meta-gpe-extras.bb
@@ -2,15 +2,10 @@ DESCRIPTION = "Meta-package of extra applications for the GPE Palmtop Environmen
LICENSE = "MIT"
PR="r2"
-ALLOW_EMPTY = "1"
-BUILD_ALL_DEPS = "1"
-
-DEPENDS = "task-gpe"
-
RDEPENDS = "\
gpe-task-apps-extra \
gpe-task-games \
gpe-task-web \
gpe-task-desktopapps"
-
+inherit meta
diff --git a/packages/meta/meta-gpe.bb b/packages/meta/meta-gpe.bb
index 2360db447f..d6e199f6d6 100644
--- a/packages/meta/meta-gpe.bb
+++ b/packages/meta/meta-gpe.bb
@@ -2,11 +2,6 @@ DESCRIPTION = "Meta-package for GPE Palmtop Environment"
LICENSE = "MIT"
PR = "r42"
-ALLOW_EMPTY = "1"
-BUILD_ALL_DEPS = "1"
-
-DEPENDS = "task-gpe"
-
RDEPENDS = "\
gpe-base-depends \
gpe-task-base \
@@ -15,3 +10,5 @@ RDEPENDS = "\
gpe-task-apps \
gpe-task-games \
gpe-task-connectivity"
+
+inherit meta
diff --git a/packages/meta/meta-gpephone.bb b/packages/meta/meta-gpephone.bb
index 96e393bf47..a0bd51e5fc 100644
--- a/packages/meta/meta-gpephone.bb
+++ b/packages/meta/meta-gpephone.bb
@@ -2,14 +2,11 @@ DESCRIPTION = "Meta-package for GPE Palmtop Environment Phone packages"
LICENSE = "MIT"
PR = "r0"
-ALLOW_EMPTY = "1"
-BUILD_ALL_DEPS = "1"
-
-DEPENDS = "task-gpe"
-
RDEPENDS = "\
gpe-base-depends \
gpephone-task-base \
gpephone-task-settings \
gpephone-task-pim \
gpeph-task-connectivity"
+
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-opie-all.bb b/packages/meta/meta-opie-all.bb
index 6f315d3306..ccdbbe973d 100644
--- a/packages/meta/meta-opie-all.bb
+++ b/packages/meta/meta-opie-all.bb
@@ -1,14 +1,16 @@
DESCRIPTION = "Meta-package for QPE stuff"
SECTION = "opie/base"
-ALLOW_EMPTY = "1"
-PACKAGE_ARCH = "all"
LICENSE = "MIT"
-DEPENDS = "task-qpe"
PR = "r3"
-BUILD_ALL_DEPS = "1"
-
-RDEPENDS = "task-qpe-applets task-qpe-games task-qpe-inputmethods \
- task-qpe-multimedia task-qpe-emulators task-qpe-applications \
- task-qpe-fonts task-qpe-settings"
+RDEPENDS = " \
+ task-qpe-applets \
+ task-qpe-games \
+ task-qpe-inputmethods \
+ task-qpe-multimedia \
+ task-qpe-emulators \
+ task-qpe-applications \
+ task-qpe-fonts \
+ task-qpe-settings"
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-opie.bb b/packages/meta/meta-opie.bb
index 1158d859a0..6a9c35c5e3 100644
--- a/packages/meta/meta-opie.bb
+++ b/packages/meta/meta-opie.bb
@@ -1,12 +1,8 @@
DESCRIPTION = "Meta-package for Opie"
SECTION = "opie/base"
-ALLOW_EMPTY = "1"
PR = "r34"
-PACKAGE_ARCH = "all"
LICENSE = "MIT"
-BUILD_ALL_DEPS = "1"
-DEPENDS = "task-opie"
RDEPENDS = "task-opie-applets task-opie-apps task-opie-base \
task-opie-base-applets task-opie-base-apps \
task-opie-base-decorations task-opie-base-inputmethods \
@@ -19,3 +15,4 @@ RDEPENDS = "task-opie-applets task-opie-apps task-opie-base \
task-opie-multimedia task-opie-pim task-opie-settings \
task-opie-styles task-opie-todayplugins task-opie-wlan"
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-sdk-sbox.bb b/packages/meta/meta-sdk-sbox.bb
index 0642d49e0e..98fb6053c0 100644
--- a/packages/meta/meta-sdk-sbox.bb
+++ b/packages/meta/meta-sdk-sbox.bb
@@ -1,10 +1,9 @@
DESCRIPTION = "Meta package for a Scratchbox SDK"
LICENSE = "MIT"
-PR = "r2"
-
PACKAGES = ""
+PR = "r4"
-inherit rootfs_ipk sdk debian
+inherit rootfs_ipk sdk meta
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -16,6 +15,7 @@ FILES_${PN} = "${prefix}"
TARGET_INSTALL = "\
task-sdk-base \
+ task-sdk-sbox \
task-sdk-x11 \
task-sdk-x11-ext \
task-sdk-gpe \
@@ -23,7 +23,6 @@ TARGET_INSTALL = "\
DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native"
RDEPENDS = "${TARGET_INSTALL}"
-BUILD_ALL_DEPS = "1"
IPKG_TARGET = "ipkg-cl -f ${SDK_DIR}/ipkg-target.conf -o ${SDK_OUTPUT}/${prefix}"
@@ -77,8 +76,12 @@ EOF
# remove unwanted executables
rm -rf ${SDK_OUTPUT}/${prefix}/sbin ${SDK_OUTPUT}/${prefix}/etc
- # remove broken .la files
- #rm ${SDK_OUTPUT}/${prefix}/lib/*.la
+ # fixup libtool files
+ cd ${SDK_OUTPUT}/${prefix}/lib/
+ for f in *.la ; do
+ sed -i 's%${STAGING_DIR}${TARGET_SYS}%/usr/%g' "$f"
+ done
+
# fix pkgconfig data files
cd ${SDK_OUTPUT}/${prefix}/usr/lib/pkgconfig
@@ -92,4 +95,5 @@ EOF
}
do_populate_sdk[nostamp] = "1"
+do_populate_sdk[recrdeptask] = "do_package_write"
addtask populate_sdk before do_build after do_install
diff --git a/packages/meta/meta-sdk.bb b/packages/meta/meta-sdk.bb
index 7bf8606418..e49858398f 100644
--- a/packages/meta/meta-sdk.bb
+++ b/packages/meta/meta-sdk.bb
@@ -3,9 +3,7 @@ LICENSE = "MIT"
DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native"
PR = "r11"
-PACKAGES = ""
-
-inherit sdk
+inherit sdk meta
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -18,6 +16,7 @@ HOST_INSTALL = "\
binutils-cross-sdk \
gcc-cross-sdk \
gdb-cross"
+
TARGET_INSTALL = "\
task-sdk-base \
task-sdk-opie \
@@ -26,7 +25,6 @@ TARGET_INSTALL = "\
task-sdk-gpe"
RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}"
-BUILD_ALL_DEPS = "1"
do_populate_sdk() {
touch ${DEPLOY_DIR_IPK}/Packages
@@ -99,4 +97,5 @@ EOF
}
do_populate_sdk[nostamp] = "1"
+do_populate_sdk[recrdeptask] = "do_package_write"
addtask populate_sdk before do_build after do_install
diff --git a/packages/meta/meta-sdl.bb b/packages/meta/meta-sdl.bb
index cb19cb6834..a1ab3918b7 100644
--- a/packages/meta/meta-sdl.bb
+++ b/packages/meta/meta-sdl.bb
@@ -1,15 +1,7 @@
DESCRIPTION = "Meta-package for SDL"
LICENSE = "MIT"
-RDEPENDS = "task-sdl-libs task-sdl-games task-sdl-emulators"
PR = "r2"
-ALLOW_EMPTY = "1"
-BUILD_ALL_DEPS = "1"
-
-# no need to add libsdl as all libsdl-* already rdepend on it
-RDEPENDS_task-sdl-libs = "libsdl-gfx libsdl-image libsdl-mixer libsdl-ttf libsdl-net"
-
-RDEPENDS_task-sdl-games = "abuse freedroid lbreakout2 openttd prboom quake1 rott supertux xmame"
-
-RDEPENDS_task-sdl-emulators = "dgen-sdl e-uae frodo snes9x"
+RDEPENDS = "task-sdl-libs task-sdl-games task-sdl-emulators"
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-sectest-gpe.bb b/packages/meta/meta-sectest-gpe.bb
index 70bcfc4bc5..a73559ab1a 100644
--- a/packages/meta/meta-sectest-gpe.bb
+++ b/packages/meta/meta-sectest-gpe.bb
@@ -2,11 +2,6 @@ DESCRIPTION = "Meta-package for GPE Security Testing Image"
LICENSE = "MIT"
PR = "r6"
-ALLOW_EMPTY = "1"
-BUILD_ALL_DEPS = "1"
-
-DEPENDS = "task-gpe"
-
RDEPENDS = "\
gpe-task-base \
gpe-base-depends \
@@ -14,3 +9,5 @@ RDEPENDS = "\
gpe-task-settings \
gpe-task-pim \
gpe-task-sectest"
+
+inherit meta \ No newline at end of file
diff --git a/packages/meta/meta-toolchain.bb b/packages/meta/meta-toolchain.bb
index 7995ac3cb8..35dbe9f4cb 100644
--- a/packages/meta/meta-toolchain.bb
+++ b/packages/meta/meta-toolchain.bb
@@ -3,9 +3,7 @@ LICENSE = "MIT"
DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native"
PR = "r0"
-PACKAGES = ""
-
-inherit sdk
+inherit sdk meta
SDK_DIR = "${WORKDIR}/sdk"
SDK_OUTPUT = "${SDK_DIR}/image"
@@ -23,7 +21,6 @@ TARGET_INSTALL = "\
"
RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}"
-BUILD_ALL_DEPS = "1"
do_populate_sdk() {
touch ${DEPLOY_DIR_IPK}/Packages
@@ -96,4 +93,5 @@ EOF
}
do_populate_sdk[nostamp] = "1"
+do_populate_sdk[recrdeptask] = "do_package_write"
addtask populate_sdk before do_build after do_install
diff --git a/packages/meta/slugos-packages.bb b/packages/meta/slugos-packages.bb
index 287a8166af..917df6876c 100644
--- a/packages/meta/slugos-packages.bb
+++ b/packages/meta/slugos-packages.bb
@@ -5,7 +5,7 @@
DESCRIPTION = "Packages that are compatible with the SlugOS firmware"
HOMEPAGE = "http://www.nslu2-linux.org"
LICENSE = "MIT"
-PR = "r30"
+PR = "r32"
CONFLICTS = "db3"
COMPATIBLE_MACHINE = "nslu2"
@@ -104,7 +104,6 @@ SLUGOS_PACKAGES = "\
lsof \
lvm2 \
m4 \
- madfu \
madplay \
madwifi-ng \
mailx \
@@ -163,7 +162,6 @@ SLUGOS_PACKAGES = "\
streamripper \
sysfsutils \
tar \
- task-native-sdk \
task-mokogateway-everything \
thttpd \
tiff \
@@ -195,6 +193,7 @@ SLUGOS_BROKEN_PACKAGES = "\
irssi \
libgphoto2 \
logrotate \
+ madfu \
mediatomb \
mpd \
netpbm \
@@ -206,6 +205,7 @@ SLUGOS_BROKEN_PACKAGES = "\
unionfs-utils \
lirc \
pwc \
+ task-native-sdk \
zd1211 \
mysql \
wview-sim-mysql wview-vpro-mysql \
diff --git a/packages/meta/xbase-clients.bb b/packages/meta/xbase-clients.bb
index 4297440074..5f3c640f00 100644
--- a/packages/meta/xbase-clients.bb
+++ b/packages/meta/xbase-clients.bb
@@ -1,4 +1,5 @@
DESCRIPTION = "Basic X clients (meta package)"
+LICENSE = "MIT"
PR = "r1"
ALLOW_EMPTY = "1"
@@ -9,4 +10,4 @@ RDEPENDS = 'xauth \
xmodmap \
xrdb \
xset'
-LICENSE = "MIT"
+
diff --git a/packages/openmoko-base/openmoko-common_svn.bb b/packages/openmoko-base/openmoko-common_svn.bb
index 15cc97d39f..e72d325bb9 100644
--- a/packages/openmoko-base/openmoko-common_svn.bb
+++ b/packages/openmoko-base/openmoko-common_svn.bb
@@ -5,7 +5,7 @@ PR = "r1"
inherit openmoko-base
-SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=images;proto=https"
+SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=images;proto=http"
S = "${WORKDIR}"
dirs = "images/pixmaps"
diff --git a/packages/perl/perl-5.8.4/.mtn2git_empty b/packages/perl/perl-5.8.4/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/perl/perl-5.8.4/.mtn2git_empty
diff --git a/packages/perl/files/Makefile.SH.patch b/packages/perl/perl-5.8.4/Makefile.SH.patch
index 35a4e6dfde..35a4e6dfde 100644
--- a/packages/perl/files/Makefile.SH.patch
+++ b/packages/perl/perl-5.8.4/Makefile.SH.patch
diff --git a/packages/perl/files/Makefile.patch b/packages/perl/perl-5.8.4/Makefile.patch
index eec127643b..eec127643b 100644
--- a/packages/perl/files/Makefile.patch
+++ b/packages/perl/perl-5.8.4/Makefile.patch
diff --git a/packages/perl/files/config.sh-arm-linux.patch b/packages/perl/perl-5.8.4/config.sh-arm-linux.patch
index 44d8b1a89d..44d8b1a89d 100644
--- a/packages/perl/files/config.sh-arm-linux.patch
+++ b/packages/perl/perl-5.8.4/config.sh-arm-linux.patch
diff --git a/packages/perl/files/config.sh-i686-linux b/packages/perl/perl-5.8.4/config.sh-i686-linux
index 0978100abc..0978100abc 100644
--- a/packages/perl/files/config.sh-i686-linux
+++ b/packages/perl/perl-5.8.4/config.sh-i686-linux
diff --git a/packages/perl/files/config.sh-mipsel-linux b/packages/perl/perl-5.8.4/config.sh-mipsel-linux
index eedf443f04..eedf443f04 100644
--- a/packages/perl/files/config.sh-mipsel-linux
+++ b/packages/perl/perl-5.8.4/config.sh-mipsel-linux
diff --git a/packages/perl/files/uclibc.patch b/packages/perl/perl-5.8.4/uclibc.patch
index ce8fe80ff2..ce8fe80ff2 100644
--- a/packages/perl/files/uclibc.patch
+++ b/packages/perl/perl-5.8.4/uclibc.patch
diff --git a/packages/perl/perl.inc b/packages/perl/perl.inc
index 64e548a121..cda260efcd 100644
--- a/packages/perl/perl.inc
+++ b/packages/perl/perl.inc
@@ -9,35 +9,10 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \
file://Makefile.patch;patch=1 \
file://config.sh-arm-linux.patch;patch=1 \
file://libperl-5.8.3-create-libperl-soname.patch;patch=1;pnum=0 \
- file://uclibc.patch;patch=1 \
- file://Makefile.SH.patch \
- file://config.sh-mipsel-linux \
- file://config.sh-i686-linux"
+ file://Makefile.SH.patch"
HOSTPERL="${STAGING_BINDIR_NATIVE}/perl${PV}"
-do_configure() {
- ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl
- cp ${HOSTPERL} hostperl
- cd Cross
- rm -f Makefile.SH.patch
- cp ${WORKDIR}/Makefile.SH.patch .
- cp ${WORKDIR}/config.sh-mipsel-linux .
- cp ${WORKDIR}/config.sh-i686-linux .
- cat config.sh-arm-linux | sed -e "s,arm-linux,armeb-linux,g" > config.sh-armeb-linux
- for i in config.sh-*-linux; do
- a="`echo $i|sed -e 's,^config.sh-,,; s,-linux$,,'`"
- newfile="`echo $i|sed -e 's,-linux$,-linux-uclibc,g'`"
- cat $i | sed -e "s,${a}-linux,${a}-linux-uclibc,g; \
- s,d_sockatmark='define',d_sockatmark='undef',g;" > $newfile
- done
- sed -i -e 's,./install_me_here,${D},g' config.sh-${TARGET_ARCH}-${TARGET_OS}
- rm -f config
- echo "ARCH = ${TARGET_ARCH}" > config
- echo "OS = ${TARGET_OS}" >> config
- oe_runmake patch
-}
-
do_compile() {
sed -i -e 's|/usr/include|${STAGING_INCDIR}|g' ext/Errno/Errno_pm.PL
cd Cross
diff --git a/packages/perl/perl_5.8.4.bb b/packages/perl/perl_5.8.4.bb
index 7509f1b66b..10a871c8dd 100644
--- a/packages/perl/perl_5.8.4.bb
+++ b/packages/perl/perl_5.8.4.bb
@@ -1,3 +1,29 @@
require perl.inc
PR = "r5"
+
+SRC_URI += "file://uclibc.patch;patch=1 \
+ file://config.sh-mipsel-linux \
+ file://config.sh-i686-linux"
+
+do_configure() {
+ ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl
+ cp ${HOSTPERL} hostperl
+ cd Cross
+ rm -f Makefile.SH.patch
+ cp ${WORKDIR}/Makefile.SH.patch .
+ cp ${WORKDIR}/config.sh-mipsel-linux .
+ cp ${WORKDIR}/config.sh-i686-linux .
+ cat config.sh-arm-linux | sed -e "s,arm-linux,armeb-linux,g" > config.sh-armeb-linux
+ for i in config.sh-*-linux; do
+ a="`echo $i|sed -e 's,^config.sh-,,; s,-linux$,,'`"
+ newfile="`echo $i|sed -e 's,-linux$,-linux-uclibc,g'`"
+ cat $i | sed -e "s,${a}-linux,${a}-linux-uclibc,g; \
+ s,d_sockatmark='define',d_sockatmark='undef',g;" > $newfile
+ done
+ sed -i -e 's,./install_me_here,${D},g' config.sh-${TARGET_ARCH}-${TARGET_OS}
+ rm -f config
+ echo "ARCH = ${TARGET_ARCH}" > config
+ echo "OS = ${TARGET_OS}" >> config
+ oe_runmake patch
+}
diff --git a/packages/perl/perl_5.8.7.bb b/packages/perl/perl_5.8.7.bb
index 12aec88a02..874c95a79c 100644
--- a/packages/perl/perl_5.8.7.bb
+++ b/packages/perl/perl_5.8.7.bb
@@ -7,6 +7,7 @@ require perl.inc
SRC_URI += "file://config.sh-armeb-linux \
file://config.sh-arm-linux \
file://config.sh-powerpc-linux \
+ file://config.sh-mipsel-linux \
file://config.sh-i386-linux \
file://config.sh-i486-linux \
file://config.sh-i586-linux \
@@ -15,14 +16,13 @@ SRC_URI += "file://config.sh-armeb-linux \
file://config.sh-sh3-linux \
file://config.sh-sh4-linux"
-# Patches for sh3/sh4, use gcc to link and override generaet.sh to
-# use PIC mode for compiling shared library objects.
-SRC_URI_append_sh4 += "file://override-generate-sh.patch;patch=1"
-SRC_URI_append_sh4 += "file://makefile-usegcc-to-link.patch;patch=1"
-SRC_URI_append_sh3 += "file://override-generate-sh.patch;patch=1"
-SRC_URI_append_sh3 += "file://makefile-usegcc-to-link.patch;patch=1"
-SRC_URI_append_powerpc += "file://override-generate-sh.patch;patch=1"
-SRC_URI_append_powerpc += "file://makefile-usegcc-to-link.patch;patch=1"
+# Use gcc to link and use PIC mode for compiling shared libs
+GCCLINK_SRC = "file://override-generate-sh.patch;patch=1 \
+ file://makefile-usegcc-to-link.patch;patch=1"
+
+SRC_URI_append_sh4 += " ${GCCLINK_SRC}"
+SRC_URI_append_sh3 += " ${GCCLINK_SRC}"
+SRC_URI_append_powerpc += " ${GCCLINK_SRC}"
PARALLEL_MAKE = ""
diff --git a/packages/sysvinit/sysvinit/htcuniversal/inittab b/packages/sysvinit/sysvinit/htcuniversal/inittab
deleted file mode 100644
index 6abbdf4558..0000000000
--- a/packages/sysvinit/sysvinit/htcuniversal/inittab
+++ /dev/null
@@ -1,30 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:5:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb
index ea76027335..8df6fa0450 100644
--- a/packages/tasks/task-base.bb
+++ b/packages/tasks/task-base.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Merge machine and distro options to create a basic machine task/package"
-PR = "r21"
+PR = "r22"
PACKAGES = "task-base \
task-base-oh-minimal \
@@ -227,6 +227,8 @@ task-base-irda-rrecommends = "\
${@base_contains("DISTRO_FEATURES", "ppp", "kernel-module-irnet", "",d)} \
kernel-module-irport \
kernel-module-irtty \
+ kernel-module-irtty-sir \
+ kernel-module-sir-dev \
${@base_contains("COMBINED_FEATURES", "usbhost", "kernel-module-ir-usb", "",d)} "
task-base-usbgadget-rrecommends = "\
diff --git a/packages/tasks/task-gpephone.bb b/packages/tasks/task-gpephone.bb
index e03886f0fd..a480a03b86 100644
--- a/packages/tasks/task-gpephone.bb
+++ b/packages/tasks/task-gpephone.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Task packages for GPE Palmtop Environment Phone Edition"
-PR = "r3"
+PR = "r4"
LICENSE = "MIT"
ALLOW_EMPTY = "1"
@@ -67,7 +67,9 @@ RDEPENDS_gpephone-task-base := "\
pango-module-basic-x \
pango-module-basic-fc \
detect-stylus \
- libgtkinput \
+ ptim-manager \
+ ptim-helper \
+ ptim-engine \
${@base_contains("MACHINE_FEATURES", "touchscreen", "libgtkstylus xtscal", "",d)} \
"
diff --git a/packages/tasks/task-sdk-sbox.bb b/packages/tasks/task-sdk-sbox.bb
new file mode 100644
index 0000000000..67d5ed47f4
--- /dev/null
+++ b/packages/tasks/task-sdk-sbox.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "SDK task for Scratchbox rootstraps"
+PR = "r4"
+LICENSE = "MIT"
+ALLOW_EMPTY = "1"
+
+RDEPENDS := "\
+ glib-2.0-utils \
+ gdk-pixbuf-loader-png \
+ gdk-pixbuf-loader-jpeg \
+ gdk-pixbuf-loader-gif \
+ gdk-pixbuf-loader-xpm \
+ intltool \
+ intltool-dev \
+ strace \
+ gdb \
+ sbrsh \
+ fakeroot \
+ matchbox-wm \
+ dbus \
+ joe \
+ ipkg \
+ " \ No newline at end of file
diff --git a/packages/uboot/uboot-gta01_svn.bb b/packages/uboot/uboot-gta01_svn.bb
index 0775bfcc91..b30a5bc66e 100644
--- a/packages/uboot/uboot-gta01_svn.bb
+++ b/packages/uboot/uboot-gta01_svn.bb
@@ -10,7 +10,7 @@ PROVIDES = "virtual/bootloader"
S = "${WORKDIR}/git"
SRC_URI = "git://www.denx.de/git/u-boot.git/;protocol=git \
- svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=https \
+ svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http \
file://fix-arm920t-eabi.patch;patch=1"
EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}"
diff --git a/packages/xserver-common/xserver-common_1.16.bb b/packages/xserver-common/xserver-common_1.16.bb
new file mode 100644
index 0000000000..48320ba006
--- /dev/null
+++ b/packages/xserver-common/xserver-common_1.16.bb
@@ -0,0 +1,18 @@
+DESCRIPTION = "Common X11 scripts and support files"
+LICENSE = "GPL"
+SECTION = "x11"
+RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo"
+PR = "r2"
+
+PACKAGE_ARCH = "all"
+
+# we are using a gpe-style Makefile
+inherit gpe
+
+SRC_URI_append = " file://setDPI.sh \
+ file://xserver-imageon.patch;patch=1 \
+ file://calibrate-only-if-ts.patch;patch=1"
+
+do_install_append() {
+ install -m 0755 "${WORKDIR}/setDPI.sh" "${D}/etc/X11/Xinit.d/50setdpi"
+}