diff options
author | Rolf Leggewie <oe-devel@rolf.leggewie.biz> | 2007-06-29 23:21:52 +0000 |
---|---|---|
committer | Rolf Leggewie <oe-devel@rolf.leggewie.biz> | 2007-06-29 23:21:52 +0000 |
commit | 93d19714f8efa8413b63070f1c8a1e0ee5266131 (patch) | |
tree | 6c954f87ddb0d396882b78dff7d7e5d8bc59efd3 /packages | |
parent | 4674b880ed6fad924653543ee16d6c55ec31c402 (diff) | |
parent | eb71ae6bd2cecdcd19127066387676a56331b32d (diff) |
merge of '57fa0ccbbdbca8c188108e3c4fbde4702976f3c6'
and 'b29b99ceeb63af04c2736ab8176705046dc326c0'
Diffstat (limited to 'packages')
466 files changed, 36701 insertions, 42712 deletions
diff --git a/packages/e17/e17-gpe-menu-convert/.mtn2git_empty b/packages/agg/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/e17/e17-gpe-menu-convert/.mtn2git_empty +++ b/packages/agg/.mtn2git_empty diff --git a/packages/agg/agg_2.5.bb b/packages/agg/agg_2.5.bb new file mode 100644 index 0000000000..84bbb4d4bb --- /dev/null +++ b/packages/agg/agg_2.5.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Anti Grain Geometry - A High Quality Rendering Engine for C++" +AUTHOR = "mcseem@antigrain.com" +HOMEPAGE = "http://www.antigrain.com" +SECTION = "libs" +LICENSE = "AGG License" +DEPENDS = "virtual/libx11 virtual/libsdl freetype" + +PR = "r0" + +SRC_URI = "http://www.antigrain.com/${P}.tar.gz" + +S = "${WORKDIR}/${P}" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--with-sdl-exec-prefix=${STAGING_DIR}/${BUILD_SYS}" +CFLAGS += " -I{$STAGING_INCDIR} " + +PACKAGES =+ "${PN}-sdl ${PN}-x11" + +FILES_${PN}-sdl = "${libdir}/libaggplatformsdl.so.*" +FILES_${PN}-x11 += "${libdir}/libaggplatformX11.so.*" +FILES_${PN} = "${libdir}/libagg.so.* \ + ${libdir}/libaggfontfreetype.so.*" + +LEAD_SONAME = "libagg.so" + +do_stage() { + install -m 0644 libagg.m4 ${STAGING_DATADIR}/aclocal/ + install -d ${STAGING_INCDIR}/agg2 + cd include + headers=`find . -name "*.h"` + for f in $headers + do + install -m 0644 $f ${STAGING_INCDIR}/agg2/ + done +} + + + diff --git a/packages/aircrack/aircrack-ng_0.7.bb b/packages/aircrack/aircrack-ng_0.7.bb deleted file mode 100644 index bf5bd27d9d..0000000000 --- a/packages/aircrack/aircrack-ng_0.7.bb +++ /dev/null @@ -1,25 +0,0 @@ -SECTION = "console/network" -DESCRIPTION = "Aircrack-ng is a set of tools for wep key statistical cracking" -HOMEPAGE = "http://www.aircrack-ng.org/" -LICENSE = "GPLv2" -PR = "r2" - -SRC_URI = "http://download.aircrack-ng.org/aircrack-ng-${PV}.tar.gz" - -oe_compile() { - oe_runmake CC="${CC}" CXX="${CXX}" CFLAGS="-O3 ${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" -} - -do_install() { - install -d ${D}/${sbindir} - install -d ${D}/${bindir} - install -m 0755 airodump-ng ${D}/${sbindir} - install -m 0755 aircrack-ng ${D}/${bindir} - install -m 0755 aireplay-ng ${D}/${sbindir} - install -m 0755 airdecap-ng ${D}/${bindir} - install -m 0755 packetforge-ng ${D}/${bindir} - install -m 0755 airmon-ng ${D}/${sbindir} - install -m 0755 ivstools ${D}/${bindir} - install -m 0755 kstats ${D}/${bindir} - install -m 0755 airtun-ng ${D}/${bindir} -} diff --git a/packages/aircrack/aircrack-ng_0.9.bb b/packages/aircrack/aircrack-ng_0.9.1.bb index d19e2e2065..116ee599e3 100644 --- a/packages/aircrack/aircrack-ng_0.9.bb +++ b/packages/aircrack/aircrack-ng_0.9.1.bb @@ -1,15 +1,11 @@ -SECTION = "console/network" DESCRIPTION = "Aircrack-ng is a set of tools for wep key statistical cracking" HOMEPAGE = "http://www.aircrack-ng.org/" +SECTION = "console/network" LICENSE = "GPLv2" PR = "r2" SRC_URI = "http://download.aircrack-ng.org/aircrack-ng-${PV}.tar.gz" -oe_compile() { - oe_runmake CC="${CC}" CXX="${CXX}" CFLAGS="-O3 ${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LD="${LD}" LDFLAGS="${LDFLAGS}" -} - do_install() { install -d ${D}/${sbindir} install -d ${D}/${bindir} diff --git a/packages/aircrack/aircrack-ng_1.0-svn.bb b/packages/aircrack/aircrack-ng_1.0-svn.bb new file mode 100644 index 0000000000..a09957bb45 --- /dev/null +++ b/packages/aircrack/aircrack-ng_1.0-svn.bb @@ -0,0 +1,33 @@ +DESCRIPTION = "Aircrack-ng is a set of tools for wep key statistical cracking" +HOMEPAGE = "http://www.aircrack-ng.org/" +SECTION = "console/network" +LICENSE = "GPLv2" +DEPENDS = "openssl" +PV = "0.9.99+svn${SRCDATE}" +PR = "r0" +SRC_URI = "svn://trac.aircrack-ng.org/svn/branch;module=1.0-dev;proto=http \ + file://makefile-ldflags.patch;patch=1;maxdate=20070629 " + +S="${WORKDIR}/1.0-dev" + +DEFAULT_PREFERENCE = "-1" + +export TOOL_PREFIX = "${HOST_SYS}-" + +do_install() { + install -d ${D}/${sbindir} + install -d ${D}/${bindir} + install -m 0755 src/airodump-ng ${D}/${sbindir} + install -m 0755 src/aircrack-ng ${D}/${bindir} + install -m 0755 src/aireplay-ng ${D}/${sbindir} + install -m 0755 src/airserv-ng ${D}/${sbindir} + install -m 0755 src/wesside-ng ${D}/${sbindir} + install -m 0755 src/airdecap-ng ${D}/${bindir} + install -m 0755 src/packetforge-ng ${D}/${bindir} + install -m 0755 airmon-ng ${D}/${sbindir} + install -m 0755 src/ivstools ${D}/${bindir} + install -m 0755 src/kstats ${D}/${bindir} + install -m 0755 src/airtun-ng ${D}/${sbindir} + install -m 0755 test/makeivs ${D}/${bindir} +} + diff --git a/packages/aircrack/files/makefile-ldflags.patch b/packages/aircrack/files/makefile-ldflags.patch new file mode 100644 index 0000000000..da2a0afaf1 --- /dev/null +++ b/packages/aircrack/files/makefile-ldflags.patch @@ -0,0 +1,13 @@ +Index: 1.0-dev/src/Makefile +=================================================================== +--- 1.0-dev.orig/src/Makefile 2007-06-29 21:16:15.000000000 +0100 ++++ 1.0-dev/src/Makefile 2007-06-29 21:16:32.000000000 +0100 +@@ -36,7 +36,7 @@ + endif + LIBOSD = $(OSD)/lib$(OSD).a + +-LIBSSL = -lssl -lcrypto ++LIBSSL = -lssl -lcrypto $(LDFLAGS) + + all: osd userland $(SBINFILES) + diff --git a/packages/alsa/alsa-state.bb b/packages/alsa/alsa-state.bb index e4d23285f3..77ca92407b 100644 --- a/packages/alsa/alsa-state.bb +++ b/packages/alsa/alsa-state.bb @@ -10,7 +10,7 @@ DESCRIPTION = "Default ALSA configuration" LICENSE = "GPL" -PV = "0.0.3" +PV = "0.0.4" PR = "r0" SRC_URI = "file://asound.state \ diff --git a/packages/alsa/alsa-state/c7x0/asound.state b/packages/alsa/alsa-state/c7x0/asound.state index 1f5b41065e..7fd648fcf6 100644 --- a/packages/alsa/alsa-state/c7x0/asound.state +++ b/packages/alsa/alsa-state/c7x0/asound.state @@ -122,7 +122,7 @@ state.Corgi { comment.count 1 iface MIXER name 'Output Mixer HiFi Playback Swit' - value true + value false } control.15 { comment.access 'read write' diff --git a/packages/altboot/altboot_1.1.1+wip-SVNR59.bb b/packages/altboot/altboot_1.1.1+wip-SVNR66.bb index 4af0a7c630..912082c70f 100644 --- a/packages/altboot/altboot_1.1.1+wip-SVNR59.bb +++ b/packages/altboot/altboot_1.1.1+wip-SVNR66.bb @@ -1,8 +1,8 @@ require altboot.inc -PR = "r9" +PR = "r0" -SVN_REV = "59" +SVN_REV = "66" SRC_URI = "svn://hentges.net/public/altboot;module=trunk;rev=${SVN_REV}" do_install() { diff --git a/packages/angstrom/angstrom-gateway-image.bb b/packages/angstrom/angstrom-gateway-image.bb new file mode 100644 index 0000000000..aeca221d3d --- /dev/null +++ b/packages/angstrom/angstrom-gateway-image.bb @@ -0,0 +1,23 @@ +#Angstrom gateway image +#gives you a gateway with SMB, ssh and dnsmasqs +LICENSE = "MIT" +PR = "r0" + +ANGSTROM_EXTRA_INSTALL ?= "" +DISTRO_SSH_DAEMON ?= "dropbear" + +RDEPENDS = "task-boot \ + ${DISTRO_SSH_DAEMON} \ + iptables \ + samba swat \ + dnsmasq \ +# vsftpd \ + angstrom-version \ + " + +export IMAGE_BASENAME = "gateway-image" +export IMAGE_LINGUAS = "" +export PACKAGE_INSTALL = "${RDEPENDS}" + +inherit image + diff --git a/packages/apex/apex_1.5.6.bb b/packages/apex/apex_1.5.8.bb index ccf08ca9a0..ccf08ca9a0 100644 --- a/packages/apex/apex_1.5.6.bb +++ b/packages/apex/apex_1.5.8.bb diff --git a/packages/apex/nslu2/defconfig b/packages/apex/nslu2/defconfig index cc92ce16dd..9bdbef2f6b 100644 --- a/packages/apex/nslu2/defconfig +++ b/packages/apex/nslu2/defconfig @@ -19,6 +19,7 @@ CONFIG_EXPERIMENTAL=y # CONFIG_TARGET_DESCRIPTION="SlugOS NSLU2 (bigendian)" CONFIG_CROSS_COMPILE="" +CONFIG_AEABI=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y # CONFIG_CC_OPTIMIZE_FOR_SPEED is not set # CONFIG_CC_NO_OPTIMIZATION is not set @@ -133,6 +134,7 @@ CONFIG_AUTOBOOT=y CONFIG_AUTOBOOT_DELAY=10 CONFIG_ENV_STARTUP_KERNEL_COPY=y # CONFIG_ENV_REGION_KERNEL_SWAP is not set +# CONFIG_ENV_STARTUP_PREFIX_P is not set # # Regions @@ -147,6 +149,8 @@ CONFIG_ENV_DEFAULT_CMDLINE="root=/dev/mtdblock4 rootfstype=jffs2 console=ttyS0,1 # CONFIG_ENV_DEFAULT_STARTUP_OVERRIDE is not set CONFIG_USES_NOR_BOOTFLASH=y CONFIG_RELOCATE_SIMPLE=y +CONFIG_INLINE_PLATFORM_INITIALIZATION=y +CONFIG_INLINE_PLATFORM_INITIALIZATION_SDRAM_PRE_OVERRIDE=y # CONFIG_BIGENDIAN is not set # CONFIG_LITTLEENDIAN is not set CONFIG_CLEAR_STACKS=y diff --git a/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb b/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb index 4bdf7a86e3..0788f81609 100644 --- a/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb +++ b/packages/arm-kernel-shim/arm-kernel-shim_1.5.bb @@ -3,7 +3,7 @@ SECTION = "" PRIORITY = "optional" HOMEPAGE = "http://wiki.buici.com/twiki/bin/view/Main/ApexBootloader" LICENSE = "GPL" -# PR = "r1" +PR = "r1" COMPATIBLE_MACHINE = "(ixp4xx|nslu2)" diff --git a/packages/arm-kernel-shim/files/config-dsmg600.h b/packages/arm-kernel-shim/files/config-dsmg600.h index eda1e9c264..ebe53901b8 100644 --- a/packages/arm-kernel-shim/files/config-dsmg600.h +++ b/packages/arm-kernel-shim/files/config-dsmg600.h @@ -18,6 +18,8 @@ #define MACH_TYPE 964 +#define GUARANTEE_ATAG_CMDLINE + /* Uncomment one of these to switch the CPU into a specific mode. */ //#define FORCE_LITTLEENDIAN //#define FORCE_BIGENDIAN diff --git a/packages/e17/engage/.mtn2git_empty b/packages/asterisk/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/e17/engage/.mtn2git_empty +++ b/packages/asterisk/files/.mtn2git_empty diff --git a/packages/asterisk/files/init b/packages/asterisk/files/init new file mode 100644 index 0000000000..1ece638c22 --- /dev/null +++ b/packages/asterisk/files/init @@ -0,0 +1,77 @@ +#! /bin/sh +# +# This is an init script for openembedded +# Copy it to /etc/init.d/openpbx and type +# > update-rc.d asterisk14 defaults 60 +# +asterisk=/usr/sbin/asterisk +pidfile=/var/run/asterisk/asterisk.pid +asterisk_args="-npqT -U asterisk -G asterisk" + +test -x "$asterisk" || exit 0 + +case "$1" in + start) + echo -n "Starting Asterisk" + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + echo "." + ;; + stop) + echo -n "Stopping Asterisk" + $asterisk -rx "stop gracefully" + sleep 4 + if [ -f $pidfile ]; then + start-stop-daemon --stop --quiet --pidfile $pidfile + fi + echo "." + ;; + force-stop) + echo -n "Stopping Asterisk" + $asterisk -rx "stop now" + sleep 2 + if [ -f $pidfile ]; then + start-stop-daemon --stop --quiet --pidfile $pidfile + fi + echo "." + ;; + restart) + echo -n "Restarting Asterisk" + if [ -f $pidfile ]; then + $asterisk -rx "restart gracefully" + sleep 2 + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + force-restart) + echo -n "Forcibly Restarting Asterisk" + if [ -f $pidfile ]; then + $asterisk -rx "restart now" + sleep 2 + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + reload) + echo -n "Reloading Asterisk Configuration" + if [ -f $pidfile ]; then + $asterisk -rx "reload" + else + start-stop-daemon --start --quiet --exec $asterisk -- $asterisk_args + fi + echo "." + ;; + logger-reload) + if [ -f $pidfile ]; then + $asterisk -rx "logger reload" + fi + ;; + *) + echo "Usage: /etc/init.d/asterisk {start|stop|force-stop|restart|force-restart|reload|logger-reload}" + exit 1 +esac + +exit 0 + diff --git a/packages/avahi/avahi_0.6.20.bb b/packages/avahi/avahi_0.6.20.bb new file mode 100644 index 0000000000..59de20446c --- /dev/null +++ b/packages/avahi/avahi_0.6.20.bb @@ -0,0 +1,3 @@ +require avahi.inc + +PR = "r0" diff --git a/packages/bluez/bluez-gnome_0.9.bb b/packages/bluez/bluez-gnome_0.9.bb new file mode 100644 index 0000000000..d50e8e5fde --- /dev/null +++ b/packages/bluez/bluez-gnome_0.9.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "BLuetooth configuration applet" +LICENSE = "GPL+LGPL" + +DEPENDS = "dbus-glib gconf libnotify gtk+" + +SRC_URI = "http://bluez.sourceforge.net/download/${P}.tar.gz" + +inherit autotools pkgconfig gconf + +FILES_${PN} += "${datadir}/gconf" + diff --git a/packages/bluez/bluez-hcidump_1.37.bb b/packages/bluez/bluez-hcidump_1.37.bb new file mode 100644 index 0000000000..877c8db33c --- /dev/null +++ b/packages/bluez/bluez-hcidump_1.37.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Linux Bluetooth Stack HCI Debugger Tool." +SECTION = "console" +PRIORITY = "optional" +DEPENDS = "bluez-libs" +LICENSE = "GPL" +PR = "r0" + +SRC_URI = "http://bluez.sourceforge.net/download/bluez-hcidump-${PV}.tar.gz" +S = "${WORKDIR}/bluez-hcidump-${PV}" + +EXTRA_OECONF = "--with-bluez-libs=${STAGING_LIBDIR} --with-bluez-includes=${STAGING_INCDIR}" + +inherit autotools diff --git a/packages/bluez/bluez-libs_3.12.bb b/packages/bluez/bluez-libs_3.12.bb new file mode 100644 index 0000000000..6ddf62a4fb --- /dev/null +++ b/packages/bluez/bluez-libs_3.12.bb @@ -0,0 +1 @@ +require bluez-libs.inc diff --git a/packages/bluez/bluez-utils_3.11.bb b/packages/bluez/bluez-utils_3.11.bb index 6ac6c8f977..2419f431f6 100644 --- a/packages/bluez/bluez-utils_3.11.bb +++ b/packages/bluez/bluez-utils_3.11.bb @@ -2,7 +2,7 @@ require bluez-utils.inc DEPENDS += "glib-2.0" -DEFAULT_PREFERENCE = "-1" +#DEFAULT_PREFERENCE = "-1" SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \ file://hcid.conf \ diff --git a/packages/bluez/bluez-utils_3.12.bb b/packages/bluez/bluez-utils_3.12.bb new file mode 100644 index 0000000000..e543eed649 --- /dev/null +++ b/packages/bluez/bluez-utils_3.12.bb @@ -0,0 +1,114 @@ +require bluez-utils.inc + +DEPENDS += "glib-2.0" + +SRC_URI = "http://bluez.sourceforge.net/download/bluez-utils-${PV}.tar.gz \ + file://hcid.conf \ + file://02dtl1_cs.sh \ + " +PR = "r2" + +EXTRA_OECONF = " \ + --enable-bccmd \ + --enable-hid2hci \ + --disable-alsa \ + --enable-cups \ + --enable-glib \ + --disable-sdpd \ + --enable-network \ + --enable-serial \ + --enable-input \ + --enable-audio \ + --enable-echo \ + --enable-configfile \ + --enable-initscripts \ + --enable-test \ + " + +# The config options are explained below: + +# --enable-obex enable OBEX support +# --enable-alsa enable ALSA support, not needed for nokia770, nokia800 and fic-gtao1 +# --enable-cups install CUPS backend support +# --enable-bccmd install BCCMD interface utility +# --enable-avctrl install Audio/Video control utility +# --enable-hid2hci install HID mode switching utility +# --enable-dfutool install DFU firmware upgrade utility + +# --enable-glib For systems that use and install GLib anyway +# --disable-sdpd The sdpd is obsolete and should no longer be used. This of course requires that hcid will be started with -s to enable the SDP server + +#Following services can be enabled so far: +# --enable-network +# --enable-serial +# --enable-input +# --enable-audio +# --enable-echo + +#There is no need to modify any init script. They will be started +#automatically or on demand. Only /etc/bluetooth/*.service files should +#be patched to change name or the autostart value. +# --enable-configfile +# --enable-initscripts + +#For even smaller -doc packages +# --disable-manpages +# --disable-pcmciarules + +#I haven't seen any embedded device with HID proxy support. So simply +#disable it: +# --disable-hid2hci + + +PACKAGES =+ "${PN}-compat" + +CONFFILES_${PN} = " \ + ${sysconfdir}/bluetooth/hcid.conf \ + ${sysconfdir}/default/bluetooth \ + " + +CONFFILES_${PN}-compat = " \ + ${sysconfdir}/bluetooth/rfcomm.conf \ + " + +FILES_${PN} = " \ + ${base_sbindir}/hcid \ + ${libdir}/bluetooth \ + ${sysconfdir}/init.d/bluetooth \ + ${sysconfdir}/bluetooth/*.service \ + ${sysconfdir}/bluetooth/hcid.conf \ + ${sysconfdir}/default \ + ${sysconfdir}/dbus-1 \ + ${base_sbindir}/hciattach \ + " + +#Package 02dtl1_cs.sh, which is a nasty hack to get dtl1c_cs cards working with suspend/resume +FILES_${PN} += "${sysconfdir}/apm/" + +FILES_${PN}-dbg += " \ + ${libdir}/bluetooth/.debug \ + " + +FILES_${PN}-compat = " \ + ${base_bindir}/sdptool \ + ${base_bindir}/dund \ + ${base_bindir}/rctest \ + ${base_bindir}/ciptool \ + ${base_bindir}/l2test \ + ${base_bindir}/rfcomm \ + ${base_bindir}/hcitool \ + ${base_bindir}/pand \ + ${base_bindir}/hidd \ + ${base_bindir}/l2ping \ + ${base_sbindir}/hciconfig \ + ${base_sbindir}/bccmd \ + ${base_sbindir}/hciemu \ + ${base_sbindir}/hid2hci \ + ${base_bindir}/passkey-agent \ + ${sysconfdir}/bluetooth/rfcomm.conf \ + " + +FILES_bluez-cups-backend = "${libdir}/cups/backend/bluetooth" +RDEPENDS_bluez-cups-backend = "cups" + + diff --git a/packages/cairo/cairo_1.2.2.bb b/packages/cairo/cairo_1.2.2.bb deleted file mode 100644 index f6667eae1b..0000000000 --- a/packages/cairo/cairo_1.2.2.bb +++ /dev/null @@ -1,13 +0,0 @@ -SECTION = "libs" -PRIORITY = "optional" -DEPENDS = "virtual/libx11 libsm libpng fontconfig libxrender" -DESCRIPTION = "Cairo graphics library" -LICENSE = "MPL LGPL" - -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz" - -inherit autotools pkgconfig - -do_stage () { -autotools_stage_all -} diff --git a/packages/cairo/cairo_1.3.14.bb b/packages/cairo/cairo_1.3.14.bb deleted file mode 100644 index 6bc0cb37f7..0000000000 --- a/packages/cairo/cairo_1.3.14.bb +++ /dev/null @@ -1,10 +0,0 @@ -#This is a development snapshot, so lets hint OE to use the releases -DEFAULT_PREFERENCE = "-1" - -require cairo.inc - -SRC_URI = "http://cairographics.org/snapshots/cairo-${PV}.tar.gz \ - file://cairo-surface-cache-3.patch;patch=1" - -PR = "r0" - diff --git a/packages/cairo/cairo_1.3.4.bb b/packages/cairo/cairo_1.3.4.bb deleted file mode 100644 index 19e3f7a872..0000000000 --- a/packages/cairo/cairo_1.3.4.bb +++ /dev/null @@ -1,17 +0,0 @@ -#This is a development snapshot, so lets hint OE to use the releases -DEFAULT_PREFERENCE = "-1" - -SECTION = "libs" -PRIORITY = "optional" -DEPENDS = "virtual/libx11 libsm libpng fontconfig libxrender" -DESCRIPTION = "Cairo graphics library" -LICENSE = "MPL LGPL" - -SRC_URI = "http://cairographics.org/snapshots/cairo-${PV}.tar.gz \ - file://configure.in_requires_pkg-config-0.15.diff;patch=1;pnum=2" - -inherit autotools pkgconfig - -do_stage () { - autotools_stage_all -} diff --git a/packages/cairo/cairo_1.4.0.bb b/packages/cairo/cairo_1.4.0.bb deleted file mode 100644 index 3e5d2fdb15..0000000000 --- a/packages/cairo/cairo_1.4.0.bb +++ /dev/null @@ -1,7 +0,0 @@ -require cairo.inc - -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz \ - file://cairo-surface-cache-3.patch;patch=1" - -PR = "r0" - diff --git a/packages/cairo/cairo_1.4.10.bb b/packages/cairo/cairo_1.4.10.bb new file mode 100644 index 0000000000..845e14fc29 --- /dev/null +++ b/packages/cairo/cairo_1.4.10.bb @@ -0,0 +1,6 @@ +require cairo.inc + +SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz" + +PR = "r0" + diff --git a/packages/cairo/cairo_1.4.2.bb b/packages/cairo/cairo_1.4.2.bb deleted file mode 100644 index 3e5d2fdb15..0000000000 --- a/packages/cairo/cairo_1.4.2.bb +++ /dev/null @@ -1,7 +0,0 @@ -require cairo.inc - -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz \ - file://cairo-surface-cache-3.patch;patch=1" - -PR = "r0" - diff --git a/packages/cairo/cairo_1.4.4.bb b/packages/cairo/cairo_1.4.4.bb deleted file mode 100644 index 5f4a36f572..0000000000 --- a/packages/cairo/cairo_1.4.4.bb +++ /dev/null @@ -1,7 +0,0 @@ -require cairo.inc - -SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz \ - file://cairo-workqueue.patch;patch=1" - -PR = "r0" - diff --git a/packages/cairo/cairo_git.bb b/packages/cairo/cairo_git.bb index 3da41f382d..f4d62ee7fb 100644 --- a/packages/cairo/cairo_git.bb +++ b/packages/cairo/cairo_git.bb @@ -7,7 +7,7 @@ DEPENDS = "virtual/libx11 libsm libpng fontconfig libxrender" DESCRIPTION = "Cairo graphics library" LICENSE = "MPL LGPL" -PV = "1.4.7+git${SRCDATE}" +PV = "1.5.1+git${SRCDATE}" SRC_URI = "git://git.cairographics.org/git/cairo;protocol=git \ " diff --git a/packages/db/db_4.3.29.bb b/packages/db/db_4.3.29.bb index 474e73724f..750822fafe 100644 --- a/packages/db/db_4.3.29.bb +++ b/packages/db/db_4.3.29.bb @@ -14,7 +14,7 @@ HOMEPAGE = "http://www.sleepycat.com" LICENSE = "BSD Sleepycat" VIRTUAL_NAME ?= "virtual/db" CONFLICTS = "db3" -PR = "r7" +PR = "r8" SRC_URI = "http://downloads.sleepycat.com/db-${PV}.tar.gz" #SRC_URI_MD5 = "http://downloads.sleepycat.com/db-${PV}.tar.gz.md5" @@ -71,6 +71,7 @@ EXTRA_OECONF += "${MUTEX}" # configure. CONFIG_SITE = "" do_configure() { + ( cd ${WORKDIR}/db-${PV}/dist ; gnu-configize ) oe_runconf } diff --git a/packages/directfb/++dfb_0.9.25.bb b/packages/directfb/++dfb_1.0.0.bb index f440e117ff..f440e117ff 100644 --- a/packages/directfb/++dfb_0.9.25.bb +++ b/packages/directfb/++dfb_1.0.0.bb diff --git a/packages/directfb/directfb-examples_0.9.25.bb b/packages/directfb/directfb-examples_1.0.0.bb index 28de29c4a6..8a792b4ae4 100644 --- a/packages/directfb/directfb-examples_0.9.25.bb +++ b/packages/directfb/directfb-examples_1.0.0.bb @@ -1,10 +1,10 @@ -DESCRIPTION = "DirectFB examples" +DESCRIPTION = "DirectFB extra providers" DEPENDS = "directfb" -SECTION = "devel/examples" +SECTION = "libs" LICENSE = "GPL" -SRC_URI = "http://www.directfb.org/downloads/Extras/DirectFB-examples-${PV}.tar.gz" -S = "${WORKDIR}/DirectFB-examples-${PV}" +SRC_URI = "http://www.directfb.org/downloads/Extras/DirectFB-extra-${PV}.tar.gz" +S = "${WORKDIR}/DirectFB-extra-${PV}" inherit autotools @@ -13,3 +13,8 @@ do_configure_append() { find ${S} -type f | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:' } +do_stage() { + autotools_stage_all +} + + diff --git a/packages/directfb/directfb_1.0.0.bb b/packages/directfb/directfb_1.0.0.bb index caa8dbee8f..c2d249e978 100644 --- a/packages/directfb/directfb_1.0.0.bb +++ b/packages/directfb/directfb_1.0.0.bb @@ -7,7 +7,7 @@ SECTION = "libs" LICENSE = "LGPL" HOMEPAGE = "http://directfb.org" DEPENDS = "jpeg libpng freetype zlib tslib" -PR = "r4" +PR = "r5" RV = "1.0-0" SRC_URI = "http://www.directfb.org/download/DirectFB/DirectFB-${PV}.tar.gz \ @@ -26,6 +26,7 @@ EXTRA_OECONF = "\ --enable-libmpeg3=no \ --enable-freetype=yes \ --enable-sdl=no \ + --enable-vnc=no \ " do_stage() { @@ -38,18 +39,18 @@ do_install() { FILES_directfb-dbg_append = " ${libdir}/directfb-${RV}/*/*/.debug/*.so \ - ${libdir}/directfb-${RV}/*/.debug/*.so \ - " + ${libdir}/directfb-${RV}/*/.debug/*.so \ +" FILES_directfb-dev_append = " ${libdir}/directfb-${RV}/systems/*.la \ ${libdir}/directfb-${RV}/inputdrivers/*.la \ ${libdir}/directfb-${RV}/interfaces/*/*.la \ - ${libdir}/directfb-${RV}/wm/*.la" - + ${libdir}/directfb-${RV}/wm/*.la \ +" FILES_directfb_append = " ${libdir}/directfb-${RV}/systems/*.so \ ${libdir}/directfb-${RV}/inputdrivers/*.so \ ${libdir}/directfb-${RV}/interfaces/*/*.so \ ${libdir}/directfb-${RV}/wm/*.so \ ${datadir}/directfb-1.0.0 \ - " +" diff --git a/packages/directfb/files/fix-includes.patch b/packages/directfb/files/fix-includes.patch index 0c40cdb3a6..7b4a112582 100644 --- a/packages/directfb/files/fix-includes.patch +++ b/packages/directfb/files/fix-includes.patch @@ -1,7 +1,7 @@ # # pkgconfig points to STAGING_INCDIR, hence -# we need to append a directfb/ to make it -# find its header files +# we need to make this a local include +# or else it doesn't find its own header files # # Signed-Off: mickey@openmoko.org # @@ -14,11 +14,11 @@ Index: DirectFB-1.0.0/include/directfb.h #define __DIRECTFB_H__ -#include <dfb_types.h> -+#include <directfb/dfb_types.h> ++#include "dfb_types.h" #include <sys/time.h> /* struct timeval */ -#include <directfb_keyboard.h> -+#include <directfb/directfb_keyboard.h> ++#include "directfb_keyboard.h" #ifdef __cplusplus extern "C" diff --git a/packages/directfb/files/fix-pkgconfig-specs.patch b/packages/directfb/files/fix-pkgconfig-specs.patch index 0273b58ec5..c252dc1792 100644 --- a/packages/directfb/files/fix-pkgconfig-specs.patch +++ b/packages/directfb/files/fix-pkgconfig-specs.patch @@ -1,43 +1,48 @@ -diff -ur DirectFB-1.0.0~org/directfb-internal.pc.in DirectFB-1.0.0/directfb-internal.pc.in ---- DirectFB-1.0.0~org/directfb-internal.pc.in 2003-07-04 13:30:22.000000000 -0400 -+++ DirectFB-1.0.0/directfb-internal.pc.in 2007-03-16 22:34:17.000000000 -0400 -@@ -8,4 +8,4 @@ +Index: DirectFB-1.0.0/directfb-internal.pc.in +=================================================================== +--- DirectFB-1.0.0.orig/directfb-internal.pc.in ++++ DirectFB-1.0.0/directfb-internal.pc.in +@@ -8,4 +8,4 @@ Name: DirectFB-Internal Description: Third party module support package for DirectFB. Version: @VERSION@ Requires: directfb = @VERSION@ -Cflags: @DFB_INTERNAL_CFLAGS@ -I@INTERNALINCLUDEDIR@ -+Cflags: @DFB_INTERNAL_CFLAGS@ -I${includedir} -diff -ur DirectFB-1.0.0~org/directfb.pc.in DirectFB-1.0.0/directfb.pc.in ---- DirectFB-1.0.0~org/directfb.pc.in 2004-08-04 12:28:20.000000000 -0400 -+++ DirectFB-1.0.0/directfb.pc.in 2007-03-16 22:31:33.000000000 -0400 -@@ -8,4 +8,4 @@ ++Cflags: @DFB_INTERNAL_CFLAGS@ -I${includedir} -I${includedir}/../directfb +Index: DirectFB-1.0.0/directfb.pc.in +=================================================================== +--- DirectFB-1.0.0.orig/directfb.pc.in ++++ DirectFB-1.0.0/directfb.pc.in +@@ -8,4 +8,4 @@ Description: Graphics and windowing libr Version: @VERSION@ Requires: fusion direct Libs: -L${libdir} -ldirectfb @THREADLIB@ @DYNLIB@ @ZLIB_LIBS@ @OSX_LIBS@ -Cflags: @THREADFLAGS@ -I@INCLUDEDIR@ +Cflags: @THREADFLAGS@ -I${includedir} -diff -ur DirectFB-1.0.0~org/lib/direct/direct.pc.in DirectFB-1.0.0/lib/direct/direct.pc.in ---- DirectFB-1.0.0~org/lib/direct/direct.pc.in 2005-11-23 09:18:59.000000000 -0500 -+++ DirectFB-1.0.0/lib/direct/direct.pc.in 2007-03-16 22:32:13.000000000 -0400 -@@ -7,4 +7,4 @@ +Index: DirectFB-1.0.0/lib/direct/direct.pc.in +=================================================================== +--- DirectFB-1.0.0.orig/lib/direct/direct.pc.in ++++ DirectFB-1.0.0/lib/direct/direct.pc.in +@@ -7,4 +7,4 @@ Name: Direct Description: DirectFB base development library Version: @VERSION@ Libs: -L${libdir} -ldirect @THREADLIB@ @DYNLIB@ -Cflags: @THREADFLAGS@ -I@INCLUDEDIR@ +Cflags: @THREADFLAGS@ -I${includedir} -diff -ur DirectFB-1.0.0~org/lib/fusion/fusion.pc.in DirectFB-1.0.0/lib/fusion/fusion.pc.in ---- DirectFB-1.0.0~org/lib/fusion/fusion.pc.in 2004-05-19 07:30:56.000000000 -0400 -+++ DirectFB-1.0.0/lib/fusion/fusion.pc.in 2007-03-16 22:32:34.000000000 -0400 -@@ -8,4 +8,4 @@ +Index: DirectFB-1.0.0/lib/fusion/fusion.pc.in +=================================================================== +--- DirectFB-1.0.0.orig/lib/fusion/fusion.pc.in ++++ DirectFB-1.0.0/lib/fusion/fusion.pc.in +@@ -8,4 +8,4 @@ Description: High Level IPC Mechanisms Version: @VERSION@ Requires: direct Libs: -L${libdir} -lfusion -Cflags: -I@INCLUDEDIR@ +Cflags: -I${includedir} -diff -ur DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in DirectFB-1.0.0/lib/voodoo/voodoo.pc.in ---- DirectFB-1.0.0~org/lib/voodoo/voodoo.pc.in 2004-05-19 07:31:28.000000000 -0400 -+++ DirectFB-1.0.0/lib/voodoo/voodoo.pc.in 2007-03-16 22:32:55.000000000 -0400 -@@ -8,4 +8,4 @@ +Index: DirectFB-1.0.0/lib/voodoo/voodoo.pc.in +=================================================================== +--- DirectFB-1.0.0.orig/lib/voodoo/voodoo.pc.in ++++ DirectFB-1.0.0/lib/voodoo/voodoo.pc.in +@@ -8,4 +8,4 @@ Description: Interface based network tra Version: @VERSION@ Requires: direct Libs: -L${libdir} -lvoodoo diff --git a/packages/directfb/fusionsound_0.9.26+cvs20070207.bb b/packages/directfb/fusionsound_0.9.26+cvs20070207.bb deleted file mode 100644 index fe04a195c1..0000000000 --- a/packages/directfb/fusionsound_0.9.26+cvs20070207.bb +++ /dev/null @@ -1,37 +0,0 @@ -DESCRIPTION = "FusionSound for DirectFB" -DEPENDS = "directfb" -SECTION = "libs" -LICENSE = "LGPL" - -# this is a CVS only release - -SRC_URI = "cvs://anonymous@cvs.directfb.org/cvs/directfb;method=pserver;module=FusionSound;date=${@bb.data.getVar('PV', d, 1)[9:]}" - -S = "${WORKDIR}/FusionSound" - -inherit autotools pkgconfig - -do_configure_append() { - find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}:g' -} - -do_stage() { - autotools_stage_all -} - -do_install() { - oe_runmake 'DESTDIR=${D}' install -} - -FILES_fusionsound-dbg_append = " ${libdir}/directfb-1.0-0/*/*/.debug/*.so \ - ${libdir}/directfb-1.0-0/*/.debug/*.so \ - " - -FILES_fusionsound-dev_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.la \ - ${libdir}/directfb-1.0-0/snddrivers/*.la \ - " - -FILES_fusionsound_append = " ${libdir}/directfb-1.0-0/interfaces/*/*.so \ - ${libdir}/directfb-1.0-0/snddrivers/*.so \ - " - diff --git a/packages/directfb/fusionsound_1.0.0.bb b/packages/directfb/fusionsound_1.0.0.bb new file mode 100644 index 0000000000..3cd4a385f6 --- /dev/null +++ b/packages/directfb/fusionsound_1.0.0.bb @@ -0,0 +1,37 @@ +DESCRIPTION = "FusionSound for DirectFB" +DEPENDS = "directfb libmad libvorbis" +SECTION = "libs" +LICENSE = "LGPL" + +SRC_URI = "http://www.directfb.org/downloads/Core/FusionSound-${PV}.tar.gz" +S = "${WORKDIR}/FusionSound-${PV}" + +inherit autotools pkgconfig + +do_configure_append() { + find ${S} -type f | xargs sed -i 's:I/usr/include:I${STAGING_INCDIR}/directfb:g' +} + +do_stage() { + autotools_stage_all +} + +do_install() { + oe_runmake 'DESTDIR=${D}' install +} + +FILES_${PN} += "\ + ${libdir}/directfb-1.0-0/interfaces/*/*.so \ + ${libdir}/directfb-1.0-0/snddrivers/*.so \ +" + +FILES_${PN}-dbg += "\ + ${libdir}/directfb-1.0-0/*/*/.debug/*.so \ + ${libdir}/directfb-1.0-0/*/.debug/*.so \ +" + +FILES_${PN}-dev += "\ + ${libdir}/directfb-1.0-0/interfaces/*/*.la \ + ${libdir}/directfb-1.0-0/snddrivers/*.la \ +" + diff --git a/packages/e17/e-iconbar_20060128.bb b/packages/e17/e-iconbar_20060128.bb deleted file mode 100644 index de639bfd3f..0000000000 --- a/packages/e17/e-iconbar_20060128.bb +++ /dev/null @@ -1,13 +0,0 @@ -DESCRIPTION = "An Iconbar for the Enlightenment Window Manager" -DEPENDS = "edb eet evas-x11 ecore-x11 edje esmart-x11 imlib2-x11" -LICENSE = "MIT" -PR = "r1" - -inherit e - -SRC_URI = "${E_CVS};module=e17/apps/iconbar;date=${PV}" -S = "${WORKDIR}/iconbar" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" diff --git a/packages/e17/e-utils_20060501.bb b/packages/e17/e-utils_20060501.bb deleted file mode 100644 index fc94cd106f..0000000000 --- a/packages/e17/e-utils_20060501.bb +++ /dev/null @@ -1,11 +0,0 @@ -DESCRIPTION = "Enlightenment Window Manager Utilities" -DEPENDS = "virtual/ecore virtual/evas virtual/esmart edje eet ewl engrave virtual/imlib2 epsilon" -LICENSE = "MIT" -PR = "r1" - -inherit e - -SRC_URI = "${E_CVS};module=e17/apps/e_utils;date=${PV}" -S = "${WORKDIR}/e_utils" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir}" diff --git a/packages/e17/e-utils_cvs.bb b/packages/e17/e-utils_cvs.bb new file mode 100644 index 0000000000..ea27040ab2 --- /dev/null +++ b/packages/e17/e-utils_cvs.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Enlightenment Window Manager Utilities" +DEPENDS = "eet evas ecore edje esmart ewl engrave" +LICENSE = "MIT" +PV = "0.0.0+cvs${SRCDATE}" +PR = "r0" + +inherit e + +SRC_URI = "${E_CVS};module=e17/apps/e_utils" +S = "${WORKDIR}/e_utils" + +FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir}" diff --git a/packages/e17/e-wm_0.16.999.038.bb b/packages/e17/e-wm_0.16.999.038.bb index cf25ad08e8..1204ed9ecc 100644 --- a/packages/e17/e-wm_0.16.999.038.bb +++ b/packages/e17/e-wm_0.16.999.038.bb @@ -1,7 +1,7 @@ DESCRIPTION = "E17 - the Enlightenment Window Mananger" -DEPENDS = "evas-x11 ecore-x11 edje eet embryo efreet" +DEPENDS = "eet evas ecore edje efreet" LICENSE = "MIT" -PR = "r5" +PR = "r6" inherit e update-alternatives @@ -28,8 +28,8 @@ FILES_${PN}-dev += "${libdir}/enlightenment/modules/*/*/*.a ${libdir}/enlightenm FILES_${PN}-dbg += "${libdir}/enlightenment/modules/*/*/.debug/ ${libdir}/enlightenment/preload/.debug/" do_compile_prepend() { - find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:' - find ${S} -name Makefile | xargs sed -i 's:/usr/X11R6/include:${STAGING_INCDIR}:' + find ${S} -name Makefile | xargs sed -i 's:/usr/include:${STAGING_INCDIR}:' + find ${S} -name Makefile | xargs sed -i 's:/usr/X11R6/include:${STAGING_INCDIR}:' } do_install_append() { diff --git a/packages/e17/e17-gpe-menu-convert/e17-gpe-menu-convert.sh b/packages/e17/e17-gpe-menu-convert/e17-gpe-menu-convert.sh deleted file mode 100644 index bbb5e12211..0000000000 --- a/packages/e17/e17-gpe-menu-convert/e17-gpe-menu-convert.sh +++ /dev/null @@ -1,162 +0,0 @@ -#!/bin/sh - -setVar() { - if [ ! "$value" = "" ]; then - name=`echo "$name" | sed 'y:-\[\]:_____:'` - value=`echo "$value" | sed 's:":\\\":g'` - export $name="$value" - fi -} - -#convert true/false to 1/0 -bool() { - if [ ! "$1" = "" ]; then - if [ "$1" = "True" ]; then - cmd="$cmd $2 1" - else - cmd="$cmd $2 0" - fi - fi -} - -str() { - if [ ! "$1" = "" ]; then - cmd="$cmd $2 \"$1"\" - fi -} - -convert_desktop_to_eap() { - echo "Adding $1 to e menu" - for l in `cat $1`; do - #on empty line clear vars - if [ "$l" = "" ]; then - - #grab previous var if it exists - setVar - - name="" - value="" - else - #if an = is in the line it's a name/value pair - if echo "$l" | grep -q "="; then - - #grab previous var if it exists - setVar - - name=`echo "$l" | cut -d "=" -f 1` - value=`echo "$l" | cut -d "=" -f 2-` - else - - #if previous value assume this is a continuation - if [ ! "$value" = "" ]; then - value="$value $l" - fi - fi - fi - done - setVar - - cmd="" - - #set up options - bool "$StartupNotify" -set-startup-notify - str "$Name" -set-name - str "$Comment" -set-comment - str "$Exec" -set-exe - - if [ ! "$cmd" = "" ]; then - eapFile="$PATH_TO_EAP/$2" - if [ -e $eapFile ]; then - echo "EAP file for $2 already created"; - else - echo "Converting $1 to $2" - #cp ~/.e/e/applications/all/aterm.eap gpe-othello.eap - ##empty out eap file - ##enlightenment_eapp | grep -- -set- | cut -d " " -f 3 | xargs -iCMD enlightenment_eapp gpe-othello.eap CMD \"\" - #enlightenment_eapp gpe-othello.eap -del-all - - cat <<EOF > /tmp/gpeEap.edc -images { - image: "$Icon" COMP; -} -collections { - group { - name: "icon"; - max: 48 48; - parts { - part { - name: "image"; - mouse_events: 0; - description { - state: "default" 0.0; - aspect: 1.0 1.0; - image.normal: "$Icon"; - } - } - } - } -} -EOF - - edje_cc --image_dir "$PATH_TO_PIXMAPS" /tmp/gpeEap.edc "$eapFile" - rm /tmp/gpeEap.edc - - cmd="enlightenment_eapp \"$eapFile\" $cmd" - - #pipe command in sh to allow it to re-interpret quotes - echo $cmd | /bin/sh -s - fi - - if `echo "$Categories" | grep -q "SystemSettings"`; then - dir="Settings" - elif `echo "$Categories" | grep -q "PIM"`; then - dir="PIM" - elif `echo "$Categories" | grep -q "Network"`; then - dir="Network" - elif `echo "$Categories" | grep -q "Games"`; then - dir="Games" - elif `echo "$Categories" | grep -q "Game"`; then - dir="Games" - elif `echo "$Categories" | grep -q "AudioVideo"`; then - dir="Multimedia" - elif `echo "$Categories" | grep -q "Panel"`; then - dir="Utility/Panel" - elif `echo "$Categories" | grep -q "Utility"`; then - dir="Utlity" - else - dir="" - fi - - #dir=`echo "$Categories" | sed 'y:;:/:'` - mkdir -p "$PATH_TO_E_GPE/$dir" - orderFile="$PATH_TO_E_GPE/$dir"/.order - add=1 - if [ -e "$orderFile" ]; then - if grep -q "$2" "$orderFile"; then - echo "$2 is already in the $dir menu" - add=0 - fi - fi - if [ "$add" -eq 1 ]; then - echo "Adding $2 to $dir menu" - echo "$2" >> "$orderFile" - fi - fi -} - -PATH_TO_DESKTOP="/usr/share/applications" -PATH_TO_PIXMAPS="/usr/share/pixmaps" -PATH_TO_EAP="/home/root/.e/e/applications/all" -PATH_TO_E_GPE="/home/root/.e/e/applications/favorite/GPE" - -if [ ! -d $PATH_TO_E_GPE ]; then - mkdir -p $PATH_TO_E_GPE -fi -if [ ! -d $PATH_TO_EAP ]; then - mkdir -p $PATH_TO_EAP -fi -cd "$PATH_TO_DESKTOP" -for f in `ls *.desktop`; do - eap=`echo "$f" | cut -d . -f 1` - convert_desktop_to_eap "$PATH_TO_DESKTOP/$f" "$eap.eap" -done diff --git a/packages/e17/e17-gpe-menu-convert_0.2.bb b/packages/e17/e17-gpe-menu-convert_0.2.bb deleted file mode 100644 index 5ec40cd761..0000000000 --- a/packages/e17/e17-gpe-menu-convert_0.2.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Shell script to convert GPE .desktop files into e17 eap files and menus" -DEPENDS = "edje-utils e-wm" -RDEPENDS += "edje-utils e-wm" -LICENSE = "MIT" -SECTION = "e/apps" -PR = "r4" - -#this is a shell script -PACKAGE_ARCH = "all" - -SRC_URI = "file://e17-gpe-menu-convert.sh" - -do_install() { - install -d ${D}/usr/bin/ - install -m 755 ${WORKDIR}/e17-gpe-menu-convert.sh ${D}/usr/bin/e17-gpe-menu-convert.sh -} - -pkg_postinst() { - /usr/bin/e17-gpe-menu-convert.sh -} diff --git a/packages/e17/e17genmenu_4.2.0.bb b/packages/e17/e17genmenu_4.2.0.bb deleted file mode 100644 index baf399864d..0000000000 --- a/packages/e17/e17genmenu_4.2.0.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Convert Gnome or KDE menus to e17 menus" -DEPENDS = "virtual/ecore virtual/evas eet engrave" -LICENSE = "GPL" -HOMEPAGE = "http://sourceforge.net/projects/e17genmenu" -PR = "r0" - -inherit e - -SECTION = "e/utils" - -SRC_URI = "${SOURCEFORGE_MIRROR}/e17genmenu/e17genmenu-${PV}.tar.gz" -S = "${WORKDIR}/${PN}" - -PACKAGES += "${PN}-doc" - -FILES_${PN} = "${bindir} ${datadir}" -FILES_${PN}-doc = "/usr/doc"
\ No newline at end of file diff --git a/packages/e17/eclair_20060128.bb b/packages/e17/eclair_20060128.bb deleted file mode 100644 index d78e1322c2..0000000000 --- a/packages/e17/eclair_20060128.bb +++ /dev/null @@ -1,14 +0,0 @@ -DESCRIPTION = "Eclair is the E17 multi media player" -DEPENDS = "evas-x11 ecore-x11 embryo imlib2-x11 edje-native edje libxine-x11 emotion esmart-x11 libxml2 sqlite3 taglibc" -LICENSE = "MIT" -PR = "r1" - -inherit e - -SRC_URI = "${E_CVS};module=e17/apps/eclair;date=${PV}" -S = "${WORKDIR}/eclair" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" - diff --git a/packages/e17/edje-viewer_cvs.bb b/packages/e17/edje-viewer_cvs.bb new file mode 100644 index 0000000000..9b21c042a0 --- /dev/null +++ b/packages/e17/edje-viewer_cvs.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Edje_Viewer is just that." +DEPENDS = "etk" +LICENSE = "MIT" +PV = "0.0.0+svn${SRCDATE}" +PR = "r0" + +inherit e + +SRC_URI = "${E_CVS};module=e17/apps/edje_viewer" +S = "${WORKDIR}/edje_viewer" + +FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" diff --git a/packages/e17/engage/no-local-includes.patch b/packages/e17/engage/no-local-includes.patch deleted file mode 100644 index 09cc8da98d..0000000000 --- a/packages/e17/engage/no-local-includes.patch +++ /dev/null @@ -1,17 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- engage/src/module/Makefile.am~no-local-includes -+++ engage/src/module/Makefile.am -@@ -10,8 +10,7 @@ - - # the module .so file - INCLUDES = -I. \ -- -I$(top_srcdir) \ -- -I$(includedir) \ -+ -I$(top_srcdir) \ - @e_cflags@ - pkgdir = @e_modules@/engage/$(MODULE_ARCH) - pkg_LTLIBRARIES = module.la diff --git a/packages/e17/engage_20060128.bb b/packages/e17/engage_20060128.bb deleted file mode 100644 index ee71e1a0bb..0000000000 --- a/packages/e17/engage_20060128.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "Engage is the E17 icon dock" -DEPENDS = "evas-x11 ecore-x11 esmart-x11 imlib2-x11 edje ewl e-wm" -LICENSE = "MIT" -PR = "r2" - -inherit e - -SRC_URI = "${E_CVS};module=misc/engage;date=${PV} \ - file://no-local-includes.patch;patch=1" -S = "${WORKDIR}/engage" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" - diff --git a/packages/e17/entice_20060128.bb b/packages/e17/entice_20060128.bb deleted file mode 100644 index 5b433de015..0000000000 --- a/packages/e17/entice_20060128.bb +++ /dev/null @@ -1,17 +0,0 @@ -DESCRIPTION = "Entice is the E17 picture viewer" -# can also depend on GIMP for editing -LICENSE = "MIT" -DEPENDS = "edb evas-x11 ecore-x11 edje epsilon esmart-x11" -PR = "r4" - -inherit e - -RDEPENDS += "libesmart-container-plugins libesmart-thumb0 libesmart-trans-x11-0 libesmart-file-dialog0" - -SRC_URI = "${E_CVS};module=e17/apps/entice;date=${PV}" -S = "${WORKDIR}/entice" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" - -FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" - diff --git a/packages/e17/entice_20060416.bb b/packages/e17/entice_cvs.bb index 663ee97cd8..62a80ead47 100644 --- a/packages/e17/entice_20060416.bb +++ b/packages/e17/entice_cvs.bb @@ -1,17 +1,15 @@ DESCRIPTION = "Entice is the E17 picture viewer" # can also depend on GIMP for editing LICENSE = "MIT" -DEPENDS = "edb evas-x11 ecore-x11 edje epsilon esmart-x11" -PR = "r1" +DEPENDS = "edb evas ecore edje epsilon esmart" +PV = "0.0.0+cvs${SRCDATE}" +PR = "r0" inherit e -RDEPENDS += "libesmart-container-plugins libesmart-thumb libesmart-trans-x11-0 libesmart-file-dialog" - -SRC_URI = "${E_CVS};module=e17/apps/entice;date=${PV}" +SRC_URI = "${E_CVS};module=e17/apps/entice" S = "${WORKDIR}/entice" EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" FILES_${PN} = "${bindir}/* ${libdir}/* ${datadir} ${sysconfdir} ${sbindir}" - diff --git a/packages/e17/entrance-0.9.0.009/Xserver.patch b/packages/e17/entrance-0.9.0.009/Xserver.patch deleted file mode 100644 index 296a7bccf4..0000000000 --- a/packages/e17/entrance-0.9.0.009/Xserver.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- entrance/src/daemon/Entranced.h.~1.7.~ 2004-05-19 21:02:09.000000000 -0700 -+++ entrance/src/daemon/Entranced.h 2005-08-13 02:00:02.000000000 -0700 -@@ -18,7 +18,7 @@ - - #define ENTRANCED_DEBUG 1 - --#define X_SERVER "/usr/X11R6/bin/X -quiet" -+#define X_SERVER "/etc/X11/Xserver" - //#define X_SERVER "/usr/X11R6/bin/Xnest -full" - #define X_DISP ":0" /* only used if DISPLAY variable is NOT set */ - #define ENTRANCE PREFIX "/bin/entrance_wrapper" ---- entrance/src/daemon/spawner.c.~1.25.~ 2005-05-28 02:31:14.000000000 -0700 -+++ entrance/src/daemon/spawner.c 2005-08-13 02:20:13.000000000 -0700 -@@ -155,7 +155,7 @@ - sigaction(SIGUSR1, &_entrance_x_sa, NULL); - /* FIXME: need to parse command and NOT go thru /bin/sh!!!! */ - /* why? some /bin/sh's wont pass on this SIGUSR1 thing... */ -- execl("/bin/sh", "/bin/sh", "-c", x_cmd, NULL); -+ execl("/bin/bash", "/bin/bash", "-c", x_cmd, NULL); - syslog(LOG_WARNING, "Could not execute X server."); - exit(1); - default: diff --git a/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch b/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch deleted file mode 100644 index 74289ad3c8..0000000000 --- a/packages/e17/entrance-0.9.0.009/allow-missing-xsession.patch +++ /dev/null @@ -1,19 +0,0 @@ -Index: entrance-0.9.0.009/configure.in -=================================================================== ---- entrance-0.9.0.009.orig/configure.in -+++ entrance-0.9.0.009/configure.in -@@ -184,10 +184,10 @@ AC_ARG_WITH(xsession, - fi - ] - ) --if test ! -x "$xsession" ; then -- AC_MSG_WARN([** $xsession does not exist or is not executable **]) -- AC_MSG_WARN([** Please consider overriding with --with-xsession **]) --fi -+#if test ! -x "$xsession" ; then -+# AC_MSG_WARN([** $xsession does not exist or is not executable **]) -+# AC_MSG_WARN([** Please consider overriding with --with-xsession **]) -+#fi - - AC_DEFINE_UNQUOTED(ENTRANCE_XSESSION, "$xsession", [Xsession script]) - AC_SUBST(xsession) diff --git a/packages/e17/entrance-0.9.0.009/config-db.patch b/packages/e17/entrance-0.9.0.009/config-db.patch deleted file mode 100644 index aecbfb6867..0000000000 --- a/packages/e17/entrance-0.9.0.009/config-db.patch +++ /dev/null @@ -1,119 +0,0 @@ -Index: entrance-0.9.0.009/data/config/build_config.sh.in -=================================================================== ---- entrance-0.9.0.009.orig/data/config/build_config.sh.in -+++ entrance-0.9.0.009/data/config/build_config.sh.in -@@ -1,45 +1,45 @@ - #!/bin/sh -e - --usage() { -- cat <<-EOF -- Usage: $0 [options] -- -- Options: -- -d, --dir Session directory to scan -- -c, --file Config file (default: $DB) -- -h, --help This help output :p -- EOF -- -- if [ "$1" = "1" ] ; then -- echo "" -- echo "ERROR: $2" -- fi -- -- exit $1 --} -- --SESSION_DIR="" --DB="./entrance_config.cfg" -- --while [ -n "$1" ] ; do -- case $1 in -- -d) shift; SESSION_DIR=$1;; -- -c) shift; DB=$1;; -- -h) usage 0;; -- *) usage 1 "Unknown option: $1";; -- esac -- shift --done -- --if [ -z "$DB" ] || [ -d "$DB" ] ; then -- usage 1 "Invalid DB argument" --fi -- --FROM=$SESSION_DIR --if [ -z "$FROM" ] ; then -- FROM="defaults" --fi --echo "Generating config file '$DB' from '$FROM' ..." -+#usage() { -+# cat <<-EOF -+# Usage: $0 [options] -+# -+# Options: -+# -d, --dir Session directory to scan -+# -c, --file Config file (default: $DB) -+# -h, --help This help output :p -+# EOF -+# -+# if [ "$1" = "1" ] ; then -+# echo "" -+# echo "ERROR: $2" -+# fi -+# -+# exit $1 -+#} -+# -+#SESSION_DIR="" -+#DB="./entrance_config.cfg" -+# -+#while [ -n "$1" ] ; do -+# case $1 in -+# -d) shift; SESSION_DIR=$1;; -+# -c) shift; DB=$1;; -+# -h) usage 0;; -+# *) usage 1 "Unknown option: $1";; -+# esac -+# shift -+#done -+# -+#if [ -z "$DB" ] || [ -d "$DB" ] ; then -+# usage 1 "Invalid DB argument" -+#fi -+# -+#FROM=$SESSION_DIR -+#if [ -z "$FROM" ] ; then -+# FROM="defaults" -+#fi -+#echo "Generating config file '$DB' from '$FROM' ..." - - rm -f $DB || exit 1 - -@@ -59,10 +59,10 @@ ecore_config -c $DB -k /entrance/time_fo - #ecore_config -c $DB -k /entrance/fonts/0/-s -s "/usr/share/fonts/truetype/" - #ecore_config -c $DB -k /entrance/fonts/1/-s -s "/usr/X11R6/lib/X11/fonts/Truetype/" - ecore_config -c $DB -k /entrance/greeting/before -s "Welcome to" --ecore_config -c $DB -k /entrance/greeting/after -s "" -+ecore_config -c $DB -k /entrance/greeting/after -s " e17/OE" - - count=0 --ecore_config -c $DB -k /entrance/session/0/session -s "default" -+ecore_config -c $DB -k /entrance/session/0/session -s "/etc/X11/Sessions/Enlightenment" - ecore_config -c $DB -k /entrance/session/0/title -s "Default" - ecore_config -c $DB -k /entrance/session/0/icon -s "default.png" - #if [ -z "$SESSION_DIR" ] ; then -@@ -92,7 +92,7 @@ ecore_config -c $DB -k /entrance/session - # done - #fi - count=`(expr $count + 1)` --ecore_config -c $DB -k /entrance/session/$count/session -s "failsafe" -+ecore_config -c $DB -k /entrance/session/$count/session -s "/etc/X11/Sessions/Enlightenment" - ecore_config -c $DB -k /entrance/session/$count/title -s "Failsafe" - ecore_config -c $DB -k /entrance/session/$count/icon -s "failsafe.png" - count=`(expr $count + 1)` -@@ -107,5 +107,5 @@ ecore_config -c $DB -k /entrance/autolog - ecore_config -c $DB -k /entrance/presel/mode -i 1 - - # for Entranced --ecore_config -c $DB -k /entranced/xserver -s "@xbin@/X -quiet -nolisten tcp@ENTRANCE_VT_ARG@" -+ecore_config -c $DB -k /entranced/xserver -s "/etc/X11/Xserver" - ecore_config -c $DB -k /entranced/attempts -i 5 diff --git a/packages/e17/entrance-0.9.0.009/disable-autodetect.patch b/packages/e17/entrance-0.9.0.009/disable-autodetect.patch deleted file mode 100644 index a0412b3706..0000000000 --- a/packages/e17/entrance-0.9.0.009/disable-autodetect.patch +++ /dev/null @@ -1,8 +0,0 @@ -diff -Nur entrance-0.9.0.007~/Makefile.am entrance-0.9.0.007/Makefile.am ---- entrance-0.9.0.007~/Makefile.am 2006-05-11 12:18:07.000000000 -0700 -+++ entrance-0.9.0.007/Makefile.am 2006-05-11 13:01:41.000000000 -0700 -@@ -23,4 +23,3 @@ - fi - - install-data-am: -- sh data/config/autodetect.sh || : diff --git a/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch b/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch deleted file mode 100644 index 46e530b256..0000000000 --- a/packages/e17/entrance-0.9.0.009/fix-auth-mode.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: entrance-0.9.0.009/data/config/build_config.sh.in -=================================================================== ---- entrance-0.9.0.009.orig/data/config/build_config.sh.in -+++ entrance-0.9.0.009/data/config/build_config.sh.in -@@ -44,7 +44,7 @@ - rm -f $DB || exit 1 - - # set auth to 1 for pam, 2 for shadow --ecore_config -c $DB -k /entrance/auth -i @auth_mode@ -+ecore_config -c $DB -k /entrance/auth -i 0 - - # uncomment the below to enable experimental OpenGL hardware acceleration - #ecore_config -c $DB -k /entrance/engine -i 1 diff --git a/packages/e17/entrance-0.9.0.009/run-Xinit.patch b/packages/e17/entrance-0.9.0.009/run-Xinit.patch deleted file mode 100644 index 1d6c2307f7..0000000000 --- a/packages/e17/entrance-0.9.0.009/run-Xinit.patch +++ /dev/null @@ -1,17 +0,0 @@ ---- entrance/src/daemon/entrance_wrapper.in.~1.1.~ 2003-01-31 13:57:06.000000000 -0800 -+++ entrance/src/daemon/entrance_wrapper.in 2005-08-15 20:13:57.000000000 -0700 -@@ -5,8 +5,13 @@ - - test -f /etc/profile && . /etc/profile - -+if [ -x /etc/X11/Xinit.d/99gpe-login ]; then -+ chmod -x /etc/X11/Xinit.d/99gpe-login -+fi -+ -+/etc/X11/Xinit -+ - exec @prefix@/bin/entrance "$@" - - #fallback - exec entrance "$@" -- diff --git a/packages/e17/entrance-0.9.0.009/set-display-env.patch b/packages/e17/entrance-0.9.0.009/set-display-env.patch deleted file mode 100644 index 37bfc1c2c8..0000000000 --- a/packages/e17/entrance-0.9.0.009/set-display-env.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Nur entrance~/src/daemon/spawner.c entrance/src/daemon/spawner.c ---- entrance~/src/daemon/spawner.c 2005-09-02 14:00:29.000000000 -0700 -+++ entrance/src/daemon/spawner.c 2005-09-02 15:53:31.000000000 -0700 -@@ -199,6 +199,7 @@ - free(d->client.homedir); - d->client.homedir = NULL; - -+ setenv("DISPLAY", d->name, 1); - snprintf(entrance_cmd, PATH_MAX, "%s -d %s", ENTRANCE, d->name); - if (d->config) - snprintf(entrance_cmd, PATH_MAX, "%s -d %s -c \"%s\" -z %d", diff --git a/packages/e17/entrance-0.9.0.009/use-bash.patch b/packages/e17/entrance-0.9.0.009/use-bash.patch deleted file mode 100644 index 7dfab83711..0000000000 --- a/packages/e17/entrance-0.9.0.009/use-bash.patch +++ /dev/null @@ -1,57 +0,0 @@ -Index: entrance-0.9.0.009/src/client/entrance_session.c -=================================================================== ---- entrance-0.9.0.009.orig/src/client/entrance_session.c -+++ entrance-0.9.0.009/src/client/entrance_session.c -@@ -854,7 +854,7 @@ _entrance_session_execute_in_shell(char - if (shell && (strlen(shell) > 0)) - shell_cmd = shell; - else -- shell_cmd = strdup("/bin/sh"); -+ shell_cmd = strdup("/bin/bash"); - - if (session_name) - snprintf(buf, sizeof(buf), "%s %s", session_cmd, session_name); -@@ -869,9 +869,9 @@ _entrance_session_execute_in_shell(char - if (res == -1) - /* TODO: should actually hit the user in the face with this message */ - syslog(LOG_NOTICE, -- "Neither '%s' or '/bin/sh' are working login shells for user '%s'. Your session may not function properly. ", -+ "Neither '%s' or '/bin/bash' are working login shells for user '%s'. Your session may not function properly. ", - shell, user); -- shell_cmd = strdup("/bin/sh"); -+ shell_cmd = strdup("/bin/bash"); - - res = execlp(shell_cmd, shell_cmd, "-c", buf, NULL); - -Index: entrance-0.9.0.009/src/client/main.c -=================================================================== ---- entrance-0.9.0.009.orig/src/client/main.c -+++ entrance-0.9.0.009/src/client/main.c -@@ -453,7 +453,7 @@ reboot_cb(void *data, Evas_Object * o, c - { - case 0: - if (execl -- ("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -r now", NULL)) -+ ("/bin/bash", "/bin/bash", "-c", "/sbin/shutdown -r now", NULL)) - { - syslog(LOG_CRIT, - "Reboot failed: Unable to execute /sbin/shutdown"); -@@ -495,7 +495,7 @@ shutdown_cb(void *data, Evas_Object * o, - { - case 0: - if (execl -- ("/bin/sh", "/bin/sh", "-c", "/sbin/shutdown -h now", NULL)) -+ ("/bin/bash", "/bin/bash", "-c", "/sbin/shutdown -h now", NULL)) - { - syslog(LOG_CRIT, - "Shutdown failed: Unable to execute /sbin/shutdown"); -Index: entrance-0.9.0.009/src/daemon/entrance_wrapper.in -=================================================================== ---- entrance-0.9.0.009.orig/src/daemon/entrance_wrapper.in -+++ entrance-0.9.0.009/src/daemon/entrance_wrapper.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!/bin/bash - # Wrapper script to set up login environment: - # Load up all the junk in /etc/profile first, and then - # pass control to entrance proper. diff --git a/packages/e17/entrance/allow-missing-xsession.patch b/packages/e17/entrance/allow-missing-xsession.patch index c475e46fe2..74289ad3c8 100644 --- a/packages/e17/entrance/allow-missing-xsession.patch +++ b/packages/e17/entrance/allow-missing-xsession.patch @@ -1,18 +1,18 @@ ---- entrance/configure.in.~1.42.~ 2005-07-29 23:15:58.000000000 -0700 -+++ entrance/configure.in 2005-08-13 03:11:41.000000000 -0700 -@@ -190,11 +190,11 @@ +Index: entrance-0.9.0.009/configure.in +=================================================================== +--- entrance-0.9.0.009.orig/configure.in ++++ entrance-0.9.0.009/configure.in +@@ -184,10 +184,10 @@ AC_ARG_WITH(xsession, fi ] ) --if test ! -x $xsession ; then -- AC_MSG_WARN([** no $xsession file on this system **]) -- AC_MSG_WARN([** Perhaps you need to specify --with-xsession **]) -- xsession="You should reconfigure --with-xsession" +-if test ! -x "$xsession" ; then +- AC_MSG_WARN([** $xsession does not exist or is not executable **]) +- AC_MSG_WARN([** Please consider overriding with --with-xsession **]) -fi -+#if test ! -x $xsession ; then -+# AC_MSG_WARN([** no $xsession file on this system **]) -+# AC_MSG_WARN([** Perhaps you need to specify --with-xsession **]) -+# xsession="You should reconfigure --with-xsession" ++#if test ! -x "$xsession" ; then ++# AC_MSG_WARN([** $xsession does not exist or is not executable **]) ++# AC_MSG_WARN([** Please consider overriding with --with-xsession **]) +#fi AC_DEFINE_UNQUOTED(ENTRANCE_XSESSION, "$xsession", [Xsession script]) diff --git a/packages/e17/entrance/config-db.patch b/packages/e17/entrance/config-db.patch index 83ed3acf84..aecbfb6867 100644 --- a/packages/e17/entrance/config-db.patch +++ b/packages/e17/entrance/config-db.patch @@ -1,43 +1,119 @@ ---- entrance/data/config/build_config.sh.in.~1.18.~ 2006-01-11 18:46:48.000000000 -0800 -+++ entrance/data/config/build_config.sh.in 2006-01-11 21:52:54.000000000 -0800 -@@ -18,29 +18,14 @@ +Index: entrance-0.9.0.009/data/config/build_config.sh.in +=================================================================== +--- entrance-0.9.0.009.orig/data/config/build_config.sh.in ++++ entrance-0.9.0.009/data/config/build_config.sh.in +@@ -1,45 +1,45 @@ + #!/bin/sh -e + +-usage() { +- cat <<-EOF +- Usage: $0 [options] +- +- Options: +- -d, --dir Session directory to scan +- -c, --file Config file (default: $DB) +- -h, --help This help output :p +- EOF +- +- if [ "$1" = "1" ] ; then +- echo "" +- echo "ERROR: $2" +- fi +- +- exit $1 +-} +- +-SESSION_DIR="" +-DB="./entrance_config.cfg" +- +-while [ -n "$1" ] ; do +- case $1 in +- -d) shift; SESSION_DIR=$1;; +- -c) shift; DB=$1;; +- -h) usage 0;; +- *) usage 1 "Unknown option: $1";; +- esac +- shift +-done +- +-if [ -z "$DB" ] || [ -d "$DB" ] ; then +- usage 1 "Invalid DB argument" +-fi +- +-FROM=$SESSION_DIR +-if [ -z "$FROM" ] ; then +- FROM="defaults" +-fi +-echo "Generating config file '$DB' from '$FROM' ..." ++#usage() { ++# cat <<-EOF ++# Usage: $0 [options] ++# ++# Options: ++# -d, --dir Session directory to scan ++# -c, --file Config file (default: $DB) ++# -h, --help This help output :p ++# EOF ++# ++# if [ "$1" = "1" ] ; then ++# echo "" ++# echo "ERROR: $2" ++# fi ++# ++# exit $1 ++#} ++# ++#SESSION_DIR="" ++#DB="./entrance_config.cfg" ++# ++#while [ -n "$1" ] ; do ++# case $1 in ++# -d) shift; SESSION_DIR=$1;; ++# -c) shift; DB=$1;; ++# -h) usage 0;; ++# *) usage 1 "Unknown option: $1";; ++# esac ++# shift ++#done ++# ++#if [ -z "$DB" ] || [ -d "$DB" ] ; then ++# usage 1 "Invalid DB argument" ++#fi ++# ++#FROM=$SESSION_DIR ++#if [ -z "$FROM" ] ; then ++# FROM="defaults" ++#fi ++#echo "Generating config file '$DB' from '$FROM' ..." + + rm -f $DB || exit 1 + +@@ -59,10 +59,10 @@ ecore_config -c $DB -k /entrance/time_fo #ecore_config -c $DB -k /entrance/fonts/0/-s -s "/usr/share/fonts/truetype/" #ecore_config -c $DB -k /entrance/fonts/1/-s -s "/usr/X11R6/lib/X11/fonts/Truetype/" ecore_config -c $DB -k /entrance/greeting/before -s "Welcome to" -ecore_config -c $DB -k /entrance/greeting/after -s "" --ecore_config -c $DB -k /entrance/session/count -i 7 --ecore_config -c $DB -k /entrance/session/0/session -s "default" +ecore_config -c $DB -k /entrance/greeting/after -s " e17/OE" -+ecore_config -c $DB -k /entrance/session/count -i 2 + + count=0 +-ecore_config -c $DB -k /entrance/session/0/session -s "default" +ecore_config -c $DB -k /entrance/session/0/session -s "/etc/X11/Sessions/Enlightenment" ecore_config -c $DB -k /entrance/session/0/title -s "Default" ecore_config -c $DB -k /entrance/session/0/icon -s "default.png" - ecore_config -c $DB -k /entrance/session/1/icon -s "enlightenment.png" - ecore_config -c $DB -k /entrance/session/1/title -s "E17" --ecore_config -c $DB -k /entrance/session/1/session -s "@prefix@/bin/enlightenment" --ecore_config -c $DB -k /entrance/session/2/session -s "kde" --ecore_config -c $DB -k /entrance/session/2/title -s "KDE" --ecore_config -c $DB -k /entrance/session/2/icon -s "kde.png" --ecore_config -c $DB -k /entrance/session/3/session -s "gnome" --ecore_config -c $DB -k /entrance/session/3/title -s "Gnome" --ecore_config -c $DB -k /entrance/session/3/icon -s "gnome.png" --ecore_config -c $DB -k /entrance/session/4/session -s "Enlightenment" --ecore_config -c $DB -k /entrance/session/4/title -s "E16" --ecore_config -c $DB -k /entrance/session/4/icon -s "enlightenment.png" --ecore_config -c $DB -k /entrance/session/5/session -s "xfce" --ecore_config -c $DB -k /entrance/session/5/title -s "XFce" --ecore_config -c $DB -k /entrance/session/5/icon -s "xfce.png" --ecore_config -c $DB -k /entrance/session/6/session -s "failsafe" --ecore_config -c $DB -k /entrance/session/6/title -s "Failsafe" --ecore_config -c $DB -k /entrance/session/6/icon -s "failsafe.png" -+ecore_config -c $DB -k /entrance/session/1/session -s "/etc/X11/Sessions/Enlightenment" - ecore_config -c $DB -k /entrance/system/reboot -i 1 - ecore_config -c $DB -k /entrance/system/halt -i 1 - ecore_config -c $DB -k /entrance/user/remember -i 1 -@@ -50,5 +35,5 @@ + #if [ -z "$SESSION_DIR" ] ; then +@@ -92,7 +92,7 @@ ecore_config -c $DB -k /entrance/session + # done + #fi + count=`(expr $count + 1)` +-ecore_config -c $DB -k /entrance/session/$count/session -s "failsafe" ++ecore_config -c $DB -k /entrance/session/$count/session -s "/etc/X11/Sessions/Enlightenment" + ecore_config -c $DB -k /entrance/session/$count/title -s "Failsafe" + ecore_config -c $DB -k /entrance/session/$count/icon -s "failsafe.png" + count=`(expr $count + 1)` +@@ -107,5 +107,5 @@ ecore_config -c $DB -k /entrance/autolog ecore_config -c $DB -k /entrance/presel/mode -i 1 # for Entranced --ecore_config -c $DB -k /entranced/xserver -s "/usr/X11R6/bin/X -quiet -nolisten tcp" +-ecore_config -c $DB -k /entranced/xserver -s "@xbin@/X -quiet -nolisten tcp@ENTRANCE_VT_ARG@" +ecore_config -c $DB -k /entranced/xserver -s "/etc/X11/Xserver" ecore_config -c $DB -k /entranced/attempts -i 5 diff --git a/packages/e17/entrance/fix-auth-mode.patch b/packages/e17/entrance/fix-auth-mode.patch index 1ec520f768..46e530b256 100644 --- a/packages/e17/entrance/fix-auth-mode.patch +++ b/packages/e17/entrance/fix-auth-mode.patch @@ -1,7 +1,9 @@ ---- entrance/data/config/build_config.sh.in~ 2006-01-30 07:01:47.000000000 -0800 -+++ entrance/data/config/build_config.sh.in 2006-02-01 22:22:04.000000000 -0800 -@@ -3,7 +3,7 @@ - rm -f $DB +Index: entrance-0.9.0.009/data/config/build_config.sh.in +=================================================================== +--- entrance-0.9.0.009.orig/data/config/build_config.sh.in ++++ entrance-0.9.0.009/data/config/build_config.sh.in +@@ -44,7 +44,7 @@ + rm -f $DB || exit 1 # set auth to 1 for pam, 2 for shadow -ecore_config -c $DB -k /entrance/auth -i @auth_mode@ diff --git a/packages/e17/entrance/use-bash.patch b/packages/e17/entrance/use-bash.patch index 58ef8f556f..7dfab83711 100644 --- a/packages/e17/entrance/use-bash.patch +++ b/packages/e17/entrance/use-bash.patch @@ -1,19 +1,33 @@ -diff -Nur entrance~/src/client/entrance_session.c entrance/src/client/entrance_session.c ---- entrance~/src/client/entrance_session.c 2006-02-02 19:51:40.000000000 -0800 -+++ entrance/src/client/entrance_session.c 2006-02-02 19:59:24.000000000 -0800 -@@ -495,7 +495,7 @@ - entrance_session_free(e); - /* replace this process with a clean small one that just waits for its */ - /* child to exit.. passed on the cmd-line */ -- execl("/bin/sh", "/bin/sh", "-l", "-c", buf, NULL); -+ execl("/bin/bash", "/bin/bash", "-l", "-c", buf, NULL); - } +Index: entrance-0.9.0.009/src/client/entrance_session.c +=================================================================== +--- entrance-0.9.0.009.orig/src/client/entrance_session.c ++++ entrance-0.9.0.009/src/client/entrance_session.c +@@ -854,7 +854,7 @@ _entrance_session_execute_in_shell(char + if (shell && (strlen(shell) > 0)) + shell_cmd = shell; + else +- shell_cmd = strdup("/bin/sh"); ++ shell_cmd = strdup("/bin/bash"); + if (session_name) + snprintf(buf, sizeof(buf), "%s %s", session_cmd, session_name); +@@ -869,9 +869,9 @@ _entrance_session_execute_in_shell(char + if (res == -1) + /* TODO: should actually hit the user in the face with this message */ + syslog(LOG_NOTICE, +- "Neither '%s' or '/bin/sh' are working login shells for user '%s'. Your session may not function properly. ", ++ "Neither '%s' or '/bin/bash' are working login shells for user '%s'. Your session may not function properly. ", + shell, user); +- shell_cmd = strdup("/bin/sh"); ++ shell_cmd = strdup("/bin/bash"); + + res = execlp(shell_cmd, shell_cmd, "-c", buf, NULL); -diff -Nur entrance~/src/client/main.c entrance/src/client/main.c ---- entrance~/src/client/main.c 2006-02-02 19:51:40.000000000 -0800 -+++ entrance/src/client/main.c 2006-02-02 19:57:24.000000000 -0800 -@@ -392,7 +392,7 @@ +Index: entrance-0.9.0.009/src/client/main.c +=================================================================== +--- entrance-0.9.0.009.orig/src/client/main.c ++++ entrance-0.9.0.009/src/client/main.c +@@ -453,7 +453,7 @@ reboot_cb(void *data, Evas_Object * o, c { case 0: if (execl @@ -22,7 +36,7 @@ diff -Nur entrance~/src/client/main.c entrance/src/client/main.c { syslog(LOG_CRIT, "Reboot failed: Unable to execute /sbin/shutdown"); -@@ -434,7 +434,7 @@ +@@ -495,7 +495,7 @@ shutdown_cb(void *data, Evas_Object * o, { case 0: if (execl @@ -31,24 +45,13 @@ diff -Nur entrance~/src/client/main.c entrance/src/client/main.c { syslog(LOG_CRIT, "Shutdown failed: Unable to execute /sbin/shutdown"); -diff -Nur entrance~/src/daemon/entrance_wrapper.in entrance/src/daemon/entrance_wrapper.in ---- entrance~/src/daemon/entrance_wrapper.in 2006-02-02 19:51:40.000000000 -0800 -+++ entrance/src/daemon/entrance_wrapper.in 2006-02-02 19:56:43.000000000 -0800 +Index: entrance-0.9.0.009/src/daemon/entrance_wrapper.in +=================================================================== +--- entrance-0.9.0.009.orig/src/daemon/entrance_wrapper.in ++++ entrance-0.9.0.009/src/daemon/entrance_wrapper.in @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Wrapper script to set up login environment: # Load up all the junk in /etc/profile first, and then # pass control to entrance proper. -diff -Nur entrance~/src/daemon/spawner.c entrance/src/daemon/spawner.c ---- entrance~/src/daemon/spawner.c 2006-02-02 19:51:40.000000000 -0800 -+++ entrance/src/daemon/spawner.c 2006-02-02 19:57:10.000000000 -0800 -@@ -162,7 +162,7 @@ - sigaction(SIGUSR1, &_entrance_x_sa, NULL); - /* FIXME: need to parse command and NOT go thru /bin/sh!!!! */ - /* why? some /bin/sh's wont pass on this SIGUSR1 thing... */ -- execl("/bin/sh", "/bin/sh", "-c", x_cmd, NULL); -+ execl("/bin/bash", "/bin/bash", "-c", x_cmd, NULL); - syslog(LOG_WARNING, "Could not execute X server."); - exit(1); - default: diff --git a/packages/e17/entrance_0.9.0.009.bb b/packages/e17/entrance_0.9.0.009.bb deleted file mode 100644 index 6e21926860..0000000000 --- a/packages/e17/entrance_0.9.0.009.bb +++ /dev/null @@ -1,40 +0,0 @@ -DESCRIPTION = "Entrance is the Enlightenment login manager" -LICENSE = "MIT" -# can also use pam and crypt -DEPENDS = "evas-x11 ecore-x11 edje esmart-x11 bash keylaunch xserver-common login-manager" -RDEPENDS += "bash keylaunch xserver-common glibc-gconv-iso8859-1 login-manager entrance-themes" -HOMEPAGE = "http://www.enlightenment.org" -PR = "r1" - -DEFAULT_PREFERENCE = "-1" - -inherit e - -SRC_URI = "${E_URI}/entrance-${PV}.tar.gz \ - file://config-db.patch;patch=1 \ - file://allow-missing-xsession.patch;patch=1 \ - file://run-Xinit.patch;patch=1 \ - file://fix-auth-mode.patch;patch=1 \ - file://use-bash.patch;patch=1 \ - file://Sessions" -# file://disable-autodetect.patch;patch=1 \ -# file://set-display-env.patch;patch=1 \ - -S = "${WORKDIR}/entrance-${PV}" - -EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ - --with-xsession=/etc/X11/Xsession \ - --with-auth-mode=0" - -FILES_${PN}-dbg += "${libexecdir}/entrance/.debug" -FILES_${PN} += "${bindir} ${sbindir} /etc ${datadir} ${libexecdir}" - -do_install_append() { - install -d ${D}/etc/X11/Xsession.d - install -d ${D}/etc/X11/Sessions - - install -m 755 ${WORKDIR}/Sessions/* ${D}/etc/X11/Sessions - - install -d ${D}/etc/X11/login-managers/ - mv ${D}/etc/init.d/entrance ${D}/etc/X11/login-managers/entrance -} diff --git a/packages/e17/entrance_0.9.0.007.bb b/packages/e17/entrance_0.9.0.010.bb index 50126cb5a9..4c47f1d2ab 100644 --- a/packages/e17/entrance_0.9.0.007.bb +++ b/packages/e17/entrance_0.9.0.010.bb @@ -1,21 +1,18 @@ DESCRIPTION = "Entrance is the Enlightenment login manager" LICENSE = "MIT" # can also use pam and crypt -DEPENDS = "evas-x11 ecore-x11 edje esmart-x11 bash keylaunch xserver-common login-manager" -RDEPENDS += "bash keylaunch xserver-common glibc-gconv-iso8859-1 login-manager entrance-themes" -HOMEPAGE = "http://www.enlightenment.org" -PR = "r14" +DEPENDS = "evas ecore edje esmart bash keylaunch xserver-common login-manager" +RDEPENDS += "glibc-gconv-iso8859-1 entrance-themes" +PR = "r0" inherit e -SRC_URI = "${E_URI}/entrance-${PV}.tar.gz \ +SRC_URI += "\ file://config-db.patch;patch=1 \ file://allow-missing-xsession.patch;patch=1 \ file://run-Xinit.patch;patch=1 \ - file://set-display-env.patch;patch=1 \ file://fix-auth-mode.patch;patch=1 \ file://use-bash.patch;patch=1 \ - file://disable-autodetect.patch;patch=1 \ file://Sessions" S = "${WORKDIR}/entrance-${PV}" @@ -24,7 +21,7 @@ EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc \ --with-xsession=/etc/X11/Xsession \ --with-auth-mode=0" -FILES_${PN} += "${bindir} ${sbindir} /etc ${datadir}" +FILES_${PN}-dbg += "${libexecdir}/entrance/.debug/*" do_install_append() { install -d ${D}/etc/X11/Xsession.d diff --git a/packages/e17/examine_20060128.bb b/packages/e17/examine_cvs.bb index b406ea3b5f..89d0dd5755 100644 --- a/packages/e17/examine_20060128.bb +++ b/packages/e17/examine_cvs.bb @@ -1,11 +1,12 @@ -DESCRIPTION = "examine, the program configurator" -DEPENDS = "virtual/ecore ewl" +DESCRIPTION = "Examine, the program configurator" +DEPENDS = "ewl" LICENSE = "MIT" +PV = "0.0.0+cvs${SRCDATE}" PR = "r0" inherit e -SRC_URI = "${E_CVS};module=e17/apps/examine;date=${PV}" +SRC_URI = "${E_CVS};module=e17/apps/examine" S = "${WORKDIR}/examine" EXTRA_OECONF = "--with-edje-cc=${STAGING_BINDIR_NATIVE}/edje_cc" diff --git a/packages/e17/expedite_cvs.bb b/packages/e17/expedite_cvs.bb index 69e0df9dbe..ea376c2442 100644 --- a/packages/e17/expedite_cvs.bb +++ b/packages/e17/expedite_cvs.bb @@ -1,13 +1,12 @@ DESCRIPTION = "Expedite is a comprehensive benchmarking suite for evas" -DEPENDS = "evas-x11" +DEPENDS = "evas" LICENSE = "MIT" -PV = "0.0+cvs${SRCDATE}" +PV = "0.0.0+cvs${SRCDATE}" PR = "r0" inherit e SRC_URI = "cvs://anonymous@anoncvs.enlightenment.org/var/cvs/e;module=e17/apps/expedite" - S = "${WORKDIR}/${PN}" do_configure_append() { diff --git a/packages/e17/rage_0.2.0.003.bb b/packages/e17/rage_0.2.0.003.bb new file mode 100644 index 0000000000..ab527e214b --- /dev/null +++ b/packages/e17/rage_0.2.0.003.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "rage is a media center application based on EFL" +AUTHOR = "Carsten 'The Rasterman' Heitzler" +HOMEPAGE = "http://www.rasterman.com" +LICENSE = "GPL" +DEPENDS = "evas ecore edje" +SECTION = "x11/multimedia" + +SRC_URI = "http://download.enlightenment.org/snapshots/2007-06-17/rage-${PV}.tar.gz" + +inherit e diff --git a/packages/efl/epsilon_0.3.0.008.bb b/packages/efl/epsilon_0.3.0.008.bb deleted file mode 100644 index 1fd7c88744..0000000000 --- a/packages/efl/epsilon_0.3.0.008.bb +++ /dev/null @@ -1,18 +0,0 @@ -DESCRIPTION = "Epsilon is a flexable and powerful image thumbnailing library \ -that is complient with the freedesktop.org Thumbnail Managing Standard." -LICENSE = "GPL" -DEPENDS = "virtual/imlib2 epeg libpng virtual/evas virtual/ecore perl-native edje" - -inherit efl - -PR = "r1" - -SRC_URI += "file://compile-fix.patch;patch=1 \ - ${E_CVS};module=e17/libs/epsilon/m4;date=20060101" -# file://server-is-not-client.patch;patch=1 \ - -do_configure_prepend() { - install -d "${S}/m4" - install "${WORKDIR}/m4/"*.m4 "${S}/m4" - aclocal -I m4 -} diff --git a/packages/e17/entrance-0.9.0.009/.mtn2git_empty b/packages/efl1/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/e17/entrance-0.9.0.009/.mtn2git_empty +++ b/packages/efl1/.mtn2git_empty diff --git a/packages/efl1/ecore-native_0.9.9.038.bb b/packages/efl1/ecore-native_0.9.9.038.bb new file mode 100644 index 0000000000..7b3212dc1a --- /dev/null +++ b/packages/efl1/ecore-native_0.9.9.038.bb @@ -0,0 +1,28 @@ +require ecore.inc +inherit native +DEPENDS = "eet-native evas-native" + +EXTRA_OECONF = "\ + --enable-ecore-txt \ + --disable-ecore-x-xcb \ + --enable-ecore-x \ + --enable-ecore-job \ + --enable-ecore-directfb \ + --enable-ecore-fb \ + --enable-ecore-evas \ + --disable-ecore-evas-gl \ + --disable-ecore-evas-xrender \ + --disable-ecore-evas-dfb \ + --disable-openssl \ + --enable-abstract-sockets \ + --enable-ecore-con \ + --enable-ecore-ipc \ + --enable-ecore-dbus \ + --enable-ecore-file \ + --enable-inotify \ + --disable-poll \ + --disable-curl \ + --disable-ecore-desktop \ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} " + diff --git a/packages/efl1/ecore.inc b/packages/efl1/ecore.inc new file mode 100644 index 0000000000..7f67d2f281 --- /dev/null +++ b/packages/efl1/ecore.inc @@ -0,0 +1,52 @@ +DESCRIPTION = "Ecore is the core event abstraction layer for the enlightenment \ +foundation libraries. It makes makes doing selections, drag and drop, event loops, \ +timeouts and idle handlers fast, optimized, and convenient." +LICENSE = "MIT" +DEPENDS = "curl dbus directfb eet evas tslib" +# optional +# DEPENDS += "openssl iconv" + +inherit efl1 + +SRC_URI = "http://enlightenment.freedesktop.org/files/ecore-${PV}.tar.gz \ + file://configure-abstract-sockets.patch;patch=1 \ + file://fix-tslib-configure.patch;patch=1 \ + file://fix-directfb-include.patch;patch=1" + +S = "${WORKDIR}/ecore-${PV}" +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/ecore" + +EXTRA_OECONF = "<override me>" + +do_stage() { + autotools_stage_all +} + +PACKAGES += "\ + ${PN}-con \ + ${PN}-config \ + ${PN}-dbus \ + ${PN}-desktop \ + ${PN}-directfb \ + ${PN}-evas \ + ${PN}-fb \ + ${PN}-file \ + ${PN}-ipc \ + ${PN}-job \ + ${PN}-txt \ + ${PN}-x \ + " +FILES_${PN} = "${libdir}/libecore.so*" +FILES_${PN}-con = "${libdir}/libecore_con.so*" +FILES_${PN}-config = "${libdir}/libecore_config.so*" +FILES_${PN}-dbus = "${libdir}/libecore_dbus.so*" +FILES_${PN}-desktop = "${libdir}/libecore_desktop.so*" +FILES_${PN}-directfb = "${libdir}/libecore_directfb.so*" +FILES_${PN}-evas = "${libdir}/libecore_evas.so*" +FILES_${PN}-fb = "${libdir}/libecore_fb.so*" +FILES_${PN}-file = "${libdir}/libecore_file.so*" +FILES_${PN}-ipc = "${libdir}/libecore_ipc.so*" +FILES_${PN}-job = "${libdir}/libecore_job.so*" +FILES_${PN}-txt = "${libdir}/libecore_txt.so*" +FILES_${PN}-x = "${libdir}/libecore_x.so*" + diff --git a/packages/efl/.mtn2git_empty b/packages/efl1/ecore/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/.mtn2git_empty +++ b/packages/efl1/ecore/.mtn2git_empty diff --git a/packages/efl/ecore/add-tslib-support.patch b/packages/efl1/ecore/add-tslib-support.patch index c125122a91..c125122a91 100644 --- a/packages/efl/ecore/add-tslib-support.patch +++ b/packages/efl1/ecore/add-tslib-support.patch diff --git a/packages/efl/ecore/configure-abstract-sockets.patch b/packages/efl1/ecore/configure-abstract-sockets.patch index 359203b163..359203b163 100644 --- a/packages/efl/ecore/configure-abstract-sockets.patch +++ b/packages/efl1/ecore/configure-abstract-sockets.patch diff --git a/packages/efl/ecore/configure.patch b/packages/efl1/ecore/configure.patch index 23d8193b44..23d8193b44 100644 --- a/packages/efl/ecore/configure.patch +++ b/packages/efl1/ecore/configure.patch diff --git a/packages/efl/ecore/ecore_kernel_input_header.patch b/packages/efl1/ecore/ecore_kernel_input_header.patch index 99f57ddcff..99f57ddcff 100644 --- a/packages/efl/ecore/ecore_kernel_input_header.patch +++ b/packages/efl1/ecore/ecore_kernel_input_header.patch diff --git a/packages/efl1/ecore/fix-directfb-include.patch b/packages/efl1/ecore/fix-directfb-include.patch new file mode 100644 index 0000000000..b1c06f7f43 --- /dev/null +++ b/packages/efl1/ecore/fix-directfb-include.patch @@ -0,0 +1,13 @@ +Index: ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h +=================================================================== +--- ecore-0.9.9.038.orig/src/lib/ecore_directfb/Ecore_DirectFB.h ++++ ecore-0.9.9.038/src/lib/ecore_directfb/Ecore_DirectFB.h +@@ -23,7 +23,7 @@ + #endif + + #include <Ecore_Data.h> +-#include <directfb.h> ++#include <directfb/directfb.h> + + + #ifdef __cplusplus diff --git a/packages/efl1/ecore/fix-tslib-configure.patch b/packages/efl1/ecore/fix-tslib-configure.patch new file mode 100644 index 0000000000..a1fbb21326 --- /dev/null +++ b/packages/efl1/ecore/fix-tslib-configure.patch @@ -0,0 +1,19 @@ +Index: ecore-0.9.9.038/configure.in +=================================================================== +--- ecore-0.9.9.038.orig/configure.in ++++ ecore-0.9.9.038/configure.in +@@ -1,4 +1,4 @@ +-dnl Process this file with autoconf to produce a configure script. ++<dnl Process this file with autoconf to produce a configure script. + + AC_INIT(configure.in) + AC_CANONICAL_BUILD +@@ -321,7 +321,7 @@ tslib_libs="" + if test "x$have_ecore_fb" = "xyes" ; then + AC_CHECK_HEADER(tslib.h, + [ +- tslib_libs="-ltslib" ++ tslib_libs="-lts" + AC_DEFINE(HAVE_TSLIB, 1, [Build Ecore_FB Touchscreen Code]) + ] + ) diff --git a/packages/efl/ecore/remove-bad-code.patch b/packages/efl1/ecore/remove-bad-code.patch index 87a8d16bd6..87a8d16bd6 100644 --- a/packages/efl/ecore/remove-bad-code.patch +++ b/packages/efl1/ecore/remove-bad-code.patch diff --git a/packages/efl1/ecore_0.9.9.038.bb b/packages/efl1/ecore_0.9.9.038.bb new file mode 100644 index 0000000000..d61aeab3a1 --- /dev/null +++ b/packages/efl1/ecore_0.9.9.038.bb @@ -0,0 +1,26 @@ +require ecore.inc +PR = "r1" + +EXTRA_OECONF = "\ + --enable-ecore-txt \ + --disable-ecore-x-xcb \ + --enable-ecore-x \ + --enable-ecore-job \ + --enable-ecore-directfb \ + --enable-ecore-fb \ + --enable-ecore-evas \ + --disable-ecore-evas-gl \ + --enable-ecore-evas-xrender \ + --enable-ecore-evas-dfb \ + --disable-openssl \ + --enable-abstract-sockets \ + --enable-ecore-con \ + --enable-ecore-ipc \ + --enable-ecore-dbus \ + --enable-ecore-file \ + --enable-inotify \ + --disable-poll \ + --enable-curl \ + --enable-ecore-desktop \ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} " diff --git a/packages/efl1/edb_cvs.bb b/packages/efl1/edb_cvs.bb new file mode 100644 index 0000000000..365f857e1c --- /dev/null +++ b/packages/efl1/edb_cvs.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "Edb is a database library" +LICENSE = "MIT" +PV = "0.0.0+cvs${SRCDATE}" + +inherit efl1 + +SRC_URI = "${E_CVS};module=e17/libs/edb" +S = "${WORKDIR}/edb" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${bindir}/*_* ${datadir}" +FILES_${PN}-dev += "${bindir}/*-config" +FILES_${PN} = "${libdir}/*.so*" + diff --git a/packages/efl1/edje-native_0.5.0.038.bb b/packages/efl1/edje-native_0.5.0.038.bb new file mode 100644 index 0000000000..8f3ef51fa7 --- /dev/null +++ b/packages/efl1/edje-native_0.5.0.038.bb @@ -0,0 +1,16 @@ +require edje_${PV}.bb +inherit native +PR = "r4" + +DEPENDS = "evas-native ecore-native eet-native embryo-native" +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/edje" + +do_configure_prepend() { + sed -i 's:EMBRYO_PREFIX"/bin:"${STAGING_BINDIR}:' ${S}/src/bin/edje_cc_out.c + sed -i 's:cpp -I:/usr/bin/cpp -I:' ${S}/src/bin/edje_cc_parse.c + sed -i 's:gcc -I:/usr/bin/gcc -I:' ${S}/src/bin/edje_cc_parse.c +} + +do_stage_append() { + efl_stage_bin +} diff --git a/packages/efl1/edje_0.5.0.038.bb b/packages/efl1/edje_0.5.0.038.bb new file mode 100644 index 0000000000..7db9951e8d --- /dev/null +++ b/packages/efl1/edje_0.5.0.038.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Edje is a complex graphical design & layout library." +# can also install vim data files +DEPENDS = "eet evas ecore embryo edje-native" +LICENSE = "MIT" +PR = "r7" + +inherit efl1 lib_package + +SRC_URI += "${E_CVS};module=e17/libs/edje/m4;date=20060101" + +do_configure_prepend() { + install -d "${S}/m4" + install "${WORKDIR}/m4/"*.m4 "${S}/m4" + aclocal -I m4 +} + +FILES_${PN}-dev =+ "${bindir} ${datadir}" +FILES_${PN}-examples = "" +FILES_${PN}-bin = "" + diff --git a/packages/efl/eet-native_0.9.10.038.bb b/packages/efl1/eet-native_0.9.10.038.bb index 9e2426ca9f..9e2426ca9f 100644 --- a/packages/efl/eet-native_0.9.10.038.bb +++ b/packages/efl1/eet-native_0.9.10.038.bb diff --git a/packages/efl1/eet_0.9.10.038.bb b/packages/efl1/eet_0.9.10.038.bb new file mode 100644 index 0000000000..08935df750 --- /dev/null +++ b/packages/efl1/eet_0.9.10.038.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "EET is a tiny library designed to write an \ +arbitary set of chunks of data to a file and optionally compress \ +each chunk (very much like a zip file) and allow fast \ +random-access reading of the file later on." +DEPENDS = "zlib jpeg" +LICENSE = "BSD" +PR = "r0" + +inherit efl1 + +SRC_URI = "http://download.enlightenment.org/snapshots/2007-05-06/eet-${PV}.tar.gz" diff --git a/packages/efl1/efreet_0.0.3.002.bb b/packages/efl1/efreet_0.0.3.002.bb new file mode 100644 index 0000000000..b387ee89a0 --- /dev/null +++ b/packages/efl1/efreet_0.0.3.002.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "An implementation of freedesktop.org specs for the \ +Enlightenment Foundation Libraries" +DEPENDS = "ecore" +LICENSE = "BSD" +PR = "r0" + +inherit efl1 + +PACKAGES =+ "efreet-tests" +FILES_efreet-tests = "${bindir}/*_* ${datadir}" diff --git a/packages/efl1/embryo-native_0.9.1.038.bb b/packages/efl1/embryo-native_0.9.1.038.bb new file mode 100644 index 0000000000..2fc3faddfd --- /dev/null +++ b/packages/efl1/embryo-native_0.9.1.038.bb @@ -0,0 +1,3 @@ +require embryo_${PV}.bb +inherit native + diff --git a/packages/efl1/embryo_0.9.1.038.bb b/packages/efl1/embryo_0.9.1.038.bb new file mode 100644 index 0000000000..0728ef563b --- /dev/null +++ b/packages/efl1/embryo_0.9.1.038.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Embryo implements a C like scripting language used in various parts \ +of the Enlightenment project, namely Edje. Embryo's scripting language is based on \ +CompuPhase's Small language that was introduced in Dr Dobb's Journal in 1999. \ +Embryo allows scripting capabilities in places that otherwise wouldn't support \ +basic programming structures such as in Edje EDCs." +LICENSE = "MIT" +PR = "r0" + +inherit efl1 lib_package + +FILES_${PN}-examples = "${datadir}/${PN}/examples" diff --git a/packages/efl1/emotion_0.0.1.006.bb b/packages/efl1/emotion_0.0.1.006.bb new file mode 100644 index 0000000000..bdfcbebee1 --- /dev/null +++ b/packages/efl1/emotion_0.0.1.006.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Emotion is a multimedia library with backends: gstreamer and libxine" +LICENSE = "MIT" +# we no longer build the libxine backend, since the gstreamer backend seems more promising +DEPENDS = "eet evas ecore edje gstreamer gst-plugins-base" +RRECOMMENDS_${PN} = "emotion-backend-gstreamer" +PR = "r0" + +inherit efl1 + +SRC_URI = "http://download.enlightenment.org/snapshots/2007-06-17/emotion-${PV}.tar.gz" + +EXTRA_OECONF = "--disable-xine --enable-gstreamer" + +PACKAGES =+ "emotion-backend-gstreamer emotion-test" +FILES_emotion-backend-gstreamer = "${libdir}/emotion/*.so" +FILES_emotion-test = "${bindir}/emotion_test ${datadir}" diff --git a/packages/efl1/engrave_cvs.bb b/packages/efl1/engrave_cvs.bb new file mode 100644 index 0000000000..169ba856a7 --- /dev/null +++ b/packages/efl1/engrave_cvs.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Engrave is an Edje Editing Library" +LICENSE = "MIT" +# also requires yacc and lex on host +DEPENDS = "evas ecore" +PV = "0.0.0+cvs${SRCDATE}" + +inherit efl1 + +SRC_URI = "${E_CVS};module=e17/libs/engrave" +S = "${WORKDIR}/engrave" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${bindir}/*_* ${datadir}" +FILES_${PN}-dev += "${bindir}/*-config" +FILES_${PN} = "${libdir}/*.so*" + diff --git a/packages/efl1/enhance_cvs.bb b/packages/efl1/enhance_cvs.bb new file mode 100644 index 0000000000..8e30cf0033 --- /dev/null +++ b/packages/efl1/enhance_cvs.bb @@ -0,0 +1,15 @@ +DESCRIPTION = "Enhance translates between glade .xml files and ETK" +LICENSE = "MIT" +DEPENDS = "exml" +PV = "0.0.0+cvs${SRCDATE}" + +inherit efl1 + +SRC_URI = "${E_CVS};module=e17/libs/enhance" +S = "${WORKDIR}/enhance" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${bindir}/*_* ${datadir}" +FILES_${PN}-dev += "${bindir}/*-config" +FILES_${PN} = "${libdir}/*.so*" + diff --git a/packages/efl1/epeg_0.9.0.009.bb b/packages/efl1/epeg_0.9.0.009.bb new file mode 100644 index 0000000000..6a99269291 --- /dev/null +++ b/packages/efl1/epeg_0.9.0.009.bb @@ -0,0 +1,8 @@ +DESCRIPTION = "Epeg is a small library for handling thumbnails." +LICENSE = "MIT" +DEPENDS = "jpeg" + +inherit efl1 + +FILES_${PN} = "${libdir}/lib*.so*" +FILES_${PN}-dev += "${bindir}/*-config" diff --git a/packages/efl/e/.mtn2git_empty b/packages/efl1/epsilon/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/e/.mtn2git_empty +++ b/packages/efl1/epsilon/.mtn2git_empty diff --git a/packages/efl/epsilon/compile-fix.patch b/packages/efl1/epsilon/compile-fix.patch index 1c42cc59c4..1c42cc59c4 100644 --- a/packages/efl/epsilon/compile-fix.patch +++ b/packages/efl1/epsilon/compile-fix.patch diff --git a/packages/efl/epsilon/server-is-not-client.patch b/packages/efl1/epsilon/server-is-not-client.patch index e96e528b9e..e96e528b9e 100644 --- a/packages/efl/epsilon/server-is-not-client.patch +++ b/packages/efl1/epsilon/server-is-not-client.patch diff --git a/packages/efl1/epsilon_0.3.0.009.bb b/packages/efl1/epsilon_0.3.0.009.bb new file mode 100644 index 0000000000..eba3a11e34 --- /dev/null +++ b/packages/efl1/epsilon_0.3.0.009.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Epsilon is a flexible and powerful image thumbnailing library \ +that is compliant with the freedesktop.org Thumbnail Managing Standard." +LICENSE = "LGPL" +DEPENDS = "imlib2 epeg libpng evas ecore edje perl-native" + +inherit efl1 + +PR = "r0" + +PACKAGES =+ "epsilon-tests" +FILES_epsilon-tests = "${bindir}/*_* ${datadir}" +FILES_${PN} = "${libdir}/lib*.so*" diff --git a/packages/efl1/esmart_0.9.0.009.bb b/packages/efl1/esmart_0.9.0.009.bb new file mode 100644 index 0000000000..8d2ce2eb3e --- /dev/null +++ b/packages/efl1/esmart_0.9.0.009.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "ESmart is a collection of smart Evas objects" +LICENSE = "MIT" +DEPENDS = "evas ecore edje imlib2 epsilon libtool" + +inherit efl1 + +S = "${WORKDIR}/esmart-${PV}" + +PACKAGES =+ "${PN}-textentry \ + ${PN}-thumb \ + ${PN}-container \ + ${PN}-container-plugins \ + ${PN}-file-dialog \ + ${PN}-draggies \ + ${PN}-trans-x11" +FILES_${PN}-textentry = "${libdir}/libesmart_text_entry*.so*" +FILES_${PN}-thumb = "${libdir}/libesmart_thumb*.so*" +FILES_${PN}-container = "${libdir}/libesmart_container*" +DEPENDS_${PN}-container += "${PN}-container-plugins" +FILES_${PN}-container-plugins = "${libdir}/esmart/layout/*.so" +FILES_${PN}-file-dialog = "${libdir}/libesmart_file_dialog*.so*" +FILES_${PN}-draggies = "${libdir}/libesmart_draggies*.so*" +FILES_${PN}-trans-x11 = "${libdir}/libesmart_trans_x11*.so*" diff --git a/packages/efl1/etk_0.1.0.003.bb b/packages/efl1/etk_0.1.0.003.bb new file mode 100644 index 0000000000..569b5c9242 --- /dev/null +++ b/packages/efl1/etk_0.1.0.003.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Etk is an advanced widget toolkit based on the Enlightenment Foundation Libraries." +DEPENDS = "evas ecore edje" +LICENSE = "MIT" +PR = "r1" + +inherit efl1 + +PACKAGES =+ "etk-engines" +FILES_${PN} = "${libdir}/libetk.so*" +FILES_${PN}-examples += "${bindir}" +FILES_${PN}-engines = "${libdir}/etk/engines/*.so ${datadir}" +FILES_${PN}-dev += "${libdir}/etk/engines/*.a ${libdir}/etk/engines/*.la" +FILES_${PN}-dbg += "${libdir}/etk/engines/*/.debug/" diff --git a/packages/efl1/evas-native_0.9.9.038.bb b/packages/efl1/evas-native_0.9.9.038.bb new file mode 100644 index 0000000000..e79695c1f2 --- /dev/null +++ b/packages/efl1/evas-native_0.9.9.038.bb @@ -0,0 +1,60 @@ +require evas.inc +inherit native +DEPENDS = "freetype-native libpng-native jpeg-native eet-native" +PR = "r9" + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --disable-fb \ + --disable-directfb \ + --enable-buffer \ + --disable-software-ddraw \ + --disable-software-qtopia \ + --disable-software-x11 \ + --disable-software-16-x11 \ + --disable-software-xcb \ + --disable-gl-x11 \ + --disable-xrender-x11 \ + --disable-xrender-xcb \ + --disable-glitz-x11 \ + --enable-image-loader-eet \ + --disable-image-loader-edb \ + --disable-image-loader-gif \ + --enable-image-loader-png \ + --enable-image-loader-jpeg \ + --enable-image-loader-tiff \ + --enable-image-loader-xpm \ + --disable-image-loader-svg \ + --enable-cpu-c \ + --enable-fontconfig \ + --enable-font-loader-eet \ + --enable-scale-sample \ + --enable-scale-smooth \ + --enable-convert-yuv \ + --enable-small-dither-mask \ + --disable-no-dither-mask \ + --disable-convert-8-rgb-332 \ + --disable-convert-8-rgb-666 \ + --disable-convert-8-rgb-232 \ + --disable-convert-8-rgb-222 \ + --disable-convert-8-rgb-221 \ + --disable-convert-8-rgb-121 \ + --disable-convert-8-rgb-111 \ + --enable-convert-16-rgb-565 \ + --disable-convert-16-rgb-555 \ + --disable-convert-16-rgb-444 \ + --disable-convert-16-rgb-ipq \ + --enable-convert-16-rgb-rot-0 \ + --disable-convert-16-rgb-rot-90 \ + --enable-convert-16-rgb-rot-270 \ + --disable-convert-24-rgb-888 \ + --disable-convert-24-bgr-888 \ + --disable-convert-32-rgb-8888 \ + --disable-convert-32-rgbx-8888 \ + --disable-convert-32-bgr-8888 \ + --disable-convert-32-bgrx-8888 \ + --disable-convert-32-rgb-rot-0 \ + --disable-convert-32-rgb-rot-90 \ + --disable-convert-32-rgb-rot-270" + diff --git a/packages/efl1/evas.inc b/packages/efl1/evas.inc new file mode 100644 index 0000000000..f3d78f0255 --- /dev/null +++ b/packages/efl1/evas.inc @@ -0,0 +1,57 @@ +DESCRIPTION = "Evas is a hardware-accelerated canvas API that can draw \ +anti-aliased text, smooth super and sub-images, alpha-blend, as well as drop \ +down to using normal X11 primitives such as pixmaps, lines and rectangles if \ +your CPU or graphics hardware are too slow." +LICENSE = "MIT" +# can also depend on valgrind (?) +DEPENDS = "directfb eet freetype jpeg virtual/libx11 libxext" + +inherit efl1 + +export FREETYPE_CONFIG = "${STAGING_BINDIR_CROSS}/freetype-config" + +SRC_URI = "http://enlightenment.freedesktop.org/files/evas-${PV}.tar.gz \ + file://fix-configure.patch;patch=1 \ + ${E_CVS};module=e17/libs/evas/m4;date=20060101" + +S = "${WORKDIR}/evas-${PV}" +FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/evas" + +EXTRA_OECONF = "<override me>" + +do_configure_prepend() { + if [ -e "${WORKDIR}/m4" ]; then + install -d "${S}/m4" + install "${WORKDIR}/m4/"*.m4 "${S}/m4" + aclocal -I m4 + fi +} + +python populate_packages_prepend () { + for plugin_type in "engines loaders savers".split(): + bb.note( "splitting packages for evas %s..." % plugin_type ) + basedir = bb.data.expand( '${libdir}/evas/modules/%s' % plugin_type, d ) + + do_split_packages(d, basedir, '^(.*)', + output_pattern = 'evas-' + plugin_type[:-1] + "-%s", + description = 'Evas module %s', + allow_dirs=True, recursive=False ) +} + +do_install_append() { + find "${D}" -name .debug -type d | xargs -iBLAH rm -rf "BLAH" +} + +#do_stage_append() { +# cd src +# modules=`find modules -name ".libs"` +# for module in $modules +# do +# install -d ${STAGING_LIBDIR}/evas/`dirname $module`/${TARGET_OS}-gnu-${TARGET_ARCH} +# install -m 0755 $module/module.so ${STAGING_LIBDIR}/evas/`dirname $module`/${TARGET_OS}-gnu-${TARGET_ARCH}/module.so +# done +#} + +FILES_${PN}-dev += "${libdir}/evas/modules/*/*/*/*.a ${libdir}/evas/modules/*/*/*/*.la" +FILES_${PN}-dbg += "${libdir}/evas/modules/*/*/*/.debug/" +FILES_${PN} = "${libdir}/libevas*.so*" diff --git a/packages/efl/ecore/.mtn2git_empty b/packages/efl1/evas/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/ecore/.mtn2git_empty +++ b/packages/efl1/evas/.mtn2git_empty diff --git a/packages/efl/evas/fix-configure.patch b/packages/efl1/evas/fix-configure.patch index abf9b94bdf..abf9b94bdf 100644 --- a/packages/efl/evas/fix-configure.patch +++ b/packages/efl1/evas/fix-configure.patch diff --git a/packages/efl/evas/pagesize.patch b/packages/efl1/evas/pagesize.patch index 5efd16a96e..5efd16a96e 100644 --- a/packages/efl/evas/pagesize.patch +++ b/packages/efl1/evas/pagesize.patch diff --git a/packages/efl1/evas_0.9.9.038.bb b/packages/efl1/evas_0.9.9.038.bb new file mode 100644 index 0000000000..79fdd42173 --- /dev/null +++ b/packages/efl1/evas_0.9.9.038.bb @@ -0,0 +1,58 @@ +require evas.inc +PR = "r9" + +EXTRA_OECONF = "\ + --x-includes=${STAGING_INCDIR}/X11 \ + --x-libraries=${STAGING_LIBDIR} \ + --enable-fb \ + --enable-directfb \ + --enable-buffer \ + --disable-software-ddraw \ + --disable-software-qtopia \ + --enable-software-x11 \ + --enable-software-16-x11 \ + --disable-software-xcb \ + --disable-gl-x11 \ + --enable-xrender-x11 \ + --disable-xrender-xcb \ + --disable-glitz-x11 \ + --enable-image-loader-eet \ + --disable-image-loader-edb \ + --disable-image-loader-gif \ + --enable-image-loader-png \ + --enable-image-loader-jpeg \ + --enable-image-loader-tiff \ + --enable-image-loader-xpm \ + --enable-image-loader-svg \ + --enable-cpu-c \ + --enable-fontconfig \ + --enable-font-loader-eet \ + --enable-scale-sample \ + --enable-scale-smooth \ + --enable-convert-yuv \ + --enable-small-dither-mask \ + --disable-no-dither-mask \ + --disable-convert-8-rgb-332 \ + --disable-convert-8-rgb-666 \ + --disable-convert-8-rgb-232 \ + --disable-convert-8-rgb-222 \ + --disable-convert-8-rgb-221 \ + --disable-convert-8-rgb-121 \ + --disable-convert-8-rgb-111 \ + --enable-convert-16-rgb-565 \ + --disable-convert-16-rgb-555 \ + --disable-convert-16-rgb-444 \ + --disable-convert-16-rgb-ipq \ + --enable-convert-16-rgb-rot-0 \ + --disable-convert-16-rgb-rot-90 \ + --enable-convert-16-rgb-rot-270 \ + --disable-convert-24-rgb-888 \ + --disable-convert-24-bgr-888 \ + --disable-convert-32-rgb-8888 \ + --disable-convert-32-rgbx-8888 \ + --disable-convert-32-bgr-8888 \ + --disable-convert-32-bgrx-8888 \ + --disable-convert-32-rgb-rot-0 \ + --disable-convert-32-rgb-rot-90 \ + --disable-convert-32-rgb-rot-270" + diff --git a/packages/efl1/ewl_0.5.1.009.bb b/packages/efl1/ewl_0.5.1.009.bb new file mode 100644 index 0000000000..9d60a67b82 --- /dev/null +++ b/packages/efl1/ewl_0.5.1.009.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "The Enlightened Widget Library, \ +a simple-to-use general purpose widget library \ +based on the enlightenment foundation libraries." +DEPENDS = "evas ecore edje emotion efreet" +RSUGGESTS_${PN} += "ewl-themes" +LICENSE = "MIT" +PR = "r0" + +inherit efl1 + +SRC_URI = "http://download.enlightenment.org/snapshots/2007-06-17/ewl-${PV}.tar.gz" diff --git a/packages/efl1/exml_cvs.bb b/packages/efl1/exml_cvs.bb new file mode 100644 index 0000000000..5ffdaef266 --- /dev/null +++ b/packages/efl1/exml_cvs.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "Exml is a generic XML parser wrapper." +LICENSE = "MIT" +DEPENDS = "libxml2 libxslt ecore" + +inherit efl1 + +SRC_URI = "${E_CVS};module=e17/libs/exml" +S = "${WORKDIR}/exml" + +PACKAGES =+ "${PN}-tests" +FILES_${PN}-tests = "${bindir}/*_* ${datadir}" +FILES_${PN}-dev += "${bindir}/*-config" +FILES_${PN} = "${libdir}/*.so*" diff --git a/packages/efl1/imlib2_1.4.0.001.bb b/packages/efl1/imlib2_1.4.0.001.bb new file mode 100644 index 0000000000..8b056b1ed2 --- /dev/null +++ b/packages/efl1/imlib2_1.4.0.001.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "A graphic library for file loading, saving, rendering, and manipulation." +LICENSE = "BSD" +# can also depend on tiff34, ungif or gif, z, bz2, id3tag +DEPENDS = "freetype libpng jpeg" + +inherit efl1 + +PACKAGES =+ "imlib2-loaders-dbg imlib2-filters-dbg imlib2-loaders imlib2-filters" +FILES_${PN} = "${libdir}/lib*.so.* ${libdir}/imlib2/*/*.so" +FILES_${PN}-dbg = "${libdir}/.debug/" +FILES_${PN}-dev += "${bindir}/imlib2-config ${libdir}/*.so ${includedir}" +FILES_${PN}-bin = "${bindir}" +FILES_imlib2-loaders = "${libdir}/imlib2/loaders/*.so" +FILES_imlib2-filters = "${libdir}/imlib2/filters/*.so" +FILES_imlib2-loaders-dbg += "${libdir}/imlib2/loaders/.debug" +FILES_imlib2-filters-dbg += "${libdir}/imlib2/filters/.debug" diff --git a/packages/elitaire/elitaire_0.0.5.bb b/packages/elitaire/elitaire_0.0.5.bb deleted file mode 100644 index b33e9fa014..0000000000 --- a/packages/elitaire/elitaire_0.0.5.bb +++ /dev/null @@ -1,12 +0,0 @@ -DESCRIPTION = "EFL-based solitaire" -DEPENDS = "evas-x11 ecore-x11 edje esmart-x11 ewl" -LICENSE = "MIT" -SECTION = "e/apps" -PR = "r0" - -SRC_URI = "http://www.mowem.de/elitaire/elitaire-${PV}.tar.bz2 \ - file://fix-ewl-and-gettext.patch;patch=1 \ - file://math.patch;patch=1" - -inherit autotools pkgconfig binconfig - diff --git a/packages/elitaire/files/fix-ewl-and-gettext.patch b/packages/elitaire/files/fix-ewl-and-gettext.patch deleted file mode 100644 index f572124f94..0000000000 --- a/packages/elitaire/files/fix-ewl-and-gettext.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -Nur elitaire-0.0.4~/src/intl.h elitaire-0.0.4/src/intl.h ---- elitaire-0.0.4~/src/intl.h 2005-08-18 19:02:30.000000000 -0700 -+++ elitaire-0.0.4/src/intl.h 2005-08-18 19:06:05.000000000 -0700 -@@ -13,8 +13,12 @@ - - inline char * sgettext(const char *msgid) - { -+#ifdef ENABLE_NLS - char *msgval = gettext (msgid); - if (msgval == msgid) -+#else -+ char *msgval; -+#endif - msgval = strrchr (msgid, '|') + 1; - return msgval; - } diff --git a/packages/elitaire/files/math.patch b/packages/elitaire/files/math.patch deleted file mode 100644 index 550507f370..0000000000 --- a/packages/elitaire/files/math.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- elitaire-0.0.4/src/Elitaire.h~ 2005-08-15 06:32:32.000000000 -0700 -+++ elitaire-0.0.4/src/Elitaire.h 2005-09-29 19:19:25.000000000 -0700 -@@ -3,6 +3,11 @@ - #include<Evas.h> - #include<Edje.h> - #include"intl.h" -+#include<tgmath.h> -+ -+#ifndef ABS -+#define ABS(x) ((x) >= 0 ? (x) : -(x)) -+#endif - - struct Elitaire{ - diff --git a/packages/esound/esound-gpe/audiofile-please.patch b/packages/esound/esound-gpe/audiofile-please.patch deleted file mode 100644 index 0bfb629040..0000000000 --- a/packages/esound/esound-gpe/audiofile-please.patch +++ /dev/null @@ -1,40 +0,0 @@ ---- esound/esd.h~ 2002-07-19 13:36:44.000000000 +0100 -+++ esound/esd.h 2004-05-16 11:04:29.000000000 +0100 -@@ -1,6 +1,8 @@ - #ifndef ESD_H - #define ESD_H - -+#define SUPPORT_AUDIOFILE -+ - #ifdef SUPPORT_AUDIOFILE - #include <audiofile.h> - #endif ---- esound/Makefile.am~ 2002-07-19 13:36:44.000000000 +0100 -+++ esound/Makefile.am 2004-05-16 10:56:35.000000000 +0100 -@@ -26,8 +26,8 @@ - lib_LTLIBRARIES = libesd.la $(libesddsp_la) - - libesd_la_LDFLAGS = -version-info $(ESD_VERSION_INFO) --#libesd_la_LIBADD = $(AUDIOFILE_LIBS) $(SOUND_LIBS) --libesd_la_LIBADD = $(SOUND_LIBS) -+libesd_la_LIBADD = $(AUDIOFILE_LIBS) $(SOUND_LIBS) -+#libesd_la_LIBADD = $(SOUND_LIBS) - - libesd_la_SOURCES = \ - esdlib.c \ -@@ -36,6 +36,7 @@ - audio.c \ - genrand.c \ - genrand.h \ -+ esdfile.c \ - util.c - - # one of these gets included by audio.c -@@ -79,7 +80,6 @@ - proto.c \ - samples.c \ - $(getopt_src) \ -- util.c \ - esd-server.h - - esdcat_SOURCES = \ diff --git a/packages/esound/esound-gpe/configure.patch b/packages/esound/esound-gpe/configure.patch deleted file mode 100644 index c6c33df11c..0000000000 --- a/packages/esound/esound-gpe/configure.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- esound/configure.in~ 2002-07-19 13:14:01.000000000 +0100 -+++ esound/configure.in 2004-05-16 10:51:48.000000000 +0100 -@@ -352,17 +352,5 @@ - esound.spec - esound.pc - esddsp --docs/Makefile --docs/esd.1 --docs/esdcat.1 --docs/esd-config.1 --docs/esdctl.1 --docs/esddsp.1 --docs/esdfilt.1 --docs/esdloop.1 --docs/esdmon.1 --docs/esdplay.1 --docs/esdrec.1 --docs/esdsample.1 - ]) - dnl , [case "$CONFIG_FILES" in *esd-config*) chmod +x esd-config;; esac]) diff --git a/packages/esound/esound_0.2.36.bb b/packages/esound/esound_0.2.36.bb index 1cf99ac90a..4f068113d5 100644 --- a/packages/esound/esound_0.2.36.bb +++ b/packages/esound/esound_0.2.36.bb @@ -1,19 +1,20 @@ -DESCRIPTION = "Enlightened Sound Daemon - GPE version" +DESCRIPTION = "Enlightened Sound Daemon" SECTION = "gpe/base" LICENSE = "GPL" DEPENDS = "audiofile" - -PR = "r1" +PE = "1" +PR = "r2" inherit gnome binconfig -SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.36.tar.bz2" +SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/esound-0.2.36.tar.bz2 \ + file://no-docs.patch;patch=1" EXTRA_OECONF = " \ - --disable-alsa \ - --disable-arts \ - --disable-artstest \ - " + --disable-alsa \ + --disable-arts \ + --disable-artstest \ +" do_configure_prepend() { sed -i -e 's:/usr/include/mme:${STAGING_INCDIR}/mme:g' configure.ac } diff --git a/packages/efl/edb-native/.mtn2git_empty b/packages/esound/files/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/edb-native/.mtn2git_empty +++ b/packages/esound/files/.mtn2git_empty diff --git a/packages/esound/files/no-docs.patch b/packages/esound/files/no-docs.patch new file mode 100644 index 0000000000..fc69f1a038 --- /dev/null +++ b/packages/esound/files/no-docs.patch @@ -0,0 +1,11 @@ +Index: esound-0.2.36/Makefile.am +=================================================================== +--- esound-0.2.36.orig/Makefile.am ++++ esound-0.2.36/Makefile.am +@@ -1,5 +1,5 @@ + +-SUBDIRS = docs ++SUBDIRS = + + ACLOCAL_FLAGS = -I m4 + diff --git a/packages/esound/old/esound-gpe_20020817.bb b/packages/esound/old/esound-gpe_20020817.bb deleted file mode 100644 index a698211f7d..0000000000 --- a/packages/esound/old/esound-gpe_20020817.bb +++ /dev/null @@ -1,35 +0,0 @@ -DESCRIPTION = "Enlightened Sound Daemon - GPE version" -SECTION = "gpe/base" -LICENSE = "GPL" -DEPENDS = "audiofile" -PR = "r5" -PROVIDES += "esound" -RPROVIDES += "esound" - -SRCDATE := "${PV}" -SRC_URI = "svn://projects.linuxtogo.org/svn/gpe/trunk/base/;module=esound;date=20061119 \ - file://audiofile-please.patch;patch=1 \ - file://configure.patch;patch=1" - -S = "${WORKDIR}/esound" - -inherit autotools binconfig pkgconfig - -EXTRA_OECONF = "--disable-alsa" - -SOV = "0.2.28" -PV = "${SOV}+cvs${SRCDATE}" - - -do_stage () { - install -m 0644 esd.h ${STAGING_INCDIR}/esd.h - oe_soinstall .libs/libesd.so.${SOV} ${STAGING_LIBDIR} - install -m 0644 .libs/libesd.lai ${STAGING_LIBDIR}/libesd.la - install -m 0644 esd.m4 ${STAGING_DATADIR}/aclocal -} - -PACKAGES =+ "esddsp esd esd-utils" - -FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" -FILES_esd = "${bindir}/esd" -FILES_esd-utils = "${bindir}/*" diff --git a/packages/esound/old/esound-gpe_20070109.bb b/packages/esound/old/esound-gpe_20070109.bb deleted file mode 100644 index 850def76a0..0000000000 --- a/packages/esound/old/esound-gpe_20070109.bb +++ /dev/null @@ -1,34 +0,0 @@ -DESCRIPTION = "Enlightened Sound Daemon - GPE version" -SECTION = "gpe/base" -LICENSE = "GPL" -DEPENDS = "audiofile" -PR = "r0" -PROVIDES += "esound" -RPROVIDES += "esound" - -SRCDATE = "${PV}" -SRC_URI = "svn://projects.linuxtogo.org/svn/gpe/trunk/;module=extra/esound;rev=8935 \ - file://audiofile-please.patch;patch=1 \ - file://configure.patch;patch=1" - -S = "${WORKDIR}/esound" - -inherit autotools binconfig pkgconfig - -EXTRA_OECONF = "--disable-alsa" - -SOV = "0.2.28" -PV = "${SOV}+cvs${SRCDATE}" - -do_stage () { - install -m 0644 esd.h ${STAGING_INCDIR}/esd.h - oe_soinstall .libs/libesd.so.${SOV} ${STAGING_LIBDIR} - install -m 0644 .libs/libesd.lai ${STAGING_LIBDIR}/libesd.la - install -m 0644 esd.m4 ${STAGING_DATADIR}/aclocal -} - -PACKAGES =+ "esddsp esd esd-utils" - -FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*" -FILES_esd = "${bindir}/esd" -FILES_esd-utils = "${bindir}/*" diff --git a/packages/fbreader/fbreader_0.8.2a.bb b/packages/fbreader/fbreader_0.8.2a.bb index 3a0dc543e8..2419ccf4ae 100644 --- a/packages/fbreader/fbreader_0.8.2a.bb +++ b/packages/fbreader/fbreader_0.8.2a.bb @@ -4,7 +4,7 @@ HOMEPAGE = "http://only.mawhrin.net/fbreader/" SECTION = "x11/utils" PRIORITY = "optional" DEPENDS = "gtk+ enca expat bzip2 libgpewidget" -PR = "r3" +PR = "r4" # The RESOLUTION is defined at compile time which makes # this package MACHINE specific. @@ -13,6 +13,12 @@ PACKAGE_ARCH_${PN} = "${MACHINE_ARCH}" SRC_URI = "http://only.mawhrin.net/fbreader/fbreader-sources-${PV}.tgz \ file://fbreader-0.8.2a_buildsys_oe.patch;patch=1 \ file://480x640-buildfix.patch;patch=1" + +SRC_URI_append_spitz = "\ + file://zaurus-VGA.patch;patch=1" + +SRC_URI_append_akita = "\ + file://zaurus-VGA.patch;patch=1" # Set the defaults READER_RESOLUTION = "240x320" @@ -22,6 +28,8 @@ READER_STATUS = "release" # Set device specific overrides READER_RESOLUTION_fic-gta01 = "480x640" +READER_RESOLUTION_spitz = "640x480" +READER_RESOLUTION_akita = "640x480" FILES_${PN} += "${datadir}/FBReader ${datadir}/zlibrary" diff --git a/packages/fbreader/files/zaurus-VGA.patch b/packages/fbreader/files/zaurus-VGA.patch new file mode 100644 index 0000000000..5ba7d91b9d --- /dev/null +++ b/packages/fbreader/files/zaurus-VGA.patch @@ -0,0 +1,13 @@ +--- fbreader-0.8.2a/fbreader/data/default/styles.gpe640x480.xml.orig 2007-06-24 23:55:56.000000000 +0000 ++++ fbreader-0.8.2a/fbreader/data/default/styles.gpe640x480.xml 2007-06-24 23:56:22.000000000 +0000 +@@ -1,8 +1,8 @@ + <?xml version="1.0" encoding="UTF-8"?> + <DefaultStyles> +- <base family="Sans" fontSize="16"/> ++ <base family="Sans" fontSize="8"/> + <style id="0" name="Regular Paragraph" firstLineIndentDelta="22" allowHyphenations="true"/> +- <style id="1" name="Title" fontSizeDelta="10" bold="true" spaceBefore="2" spaceAfter="7" alignment="center" allowHyphenations="false"/> ++ <style id="1" name="Title" fontSizeDelta="5" bold="true" spaceBefore="2" spaceAfter="7" alignment="center" allowHyphenations="false"/> + <style id="3" name="Poem Title" fontSizeDelta="2" bold="true" spaceBefore="6" spaceAfter="6" leftIndent="40" allowHyphenations="false"/> + <style id="2" name="Section Title" fontSizeDelta="6" bold="true" spaceAfter="5" alignment="center" allowHyphenations="false"/> + <style id="31" name="Header 1" fontSizeDelta="6" bold="true" spaceAfter="5" alignment="center" allowHyphenations="false"/> diff --git a/packages/gaim/pidgin_2.0.1.bb b/packages/gaim/pidgin_2.0.2.bb index 99bc3a34e9..e0f865722e 100644 --- a/packages/gaim/pidgin_2.0.1.bb +++ b/packages/gaim/pidgin_2.0.2.bb @@ -6,4 +6,4 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \ file://pidgin.desktop-set-icon.patch;patch=1 \ " -PR = "r4" +PR = "r0" diff --git a/packages/gdal/gdal_1.3.2.bb b/packages/gdal/gdal_1.3.2.bb index 2a97cfe81d..60f86b165a 100644 --- a/packages/gdal/gdal_1.3.2.bb +++ b/packages/gdal/gdal_1.3.2.bb @@ -5,7 +5,7 @@ DEPENDS = "zlib" SRC_URI = "http://www.gdal.org/dl/${P}.tar.gz" -inherit autotools pkgconfig +inherit autotools pkgconfig binconfig PARALLEL_MAKE = "" @@ -36,3 +36,7 @@ do_package_prepend() { os.system('cp -pPR ${D}${D}* ${D}../') } +do_stage() { + autotools_stage_all +} + diff --git a/packages/geoclue/geoclue_svn.bb b/packages/geoclue/geoclue_git.bb index 4237d1ebe6..376abdc326 100644 --- a/packages/geoclue/geoclue_svn.bb +++ b/packages/geoclue/geoclue_git.bb @@ -1,19 +1,17 @@ DESCRIPTION = "GeoClue is a project that provide all kinds of geography information to an application" HOMEPAGE = "http://live.gnome.org/GeoClue" -DEPENDS = "gpsd libsoup dbus-glib" +DEPENDS = "gpsd libxml2 libsoup dbus-glib" -PV = "0.0+svn${SRCDATE}" -PR = "r1" +PV = "0.0+git${SRCDATE}" +PR = "r0" +PE = "1" inherit autotools pkgconfig -SRC_URI = "svn://svn.foinse-project.org/geoclue;module=trunk;proto=http" +SRC_URI = "git://anongit.freedesktop.org/git/geoclue;protocol=git" -S = "${WORKDIR}/trunk" - - -EXTRA_OECONF = "--disable-panel-applet" +S = "${WORKDIR}/git" do_install_append() { mkdir -p ${D}/usr/share/ diff --git a/packages/efl/epsilon/.mtn2git_empty b/packages/geos/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/epsilon/.mtn2git_empty +++ b/packages/geos/.mtn2git_empty diff --git a/packages/geos/geos_2.2.3+3.0.0rc4.bb b/packages/geos/geos_2.2.3+3.0.0rc4.bb new file mode 100644 index 0000000000..90bcc4b384 --- /dev/null +++ b/packages/geos/geos_2.2.3+3.0.0rc4.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS)." +HOMEPAGE = "http://geos.refractions.net/" +LICENSE = "GPLv2"" + +DEPENDS = "boost" + +PR = "r1" + +SRC_URI = "http://geos.refractions.net/geos-3.0.0rc4.tar.bz2" + +S = "${WORKDIR}/geos-3.0.0rc4" + +inherit autotools pkgconfig lib_package binconfig + +EXTRA_OECONF = "--disable-swig" + +do_stage() { + autotools_stage_all +} + + diff --git a/packages/gpe-conf/gpe-conf_0.2.6.bb b/packages/gpe-conf/gpe-conf_0.2.6.bb new file mode 100644 index 0000000000..1256ce5291 --- /dev/null +++ b/packages/gpe-conf/gpe-conf_0.2.6.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Configuration applets for GPE" +SECTION = "gpe" +PRIORITY = "optional" +LICENSE = "GPL" + +DEPENDS = "gtk+ esound audiofile libgpewidget libxsettings libxsettings-client libxrandr" +RDEPENDS_${PN} = "xst xset ntpdate gpe-login gpe-icons tzdata xrandr" +RDEPENDS_gpe-conf-panel = "gpe-conf" + +RPROVIDES_${PN} += " bl" +RCONFLICTS_${PN} = "bl" + +PR = "r0" + +GPE_TARBALL_SUFFIX = "bz2" + +inherit gpe autotools pkgconfig + +PACKAGES += "gpe-conf-panel" + +FILES_${PN} = "${sysconfdir} ${bindir} ${datadir}/pixmaps \ + ${datadir}/applications/gpe-conf-* ${datadir}/gpe/pixmaps \ + ${datadir}/gpe-conf" +FILES_gpe-conf-panel = "${datadir}/applications/gpe-conf.desktop" + diff --git a/packages/gpsbabel/gpsbabel_1.2.5.bb b/packages/gpsbabel/gpsbabel_1.2.5.bb index bd7e1246ca..987b000f10 100644 --- a/packages/gpsbabel/gpsbabel_1.2.5.bb +++ b/packages/gpsbabel/gpsbabel_1.2.5.bb @@ -1,15 +1,17 @@ SECTION = "console/utils" DESCRIPTION = "GPS data converter" -DEPENDS = "expat" +DEPENDS = "expat libusb" HOMEPAGE = "http://gpsbabel.sf.net" LICENSE = "GPL" +PR = "r1" + SRC_URI = "${SOURCEFORGE_MIRROR}/gpsbabel/gpsbabel-${PV}.tar.gz" inherit autotools pkgconfig do_compile () { - oe_runmake EXTRA_CFLAGS="-I${STAGING_INCDIR} -L${STAGING_LIBDIR}" INHIBIT_USB=-DNO_USB LIBUSB= + oe_runmake EXTRA_CFLAGS="-I${STAGING_INCDIR} -L${STAGING_LIBDIR}" } do_install () { diff --git a/packages/gpsbabel/gpsbabel_1.3.3.bb b/packages/gpsbabel/gpsbabel_1.3.3.bb new file mode 100644 index 0000000000..f9a8d98d4e --- /dev/null +++ b/packages/gpsbabel/gpsbabel_1.3.3.bb @@ -0,0 +1,20 @@ +SECTION = "console/utils" +DESCRIPTION = "GPS data converter" +DEPENDS = "expat libusb" +HOMEPAGE = "http://gpsbabel.sf.net" +LICENSE = "GPL" + +PR = "r0" + +SRC_URI = "${SOURCEFORGE_MIRROR}/gpsbabel/gpsbabel-${PV}.tar.gz" + +inherit autotools pkgconfig + +do_compile () { + oe_runmake EXTRA_CFLAGS="-I${STAGING_INCDIR} -L${STAGING_LIBDIR}" +} + +do_install () { + install -d ${D}${bindir} + install -m 0744 gpsbabel ${D}${bindir} +} diff --git a/packages/gtk-webcore/midori_0.0.2.bb b/packages/gtk-webcore/midori_0.0.2.bb new file mode 100644 index 0000000000..7f5fb6cd74 --- /dev/null +++ b/packages/gtk-webcore/midori_0.0.2.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Midori is a lightweight web browser." +LICENSE = "GPLv2" + +DEPENDS = "osb-jscore osb-nrcit osb-nrcore libsexy" + +inherit autotools pkgconfig + +SRC_URI = "http://software.twotoasts.de/media/midori/midori-${PV}.tar.gz" + + + diff --git a/packages/gtk-webcore/osb-nrcore.inc b/packages/gtk-webcore/osb-nrcore.inc index 3b71c9685d..7cbf0ce890 100644 --- a/packages/gtk-webcore/osb-nrcore.inc +++ b/packages/gtk-webcore/osb-nrcore.inc @@ -18,6 +18,14 @@ do_configure () { mv ${TARGET_PREFIX}libtool.tmp ${TARGET_PREFIX}libtool } +do_install_append() { + #backward compat for some apps + ln -sf ${datadir}/gtk-webcore-nrcore ${D}${datadir}/osb-nrcore +} + +FILES_${PN} += "${datadir}/gtk-webcore-nrcore" + + do_stage () { oe_libinstall -so libnrcore ${STAGING_LIBDIR} oe_libinstall -so -C kwiq libnrcore_kwiq_gtk ${STAGING_LIBDIR} @@ -30,3 +38,4 @@ do_stage () { done } + diff --git a/packages/gtk-webcore/osb-nrcore_svn.bb b/packages/gtk-webcore/osb-nrcore_svn.bb index a6a70059fa..b9af57ad52 100644 --- a/packages/gtk-webcore/osb-nrcore_svn.bb +++ b/packages/gtk-webcore/osb-nrcore_svn.bb @@ -3,7 +3,7 @@ require osb-nrcore.inc DEFAULT_PREFERENCE = "-1" PV = "0.5.2+svn${SRCDATE}" -PR = "r0" +PR = "r1" SRC_URI = "svn://gtk-webcore.svn.sourceforge.net/svnroot/gtk-webcore/trunk;module=NRCore;proto=https \ file://gcc4-fno-threadsafe-statics-NRCore.patch;patch=1 \ diff --git a/packages/images/angstrom-minimal-image.bb b/packages/images/angstrom-minimal-image.bb index c79bff25e2..83d814a79a 100644 --- a/packages/images/angstrom-minimal-image.bb +++ b/packages/images/angstrom-minimal-image.bb @@ -1,13 +1,15 @@ #Angstrom minimalist image #gives you a small images with ssh access LICENSE = "MIT" -PR = "r1" +PR = "r3" ANGSTROM_EXTRA_INSTALL ?= "" DISTRO_SSH_DAEMON ?= "dropbear" +IMAGE_LINGUAS = " " RDEPENDS = "task-boot \ ${DISTRO_SSH_DAEMON} \ + angstrom-version \ " export IMAGE_BASENAME = "minimalist-image" diff --git a/packages/images/hentges-console-image.bb b/packages/images/hentges-console-image.bb deleted file mode 100644 index 87381a4c77..0000000000 --- a/packages/images/hentges-console-image.bb +++ /dev/null @@ -1,37 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 -# License: MIT (see http://www.opensource.org/licenses/mit-license.php -# for a copy of the license) -# -# Filename: hentges-console-image.bb -# Date: 20070516 (YMD) - -DESCRIPTION = "Hentges Console Image" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "GPL" - -###################################################################################### - -PV = "${HENTGES_PV}" -PR = "${HENTGES_PR}" - -###################################################################################### - -export IMAGE_NAME = "hentges-console-image" -export IMAGE_LINGUAS = "" -export PACKAGE_INSTALL = "${RDEPENDS}" - -###################################################################################### - -DEPENDS = "task-base \ - task-hentges-base" - -RDEPENDS = "task-base \ - task-hentges-base" - -###################################################################################### - -inherit image - - diff --git a/packages/images/hentges-x11-image.bb b/packages/images/hentges-x11-image.bb deleted file mode 100644 index 475f9f0ea9..0000000000 --- a/packages/images/hentges-x11-image.bb +++ /dev/null @@ -1,47 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 -# License: MIT (see http://www.opensource.org/licenses/mit-license.php -# for a copy of the license) -# -# Filename: hentges-x11-image.bb -# Date: 20070522 (YMD) - -DESCRIPTION = "Hentges X11 Image" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "MIT" - -###################################################################################### - -PV = "${HENTGES_PV}" -PR = "${HENTGES_PR}" - -###################################################################################### - -export IMAGE_NAME = "hentges-x11-image" -export IMAGE_LINGUAS = "" -export PACKAGE_INSTALL = "${RDEPENDS}" - -###################################################################################### - -PREFERRED_PROVIDER_libgpewidget ?= "libgpewidget" -PREFERRED_PROVIDER_tslib ?= "tslib" -PREFERRED_PROVIDER_virtual/libsdl ?= "libsdl-x11" -PREFERRED_PROVIDER_virtual/libxine ?= "libxine-x11" -PREFERRED_PROVIDER_virtual/libx11 ?= "diet-x11" - -###################################################################################### - -DEPENDS = "task-base \ - task-hentges-base \ - task-hentges-x11" - -RDEPENDS = "task-base \ - task-hentges-base \ - task-hentges-x11" - -###################################################################################### - -inherit image - - diff --git a/packages/images/opie-image-16mb.bb b/packages/images/opie-image-16mb.bb new file mode 100644 index 0000000000..9c0ed1cacc --- /dev/null +++ b/packages/images/opie-image-16mb.bb @@ -0,0 +1,69 @@ +export IMAGE_BASENAME = "opie-image-16mb" +export IMAGE_LINGUAS = "" + +LICENSE = "MIT" +PR = "r1" + +DEPENDS = "${MACHINE_TASK_PROVIDER} task-opie-16mb" +RDEPENDS = "${INSTALL_PACKAGES}" + +INSTALL_PACKAGES = "task-boot \ + ipkg ipkg-collateral \ + dropbear \ + task-opie-16mb-base \ + task-opie-16mb-applets \ + task-opie-16mb-inputmethods \ + task-opie-16mb-settings \ + task-opie-16mb-apps \ + task-opie-16mb-pim \ + task-opie-irda" + +export PACKAGE_INSTALL = "${INSTALL_PACKAGES}" + +# merge feed-sources into ipkg.conf for opie-aqpkg as it can't handle feed-sources outside of ipkg.conf. +merge_feeds() { + + if ! test -z "${FEED_URIS}" + then + # Die gracefully if ipkg-collateral failed + if ! test -e "${IMAGE_ROOTFS}/etc/ipkg.conf" + then + echo "[${IMAGE_ROOTFS}/etc/ipkg.conf] is missing!" + exit 1 + fi + + # comment out existing feed-sources inserted by ipkg-collateral + cat ${IMAGE_ROOTFS}/etc/ipkg.conf | sed "s/^src\ /#src\ /" > ${IMAGE_ROOTFS}/etc/ipkg.conf_ + rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf + + # extract, then delete destinations + cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf.dest + cat ${IMAGE_ROOTFS}/etc/ipkg.conf | egrep -v "^dest\ " > ${IMAGE_ROOTFS}/etc/ipkg.conf_ + rm ${IMAGE_ROOTFS}/etc/ipkg.conf && mv ${IMAGE_ROOTFS}/etc/ipkg.conf_ ${IMAGE_ROOTFS}/etc/ipkg.conf + + + for line in ${FEED_URIS} + do + # strip leading and trailing spaces/tabs, then split into name and uri + line_clean="`echo "$line"|sed 's/^[ \t]*//;s/[ \t]*$//'`" + feed_name="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\1/p'`" + feed_uri="`echo "$line_clean" | sed -n 's/\(.*\)##\(.*\)/\2/p'`" + + # insert new feed-sources + echo "src/gz $feed_name $feed_uri" >> ${IMAGE_ROOTFS}/etc/ipkg.conf + done + + # remove temporary files and rebuild ipkg.conf + echo "" >> ${IMAGE_ROOTFS}/etc/ipkg.conf + cat ${IMAGE_ROOTFS}/etc/ipkg.conf.dest >> ${IMAGE_ROOTFS}/etc/ipkg.conf + rm ${IMAGE_ROOTFS}/etc/ipkg.conf.dest + + # remove -feed.conf files which are no longer needed + cd ${IMAGE_ROOTFS}/etc/ipkg/ && rm -- *-feed.conf + fi +} + +# merge feed-sources into ipkg.conf and create /etc/timestamp from build date +IMAGE_PREPROCESS_COMMAND = "merge_feeds; create_etc_timestamp" + +inherit image diff --git a/packages/efl/esmart/.mtn2git_empty b/packages/initscripts/initscripts-1.0/fic-gta01/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/esmart/.mtn2git_empty +++ b/packages/initscripts/initscripts-1.0/fic-gta01/.mtn2git_empty diff --git a/packages/initscripts/initscripts-1.0/fic-gta01/inittab b/packages/initscripts/initscripts-1.0/fic-gta01/inittab new file mode 100644 index 0000000000..8d313b2a58 --- /dev/null +++ b/packages/initscripts/initscripts-1.0/fic-gta01/inittab @@ -0,0 +1,48 @@ +# /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 + +# Shut down if kernel sends us SIGINT or SIGPWR +ca::ctrlaltdel:/sbin/halt -p +pf::powerfailnow:/sbin/halt -p + +# /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 + +# /sbin/getty invocations for the runlevels. +# +# The "id" field MUST be the same as the last +# characters of the device (after "tty"). +# +# Format: +# <id>:<runlevels>:<action>:<process> + +# NOTE: FIC GTA01 has this odd multiplexer on ttySAC0 since +# GSM shares it with the serial output. We only allow +# the getty in runlevel 2 to cope with that. gsmd gets +# started in runlevel 3. -- mickey@openmoko.org +S:2:respawn:/sbin/getty 115200 ttySAC0 diff --git a/packages/initscripts/initscripts-1.0/mountall.sh b/packages/initscripts/initscripts-1.0/mountall.sh index 65d5d26b24..53bff0fbce 100755 --- a/packages/initscripts/initscripts-1.0/mountall.sh +++ b/packages/initscripts/initscripts-1.0/mountall.sh @@ -4,6 +4,9 @@ # Version: @(#)mountall.sh 2.83-2 01-Nov-2001 miquels@cistron.nl # . /etc/default/rcS +if test -f /etc/default/mountall; then + . /etc/default/mountall +fi # # Mount local filesystems in /etc/fstab. For some reason, people @@ -11,7 +14,7 @@ # about this. So we mount "proc" filesystems without -v. # test "$VERBOSE" != no && echo "Mounting local filesystems..." -mount -at nonfs,nosmbfs,noncpfs 2>/dev/null +mount -a $MOUNTALL 2>&1 | logger -s -p user.err # # We might have mounted something over /dev, see if /dev/initctl is there. diff --git a/packages/initscripts/initscripts_1.0.bb b/packages/initscripts/initscripts_1.0.bb index 23530b6dc8..39b1eee9c1 100644 --- a/packages/initscripts/initscripts_1.0.bb +++ b/packages/initscripts/initscripts_1.0.bb @@ -4,7 +4,7 @@ PRIORITY = "required" DEPENDS = "makedevs" RDEPENDS = "makedevs" LICENSE = "GPL" -PR = "r93" +PR = "r96" SRC_URI = "file://halt \ file://ramdisk \ diff --git a/packages/iptables/iptables_1.3.8.bb b/packages/iptables/iptables_1.3.8.bb new file mode 100644 index 0000000000..eccc1c077a --- /dev/null +++ b/packages/iptables/iptables_1.3.8.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "iptables network filtering tools" +HOMEPAGE = "http://www.netfilter.org/" +SECTION = "console/utils" +LICENSE = "GPL" +RRECOMMENDS = "kernel-module-ip-tables kernel-module-iptable-filter" +PR = "r0" +SRC_URI = "http://netfilter.org/projects/iptables/files/iptables-${PV}.tar.bz2 \ + " + +S = "${WORKDIR}/iptables-${PV}" + +PARALLEL_MAKE="" + +export COPT_FLAGS = "${CFLAGS}" +export KERNEL_DIR = "${STAGING_INCDIR}" + +do_compile () { + unset CFLAGS + oe_runmake BINDIR=${D}${sbindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} NO_SHARED_LIBS=1 +} + +do_install () { + unset CFLAGS + oe_runmake BINDIR=${D}${sbindir} LIBDIR=${D}${libdir} MANDIR=${D}${mandir} install NO_SHARED_LIBS=1 +} + +PACKAGES =+ "${PN}-utils" +FILES_${PN}-utils = "${sbindir}/iptables-save ${sbindir}/iptables-restore" +FILES_${PN}-doc += "${mandir}" + diff --git a/packages/irssi/irssi_svn.bb b/packages/irssi/irssi_svn.bb index 3f4662017f..7d09f116e5 100644 --- a/packages/irssi/irssi_svn.bb +++ b/packages/irssi/irssi_svn.bb @@ -6,6 +6,8 @@ DEPENDS += "ncurses glib-2.0" PV = "0.8.10+svn${SRCDATE}" PR = "r3" +DEFAULT_PREFERENCE = "-1" + PACKAGES += "${PN}-common" FILES_${PN} = "${bindir}/irssi" FILES_${PN}-common = "${datadir}/irssi ${sysconfdir}" diff --git a/packages/keymaps/files/jornada6xx/keymap-uk.map b/packages/keymaps/files/jornada6xx/keymap-uk.map index 4f511c8847..a7bb082464 100644 --- a/packages/keymaps/files/jornada6xx/keymap-uk.map +++ b/packages/keymaps/files/jornada6xx/keymap-uk.map @@ -26,14 +26,14 @@ keycode 7 = six asciicircum alt keycode 7 = Meta_six keycode 8 = seven ampersand braceleft control keycode 8 = Control_underscore - alt keycode 8 = KP_7 + altgr keycode 8 = KP_7 keycode 9 = eight asterisk bracketleft control keycode 9 = Delete - alt keycode 9 = KP_8 + altgr keycode 9 = KP_8 keycode 10 = nine parenleft bracketright - alt keycode 10 = KP_9 + altgr keycode 10 = KP_9 keycode 11 = zero parenright braceright - alt keycode 11 = KP_Divide + altgr keycode 11 = KP_Divide keycode 12 = minus underscore backslash control keycode 11 = Control_underscore shift control keycode 11 = Control_underscore @@ -52,13 +52,13 @@ keycode 18 = e keycode 19 = r keycode 20 = t keycode 21 = y - alt keycode 21 = KP_4 + altgr keycode 21 = KP_4 keycode 22 = u - alt keycode 22 = KP_5 + altgr keycode 22 = KP_5 keycode 23 = i - alt keycode 23 = KP_6 + altgr keycode 23 = KP_6 keycode 24 = o - alt keycode 24 = KP_Multiply + altgr keycode 24 = KP_Multiply keycode 25 = p AltGr keycode 25 = braceleft keycode 26 = backslash bar @@ -73,13 +73,13 @@ keycode 32 = d keycode 33 = f keycode 34 = g keycode 35 = h - alt keycode 35 = KP_1 + altgr keycode 35 = KP_1 keycode 36 = j - alt keycode 36 = KP_2 + altgr keycode 36 = KP_2 keycode 37 = k - alt keycode 37 = KP_3 + altgr keycode 37 = KP_3 keycode 38 = l - alt keycode 38 = KP_Subtract + altgr keycode 38 = KP_Subtract keycode 39 = semicolon colon bracketleft alt keycode 39 = Meta_semicolon keycode 40 = apostrophe quotedbl bracketright @@ -98,14 +98,14 @@ keycode 46 = c keycode 47 = v keycode 48 = b keycode 49 = n - alt keycode 49 = KP_0 + altgr keycode 49 = KP_0 keycode 50 = m - alt keycode 50 = KP_Comma + altgr keycode 50 = KP_Comma keycode 51 = comma less - alt keycode 51 = KP_Period + altgr keycode 51 = KP_Period keycode 52 = period greater control keycode 52 = Compose - alt keycode 52 = KP_Add + altgr keycode 52 = KP_Add keycode 54 = Shift keycode 56 = Alt keycode 57 = space space @@ -180,11 +180,11 @@ keycode 115 = slash question alt keycode 115 = Meta_slash keycode 123 = AltGr keycode 219 = Insert -string F1 = "\033[[A" -string F2 = "\033[[B" -string F3 = "\033[[C" -string F4 = "\033[[D" -string F5 = "\033[[E" +string F1 = "\033[11~" +string F2 = "\033[12~" +string F3 = "\033[13~" +string F4 = "\033[14~" +string F5 = "\033[15~" string F6 = "\033[17~" string F7 = "\033[18~" string F8 = "\033[19~" diff --git a/packages/libdaemon/libdaemon_0.11.bb b/packages/libdaemon/libdaemon_0.11.bb new file mode 100644 index 0000000000..c91f6351ff --- /dev/null +++ b/packages/libdaemon/libdaemon_0.11.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "libdaemon is a lightweight C library which eases the writing of UNIX daemons." +SECTION = "libs" +AUTHOR = "Lennart Poettering <lennart@poettering.net>" +HOMEPAGE = "http://0pointer.de/lennart/projects/libdaemon/" +LICENSE = "LGPL" +PR = "r0" + +SRC_URI = "http://0pointer.de/lennart/projects/libdaemon/libdaemon-${PV}.tar.gz" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-lynx --disable-doxygen" + +do_stage () { + oe_libinstall -a -so -C libdaemon libdaemon ${STAGING_LIBDIR} + install -d ${STAGING_INCDIR}/libdaemon + for i in daemon.h dlog.h dexec.h dfork.h dsignal.h dnonblock.h dpid.h; do + install -m 0644 ${S}/libdaemon/$i ${STAGING_INCDIR}/libdaemon/ + done +} diff --git a/packages/libftdi/files/doxygen-configure.patch b/packages/libftdi/files/doxygen-configure.patch index 6558cbd96f..150acb67d5 100644 --- a/packages/libftdi/files/doxygen-configure.patch +++ b/packages/libftdi/files/doxygen-configure.patch @@ -1,22 +1,22 @@ -Index: libftdi-0.8/configure.in +Index: libftdi-0.9/configure.in =================================================================== ---- libftdi-0.8.orig/configure.in -+++ libftdi-0.8/configure.in +--- libftdi-0.9.orig/configure.in ++++ libftdi-0.9/configure.in @@ -32,9 +32,5 @@ else AC_MSG_RESULT(yes) fi -dnl check for doxygen --AC_PATH_PROG(DOXYGEN, doxygen, $PATH) +-AC_PATH_PROG(DOXYGEN, doxygen) -AM_CONDITIONAL(HAVE_DOXYGEN, test -n $DOXYGEN); - AC_OUTPUT([libftdi-config],[chmod a+x libftdi-config]) -AC_OUTPUT(Makefile src/Makefile examples/Makefile doc/Doxyfile doc/Makefile libftdi.pc) +AC_OUTPUT(Makefile src/Makefile examples/Makefile libftdi.pc) -Index: libftdi-0.8/Makefile.am +Index: libftdi-0.9/Makefile.am =================================================================== ---- libftdi-0.8.orig/Makefile.am -+++ libftdi-0.8/Makefile.am +--- libftdi-0.9.orig/Makefile.am ++++ libftdi-0.9/Makefile.am @@ -2,7 +2,7 @@ # have all needed files, that a GNU package needs AUTOMAKE_OPTIONS = foreign 1.4 diff --git a/packages/libftdi/libftdi-native_0.8.bb b/packages/libftdi/libftdi-native_0.9.bb index 24f82778e5..24f82778e5 100644 --- a/packages/libftdi/libftdi-native_0.8.bb +++ b/packages/libftdi/libftdi-native_0.9.bb diff --git a/packages/libftdi/libftdi_0.8.bb b/packages/libftdi/libftdi_0.9.bb index 451d2e302f..f7426ceb1a 100644 --- a/packages/libftdi/libftdi_0.8.bb +++ b/packages/libftdi/libftdi_0.9.bb @@ -8,7 +8,7 @@ SRC_URI = "http://www.intra2net.com/de/produkte/opensource/ftdi/TGZ/libftdi-${PV file://doxygen-configure.patch;patch=1" S = "${WORKDIR}/libftdi-${PV}" -inherit autotools binconfig pkgconfig lib_package +inherit autotools EXTRA_OECONF = "--disable-docs" diff --git a/packages/efl/evas/.mtn2git_empty b/packages/libid3/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/evas/.mtn2git_empty +++ b/packages/libid3/.mtn2git_empty diff --git a/packages/libid3/libid3_1.1.bb b/packages/libid3/libid3_1.1.bb new file mode 100644 index 0000000000..9abb9375f4 --- /dev/null +++ b/packages/libid3/libid3_1.1.bb @@ -0,0 +1,13 @@ +DESCRIPTION = "libID3 is a small C library to parse ID3 tags. \ +It uses as little memory as possible, and has both DOM- and SAX-like models." +SECTION = "libs/multimedia" +LICENSE = "LGPL" + +SRC_URI = "http://download.tangent.org/libid3-${PV}.tar.gz" + +inherit autotools pkgconfig + +do_stage() { + autotools_stage_all +} + diff --git a/packages/libpcap/libpcap-0.9.6/shared.patch b/packages/libpcap/libpcap-0.9.6/shared.patch index d8118cf142..159389bb87 100644 --- a/packages/libpcap/libpcap-0.9.6/shared.patch +++ b/packages/libpcap/libpcap-0.9.6/shared.patch @@ -11,7 +11,7 @@ +# some defines for shared library compilation - FIXME, if not matching +MAJ=0.9 -+MIN=5 ++MIN=6 +VERSION=$(MAJ).$(MIN) +LIBNAME=pcap +LIBRARY=lib$(LIBNAME).a diff --git a/packages/libpcap/libpcap_0.9.6.bb b/packages/libpcap/libpcap_0.9.6.bb index d68cd31d52..9822f38ada 100644 --- a/packages/libpcap/libpcap_0.9.6.bb +++ b/packages/libpcap/libpcap_0.9.6.bb @@ -4,8 +4,10 @@ DESCRIPTION = "Network Packet Capture Library" HOMEPAGE = "http://www.tcpdump.org/" LICENSE = "BSD" SECTION = "libs/network" -PR = "r0" +PR = "r1" + +# Don't forget to edit shared.patch to have the correct version number inside SRC_URI = "http://www.tcpdump.org/release/libpcap-${PV}.tar.gz \ file://shared.patch;patch=1" diff --git a/packages/librsvg/librsvg_2.11.1.bb b/packages/librsvg/librsvg_2.11.1.bb deleted file mode 100644 index 4cddc1f2dd..0000000000 --- a/packages/librsvg/librsvg_2.11.1.bb +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "Library for rendering SVG files" -SECTION = "x11/utils" -DEPENDS = "gtk+ libcroco libart-lgpl libxml2 popt" -LICENSE = "LGPL" -PR = "r1" - -EXTRA_OECONF = "--disable-mozilla-plugin" - -inherit autotools pkgconfig gnome - -PACKAGES =+ "librsvg-gtk librsvg-gtk-dev rsvg" -FILES_${PN} = "${libdir}/*.so.*" -FILES_rsvg = "${bindir}/rsvg ${bindir}/rsvg-view ${datadir}/pixmaps/svg-viewer.svg" -FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so" -FILES_librsvg-gtk-dev = "${libdir}/gtk-2.0" - -EXTRA_OECONF = "--disable-mozilla-plugin" - -do_stage() { - autotools_stage_all -} diff --git a/packages/librsvg/librsvg_2.16.0.bb b/packages/librsvg/librsvg_2.16.0.bb deleted file mode 100644 index 230ba1b43f..0000000000 --- a/packages/librsvg/librsvg_2.16.0.bb +++ /dev/null @@ -1,26 +0,0 @@ -DESCRIPTION = "Library for rendering SVG files" -SECTION = "x11/utils" -DEPENDS = "gtk+ libcroco cairo libart-lgpl libxml2 popt" -LICENSE = "LGPL" -PR = "r1" - -EXTRA_OECONF = "--disable-mozilla-plugin" - -inherit autotools pkgconfig gnome - -PACKAGES =+ "librsvg-gtk librsvg-gtk-dbg librsvg-gtk-dev rsvg" -FILES_${PN} = "${libdir}/*.so.*" -FILES_rsvg = "${bindir}/rsvg \ - ${bindir}/rsvg-view \ - ${bindir}/rsvg-convert \ - ${datadir}/pixmaps/svg-viewer.svg" -FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so.*" -FILES_librsvg-gtk-dev += "${libdir}/gtk-2.0/*.la \ - ${libdir}/gtk-2.0/*/*.la" -FILES_librsvg-gtk-dbg += "${libdir}/gtk-2.0/.debug" - -EXTRA_OECONF = "--disable-mozilla-plugin" - -do_stage() { - autotools_stage_all -} diff --git a/packages/librsvg/librsvg_2.16.1.bb b/packages/librsvg/librsvg_2.16.1.bb index 49513128d7..c7154e7157 100644 --- a/packages/librsvg/librsvg_2.16.1.bb +++ b/packages/librsvg/librsvg_2.16.1.bb @@ -3,22 +3,33 @@ SECTION = "x11/utils" DEPENDS = "gtk+ libcroco cairo libart-lgpl libxml2 popt" LICENSE = "LGPL" -EXTRA_OECONF = "--disable-mozilla-plugin" +PR = "r2" inherit autotools pkgconfig gnome +EXTRA_OECONF = "--disable-mozilla-plugin" + + PACKAGES =+ "librsvg-gtk librsvg-gtk-dbg librsvg-gtk-dev rsvg" FILES_${PN} = "${libdir}/*.so.*" FILES_rsvg = "${bindir}/rsvg \ ${bindir}/rsvg-view \ ${bindir}/rsvg-convert \ ${datadir}/pixmaps/svg-viewer.svg" -FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so.*" +FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so" FILES_librsvg-gtk-dev += "${libdir}/gtk-2.0/*.la \ - ${libdir}/gtk-2.0/*/*.la" -FILES_librsvg-gtk-dbg += "${libdir}/gtk-2.0/.debug" + ${libdir}/gtk-2.0/*/*.la \ + ${libdir}/gtk-2.0/*/*/*.la \ + " +FILES_librsvg-gtk-dbg += "${libdir}/gtk-2.0/.debug \ + ${libdir}/gtk-2.0/*/*/.debug" -EXTRA_OECONF = "--disable-mozilla-plugin" +pkg_postinst_librsvg-gtk() { +if [ "x$D" != "x" ]; then + exit 1 +fi + gdk-pixbuf-query-loaders > /etc/gtk-2.0/gdk-pixbuf.loaders +} do_stage() { autotools_stage_all diff --git a/packages/librsvg/librsvg_2.6.5.bb b/packages/librsvg/librsvg_2.6.5.bb deleted file mode 100644 index e5b691a000..0000000000 --- a/packages/librsvg/librsvg_2.6.5.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Library for rendering SVG files" -SECTION = "x11/utils" -DEPENDS = "gtk+ libart-lgpl libxml2 popt" -LICENSE = "LGPL" -PR = "r3" - -inherit autotools pkgconfig gnome - -PACKAGES =+ "librsvg-gtk librsvg-gtk-dev rsvg" -FILES_${PN} = "${libdir}/*.so.*" -FILES_rsvg = "${bindir}/rsvg" -FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so" -FILES_librsvg-gtk-dev = "${libdir}/gtk-2.0" - -do_stage() { - install -d ${STAGING_INCDIR}/librsvg-2/librsvg/ - install -m 0644 rsvg.h ${STAGING_INCDIR}/librsvg-2/librsvg/ - install -m 0644 librsvg-features.h ${STAGING_INCDIR}/librsvg-2/librsvg/ - oe_libinstall -so -a librsvg-2 ${STAGING_LIBDIR} -} diff --git a/packages/librsvg/librsvg_2.9.5.bb b/packages/librsvg/librsvg_2.9.5.bb deleted file mode 100644 index a462390182..0000000000 --- a/packages/librsvg/librsvg_2.9.5.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Library for rendering SVG files" -SECTION = "x11/utils" -DEPENDS = "gtk+ libcroco libart-lgpl libxml2 popt" -LICENSE = "LGPL" -PR = "r3" - -inherit autotools pkgconfig gnome - -PACKAGES =+ "librsvg-gtk librsvg-gtk-dev rsvg" -FILES_${PN} = "${libdir}/*.so.*" -FILES_rsvg = "${bindir}/rsvg" -FILES_librsvg-gtk = "${libdir}/gtk-2.0/*/*/*.so" -FILES_librsvg-gtk-dev = "${libdir}/gtk-2.0" - -do_stage() { - install -d ${STAGING_INCDIR}/librsvg-2/librsvg/ - install -m 0644 rsvg.h ${STAGING_INCDIR}/librsvg-2/librsvg/ - install -m 0644 librsvg-features.h ${STAGING_INCDIR}/librsvg-2/librsvg/ - oe_libinstall -so -a librsvg-2 ${STAGING_LIBDIR} -} diff --git a/packages/linux/ezx-kernels_2.6.bb b/packages/linux/ezx-kernels_2.6.bb deleted file mode 100644 index 77b75d60b0..0000000000 --- a/packages/linux/ezx-kernels_2.6.bb +++ /dev/null @@ -1,3 +0,0 @@ -COMPATIBLE_MACHINE = "a780" -PROVIDES = "virtual/kernel" -DEPENDS = "a780-kernel-2.6 e680-kernel-2.6" diff --git a/packages/linux/gta01-kernel_2.6.bb b/packages/linux/gta01-kernel_2.6.bb deleted file mode 100644 index eaafb7e7b2..0000000000 --- a/packages/linux/gta01-kernel_2.6.bb +++ /dev/null @@ -1 +0,0 @@ -require linux-gta01_2.6.17.14.bb diff --git a/packages/efl/ewl/.mtn2git_empty b/packages/linux/ixp4xx-kernel/2.6.22/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/ewl/.mtn2git_empty +++ b/packages/linux/ixp4xx-kernel/2.6.22/.mtn2git_empty diff --git a/packages/linux/ixp4xx-kernel/2.6.22/defconfig b/packages/linux/ixp4xx-kernel/2.6.22/defconfig new file mode 100644 index 0000000000..95b301932f --- /dev/null +++ b/packages/linux/ixp4xx-kernel/2.6.22/defconfig @@ -0,0 +1,1984 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.22-rc5 +# Sun Jun 24 12:06:23 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +CONFIG_IKCONFIG=m +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_KALLSYMS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_ANON_INODES=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +# CONFIG_VM_EVENT_COUNTERS is not set +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +CONFIG_RT_MUTEXES=y +# CONFIG_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 + +# +# Loadable module support +# +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# 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 is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_IXP2000 is not set +CONFIG_ARCH_IXP4XX=y +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP is not set +CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y + +# +# Intel IXP4xx Implementation Options +# + +# +# IXP4xx Platforms +# +CONFIG_MACH_NSLU2=y +CONFIG_MACH_AVILA=y +CONFIG_MACH_LOFT=y +# CONFIG_ARCH_ADI_COYOTE is not set +CONFIG_ARCH_IXDP425=y +# CONFIG_MACH_IXDPG425 is not set +# CONFIG_MACH_IXDP465 is not set +# CONFIG_MACH_KIXRP435 is not set +CONFIG_ARCH_IXCDP1100=y +# CONFIG_ARCH_PRPMC1100 is not set +CONFIG_MACH_NAS100D=y +CONFIG_MACH_DSMG600=y +CONFIG_ARCH_IXDP4XX=y +CONFIG_MACH_FSG=y +# CONFIG_MACH_GTWX5715 is not set + +# +# IXP4xx Options +# +CONFIG_DMABOUNCE=y +# CONFIG_IXP4XX_INDIRECT_PCI is not set +CONFIG_IXP4XX_QMGR=y +CONFIG_IXP4XX_NPE=y + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +# CONFIG_IWMMXT is not set +CONFIG_XSCALE_PMU=y + +# +# Bus support +# +CONFIG_PCI=y +# CONFIG_ARCH_SUPPORTS_MSI is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_PREEMPT=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE=" noirqdebug console=ttyS0,115200n8" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set + +# +# Power management options +# +# CONFIG_PM is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +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 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=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=m +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_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_BRIDGE_NETFILTER=y + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NF_CONNTRACK_ENABLED=m +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CT_ACCT=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_PROTO_GRE=m +CONFIG_NF_CT_PROTO_SCTP=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_FTP=m +CONFIG_NF_CONNTRACK_H323=m +CONFIG_NF_CONNTRACK_IRC=m +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CT_NETLINK=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +CONFIG_NETFILTER_XT_TARGET_CONNMARK=m +CONFIG_NETFILTER_XT_TARGET_DSCP=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +CONFIG_NETFILTER_XT_TARGET_NFLOG=m +CONFIG_NETFILTER_XT_TARGET_NOTRACK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_QUOTA=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STATISTIC=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m + +# +# IP: Netfilter Configuration +# +CONFIG_NF_CONNTRACK_IPV4=m +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_IP_NF_QUEUE is not set +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_NF_NAT=m +CONFIG_NF_NAT_NEEDED=y +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_NF_NAT_SNMP_BASIC=m +CONFIG_NF_NAT_PROTO_GRE=m +CONFIG_NF_NAT_FTP=m +CONFIG_NF_NAT_IRC=m +CONFIG_NF_NAT_TFTP=m +CONFIG_NF_NAT_AMANDA=m +CONFIG_NF_NAT_PPTP=m +CONFIG_NF_NAT_H323=m +CONFIG_NF_NAT_SIP=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARP_MANGLE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +CONFIG_NF_CONNTRACK_IPV6=m +# CONFIG_IP6_NF_QUEUE is not set +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_MH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_RAW=m + +# +# Bridge: Netfilter Configuration +# +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_ULOG=m +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +# CONFIG_ATM is not set +CONFIG_BRIDGE=m +CONFIG_VLAN_8021Q=m +# CONFIG_DECNET is not set +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_ATALK=m +CONFIG_DEV_APPLETALK=m +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPDDP_DECAP=y +# 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 +CONFIG_NET_CLS_ROUTE=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# CONFIG_HAMRADIO is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +# CONFIG_BT_CMTP is not set +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +CONFIG_BT_HCIVHCI=m +# CONFIG_AF_RXRPC is not set + +# +# Wireless +# +# CONFIG_CFG80211 is not set +CONFIG_WIRELESS_EXT=y +# CONFIG_MAC80211 is not set +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +# CONFIG_RFKILL is not set + +# +# 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 +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_CONCAT=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_REDBOOT_PARTS=y +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +CONFIG_NFTL=y +CONFIG_NFTL_RW=y +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +# CONFIG_MTD_CFI_NOSWAP is not set +CONFIG_MTD_CFI_BE_BYTE_SWAP=y +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y +# CONFIG_MTD_CFI_AMDSTD is not set +# CONFIG_MTD_CFI_STAA is not set +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_ARM_INTEGRATOR is not set +CONFIG_MTD_IXP4XX=y +# CONFIG_MTD_PCI is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set +# CONFIG_MTD_NAND is not set +# CONFIG_MTD_ONENAND is not set + +# +# UBI - Unsorted block images +# +# CONFIG_MTD_UBI is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_NBD=m +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=4 +CONFIG_BLK_DEV_RAM_SIZE=10240 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_ATA_OVER_ETH=m +# 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=m +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set +CONFIG_SCSI_WAIT_SCAN=m + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set + +# +# SCSI low-level drivers +# +CONFIG_ISCSI_TCP=m +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_SRP is not set +CONFIG_ATA=m +# CONFIG_ATA_NONSTANDARD is not set +# CONFIG_SATA_AHCI is not set +# CONFIG_SATA_SVW is not set +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIL24 is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_ULI is not set +CONFIG_SATA_VIA=m +# CONFIG_SATA_VITESSE is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +CONFIG_PATA_ARTOP=m +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CS5520 is not set +# CONFIG_PATA_CS5530 is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RZ1000 is not set +# CONFIG_PATA_SC1200 is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set +# CONFIG_PATA_PLATFORM is not set +CONFIG_PATA_IXP4XX_CF=m + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_MD=m +CONFIG_MD_LINEAR=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MD_RAID5_RESHAPE=y +CONFIG_MD_MULTIPATH=m +CONFIG_MD_FAULTY=m +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_CRYPT is not set +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m +# CONFIG_ARCNET is not set +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +CONFIG_IXP4XX_ETH=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_DGRS is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +# CONFIG_NE2K_PCI is not set +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_SC92031 is not set +CONFIG_NETDEV_1000=y +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_SK98LIN is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set +# CONFIG_QLA3XXX is not set +# CONFIG_ATL1 is not set +# CONFIG_NETDEV_10000 is not set +# CONFIG_TR is not set + +# +# Wireless LAN +# +# CONFIG_WLAN_PRE80211 is not set +CONFIG_WLAN_80211=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_USB=m +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_HERMES is not set +# CONFIG_ATMEL is not set +# CONFIG_PRISM54 is not set +CONFIG_USB_ZD1201=m +# CONFIG_HOSTAP is not set +# CONFIG_BCM43XX is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +CONFIG_USB_NET_MCS7830=m +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PPP=m +# CONFIG_PPP_MULTILINK is not set +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_MPPE=m +CONFIG_PPPOE=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_NET_FC is not set +# CONFIG_SHAPER is not set +CONFIG_NETCONSOLE=m +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_POLL_CONTROLLER=y + +# +# ISDN subsystem +# +CONFIG_ISDN=m + +# +# Old ISDN4Linux +# +# CONFIG_ISDN_I4L is not set + +# +# CAPI subsystem +# +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_CAPI_TRACE=y +# CONFIG_ISDN_CAPI_MIDDLEWARE is not set +CONFIG_ISDN_CAPI_CAPI20=m + +# +# CAPI hardware drivers +# + +# +# Active AVM cards +# +# CONFIG_CAPI_AVM is not set + +# +# Active Eicon DIVA Server cards +# +# CONFIG_CAPI_EICON is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_IXP4XX_BEEPER=y +CONFIG_INPUT_ATI_REMOTE=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +# CONFIG_INPUT_POWERMATE is not set +CONFIG_INPUT_YEALINK=m +CONFIG_INPUT_UINPUT=m + +# +# Hardware I/O ports +# +# CONFIG_SERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +# CONFIG_VT is not set +CONFIG_SERIAL_NONSTANDARD=y +# CONFIG_COMPUTONE is not set +# CONFIG_ROCKETPORT is not set +# CONFIG_CYCLADES is not set +# CONFIG_DIGIEPCA is not set +# CONFIG_MOXA_INTELLIO is not set +# CONFIG_MOXA_SMARTIO is not set +# CONFIG_MOXA_SMARTIO_NEW is not set +# CONFIG_ISI is not set +# CONFIG_SYNCLINKMP is not set +# CONFIG_SYNCLINK_GT is not set +CONFIG_N_HDLC=m +# CONFIG_RISCOM8 is not set +# CONFIG_SPECIALIX is not set +# CONFIG_SX is not set +# CONFIG_RIO is not set +# CONFIG_STALDRV is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_8250_NR_UARTS=2 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +CONFIG_IXP4XX_WATCHDOG=m + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_IXP4XX=y +# CONFIG_NVRAM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_DRM is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CHARDEV=y + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=y +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +CONFIG_I2C_GPIO=y +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_IOP3XX is not set +# CONFIG_I2C_IXP4XX is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_STUB is not set +CONFIG_I2C_TINY_USB=m +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +CONFIG_SENSORS_EEPROM=y +CONFIG_SENSORS_PCF8574=m +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Dallas's 1-wire bus +# +CONFIG_W1=m + +# +# 1-wire Bus Masters +# +# CONFIG_W1_MASTER_MATROX is not set +CONFIG_W1_MASTER_DS2490=m +CONFIG_W1_MASTER_DS2482=m +# CONFIG_W1_MASTER_DS1WM is not set + +# +# 1-wire Slaves +# +CONFIG_W1_SLAVE_THERM=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_DS2433_CRC=y +CONFIG_HWMON=m +CONFIG_HWMON_VID=m +# CONFIG_SENSORS_ABITUGURU is not set +CONFIG_SENSORS_AD7418=m +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_FSCHER is not set +# CONFIG_SENSORS_FSCPOS is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +# CONFIG_SENSORS_LM90 is not set +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +CONFIG_SENSORS_W83781D=m +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# +# CONFIG_PHANTOM is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_BLINK is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_IXP4XX=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +CONFIG_LEDS_TRIGGER_CPU_ACTIVITY=y + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +# CONFIG_VIDEO_V4L1 is not set +# CONFIG_VIDEO_V4L1_COMPAT is not set +CONFIG_VIDEO_V4L2=y +CONFIG_VIDEO_CAPTURE_DRIVERS=y +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA7134=m +# CONFIG_VIDEO_SAA7134_ALSA is not set +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +# CONFIG_VIDEO_CX88_BLACKBIRD is not set +# CONFIG_VIDEO_CAFE_CCIC is not set +CONFIG_V4L_USB_DRIVERS=y +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_SN9C102 is not set +CONFIG_USB_ZR364XX=m +# CONFIG_RADIO_ADAPTERS is not set +# CONFIG_DVB_CORE is not set +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_TVEEPROM=m +# CONFIG_DAB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Display device support +# +# CONFIG_DISPLAY_SUPPORT is not set +# CONFIG_VGASTATE is not set +# CONFIG_FB is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# PCI devices +# +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# 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_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y + +# +# System on Chip audio support +# +# CONFIG_SND_SOC is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m +# CONFIG_HID_DEBUG is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +CONFIG_USB_HIDDEV=y + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +# CONFIG_USB_MOUSE is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DEVICE_CLASS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=m +# CONFIG_USB_U132_HCD is not set +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_AIRCABLE=m +# CONFIG_USB_SERIAL_AIRPRIME is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +CONFIG_USB_SERIAL_KEYSPAN_MPR=y +CONFIG_USB_SERIAL_KEYSPAN_USA28=y +CONFIG_USB_SERIAL_KEYSPAN_USA28X=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y +CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y +CONFIG_USB_SERIAL_KEYSPAN_USA19=y +CONFIG_USB_SERIAL_KEYSPAN_USA18X=y +CONFIG_USB_SERIAL_KEYSPAN_USA19W=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y +CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y +CONFIG_USB_SERIAL_KEYSPAN_USA49W=y +CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_MOS7720=m +CONFIG_USB_SERIAL_MOS7840=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set +CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +CONFIG_USB_ADUTUX=m +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +CONFIG_USB_PHIDGET=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETMOTORCONTROL=m +CONFIG_USB_PHIDGETSERVO=m +# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_FTDI_ELAN=m +# CONFIG_USB_APPLEDISPLAY is not set +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +# CONFIG_MMC is not set + +# +# 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 +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +CONFIG_RTC_DRV_DS1307=y +CONFIG_RTC_DRV_DS1672=y +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +CONFIG_RTC_DRV_ISL1208=y +CONFIG_RTC_DRV_X1205=y +CONFIG_RTC_DRV_PCF8563=y +# CONFIG_RTC_DRV_PCF8583 is not set + +# +# SPI RTC drivers +# + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=m +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# 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 is not set +CONFIG_AUTOFS4_FS=m +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="utf8" +CONFIG_NTFS_FS=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_RW=y + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL 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_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN 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=y +# CONFIG_NFS_V3_ACL is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +# CONFIG_SUNRPC_BIND34 is not set +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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 +# CONFIG_SYSV68_PARTITION is not set + +# +# Native Language Support +# +CONFIG_NLS=m +CONFIG_NLS_DEFAULT="utf8" +CONFIG_NLS_CODEPAGE_437=m +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_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_DEBUG_BUGVERBOSE is not set +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_USER 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_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +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=m +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_DES=y +# 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=m +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +# 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=y +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_HAS_DMA=y diff --git a/packages/linux/ixp4xx-kernel_2.6.21.1.bb b/packages/linux/ixp4xx-kernel_2.6.21.5.bb index c0cd8295e5..8ff440b28b 100644 --- a/packages/linux/ixp4xx-kernel_2.6.21.1.bb +++ b/packages/linux/ixp4xx-kernel_2.6.21.5.bb @@ -6,7 +6,7 @@ # http://trac.nslu2-linux.org/kernel/ # # The revision that is pulled from SVN is specified below -IXP4XX_KERNEL_SVN_REV = "861" +IXP4XX_KERNEL_SVN_REV = "879" # # The directory containing the patches to be applied is # specified below diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-core.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-core.patch deleted file mode 100644 index 3b9877ce83..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-core.patch +++ /dev/null @@ -1,1120 +0,0 @@ -Index: linux-2.6.20.7/arch/arm/boot/compressed/head-xscale.S -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/boot/compressed/head-xscale.S 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/boot/compressed/head-xscale.S 2007-04-21 22:32:53.000000000 -0300 -@@ -53,3 +53,6 @@ - str r1, [r0, #0x18] - #endif - -+#ifdef CONFIG_ARCH_EZX -+ mov r7, #MACH_TYPE_EZX -+#endif -Index: linux-2.6.20.7/arch/arm/mach-pxa/Kconfig -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Kconfig 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Kconfig 2007-04-22 01:33:15.000000000 -0300 -@@ -37,6 +37,10 @@ - bool "Keith und Koep Trizeps4 DIMM-Module" - select PXA27x - -+config PXA_EZX -+ bool "Motorola EZX Platform" -+ select PXA_SSP -+ - endchoice - - if PXA_SHARPSL -@@ -71,6 +75,27 @@ - - endif - -+if PXA_EZX -+ -+choice -+ prompt "Select target EZX device" -+ -+config PXA_EZX_E680 -+ bool "Motorola E680 GSM Phone" -+ select PXA27x -+ -+config PXA_EZX_A780 -+ bool "Motorola A780 GSM Phone" -+ select PXA27x -+ -+config PXA_EZX_E2 -+ bool "Motorola E2 GSM Phone" -+ select PXA27x -+ -+endchoice -+ -+endif -+ - endmenu - - config MACH_POODLE -@@ -144,4 +169,5 @@ - tristate - help - Enable support for PXA2xx SSP ports -+ - endif -Index: linux-2.6.20.7/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Makefile 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Makefile 2007-04-22 01:33:17.000000000 -0300 -@@ -18,6 +18,7 @@ - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o -+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o - - # Support for blinky lights - led-y := leds.o -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx.c 2007-04-22 01:33:17.000000000 -0300 -@@ -0,0 +1,379 @@ -+/* -+ * linux/arch/arm/mach-ezx/a780.c -+ * -+ * Support for the Motorola Ezx A780 Development Platform. -+ * -+ * Author: Zhuang Xiaofan -+ * Created: Nov 25, 2003 -+ * Copyright: Motorola Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include <linux/init.h> -+#include <linux/major.h> -+#include <linux/fs.h> -+#include <linux/interrupt.h> -+#include <linux/sched.h> -+#include <linux/bitops.h> -+#include <linux/apm_bios.h> -+#include <linux/platform_device.h> -+#include <linux/input.h> -+ -+#include <asm/types.h> -+#include <asm/setup.h> -+#include <asm/memory.h> -+#include <asm/mach-types.h> -+#include <asm/hardware.h> -+#include <asm/irq.h> -+ -+#include <asm/mach/arch.h> -+#include <asm/mach/map.h> -+#include <asm/mach/irq.h> -+ -+#include <asm/arch/ohci.h> -+#include <asm/arch/pxa-regs.h> -+ -+#include "ezx.h" -+#include "generic.h" -+#include <linux/tty.h> -+#include <linux/apm_bios.h> -+ -+ -+extern void usb_send_readurb(void); -+extern int ezx_ssp_set_machinfo(struct ezxssp_machinfo *); -+//FIXME extern void pm_do_poweroff(void); -+ -+/* BP Handshake */ -+#define FIRST_STEP 2 -+#define LAST_STEP 3 -+#define BP_RDY_TIMEOUT 0x000c0000 -+ -+/* check power down condition */ -+inline void check_power_off(void) -+{ -+ if (!(GPIO_is_high(GPIO_BB_WDI2))) { -+#ifdef CONFIG_PM -+//FIXME pm_do_poweroff(); -+#endif -+ } -+} -+ -+/* SSP */ -+struct platform_device ezxssp_device = { -+ .name = "ezx-ssp", -+ .id = -1, -+}; -+ -+struct ezxssp_machinfo ezx_ssp_machinfo = { -+ .port = 1, -+ .cs_pcap = GPIO_SPI_CE, -+ .clk_pcap = 1, -+}; -+ -+ -+/* OHCI Controller */ -+ -+static int ezx_ohci_init(struct device *dev) -+{ -+ /* for A780 support (connected with Neptune) */ -+ pxa_gpio_mode(GPIO30_USB_P3_2); /* GPIO30 - USB_P3_2/ICL_TXENB */ -+ pxa_gpio_mode(GPIO31_USB_P3_6); /* GPIO31 - USB_P3_6/ICL_VPOUT */ -+ pxa_gpio_mode(GPIO90_USB_P3_5); /* GPIO90 - USB_P3_5/ICL_VPIN */ -+ pxa_gpio_mode(GPIO91_USB_P3_1); /* GPIO91 - USB_P3_1/ICL_XRXD */ -+ pxa_gpio_mode(GPIO56_USB_P3_4); /* GPIO56 - USB_P3_4/ICL_VMOUT */ -+ pxa_gpio_mode(GPIO113_USB_P3_3);/* GPIO113 - USB_P3_3/ICL_VMIN */ -+ UP3OCR = 0x00000002; -+ -+ UHCHR = UHCHR & ~(UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE); -+ -+ return 0; -+} -+ -+static struct pxaohci_platform_data ezx_ohci_platform_data = { -+ .port_mode = PMM_NPS_MODE, -+ .init = ezx_ohci_init, -+}; -+ -+static int step = FIRST_STEP; -+void handshake(void) -+{ -+ /* step 1: check MCU_INT_SW or BP_RDY is low (now it is checked in apboot) */ -+ if (step == 1) { -+ int timeout = BP_RDY_TIMEOUT; -+ -+ /* config MCU_INT_SW, BP_RDY as input */ -+ GPDR(GPIO_MCU_INT_SW) &= ~GPIO_bit(GPIO_MCU_INT_SW); -+ GPDR(GPIO_BP_RDY) &= ~GPIO_bit(GPIO_BP_RDY); -+ -+ while ( timeout -- ) { -+ if ( (!(GPIO_is_high(GPIO_MCU_INT_SW))) -+ || (!(GPIO_is_high(GPIO_BP_RDY))) ) { -+ step ++; -+ break; -+ } -+ -+ check_power_off(); -+ } -+ } -+ -+ /* step 2: wait BP_RDY is low */ -+ if (step == 2) { -+ if (!(GPIO_is_high(GPIO_BP_RDY))) { -+ -+ /* config MCU_INT_SW as output */ -+ pxa_gpio_mode(GPIO_MCU_INT_SW | GPIO_OUT); -+ clr_GPIO(GPIO_MCU_INT_SW); -+ -+ step ++; -+ } -+ } -+ -+ /* step 3: wait BP_RDY is high */ -+ if (step == 3) { -+ if (GPIO_is_high(GPIO_BP_RDY)) { -+ step ++; -+ //FIXME delay_bklight(); -+ set_GPIO(GPIO_MCU_INT_SW); -+ } -+ } -+} -+ -+#ifdef CONFIG_APM -+static unsigned long idle_limit = 0; -+int pm_handle_irq(int irq) -+{ -+ -+ //FIXME: extern unsigned long idle_limit; -+ //FIXME: extern int can_idle, can_sleep; -+ static unsigned long tmp_jiffy; /* for temporary store of jiffies */ -+ -+ /* -+ * if idle_limit is zero, never enter idle. -+ * if not OS timer, reset idle timer count -+ */ -+ if (idle_limit == 0) { -+ tmp_jiffy = jiffies; -+ return irq; -+ } -+#if 0 -+ if (irq != IRQ_OST0) { -+ tmp_jiffy = jiffies; -+ can_idle = 0; -+ can_sleep = 0; -+ } else if (jiffies > tmp_jiffy + idle_limit) { -+ -+ /* -+ * I think this is enough to prevent from reentering here -+ * due to jiffies will be stoped -+ */ -+ tmp_jiffy = jiffies; -+ -+ /* if pm idle timer expired, queue event */ -+ apm_queue_event(KRNL_PROC_INACT); -+ can_idle = 1; -+ } -+#endif -+ -+ return irq; -+} -+ -+irqreturn_t bp_wdi_intr(int irq, void *dev_id) -+{ -+//FIXME apm_queue_event(KRNL_BP_WDI); -+ return IRQ_HANDLED; -+} -+ -+static struct irqaction bp_wdi_irq = { -+ .name = "BP wdi", -+ .handler = &bp_wdi_intr, -+}; -+#endif -+ -+int handshake_pass(void) -+{ -+ return (step > LAST_STEP); -+} -+ -+static irqreturn_t bp_rdy_intr(int irq, void *dev_id) -+{ -+ static int usbipc_ready = 0; -+ -+ if (!usbipc_ready) { -+ handshake(); -+ if (handshake_pass()) { -+ disable_irq(IRQ_GPIO(GPIO_BB_WDI2)); -+ -+ /* set bp_rdy handle for usb ipc */ -+ set_irq_type(GPIO_BP_RDY, IRQT_FALLING); -+ usbipc_ready = 1; -+ } -+ } else -+ // FIXME usb_send_readurb(); -+ {} -+ -+ return IRQ_HANDLED; -+} -+ -+static struct irqaction bp_rdy_irq = { -+ .name = "BP rdy", -+ .handler = bp_rdy_intr, -+}; -+ -+static irqreturn_t bp_wdi2_intr(int irq, void *dev_id) -+{ -+#ifdef CONFIG_PM -+//FIXME pm_do_poweroff(); -+#endif -+ return IRQ_HANDLED; -+} -+ -+static struct irqaction bp_wdi2_irq = { -+ .name = "BP wdi2", -+ .handler = bp_wdi2_intr, -+}; -+ -+ -+static struct resource ezx_bp_resources[] = { -+ [0] = { -+ .start = GPIO_BP_RDY, -+ .end = GPIO_BP_RDY, -+ .flags = IORESOURCE_IRQ, -+ }, -+ [1] = { -+ .start = GPIO_BB_WDI2, -+ .end = GPIO_BB_WDI2, -+ .flags = IORESOURCE_IRQ, -+ }, -+#ifdef CONFIG_APM -+ [2] = { -+ .start = GPIO_BB_WDI, -+ .end = GPIO_BB_WDI, -+ .flags = IORESOURCE_IRQ, -+ }, -+#endif -+}; -+ -+static struct platform_device ezx_bp_device = { -+ .name = "ezx-bp", -+ .dev = { -+ //.parent = -+ //.platform_data = -+ }, -+ .id = -1, -+ .num_resources = ARRAY_SIZE(ezx_bp_resources), -+ .resource = ezx_bp_resources, -+}; -+ -+static void __init ezx_init_gpio_irq(void) -+{ -+#ifdef CONFIG_APM -+ set_irq_type(GPIO_BB_WDI, IRQT_FALLING); -+ setup_irq(IRQ_GPIO(GPIO_BB_WDI), &bp_wdi_irq); -+#endif -+ set_irq_type(GPIO_BP_RDY, IRQT_BOTHEDGE); -+ setup_irq(IRQ_GPIO(GPIO_BP_RDY), &bp_rdy_irq); -+ -+ set_irq_type(GPIO_BB_WDI2, IRQT_FALLING); -+ setup_irq(IRQ_GPIO(GPIO_BB_WDI2), &bp_wdi2_irq); -+} -+ -+static void __init a780_init_irq(void) -+{ -+ pxa_init_irq(); -+ -+ /* init ezx specfic gpio irq */ -+ ezx_init_gpio_irq(); -+ -+ check_power_off(); -+ handshake(); -+ if (handshake_pass()) { -+ disable_irq(IRQ_GPIO(GPIO_BP_RDY)); -+ disable_irq(IRQ_GPIO(GPIO_BB_WDI2)); -+ } -+} -+ -+static struct platform_device *devices[] __initdata = { -+ &ezxssp_device, -+ &ezx_bp_device, -+}; -+ -+static void __init a780_init(void) -+{ -+//FIXME CKEN = CKEN9_OSTIMER | CKEN22_MEMC | CKEN5_STUART; -+ -+ ezx_ssp_set_machinfo(&ezx_ssp_machinfo); -+ -+ /* set BB_RESET PIN out put high */ -+ pxa_gpio_mode(GPIO_BB_RESET|GPIO_OUT); -+ set_GPIO(GPIO_BB_RESET); -+ -+ pxa_gpio_mode(GPIO_ICL_FFRXD_MD); -+ pxa_gpio_mode(GPIO_ICL_FFTXD_MD); -+ pxa_gpio_mode(GPIO_ICL_FFCTS_MD); -+ pxa_gpio_mode(GPIO_ICL_FFRTS_MD); -+ -+ pxa_gpio_mode(GPIO42_BTRXD_MD); -+ pxa_gpio_mode(GPIO43_BTTXD_MD); -+ pxa_gpio_mode(GPIO44_BTCTS_MD); -+ pxa_gpio_mode(GPIO45_BTRTS_MD); -+ -+ /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ -+ pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); -+ clr_GPIO(GPIO_EMU_MUX1); -+ pxa_gpio_mode(GPIO_EMU_MUX2|GPIO_OUT); -+ clr_GPIO(GPIO_EMU_MUX2); -+ -+#if defined(CONFIG_PXA_EZX_E680) -+ pxa_gpio_mode(GPIO46_STRXD_MD); -+ pxa_gpio_mode(GPIO47_STTXD_MD); -+ -+ /* setup sleep mode values */ -+ PWER = 0xc000f803; // disable usb 0xdc00f803; -+ PFER = 0x0000f803; -+ PRER = 0x00001802; -+ // keypad wakeup (PKWR,PGSR3) should be in keypad.c -+ PGSR0 = 0x00000010; -+ PGSR1 = 0x02800000; -+ PGSR2 = 0x00040000; -+ PGSR3 = 0x00000000; -+ PCFR = PCFR_DC_EN | PCFR_FS | PCFR_FP | PCFR_OPDE; -+ PSLR = 0x05800f00; -+ -+#elif defined(CONFIG_PXA_EZX_A780) -+ -+ /* Standard UART */ -+ pxa_gpio_mode(GPIO46_STRXD_MD); -+ pxa_gpio_mode(GPIO47_STTXD_MD); -+ -+ /* setup sleep mode values */ -+ PWER = 0xc0007803; // disable usb, GPIO15 NC -+ PFER = 0x00007803; -+ PRER = 0x00001802; -+ // keypad wakeup (PKWR,PGSR3) should be in keypad.c -+ PGSR0 = 0x00000010; -+ PGSR1 = 0x02800000; -+ PGSR2 = 0x00040000; -+ PGSR3 = 0x00000008; -+ PCFR = PCFR_DC_EN | PCFR_FS | PCFR_FP | PCFR_OPDE; -+ PSLR = 0x05800f00; -+ -+#endif -+ pxa_set_ohci_info(&ezx_ohci_platform_data); -+ -+ platform_add_devices(devices, ARRAY_SIZE(devices)); -+ -+} -+ -+MACHINE_START(EZX, "Motorola Ezx Platform") -+ /* Maintainer: Harald Welte <laforge@gnumonks.org> */ -+ .phys_io = 0x40000000, -+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, -+ .boot_params = 0xa0000100, -+ .map_io = pxa_map_io, -+ .init_irq = a780_init_irq, -+ .timer = &pxa_timer, -+ .init_machine = a780_init, -+MACHINE_END -Index: linux-2.6.20.7/include/asm-arm/arch-pxa/ezx.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/include/asm-arm/arch-pxa/ezx.h 2007-04-21 22:32:53.000000000 -0300 -@@ -0,0 +1,225 @@ -+/* -+ * linux/include/asm-arm/arch-pxa/ezx.h -+ * -+ * Specific macro defines for Motorola Ezx Development Platform -+ * -+ * Author: Zhuang Xiaofan -+ * Created: Nov 25, 2003 -+ * Copyright: Motorola Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+/* support E680 p3 and ealier PCB */ -+//#define E680_P3_AND_EARLY -+ -+#define GPIO_is_high(x) (GPLR(x) & GPIO_bit(x)) -+#define set_GPIO(x) (GPSR(x) = GPIO_bit(x)) -+#define clr_GPIO(x) (GPCR(x) = GPIO_bit(x)) -+ -+/* -+ * Flags in memory for sleep use -+ */ -+#define FLAG_ADDR PHYS_OFFSET -+#define RESUME_ADDR (PHYS_OFFSET + 4) -+#define BPSIG_ADDR (PHYS_OFFSET + 8) -+ -+#define USER_OFF_FLAG 0x5a5a5a5a -+#define SLEEP_FLAG 0x6b6b6b6b -+#define OFF_FLAG 0x7c7c7c7c -+#define REFLASH_FLAG 0x0C1D2E3F -+#define PASS_THRU_FLAG 0x12345678 -+ -+#define WDI_FLAG 0xbb00dead -+#define NO_FLAG 0xaa00dead -+ -+/* -+ * GPIO control pin, have to change when hardware lock down -+ */ -+ -+#ifdef E680_P3_AND_EARLY -+ -+/* shakehand with BP's PIN */ -+#define GPIO_BP_RDY 0 /* BP_RDY */ -+#define GPIO_BB_WDI 13 /* BB_WDI */ -+#define GPIO_BB_WDI2 3 /* BB_WDI2 */ -+#define GPIO_BB_RESET 57 /* BB_RESET */ -+#define GPIO_MCU_INT_SW 115 /* MCU_INT_SW */ -+#define GPIO_TC_MM_EN 89 /* TC_MM_EN */ -+ -+/* control PCAP direct PIN */ -+#define GPIO_WDI_AP 4 /* WDI_AP */ -+#define GPIO_SYS_RESTART 55 /* restart PCAP power */ -+#define GPIO_AP_STANDBY 28 /* make pcap enter standby mode */ -+ -+/* communicate with PCAP's PIN */ -+#define GPIO_PCAP_SEC_INT 1 /* PCAP interrupt PIN to AP */ -+#define GPIO_SPI_CLK 23 /* PCAP SPI port clock */ -+#define GPIO_SPI_CE 24 /* PCAP SPI port SSPFRM */ -+#define GPIO_SPI_MOSI 25 /* PCAP SPI port SSPTXD */ -+#define GPIO_SPI_MISO 26 /* PCAP SPI port SSPRXD */ -+ -+/* blue tooth control PIN */ -+#define GPIO_BT_WAKEUP 2 /* AP wake up bluetooth module */ -+#define GPIO_BT_HOSTWAKE 14 /* bluetooth module wake up Ap module */ -+#define GPIO_BT_RESET 56 /* AP reset bluetooth module */ -+ -+/* control LCD high - OFF low -- ON */ -+#define GPIO_LCD_OFF 116 /* control LCD */ -+ -+/* FFUART PIN */ -+#define GPIO_ICL_FFRXD_MD (34 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFCTS_MD (35 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFTXD_MD (39 | GPIO_ALT_FN_2_OUT) -+#define GPIO_ICL_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT) -+ -+#elif defined(A780_P1_AND_EARLY) -+ -+/* shakehand with BP's PIN */ -+#define GPIO_BP_RDY 0 /* BP_RDY */ -+#define GPIO_BB_WDI 13 /* BB_WDI */ -+#define GPIO_BB_WDI2 3 /* BB_WDI2 */ -+#define GPIO_BB_RESET 82 /* BB_RESET */ -+#define GPIO_MCU_INT_SW 57 /* MCU_INT_SW */ -+#define GPIO_TC_MM_EN 89 /* TC_MM_EN */ -+ -+/* control PCAP direct PIN */ -+#define GPIO_WDI_AP 4 /* WDI_AP */ -+#define GPIO_SYS_RESTART 55 /* restart PCAP power */ -+#define GPIO_AP_STANDBY 28 /* make pcap enter standby mode */ -+ -+/* communicate with PCAP's PIN */ -+#define GPIO_PCAP_SEC_INT 1 /* PCAP interrupt PIN to AP */ -+#define GPIO_SPI_CLK 29 /* PCAP SPI port clock */ -+#define GPIO_SPI_CE 24 /* PCAP SPI port SSPFRM */ -+#define GPIO_SPI_MOSI 25 /* PCAP SPI port SSPTXD */ -+#define GPIO_SPI_MISO 26 /* PCAP SPI port SSPRXD */ -+ -+/* blue tooth control PIN */ -+#define GPIO_BT_WAKEUP 2 /* AP wake up bluetooth module */ -+#define GPIO_BT_HOSTWAKE 14 /* bluetooth module wake up Ap module */ -+#define GPIO_BT_RESET 56 /* AP reset bluetooth module */ -+ -+/* control LCD high - OFF low -- ON */ -+#define GPIO_LCD_OFF 116 /* control LCD */ -+ -+/* FFUART PIN */ -+#define GPIO_ICL_FFRXD_MD (53 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFCTS_MD (35 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFTXD_MD (39 | GPIO_ALT_FN_2_OUT) -+#define GPIO_ICL_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT) -+ -+#else -+ -+/* shakehand with BP's PIN */ -+#define GPIO_BP_RDY 0 /* BP_RDY */ -+#define GPIO_BB_WDI 13 /* BB_WDI */ -+#define GPIO_BB_WDI2 3 /* BB_WDI2 */ -+#define GPIO_BB_RESET 82 /* BB_RESET */ -+#define GPIO_MCU_INT_SW 57 /* MCU_INT_SW */ -+#define GPIO_TC_MM_EN 99 /* TC_MM_EN */ -+ -+/* control PCAP direct PIN */ -+#define GPIO_WDI_AP 4 /* WDI_AP */ -+#define GPIO_SYS_RESTART 55 /* restart PCAP power */ -+//#define GPIO_AP_STANDBY 28 /* make pcap enter standby mode */ -+ -+/* communicate with PCAP's PIN */ -+#define GPIO_PCAP_SEC_INT 1 /* PCAP interrupt PIN to AP */ -+#define GPIO_SPI_CLK 29 /* PCAP SPI port clock */ -+#define GPIO_SPI_CE 24 /* PCAP SPI port SSPFRM */ -+#define GPIO_SPI_MOSI 25 /* PCAP SPI port SSPTXD */ -+#define GPIO_SPI_MISO 26 /* PCAP SPI port SSPRXD */ -+ -+/* blue tooth control PIN */ -+#define GPIO_BT_WAKEUP 28 /* AP wake up bluetooth module */ -+#define GPIO_BT_HOSTWAKE 14 /* AP wake up bluetooth module */ -+#define GPIO_BT_RESET 48 /* AP reset bluetooth module */ -+ -+/* control LCD high - OFF low -- ON */ -+#define GPIO_LCD_OFF 116 /* control LCD */ -+ -+/* FFUART PIN */ -+#define GPIO_ICL_FFRXD_MD (53 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFCTS_MD (35 | GPIO_ALT_FN_1_IN) -+#define GPIO_ICL_FFTXD_MD (39 | GPIO_ALT_FN_2_OUT) -+#define GPIO_ICL_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT) -+ -+#endif -+/* -+ * ezx platform, wake up source edge detect bit -+ */ -+#define PEDR_INT_SEC 1 -+ -+#define GPIO_FLIP_PIN 12 -+/*E680 screen lock button*/ -+ -+#define GPIO_LOCK_SCREEN_PIN GPIO_FLIP_PIN -+ -+/* MMC interface */ -+#define GPIO_MMC_DETECT 11 -+#define GPIO_MMC_CLK 32 -+#define GPIO_MMC_DATA0 92 -+#define GPIO_MMC_WP 107 -+#define GPIO_MMC_DATA1 109 -+#define GPIO_MMC_DATA2 110 -+#define GPIO_MMC_DATA3 111 -+#define GPIO_MMC_CMD 112 -+ -+/* interface function */ -+#define GPIO_MMC_CLK_MD (GPIO_MMC_CLK | GPIO_ALT_FN_2_OUT) -+#define GPIO_MMC_DATA0_MD (GPIO_MMC_DATA0 | GPIO_ALT_FN_1_IN | GPIO_ALT_FN_1_OUT) -+#define GPIO_MMC_DATA1_MD (GPIO_MMC_DATA1 | GPIO_ALT_FN_1_IN | GPIO_ALT_FN_1_OUT) -+#define GPIO_MMC_DATA2_MD (GPIO_MMC_DATA2 | GPIO_ALT_FN_1_IN | GPIO_ALT_FN_1_OUT) -+#define GPIO_MMC_DATA3_MD (GPIO_MMC_DATA3 | GPIO_ALT_FN_1_IN | GPIO_ALT_FN_1_OUT) -+ -+#define GPIO_MMC_CMD_MD (GPIO_MMC_CMD | GPIO_ALT_FN_1_IN | GPIO_ALT_FN_1_OUT) -+ -+/* EMU GPIO 119 ---MUX2 120 --- MUX1 */ -+#define GPIO_EMU_MUX1 120 -+#define GPIO_EMU_MUX2 119 -+#define GPIO_SNP_INT_CTL 86 -+#define GPIO_SNP_INT_IN 87 -+ -+ -+/* audio related pins */ -+#define AP_13MHZ_OUTPUT_PIN 9 -+ -+#ifdef CONFIG_ARCH_EZX_E680 -+#define GPIO_VA_SEL_BUL 79 -+#define GPIO_FLT_SEL_BUL 80 /* out filter select pin */ -+#define GPIO_MIDI_RESET 78 /* GPIO used by MIDI chipset */ -+#define GPIO_MIDI_CS 33 -+#define GPIO_MIDI_IRQ 15 -+#define GPIO_MIDI_NPWE 49 -+#define GPIO_MIDI_RDY 18 -+#endif -+ -+#ifdef CONFIG_ARCH_EZX_A780 -+#define GPIO_HW_ATTENUATE_A780 96 /* hw noise attenuation be used or bypassed, for receiver or louderspeaker mode */ -+#endif -+ -+ -+/* bp status pin */ -+#define GPIO_BP_STATE 41 -+ -+/* define usb related pin */ -+#define GPIO34_TXENB 34 -+#define GPIO35_XRXD 35 -+#define GPIO36_VMOUT 36 -+#define GPIO39_VPOUT 39 -+#define GPIO40_VPIN 40 -+#define GPIO53_VMIN 53 -+ -+/* USB client 6 pin defination */ -+#define GPIO34_TXENB_MD (GPIO34_TXENB | GPIO_ALT_FN_1_OUT) -+#define GPIO35_XRXD_MD (GPIO35_XRXD | GPIO_ALT_FN_2_IN ) -+#define GPIO36_VMOUT_MD (GPIO36_VMOUT | GPIO_ALT_FN_1_OUT) -+#define GPIO39_VPOUT_MD (GPIO39_VPOUT | GPIO_ALT_FN_1_OUT) -+#define GPIO40_VPIN_MD (GPIO40_VPIN | GPIO_ALT_FN_3_IN ) -+#define GPIO53_VMIN_MD (GPIO53_VMIN | GPIO_ALT_FN_2_IN ) -+ -+#define GPIO53_FFRXD_MD (53 | GPIO_ALT_FN_1_IN) -+ -Index: linux-2.6.20.7/include/asm-arm/arch-pxa/pxa-regs.h -=================================================================== ---- linux-2.6.20.7.orig/include/asm/arch/pxa-regs.h 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/include/asm-arm/arch-pxa/pxa-regs.h 2007-04-21 22:32:53.000000000 -0300 -@@ -854,6 +854,8 @@ - #define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */ - #define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */ - -+#define UP3OCR __REG(0x40600024) /* USB Port 3 Output Control register */ -+ - #define UDCCSN(x) __REG2(0x40600100, (x) << 2) - #define UDCCSR0 __REG(0x40600100) /* UDC Control/Status register - Endpoint 0 */ - #define UDCCSR0_SA (1 << 7) /* Setup Active */ -@@ -1257,6 +1259,7 @@ - #define GPIO33_nCS_5 33 /* chip select 5 */ - #define GPIO34_FFRXD 34 /* FFUART receive */ - #define GPIO34_MMCCS0 34 /* MMC Chip Select 0 */ -+#define GPIO34_USB_P2_2 34 /* USB Port2 Pin 2 */ - #define GPIO35_FFCTS 35 /* FFUART Clear to send */ - #define GPIO36_FFDCD 36 /* FFUART Data carrier detect */ - #define GPIO37_FFDSR 37 /* FFUART data set ready */ -@@ -1370,6 +1373,7 @@ - #define GPIO18_RDY_MD (18 | GPIO_ALT_FN_1_IN) - #define GPIO19_DREQ1_MD (19 | GPIO_ALT_FN_1_IN) - #define GPIO20_DREQ0_MD (20 | GPIO_ALT_FN_1_IN) -+#define GPIO22_SCLK2_MD (22 | GPIO_ALT_FN_3_IN) - #define GPIO23_SCLK_MD (23 | GPIO_ALT_FN_2_OUT) - #define GPIO24_SFRM_MD (24 | GPIO_ALT_FN_2_OUT) - #define GPIO25_STXD_MD (25 | GPIO_ALT_FN_2_OUT) -@@ -1380,23 +1384,33 @@ - #define GPIO28_BITCLK_OUT_I2S_MD (28 | GPIO_ALT_FN_1_OUT) - #define GPIO29_SDATA_IN_AC97_MD (29 | GPIO_ALT_FN_1_IN) - #define GPIO29_SDATA_IN_I2S_MD (29 | GPIO_ALT_FN_2_IN) -+#define GPIO29_SCLK_MD (29 | GPIO_ALT_FN_3_IN) - #define GPIO30_SDATA_OUT_AC97_MD (30 | GPIO_ALT_FN_2_OUT) - #define GPIO30_SDATA_OUT_I2S_MD (30 | GPIO_ALT_FN_1_OUT) -+#define GPIO30_USB_P3_2 (30 | GPIO_ALT_FN_3_OUT) - #define GPIO31_SYNC_I2S_MD (31 | GPIO_ALT_FN_1_OUT) - #define GPIO31_SYNC_AC97_MD (31 | GPIO_ALT_FN_2_OUT) -+#define GPIO31_USB_P3_6 (31 | GPIO_ALT_FN_3_OUT) - #define GPIO32_SDATA_IN1_AC97_MD (32 | GPIO_ALT_FN_1_IN) - #define GPIO32_SYSCLK_I2S_MD (32 | GPIO_ALT_FN_1_OUT) - #define GPIO32_MMCCLK_MD ( 32 | GPIO_ALT_FN_2_OUT) - #define GPIO33_nCS_5_MD (33 | GPIO_ALT_FN_2_OUT) - #define GPIO34_FFRXD_MD (34 | GPIO_ALT_FN_1_IN) - #define GPIO34_MMCCS0_MD (34 | GPIO_ALT_FN_2_OUT) -+#define GPIO34_USB_P2_2_MD (34 | GPIO_ALT_FN_1_OUT) - #define GPIO35_FFCTS_MD (35 | GPIO_ALT_FN_1_IN) -+#define GPIO35_USB_P2_1_MD (35 | GPIO_ALT_FN_2_IN) - #define GPIO36_FFDCD_MD (36 | GPIO_ALT_FN_1_IN) -+#define GPIO36_USB_P2_4_MD (36 | GPIO_ALT_FN_1_OUT) - #define GPIO37_FFDSR_MD (37 | GPIO_ALT_FN_1_IN) -+#define GPIO37_SFRM2_MD (37 | GPIO_ALT_FN_2_IN) - #define GPIO38_FFRI_MD (38 | GPIO_ALT_FN_1_IN) -+#define GPIO38_STXD2_MD (38 | GPIO_ALT_FN_2_OUT) - #define GPIO39_MMCCS1_MD (39 | GPIO_ALT_FN_1_OUT) - #define GPIO39_FFTXD_MD (39 | GPIO_ALT_FN_2_OUT) -+#define GPIO39_USB_P2_6_MD (39 | GPIO_ALT_FN_1_OUT) - #define GPIO40_FFDTR_MD (40 | GPIO_ALT_FN_2_OUT) -+#define GPIO40_USB_P2_5_MD (40 | GPIO_ALT_FN_3_IN) - #define GPIO41_FFRTS_MD (41 | GPIO_ALT_FN_2_OUT) - #define GPIO42_BTRXD_MD (42 | GPIO_ALT_FN_1_IN) - #define GPIO42_HWRXD_MD (42 | GPIO_ALT_FN_3_IN) -@@ -1421,13 +1435,17 @@ - #define GPIO51_HWRTS_MD (51 | GPIO_ALT_FN_1_OUT) - #define GPIO51_nPIOW_MD (51 | GPIO_ALT_FN_2_OUT) - #define GPIO52_nPCE_1_MD (52 | GPIO_ALT_FN_2_OUT) -+#define GPIO52_SCLK3_MD (52 | GPIO_ALT_FN_2_OUT) - #define GPIO53_nPCE_2_MD (53 | GPIO_ALT_FN_2_OUT) - #define GPIO53_MMCCLK_MD (53 | GPIO_ALT_FN_1_OUT) -+#define GPIO53_FFRXD_MD (53 | GPIO_ALT_FN_1_IN) -+#define GPIO53_USB_P2_3_MD (53 | GPIO_ALT_FN_2_IN) - #define GPIO54_MMCCLK_MD (54 | GPIO_ALT_FN_1_OUT) - #define GPIO54_nPCE_2_MD (54 | GPIO_ALT_FN_2_OUT) - #define GPIO54_pSKTSEL_MD (54 | GPIO_ALT_FN_2_OUT) - #define GPIO55_nPREG_MD (55 | GPIO_ALT_FN_2_OUT) - #define GPIO56_nPWAIT_MD (56 | GPIO_ALT_FN_1_IN) -+#define GPIO56_USB_P3_4 (56 | GPIO_ALT_FN_1_OUT) - #define GPIO57_nIOIS16_MD (57 | GPIO_ALT_FN_1_IN) - #define GPIO58_LDD_0_MD (58 | GPIO_ALT_FN_2_OUT) - #define GPIO59_LDD_1_MD (59 | GPIO_ALT_FN_2_OUT) -@@ -1463,13 +1481,19 @@ - #define GPIO80_nCS_4_MD (80 | GPIO_ALT_FN_2_OUT) - #define GPIO81_NSSP_CLK_OUT (81 | GPIO_ALT_FN_1_OUT) - #define GPIO81_NSSP_CLK_IN (81 | GPIO_ALT_FN_1_IN) -+#define GPIO81_STXD3_MD (81 | GPIO_ALT_FN_1_OUT) - #define GPIO82_NSSP_FRM_OUT (82 | GPIO_ALT_FN_1_OUT) - #define GPIO82_NSSP_FRM_IN (82 | GPIO_ALT_FN_1_IN) - #define GPIO83_NSSP_TX (83 | GPIO_ALT_FN_1_OUT) - #define GPIO83_NSSP_RX (83 | GPIO_ALT_FN_2_IN) -+#define GPIO83_SFRM3_MD (83 | GPIO_ALT_FN_1_IN) - #define GPIO84_NSSP_TX (84 | GPIO_ALT_FN_1_OUT) - #define GPIO84_NSSP_RX (84 | GPIO_ALT_FN_2_IN) - #define GPIO85_nPCE_1_MD (85 | GPIO_ALT_FN_1_OUT) -+#define GPIO88_SRXD2_MD (88 | GPIO_ALT_FN_2_IN) -+#define GPIO89_SRXD3_MD (89 | GPIO_ALT_FN_1_IN) -+#define GPIO90_USB_P3_5 (90 | GPIO_ALT_FN_2_IN) -+#define GPIO91_USB_P3_1 (91 | GPIO_ALT_FN_2_IN) - #define GPIO92_MMCDAT0_MD (92 | GPIO_ALT_FN_1_OUT) - #define GPIO102_nPCE_1_MD (102 | GPIO_ALT_FN_1_OUT) - #define GPIO104_pSKTSEL_MD (104 | GPIO_ALT_FN_1_OUT) -@@ -1481,6 +1505,7 @@ - #define GPIO112_MMCCMD_MD (112 | GPIO_ALT_FN_1_OUT) - #define GPIO113_I2S_SYSCLK_MD (113 | GPIO_ALT_FN_1_OUT) - #define GPIO113_AC97_RESET_N_MD (113 | GPIO_ALT_FN_2_OUT) -+#define GPIO113_USB_P3_3 (113 | GPIO_ALT_FN_3_IN) - #define GPIO117_I2CSCL_MD (117 | GPIO_ALT_FN_1_OUT) - #define GPIO118_I2CSDA_MD (118 | GPIO_ALT_FN_1_IN) - -@@ -1496,6 +1521,7 @@ - #define PFER __REG(0x40F00014) /* Power Manager GPIO Falling-Edge Detect Enable Register */ - #define PEDR __REG(0x40F00018) /* Power Manager GPIO Edge Detect Status Register */ - #define PCFR __REG(0x40F0001C) /* Power Manager General Configuration Register */ -+#define PGSR(x) (__REG(0x40F00020 + ((unsigned long)(x)/32*4))) - #define PGSR0 __REG(0x40F00020) /* Power Manager GPIO Sleep State Register for GP[31-0] */ - #define PGSR1 __REG(0x40F00024) /* Power Manager GPIO Sleep State Register for GP[63-32] */ - #define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */ -Index: linux-2.6.20.7/arch/arm/boot/compressed/head.S -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/boot/compressed/head.S 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/boot/compressed/head.S 2007-04-21 22:32:53.000000000 -0300 -@@ -117,6 +117,9 @@ - mov r0, r0 - .endr - -+ mov r1, #0x300 @ mach_id 0x363 is official EZX -+ orr r1, r1, #0x63 @ bootloader JUMP doesn't set r1 -+ - b 1f - .word 0x016f2818 @ Magic numbers to help the loader - .word start @ absolute load/run zImage address -Index: linux-2.6.20.7/include/asm-arm/arch-pxa/uncompress.h -=================================================================== ---- linux-2.6.20.7.orig/include/asm-arm/arch-pxa/uncompress.h 2007-04-21 22:31:54.000000000 -0300 -+++ linux-2.6.20.7/include/asm-arm/arch-pxa/uncompress.h 2007-04-21 22:32:53.000000000 -0300 -@@ -14,14 +14,14 @@ - #define STUART ((volatile unsigned long *)0x40700000) - #define HWUART ((volatile unsigned long *)0x41600000) - --#define UART FFUART -+#define UART STUART - - - static inline void putc(char c) - { -- while (!(UART[5] & 0x20)) -+/* while (!(UART[5] & 0x40)) - barrier(); -- UART[0] = c; -+ UART[0] = c;*/ - } - - /* -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx_ssp.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx_ssp.c 2007-04-22 01:36:48.000000000 -0300 -@@ -0,0 +1,130 @@ -+/* -+ * SSP control code for Motorola EZX phones -+ * -+ * Copyright (c) 2007 Daniel Ribeiro <drwyrm@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/kernel.h> -+#include <linux/sched.h> -+#include <linux/slab.h> -+#include <linux/delay.h> -+#include <linux/platform_device.h> -+#include <asm/hardware.h> -+#include <asm/mach-types.h> -+ -+#include <asm/arch/ssp.h> -+#include <asm/arch/pxa-regs.h> -+ -+#include "ezx.h" -+ -+static DEFINE_SPINLOCK(ezx_ssp_lock); -+static struct ssp_dev ezx_ssp_dev; -+static struct ssp_state ezx_ssp_state; -+static struct ezxssp_machinfo *ssp_machinfo; -+ -+/* PCAP */ -+unsigned long ezx_ssp_pcap_putget(ulong data) -+{ -+ unsigned long flag; -+ u32 ret = 0; -+ -+ spin_lock_irqsave(&ezx_ssp_lock, flag); -+ if (ssp_machinfo->cs_pcap >= 0) -+ GPCR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap); -+ -+ ssp_write_word(&ezx_ssp_dev,data); -+ ssp_read_word(&ezx_ssp_dev, &ret); -+ -+ if (ssp_machinfo->cs_pcap >= 0) -+ GPSR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap); -+ spin_unlock_irqrestore(&ezx_ssp_lock, flag); -+ -+ return ret; -+} -+EXPORT_SYMBOL(ezx_ssp_pcap_putget); -+ -+/* ASSP */ -+ -+/* NSSP */ -+ -+void __init ezx_ssp_set_machinfo(struct ezxssp_machinfo *machinfo) -+{ -+ ssp_machinfo = machinfo; -+} -+ -+static int __init ezx_ssp_probe(struct platform_device *dev) -+{ -+ int ret; -+ /* PCAP init */ -+ pxa_gpio_mode(29|GPIO_ALT_FN_3_OUT); -+ pxa_gpio_mode(GPIO24_SFRM_MD); -+ pxa_gpio_mode(GPIO25_STXD_MD); -+ pxa_gpio_mode(GPIO26_SRXD_MD); -+ -+ /* Chip Select - Disable All */ -+ if (ssp_machinfo->cs_pcap >= 0) -+ pxa_gpio_mode(ssp_machinfo->cs_pcap | GPIO_OUT | GPIO_DFLT_HIGH); -+ -+ ret = ssp_init(&ezx_ssp_dev, ssp_machinfo->port, 0); -+ -+ if (ret) -+ printk(KERN_ERR "Unable to register SSP handler!\n"); -+ else { -+ ssp_disable(&ezx_ssp_dev); -+ ssp_config(&ezx_ssp_dev, -+ (SSCR0_Motorola | SSCR0_DataSize(16) | SSCR0_EDSS), -+ (SSCR1_TxTresh(1) | SSCR1_RxTresh(1)), -+ 0, SSCR0_SerClkDiv(ssp_machinfo->clk_pcap)); -+ ssp_enable(&ezx_ssp_dev); -+ } -+ -+ return ret; -+} -+ -+static int ezx_ssp_remove(struct platform_device *dev) -+{ -+ ssp_exit(&ezx_ssp_dev); -+ return 0; -+} -+ -+static int ezx_ssp_suspend(struct platform_device *dev, pm_message_t state) -+{ -+ ssp_flush(&ezx_ssp_dev); -+ ssp_save_state(&ezx_ssp_dev,&ezx_ssp_state); -+ -+ return 0; -+} -+ -+static int ezx_ssp_resume(struct platform_device *dev) -+{ -+ if (ssp_machinfo->cs_pcap >= 0) -+ GPSR(ssp_machinfo->cs_pcap) = GPIO_bit(ssp_machinfo->cs_pcap); -+ ssp_restore_state(&ezx_ssp_dev,&ezx_ssp_state); -+ ssp_enable(&ezx_ssp_dev); -+ -+ return 0; -+} -+ -+static struct platform_driver ezxssp_driver = { -+ .probe = ezx_ssp_probe, -+ .remove = ezx_ssp_remove, -+ .suspend = ezx_ssp_suspend, -+ .resume = ezx_ssp_resume, -+ .driver = { -+ .name = "ezx-ssp", -+ }, -+}; -+ -+int __init ezx_ssp_init(void) -+{ -+ return platform_driver_register(&ezxssp_driver); -+} -+ -+arch_initcall(ezx_ssp_init); -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx.h 2007-04-22 01:38:55.000000000 -0300 -@@ -0,0 +1,9 @@ -+#include <asm/arch/ezx.h> -+ -+/* SSP */ -+struct ezxssp_machinfo { -+ int port; -+ int cs_pcap; -+ int clk_pcap; -+}; -+ -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx_lcd.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx_lcd.c 2007-04-21 22:32:53.000000000 -0300 -@@ -0,0 +1,112 @@ -+/* -+ * linux/arch/arm/mach-ezx/a780.c -+ * -+ * Support for the Motorola Ezx A780 Development Platform. -+ * -+ * Author: Zhuang Xiaofan -+ * Created: Nov 25, 2003 -+ * Copyright: Motorola Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include <linux/fb.h> -+#include <linux/delay.h> -+#include <asm/arch/pxafb.h> -+#include <asm/arch/pxa-regs.h> -+ -+/* -+ * EZX PXA Framebuffer -+ */ -+ -+static void pxafb_lcd_power(int on, struct fb_var_screeninfo *var) -+{ -+ if (on) { -+// mdelay(1); -+ GPSR3 = 0x00100000; -+ mdelay(10); -+ GPCR3 = 0x00100000; -+ GPDR3 |= 0x00100000; -+ } else { -+ GPSR3 = 0x00100000; -+ PGSR3 |= 0x00100000; -+ mdelay(41); -+ LCCR0 &= ~LCCR0_LDM; /* disable lcd disable done interrupt */ -+ LCCR0 |= LCCR0_DIS; /* normal disable lcd */ -+ mdelay(18); -+ } -+} -+ -+#ifdef CONFIG_PXA_E2 -+static void sumatra_backlight_power(int on) -+{ -+ if (on) { -+ pxa_gpio_mode(GPIO16_PWM0_MD); -+ pxa_set_cken(CKEN0_PWM0, 1); -+ PWM_CTRL0 = 0; -+ PWM_PWDUTY0 = 0x3ff; -+ PWM_PERVAL0 = 0x3ff; -+ } else { -+ PWM_CTRL0 = 0; -+ PWM_PWDUTY0 = 0x0; -+ PWM_PERVAL0 = 0x3FF; -+ pxa_set_cken(CKEN0_PWM0, 0); -+ } -+} -+ -+static struct pxafb_mode_info mode_ezx = { -+ .pixclock = 192308, -+ .xres = 240, -+ .yres = 320, -+ .bpp = 8, -+ .hsync_len = 10, -+ .left_margin = 20, -+ .right_margin = 10, -+ .vsync_len = 2, -+ .upper_margin = 3, -+ .lower_margin = 2, -+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, -+}; -+ -+static struct pxafb_mach_info ezx_fb_info __initdata = { -+ .modes = &mode_ezx, -+ .num_modes = 1, -+ .lccr0 = 0x022008B8, -+ .lccr3 = 0xC130FF13, -+ .pxafb_backlight_power = sumatra_backlight_power, -+ .pxafb_lcd_power = &pxafb_lcd_power, -+}; -+ -+#else -+static struct pxafb_mode_info mode_ezx = { -+ .pixclock = 150000, -+ .xres = 240, -+ .yres = 320, -+ .bpp = 16, -+ .hsync_len = 10, -+ .left_margin = 20, -+ .right_margin = 10, -+ .vsync_len = 2, -+ .upper_margin = 3, -+ .lower_margin = 2, -+ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, -+}; -+ -+static struct pxafb_mach_info ezx_fb_info __initdata = { -+ .modes = &mode_ezx, -+ .num_modes = 1, -+ .lccr0 = 0x002008F8, -+ .lccr3 = 0x0430FF09, -+ .pxafb_lcd_power= &pxafb_lcd_power, -+}; -+#endif -+ -+int __init __ezx_lcd_init (void) -+{ -+ set_pxa_fb_info(&ezx_fb_info); -+ return 0; -+} -+ -+arch_initcall(__ezx_lcd_init); -Index: linux-2.6.20.7/arch/arm/mm/init.c -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mm/init.c 2007-04-21 22:32:57.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mm/init.c 2007-04-21 22:44:03.000000000 -0300 -@@ -241,6 +241,10 @@ - */ - reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, - boot_pages << PAGE_SHIFT); -+#ifdef CONFIG_ARCH_EZX -+ /* reserve the first page memory for exiting sleep and user off */ -+ reserve_bootmem_node(pgdat, PHYS_OFFSET, PAGE_SIZE); -+#endif - - #ifdef CONFIG_BLK_DEV_INITRD - /* diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-emu.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-emu.patch deleted file mode 100644 index de9de60461..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-emu.patch +++ /dev/null @@ -1,332 +0,0 @@ -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx-emu.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx-emu.c 2007-04-21 12:33:22.000000000 -0300 -@@ -0,0 +1,215 @@ -+/* -+ * EMU Driver for Motorola EZX phones -+ * -+ * Copyright (c) 2007 Daniel Ribeiro <drwyrm@gmail.com> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/interrupt.h> -+#include <linux/module.h> -+#include <linux/platform_device.h> -+ -+#include <asm/arch/hardware.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/ezx.h> -+#include <asm/arch/ezx-pcap.h> -+#include <asm/arch/udc.h> -+ -+static struct pxa2xx_udc_mach_info ezx_udc_info; -+extern int ezx_pcap_bit_set(u_int32_t, u_int8_t); -+extern int ezx_pcap_read_bit(u_int32_t); -+ -+void emu_switch_to_usb(void) -+{ -+ pxa_gpio_mode(GPIO34_USB_P2_2_MD); -+ pxa_gpio_mode(GPIO35_USB_P2_1_MD); -+ pxa_gpio_mode(GPIO36_USB_P2_4_MD); -+ pxa_gpio_mode(GPIO39_USB_P2_6_MD); -+ pxa_gpio_mode(GPIO40_USB_P2_5_MD); -+ pxa_gpio_mode(GPIO53_USB_P2_3_MD); -+ UP2OCR = 0x02000000; -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_FSENB, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN, 1); -+ clr_GPIO(GPIO_EMU_MUX1); -+ clr_GPIO(GPIO_EMU_MUX2); -+} -+EXPORT_SYMBOL(emu_switch_to_usb); -+ -+void emu_switch_to_uart(void) -+{ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN,0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232_DIR, 1); -+ set_GPIO(GPIO39_FFTXD); -+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT); -+ set_GPIO(GPIO34_TXENB); -+ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN); -+ pxa_gpio_mode(GPIO36_VMOUT | GPIO_IN); -+ pxa_gpio_mode(GPIO40_VPIN | GPIO_IN); -+ pxa_gpio_mode(GPIO39_FFTXD_MD); -+ pxa_gpio_mode(GPIO53_FFRXD_MD); -+ CKEN |= CKEN6_FFUART; -+ clr_GPIO(GPIO_EMU_MUX1); -+ clr_GPIO(GPIO_EMU_MUX2); -+ -+} -+EXPORT_SYMBOL(emu_switch_to_uart); -+ -+void emu_switch_to_audio(int stereo) -+{ -+ clr_GPIO(GPIO39_VPOUT); -+ if (stereo) { -+ pxa_gpio_mode(GPIO34_USB_P2_2 | GPIO_IN); -+ clr_GPIO(GPIO39_VPOUT); -+ } else { -+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT); -+ set_GPIO(GPIO34_TXENB); -+ } -+ -+ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN); -+ pxa_gpio_mode(GPIO36_VMOUT | GPIO_IN); -+ pxa_gpio_mode(GPIO39_VPOUT | GPIO_IN); -+ pxa_gpio_mode(GPIO40_VPIN | GPIO_IN); -+ pxa_gpio_mode(GPIO53_VMIN | GPIO_IN); -+ set_GPIO(GPIO_EMU_MUX1); -+ if (stereo) -+ set_GPIO(GPIO_EMU_MUX2); -+ else -+ clr_GPIO(GPIO_EMU_MUX2); -+} -+ -+void emu_switch_to_nothing(void) -+{ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB, 1); -+ pxa_gpio_mode(GPIO34_TXENB | GPIO_OUT); -+ set_GPIO(GPIO34_TXENB); -+ pxa_gpio_mode(GPIO35_XRXD | GPIO_IN); -+ pxa_gpio_mode(GPIO36_VMOUT | GPIO_IN); -+ pxa_gpio_mode(GPIO39_VPOUT | GPIO_IN); -+ pxa_gpio_mode(GPIO40_VPIN | GPIO_IN); -+ pxa_gpio_mode(GPIO53_VMIN | GPIO_IN); -+} -+ -+ -+static irqreturn_t emu_irq(int irq, void *data) -+{ -+ printk("emu_irq(%u) entered: ", irq); -+ -+ switch (irq) { -+ case EZX_IRQ_USB4V: -+ printk("usb 4v\n"); -+ if(ezx_pcap_read_bit(SSP_PCAP_ADJ_BIT_PSTAT_USBDET_4V)) -+#if defined CONFIG_PXA_EZX_EMU_USB -+ emu_switch_to_usb(); -+#elif defined CONFIG_PXA_EZX_EMU_UART -+ emu_switch_to_uart(); -+#else -+ emu_switch_to_nothing(); -+#endif -+ else -+ emu_switch_to_nothing(); -+ break; -+ case EZX_IRQ_USB1V: -+ printk("usb 1v\n"); -+ break; -+ default: -+ printk("unknown\n"); -+ break; -+ } -+ -+ return IRQ_HANDLED; -+} -+ -+static int __init ezx_emu_probe(struct platform_device *dev) -+{ -+ printk("ezx_emu_probe entered!\n"); -+ pxa_gpio_mode(GPIO_SNP_INT_IN | GPIO_IN); -+ pxa_gpio_mode(GPIO_EMU_MUX1 | GPIO_OUT); -+ pxa_gpio_mode(GPIO_EMU_MUX2 | GPIO_OUT); -+ -+ request_irq(EZX_IRQ_USB4V, &emu_irq, SA_INTERRUPT, "usb 4v", NULL); -+ request_irq(EZX_IRQ_USB1V, &emu_irq, SA_INTERRUPT, "usb 1v", NULL); -+ -+ pxa_set_udc_info(&ezx_udc_info); -+ -+#if defined CONFIG_PXA_EZX_EMU_USB -+ emu_switch_to_usb(); -+#elif defined CONFIG_PXA_EZX_EMU_UART -+ emu_switch_to_uart(); -+#else -+ emu_switch_to_nothing(); -+#endif -+ -+ return 0; -+} -+ -+static int ezx_emu_remove(struct platform_device *dev) -+{ -+ free_irq(EZX_IRQ_USB4V, NULL); -+ free_irq(EZX_IRQ_USB1V, NULL); -+ -+ return 0; -+} -+ -+/* USB Device Controller */ -+static int udc_connected_status; -+static void ezx_udc_command(int cmd) -+{ -+ switch (cmd) { -+ case PXA2XX_UDC_CMD_DISCONNECT: -+ printk(KERN_NOTICE "USB cmd disconnect\n"); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU,0); -+ udc_connected_status = 0; -+ break; -+ case PXA2XX_UDC_CMD_CONNECT: -+ printk(KERN_NOTICE "USB cmd connect\n"); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU,1); -+ udc_connected_status = 1; -+ break; -+ } -+} -+ -+static int ezx_udc_is_connected(void) -+{ -+ return udc_connected_status; -+} -+ -+static struct pxa2xx_udc_mach_info ezx_udc_info __initdata = { -+ .udc_is_connected = ezx_udc_is_connected, -+ .udc_command = ezx_udc_command, -+}; -+ -+static struct platform_driver ezxemu_driver = { -+ .probe = ezx_emu_probe, -+ .remove = ezx_emu_remove, -+ //.suspend = ezx_emu_suspend, -+ //.resume = ezx_emu_resume, -+ .driver = { -+ .name = "ezx-emu", -+ .owner = THIS_MODULE, -+ }, -+}; -+ -+int __init ezx_emu_init(void) -+{ -+ return platform_driver_register(&ezxemu_driver); -+} -+ -+void ezx_emu_fini(void) -+{ -+ return platform_driver_unregister(&ezxemu_driver); -+} -+ -+module_init(ezx_emu_init); -+module_exit(ezx_emu_fini); -+ -+MODULE_DESCRIPTION("Motorola Enchanced Mini Usb driver"); -+MODULE_AUTHOR("Daniel Ribeiro <drwyrm@gmail.com>"); -+MODULE_LICENSE("GPL"); -Index: linux-2.6.20.7/arch/arm/mach-pxa/Kconfig -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Kconfig 2007-04-21 12:32:50.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Kconfig 2007-04-21 12:32:54.000000000 -0300 -@@ -94,6 +94,27 @@ - - endchoice - -+config PXA_EZX_EMU -+ bool "Motorola Enchanced Mini Usb" -+ -+if PXA_EZX_EMU -+ -+choice -+ prompt "Select default EMU mode" -+ -+config PXA_EZX_EMU_USB -+ bool "USB" -+ -+config PXA_EZX_EMU_UART -+ bool "UART" -+ -+config PXA_EZX_EMU_NOTHING -+ bool "nothing" -+ -+endchoice -+ -+endif -+ - endif - - endmenu -Index: linux-2.6.20.7/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Makefile 2007-04-21 12:32:50.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Makefile 2007-04-21 12:32:54.000000000 -0300 -@@ -19,6 +19,7 @@ - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o - obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o -+obj-$(CONFIG_PXA_EZX_EMU) += ezx-emu.o - - # Support for blinky lights - led-y := leds.o -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx.c -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/ezx.c 2007-04-21 12:32:50.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx.c 2007-04-21 12:32:54.000000000 -0300 -@@ -36,6 +36,7 @@ - #include <asm/arch/ohci.h> - #include <asm/arch/pxa-regs.h> - -+ - #include "ezx.h" - #include "generic.h" - #include <linux/tty.h> -@@ -92,6 +93,30 @@ - .resource = ezxpcap_resources, - }; - -+/* EMU */ -+static struct resource ezxemu_resources[] = { -+ [0] = { -+ .start = EZX_IRQ_USB4V, -+ .end = EZX_IRQ_USB4V, -+ .flags = IORESOURCE_IRQ, -+ }, -+ [1] = { -+ .start = EZX_IRQ_USB1V, -+ .end = EZX_IRQ_USB1V, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+struct platform_device ezxemu_device = { -+ .name = "ezx-emu", -+ .id = -1, -+// .dev = { -+// .parent = &ezxpcap_device.dev, -+// }, -+ .num_resources = ARRAY_SIZE(ezxemu_resources), -+ .resource = ezxemu_resources, -+}; -+ - /* OHCI Controller */ - - static int ezx_ohci_init(struct device *dev) -@@ -317,6 +342,7 @@ - &ezxssp_device, - &ezxpcap_device, - &ezxbp_device, -+ &ezxemu_device, - }; - - static void __init a780_init(void) -@@ -383,7 +409,15 @@ - pxa_set_ohci_info(&ezx_ohci_platform_data); - - platform_add_devices(devices, ARRAY_SIZE(devices)); -- -+/* -+#if defined CONFIG_PXA_EZX_EMU_USB -+ emu_switch_to_usb(); -+#elif defined CONFIG_PXA_EZX_EMU_UART -+ emu_switch_to_uart(); -+#else -+ emu_switch_to_nothing(); -+#endif -+*/ - } - - MACHINE_START(EZX, "Motorola Ezx Platform") diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-fix-usb_pxa27x_udc-r3.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-fix-usb_pxa27x_udc-r3.patch deleted file mode 100644 index c3cbf25a09..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-fix-usb_pxa27x_udc-r3.patch +++ /dev/null @@ -1,16 +0,0 @@ -Index: linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/pxa27x_udc.c 2007-04-21 12:30:51.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.c 2007-04-21 12:32:21.000000000 -0300 -@@ -1615,8 +1615,9 @@ - - DMSG("Connecting\n"); - /* RPFIXME */ -- UP2OCR = UP2OCR_HXOE | UP2OCR_DPPUE | UP2OCR_DPPUBE; -- //dev->mach->udc_command(PXA2XX_UDC_CMD_CONNECT); -+ //UP2OCR = UP2OCR_HXOE | UP2OCR_DPPUE | UP2OCR_DPPUBE; -+ UP2OCR = 0x02000000; // temporary solution for ezx. -+ dev->mach->udc_command(PXA2XX_UDC_CMD_CONNECT); - } - - diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-mci.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-mci.patch deleted file mode 100644 index d16693e3e4..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-mci.patch +++ /dev/null @@ -1,177 +0,0 @@ -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx-mci.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx-mci.c 2007-04-20 01:10:13.000000000 -0300 -@@ -0,0 +1,159 @@ -+/* -+ * linux/arch/arm/mach-ezx/a780.c -+ * -+ * Support for the Motorola Ezx A780 Development Platform. -+ * -+ * Author: Zhuang Xiaofan -+ * Created: Nov 25, 2003 -+ * Copyright: Motorola Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include <linux/mmc/host.h> -+#include <linux/irq.h> -+#include <asm/irq.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/ezx-pcap.h> -+#include <asm/arch/mmc.h> -+#include <asm/arch/hardware.h> -+ -+extern int ezx_pcap_mmcsd_power(int); -+extern void ezx_pcap_mmcsd_voltage(u_int32_t); -+ -+static struct pxamci_platform_data ezx_mci_platform_data; -+ -+static int ezx_mci_init(struct device *dev, -+ irqreturn_t (*ezx_detect_int)(int, void *), -+ void *data) -+{ -+ int err; -+ printk("%s entered\n", __FUNCTION__); -+ -+ /* Setup GPIO for PXA27x MMC/SD controller */ -+ pxa_gpio_mode(GPIO32_MMCCLK_MD); -+ pxa_gpio_mode(GPIO112_MMCCMD_MD); -+ pxa_gpio_mode(GPIO92_MMCDAT0_MD); -+ pxa_gpio_mode(GPIO109_MMCDAT1_MD); -+ pxa_gpio_mode(GPIO110_MMCDAT2_MD); -+ pxa_gpio_mode(GPIO111_MMCDAT3_MD); -+ -+ ezx_pcap_mmcsd_power(1); -+ -+ ezx_mci_platform_data.detect_delay = msecs_to_jiffies(250); -+ -+ err = request_irq(0x49, ezx_detect_int, SA_INTERRUPT, -+ "MMC card detect", data); -+ if (err) { -+ printk(KERN_ERR "ezx_mci_detect: MMC/SD: can't request " -+ "MMC card detect IRQ\n"); -+ return -1; -+ } -+ -+ set_irq_type(0x0b, IRQT_BOTHEDGE); -+ -+ return 0; -+} -+ -+static int ezx_mci_get_ro(struct device *dev) -+{ -+ printk("%s entered\n", __FUNCTION__); -+#if defined(CONFIG_PXA_EZX_E680) -+ /* this is only e680, i guess */ -+ // return GPIO_is_high(96+4); -+ return (GPLR3 & 0x800); -+#else -+ return 0; -+#endif -+} -+ -+#if defined(CONFIG_PXA_EZX_A780) -+static u_int8_t mmc_voltage[] = { -+ [MMC_VDD_160] = 5, -+ [MMC_VDD_170] = 5, -+ [MMC_VDD_180] = 6, -+ [MMC_VDD_190] = 6, -+ [MMC_VDD_200] = 7, -+ [MMC_VDD_210] = 7, -+ [MMC_VDD_220] = 8, -+ [MMC_VDD_230] = 8, -+ [MMC_VDD_240] = 9, -+ [MMC_VDD_250] = 9, -+ [MMC_VDD_260] = 10, -+ [MMC_VDD_270] = 10, -+ [MMC_VDD_280] = 11, -+ [MMC_VDD_290] = 11, -+ [MMC_VDD_300] = 12, -+ [MMC_VDD_310] = 12, -+ [MMC_VDD_320] = 13, -+ [MMC_VDD_330] = 13, -+ [MMC_VDD_340] = 14, -+ [MMC_VDD_350] = 14, -+ [MMC_VDD_360] = 15, -+}; -+#elif defined(CONFIG_PXA_EZX_E680) -+static u_int8_t mmc_voltage[] = { -+ [MMC_VDD_160] = 3, -+ [MMC_VDD_170] = 3, -+ [MMC_VDD_180] = 3, -+ [MMC_VDD_190] = 3, -+ [MMC_VDD_200] = 3, -+ [MMC_VDD_210] = 3, -+ [MMC_VDD_220] = 3, -+ [MMC_VDD_230] = 3, -+ [MMC_VDD_240] = 3, -+ [MMC_VDD_250] = 3, -+ [MMC_VDD_260] = 3, -+ [MMC_VDD_270] = 3, -+ [MMC_VDD_280] = 3, -+ [MMC_VDD_290] = 3, -+ [MMC_VDD_300] = 3, -+ [MMC_VDD_310] = 3, -+ [MMC_VDD_320] = 3, -+ [MMC_VDD_330] = 3, -+ [MMC_VDD_340] = 3, -+ [MMC_VDD_350] = 3, -+ [MMC_VDD_360] = 3, -+}; -+#endif -+ -+static void ezx_mci_setpower(struct device *dev, unsigned int vdd) -+{ -+ printk("%s(vdd=%u) entered\n", __FUNCTION__, vdd); -+ if (vdd <= MMC_VDD_360) -+ ezx_pcap_mmcsd_voltage(mmc_voltage[vdd]); -+ -+ ezx_pcap_mmcsd_power(1); -+} -+ -+static void ezx_mci_exit(struct device *dev, void *data) -+{ -+ printk("%s entered\n", __FUNCTION__); -+ ezx_pcap_mmcsd_power(0); -+ free_irq(0x49, data); -+} -+ -+static struct pxamci_platform_data ezx_mci_platform_data = { -+#if defined(CONFIG_PXA_EZX_E680) -+ .ocr_mask = MMC_VDD_27_28, -+#elif defined(CONFIG_PXA_EZX_A780) -+ .ocr_mask = MMC_VDD_160_165|MMC_VDD_18_19|MMC_VDD_20_21 -+ |MMC_VDD_22_23|MMC_VDD_24_25|MMC_VDD_26_27 -+ |MMC_VDD_28_29|MMC_VDD_30_31|MMC_VDD_32_33 -+ |MMC_VDD_34_35|MMC_VDD_35_36, -+#endif -+ .init = ezx_mci_init, -+ .get_ro = ezx_mci_get_ro, -+ .setpower = ezx_mci_setpower, -+ .exit = ezx_mci_exit, -+}; -+ -+int __init __ezx_mci_init (void) -+{ -+ pxa_set_mci_info(&ezx_mci_platform_data); -+ return 0; -+} -+ -+arch_initcall(__ezx_mci_init); -Index: linux-2.6.20.7/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Makefile 2007-04-21 02:56:16.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Makefile 2007-04-21 03:00:03.000000000 -0300 -@@ -18,7 +18,7 @@ - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o --obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o -+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o - - # Support for blinky lights - led-y := leds.o diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-mtd-map.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-mtd-map.patch deleted file mode 100644 index f59e31d9a2..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-mtd-map.patch +++ /dev/null @@ -1,274 +0,0 @@ -Index: linux-2.6.20.7/drivers/mtd/maps/Kconfig -=================================================================== ---- linux-2.6.20.7.orig/drivers/mtd/maps/Kconfig 2007-04-21 12:47:04.000000000 -0300 -+++ linux-2.6.20.7/drivers/mtd/maps/Kconfig 2007-04-21 13:01:08.000000000 -0300 -@@ -595,6 +595,28 @@ - help - This enables access to the flash chip on the Sharp SL Series of PDAs. - -+config MTD_EZX -+ bool "Map driver for Motorola EZX Platform" -+ depends on MTD && PXA_EZX -+ -+if MTD_EZX -+ -+choice -+ prompt "Select partition mapping for EZX platform" -+ -+config MTD_EZX_A780 -+ bool "A780/E680 Original Mapping" -+ -+config MTD_EZX_A780_ALTERNATE -+ bool "A780/E680 Alternate Mapping for BLOB2" -+ -+config MTD_EZX_E2 -+ bool "E2 Original Mapping" -+ -+endchoice -+ -+endif -+ - config MTD_PLATRAM - tristate "Map driver for platform device RAM (mtd-ram)" - depends on MTD -Index: linux-2.6.20.7/drivers/mtd/maps/Makefile -=================================================================== ---- linux-2.6.20.7.orig/drivers/mtd/maps/Makefile 2007-04-21 12:55:09.000000000 -0300 -+++ linux-2.6.20.7/drivers/mtd/maps/Makefile 2007-04-21 12:55:45.000000000 -0300 -@@ -72,3 +72,4 @@ - obj-$(CONFIG_MTD_OMAP_NOR) += omap_nor.o - obj-$(CONFIG_MTD_MTX1) += mtx-1_flash.o - obj-$(CONFIG_MTD_TQM834x) += tqm834x.o -+obj-$(CONFIG_MTD_EZX) += ezx-flash.o -Index: linux-2.6.20.7/drivers/mtd/maps/ezx-flash.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/mtd/maps/ezx-flash.c 2007-04-21 13:07:14.000000000 -0300 -@@ -0,0 +1,227 @@ -+/* -+ * $Id: $ -+ * -+ * Map driver for the PXA27x -+ * -+ * Author: Harald Welte -+ * Copyright: (C) 2001 MontaVista Software Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * Mar 3, 2007 - (Daniel Ribeiro) Alternate partition table -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/types.h> -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/dma-mapping.h> -+#include <linux/slab.h> -+ -+#include <linux/mtd/mtd.h> -+#include <linux/mtd/map.h> -+#include <linux/mtd/partitions.h> -+ -+#include <asm/io.h> -+#include <asm/hardware.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/mainstone.h> -+ -+#define WINDOW_ADDR 0x0 -+#define WINDOW_SIZE (32*1024*1024) -+#define WINDOW_CACHE_ADDR 0x0 -+#define WINDOW_CACHE_SIZE 0x1a00000 -+ -+static void pxa27x_map_inval_cache(struct map_info *map, unsigned long from, -+ ssize_t len) -+{ -+#if 0 -+ unsigned long endaddress, i, j; -+ endaddress = from + len -1; -+ from &= ~(32-1); -+ endaddress &= ~(32-1); -+ for (i = from; i <= endaddress; i += 32) -+ asm("mcr p15, 0, %0, c7, c6, 1"::"r"(i)); -+ -+ asm( "mrc p15, 0, %0, c2, c0, 0\n" -+ "mov %0, %0\n" -+ "sub pc, pc #4" -+ :"=r"(j)); -+#else -+ consistent_sync((char *)map->cached + from, len, DMA_FROM_DEVICE); -+#endif -+} -+ -+ -+struct map_info pxa27x_map = { -+ .name = "PXA27x flash", -+ .size = WINDOW_SIZE, -+ .phys = WINDOW_ADDR, -+ .inval_cache = &pxa27x_map_inval_cache, -+}; -+ -+#if defined CONFIG_MTD_EZX_A780_ALTERNATE -+static struct mtd_partition pxa27x_partitions[] = { -+ { -+ .name = "Bootloader (RO)", -+ .size = 0x00020000, -+ .offset = 0, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Bootloader 2", -+ .size = 0x00020000, -+ .offset = 0x00020000, -+ } , { -+ .name = "Kernel 1", -+ .size = 0x000e0000, // 896KB -+ .offset = 0x00040000, -+ } , { -+ .name = "rootfs", -+ .size = 0x01760000, -+ .offset = 0x00120000, -+ } , { -+ .name = "Kernel 2", -+ .size = 0x00180000, // 1.5MB -+ .offset = 0x01880000, -+ } , { -+ .name = "VFM_Filesystem", -+ .size = 0x005a0000, -+ .offset = 0x01a00000, -+ } , { -+ .name = "setup", -+ .size = 0x00020000, -+ .offset = 0x01fa0000, -+ } , { -+ .name = "Logo", -+ .size = 0x00020000, -+ .offset = 0x01fc0000, -+ }, -+}; -+#elif defined CONFIG_MTD_EZX_A780 -+static struct mtd_partition pxa27x_partitions[] = { -+ { -+ .name = "Bootloader", -+ .size = 0x00020000, -+ .offset = 0, -+ .mask_flags = MTD_WRITEABLE, -+ }, { -+ .name = "Kernel", -+ .size = 0x000e0000, -+ .offset = 0x00020000, -+ } , { -+ .name = "rootfs", -+ .size = 0x018e0000, -+ .offset = 0x00120000, -+ } , { -+ .name = "VFM_Filesystem", -+ .size = 0x00580000, -+ .offset = 0x01a00000, -+ } , { -+ .name = "setup", -+ .size = 0x00020000, -+ .offset = 0x01fa0000, -+ } , { -+ .name = "Logo", -+ .size = 0x00020000, -+ .offset = 0x01fc0000, -+ }, -+}; -+#else -+#error "please define partition for this PXA27x implementation" -+#endif -+ -+ -+static struct mtd_info *mymtd; -+static struct mtd_partition *parsed_parts; -+ -+static const char *probes[] = { "RedBoot", "cmdlinepart", NULL }; -+ -+static int __init init_pxa27x(void) -+{ -+ struct mtd_partition *parts; -+ int nb_parts = 0; -+ int parsed_nr_parts = 0; -+ char *part_type = "static"; -+ -+ pxa27x_map.bankwidth = (BOOT_DEF & 1) ? 2 : 4; -+ -+ printk("Probing PXA27x flash at physical address 0x%08x (%d-bit bankwidth)\n", -+ WINDOW_ADDR, pxa27x_map.bankwidth * 8); -+ pxa27x_map.virt = ioremap(pxa27x_map.phys, pxa27x_map.size); -+ -+ if (!pxa27x_map.virt) { -+ printk("Failed to ioremap\n"); -+ return -EIO; -+ } -+ -+ mymtd = do_map_probe("cfi_probe", &pxa27x_map); -+ if (!mymtd) { -+ iounmap((void *)pxa27x_map.virt); -+ return -ENXIO; -+ } -+ mymtd->owner = THIS_MODULE; -+ -+#if 0 -+ /* ioremap the first flash chip as cacheable */ -+ pxa27x_map.cached = ioremap_cached(pxa27x_map.phys, pxa27x_map.size); -+ if (!pxa27x_map.cached) { -+ printk("Failed to do cacheable-ioremap\n"); -+ iounmap((void *)pxa27x_map.virt); -+ return -EIO; -+ } -+#endif -+ simple_map_init(&pxa27x_map); -+ -+ if (parsed_nr_parts == 0) { -+ int ret = parse_mtd_partitions(mymtd, probes, &parsed_parts, 0); -+ -+ if (ret > 0) { -+ part_type = "RedBoot"; -+ parsed_nr_parts = ret; -+ } -+ } -+ -+ if (parsed_nr_parts > 0) { -+ parts = parsed_parts; -+ nb_parts = parsed_nr_parts; -+ } else { -+ parts = pxa27x_partitions; -+ nb_parts = ARRAY_SIZE(pxa27x_partitions); -+ } -+ -+ if (nb_parts) { -+ printk(KERN_NOTICE "Using %s partition definition\n", part_type); -+ add_mtd_partitions(mymtd, parts, nb_parts); -+ } else { -+ add_mtd_device(mymtd); -+ } -+#if 0 -+ if (ret = ezx_partition_init()) -+#endif -+ return 0; -+} -+ -+static void __exit cleanup_pxa27x(void) -+{ -+ if (mymtd) { -+ del_mtd_partitions(mymtd); -+ map_destroy(mymtd); -+ if (parsed_parts) -+ kfree(parsed_parts); -+ } -+ if (pxa27x_map.virt) -+ iounmap((void *)pxa27x_map.virt); -+ if (pxa27x_map.cached) -+ iounmap((void *)pxa27x_map.cached); -+ return; -+} -+ -+module_init(init_pxa27x); -+module_exit(cleanup_pxa27x); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Harald Welte <laforge@gnumonks.org>"); -+MODULE_DESCRIPTION("MTD map driver for Motorola EZX platform"); diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-pcap.patch b/packages/linux/linux-ezx-2.6.20.7/ezx-pcap.patch deleted file mode 100644 index 22c5d44f36..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-pcap.patch +++ /dev/null @@ -1,1197 +0,0 @@ -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx-pcap.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx-pcap.c 2007-04-21 08:26:37.000000000 -0300 -@@ -0,0 +1,411 @@ -+/* Driver for Motorola PCAP2 as present in EZX phones -+ * -+ * This is both a SPI device driver for PCAP itself, as well as -+ * an IRQ demultiplexer for handling PCAP generated events such as -+ * headphone jack sense by downstream drivers. -+ * -+ * (C) 2006 by Harald Welte <laforge@openezx.org> -+ * -+ * 2007, April - Daniel Ribeiro <drwyrm@gmail.com> -+ * Altered to work with corgi's SSP code. -+ * Fixed irq handling routine. -+ */ -+ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/platform_device.h> -+#include <linux/interrupt.h> -+#include <linux/kernel_stat.h> -+ -+#include <asm/hardware.h> -+#include <asm/mach-types.h> -+ -+#include <asm/arch/ssp.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/ezx-pcap.h> -+#include <asm/arch/irqs.h> -+#include <asm/mach/irq.h> -+ -+#include "ezx.h" -+ -+#if 0 -+#define DEBUGP(x, args...) printk(x, ## args) -+#else -+#define DEBUGP(x, args...) -+#endif -+ -+extern unsigned long ezx_ssp_pcap_putget(ulong); -+ -+int ezx_pcap_write(u_int8_t reg_num, u_int32_t value) -+{ -+ value &= SSP_PCAP_REGISTER_VALUE_MASK; -+ value |= SSP_PCAP_REGISTER_WRITE_OP_BIT -+ | (reg_num<<SSP_PCAP_REGISTER_ADDRESS_SHIFT); -+ -+ local_irq_disable(); -+ ezx_ssp_pcap_putget(value); -+ local_irq_enable(); -+ -+ DEBUGP("pcap write r%x: 0x%08x\n", reg_num, value); -+ return 0; -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_write); -+ -+int ezx_pcap_read(u_int8_t reg_num, u_int32_t *value) -+{ -+ u_int32_t frame = SSP_PCAP_REGISTER_READ_OP_BIT -+ | (reg_num<<SSP_PCAP_REGISTER_ADDRESS_SHIFT); -+ -+ local_irq_disable(); -+ *value = ezx_ssp_pcap_putget(frame); -+ local_irq_enable(); -+ -+ DEBUGP("pcap read r%x: 0x%08x\n", reg_num, *value); -+ return 0; -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_read); -+ -+int ezx_pcap_bit_set(u_int32_t sspPcapBit, u_int8_t to) -+{ -+ int ret; -+ u_int32_t tmp; -+ u_int32_t bit = (sspPcapBit & SSP_PCAP_REGISTER_VALUE_MASK); -+ u_int8_t reg_num = (sspPcapBit & SSP_PCAP_REGISTER_ADDRESS_MASK) -+ >> SSP_PCAP_REGISTER_ADDRESS_SHIFT; -+ -+ ret = ezx_pcap_read(reg_num, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ if (to == 0) -+ tmp &= ~bit; -+ else -+ tmp |= bit; -+ -+ return ezx_pcap_write(reg_num, tmp); -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_bit_set); -+ -+int ezx_pcap_read_bit(u_int32_t bit) -+{ -+ int ret; -+ u_int32_t tmp; -+ u_int8_t reg_num = (bit & SSP_PCAP_REGISTER_ADDRESS_MASK) -+ >> SSP_PCAP_REGISTER_ADDRESS_SHIFT; -+ -+ ret = ezx_pcap_read(reg_num, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ return tmp & (bit & SSP_PCAP_REGISTER_VALUE_MASK); -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_read_bit); -+ -+ -+static int ezx_pcap_vibrator_level(u_int32_t bit) -+{ -+ /* FIXME */ -+ return 0; -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_vibrator_level); -+ -+ -+static int pcap_init(void) -+{ -+ /* initialize registers */ -+ /* FIXME: this should be board-level, not chip-level */ -+ /* implement a per board pcap init reg array? */ -+ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB4VI, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB4VM, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ISR_USB1VI, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_USB1VM, 0); -+ // disable all interrupts -+ //ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, 0x03ffffff); -+ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL, 1); -+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3); -+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3); -+ -+ /* set SW1 sleep to keep SW1 1.3v in sync mode */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE10, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE11, 0); -+ /* SW1 active in sync mode */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE00, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE01, 0); -+ /* at SW1 -core voltage to 1.30V */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW10_DVS, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW11_DVS, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW12_DVS, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW13_DVS, 0); -+ -+ /* when STANDY2 PIN ACTIVE (high) set V3-- sram V8 -- pll off */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V3_STBY, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V3_LOWPWR, 0); -+ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V8_STBY, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V8_LOWPWR, 0); -+ -+ /* when STANDY2 PIN ACTIVE (high) set V4-- lcd only for e680 V6 --- -+ * camera for e680 */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V4_STBY, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V4_LOWPWR, 1); -+ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V6_STBY, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_VREG2_V6_LOWPWR, 0); -+ -+ /* set Vc to low power mode when AP sleep */ -+ //SSP_PCAP_bit_set( SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VC_STBY); -+ -+ /* set VAUX2 to voltage 2.775V and low power mode when AP sleep */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_1, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_0, 0); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_STBY, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_LOWPWR, 1); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 1); -+ -+ PGSR(GPIO34_TXENB) |= GPIO_bit(GPIO34_TXENB); -+ -+ return 0; -+} -+/* MMC/SD specific functions */ -+ -+void ezx_pcap_mmcsd_voltage(u_int32_t bits) -+{ -+ unsigned int tmp; -+ ezx_pcap_read(SSP_PCAP_ADJ_AUX_VREG_REGISTER, &tmp); -+#if defined(CONFIG_PXA_EZX_E680) -+ tmp &= 0xffffff9f; /* zero all vaux2 bits */ -+ tmp |= (bits & 0x3) << 5; -+#elif defined(CONFIG_PXA_EZX_A780) -+ tmp &= 0xfffff0ff; /* zero all vaux3 bits */ -+ tmp |= (bits & 0xf) << 8; -+#endif -+ ezx_pcap_write(SSP_PCAP_ADJ_AUX_VREG_REGISTER, tmp); -+} -+EXPORT_SYMBOL(ezx_pcap_mmcsd_voltage); -+ -+int ezx_pcap_mmcsd_power(int on) -+{ -+ if (on) { -+#if defined(CONFIG_PXA_EZX_E680) -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 1); -+#else -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, 1); -+#endif -+ } else { -+#if defined(CONFIG_PXA_EZX_E680) -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 0); -+#else -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, 0); -+#endif -+ } -+} -+EXPORT_SYMBOL_GPL(ezx_pcap_mmcsd_power); -+ -+/* IRQ Handling */ -+ -+/* Array indexed by BIT POSITION of PCAP register, returns IRQ number */ -+static unsigned int pcap2irq[] = { -+ [0] = EZX_IRQ_ADCDONE, -+ [1] = EZX_IRQ_TS, -+ [2] = 0, /* 1HZ */ -+ [3] = 0, /* WI */ -+ [4] = 0, /* WI */ -+ [5] = 0, /* TODA */ -+ [6] = EZX_IRQ_USB4V, -+ [7] = 0, /* ONOFF */ -+ [8] = 0, /* ONOFF2 */ -+ [9] = EZX_IRQ_USB1V, -+ [10] = 0, /* MOBPORT */ -+ [11] = EZX_IRQ_MIC, -+ [12] = EZX_IRQ_HEADJACK, -+ [13] = 0, /* ST */ -+ [14] = 0, /* PC */ -+ [15] = 0, /* WARM */ -+ [16] = 0, /* EOL */ -+ [17] = 0, /* CLK */ -+ [18] = 0, /* SYS_RST */ -+ [19] = 0, -+ [20] = EZX_IRQ_ADCDONE2, -+ [21] = 0, /* SOFT_RESET */ -+ [22] = 0, /* MNEXB */ -+}; -+ -+/* Array indexed by IRQ NUMBER, returns PCAP absolute value */ -+static unsigned int irq2pcap[] = { -+ [EZX_IRQ_ADCDONE] = SSP_PCAP_ADJ_BIT_ISR_ADCDONEI, -+ [EZX_IRQ_TS] = SSP_PCAP_ADJ_BIT_ISR_TSI, -+ [EZX_IRQ_USB4V] = SSP_PCAP_ADJ_BIT_ISR_USB4VI, -+ [EZX_IRQ_USB1V] = SSP_PCAP_ADJ_BIT_ISR_USB1VI, -+ [EZX_IRQ_HEADJACK] = SSP_PCAP_ADJ_BIT_ISR_A1I, -+ [EZX_IRQ_MIC] = SSP_PCAP_ADJ_BIT_ISR_MB2I, -+ [EZX_IRQ_ADCDONE2] = SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I, -+}; -+ -+static void pcap_ack_irq(unsigned int irq) -+{ -+ DEBUGP("pcap_ack_irq: %u\n", irq); -+ ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, irq2pcap[irq]); -+} -+ -+static void pcap_mask_irq(unsigned int irq) -+{ -+ u_int32_t reg; -+ -+ DEBUGP("pcap_mask_irq: %u\n", irq); -+ -+ /* this needs to be atomic... but we're not on SMP so it is */ -+ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, ®); -+ reg |= irq2pcap[irq]; -+ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, reg); -+} -+ -+static void pcap_unmask_irq(unsigned int irq) -+{ -+ u_int32_t tmp; -+ DEBUGP("pcap_unmask_irq: %u\n", irq); -+ -+ /* this needs to be atomic... but we're not on SMP so it is */ -+ ezx_pcap_read(SSP_PCAP_ADJ_MSR_REGISTER, &tmp); -+ tmp &= ~irq2pcap[irq]; -+ ezx_pcap_write(SSP_PCAP_ADJ_MSR_REGISTER, tmp); -+} -+ -+static struct irq_chip pcap_chip = { -+ .ack = pcap_ack_irq, -+ .mask = pcap_mask_irq, -+ .unmask = pcap_unmask_irq, -+}; -+ -+/* handler for interrupt received from PCAP via GPIO */ -+static void pcap_irq_demux_handler(unsigned int irq, struct irq_desc *desc) -+{ -+ int i; -+ const unsigned int cpu = smp_processor_id(); -+ u_int32_t reg; -+ -+ DEBUGP("pcap_irq_demux_handler(%u,,) entered\n", irq); -+ -+ spin_lock(&desc->lock); -+ -+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING); -+ -+ if (unlikely(desc->status & IRQ_INPROGRESS)) { -+ DEBUGP("irq busy, masking it off\n"); -+ desc->status |= (IRQ_PENDING | IRQ_MASKED); -+ desc->chip->mask(irq); -+ desc->chip->ack(irq); -+ goto out_unlock; -+ } -+ -+ kstat_cpu(cpu).irqs[irq]++; -+ desc->status |= IRQ_INPROGRESS; -+ -+ do { -+ if (unlikely((desc->status & -+ (IRQ_PENDING | IRQ_MASKED | IRQ_DISABLED)) == -+ (IRQ_PENDING | IRQ_MASKED))) { -+ DEBUGP("dealing with pending IRQ, unmasking\n"); -+ desc->chip->unmask(irq); -+ desc->status &= ~IRQ_MASKED; -+ } -+ -+ desc->status &= ~IRQ_PENDING; -+ spin_unlock(&desc->lock); -+ -+ ezx_pcap_read(SSP_PCAP_ADJ_ISR_REGISTER, ®); -+ DEBUGP("pcap_irq_demux_handler: ISR=0x%08x\n", reg); -+ -+ for (i = ARRAY_SIZE(pcap2irq)-1; i >= 0; i--) { -+ unsigned int pirq = pcap2irq[i]; -+ if (pirq == 0) -+ continue; -+ -+ if (reg & (1 << i)) { -+ struct irq_desc *subdesc; -+ DEBUGP("found irq %u\n", pirq); -+ subdesc = irq_desc + pirq; -+ -+ // acknowledge pcap irq -+ // do just one pcap irq each time -+ subdesc->chip->ack(pirq); -+ i = 0; -+ -+ handle_IRQ_event(pirq, subdesc->action); -+ } -+ } -+ spin_lock(&desc->lock); -+ -+ } while ((desc->status & (IRQ_PENDING | IRQ_DISABLED)) == IRQ_PENDING); -+ -+ desc->status &= ~IRQ_INPROGRESS; -+ -+out_unlock: -+ spin_unlock(&desc->lock); -+} -+ -+static int ezx_pcap_remove(struct platform_device *pdev) -+{ -+ int irq; -+ DEBUGP("exz_pcap_remove entered\n"); -+ -+ set_irq_chained_handler(IRQ_GPIO1, NULL); -+ -+ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(6); irq++) { -+ set_irq_chip(irq, NULL); -+ set_irq_handler(irq, NULL); -+ set_irq_flags(irq, 0); -+ } -+ -+ return 0; -+} -+ -+static int __init ezx_pcap_probe(struct platform_device *pdev) -+{ -+ unsigned int irq; -+ DEBUGP("ezx_pcap_probe entered\n"); -+ -+ pcap_init(); -+ -+ set_irq_type(IRQ_GPIO1, IRQT_RISING); -+ /* set up interrupt demultiplexing code for PCAP2 irqs */ -+ for (irq = EZX_IRQ(0); irq <= EZX_IRQ(6); irq++) { -+ set_irq_chip(irq, &pcap_chip); -+ set_irq_handler(irq, handle_edge_irq); -+ set_irq_flags(irq, IRQF_VALID); -+ } -+ set_irq_chained_handler(IRQ_GPIO1, pcap_irq_demux_handler); -+ -+ printk("PCAP2 SSP driver registered.\n"); -+ -+ return 0; -+} -+ -+static struct platform_driver ezxpcap_driver = { -+ .probe = ezx_pcap_probe, -+ .remove = ezx_pcap_remove, -+ .driver = { -+ .name = "ezx-pcap", -+ .owner = THIS_MODULE, -+ }, -+}; -+ -+static int __init ezx_pcap_init(void) -+{ -+ DEBUGP("ezx_pcap_init entered\n"); -+ return platform_driver_register(&ezxpcap_driver); -+} -+ -+static void __exit ezx_pcap_exit(void) -+{ -+ return platform_driver_unregister(&ezxpcap_driver); -+} -+ -+module_init(ezx_pcap_init); -+module_exit(ezx_pcap_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Harald Welte"); -+MODULE_DESCRIPTION("SPI Driver for Motorola PCAP2"); -+ -Index: linux-2.6.20.7/include/asm-arm/arch-pxa/ezx-pcap.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/include/asm-arm/arch-pxa/ezx-pcap.h 2007-04-21 08:26:37.000000000 -0300 -@@ -0,0 +1,665 @@ -+/* (c) Copyright Motorola Beijing 2002 all rights reserved. -+ -+ Project Name : EZX -+ Project No. : -+ Title : -+ File Name : -+ Description : -+ -+ ************** REVISION HISTORY ********************************************** -+ Date Author Reference -+ ======== ========== ========================== -+ 2002-07-01 weiqiang lin create -+*/ -+#ifndef SSP_PCAP_H -+#define SSP_PCAP_H -+ -+#define SSP_vibrate_start_command() SSP_PCAP_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN); \ -+ SSP_PCAP_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN) -+ -+#define SSP_vibrate_stop_command() SSP_PCAP_bit_clean(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN); \ -+ SSP_PCAP_bit_clean(SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN) -+ -+#define SSP_PCAP_REGISTER_VALUE_LENGTH 16 -+ -+#define SSP_PCAP_REGISTER_WRITE_OP_BIT 0x80000000 -+#define SSP_PCAP_REGISTER_READ_OP_BIT 0x00000000 -+ -+#define SSP_PCAP_REGISTER_VALUE_UP_WORD_MASK 0xffff0000 -+#define SSP_PCAP_REGISTER_VALUE_DOWN_WORD_MASK 0x0000ffff -+ -+#define SSP_PCAP_REGISTER_VALUE_MASK 0x01ffffff -+#define SSP_PCAP_REGISTER_VALUE_MASK 0x01ffffff -+#define SSP_PCAP_REGISTER_ADDRESS_MASK 0x7c000000 -+#define SSP_PCAP_REGISTER_ADDRESS_SHIFT 26 -+#define SSP_PCAP_REGISTER_NUMBER 32 -+ -+#define SSP_PCAP_ADC_START_VALUE_SET_MASK 0xfffffc00 -+#define SSP_PCAP_ADC_START_VALUE 0x000001dd -+ -+ -+#define SSP_PCAP_PHONE_CDC_CLOCK_MASK 0x000001c0 -+#define SSP_PCAP_STEREO_SAMPLE_RATE_MASK 0x00000f00 -+#define SSP_PCAP_STEREO_BCLK_TIME_SLOT_MASK 0x00018000 -+#define SSP_PCAP_STEREO_CLOCK_MASK 0x0000001c -+#define SSP_PCAP_DIGITAL_AUDIO_MODE_MASK 0x00006000 -+#define SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK 0x000e0000 -+#define SSP_PCAP_MONO_PGA_MASK 0x00180000 -+ -+#define SSP_PCAP_VIBRATOR_VOLTAGE_LEVEL_MASK 0x00300000 -+ -+#define SSP_PCAP_AUDIO_IN_GAIN_MASK 0x0000001f -+#define SSP_PCAP_AUDIO_IN_GAIN_SHIFT 0 -+#define SSP_PCAP_AUDIO_OUT_GAIN_MASK 0x0001e000 -+#define SSP_PCAP_AUDIO_OUT_GAIN_SHIFT 13 -+ -+ -+#define SSP_PCAP_ADD1_VALUE_MASK 0x000003ff -+#define SSP_PCAP_ADD1_VALUE_SHIFT 0 -+#define SSP_PCAP_ADD2_VALUE_MASK 0x000ffc00 -+#define SSP_PCAP_ADD2_VALUE_SHIFT 10 -+ -+ -+#define PCAP_AUDIO_IN_GAIN_MAX_VALUE 31 -+#define PCAP_AUDIO_OUT_GAIN_MAX_VALUE 15 -+ -+#define PCAP_CLEAR_INTERRUPT_REGISTER 0x00141fdf -+#define PCAP_MASK_ALL_INTERRUPT 0x0013ffff -+ -+#define SSP_PCAP_TS_KEEPER_TIMER 100 /* 1 second */ -+#define START_ADC_DELAY_TIMER 1991 /* 540 us */ -+ -+#define SSP_SEND_PM_ALART_INTERVAL 1000 *HZ/1000 /* 1 second */ -+#define SSP_SEND_MSG_USB_ACCESSORY_INFO_DEBOUNCE 200 *HZ/1000 /* 200ms */ -+ -+struct ssp_interrupt_info -+{ -+ u32 type; -+ u32 status; -+ void* privdata; -+}; -+ -+#ifndef U8 -+#define U8 unsigned char -+#endif -+ -+#ifndef U32 -+#define U32 unsigned long -+#endif -+ -+#ifndef U16 -+#define U16 unsigned short -+#endif -+ -+#ifndef P_U16 -+#define P_U16 U16* -+#endif -+ -+#ifndef P_U32 -+#define P_U32 U32* -+#endif -+ -+#define SSP_SELECT_BUFFER (volatile unsigned long *)(0xf4000000) -+ -+#define SSP_SR_RNE 0x00000008 -+#define SSP_PCAP_BASE 0x00001000 -+/************************ STRUCTURES, ENUMS, AND TYPEDEFS **************************/ -+typedef enum accessoryStatus -+{ -+ ACCESSORY_DEVICE_STATUS_DETACHED = 0, -+ ACCESSORY_DEVICE_STATUS_ATTACHED , -+ ACCESSORY_DEVICE_STATUS_UNKNOW =0x000000ff -+}ACCESSORY_DEVICE_STATUS; -+ -+typedef enum accessoryType -+{ -+ ACCESSORY_DEVICE_NONE = 0, -+ ACCESSORY_DEVICE_SERIAL_PORT , -+ ACCESSORY_DEVICE_USB_PORT , -+ ACCESSORY_DEVICE_UNKNOW =0x000000ff -+}ACCESSORY_TYPE; -+ -+typedef enum pcapReturnStatus -+{ -+ SSP_PCAP_SUCCESS = 0, -+ SSP_PCAP_ERROR_REGISTER = SSP_PCAP_BASE+1, -+ SSP_PCAP_ERROR_VALUE = SSP_PCAP_BASE+2, -+ -+ SSP_PCAP_NOT_RUN = SSP_PCAP_BASE+0xff -+}SSP_PCAP_STATUS; -+ -+typedef enum pcapPortType -+{ -+ SSP_PCAP_SERIAL_PORT = 0x00000000, -+ SSP_PCAP_LOW_USB_PORT = 0x00000001, -+ SSP_PCAP_HIGH_USB_PORT = 0x00000002, -+ SSP_PCAP_UNKNOW_PORT = 0x000000ff -+}SSP_PCAP_PORT_TYPE; -+ -+typedef enum pcapInitDriverType -+{ -+ SSP_PCAP_TS_OPEN = 0x00000000, -+ SSP_PCAP_AUDIO_OPEN = 0x00000001, -+ SSP_PCAP_UNKNOW_DRIVER_OPEN = 0x000000ff -+}SSP_PCAP_INIT_DRIVER_TYPE; -+ -+ -+typedef enum pcapReturnBitStatus -+{ -+ SSP_PCAP_BIT_ZERO = 0x00000000, -+ SSP_PCAP_BIT_ONE = 0x00000001, -+ SSP_PCAP_BIT_ERROR = 0xff000000 -+}SSP_PCAP_BIT_STATUS; -+ -+typedef enum pcapCDCClkType -+{ -+ PCAP_CDC_CLK_IN_13M0 = 0x00000000, -+ PCAP_CDC_CLK_IN_15M36 = 0x00000040, -+ PCAP_CDC_CLK_IN_16M8 = 0x00000080, -+ PCAP_CDC_CLK_IN_19M44 = 0x000000c0, -+ PCAP_CDC_CLK_IN_26M0 = 0x00000100 -+}PHONE_CDC_CLOCK_TYPE; -+ -+typedef enum pcapST_SR -+{ -+ PCAP_ST_SAMPLE_RATE_8K = 0x00000000, -+ PCAP_ST_SAMPLE_RATE_11K = 0x00000100, -+ PCAP_ST_SAMPLE_RATE_12K = 0x00000200, -+ PCAP_ST_SAMPLE_RATE_16K = 0x00000300, -+ PCAP_ST_SAMPLE_RATE_22K = 0x00000400, -+ PCAP_ST_SAMPLE_RATE_24K = 0x00000500, -+ PCAP_ST_SAMPLE_RATE_32K = 0x00000600, -+ PCAP_ST_SAMPLE_RATE_44K = 0x00000700, -+ PCAP_ST_SAMPLE_RATE_48K = 0x00000800 -+}ST_SAMPLE_RATE_TYPE; -+ -+typedef enum pcapST_BCLK -+{ -+ PCAP_ST_BCLK_SLOT_16 = 0x00000000, -+ PCAP_ST_BCLK_SLOT_8 = 0x00008000, -+ PCAP_ST_BCLK_SLOT_4 = 0x00010000, -+ PCAP_ST_BCLK_SLOT_2 = 0x00018000, -+}ST_BCLK_TIME_SLOT_TYPE; -+ -+typedef enum pcapST_CLK -+{ -+ PCAP_ST_CLK_PLL_CLK_IN_13M0 = 0x00000000, -+ PCAP_ST_CLK_PLL_CLK_IN_15M36 = 0x00000004, -+ PCAP_ST_CLK_PLL_CLK_IN_16M8 = 0x00000008, -+ PCAP_ST_CLK_PLL_CLK_IN_19M44 = 0x0000000c, -+ PCAP_ST_CLK_PLL_CLK_IN_26M0 = 0x00000010, -+ PCAP_ST_CLK_PLL_CLK_IN_EXT_MCLK = 0x00000014, -+ PCAP_ST_CLK_PLL_CLK_IN_FSYNC = 0x00000018, -+ PCAP_ST_CLK_PLL_CLK_IN_BITCLK = 0x0000001c -+}ST_CLK_TYPE; -+ -+typedef enum pcapDigitalAudioInterfaceMode -+{ -+ PCAP_DIGITAL_AUDIO_INTERFACE_NORMAL = 0x00000000, -+ PCAP_DIGITAL_AUDIO_INTERFACE_NETWORK = 0x00002000, -+ PCAP_DIGITAL_AUDIO_INTERFACE_I2S = 0x00004000 -+}DIG_AUD_MODE_TYPE; -+ -+typedef enum pcapMono -+{ -+ PCAP_MONO_PGA_R_L_STEREO = 0x00000000, -+ PCAP_MONO_PGA_RL = 0x00080000, -+ PCAP_MONO_PGA_RL_3DB = 0x00100000, -+ PCAP_MONO_PGA_RL_6DB = 0x00180000 -+}MONO_TYPE; -+ -+typedef enum pcapVibratorVoltageLevel -+{ -+ PCAP_VIBRATOR_VOLTAGE_LEVEL0 = 0x00000000, -+ PCAP_VIBRATOR_VOLTAGE_LEVEL1 = 0x00100000, -+ PCAP_VIBRATOR_VOLTAGE_LEVEL2 = 0x00200000, -+ PCAP_VIBRATOR_VOLTAGE_LEVEL3 = 0x00300000 -+}VibratorVoltageLevel_TYPE; -+ -+typedef enum pcapTouchScreenMode -+{ -+ PCAP_TS_POSITION_X_MEASUREMENT = 0x00000000, -+ PCAP_TS_POSITION_XY_MEASUREMENT = 0x00020000, -+ PCAP_TS_PRESSURE_MEASUREMENT = 0x00040000, -+ PCAP_TS_PLATE_X_MEASUREMENT = 0x00060000, -+ PCAP_TS_PLATE_Y_MEASUREMENT = 0x00080000, -+ PCAP_TS_STANDBY_MODE = 0x000a0000, -+ PCAP_TS_NONTS_MODE = 0x000c0000 -+}TOUCH_SCREEN_DETECT_TYPE; -+ -+typedef enum pcapADJRegister -+{ -+ SSP_PCAP_ADJ_ISR_REGISTER = 0x00, -+ SSP_PCAP_ADJ_MSR_REGISTER = 0x01, -+ SSP_PCAP_ADJ_PSTAT_REGISTER = 0x02, -+ SSP_PCAP_ADJ_VREG2_REGISTER = 0x06, -+ SSP_PCAP_ADJ_AUX_VREG_REGISTER = 0x07, -+ SSP_PCAP_ADJ_BATT_DAC_REGISTER = 0x08, -+ SSP_PCAP_ADJ_ADC1_REGISTER = 0x09, -+ SSP_PCAP_ADJ_ADC2_REGISTER = 0x0a, -+ SSP_PCAP_ADJ_AUD_CODEC_REGISTER = 0x0b, -+ SSP_PCAP_ADJ_AUD_RX_AMPS_REGISTER = 0x0c, -+ SSP_PCAP_ADJ_ST_DAC_REGISTER = 0x0d, -+ SSP_PCAP_ADJ_BUSCTRL_REGISTER = 0x14, -+ SSP_PCAP_ADJ_PERIPH_REGISTER = 0x15, -+ SSP_PCAP_ADJ_LOWPWR_CTRL_REGISTER = 0x18, -+ SSP_PCAP_ADJ_TX_AUD_AMPS_REGISTER = 0x1a, -+ SSP_PCAP_ADJ_GP_REG_REGISTER = 0x1b -+}SSP_PCAP_SECONDARY_PROCESSOR_REGISTER; -+ -+typedef enum pcapADJBit_SetType -+{ -+ SSP_PCAP_ADJ_BIT_ISR_ADCDONEI = 0x00000001, -+ SSP_PCAP_ADJ_BIT_ISR_TSI = 0x00000002, -+ SSP_PCAP_ADJ_BIT_ISR_1HZI = 0x00000004, -+ SSP_PCAP_ADJ_BIT_ISR_WHI = 0x00000008, -+ SSP_PCAP_ADJ_BIT_ISR_WLI = 0x00000010, -+ SSP_PCAP_ADJ_BIT_ISR_TODAI = 0x00000020, -+ SSP_PCAP_ADJ_BIT_ISR_USB4VI = 0x00000040, -+ SSP_PCAP_ADJ_BIT_ISR_ONOFFI = 0x00000080, -+ SSP_PCAP_ADJ_BIT_ISR_ONOFF2I = 0x00000100, -+ SSP_PCAP_ADJ_BIT_ISR_USB1VI = 0x00000200, -+ SSP_PCAP_ADJ_BIT_ISR_MOBPORTI = 0x00000400, -+ SSP_PCAP_ADJ_BIT_ISR_MB2I = 0x00000800, -+ SSP_PCAP_ADJ_BIT_ISR_A1I = 0x00001000, -+ SSP_PCAP_ADJ_BIT_ISR_STI = 0x00002000, -+ SSP_PCAP_ADJ_BIT_ISR_PCI = 0x00004000, -+ SSP_PCAP_ADJ_BIT_ISR_WARMI = 0x00008000, -+ SSP_PCAP_ADJ_BIT_ISR_EOLI = 0x00010000, -+ SSP_PCAP_ADJ_BIT_ISR_CLKI = 0x00020000, -+ SSP_PCAP_ADJ_BIT_ISR_SYS_RSTI = 0x00040000, -+ SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I = 0x00100000, -+ SSP_PCAP_ADJ_BIT_ISR_SOFT_RESETI = 0x00200000, -+ SSP_PCAP_ADJ_BIT_ISR_MNEXBI = 0x00400000, -+ -+ SSP_PCAP_ADJ_BIT_MSR_ADCDONEM = 0x04000001, -+ SSP_PCAP_ADJ_BIT_MSR_TSM = 0x04000002, -+ SSP_PCAP_ADJ_BIT_MSR_1HZM = 0x04000004, -+ SSP_PCAP_ADJ_BIT_MSR_WHM = 0x04000008, -+ SSP_PCAP_ADJ_BIT_MSR_WLM = 0x04000010, -+ SSP_PCAP_ADJ_BIT_MSR_TODAM = 0x04000020, -+ SSP_PCAP_ADJ_BIT_MSR_USB4VM = 0x04000040, -+ SSP_PCAP_ADJ_BIT_MSR_ONOFFM = 0x04000080, -+ SSP_PCAP_ADJ_BIT_MSR_ONOFF2M = 0x04000100, -+ SSP_PCAP_ADJ_BIT_MSR_USB1VM = 0x04000200, -+ SSP_PCAP_ADJ_BIT_MSR_MOBPORTM = 0x04000400, -+ SSP_PCAP_ADJ_BIT_MSR_MB2M = 0x04000800, -+ SSP_PCAP_ADJ_BIT_MSR_A1M = 0x04001000, -+ SSP_PCAP_ADJ_BIT_MSR_STM = 0x04002000, -+ SSP_PCAP_ADJ_BIT_MSR_PCM = 0x04004000, -+ SSP_PCAP_ADJ_BIT_MSR_WARMM = 0x04008000, -+ SSP_PCAP_ADJ_BIT_MSR_EOLM = 0x04010000, -+ SSP_PCAP_ADJ_BIT_MSR_CLKM = 0x04020000, -+ SSP_PCAP_ADJ_BIT_MSR_SYS_RSTM = 0x04040000, -+ SSP_PCAP_ADJ_BIT_MSR_ADCDONE2M = 0x04100000, -+ SSP_PCAP_ADJ_BIT_MSR_SOFT_RESETM = 0x04200000, -+ SSP_PCAP_ADJ_BIT_MSR_MNEXBM = 0x04400000, -+ -+ SSP_PCAP_ADJ_BIT_PSTAT_USBDET_4V = 0x08000040, -+ SSP_PCAP_ADJ_BIT_PSTAT_ONOFFSNS = 0x08000080, -+ SSP_PCAP_ADJ_BIT_PSTAT_ONOFFSNS2 = 0x08000100, -+ SSP_PCAP_ADJ_BIT_PSTAT_USBDET_1V = 0x08000200, -+ SSP_PCAP_ADJ_BIT_PSTAT_MOBSENSB = 0x08000400, -+ SSP_PCAP_ADJ_BIT_PSTAT_MB2SNS = 0x08000800, -+ SSP_PCAP_ADJ_BIT_PSTAT_A1SNS = 0x08001000, -+ SSP_PCAP_ADJ_BIT_PSTAT_MSTB = 0x08002000, -+ SSP_PCAP_ADJ_BIT_PSTAT_EOL_STAT = 0x08010000, -+ SSP_PCAP_ADJ_BIT_PSTAT_CLK_STAT = 0x08020000, -+ SSP_PCAP_ADJ_BIT_PSTAT_SYS_RST = 0x08040000, -+ SSP_PCAP_ADJ_BIT_PSTAT_BATTFBSNS = 0x08080000, -+ SSP_PCAP_ADJ_BIT_PSTAT_BATT_DET_IN_SNS = 0x08200000, -+ SSP_PCAP_ADJ_BIT_PSTAT_MNEXBSNS = 0x08400000, -+ SSP_PCAP_ADJ_BIT_PSTAT_WARM_SYS_RST = 0x08800000, -+ -+ SSP_PCAP_ADJ_BIT_VREG2_V1_STBY = 0x18000001, -+ SSP_PCAP_ADJ_BIT_VREG2_V2_STBY = 0x18000002, -+ SSP_PCAP_ADJ_BIT_VREG2_V3_STBY = 0x18000004, -+ SSP_PCAP_ADJ_BIT_VREG2_V4_STBY = 0x18000008, -+ SSP_PCAP_ADJ_BIT_VREG2_V5_STBY = 0x18000010, -+ SSP_PCAP_ADJ_BIT_VREG2_V6_STBY = 0x18000020, -+ SSP_PCAP_ADJ_BIT_VREG2_V7_STBY = 0x18000040, -+ SSP_PCAP_ADJ_BIT_VREG2_V8_STBY = 0x18000080, -+ SSP_PCAP_ADJ_BIT_VREG2_V9_STBY = 0x18000100, -+ SSP_PCAP_ADJ_BIT_VREG2_V10_STBY = 0x18000200, -+ SSP_PCAP_ADJ_BIT_VREG2_V1_LOWPWR = 0x18000400, -+ SSP_PCAP_ADJ_BIT_VREG2_V2_LOWPWR = 0x18000800, -+ SSP_PCAP_ADJ_BIT_VREG2_V3_LOWPWR = 0x18001000, -+ SSP_PCAP_ADJ_BIT_VREG2_V4_LOWPWR = 0x18002000, -+ SSP_PCAP_ADJ_BIT_VREG2_V5_LOWPWR = 0x18004000, -+ SSP_PCAP_ADJ_BIT_VREG2_V6_LOWPWR = 0x18008000, -+ SSP_PCAP_ADJ_BIT_VREG2_V7_LOWPWR = 0x18010000, -+ SSP_PCAP_ADJ_BIT_VREG2_V8_LOWPWR = 0x18020000, -+ SSP_PCAP_ADJ_BIT_VREG2_V9_LOWPWR = 0x18040000, -+ SSP_PCAP_ADJ_BIT_VREG2_V10_LOWPWR = 0x18080000, -+ -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_EN = 0x1c000002, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_0 = 0x1c000004, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_1 = 0x1c000008, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN = 0x1c000010, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_0 = 0x1c000020, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_1 = 0x1c000040, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN = 0x1c000080, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_0 = 0x1c000100, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_1 = 0x1c000200, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_2 = 0x1c000400, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_3 = 0x1c000800, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_EN = 0x1c001000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_0 = 0x1c002000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX4_1 = 0x1c004000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM2_EN = 0x1c010000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM_EN = 0x1c020000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VSIM_0 = 0x1c040000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_EN = 0x1c080000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_0 = 0x1c100000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_V_VIB_1 = 0x1c200000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_STBY = 0x1c400000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX1_LOWPWR = 0x1c800000, -+ SSP_PCAP_ADJ_BIT_AUX_VREG_SW3_STBY = 0x1d000000, -+ -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC0 = 0x20000001, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC1 = 0x20000002, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC2 = 0x20000004, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC3 = 0x20000008, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC4 = 0x20000010, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC5 = 0x20000020, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC6 = 0x20000040, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_DAC7 = 0x20000080, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_B_FDBK = 0x20000100, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_EXT_ISENSE = 0x20000200, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN0 = 0x20000400, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN1 = 0x20000800, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN2 = 0x20001000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_V_COIN3 = 0x20002000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_I_COIN = 0x20004000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_COIN_CH_EN = 0x20008000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL0 = 0x20020000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL1 = 0x20040000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_SEL2 = 0x20080000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_EOL_CMP_EN = 0x20100000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_BATT_DET_EN = 0x20200000, -+ SSP_PCAP_ADJ_BIT_BATT_DAC_THERMBIAS_CTRL = 0x20400000, -+ -+ SSP_PCAP_ADJ_BIT_ADC1_ADEN = 0x24000001, -+ SSP_PCAP_ADJ_BIT_ADC1_RAND = 0x24000002, -+ SSP_PCAP_ADJ_BIT_ADC1_AD_SEL1 = 0x24000004, -+ SSP_PCAP_ADJ_BIT_ADC1_AD_SEL2 = 0x24000008, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA10 = 0x24000010, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA11 = 0x24000020, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA12 = 0x24000040, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA20 = 0x24000080, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA21 = 0x24000100, -+ SSP_PCAP_ADJ_BIT_ADC1_ADA22 = 0x24000200, -+ SSP_PCAP_ADJ_BIT_ADC1_ATO0 = 0x24000400, -+ SSP_PCAP_ADJ_BIT_ADC1_ATO1 = 0x24000800, -+ SSP_PCAP_ADJ_BIT_ADC1_ATO2 = 0x24001000, -+ SSP_PCAP_ADJ_BIT_ADC1_ATO3 = 0x24002000, -+ SSP_PCAP_ADJ_BIT_ADC1_ATOX = 0x24004000, -+ SSP_PCAP_ADJ_BIT_ADC1_MTR1 = 0x24008000, -+ SSP_PCAP_ADJ_BIT_ADC1_MTR2 = 0x24010000, -+ SSP_PCAP_ADJ_BIT_ADC1_TS_M0 = 0x24020000, -+ SSP_PCAP_ADJ_BIT_ADC1_TS_M1 = 0x24040000, -+ SSP_PCAP_ADJ_BIT_ADC1_TS_M2 = 0x24080000, -+ SSP_PCAP_ADJ_BIT_ADC1_TS_REF_LOWPWR = 0x24100000, -+ SSP_PCAP_ADJ_BIT_ADC1_TS_REFENB = 0x24200000, -+ SSP_PCAP_ADJ_BIT_ADC1_BATT_I_POLARITY = 0x24400000, -+ SSP_PCAP_ADJ_BIT_ADC1_BATT_I_ADC = 0x24800000, -+ -+ SSP_PCAP_ADJ_BIT_ADC2_ADD10 = 0x28000001, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD11 = 0x28000002, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD12 = 0x28000004, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD13 = 0x28000008, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD14 = 0x28000010, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD15 = 0x28000020, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD16 = 0x28000040, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD17 = 0x28000080, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD18 = 0x28000100, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD19 = 0x28000200, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD20 = 0x28000400, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD21 = 0x28000800, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD22 = 0x28001000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD23 = 0x28002000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD24 = 0x28004000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD25 = 0x28008000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD26 = 0x28010000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD27 = 0x28020000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD28 = 0x28040000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADD29 = 0x28080000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADINC1 = 0x28100000, -+ SSP_PCAP_ADJ_BIT_ADC2_ADINC2 = 0x28200000, -+ SSP_PCAP_ADJ_BIT_ADC2_ASC = 0x28400000, -+ -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_AUDIHPF = 0x2c000001, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_SMB = 0x2c000002, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_AUDOHPF = 0x2c000004, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CD_TS = 0x2c000008, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DLM = 0x2c000010, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_ADITH = 0x2c000020, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK0 = 0x2c000040, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK1 = 0x2c000080, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK2 = 0x2c000100, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CLK_INV = 0x2c000200, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_FS_INV = 0x2c000400, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DF_RESET = 0x2c000800, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_EN = 0x2c001000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_CLK_EN = 0x2c002000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_FS_8K_16K = 0x2c004000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_DIG_AUD_IN = 0x2c008000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CLK_IN_SEL = 0x2c010000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2_MUX = 0x2c020000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG0 = 0x2c040000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG1 = 0x2c080000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG2 = 0x2c100000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG3 = 0x2c200000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG4 = 0x2c400000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_MIC2IG_PRI_ADJ = 0x2c800000, -+ SSP_PCAP_ADJ_BIT_AUD_CODEC_CDC_PRI_ADJ = 0x2c200000, -+ -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1_EN = 0x30000001, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A2_EN = 0x30000002, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A4_EN = 0x30000010, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ARIGHT_EN = 0x30000020, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ALEFT_EN = 0x30000040, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_CD_BYP = 0x30000080, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_CDC_SW = 0x30000100, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_ST_DAC_SW = 0x30000200, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_IN_SW = 0x30000400, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_R_EN = 0x30000800, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_PGA_L_EN = 0x30001000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG0 = 0x30002000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG1 = 0x30004000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG2 = 0x30008000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG3 = 0x30010000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL = 0x30020000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO0 = 0x30080000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO1 = 0x30100000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_AUDOG_PRI_ADJ = 0x30200000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_MONO_PRI_ADJ = 0x30400000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_RX_PRI_ADJ0 = 0x30800000, -+ SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_RX_PRI_ADJ1 = 0x31000000, -+ -+ SSP_PCAP_ADJ_BIT_ST_DAC_SMB_ST_DAC = 0x34000001, -+ SSP_PCAP_ADJ_BIT_ST_DAC_STDET_EN = 0x34000002, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK0 = 0x34000004, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK1 = 0x34000008, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK2 = 0x34000010, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK_EN = 0x34000020, -+ SSP_PCAP_ADJ_BIT_ST_DAC_DF_RESET_ST_DAC = 0x34000040, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_EN = 0x34000080, -+ SSP_PCAP_ADJ_BIT_ST_DAC_SR0 = 0x34000100, -+ SSP_PCAP_ADJ_BIT_ST_DAC_SR1 = 0x34000200, -+ SSP_PCAP_ADJ_BIT_ST_DAC_SR2 = 0x34000400, -+ SSP_PCAP_ADJ_BIT_ST_DAC_SR3 = 0x34000800, -+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_IN_ST_DAC = 0x34001000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_FS0 = 0x34002000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_DIG_AUD_FS1 = 0x34004000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_BCLK0 = 0x34008000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_BCLK1 = 0x34010000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_CLK_INV = 0x34020000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_FS_INV = 0x34040000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_CLK_IN_SEL = 0x34080000, -+ SSP_PCAP_ADJ_BIT_ST_DAC_ST_DAC_PRI_ADJ = 0x35000000, -+ -+ SSP_PCAP_ADJ_BIT_BUSCTRL_FSENB = 0x50000001, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_SUSPEND = 0x50000002, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PU = 0x50000004, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PD = 0x50000008, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_EN = 0x50000010, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PS = 0x50000020, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_VUSB_MSTR_EN = 0x50000040, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_VBUS_PD_ENB = 0x50000080, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_CURRLIM = 0x50000100, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_RS232ENB = 0x50000200, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_RS232_DIR = 0x50000400, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_SE0_CONN = 0x50000800, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_USB_PDM = 0x50001000, -+ SSP_PCAP_ADJ_BIT_BUSCTRL_BUS_PRI_ADJ = 0x51000000, -+ -+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0 = 0x54000001, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1 = 0x54000002, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2 = 0x54000004, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3 = 0x54000008, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4 = 0x54000010, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_EN = 0x54000020, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_EN = 0x54000040, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL0 = 0x54000080, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL1 = 0x54000100, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL2 = 0x54000200, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_CTRL3 = 0x54000400, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL0 = 0x54000800, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL1 = 0x54001000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL2 = 0x54002000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_CTRL3 = 0x54004000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_I0 = 0x54008000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDR_I1 = 0x54010000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_I0 = 0x54020000, -+ SSP_PCAP_ADJ_BIT_PERIPH_LEDG_I1 = 0x54040000, -+ SSP_PCAP_ADJ_BIT_PERIPH_SKIP = 0x54080000, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0 = 0x54100000, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1 = 0x54200000, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2 = 0x54400000, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3 = 0x54800000, -+ SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4 = 0x55000000, -+ -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_STBY = 0x60000001, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_LOWPWR = 0x60000002, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX3_STBY = 0x60000004, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX3_LOWPWR = 0x60000008, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX4_STBY = 0x60000010, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX4_LOWPWR = 0x60000020, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VSIM_LOWPWR = 0x60000040, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VSIM2_LOWPWR = 0x60000080, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE00 = 0x60000100, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE01 = 0x60000200, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE10 = 0x60000400, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE11 = 0x60000800, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW10_DVS = 0x60001000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW11_DVS = 0x60002000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW12_DVS = 0x60004000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW13_DVS = 0x60008000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE00 = 0x60010000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE01 = 0x60020000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE10 = 0x60040000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW2_MODE11 = 0x60080000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW20_DVS = 0x60100000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW21_DVS = 0x60200000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW22_DVS = 0x60400000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW23_DVS = 0x60800000, -+ SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VC_STBY = 0x61000000, -+ -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG0 = 0x68000001, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG1 = 0x68000002, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG2 = 0x68000004, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG3 = 0x68000008, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG4 = 0x68000010, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A3_EN = 0x68000020, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A3_MUX = 0x68000040, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A5_EN = 0x68000080, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A5_MUX = 0x68000100, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_EXT_MIC_MUX = 0x68000200, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_MB_ON2 = 0x68000400, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_MB_ON1 = 0x68000800, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A1ID_TX = 0x68001000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A1_CONFIG = 0x68002000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AHS_CONFIG = 0x68004000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_A2_CONFIG = 0x68008000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIO_LOWPWR = 0x68080000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIO_STBY = 0x68100000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_V2_EN_2 = 0x68200000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_AUDIG_PRI_ADJ = 0x68400000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_TX_PRI_ADJ0 = 0x68800000, -+ SSP_PCAP_ADJ_BIT_TX_AUD_AMPS_TX_PRI_ADJ1 = 0x69000000, -+ -+ SSP_PCAP_ADJ_BIT_SYS_RST_CLR = 0x6c000001, -+ SSP_PCAP_ADJ_BIT_SYS_RST_MODE0 = 0x6c000002, -+ SSP_PCAP_ADJ_BIT_SYS_RST_MODE1 = 0x6c000004, -+ SSP_PCAP_ADJ_BIT_SYS_VFLASH_0 = 0x6c000008, -+ SSP_PCAP_ADJ_BIT_SYS_VFLASH_1 = 0x6c000010, -+ SSP_PCAP_ADJ_BIT_SYS_MID_SELECT = 0x6c000020, -+ SSP_PCAP_ADJ_BIT_SYS_MID_FET = 0x6c000040, -+ SSP_PCAP_ADJ_BIT_SYS_MAIN_LOW = 0x6c000080, -+ SSP_PCAP_ADJ_BIT_SYS_BATTFB_DIS = 0x6c000100, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG9 = 0x6c000200, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG10 = 0x6c000400, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG11 = 0x6c000800, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG12 = 0x6c001000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG13 = 0x6c002000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG14 = 0x6c004000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG15 = 0x6c008000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG16 = 0x6c010000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG17 = 0x6c020000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG18 = 0x6c040000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG19 = 0x6c080000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG20 = 0x6c100000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG21 = 0x6c200000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG22 = 0x6c400000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG23 = 0x6c800000, -+ SSP_PCAP_ADJ_BIT_SYS_GP_REG24 = 0x6d000000 -+ -+}SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE; -+ -+/************************ FUNCTION PROTOTYPES **************************************/ -+extern void ssp_pcap_init(void); -+extern void ssp_pcap_release(void); -+ -+extern void ssp_pcap_open(SSP_PCAP_INIT_DRIVER_TYPE portType); -+extern void ssp_pcap_close(void); -+ -+extern void ssp_pcap_intoSleep_callBack(void); -+extern void ssp_pcap_wakeUp_callBack(void); -+ -+ -+extern SSP_PCAP_STATUS SSP_PCAP_write_data_to_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register,U32 ssp_pcap_register_value); -+extern SSP_PCAP_STATUS SSP_PCAP_read_data_from_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register,P_U32 p_ssp_pcap_register_value); -+ -+extern SSP_PCAP_STATUS SSP_PCAP_bit_set(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ; -+extern SSP_PCAP_STATUS SSP_PCAP_bit_clean(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ; -+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_bit_from_buffer(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ; -+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_bit_from_PCAP(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER_BIT_TYPE ssp_pcap_bit ) ; -+extern U32 SSP_PCAP_get_register_value_from_buffer(SSP_PCAP_SECONDARY_PROCESSOR_REGISTER ssp_pcap_register ) ; -+ -+extern SSP_PCAP_STATUS SSP_PCAP_TSI_mode_set(TOUCH_SCREEN_DETECT_TYPE mode_Type ); -+extern SSP_PCAP_STATUS SSP_PCAP_TSI_start_XY_read(void); -+extern SSP_PCAP_STATUS SSP_PCAP_TSI_get_XY_value(P_U16 p_x,P_U16 p_y); -+extern SSP_PCAP_STATUS SSP_PCAP_CDC_CLK_set(PHONE_CDC_CLOCK_TYPE clkType); -+ -+extern SSP_PCAP_STATUS SSP_PCAP_CDC_SR_set(ST_SAMPLE_RATE_TYPE srType); -+extern SSP_PCAP_STATUS SSP_PCAP_BCLK_set(ST_BCLK_TIME_SLOT_TYPE bclkType); -+extern SSP_PCAP_STATUS SSP_PCAP_STCLK_set(ST_CLK_TYPE stClkType); -+extern SSP_PCAP_STATUS SSP_PCAP_DIG_AUD_FS_set(DIG_AUD_MODE_TYPE fsType); -+extern SSP_PCAP_STATUS SSP_PCAP_AUDIG_set(U32 audioInGain); -+extern SSP_PCAP_STATUS SSP_PCAP_MONO_set(MONO_TYPE monoType); -+extern SSP_PCAP_STATUS SSP_PCAP_AUDOG_set(U32 audioOutGain); -+ -+extern SSP_PCAP_STATUS SSP_PCAP_V_VIB_level_set(VibratorVoltageLevel_TYPE VIBLevelType); -+extern SSP_PCAP_STATUS SSP_PCAP_configure_USB_UART_transeiver(SSP_PCAP_PORT_TYPE portType); -+extern SSP_PCAP_BIT_STATUS SSP_PCAP_get_audio_in_status(void); -+ -+/* for log */ -+extern void pcap_log_add_pure_data(u8* pData,u32 len); -+extern void pcap_log_add_data(u8* pData,u32 len); -+ -+/* screen lock on/off handler */ -+extern void ssp_pcap_screenlock_lock(u32 data); -+extern void ssp_pcap_screenlock_unlock(u32 data); -+ -+#endif -Index: linux-2.6.20.7/include/asm-arm/arch-pxa/irqs.h -=================================================================== ---- linux-2.6.20.7.orig/include/asm-arm/arch-pxa/irqs.h 2007-04-21 08:26:32.000000000 -0300 -+++ linux-2.6.20.7/include/asm-arm/arch-pxa/irqs.h 2007-04-21 08:26:37.000000000 -0300 -@@ -176,7 +176,8 @@ - #define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1) - #elif defined(CONFIG_ARCH_LUBBOCK) || \ - defined(CONFIG_MACH_LOGICPD_PXA270) || \ -- defined(CONFIG_MACH_MAINSTONE) -+ defined(CONFIG_MACH_MAINSTONE) || \ -+ defined(CONFIG_PXA_EZX) - #define NR_IRQS (IRQ_BOARD_END) - #else - #define NR_IRQS (IRQ_BOARD_START) -@@ -222,3 +223,16 @@ - #define IRQ_LOCOMO_GPIO_BASE (IRQ_BOARD_START + 1) - #define IRQ_LOCOMO_LT_BASE (IRQ_BOARD_START + 2) - #define IRQ_LOCOMO_SPI_BASE (IRQ_BOARD_START + 3) -+ -+/* EZX Interrupts (CONFIG_EZX) */ -+#define EZX_IRQ(x) (IRQ_BOARD_START + (x)) -+#define EZX_IRQ_ADCDONE EZX_IRQ(0) /* PCAP */ -+#define EZX_IRQ_TS EZX_IRQ(1) /* PCAP */ -+#define EZX_IRQ_USB4V EZX_IRQ(2) /* PCAP */ -+#define EZX_IRQ_USB1V EZX_IRQ(3) /* PCAP */ -+#define EZX_IRQ_HEADJACK EZX_IRQ(4) /* PCAP */ -+#define EZX_IRQ_MIC EZX_IRQ(5) /* PCAP */ -+#define EZX_IRQ_ADCDONE2 EZX_IRQ(6) /* PCAP */ -+#define EZX_IRQ_ONOFF EZX_IRQ(7) -+#define EZX_IRQ_ONOFF2 EZX_IRQ(8) -+ -Index: linux-2.6.20.7/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Makefile 2007-04-21 08:26:37.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Makefile 2007-04-21 08:45:09.000000000 -0300 -@@ -18,7 +18,7 @@ - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o --obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o -+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o - - # Support for blinky lights - led-y := leds.o -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx.c -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/ezx.c 2007-04-21 08:26:37.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx.c 2007-04-21 08:51:15.000000000 -0300 -@@ -73,6 +73,24 @@ - .clk_pcap = 1, - }; - -+/* PCAP */ -+static struct resource ezxpcap_resources[] = { -+ [0] = { -+ .start = IRQ_GPIO1, -+ .end = IRQ_GPIO1, -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+struct platform_device ezxpcap_device = { -+ .name = "ezx-pcap", -+ .id = -1, -+ .dev = { -+ .parent = &ezxssp_device.dev, -+ }, -+ .num_resources = ARRAY_SIZE(ezxpcap_resources), -+ .resource = ezxpcap_resources, -+}; - - /* OHCI Controller */ - -@@ -236,7 +254,7 @@ - }; - - --static struct resource ezx_bp_resources[] = { -+static struct resource ezxbp_resources[] = { - [0] = { - .start = GPIO_BP_RDY, - .end = GPIO_BP_RDY, -@@ -256,15 +274,15 @@ - #endif - }; - --static struct platform_device ezx_bp_device = { -+static struct platform_device ezxbp_device = { - .name = "ezx-bp", - .dev = { - //.parent = - //.platform_data = - }, - .id = -1, -- .num_resources = ARRAY_SIZE(ezx_bp_resources), -- .resource = ezx_bp_resources, -+ .num_resources = ARRAY_SIZE(ezxbp_resources), -+ .resource = ezxbp_resources, - }; - - static void __init ezx_init_gpio_irq(void) -@@ -297,7 +315,8 @@ - - static struct platform_device *devices[] __initdata = { - &ezxssp_device, -- &ezx_bp_device, -+ &ezxpcap_device, -+ &ezxbp_device, - }; - - static void __init a780_init(void) diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-fix-makefile.patch b/packages/linux/linux-ezx-2.6.20.7/mux-fix-makefile.patch deleted file mode 100644 index f7884ca524..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/mux-fix-makefile.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/Makefile -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/Makefile 2007-04-22 10:51:23.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/Makefile 2007-04-22 10:52:48.000000000 +0200 -@@ -101,7 +101,8 @@ - obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o - obj-$(CONFIG_TCG_TPM) += tpm/ - --obj-$(CONFIG_TS0710_MUX) += ts0710_mux.o ts0710_mux_usb.o -+obj-$(CONFIG_TS0710_MUX_USB) += ts0710_mux_usb.o -+obj-$(CONFIG_TS0710_MUX) += ts0710_mux.o - - - # Files generated that shall be removed upon make clean diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch b/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch deleted file mode 100644 index f9ad633c76..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/mux-ifdef-ezx-features.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -pruN linux-2.6.20.7/drivers/char/ts0710_mux_usb.c linux-2.6.20.7_x386/drivers/char/ts0710_mux_usb.c ---- linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-22 10:51:38.000000000 +0200 -+++ linux-2.6.20.7_x386/drivers/char/ts0710_mux_usb.c 2007-04-22 11:44:54.000000000 +0200 -@@ -35,10 +35,14 @@ - #include <linux/list.h> - #include <linux/errno.h> - #include <asm/uaccess.h> -+ -+#ifdef CONFIG_PXA_EZX - #include <asm/hardware.h> - #include <asm/arch/hardware.h> - #include <asm/arch-pxa/pxa-regs.h> - #include <asm/arch-pxa/ezx.h> -+#endif -+ - #include <linux/slab.h> - #include <linux/miscdevice.h> - #include <linux/init.h> -@@ -341,8 +345,10 @@ static void usb_ipc_write_bulk(struct ur - - static void wakeup_timeout(unsigned long data) - { -+#ifdef CONFIG_PXA_EZX - GPSR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); - bvd_dbg("wakup_timeout: send GPIO_MCU_INT_SW signal!"); -+#endif - } - - static void suspend_timeout(unsigned long data) -@@ -353,10 +359,12 @@ static void suspend_timeout(unsigned lon - bvd_dbg("suspend_timeout: add the suspend timer again"); - } else { - unlink_urbs(&bvd_ipc->readurb_mux); -+#ifdef CONFIG_PXA_EZX - UHCRHPS3 = 0x4; - mdelay(40); - bvd_dbg("suspend_timeout: send SUSPEND signal! UHCRHPS3=0x%x", - UHCRHPS3); -+#endif - } - } - -@@ -404,6 +412,7 @@ static void ipcusb_xmit_data(void) - bvd_ipc->writeurb_mux.transfer_buffer_length = buf_num; - bvd_dbg("ipcusb_xmit_data: copy data to write urb finished! "); - -+#ifdef CONFIG_PXA_EZX - if ((UHCRHPS3 & 0x4) == 0x4) { - static int ret; - int time = 0; -@@ -442,6 +451,7 @@ static void ipcusb_xmit_data(void) - "failed! status=%d\n", ret); - bvd_dbg("ipcusb_xmit_data: Send a IN token successfully!"); - } -+#endif - - sumbit_times++; - bvd_ipc->write_finished_flag = 0; -@@ -464,12 +474,16 @@ static void usbipc_bh_func(unsigned long - - static void usbipc_bh_bp_func(unsigned long param) - { -+#ifdef CONFIG_PXA_EZX - if ((UHCRHPS3 & 0x4) == 0x4) { - UHCRHPS3 = 0x8; -+#endif - mdelay(40); -+#ifdef CONFIG_PXA_EZX - bvd_dbg("ipcusb_softint_send_readurb: Send RESUME signal! " - "UHCRHPS3=0x%x", UHCRHPS3); - } -+#endif - if (bvd_ipc->ipc_flag == IPC_USB_PROBE_READY) { - //get_halted_bit(); - -@@ -734,7 +748,9 @@ static void usb_ipc_disconnect(struct us - printk("usb_ipc_disconnect. bvd_ipc_disconnect address: %p\n", bvd_ipc_disconnect); - - //FIXME: Memory leak? -+#ifdef CONFIG_PXA_EZX - if ((UHCRHPS3 & 0x4) == 0) -+#endif - // usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux); - - //usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux); diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-linux-2.6.20.7-fix.patch b/packages/linux/linux-ezx-2.6.20.7/mux-linux-2.6.20.7-fix.patch deleted file mode 100644 index bc6e3972b6..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/mux-linux-2.6.20.7-fix.patch +++ /dev/null @@ -1,96 +0,0 @@ -diff -pruN linux-2.6.20.7/drivers/char/ts0710.h linux-2.6.20.7_x386/drivers/char/ts0710.h ---- linux-2.6.20.7/drivers/char/ts0710.h 2007-04-22 10:51:23.000000000 +0200 -+++ linux-2.6.20.7_x386/drivers/char/ts0710.h 2007-04-22 11:16:37.000000000 +0200 -@@ -45,7 +45,7 @@ - * 11/18/2002 Modified - */ - --#include <linux/config.h> -+//#include <linux/config.h> - #include <linux/module.h> - - #include <linux/errno.h> -@@ -58,7 +58,7 @@ - #include <linux/major.h> - #include <linux/mm.h> - #include <linux/init.h> --#include <linux/devfs_fs_kernel.h> -+//#include <linux/devfs_fs_kernel.h> - - #include <asm/uaccess.h> - #include <asm/system.h> -diff -pruN linux-2.6.20.7/drivers/char/ts0710_mux.c linux-2.6.20.7_x386/drivers/char/ts0710_mux.c ---- linux-2.6.20.7/drivers/char/ts0710_mux.c 2007-04-22 10:53:05.000000000 +0200 -+++ linux-2.6.20.7_x386/drivers/char/ts0710_mux.c 2007-04-22 11:20:07.000000000 +0200 -@@ -46,7 +46,7 @@ - * 11/18/2002 Second version - * 04/21/2004 Add GPRS PROC - */ --#include <linux/config.h> -+//#include <linux/config.h> - #include <linux/module.h> - #include <linux/types.h> - -@@ -70,7 +70,7 @@ - #include <linux/mm.h> - #include <linux/slab.h> - #include <linux/init.h> --#include <linux/devfs_fs_kernel.h> -+//#include <linux/devfs_fs_kernel.h> - //#include <syslog.h> - - #include <asm/uaccess.h> -@@ -1894,11 +1894,14 @@ int ts0710_recv_data(ts0710_con * ts0710 - if (test_bit(TTY_THROTTLED, &tty->flags)) { - queue_data = 1; - } else { -+ /* - if (test_bit - (TTY_DONT_FLIP, &tty->flags)) { - queue_data = 1; - post_recv = 1; -- } else if (recv_info->total) { -+ } else -+ */ -+ if (recv_info->total) { - queue_data = 1; - post_recv = 1; - } else if (recv_room < uih_len) { -@@ -3499,11 +3502,14 @@ static void post_recv_worker(void *priva - if (test_bit(TTY_THROTTLED, &tty->flags)) { - add_post_recv_queue(&post_recv_q, recv_info); - continue; -- } else if (test_bit(TTY_DONT_FLIP, &tty->flags)) { -+ } -+ /* -+ else if (test_bit(TTY_DONT_FLIP, &tty->flags)) { - post_recv = 1; - add_post_recv_queue(&post_recv_q, recv_info); - continue; - } -+ */ - - flow_control = 0; - recv_packet2 = recv_info->mux_packet; -@@ -3893,9 +3899,9 @@ static int __init mux_init(void) - } - post_recv_count_flag = 0; - -- INIT_WORK(&send_tqueue, send_worker, NULL); -- INIT_WORK(&receive_tqueue, receive_worker, NULL); -- INIT_WORK(&post_recv_tqueue, post_recv_worker, NULL); -+ INIT_WORK(&send_tqueue, send_worker); -+ INIT_WORK(&receive_tqueue, receive_worker); -+ INIT_WORK(&post_recv_tqueue, post_recv_worker); - - mux_driver = alloc_tty_driver(NR_MUXS); - if (!mux_driver) -@@ -3904,7 +3910,7 @@ static int __init mux_init(void) - mux_driver->owner = THIS_MODULE; - mux_driver->driver_name = "ts0710mux"; - mux_driver->name = "mux"; -- mux_driver->devfs_name = "mux"; -+ //mux_driver->devfs_name = "mux"; - mux_driver->major = TS0710MUX_MAJOR; - mux_driver->minor_start = TS0710MUX_MINOR_START; - mux_driver->type = TTY_DRIVER_TYPE_SERIAL; diff --git a/packages/linux/linux-ezx-2.6.20.7/mux_cli.patch b/packages/linux/linux-ezx-2.6.20.7/mux_cli.patch deleted file mode 100644 index c86e3b40e4..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/mux_cli.patch +++ /dev/null @@ -1,5395 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/Kconfig -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/Kconfig 2007-04-13 22:48:14.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/Kconfig 2007-04-21 18:04:56.000000000 +0200 -@@ -1030,5 +1030,17 @@ - sysfs directory, /sys/devices/platform/telco_clock, with a number of - files for controlling the behavior of this hardware. - -+config TS0710_MUX -+ tristate "GSM TS 07.10 Multiplex driver" -+ help -+ This implements the GSM 07.10 multiplex. -+ -+config TS0710_MUX_USB -+ tristate "Motorola USB support for TS 07.10 Multiplex driver" -+ depends on TS0710_MUX -+ help -+ This ads support for TS 07.10 over USB, as found in motorola -+ Smartphones. -+ - endmenu - -Index: linux-2.6.20.7/drivers/char/Makefile -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/Makefile 2007-04-13 22:48:14.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/Makefile 2007-04-21 18:06:42.000000000 +0200 -@@ -101,6 +101,9 @@ - obj-$(CONFIG_HANGCHECK_TIMER) += hangcheck-timer.o - obj-$(CONFIG_TCG_TPM) += tpm/ - -+obj-$(CONFIG_TS0710_MUX) += ts0710_mux.o ts0710_mux_usb.o -+ -+ - # Files generated that shall be removed upon make clean - clean-files := consolemap_deftbl.c defkeymap.c - -Index: linux-2.6.20.7/drivers/char/ts0710.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/char/ts0710.h 2007-04-21 18:04:56.000000000 +0200 -@@ -0,0 +1,368 @@ -+/* -+ * File: ts0710.h -+ * -+ * Portions derived from rfcomm.c, original header as follows: -+ * -+ * Copyright (C) 2000, 2001 Axis Communications AB -+ * -+ * Author: Mats Friden <mats.friden@axis.com> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2 -+ * of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * Exceptionally, Axis Communications AB grants discretionary and -+ * conditional permissions for additional use of the text contained -+ * in the company's release of the AXIS OpenBT Stack under the -+ * provisions set forth hereunder. -+ * -+ * Provided that, if you use the AXIS OpenBT Stack with other files, -+ * that do not implement functionality as specified in the Bluetooth -+ * System specification, to produce an executable, this does not by -+ * itself cause the resulting executable to be covered by the GNU -+ * General Public License. Your use of that executable is in no way -+ * restricted on account of using the AXIS OpenBT Stack code with it. -+ * -+ * This exception does not however invalidate any other reasons why -+ * the executable file might be covered by the provisions of the GNU -+ * General Public License. -+ * -+ */ -+/* -+ * Copyright (C) 2002 Motorola -+ * -+ * 07/28/2002 Initial version based on rfcomm.c -+ * 11/18/2002 Modified -+ */ -+ -+#include <linux/config.h> -+#include <linux/module.h> -+ -+#include <linux/errno.h> -+#include <linux/sched.h> -+#include <linux/interrupt.h> -+#include <linux/tty.h> -+#include <linux/tty_flip.h> -+#include <linux/fcntl.h> -+#include <linux/string.h> -+#include <linux/major.h> -+#include <linux/mm.h> -+#include <linux/init.h> -+#include <linux/devfs_fs_kernel.h> -+ -+#include <asm/uaccess.h> -+#include <asm/system.h> -+#include <asm/bitops.h> -+ -+#include <asm/byteorder.h> -+#include <asm/types.h> -+ -+#define TS0710_MAX_CHN 14 -+ -+#define SET_PF(ctr) ((ctr) | (1 << 4)) -+#define CLR_PF(ctr) ((ctr) & 0xef) -+#define GET_PF(ctr) (((ctr) >> 4) & 0x1) -+ -+#define GET_PN_MSG_FRAME_SIZE(pn) ( ((pn)->frame_sizeh << 8) | ((pn)->frame_sizel)) -+#define SET_PN_MSG_FRAME_SIZE(pn, size) ({ (pn)->frame_sizel = (size) & 0xff; \ -+ (pn)->frame_sizeh = (size) >> 8; }) -+ -+#define GET_LONG_LENGTH(a) ( ((a).h_len << 7) | ((a).l_len) ) -+#define SET_LONG_LENGTH(a, length) ({ (a).ea = 0; \ -+ (a).l_len = length & 0x7F; \ -+ (a).h_len = (length >> 7) & 0xFF; }) -+ -+#define SHORT_CRC_CHECK 3 -+#define LONG_CRC_CHECK 4 -+ -+/* FIXME: Should thsi one be define here? */ -+#define SHORT_PAYLOAD_SIZE 127 -+ -+#define EA 1 -+#define FCS_SIZE 1 -+#define FLAG_SIZE 2 -+ -+#define TS0710_MAX_HDR_SIZE 5 -+#define DEF_TS0710_MTU 256 -+ -+#define TS0710_BASIC_FLAG 0xF9 -+/* the control field */ -+#define SABM 0x2f -+#define SABM_SIZE 4 -+#define UA 0x63 -+#define UA_SIZE 4 -+#define DM 0x0f -+#define DISC 0x43 -+#define UIH 0xef -+ -+/* the type field in a multiplexer command packet */ -+#define TEST 0x8 -+#define FCON 0x28 -+#define FCOFF 0x18 -+#define MSC 0x38 -+#define RPN 0x24 -+#define RLS 0x14 -+#define PN 0x20 -+#define NSC 0x4 -+ -+/* V.24 modem control signals */ -+#define FC 0x2 -+#define RTC 0x4 -+#define RTR 0x8 -+#define IC 0x40 -+#define DV 0x80 -+ -+#define CTRL_CHAN 0 /* The control channel is defined as DLCI 0 */ -+#define MCC_CMD 1 /* Multiplexer command cr */ -+#define MCC_RSP 0 /* Multiplexer response cr */ -+ -+#ifdef __LITTLE_ENDIAN_BITFIELD -+ -+typedef struct { -+ __u8 ea:1; -+ __u8 cr:1; -+ __u8 d:1; -+ __u8 server_chn:5; -+} __attribute__ ((packed)) address_field; -+ -+typedef struct { -+ __u8 ea:1; -+ __u8 len:7; -+} __attribute__ ((packed)) short_length; -+ -+typedef struct { -+ __u8 ea:1; -+ __u8 l_len:7; -+ __u8 h_len; -+} __attribute__ ((packed)) long_length; -+ -+typedef struct { -+ address_field addr; -+ __u8 control; -+ short_length length; -+} __attribute__ ((packed)) short_frame_head; -+ -+typedef struct { -+ short_frame_head h; -+ __u8 data[0]; -+} __attribute__ ((packed)) short_frame; -+ -+typedef struct { -+ address_field addr; -+ __u8 control; -+ long_length length; -+ __u8 data[0]; -+} __attribute__ ((packed)) long_frame_head; -+ -+typedef struct { -+ long_frame_head h; -+ __u8 data[0]; -+} __attribute__ ((packed)) long_frame; -+ -+/* Typedefinitions for structures used for the multiplexer commands */ -+typedef struct { -+ __u8 ea:1; -+ __u8 cr:1; -+ __u8 type:6; -+} __attribute__ ((packed)) mcc_type; -+ -+typedef struct { -+ mcc_type type; -+ short_length length; -+ __u8 value[0]; -+} __attribute__ ((packed)) mcc_short_frame_head; -+ -+typedef struct { -+ mcc_short_frame_head h; -+ __u8 value[0]; -+} __attribute__ ((packed)) mcc_short_frame; -+ -+typedef struct { -+ mcc_type type; -+ long_length length; -+ __u8 value[0]; -+} __attribute__ ((packed)) mcc_long_frame_head; -+ -+typedef struct { -+ mcc_long_frame_head h; -+ __u8 value[0]; -+} __attribute__ ((packed)) mcc_long_frame; -+ -+/* MSC-command */ -+typedef struct { -+ __u8 ea:1; -+ __u8 fc:1; -+ __u8 rtc:1; -+ __u8 rtr:1; -+ __u8 reserved:2; -+ __u8 ic:1; -+ __u8 dv:1; -+} __attribute__ ((packed)) v24_sigs; -+ -+typedef struct { -+ __u8 ea:1; -+ __u8 b1:1; -+ __u8 b2:1; -+ __u8 b3:1; -+ __u8 len:4; -+} __attribute__ ((packed)) brk_sigs; -+ -+typedef struct { -+ short_frame_head s_head; -+ mcc_short_frame_head mcc_s_head; -+ address_field dlci; -+ __u8 v24_sigs; -+ //brk_sigs break_signals; -+ __u8 fcs; -+} __attribute__ ((packed)) msc_msg; -+ -+#if 0 -+/* conflict with termios.h */ -+/* RPN command */ -+#define B2400 0 -+#define B4800 1 -+#define B7200 2 -+#define B9600 3 -+#define B19200 4 -+#define B38400 5 -+#define B57600 6 -+#define B115200 7 -+#define D230400 8 -+#endif -+ -+/* -+typedef struct{ -+ __u8 bit_rate:1; -+ __u8 data_bits:1; -+ __u8 stop_bit:1; -+ __u8 parity:1; -+ __u8 parity_type:1; -+ __u8 xon_u8:1; -+ __u8 xoff_u8:1; -+ __u8 res1:1; -+ __u8 xon_input:1; -+ __u8 xon_output:1; -+ __u8 rtr_input:1; -+ __u8 rtr_output:1; -+ __u8 rtc_input:1; -+ __u8 rtc_output:1; -+ __u8 res2:2; -+} __attribute__((packed)) parameter_mask; -+ -+typedef struct{ -+ __u8 bit_rate; -+ __u8 data_bits:2; -+ __u8 stop_bit:1; -+ __u8 parity:1; -+ __u8 parity_type:2; -+ __u8 res1:2; -+ __u8 xon_input:1; -+ __u8 xon_output:1; -+ __u8 rtr_input:1; -+ __u8 rtr_output:1; -+ __u8 rtc_input:1; -+ __u8 rtc_output:1; -+ __u8 res2:2; -+ __u8 xon_u8; -+ __u8 xoff_u8; -+ parameter_mask pm; -+} __attribute__((packed)) rpn_values; -+ -+typedef struct{ -+ short_frame_head s_head; -+ mcc_short_frame_head mcc_s_head; -+ address_field dlci; -+ rpn_values rpn_val; -+ __u8 fcs; -+} __attribute__((packed)) rpn_msg; -+*/ -+ -+/* RLS-command */ -+/* -+typedef struct{ -+ short_frame_head s_head; -+ mcc_short_frame_head mcc_s_head; -+ address_field dlci; -+ __u8 error:4; -+ __u8 res:4; -+ __u8 fcs; -+} __attribute__((packed)) rls_msg; -+*/ -+ -+/* PN-command */ -+typedef struct { -+ short_frame_head s_head; -+ mcc_short_frame_head mcc_s_head; -+ __u8 dlci:6; -+ __u8 res1:2; -+ __u8 frame_type:4; -+ __u8 credit_flow:4; -+ __u8 prior:6; -+ __u8 res2:2; -+ __u8 ack_timer; -+ __u8 frame_sizel; -+ __u8 frame_sizeh; -+ __u8 max_nbrof_retrans; -+ __u8 credits; -+ __u8 fcs; -+} __attribute__ ((packed)) pn_msg; -+ -+/* NSC-command */ -+typedef struct { -+ short_frame_head s_head; -+ mcc_short_frame_head mcc_s_head; -+ mcc_type command_type; -+ __u8 fcs; -+} __attribute__ ((packed)) nsc_msg; -+ -+#else -+#error Only littel-endianess supported now! -+#endif -+ -+enum { -+ REJECTED = 0, -+ DISCONNECTED, -+ CONNECTING, -+ NEGOTIATING, -+ CONNECTED, -+ DISCONNECTING, -+ FLOW_STOPPED -+}; -+ -+enum ts0710_events { -+ CONNECT_IND, -+ CONNECT_CFM, -+ DISCONN_CFM -+}; -+ -+typedef struct { -+ volatile __u8 state; -+ volatile __u8 flow_control; -+ volatile __u8 initiated; -+ volatile __u8 initiator; -+ volatile __u16 mtu; -+ wait_queue_head_t open_wait; -+ wait_queue_head_t close_wait; -+} dlci_struct; -+ -+/* user space interfaces */ -+typedef struct { -+ volatile __u8 initiator; -+ volatile __u8 c_dlci; -+ volatile __u16 mtu; -+ volatile __u8 be_testing; -+ volatile __u32 test_errs; -+ wait_queue_head_t test_wait; -+ -+ dlci_struct dlci[TS0710_MAX_CHN]; -+} ts0710_con; -Index: linux-2.6.20.7/drivers/char/ts0710_mux.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/char/ts0710_mux.c 2007-04-21 18:08:02.000000000 +0200 -@@ -0,0 +1,3966 @@ -+/* -+ * File: mux_driver.c -+ * -+ * Portions derived from rfcomm.c, original header as follows: -+ * -+ * Copyright (C) 2000, 2001 Axis Communications AB -+ * -+ * Author: Mats Friden <mats.friden@axis.com> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License -+ * as published by the Free Software Foundation; either version 2 -+ * of the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * Exceptionally, Axis Communications AB grants discretionary and -+ * conditional permissions for additional use of the text contained -+ * in the company's release of the AXIS OpenBT Stack under the -+ * provisions set forth hereunder. -+ * -+ * Provided that, if you use the AXIS OpenBT Stack with other files, -+ * that do not implement functionality as specified in the Bluetooth -+ * System specification, to produce an executable, this does not by -+ * itself cause the resulting executable to be covered by the GNU -+ * General Public License. Your use of that executable is in no way -+ * restricted on account of using the AXIS OpenBT Stack code with it. -+ * -+ * This exception does not however invalidate any other reasons why -+ * the executable file might be covered by the provisions of the GNU -+ * General Public License. -+ * -+ */ -+/* -+ * Copyright (C) 2002-2004 Motorola -+ * Copyright (C) 2006 Harald Welte <laforge@openezx.org> -+ * -+ * 07/28/2002 Initial version -+ * 11/18/2002 Second version -+ * 04/21/2004 Add GPRS PROC -+ */ -+#include <linux/config.h> -+#include <linux/module.h> -+#include <linux/types.h> -+ -+#include <linux/kernel.h> -+#include <linux/proc_fs.h> -+ -+#define USB_FOR_MUX -+ -+#ifndef USB_FOR_MUX -+#include <linux/serial.h> -+#endif -+ -+#include <linux/errno.h> -+#include <linux/sched.h> -+#include <linux/interrupt.h> -+#include <linux/tty.h> -+#include <linux/tty_flip.h> -+#include <linux/fcntl.h> -+#include <linux/string.h> -+#include <linux/major.h> -+#include <linux/mm.h> -+#include <linux/slab.h> -+#include <linux/init.h> -+#include <linux/devfs_fs_kernel.h> -+//#include <syslog.h> -+ -+#include <asm/uaccess.h> -+#include <asm/system.h> -+#include <asm/bitops.h> -+ -+#ifdef USB_FOR_MUX -+//#include <linux/usb.h> -+#include "ts0710_mux_usb.h" -+#endif -+ -+#include "ts0710.h" -+#include "ts0710_mux.h" -+ -+#define TS0710MUX_GPRS_SESSION_MAX 2 -+#define TS0710MUX_MAJOR 250 -+#define TS0710MUX_MINOR_START 0 -+#define NR_MUXS 16 -+ -+ /*#define TS0710MUX_TIME_OUT 30 *//* 300ms */ -+#define TS0710MUX_TIME_OUT 250 /* 2500ms, for BP UART hardware flow control AP UART */ -+ -+#define TS0710MUX_IO_DLCI_FC_ON 0x54F2 -+#define TS0710MUX_IO_DLCI_FC_OFF 0x54F3 -+#define TS0710MUX_IO_FC_ON 0x54F4 -+#define TS0710MUX_IO_FC_OFF 0x54F5 -+ -+#define TS0710MUX_MAX_BUF_SIZE 2048 -+ -+#define TS0710MUX_SEND_BUF_OFFSET 10 -+#define TS0710MUX_SEND_BUF_SIZE (DEF_TS0710_MTU + TS0710MUX_SEND_BUF_OFFSET + 34) -+#define TS0710MUX_RECV_BUF_SIZE TS0710MUX_SEND_BUF_SIZE -+ -+/*For BP UART problem Begin*/ -+#ifdef TS0710SEQ2 -+#define ACK_SPACE 66 /* 6 * 11(ACK frame size) */ -+#else -+#define ACK_SPACE 42 /* 6 * 7(ACK frame size) */ -+#endif -+/*For BP UART problem End*/ -+ -+ /*#define TS0710MUX_SERIAL_BUF_SIZE (DEF_TS0710_MTU + TS0710_MAX_HDR_SIZE)*//* For BP UART problem */ -+#define TS0710MUX_SERIAL_BUF_SIZE (DEF_TS0710_MTU + TS0710_MAX_HDR_SIZE + ACK_SPACE) /* For BP UART problem: ACK_SPACE */ -+ -+#define TS0710MUX_MAX_TOTAL_FRAME_SIZE (DEF_TS0710_MTU + TS0710_MAX_HDR_SIZE + FLAG_SIZE) -+#define TS0710MUX_MAX_CHARS_IN_BUF 65535 -+#define TS0710MUX_THROTTLE_THRESHOLD DEF_TS0710_MTU -+ -+#define TEST_PATTERN_SIZE 250 -+ -+#define CMDTAG 0x55 -+#define DATATAG 0xAA -+ -+#define ACK 0x4F /*For BP UART problem */ -+ -+/*For BP UART problem Begin*/ -+#ifdef TS0710SEQ2 -+#define FIRST_BP_SEQ_OFFSET 1 /*offset from start flag */ -+#define SECOND_BP_SEQ_OFFSET 2 /*offset from start flag */ -+#define FIRST_AP_SEQ_OFFSET 3 /*offset from start flag */ -+#define SECOND_AP_SEQ_OFFSET 4 /*offset from start flag */ -+#define SLIDE_BP_SEQ_OFFSET 5 /*offset from start flag */ -+#define SEQ_FIELD_SIZE 5 -+#else -+#define SLIDE_BP_SEQ_OFFSET 1 /*offset from start flag */ -+#define SEQ_FIELD_SIZE 1 -+#endif -+ -+#define ADDRESS_FIELD_OFFSET (1 + SEQ_FIELD_SIZE) /*offset from start flag */ -+/*For BP UART problem End*/ -+ -+#ifndef UNUSED_PARAM -+#define UNUSED_PARAM(v) (void)(v) -+#endif -+ -+#define TS0710MUX_GPRS1_DLCI 7 -+#define TS0710MUX_GPRS2_DLCI 8 -+ -+#define TS0710MUX_GPRS1_RECV_COUNT_IDX 0 -+#define TS0710MUX_GPRS1_SEND_COUNT_IDX 1 -+#define TS0710MUX_GPRS2_RECV_COUNT_IDX 2 -+#define TS0710MUX_GPRS2_SEND_COUNT_IDX 3 -+#define TS0710MUX_COUNT_MAX_IDX 3 -+#define TS0710MUX_COUNT_IDX_NUM (TS0710MUX_COUNT_MAX_IDX + 1) -+ -+static volatile int mux_data_count[TS0710MUX_COUNT_IDX_NUM] = { 0, 0, 0, 0 }; -+static volatile int mux_data_count2[TS0710MUX_COUNT_IDX_NUM] = { 0, 0, 0, 0 }; -+static struct semaphore mux_data_count_mutex[TS0710MUX_COUNT_IDX_NUM]; -+static volatile __u8 post_recv_count_flag = 0; -+ -+/*PROC file*/ -+struct proc_dir_entry *gprs_proc_file = NULL; -+ssize_t file_proc_read(struct file *file, char *buf, size_t size, -+ loff_t * ppos); -+ssize_t file_proc_write(struct file *file, const char *buf, size_t count, -+ loff_t * ppos); -+struct file_operations file_proc_operations = { -+ read:file_proc_read, -+ write:file_proc_write, -+}; -+typedef struct { -+ int recvBytes; -+ int sentBytes; -+} gprs_bytes; -+ -+static __u8 tty2dlci[NR_MUXS] = -+ { 1, 2, 3, 4, 5, 6, 7, 8, 6, 7, 8, 9, 10, 11, 12, 13 }; -+static __u8 iscmdtty[NR_MUXS] = -+ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }; -+typedef struct { -+ __u8 cmdtty; -+ __u8 datatty; -+} dlci_tty; -+static dlci_tty dlci2tty[] = { {0, 0}, /* DLCI 0 */ -+{0, 0}, /* DLCI 1 */ -+{1, 1}, /* DLCI 2 */ -+{2, 2}, /* DLCI 3 */ -+{3, 3}, /* DLCI 4 */ -+{4, 4}, /* DLCI 5 */ -+{5, 8}, /* DLCI 6 */ -+{6, 9}, /* DLCI 7 */ -+{7, 10}, /* DLCI 8 */ -+{11, 11}, /* DLCI 9 */ -+{12, 12}, /* DLCI 10 */ -+{13, 13}, /* DLCI 11 */ -+{14, 14}, /* DLCI 12 */ -+{15, 15} -+}; /* DLCI 13 */ -+ -+typedef struct { -+ volatile __u8 buf[TS0710MUX_SEND_BUF_SIZE]; -+ volatile __u8 *frame; -+ unsigned long flags; -+ volatile __u16 length; -+ volatile __u8 filled; -+ volatile __u8 dummy; /* Allignment to 4*n bytes */ -+} mux_send_struct; -+ -+/* Bit number in flags of mux_send_struct */ -+#define BUF_BUSY 0 -+ -+struct mux_recv_packet_tag { -+ __u8 *data; -+ __u32 length; -+ struct mux_recv_packet_tag *next; -+}; -+typedef struct mux_recv_packet_tag mux_recv_packet; -+ -+struct mux_recv_struct_tag { -+ __u8 data[TS0710MUX_RECV_BUF_SIZE]; -+ __u32 length; -+ __u32 total; -+ mux_recv_packet *mux_packet; -+ struct mux_recv_struct_tag *next; -+ int no_tty; -+ volatile __u8 post_unthrottle; -+}; -+typedef struct mux_recv_struct_tag mux_recv_struct; -+ -+#define RECV_RUNNING 0 -+static unsigned long mux_recv_flags = 0; -+ -+static mux_send_struct *mux_send_info[NR_MUXS]; -+static volatile __u8 mux_send_info_flags[NR_MUXS]; -+static volatile __u8 mux_send_info_idx = NR_MUXS; -+ -+static mux_recv_struct *mux_recv_info[NR_MUXS]; -+static volatile __u8 mux_recv_info_flags[NR_MUXS]; -+static mux_recv_struct *mux_recv_queue = NULL; -+ -+static struct tty_driver mux_driver; -+ -+#ifdef USB_FOR_MUX -+#define COMM_FOR_MUX_DRIVER usb_for_mux_driver -+#define COMM_FOR_MUX_TTY usb_for_mux_tty -+#define COMM_MUX_DISPATCHER usb_mux_dispatcher -+#define COMM_MUX_SENDER usb_mux_sender -+#else -+#define COMM_FOR_MUX_DRIVER serial_for_mux_driver -+#define COMM_FOR_MUX_TTY serial_for_mux_tty -+#define COMM_MUX_DISPATCHER serial_mux_dispatcher -+#define COMM_MUX_SENDER serial_mux_sender -+ -+extern struct list_head *tq_serial_for_mux; -+#endif -+ -+extern struct tty_driver *COMM_FOR_MUX_DRIVER; -+extern struct tty_struct *COMM_FOR_MUX_TTY; -+extern void (*COMM_MUX_DISPATCHER) (struct tty_struct * tty); -+extern void (*COMM_MUX_SENDER) (void); -+ -+static struct work_struct send_tqueue; -+static struct work_struct receive_tqueue; -+static struct work_struct post_recv_tqueue; -+ -+static struct tty_struct *mux_table[NR_MUXS]; -+static struct termios *mux_termios[NR_MUXS]; -+static struct termios *mux_termios_locked[NR_MUXS]; -+static volatile short int mux_tty[NR_MUXS]; -+ -+#ifdef min -+#undef min -+#define min(a,b) ( (a)<(b) ? (a):(b) ) -+#endif -+ -+static int get_count(__u8 idx); -+static int set_count(__u8 idx, int count); -+static int add_count(__u8 idx, int count); -+ -+static int send_ua(ts0710_con * ts0710, __u8 dlci); -+static int send_dm(ts0710_con * ts0710, __u8 dlci); -+static int send_sabm(ts0710_con * ts0710, __u8 dlci); -+static int send_disc(ts0710_con * ts0710, __u8 dlci); -+static void queue_uih(mux_send_struct * send_info, __u16 len, -+ ts0710_con * ts0710, __u8 dlci); -+static int send_pn_msg(ts0710_con * ts0710, __u8 prior, __u32 frame_size, -+ __u8 credit_flow, __u8 credits, __u8 dlci, __u8 cr); -+static int send_nsc_msg(ts0710_con * ts0710, mcc_type cmd, __u8 cr); -+static void set_uih_hdr(short_frame * uih_pkt, __u8 dlci, __u32 len, __u8 cr); -+ -+static __u32 crc_check(__u8 * data, __u32 length, __u8 check_sum); -+static __u8 crc_calc(__u8 * data, __u32 length); -+static void create_crctable(__u8 table[]); -+ -+static void mux_sched_send(void); -+ -+static __u8 crctable[256]; -+ -+static ts0710_con ts0710_connection; -+/* -+static rpn_values rpn_val; -+*/ -+ -+static int valid_dlci(__u8 dlci) -+{ -+ if ((dlci < TS0710_MAX_CHN) && (dlci > 0)) -+ return 1; -+ else -+ return 0; -+} -+ -+#ifdef TS0710DEBUG -+ -+#ifdef PRINT_OUTPUT_PRINTK -+#define TS0710_DEBUG(fmt, arg...) printk(KERN_INFO "MUX " __FUNCTION__ ": " fmt "\n" , ## arg) -+#else -+#include "ezxlog.h" -+static __u8 strDebug[256]; -+#define TS0710_DEBUG(fmt, arg...) ({ snprintf(strDebug, sizeof(strDebug), "MUX " __FUNCTION__ ": " fmt "\n" , ## arg); \ -+ /*printk("%s", strDebug)*/ezxlogk("MX", strDebug, strlen(strDebug)); }) -+#endif /* End #ifdef PRINT_OUTPUT_PRINTK */ -+ -+#else -+#define TS0710_DEBUG(fmt...) -+#endif /* End #ifdef TS0710DEBUG */ -+ -+#ifdef TS0710LOG -+static unsigned char g_tbuf[TS0710MUX_MAX_BUF_SIZE]; -+#ifdef PRINT_OUTPUT_PRINTK -+#define TS0710_LOG(fmt, arg...) printk(fmt, ## arg) -+#define TS0710_PRINTK(fmt, arg...) printk(fmt, ## arg) -+#else -+#include "ezxlog.h" -+static __u8 strLog[256]; -+#define TS0710_LOG(fmt, arg...) ({ snprintf(strLog, sizeof(strLog), fmt, ## arg); \ -+ /*printk("%s", strLog)*/ezxlogk("MX", strLog, strlen(strLog)); }) -+#define TS0710_PRINTK(fmt, arg...) ({ printk(fmt, ## arg); \ -+ TS0710_LOG(fmt, ## arg); }) -+#endif /* End #ifdef PRINT_OUTPUT_PRINTK */ -+ -+#else -+#define TS0710_LOG(fmt...) -+#define TS0710_PRINTK(fmt, arg...) printk(fmt, ## arg) -+#endif /* End #ifdef TS0710LOG */ -+ -+#ifdef TS0710DEBUG -+static void TS0710_DEBUGHEX(__u8 * buf, int len) -+{ -+ static unsigned char tbuf[TS0710MUX_MAX_BUF_SIZE]; -+ -+ int i; -+ int c; -+ -+ if (len <= 0) { -+ return; -+ } -+ -+ c = 0; -+ for (i = 0; (i < len) && (c < (TS0710MUX_MAX_BUF_SIZE - 3)); i++) { -+ sprintf(&tbuf[c], "%02x ", buf[i]); -+ c += 3; -+ } -+ tbuf[c] = 0; -+ -+#ifdef PRINT_OUTPUT_PRINTK -+ TS0710_DEBUG("%s", tbuf); -+#else -+ /*printk("%s\n", tbuf) */ ezxlogk("MX", tbuf, c); -+#endif -+} -+static void TS0710_DEBUGSTR(__u8 * buf, int len) -+{ -+ static unsigned char tbuf[TS0710MUX_MAX_BUF_SIZE]; -+ -+ if (len <= 0) { -+ return; -+ } -+ -+ if (len > (TS0710MUX_MAX_BUF_SIZE - 1)) { -+ len = (TS0710MUX_MAX_BUF_SIZE - 1); -+ } -+ -+ memcpy(tbuf, buf, len); -+ tbuf[len] = 0; -+ -+#ifdef PRINT_OUTPUT_PRINTK -+ /* 0x00 byte in the string pointed by tbuf may truncate the print result */ -+ TS0710_DEBUG("%s", tbuf); -+#else -+ /*printk("%s\n", tbuf) */ ezxlogk("MX", tbuf, len); -+#endif -+} -+#else -+#define TS0710_DEBUGHEX(buf, len) -+#define TS0710_DEBUGSTR(buf, len) -+#endif /* End #ifdef TS0710DEBUG */ -+ -+#ifdef TS0710LOG -+static void TS0710_LOGSTR_FRAME(__u8 send, __u8 * data, int len) -+{ -+ short_frame *short_pkt; -+ long_frame *long_pkt; -+ __u8 *uih_data_start; -+ __u32 uih_len; -+ __u8 dlci; -+ int pos; -+ -+ if (len <= 0) { -+ return; -+ } -+ -+ pos = 0; -+ if (send) { -+ pos += sprintf(&g_tbuf[pos], "<"); -+ short_pkt = (short_frame *) (data + 1); /*For BP UART problem */ -+ } else { -+ /*For BP UART problem */ -+ /*pos += sprintf(&g_tbuf[pos], ">"); */ -+ pos += sprintf(&g_tbuf[pos], ">%d ", *(data + SLIDE_BP_SEQ_OFFSET)); /*For BP UART problem */ -+ -+#ifdef TS0710SEQ2 -+ pos += sprintf(&g_tbuf[pos], "%02x %02x %02x %02x ", *(data + FIRST_BP_SEQ_OFFSET), *(data + SECOND_BP_SEQ_OFFSET), *(data + FIRST_AP_SEQ_OFFSET), *(data + SECOND_AP_SEQ_OFFSET)); /*For BP UART problem */ -+#endif -+ -+ short_pkt = (short_frame *) (data + ADDRESS_FIELD_OFFSET); /*For BP UART problem */ -+ } -+ -+ /*For BP UART problem */ -+ /*short_pkt = (short_frame *)(data + 1); */ -+ -+ dlci = short_pkt->h.addr.server_chn << 1 | short_pkt->h.addr.d; -+ switch (CLR_PF(short_pkt->h.control)) { -+ case SABM: -+ pos += sprintf(&g_tbuf[pos], "C SABM %d ::", dlci); -+ break; -+ case UA: -+ pos += sprintf(&g_tbuf[pos], "C UA %d ::", dlci); -+ break; -+ case DM: -+ pos += sprintf(&g_tbuf[pos], "C DM %d ::", dlci); -+ break; -+ case DISC: -+ pos += sprintf(&g_tbuf[pos], "C DISC %d ::", dlci); -+ break; -+ -+ /*For BP UART problem Begin */ -+ case ACK: -+ pos += sprintf(&g_tbuf[pos], "C ACK %d ", short_pkt->data[0]); -+ -+#ifdef TS0710SEQ2 -+ pos += sprintf(&g_tbuf[pos], "%02x %02x %02x %02x ", short_pkt->data[1], short_pkt->data[2], short_pkt->data[3], short_pkt->data[4]); /*For BP UART problem */ -+#endif -+ -+ pos += sprintf(&g_tbuf[pos], "::"); -+ break; -+ /*For BP UART problem End */ -+ -+ case UIH: -+ if (!dlci) { -+ pos += sprintf(&g_tbuf[pos], "C MCC %d ::", dlci); -+ } else { -+ -+ if ((short_pkt->h.length.ea) == 0) { -+ long_pkt = (long_frame *) short_pkt; -+ uih_len = GET_LONG_LENGTH(long_pkt->h.length); -+ uih_data_start = long_pkt->h.data; -+ } else { -+ uih_len = short_pkt->h.length.len; -+ uih_data_start = short_pkt->data; -+ } -+ switch (*uih_data_start) { -+ case CMDTAG: -+ pos += -+ sprintf(&g_tbuf[pos], "I %d A %d ::", dlci, -+ uih_len); -+ break; -+ case DATATAG: -+ default: -+ pos += -+ sprintf(&g_tbuf[pos], "I %d D %d ::", dlci, -+ uih_len); -+ break; -+ } -+ -+ } -+ break; -+ default: -+ pos += sprintf(&g_tbuf[pos], "N!!! %d ::", dlci); -+ break; -+ } -+ -+ if (len > (sizeof(g_tbuf) - pos - 1)) { -+ len = (sizeof(g_tbuf) - pos - 1); -+ } -+ -+ memcpy(&g_tbuf[pos], data, len); -+ pos += len; -+ g_tbuf[pos] = 0; -+ -+#ifdef PRINT_OUTPUT_PRINTK -+ /* 0x00 byte in the string pointed by g_tbuf may truncate the print result */ -+ TS0710_LOG("%s\n", g_tbuf); -+#else -+ /*printk("%s\n", g_tbuf) */ ezxlogk("MX", g_tbuf, pos); -+#endif -+} -+#else -+#define TS0710_LOGSTR_FRAME(send, data, len) -+#endif -+ -+#ifdef TS0710SIG -+#define my_for_each_task(p) \ -+ for ((p) = current; ((p) = (p)->next_task) != current; ) -+ -+static void TS0710_SIG2APLOGD(void) -+{ -+ struct task_struct *p; -+ static __u8 sig = 0; -+ -+ if (sig) { -+ return; -+ } -+ -+ read_lock(&tasklist_lock); -+ my_for_each_task(p) { -+ if (strncmp(p->comm, "aplogd", 6) == 0) { -+ sig = 1; -+ if (send_sig(SIGUSR2, p, 1) == 0) { -+ TS0710_PRINTK -+ ("MUX: success to send SIGUSR2 to aplogd!\n"); -+ } else { -+ TS0710_PRINTK -+ ("MUX: failure to send SIGUSR2 to aplogd!\n"); -+ } -+ break; -+ } -+ } -+ read_unlock(&tasklist_lock); -+ -+ if (!sig) { -+ TS0710_PRINTK("MUX: not found aplogd!\n"); -+ } -+} -+#else -+#define TS0710_SIG2APLOGD() -+#endif -+ -+static int basic_write(ts0710_con * ts0710, __u8 * buf, int len) -+{ -+ int res; -+ -+ UNUSED_PARAM(ts0710); -+ -+ buf[0] = TS0710_BASIC_FLAG; -+ buf[len + 1] = TS0710_BASIC_FLAG; -+ -+ if ((COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)) { -+ TS0710_PRINTK -+ ("MUX basic_write: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n"); -+ -+#ifndef USB_FOR_MUX -+ TS0710_PRINTK -+ ("MUX basic_write: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n"); -+ TS0710_SIG2APLOGD(); -+#endif -+ -+ return -1; -+ } -+ -+ TS0710_LOGSTR_FRAME(1, buf, len + 2); -+ TS0710_DEBUGHEX(buf, len + 2); -+ -+ res = COMM_FOR_MUX_DRIVER->write(COMM_FOR_MUX_TTY, buf, len + 2); -+ -+ if (res != len + 2) { -+ TS0710_PRINTK("MUX basic_write: Write Error!\n"); -+ return -1; -+ } -+ -+ return len + 2; -+} -+ -+/* Functions for the crc-check and calculation */ -+ -+#define CRC_VALID 0xcf -+ -+static __u32 crc_check(__u8 * data, __u32 length, __u8 check_sum) -+{ -+ __u8 fcs = 0xff; -+ -+ while (length--) { -+ fcs = crctable[fcs ^ *data++]; -+ } -+ fcs = crctable[fcs ^ check_sum]; -+ TS0710_DEBUG("fcs : %d\n", fcs); -+ if (fcs == (uint) 0xcf) { /*CRC_VALID) */ -+ TS0710_DEBUG("crc_check: CRC check OK\n"); -+ return 0; -+ } else { -+ TS0710_PRINTK("MUX crc_check: CRC check failed\n"); -+ return 1; -+ } -+} -+ -+/* Calculates the checksum according to the ts0710 specification */ -+ -+static __u8 crc_calc(__u8 * data, __u32 length) -+{ -+ __u8 fcs = 0xff; -+ -+ while (length--) { -+ fcs = crctable[fcs ^ *data++]; -+ } -+ -+ return 0xff - fcs; -+} -+ -+/* Calulates a reversed CRC table for the FCS check */ -+ -+static void create_crctable(__u8 table[]) -+{ -+ int i, j; -+ -+ __u8 data; -+ __u8 code_word = (__u8) 0xe0; -+ __u8 sr = (__u8) 0; -+ -+ for (j = 0; j < 256; j++) { -+ data = (__u8) j; -+ -+ for (i = 0; i < 8; i++) { -+ if ((data & 0x1) ^ (sr & 0x1)) { -+ sr >>= 1; -+ sr ^= code_word; -+ } else { -+ sr >>= 1; -+ } -+ -+ data >>= 1; -+ sr &= 0xff; -+ } -+ -+ table[j] = sr; -+ sr = 0; -+ } -+} -+ -+static void ts0710_reset_dlci(__u8 j) -+{ -+ if (j >= TS0710_MAX_CHN) -+ return; -+ -+ ts0710_connection.dlci[j].state = DISCONNECTED; -+ ts0710_connection.dlci[j].flow_control = 0; -+ ts0710_connection.dlci[j].mtu = DEF_TS0710_MTU; -+ ts0710_connection.dlci[j].initiated = 0; -+ ts0710_connection.dlci[j].initiator = 0; -+ init_waitqueue_head(&ts0710_connection.dlci[j].open_wait); -+ init_waitqueue_head(&ts0710_connection.dlci[j].close_wait); -+} -+ -+static void ts0710_reset_con(void) -+{ -+ __u8 j; -+ -+ ts0710_connection.initiator = 0; -+ ts0710_connection.mtu = DEF_TS0710_MTU + TS0710_MAX_HDR_SIZE; -+ ts0710_connection.be_testing = 0; -+ ts0710_connection.test_errs = 0; -+ init_waitqueue_head(&ts0710_connection.test_wait); -+ -+ for (j = 0; j < TS0710_MAX_CHN; j++) { -+ ts0710_reset_dlci(j); -+ } -+} -+ -+static void ts0710_init(void) -+{ -+ create_crctable(crctable); -+ -+ ts0710_reset_con(); -+ -+ /* Set the values in the rpn octets */ -+/* -+ rpn_val.bit_rate = 7; -+ rpn_val.data_bits = 3; -+ rpn_val.stop_bit = 0; -+ rpn_val.parity = 0; -+ rpn_val.parity_type = 0; -+ rpn_val.res1 = 0; -+ rpn_val.xon_input = 0; -+ rpn_val.xon_output = 0; -+ rpn_val.rtr_input = 0; -+ rpn_val.rtr_output = 0; -+ rpn_val.rtc_input = 0; -+ rpn_val.rtc_output = 0; -+ rpn_val.res2 = 0; -+ rpn_val.xon_u8 = 0x11; -+ rpn_val.xoff_u8 = 0x13; -+ memset(&rpn_val.pm, 0 , 2); *//* Set the mask to zero */ -+} -+ -+static void ts0710_upon_disconnect(void) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ __u8 j; -+ -+ for (j = 0; j < TS0710_MAX_CHN; j++) { -+ ts0710->dlci[j].state = DISCONNECTED; -+ wake_up_interruptible(&ts0710->dlci[j].open_wait); -+ wake_up_interruptible(&ts0710->dlci[j].close_wait); -+ } -+ ts0710->be_testing = 0; -+ wake_up_interruptible(&ts0710->test_wait); -+ ts0710_reset_con(); -+} -+ -+/* Sending packet functions */ -+ -+/* Creates a UA packet and puts it at the beginning of the pkt pointer */ -+ -+static int send_ua(ts0710_con * ts0710, __u8 dlci) -+{ -+ __u8 buf[sizeof(short_frame) + FCS_SIZE + FLAG_SIZE]; -+ short_frame *ua; -+ -+ TS0710_DEBUG("send_ua: Creating UA packet to DLCI %d\n", dlci); -+ -+ ua = (short_frame *) (buf + 1); -+ ua->h.addr.ea = 1; -+ ua->h.addr.cr = ((~(ts0710->initiator)) & 0x1); -+ ua->h.addr.d = (dlci) & 0x1; -+ ua->h.addr.server_chn = (dlci) >> 0x1; -+ ua->h.control = SET_PF(UA); -+ ua->h.length.ea = 1; -+ ua->h.length.len = 0; -+ ua->data[0] = crc_calc((__u8 *) ua, SHORT_CRC_CHECK); -+ -+ return basic_write(ts0710, buf, sizeof(short_frame) + FCS_SIZE); -+} -+ -+/* Creates a DM packet and puts it at the beginning of the pkt pointer */ -+ -+static int send_dm(ts0710_con * ts0710, __u8 dlci) -+{ -+ __u8 buf[sizeof(short_frame) + FCS_SIZE + FLAG_SIZE]; -+ short_frame *dm; -+ -+ TS0710_DEBUG("send_dm: Creating DM packet to DLCI %d\n", dlci); -+ -+ dm = (short_frame *) (buf + 1); -+ dm->h.addr.ea = 1; -+ dm->h.addr.cr = ((~(ts0710->initiator)) & 0x1); -+ dm->h.addr.d = dlci & 0x1; -+ dm->h.addr.server_chn = dlci >> 0x1; -+ dm->h.control = SET_PF(DM); -+ dm->h.length.ea = 1; -+ dm->h.length.len = 0; -+ dm->data[0] = crc_calc((__u8 *) dm, SHORT_CRC_CHECK); -+ -+ return basic_write(ts0710, buf, sizeof(short_frame) + FCS_SIZE); -+} -+ -+static int send_sabm(ts0710_con * ts0710, __u8 dlci) -+{ -+ __u8 buf[sizeof(short_frame) + FCS_SIZE + FLAG_SIZE]; -+ short_frame *sabm; -+ -+ TS0710_DEBUG("send_sabm: Creating SABM packet to DLCI %d\n", dlci); -+ -+ sabm = (short_frame *) (buf + 1); -+ sabm->h.addr.ea = 1; -+ sabm->h.addr.cr = ((ts0710->initiator) & 0x1); -+ sabm->h.addr.d = dlci & 0x1; -+ sabm->h.addr.server_chn = dlci >> 0x1; -+ sabm->h.control = SET_PF(SABM); -+ sabm->h.length.ea = 1; -+ sabm->h.length.len = 0; -+ sabm->data[0] = crc_calc((__u8 *) sabm, SHORT_CRC_CHECK); -+ -+ return basic_write(ts0710, buf, sizeof(short_frame) + FCS_SIZE); -+} -+ -+static int send_disc(ts0710_con * ts0710, __u8 dlci) -+{ -+ __u8 buf[sizeof(short_frame) + FCS_SIZE + FLAG_SIZE]; -+ short_frame *disc; -+ -+ TS0710_DEBUG("send_disc: Creating DISC packet to DLCI %d\n", dlci); -+ -+ disc = (short_frame *) (buf + 1); -+ disc->h.addr.ea = 1; -+ disc->h.addr.cr = ((ts0710->initiator) & 0x1); -+ disc->h.addr.d = dlci & 0x1; -+ disc->h.addr.server_chn = dlci >> 0x1; -+ disc->h.control = SET_PF(DISC); -+ disc->h.length.ea = 1; -+ disc->h.length.len = 0; -+ disc->data[0] = crc_calc((__u8 *) disc, SHORT_CRC_CHECK); -+ -+ return basic_write(ts0710, buf, sizeof(short_frame) + FCS_SIZE); -+} -+ -+static void queue_uih(mux_send_struct * send_info, __u16 len, -+ ts0710_con * ts0710, __u8 dlci) -+{ -+ __u32 size; -+ -+ TS0710_DEBUG -+ ("queue_uih: Creating UIH packet with %d bytes data to DLCI %d\n", -+ len, dlci); -+ -+ if (len > SHORT_PAYLOAD_SIZE) { -+ long_frame *l_pkt; -+ -+ size = sizeof(long_frame) + len + FCS_SIZE; -+ l_pkt = (long_frame *) (send_info->frame - sizeof(long_frame)); -+ set_uih_hdr((void *)l_pkt, dlci, len, ts0710->initiator); -+ l_pkt->data[len] = crc_calc((__u8 *) l_pkt, LONG_CRC_CHECK); -+ send_info->frame = ((__u8 *) l_pkt) - 1; -+ } else { -+ short_frame *s_pkt; -+ -+ size = sizeof(short_frame) + len + FCS_SIZE; -+ s_pkt = -+ (short_frame *) (send_info->frame - sizeof(short_frame)); -+ set_uih_hdr((void *)s_pkt, dlci, len, ts0710->initiator); -+ s_pkt->data[len] = crc_calc((__u8 *) s_pkt, SHORT_CRC_CHECK); -+ send_info->frame = ((__u8 *) s_pkt) - 1; -+ } -+ send_info->length = size; -+} -+ -+/* Multiplexer command packets functions */ -+ -+/* Turns on the ts0710 flow control */ -+ -+static int ts0710_fcon_msg(ts0710_con * ts0710, __u8 cr) -+{ -+ __u8 buf[30]; -+ mcc_short_frame *mcc_pkt; -+ short_frame *uih_pkt; -+ __u32 size; -+ -+ size = sizeof(short_frame) + sizeof(mcc_short_frame) + FCS_SIZE; -+ uih_pkt = (short_frame *) (buf + 1); -+ set_uih_hdr(uih_pkt, CTRL_CHAN, sizeof(mcc_short_frame), -+ ts0710->initiator); -+ uih_pkt->data[sizeof(mcc_short_frame)] = -+ crc_calc((__u8 *) uih_pkt, SHORT_CRC_CHECK); -+ mcc_pkt = (mcc_short_frame *) (uih_pkt->data); -+ -+ mcc_pkt->h.type.ea = EA; -+ mcc_pkt->h.type.cr = cr; -+ mcc_pkt->h.type.type = FCON; -+ mcc_pkt->h.length.ea = EA; -+ mcc_pkt->h.length.len = 0; -+ -+ return basic_write(ts0710, buf, size); -+} -+ -+/* Turns off the ts0710 flow control */ -+ -+static int ts0710_fcoff_msg(ts0710_con * ts0710, __u8 cr) -+{ -+ __u8 buf[30]; -+ mcc_short_frame *mcc_pkt; -+ short_frame *uih_pkt; -+ __u32 size; -+ -+ size = (sizeof(short_frame) + sizeof(mcc_short_frame) + FCS_SIZE); -+ uih_pkt = (short_frame *) (buf + 1); -+ set_uih_hdr(uih_pkt, CTRL_CHAN, sizeof(mcc_short_frame), -+ ts0710->initiator); -+ uih_pkt->data[sizeof(mcc_short_frame)] = -+ crc_calc((__u8 *) uih_pkt, SHORT_CRC_CHECK); -+ mcc_pkt = (mcc_short_frame *) (uih_pkt->data); -+ -+ mcc_pkt->h.type.ea = 1; -+ mcc_pkt->h.type.cr = cr; -+ mcc_pkt->h.type.type = FCOFF; -+ mcc_pkt->h.length.ea = 1; -+ mcc_pkt->h.length.len = 0; -+ -+ return basic_write(ts0710, buf, size); -+} -+ -+/* -+static int ts0710_rpn_msg(ts0710_con *ts0710, __u8 cr, __u8 dlci, __u8 req) -+{ -+ char buf[100]; -+ rpn_msg* rpn_pkt; -+ __u32 fsize; -+ __u32 psize; -+ -+ fsize = sizeof(rpn_msg); -+ -+ if (req) { -+ fsize -= sizeof(rpn_values); -+ } -+ -+ psize = (fsize - sizeof(short_frame) - FCS_SIZE); -+ -+ rpn_pkt = (rpn_msg *) buf; -+ -+ set_uih_hdr((short_frame *) rpn_pkt, CTRL_CHAN, psize, ts0710->initiator); -+ -+ rpn_pkt->fcs = crc_calc((__u8*) rpn_pkt, SHORT_CRC_CHECK); -+ -+ rpn_pkt->mcc_s_head.type.ea = EA; -+ rpn_pkt->mcc_s_head.type.cr = cr; -+ rpn_pkt->mcc_s_head.type.type = RPN; -+ rpn_pkt->mcc_s_head.length.ea = EA; -+ -+ rpn_pkt->dlci.ea = EA; -+ rpn_pkt->dlci.cr = 1; -+ rpn_pkt->dlci.d = dlci & 1; -+ rpn_pkt->dlci.server_chn = (dlci >> 1); -+ -+ if (req) { -+ rpn_pkt->mcc_s_head.length.len = 1; -+ rpn_pkt->rpn_val.bit_rate = rpn_pkt->fcs; -+ } else { -+ rpn_pkt->mcc_s_head.length.len = 8; -+ memcpy(&(rpn_pkt->rpn_val), &rpn_val, sizeof(rpn_values)); -+ } -+ return basic_write(ts0710, buf, fsize); -+} -+*/ -+/* -+static int ts0710_rls_msg(ts0710_con *ts0710, __u8 cr, __u8 dlci, __u8 err_code) -+{ -+ char buf[100]; -+ rls_msg *rls_pkt; -+ __u32 fsize; -+ __u32 psize; -+ -+ fsize = sizeof(rls_msg); -+ psize = fsize - sizeof(short_frame) - FCS_SIZE; -+ rls_pkt = (rls_msg *) buf; -+ -+ set_uih_hdr((short_frame *) rls_pkt, CTRL_CHAN, psize, ts0710->initiator); -+ rls_pkt->fcs = crc_calc((__u8*) rls_pkt, SHORT_CRC_CHECK); -+ -+ rls_pkt->mcc_s_head.type.ea = EA; -+ rls_pkt->mcc_s_head.type.cr = cr; -+ rls_pkt->mcc_s_head.type.type = RLS; -+ rls_pkt->mcc_s_head.length.ea = EA; -+ rls_pkt->mcc_s_head.length.len = 2; -+ -+ rls_pkt->dlci.ea = EA; -+ rls_pkt->dlci.cr = 1; -+ rls_pkt->dlci.d = dlci & 1; -+ rls_pkt->dlci.server_chn = dlci >> 1; -+ rls_pkt->error = err_code; -+ rls_pkt->res = 0; -+ -+ return basic_write(ts0710, buf, fsize); -+} -+*/ -+ -+/* Sends an PN-messages and sets the not negotiable parameters to their -+ default values in ts0710 */ -+ -+static int send_pn_msg(ts0710_con * ts0710, __u8 prior, __u32 frame_size, -+ __u8 credit_flow, __u8 credits, __u8 dlci, __u8 cr) -+{ -+ __u8 buf[30]; -+ pn_msg *pn_pkt; -+ __u32 size; -+ TS0710_DEBUG -+ ("send_pn_msg: DLCI 0x%02x, prior:0x%02x, frame_size:%d, credit_flow:%x, credits:%d, cr:%x\n", -+ dlci, prior, frame_size, credit_flow, credits, cr); -+ -+ size = sizeof(pn_msg); -+ pn_pkt = (pn_msg *) (buf + 1); -+ -+ set_uih_hdr((void *)pn_pkt, CTRL_CHAN, -+ size - (sizeof(short_frame) + FCS_SIZE), ts0710->initiator); -+ pn_pkt->fcs = crc_calc((__u8 *) pn_pkt, SHORT_CRC_CHECK); -+ -+ pn_pkt->mcc_s_head.type.ea = 1; -+ pn_pkt->mcc_s_head.type.cr = cr; -+ pn_pkt->mcc_s_head.type.type = PN; -+ pn_pkt->mcc_s_head.length.ea = 1; -+ pn_pkt->mcc_s_head.length.len = 8; -+ -+ pn_pkt->res1 = 0; -+ pn_pkt->res2 = 0; -+ pn_pkt->dlci = dlci; -+ pn_pkt->frame_type = 0; -+ pn_pkt->credit_flow = credit_flow; -+ pn_pkt->prior = prior; -+ pn_pkt->ack_timer = 0; -+ SET_PN_MSG_FRAME_SIZE(pn_pkt, frame_size); -+ pn_pkt->credits = credits; -+ pn_pkt->max_nbrof_retrans = 0; -+ -+ return basic_write(ts0710, buf, size); -+} -+ -+/* Send a Not supported command - command, which needs 3 bytes */ -+ -+static int send_nsc_msg(ts0710_con * ts0710, mcc_type cmd, __u8 cr) -+{ -+ __u8 buf[30]; -+ nsc_msg *nsc_pkt; -+ __u32 size; -+ -+ size = sizeof(nsc_msg); -+ nsc_pkt = (nsc_msg *) (buf + 1); -+ -+ set_uih_hdr((void *)nsc_pkt, CTRL_CHAN, -+ sizeof(nsc_msg) - sizeof(short_frame) - FCS_SIZE, -+ ts0710->initiator); -+ -+ nsc_pkt->fcs = crc_calc((__u8 *) nsc_pkt, SHORT_CRC_CHECK); -+ -+ nsc_pkt->mcc_s_head.type.ea = 1; -+ nsc_pkt->mcc_s_head.type.cr = cr; -+ nsc_pkt->mcc_s_head.type.type = NSC; -+ nsc_pkt->mcc_s_head.length.ea = 1; -+ nsc_pkt->mcc_s_head.length.len = 1; -+ -+ nsc_pkt->command_type.ea = 1; -+ nsc_pkt->command_type.cr = cmd.cr; -+ nsc_pkt->command_type.type = cmd.type; -+ -+ return basic_write(ts0710, buf, size); -+} -+ -+static int ts0710_msc_msg(ts0710_con * ts0710, __u8 value, __u8 cr, __u8 dlci) -+{ -+ __u8 buf[30]; -+ msc_msg *msc_pkt; -+ __u32 size; -+ -+ size = sizeof(msc_msg); -+ msc_pkt = (msc_msg *) (buf + 1); -+ -+ set_uih_hdr((void *)msc_pkt, CTRL_CHAN, -+ sizeof(msc_msg) - sizeof(short_frame) - FCS_SIZE, -+ ts0710->initiator); -+ -+ msc_pkt->fcs = crc_calc((__u8 *) msc_pkt, SHORT_CRC_CHECK); -+ -+ msc_pkt->mcc_s_head.type.ea = 1; -+ msc_pkt->mcc_s_head.type.cr = cr; -+ msc_pkt->mcc_s_head.type.type = MSC; -+ msc_pkt->mcc_s_head.length.ea = 1; -+ msc_pkt->mcc_s_head.length.len = 2; -+ -+ msc_pkt->dlci.ea = 1; -+ msc_pkt->dlci.cr = 1; -+ msc_pkt->dlci.d = dlci & 1; -+ msc_pkt->dlci.server_chn = (dlci >> 1) & 0x1f; -+ -+ msc_pkt->v24_sigs = value; -+ -+ return basic_write(ts0710, buf, size); -+} -+ -+static int ts0710_test_msg(ts0710_con * ts0710, __u8 * test_pattern, __u32 len, -+ __u8 cr, __u8 * f_buf /*Frame buf */ ) -+{ -+ __u32 size; -+ -+ if (len > SHORT_PAYLOAD_SIZE) { -+ long_frame *uih_pkt; -+ mcc_long_frame *mcc_pkt; -+ -+ size = -+ (sizeof(long_frame) + sizeof(mcc_long_frame) + len + -+ FCS_SIZE); -+ uih_pkt = (long_frame *) (f_buf + 1); -+ -+ set_uih_hdr((short_frame *) uih_pkt, CTRL_CHAN, len + -+ sizeof(mcc_long_frame), ts0710->initiator); -+ uih_pkt->data[GET_LONG_LENGTH(uih_pkt->h.length)] = -+ crc_calc((__u8 *) uih_pkt, LONG_CRC_CHECK); -+ mcc_pkt = (mcc_long_frame *) uih_pkt->data; -+ -+ mcc_pkt->h.type.ea = EA; -+ /* cr tells whether it is a commmand (1) or a response (0) */ -+ mcc_pkt->h.type.cr = cr; -+ mcc_pkt->h.type.type = TEST; -+ SET_LONG_LENGTH(mcc_pkt->h.length, len); -+ memcpy(mcc_pkt->value, test_pattern, len); -+ } else if (len > (SHORT_PAYLOAD_SIZE - sizeof(mcc_short_frame))) { -+ long_frame *uih_pkt; -+ mcc_short_frame *mcc_pkt; -+ -+ /* Create long uih packet and short mcc packet */ -+ size = -+ (sizeof(long_frame) + sizeof(mcc_short_frame) + len + -+ FCS_SIZE); -+ uih_pkt = (long_frame *) (f_buf + 1); -+ -+ set_uih_hdr((short_frame *) uih_pkt, CTRL_CHAN, -+ len + sizeof(mcc_short_frame), ts0710->initiator); -+ uih_pkt->data[GET_LONG_LENGTH(uih_pkt->h.length)] = -+ crc_calc((__u8 *) uih_pkt, LONG_CRC_CHECK); -+ mcc_pkt = (mcc_short_frame *) uih_pkt->data; -+ -+ mcc_pkt->h.type.ea = EA; -+ mcc_pkt->h.type.cr = cr; -+ mcc_pkt->h.type.type = TEST; -+ mcc_pkt->h.length.ea = EA; -+ mcc_pkt->h.length.len = len; -+ memcpy(mcc_pkt->value, test_pattern, len); -+ } else { -+ short_frame *uih_pkt; -+ mcc_short_frame *mcc_pkt; -+ -+ size = -+ (sizeof(short_frame) + sizeof(mcc_short_frame) + len + -+ FCS_SIZE); -+ uih_pkt = (short_frame *) (f_buf + 1); -+ -+ set_uih_hdr((void *)uih_pkt, CTRL_CHAN, len -+ + sizeof(mcc_short_frame), ts0710->initiator); -+ uih_pkt->data[uih_pkt->h.length.len] = -+ crc_calc((__u8 *) uih_pkt, SHORT_CRC_CHECK); -+ mcc_pkt = (mcc_short_frame *) uih_pkt->data; -+ -+ mcc_pkt->h.type.ea = EA; -+ mcc_pkt->h.type.cr = cr; -+ mcc_pkt->h.type.type = TEST; -+ mcc_pkt->h.length.ea = EA; -+ mcc_pkt->h.length.len = len; -+ memcpy(mcc_pkt->value, test_pattern, len); -+ -+ } -+ return basic_write(ts0710, f_buf, size); -+} -+ -+static void set_uih_hdr(short_frame * uih_pkt, __u8 dlci, __u32 len, __u8 cr) -+{ -+ uih_pkt->h.addr.ea = 1; -+ uih_pkt->h.addr.cr = cr; -+ uih_pkt->h.addr.d = dlci & 0x1; -+ uih_pkt->h.addr.server_chn = dlci >> 1; -+ uih_pkt->h.control = CLR_PF(UIH); -+ -+ if (len > SHORT_PAYLOAD_SIZE) { -+ SET_LONG_LENGTH(((long_frame *) uih_pkt)->h.length, len); -+ } else { -+ uih_pkt->h.length.ea = 1; -+ uih_pkt->h.length.len = len; -+ } -+} -+ -+/* Parses a multiplexer control channel packet */ -+ -+void process_mcc(__u8 * data, __u32 len, ts0710_con * ts0710, int longpkt) -+{ -+ __u8 *tbuf = NULL; -+ mcc_short_frame *mcc_short_pkt; -+ int j; -+ -+ if (longpkt) { -+ mcc_short_pkt = -+ (mcc_short_frame *) (((long_frame *) data)->data); -+ } else { -+ mcc_short_pkt = -+ (mcc_short_frame *) (((short_frame *) data)->data); -+ } -+ -+ switch (mcc_short_pkt->h.type.type) { -+ case TEST: -+ if (mcc_short_pkt->h.type.cr == MCC_RSP) { -+ TS0710_DEBUG("Received test command response\n"); -+ -+ if (ts0710->be_testing) { -+ if ((mcc_short_pkt->h.length.ea) == 0) { -+ mcc_long_frame *mcc_long_pkt; -+ mcc_long_pkt = -+ (mcc_long_frame *) mcc_short_pkt; -+ if (GET_LONG_LENGTH -+ (mcc_long_pkt->h.length) != -+ TEST_PATTERN_SIZE) { -+ ts0710->test_errs = -+ TEST_PATTERN_SIZE; -+ TS0710_DEBUG -+ ("Err: received test pattern is %d bytes long, not expected %d\n", -+ GET_LONG_LENGTH -+ (mcc_long_pkt->h.length), -+ TEST_PATTERN_SIZE); -+ } else { -+ ts0710->test_errs = 0; -+ for (j = 0; -+ j < TEST_PATTERN_SIZE; -+ j++) { -+ if (mcc_long_pkt-> -+ value[j] != -+ (j & 0xFF)) { -+ (ts0710-> -+ test_errs)++; -+ } -+ } -+ } -+ -+ } else { -+ -+#if TEST_PATTERN_SIZE < 128 -+ if (mcc_short_pkt->h.length.len != -+ TEST_PATTERN_SIZE) { -+#endif -+ -+ ts0710->test_errs = -+ TEST_PATTERN_SIZE; -+ TS0710_DEBUG -+ ("Err: received test pattern is %d bytes long, not expected %d\n", -+ mcc_short_pkt->h.length. -+ len, TEST_PATTERN_SIZE); -+ -+#if TEST_PATTERN_SIZE < 128 -+ } else { -+ ts0710->test_errs = 0; -+ for (j = 0; -+ j < TEST_PATTERN_SIZE; -+ j++) { -+ if (mcc_short_pkt-> -+ value[j] != -+ (j & 0xFF)) { -+ (ts0710-> -+ test_errs)++; -+ } -+ } -+ } -+#endif -+ -+ } -+ -+ ts0710->be_testing = 0; /* Clear the flag */ -+ wake_up_interruptible(&ts0710->test_wait); -+ } else { -+ TS0710_DEBUG -+ ("Err: shouldn't or late to get test cmd response\n"); -+ } -+ } else { -+ tbuf = (__u8 *) kmalloc(len + 32, GFP_ATOMIC); -+ if (!tbuf) { -+ break; -+ } -+ -+ if ((mcc_short_pkt->h.length.ea) == 0) { -+ mcc_long_frame *mcc_long_pkt; -+ mcc_long_pkt = (mcc_long_frame *) mcc_short_pkt; -+ ts0710_test_msg(ts0710, mcc_long_pkt->value, -+ GET_LONG_LENGTH(mcc_long_pkt->h. -+ length), -+ MCC_RSP, tbuf); -+ } else { -+ ts0710_test_msg(ts0710, mcc_short_pkt->value, -+ mcc_short_pkt->h.length.len, -+ MCC_RSP, tbuf); -+ } -+ -+ kfree(tbuf); -+ } -+ break; -+ -+ case FCON: /*Flow control on command */ -+ TS0710_PRINTK -+ ("MUX Received Flow control(all channels) on command\n"); -+ if (mcc_short_pkt->h.type.cr == MCC_CMD) { -+ ts0710->dlci[0].state = CONNECTED; -+ ts0710_fcon_msg(ts0710, MCC_RSP); -+ mux_sched_send(); -+ } -+ break; -+ -+ case FCOFF: /*Flow control off command */ -+ TS0710_PRINTK -+ ("MUX Received Flow control(all channels) off command\n"); -+ if (mcc_short_pkt->h.type.cr == MCC_CMD) { -+ for (j = 0; j < TS0710_MAX_CHN; j++) { -+ ts0710->dlci[j].state = FLOW_STOPPED; -+ } -+ ts0710_fcoff_msg(ts0710, MCC_RSP); -+ } -+ break; -+ -+ case MSC: /*Modem status command */ -+ { -+ __u8 dlci; -+ __u8 v24_sigs; -+ -+ dlci = (mcc_short_pkt->value[0]) >> 2; -+ v24_sigs = mcc_short_pkt->value[1]; -+ -+ if ((ts0710->dlci[dlci].state != CONNECTED) -+ && (ts0710->dlci[dlci].state != FLOW_STOPPED)) { -+ send_dm(ts0710, dlci); -+ break; -+ } -+ if (mcc_short_pkt->h.type.cr == MCC_CMD) { -+ TS0710_DEBUG("Received Modem status command\n"); -+ if (v24_sigs & 2) { -+ if (ts0710->dlci[dlci].state == -+ CONNECTED) { -+ TS0710_LOG -+ ("MUX Received Flow off on dlci %d\n", -+ dlci); -+ ts0710->dlci[dlci].state = -+ FLOW_STOPPED; -+ } -+ } else { -+ if (ts0710->dlci[dlci].state == -+ FLOW_STOPPED) { -+ ts0710->dlci[dlci].state = -+ CONNECTED; -+ TS0710_LOG -+ ("MUX Received Flow on on dlci %d\n", -+ dlci); -+ mux_sched_send(); -+ } -+ } -+ -+ ts0710_msc_msg(ts0710, v24_sigs, MCC_RSP, dlci); -+/* -+ if (!(ts0710->dlci[dlci].initiated) && !(ts0710->dlci[dlci].initiator)) { -+ ts0710_msc_msg(ts0710, EA | RTR | RTC | DV, MCC_CMD, dlci); -+ ts0710->dlci[dlci].initiated = 1; -+ } -+*/ -+ } else { -+ TS0710_DEBUG -+ ("Received Modem status response\n"); -+ -+ if (v24_sigs & 2) { -+ TS0710_DEBUG("Flow stop accepted\n"); -+ } -+ } -+ break; -+ } -+ -+ /* case RPN: *//*Remote port negotiation command */ -+ -+/* { -+ __u8 dlci; -+ -+ dlci = (mcc_short_pkt->value[0]) >> 2; -+ -+ if (mcc_short_pkt->h.type.cr == MCC_CMD) { -+ if (mcc_short_pkt->h.length.len == 1) { -+ TS0710_DEBUG("Received Remote port negotiation command\n"); -+ ts0710_rpn_msg(ts0710, MCC_RSP, dlci, 0); -+ } else { -+*/ -+ /* Accept the other sides settings (accept all for now) */ -+/* TS0710_DEBUG("Received Remote port negotiation respons\n"); -+ memcpy(&rpn_val, &mcc_short_pkt->value[1], 8); -+ ts0710_rpn_msg(ts0710, MCC_RSP, dlci, 0); -+*/ -+ /* Zero the parametermask after response */ -+/* memset(&rpn_val.pm, 0, 2); -+ } -+ } -+ break; -+ } -+*/ -+/* -+ case RLS: *//*Remote line status */ -+/* { -+ __u8 dlci; -+ __u8 err_code; -+ -+ TS0710_DEBUG("Received Remote line status\n"); -+ if (mcc_short_pkt->h.type.cr == MCC_CMD) { -+ dlci = mcc_short_pkt->value[0] >> 2; -+ err_code = mcc_short_pkt->value[1]; -+ -+ ts0710_rls_msg(ts0710, MCC_RSP, dlci, err_code); -+ } -+ break; -+ } -+*/ -+ case PN: /*DLC parameter negotiation */ -+ { -+ __u8 dlci; -+ __u16 frame_size; -+ pn_msg *pn_pkt; -+ -+ pn_pkt = (pn_msg *) data; -+ dlci = pn_pkt->dlci; -+ frame_size = GET_PN_MSG_FRAME_SIZE(pn_pkt); -+ TS0710_DEBUG -+ ("Received DLC parameter negotiation, PN\n"); -+ if (pn_pkt->mcc_s_head.type.cr == MCC_CMD) { -+ TS0710_DEBUG("received PN command with:\n"); -+ TS0710_DEBUG("Frame size:%d\n", frame_size); -+ -+ frame_size = -+ min(frame_size, ts0710->dlci[dlci].mtu); -+ send_pn_msg(ts0710, pn_pkt->prior, frame_size, -+ 0, 0, dlci, MCC_RSP); -+ ts0710->dlci[dlci].mtu = frame_size; -+ TS0710_DEBUG("process_mcc : mtu set to %d\n", -+ ts0710->dlci[dlci].mtu); -+ } else { -+ TS0710_DEBUG("received PN response with:\n"); -+ TS0710_DEBUG("Frame size:%d\n", frame_size); -+ -+ frame_size = -+ min(frame_size, ts0710->dlci[dlci].mtu); -+ ts0710->dlci[dlci].mtu = frame_size; -+ -+ TS0710_DEBUG -+ ("process_mcc : mtu set on dlci:%d to %d\n", -+ dlci, ts0710->dlci[dlci].mtu); -+ -+ if (ts0710->dlci[dlci].state == NEGOTIATING) { -+ ts0710->dlci[dlci].state = CONNECTING; -+ wake_up_interruptible(&ts0710-> -+ dlci[dlci]. -+ open_wait); -+ } -+ } -+ break; -+ } -+ -+ case NSC: /*Non supported command resonse */ -+ TS0710_LOG("MUX Received Non supported command response\n"); -+ break; -+ -+ default: /*Non supported command received */ -+ TS0710_LOG("MUX Received a non supported command\n"); -+ send_nsc_msg(ts0710, mcc_short_pkt->h.type, MCC_RSP); -+ break; -+ } -+} -+ -+static mux_recv_packet *get_mux_recv_packet(__u32 size) -+{ -+ mux_recv_packet *recv_packet; -+ -+ TS0710_DEBUG("Enter into get_mux_recv_packet"); -+ -+ recv_packet = -+ (mux_recv_packet *) kmalloc(sizeof(mux_recv_packet), GFP_ATOMIC); -+ if (!recv_packet) { -+ return 0; -+ } -+ -+ recv_packet->data = (__u8 *) kmalloc(size, GFP_ATOMIC); -+ if (!(recv_packet->data)) { -+ kfree(recv_packet); -+ return 0; -+ } -+ recv_packet->length = 0; -+ recv_packet->next = 0; -+ return recv_packet; -+} -+ -+static void free_mux_recv_packet(mux_recv_packet * recv_packet) -+{ -+ TS0710_DEBUG("Enter into free_mux_recv_packet"); -+ -+ if (!recv_packet) { -+ return; -+ } -+ -+ if (recv_packet->data) { -+ kfree(recv_packet->data); -+ } -+ kfree(recv_packet); -+} -+ -+static void free_mux_recv_struct(mux_recv_struct * recv_info) -+{ -+ mux_recv_packet *recv_packet1, *recv_packet2; -+ -+ if (!recv_info) { -+ return; -+ } -+ -+ recv_packet1 = recv_info->mux_packet; -+ while (recv_packet1) { -+ recv_packet2 = recv_packet1->next; -+ free_mux_recv_packet(recv_packet1); -+ recv_packet1 = recv_packet2; -+ } -+ -+ kfree(recv_info); -+} -+ -+static inline void add_post_recv_queue(mux_recv_struct ** head, -+ mux_recv_struct * new_item) -+{ -+ new_item->next = *head; -+ *head = new_item; -+} -+ -+static void ts0710_flow_on(__u8 dlci, ts0710_con * ts0710) -+{ -+ int i; -+ __u8 cmdtty; -+ __u8 datatty; -+ struct tty_struct *tty; -+ mux_recv_struct *recv_info; -+ -+ if ((ts0710->dlci[0].state != CONNECTED) -+ && (ts0710->dlci[0].state != FLOW_STOPPED)) { -+ return; -+ } else if ((ts0710->dlci[dlci].state != CONNECTED) -+ && (ts0710->dlci[dlci].state != FLOW_STOPPED)) { -+ return; -+ } -+ -+ if (!(ts0710->dlci[dlci].flow_control)) { -+ return; -+ } -+ -+ cmdtty = dlci2tty[dlci].cmdtty; -+ datatty = dlci2tty[dlci].datatty; -+ -+ if (cmdtty != datatty) { -+ /* Check AT cmd tty */ -+ tty = mux_table[cmdtty]; -+ if (mux_tty[cmdtty] && tty) { -+ if (test_bit(TTY_THROTTLED, &tty->flags)) { -+ return; -+ } -+ } -+ recv_info = mux_recv_info[cmdtty]; -+ if (mux_recv_info_flags[cmdtty] && recv_info) { -+ if (recv_info->total) { -+ return; -+ } -+ } -+ -+ /* Check data tty */ -+ tty = mux_table[datatty]; -+ if (mux_tty[datatty] && tty) { -+ if (test_bit(TTY_THROTTLED, &tty->flags)) { -+ return; -+ } -+ } -+ recv_info = mux_recv_info[datatty]; -+ if (mux_recv_info_flags[datatty] && recv_info) { -+ if (recv_info->total) { -+ return; -+ } -+ } -+ } -+ -+ for (i = 0; i < 3; i++) { -+ if (ts0710_msc_msg(ts0710, EA | RTC | RTR | DV, MCC_CMD, dlci) < -+ 0) { -+ continue; -+ } else { -+ TS0710_LOG("MUX send Flow on on dlci %d\n", dlci); -+ ts0710->dlci[dlci].flow_control = 0; -+ break; -+ } -+ } -+} -+ -+static void ts0710_flow_off(struct tty_struct *tty, __u8 dlci, -+ ts0710_con * ts0710) -+{ -+ int i; -+ -+ if (test_and_set_bit(TTY_THROTTLED, &tty->flags)) { -+ return; -+ } -+ -+ if ((ts0710->dlci[0].state != CONNECTED) -+ && (ts0710->dlci[0].state != FLOW_STOPPED)) { -+ return; -+ } else if ((ts0710->dlci[dlci].state != CONNECTED) -+ && (ts0710->dlci[dlci].state != FLOW_STOPPED)) { -+ return; -+ } -+ -+ if (ts0710->dlci[dlci].flow_control) { -+ return; -+ } -+ -+ for (i = 0; i < 3; i++) { -+ if (ts0710_msc_msg -+ (ts0710, EA | FC | RTC | RTR | DV, MCC_CMD, dlci) < 0) { -+ continue; -+ } else { -+ TS0710_LOG("MUX send Flow off on dlci %d\n", dlci); -+ ts0710->dlci[dlci].flow_control = 1; -+ break; -+ } -+ } -+} -+ -+int ts0710_recv_data(ts0710_con * ts0710, char *data, int len) -+{ -+ short_frame *short_pkt; -+ long_frame *long_pkt; -+ __u8 *uih_data_start; -+ __u32 uih_len; -+ __u8 dlci; -+ __u8 be_connecting; -+#ifdef TS0710DEBUG -+ unsigned long t; -+#endif -+ -+ short_pkt = (short_frame *) data; -+ -+ dlci = short_pkt->h.addr.server_chn << 1 | short_pkt->h.addr.d; -+ switch (CLR_PF(short_pkt->h.control)) { -+ case SABM: -+ TS0710_DEBUG("SABM-packet received\n"); -+ -+/*For BP UART problem -+ if( crc_check((__u8*) short_pkt, SHORT_CRC_CHECK, short_pkt->data[0]) ) -+ break; -+*/ -+ -+ if (!dlci) { -+ TS0710_DEBUG("server channel == 0\n"); -+ ts0710->dlci[0].state = CONNECTED; -+ -+ TS0710_DEBUG("sending back UA - control channel\n"); -+ send_ua(ts0710, dlci); -+ wake_up_interruptible(&ts0710->dlci[0].open_wait); -+ -+ } else if (valid_dlci(dlci)) { -+ -+ TS0710_DEBUG("Incomming connect on channel %d\n", dlci); -+ -+ TS0710_DEBUG("sending UA, dlci %d\n", dlci); -+ send_ua(ts0710, dlci); -+ -+ ts0710->dlci[dlci].state = CONNECTED; -+ wake_up_interruptible(&ts0710->dlci[dlci].open_wait); -+ -+ } else { -+ TS0710_DEBUG("invalid dlci %d, sending DM\n", dlci); -+ send_dm(ts0710, dlci); -+ } -+ -+ break; -+ -+ case UA: -+ TS0710_DEBUG("UA packet received\n"); -+ -+/*For BP UART problem -+ if( crc_check((__u8*) short_pkt, SHORT_CRC_CHECK, short_pkt->data[0]) ) -+ break; -+*/ -+ -+ if (!dlci) { -+ TS0710_DEBUG("server channel == 0\n"); -+ -+ if (ts0710->dlci[0].state == CONNECTING) { -+ ts0710->dlci[0].state = CONNECTED; -+ wake_up_interruptible(&ts0710->dlci[0]. -+ open_wait); -+ } else if (ts0710->dlci[0].state == DISCONNECTING) { -+ ts0710_upon_disconnect(); -+ } else { -+ TS0710_DEBUG -+ (" Something wrong receiving UA packet\n"); -+ } -+ } else if (valid_dlci(dlci)) { -+ TS0710_DEBUG("Incomming UA on channel %d\n", dlci); -+ -+ if (ts0710->dlci[dlci].state == CONNECTING) { -+ ts0710->dlci[dlci].state = CONNECTED; -+ wake_up_interruptible(&ts0710->dlci[dlci]. -+ open_wait); -+ } else if (ts0710->dlci[dlci].state == DISCONNECTING) { -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ wake_up_interruptible(&ts0710->dlci[dlci]. -+ open_wait); -+ wake_up_interruptible(&ts0710->dlci[dlci]. -+ close_wait); -+ ts0710_reset_dlci(dlci); -+ } else { -+ TS0710_DEBUG -+ (" Something wrong receiving UA packet\n"); -+ } -+ } else { -+ TS0710_DEBUG("invalid dlci %d\n", dlci); -+ } -+ -+ break; -+ -+ case DM: -+ TS0710_DEBUG("DM packet received\n"); -+ -+/*For BP UART problem -+ if( crc_check((__u8*) short_pkt, SHORT_CRC_CHECK, short_pkt->data[0]) ) -+ break; -+*/ -+ -+ if (!dlci) { -+ TS0710_DEBUG("server channel == 0\n"); -+ -+ if (ts0710->dlci[0].state == CONNECTING) { -+ be_connecting = 1; -+ } else { -+ be_connecting = 0; -+ } -+ ts0710_upon_disconnect(); -+ if (be_connecting) { -+ ts0710->dlci[0].state = REJECTED; -+ } -+ } else if (valid_dlci(dlci)) { -+ TS0710_DEBUG("Incomming DM on channel %d\n", dlci); -+ -+ if (ts0710->dlci[dlci].state == CONNECTING) { -+ ts0710->dlci[dlci].state = REJECTED; -+ } else { -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ } -+ wake_up_interruptible(&ts0710->dlci[dlci].open_wait); -+ wake_up_interruptible(&ts0710->dlci[dlci].close_wait); -+ ts0710_reset_dlci(dlci); -+ } else { -+ TS0710_DEBUG("invalid dlci %d\n", dlci); -+ } -+ -+ break; -+ -+ case DISC: -+ TS0710_DEBUG("DISC packet received\n"); -+ -+/*For BP UART problem -+ if( crc_check((__u8*) short_pkt, SHORT_CRC_CHECK, short_pkt->data[0]) ) -+ break; -+*/ -+ -+ if (!dlci) { -+ TS0710_DEBUG("server channel == 0\n"); -+ -+ send_ua(ts0710, dlci); -+ TS0710_DEBUG("DISC, sending back UA\n"); -+ -+ ts0710_upon_disconnect(); -+ } else if (valid_dlci(dlci)) { -+ TS0710_DEBUG("Incomming DISC on channel %d\n", dlci); -+ -+ send_ua(ts0710, dlci); -+ TS0710_DEBUG("DISC, sending back UA\n"); -+ -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ wake_up_interruptible(&ts0710->dlci[dlci].open_wait); -+ wake_up_interruptible(&ts0710->dlci[dlci].close_wait); -+ ts0710_reset_dlci(dlci); -+ } else { -+ TS0710_DEBUG("invalid dlci %d\n", dlci); -+ } -+ -+ break; -+ -+ case UIH: -+ TS0710_DEBUG("UIH packet received\n"); -+ -+ if ((dlci >= TS0710_MAX_CHN)) { -+ TS0710_DEBUG("invalid dlci %d\n", dlci); -+ send_dm(ts0710, dlci); -+ break; -+ } -+ -+ if (GET_PF(short_pkt->h.control)) { -+ TS0710_LOG -+ ("MUX Error %s: UIH packet with P/F set, discard it!\n", -+ __FUNCTION__); -+ break; -+ } -+ -+ if ((ts0710->dlci[dlci].state != CONNECTED) -+ && (ts0710->dlci[dlci].state != FLOW_STOPPED)) { -+ TS0710_LOG -+ ("MUX Error %s: DLCI %d not connected, discard it!\n", -+ __FUNCTION__, dlci); -+ send_dm(ts0710, dlci); -+ break; -+ } -+ -+ if ((short_pkt->h.length.ea) == 0) { -+ TS0710_DEBUG("Long UIH packet received\n"); -+ long_pkt = (long_frame *) data; -+ uih_len = GET_LONG_LENGTH(long_pkt->h.length); -+ uih_data_start = long_pkt->h.data; -+ TS0710_DEBUG("long packet length %d\n", uih_len); -+ -+/*For BP UART problem -+ if (crc_check(data, LONG_CRC_CHECK, *(uih_data_start + uih_len))) -+ break; -+*/ -+ } else { -+ TS0710_DEBUG("Short UIH pkt received\n"); -+ uih_len = short_pkt->h.length.len; -+ uih_data_start = short_pkt->data; -+ -+/*For BP UART problem -+ if (crc_check(data, SHORT_CRC_CHECK, *(uih_data_start + uih_len))) -+ break; -+*/ -+ } -+ -+ if (dlci == 0) { -+ TS0710_DEBUG("UIH on serv_channel 0\n"); -+ process_mcc(data, len, ts0710, -+ !(short_pkt->h.length.ea)); -+ } else if (valid_dlci(dlci)) { -+ /* do tty dispatch */ -+ __u8 tag; -+ __u8 tty_idx; -+ struct tty_struct *tty; -+ __u8 queue_data; -+ __u8 post_recv; -+ __u8 flow_control; -+ mux_recv_struct *recv_info; -+ int recv_room; -+ mux_recv_packet *recv_packet, *recv_packet2; -+ -+ TS0710_DEBUG("UIH on channel %d\n", dlci); -+ -+ if (uih_len > ts0710->dlci[dlci].mtu) { -+ TS0710_PRINTK -+ ("MUX Error: DLCI:%d, uih_len:%d is bigger than mtu:%d, discard data!\n", -+ dlci, uih_len, ts0710->dlci[dlci].mtu); -+ break; -+ } -+ -+ tag = *uih_data_start; -+ uih_data_start++; -+ uih_len--; -+ -+ if (!uih_len) { -+ break; -+ } -+ -+ switch (tag) { -+ case CMDTAG: -+ tty_idx = dlci2tty[dlci].cmdtty; -+ TS0710_DEBUG("CMDTAG on DLCI:%d, /dev/mux%d\n", -+ dlci, tty_idx); -+ TS0710_DEBUGSTR(uih_data_start, uih_len); -+ if (!(iscmdtty[tty_idx])) { -+ TS0710_PRINTK -+ ("MUX Error: %s: Wrong CMDTAG on DLCI:%d, /dev/mux%d\n", -+ __FUNCTION__, dlci, tty_idx); -+ } -+ break; -+ case DATATAG: -+ default: -+ tty_idx = dlci2tty[dlci].datatty; -+ TS0710_DEBUG -+ ("NON-CMDTAG on DLCI:%d, /dev/mux%d\n", -+ dlci, tty_idx); -+ if (iscmdtty[tty_idx]) { -+ TS0710_PRINTK -+ ("MUX Error: %s: Wrong NON-CMDTAG on DLCI:%d, /dev/mux%d\n", -+ __FUNCTION__, dlci, tty_idx); -+ } -+ break; -+ } -+ tty = mux_table[tty_idx]; -+ if ((!mux_tty[tty_idx]) || (!tty)) { -+ TS0710_PRINTK -+ ("MUX: No application waiting for, discard it! /dev/mux%d\n", -+ tty_idx); -+ } else { /* Begin processing received data */ -+ if ((!mux_recv_info_flags[tty_idx]) -+ || (!mux_recv_info[tty_idx])) { -+ TS0710_PRINTK -+ ("MUX Error: No mux_recv_info, discard it! /dev/mux%d\n", -+ tty_idx); -+ break; -+ } -+ -+ recv_info = mux_recv_info[tty_idx]; -+ if (recv_info->total > 8192) { -+ TS0710_PRINTK -+ ("MUX : discard data for tty_idx:%d, recv_info->total > 8192 \n", -+ tty_idx); -+ break; -+ } -+ -+ queue_data = 0; -+ post_recv = 0; -+ flow_control = 0; -+ recv_room = 65535; -+ if (tty->receive_room) -+ recv_room = tty->receive_room; -+ -+ if (test_bit(TTY_THROTTLED, &tty->flags)) { -+ queue_data = 1; -+ } else { -+ if (test_bit -+ (TTY_DONT_FLIP, &tty->flags)) { -+ queue_data = 1; -+ post_recv = 1; -+ } else if (recv_info->total) { -+ queue_data = 1; -+ post_recv = 1; -+ } else if (recv_room < uih_len) { -+ queue_data = 1; -+ flow_control = 1; -+ } -+ -+ if ((recv_room - -+ (uih_len + recv_info->total)) < -+ ts0710->dlci[dlci].mtu) { -+ flow_control = 1; -+ } -+ } -+ -+ if (!queue_data) { -+ /* Put received data into read buffer of tty */ -+ TS0710_DEBUG -+ ("Put received data into read buffer of /dev/mux%d", -+ tty_idx); -+ -+#ifdef TS0710DEBUG -+ t = jiffies; -+#endif -+ -+ (tty->ldisc.receive_buf) (tty, -+ uih_data_start, -+ NULL, -+ uih_len); -+ -+#ifdef TS0710DEBUG -+ TS0710_DEBUG -+ ("tty->ldisc.receive_buf take ticks: %lu", -+ (jiffies - t)); -+#endif -+ -+ } else { /* Queue data */ -+ -+ TS0710_DEBUG -+ ("Put received data into recv queue of /dev/mux%d", -+ tty_idx); -+ if (recv_info->total) { -+ /* recv_info is already linked into mux_recv_queue */ -+ -+ recv_packet = -+ get_mux_recv_packet -+ (uih_len); -+ if (!recv_packet) { -+ TS0710_PRINTK -+ ("MUX %s: no memory\n", -+ __FUNCTION__); -+ break; -+ } -+ -+ memcpy(recv_packet->data, -+ uih_data_start, uih_len); -+ recv_packet->length = uih_len; -+ recv_info->total += uih_len; -+ recv_packet->next = NULL; -+ -+ if (!(recv_info->mux_packet)) { -+ recv_info->mux_packet = -+ recv_packet; -+ } else { -+ recv_packet2 = -+ recv_info-> -+ mux_packet; -+ while (recv_packet2-> -+ next) { -+ recv_packet2 = -+ recv_packet2-> -+ next; -+ } -+ recv_packet2->next = -+ recv_packet; -+ } /* End if( !(recv_info->mux_packet) ) */ -+ } else { /* recv_info->total == 0 */ -+ if (uih_len > -+ TS0710MUX_RECV_BUF_SIZE) { -+ TS0710_PRINTK -+ ("MUX Error: tty_idx:%d, uih_len == %d is too big\n", -+ tty_idx, uih_len); -+ uih_len = -+ TS0710MUX_RECV_BUF_SIZE; -+ } -+ memcpy(recv_info->data, -+ uih_data_start, uih_len); -+ recv_info->length = uih_len; -+ recv_info->total = uih_len; -+ -+ add_post_recv_queue -+ (&mux_recv_queue, -+ recv_info); -+ } /* End recv_info->total == 0 */ -+ } /* End Queue data */ -+ -+ if (flow_control) { -+ /* Do something for flow control */ -+ ts0710_flow_off(tty, dlci, ts0710); -+ } -+ -+ if (tty_idx == -+ dlci2tty[TS0710MUX_GPRS1_DLCI].datatty) { -+ if (add_count -+ (TS0710MUX_GPRS1_RECV_COUNT_IDX, -+ uih_len) < 0) { -+ post_recv_count_flag = 1; -+ post_recv = 1; -+ mux_data_count2 -+ [TS0710MUX_GPRS1_RECV_COUNT_IDX] -+ += uih_len; -+ } -+ } else if (tty_idx == -+ dlci2tty[TS0710MUX_GPRS2_DLCI]. -+ datatty) { -+ if (add_count -+ (TS0710MUX_GPRS2_RECV_COUNT_IDX, -+ uih_len) < 0) { -+ post_recv_count_flag = 1; -+ post_recv = 1; -+ mux_data_count2 -+ [TS0710MUX_GPRS2_RECV_COUNT_IDX] -+ += uih_len; -+ } -+ } -+ -+ if (post_recv) -+ schedule_work(&post_recv_tqueue); -+ } /* End processing received data */ -+ } else { -+ TS0710_DEBUG("invalid dlci %d\n", dlci); -+ } -+ -+ break; -+ -+ default: -+ TS0710_DEBUG("illegal packet\n"); -+ break; -+ } -+ return 0; -+} -+ -+/* -+int ts0710_send_data(ts0710_con *ts0710, __u8 dlci, __u8 *data, __u32 count) -+{ -+ __u32 c, total = 0; -+ __u8 tag, first; -+ -+ if( ts0710->dlci[0].state == FLOW_STOPPED ){ -+ TS0710_DEBUG("Flow stopped on all channels, returning zero\n"); -+*/ -+/* -+ return -EFLOWSTOPPED; -+ } else if( ts0710->dlci[dlci].state == FLOW_STOPPED ){ -+ TS0710_DEBUG("Flow stopped, returning zero\n"); -+*/ -+/* -+ return -EFLOWSTOPPED; -+ } else if( ts0710->dlci[dlci].state == CONNECTED ){ -+ -+ TS0710_DEBUG("trying to send %d bytes\n", count); -+ tag = *data; -+ first = 1; -+*/ -+ /* The first byte is always a Cmd/Data tag */ -+/* -+ while( count > 1 ){ -+ -+ c = min(count, ts0710->dlci[dlci].mtu); -+ if( queue_uih(data, c, ts0710, dlci) <= 0 ) { -+ break; -+ } -+ -+ total += (c - 1); -+ data += (c - 1); -+ *data = tag; -+ count -= (c - 1); -+ -+ if( first ) { -+ first = 0; -+ total++; -+ } -+ } -+ TS0710_DEBUG("sent %d bytes\n", total); -+ return total; -+ } else { -+ TS0710_DEBUG("DLCI %d not connected\n", dlci); -+ return -EDISCONNECTED; -+ } -+} -+*/ -+ -+/* Close ts0710 channel */ -+static void ts0710_close_channel(__u8 dlci) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int try; -+ unsigned long t; -+ -+ TS0710_DEBUG("ts0710_disc_command on channel %d\n", dlci); -+ -+ if ((ts0710->dlci[dlci].state == DISCONNECTED) -+ || (ts0710->dlci[dlci].state == REJECTED)) { -+ return; -+ } else if (ts0710->dlci[dlci].state == DISCONNECTING) { -+ /* Reentry */ -+ return; -+ } else { -+ ts0710->dlci[dlci].state = DISCONNECTING; -+ try = 3; -+ while (try--) { -+ t = jiffies; -+ send_disc(ts0710, dlci); -+ interruptible_sleep_on_timeout(&ts0710->dlci[dlci]. -+ close_wait, -+ TS0710MUX_TIME_OUT); -+ if (ts0710->dlci[dlci].state == DISCONNECTED) { -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI %d Send DISC got signal!\n", -+ dlci); -+ break; -+ } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI %d Send DISC timeout!\n", dlci); -+ continue; -+ } -+ } -+ -+ if (ts0710->dlci[dlci].state != DISCONNECTED) { -+ if (dlci == 0) { /* Control Channel */ -+ ts0710_upon_disconnect(); -+ } else { /* Other Channel */ -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ wake_up_interruptible(&ts0710->dlci[dlci]. -+ close_wait); -+ ts0710_reset_dlci(dlci); -+ } -+ } -+ } -+} -+ -+int ts0710_open_channel(__u8 dlci) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int try; -+ int retval; -+ unsigned long t; -+ -+ retval = -ENODEV; -+ if (dlci == 0) { // control channel -+ if ((ts0710->dlci[0].state == CONNECTED) -+ || (ts0710->dlci[0].state == FLOW_STOPPED)) { -+ return 0; -+ } else if (ts0710->dlci[0].state == CONNECTING) { -+ /* Reentry */ -+ TS0710_PRINTK -+ ("MUX DLCI: 0, reentry to open DLCI 0, pid: %d, %s !\n", -+ current->pid, current->comm); -+ try = 11; -+ while (try--) { -+ t = jiffies; -+ interruptible_sleep_on_timeout(&ts0710->dlci[0]. -+ open_wait, -+ TS0710MUX_TIME_OUT); -+ if ((ts0710->dlci[0].state == CONNECTED) -+ || (ts0710->dlci[0].state == -+ FLOW_STOPPED)) { -+ retval = 0; -+ break; -+ } else if (ts0710->dlci[0].state == REJECTED) { -+ retval = -EREJECTED; -+ break; -+ } else if (ts0710->dlci[0].state == -+ DISCONNECTED) { -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Wait for connecting got signal!\n", -+ dlci); -+ retval = -EAGAIN; -+ break; -+ } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Wait for connecting timeout!\n", -+ dlci); -+ continue; -+ } else if (ts0710->dlci[0].state == CONNECTING) { -+ continue; -+ } -+ } -+ -+ if (ts0710->dlci[0].state == CONNECTING) { -+ ts0710->dlci[0].state = DISCONNECTED; -+ } -+ } else if ((ts0710->dlci[0].state != DISCONNECTED) -+ && (ts0710->dlci[0].state != REJECTED)) { -+ TS0710_PRINTK("MUX DLCI:%d state is invalid!\n", dlci); -+ return retval; -+ } else { -+ ts0710->initiator = 1; -+ ts0710->dlci[0].state = CONNECTING; -+ ts0710->dlci[0].initiator = 1; -+ try = 10; -+ while (try--) { -+ t = jiffies; -+ send_sabm(ts0710, 0); -+ interruptible_sleep_on_timeout(&ts0710->dlci[0]. -+ open_wait, -+ TS0710MUX_TIME_OUT); -+ if ((ts0710->dlci[0].state == CONNECTED) -+ || (ts0710->dlci[0].state == -+ FLOW_STOPPED)) { -+ retval = 0; -+ break; -+ } else if (ts0710->dlci[0].state == REJECTED) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM got rejected!\n", -+ dlci); -+ retval = -EREJECTED; -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM got signal!\n", -+ dlci); -+ retval = -EAGAIN; -+ break; -+ } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM timeout!\n", -+ dlci); -+ continue; -+ } -+ } -+ -+ if (ts0710->dlci[0].state == CONNECTING) { -+ ts0710->dlci[0].state = DISCONNECTED; -+ } -+ wake_up_interruptible(&ts0710->dlci[0].open_wait); -+ } -+ } else { // other channel -+ if ((ts0710->dlci[0].state != CONNECTED) -+ && (ts0710->dlci[0].state != FLOW_STOPPED)) { -+ return retval; -+ } else if ((ts0710->dlci[dlci].state == CONNECTED) -+ || (ts0710->dlci[dlci].state == FLOW_STOPPED)) { -+ return 0; -+ } else if ((ts0710->dlci[dlci].state == NEGOTIATING) -+ || (ts0710->dlci[dlci].state == CONNECTING)) { -+ /* Reentry */ -+ try = 8; -+ while (try--) { -+ t = jiffies; -+ interruptible_sleep_on_timeout(&ts0710-> -+ dlci[dlci]. -+ open_wait, -+ TS0710MUX_TIME_OUT); -+ if ((ts0710->dlci[dlci].state == CONNECTED) -+ || (ts0710->dlci[dlci].state == -+ FLOW_STOPPED)) { -+ retval = 0; -+ break; -+ } else if (ts0710->dlci[dlci].state == REJECTED) { -+ retval = -EREJECTED; -+ break; -+ } else if (ts0710->dlci[dlci].state == -+ DISCONNECTED) { -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Wait for connecting got signal!\n", -+ dlci); -+ retval = -EAGAIN; -+ break; -+ } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Wait for connecting timeout!\n", -+ dlci); -+ continue; -+ } else -+ if ((ts0710->dlci[dlci].state == -+ NEGOTIATING) -+ || (ts0710->dlci[dlci].state == -+ CONNECTING)) { -+ continue; -+ } -+ } -+ -+ if ((ts0710->dlci[dlci].state == NEGOTIATING) -+ || (ts0710->dlci[dlci].state == CONNECTING)) { -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ } -+ } else if ((ts0710->dlci[dlci].state != DISCONNECTED) -+ && (ts0710->dlci[dlci].state != REJECTED)) { -+ TS0710_PRINTK("MUX DLCI:%d state is invalid!\n", dlci); -+ return retval; -+ } else { -+ ts0710->dlci[dlci].state = NEGOTIATING; -+ ts0710->dlci[dlci].initiator = 1; -+ try = 3; -+ while (try--) { -+ t = jiffies; -+ send_pn_msg(ts0710, 7, ts0710->dlci[dlci].mtu, -+ 0, 0, dlci, 1); -+ interruptible_sleep_on_timeout(&ts0710-> -+ dlci[dlci]. -+ open_wait, -+ TS0710MUX_TIME_OUT); -+ if (ts0710->dlci[dlci].state == CONNECTING) { -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send pn_msg got signal!\n", -+ dlci); -+ retval = -EAGAIN; -+ break; -+ } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send pn_msg timeout!\n", -+ dlci); -+ continue; -+ } -+ } -+ -+ if (ts0710->dlci[dlci].state == CONNECTING) { -+ try = 3; -+ while (try--) { -+ t = jiffies; -+ send_sabm(ts0710, dlci); -+ interruptible_sleep_on_timeout(&ts0710-> -+ dlci -+ [dlci]. -+ open_wait, -+ TS0710MUX_TIME_OUT); -+ if ((ts0710->dlci[dlci].state == -+ CONNECTED) -+ || (ts0710->dlci[dlci].state == -+ FLOW_STOPPED)) { -+ retval = 0; -+ break; -+ } else if (ts0710->dlci[dlci].state == -+ REJECTED) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM got rejected!\n", -+ dlci); -+ retval = -EREJECTED; -+ break; -+ } else if (signal_pending(current)) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM got signal!\n", -+ dlci); -+ retval = -EAGAIN; -+ break; -+ } else if ((jiffies - t) >= -+ TS0710MUX_TIME_OUT) { -+ TS0710_PRINTK -+ ("MUX DLCI:%d Send SABM timeout!\n", -+ dlci); -+ continue; -+ } -+ } -+ } -+ -+ if ((ts0710->dlci[dlci].state == NEGOTIATING) -+ || (ts0710->dlci[dlci].state == CONNECTING)) { -+ ts0710->dlci[dlci].state = DISCONNECTED; -+ } -+ wake_up_interruptible(&ts0710->dlci[dlci].open_wait); -+ } -+ } -+ return retval; -+} -+ -+static int ts0710_exec_test_cmd(void) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ __u8 *f_buf; /* Frame buffer */ -+ __u8 *d_buf; /* Data buffer */ -+ int retval = -EFAULT; -+ int j; -+ unsigned long t; -+ -+ if (ts0710->be_testing) { -+ /* Reentry */ -+ t = jiffies; -+ interruptible_sleep_on_timeout(&ts0710->test_wait, -+ 3 * TS0710MUX_TIME_OUT); -+ if (ts0710->be_testing == 0) { -+ if (ts0710->test_errs == 0) { -+ retval = 0; -+ } else { -+ retval = -EFAULT; -+ } -+ } else if (signal_pending(current)) { -+ TS0710_DEBUG -+ ("Wait for Test_cmd response got signal!\n"); -+ retval = -EAGAIN; -+ } else if ((jiffies - t) >= 3 * TS0710MUX_TIME_OUT) { -+ TS0710_DEBUG("Wait for Test_cmd response timeout!\n"); -+ retval = -EFAULT; -+ } -+ } else { -+ ts0710->be_testing = 1; /* Set the flag */ -+ -+ f_buf = (__u8 *) kmalloc(TEST_PATTERN_SIZE + 32, GFP_KERNEL); -+ d_buf = (__u8 *) kmalloc(TEST_PATTERN_SIZE + 32, GFP_KERNEL); -+ if ((!f_buf) || (!d_buf)) { -+ if (f_buf) { -+ kfree(f_buf); -+ } -+ if (d_buf) { -+ kfree(d_buf); -+ } -+ -+ ts0710->be_testing = 0; /* Clear the flag */ -+ ts0710->test_errs = TEST_PATTERN_SIZE; -+ wake_up_interruptible(&ts0710->test_wait); -+ return -ENOMEM; -+ } -+ -+ for (j = 0; j < TEST_PATTERN_SIZE; j++) { -+ d_buf[j] = j & 0xFF; -+ } -+ -+ t = jiffies; -+ ts0710_test_msg(ts0710, d_buf, TEST_PATTERN_SIZE, MCC_CMD, -+ f_buf); -+ interruptible_sleep_on_timeout(&ts0710->test_wait, -+ 2 * TS0710MUX_TIME_OUT); -+ if (ts0710->be_testing == 0) { -+ if (ts0710->test_errs == 0) { -+ retval = 0; -+ } else { -+ retval = -EFAULT; -+ } -+ } else if (signal_pending(current)) { -+ TS0710_DEBUG("Send Test_cmd got signal!\n"); -+ retval = -EAGAIN; -+ } else if ((jiffies - t) >= 2 * TS0710MUX_TIME_OUT) { -+ TS0710_DEBUG("Send Test_cmd timeout!\n"); -+ ts0710->test_errs = TEST_PATTERN_SIZE; -+ retval = -EFAULT; -+ } -+ -+ ts0710->be_testing = 0; /* Clear the flag */ -+ wake_up_interruptible(&ts0710->test_wait); -+ -+ /* Release buffer */ -+ if (f_buf) { -+ kfree(f_buf); -+ } -+ if (d_buf) { -+ kfree(d_buf); -+ } -+ } -+ -+ return retval; -+} -+ -+static void mux_sched_send(void) -+{ -+ -+#ifdef USB_FOR_MUX -+ schedule_work(&send_tqueue); -+#else -+ if (!tq_serial_for_mux) { -+ TS0710_PRINTK("MUX Error: %s: tq_serial_for_mux == 0\n", -+ __FUNCTION__); -+ return; -+ } -+ schedule_work(&send_tqueue); -+ mark_bh(SERIAL_BH); -+#endif -+ -+} -+ -+/**************************** -+ * TTY driver routines -+*****************************/ -+ -+static void mux_close(struct tty_struct *tty, struct file *filp) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int line; -+ __u8 dlci; -+ __u8 cmdtty; -+ __u8 datatty; -+ -+ UNUSED_PARAM(filp); -+ -+ if (!tty) { -+ return; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ return; -+ } -+ if (mux_tty[line] > 0) -+ mux_tty[line]--; -+ -+ dlci = tty2dlci[line]; -+ cmdtty = dlci2tty[dlci].cmdtty; -+ datatty = dlci2tty[dlci].datatty; -+ if ((mux_tty[cmdtty] == 0) && (mux_tty[datatty] == 0)) { -+ if (dlci == 1) { -+ ts0710_close_channel(0); -+ TS0710_PRINTK -+ ("MUX mux_close: tapisrv might be down!!! Close DLCI 1\n"); -+ TS0710_SIG2APLOGD(); -+ } -+ ts0710_close_channel(dlci); -+ } -+ -+ if (mux_tty[line] == 0) { -+ if ((mux_send_info_flags[line]) -+ && (mux_send_info[line]) -+ /*&& (mux_send_info[line]->filled == 0) */ -+ ) { -+ mux_send_info_flags[line] = 0; -+ kfree(mux_send_info[line]); -+ mux_send_info[line] = 0; -+ TS0710_DEBUG("Free mux_send_info for /dev/mux%d", line); -+ } -+ -+ if ((mux_recv_info_flags[line]) -+ && (mux_recv_info[line]) -+ && (mux_recv_info[line]->total == 0)) { -+ mux_recv_info_flags[line] = 0; -+ free_mux_recv_struct(mux_recv_info[line]); -+ mux_recv_info[line] = 0; -+ TS0710_DEBUG("Free mux_recv_info for /dev/mux%d", line); -+ } -+ -+ ts0710_flow_on(dlci, ts0710); -+ schedule_work(&post_recv_tqueue); -+ -+ wake_up_interruptible(&tty->read_wait); -+ wake_up_interruptible(&tty->write_wait); -+ tty->packet = 0; -+ } -+} -+ -+static void mux_throttle(struct tty_struct *tty) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int line; -+ int i; -+ __u8 dlci; -+ -+ if (!tty) { -+ return; -+ } -+ -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ return; -+ } -+ -+ TS0710_DEBUG("Enter into %s, minor number is: %d\n", __FUNCTION__, -+ line); -+ -+ dlci = tty2dlci[line]; -+ if ((ts0710->dlci[0].state != CONNECTED) -+ && (ts0710->dlci[0].state != FLOW_STOPPED)) { -+ return; -+ } else if ((ts0710->dlci[dlci].state != CONNECTED) -+ && (ts0710->dlci[dlci].state != FLOW_STOPPED)) { -+ return; -+ } -+ -+ if (ts0710->dlci[dlci].flow_control) { -+ return; -+ } -+ -+ for (i = 0; i < 3; i++) { -+ if (ts0710_msc_msg -+ (ts0710, EA | FC | RTC | RTR | DV, MCC_CMD, dlci) < 0) { -+ continue; -+ } else { -+ TS0710_LOG("MUX Send Flow off on dlci %d\n", dlci); -+ ts0710->dlci[dlci].flow_control = 1; -+ break; -+ } -+ } -+} -+ -+static void mux_unthrottle(struct tty_struct *tty) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int line; -+ __u8 dlci; -+ mux_recv_struct *recv_info; -+ -+ if (!tty) { -+ return; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ return; -+ } -+ -+ if ((!mux_recv_info_flags[line]) || (!mux_recv_info[line])) { -+ return; -+ } -+ -+ TS0710_DEBUG("Enter into %s, minor number is: %d\n", __FUNCTION__, -+ line); -+ -+ recv_info = mux_recv_info[line]; -+ dlci = tty2dlci[line]; -+ -+ if (recv_info->total) { -+ recv_info->post_unthrottle = 1; -+ schedule_work(&post_recv_tqueue); -+ } else { -+ ts0710_flow_on(dlci, ts0710); -+ } -+} -+ -+static int mux_chars_in_buffer(struct tty_struct *tty) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int retval; -+ int line; -+ __u8 dlci; -+ mux_send_struct *send_info; -+ -+ retval = TS0710MUX_MAX_CHARS_IN_BUF; -+ if (!tty) { -+ goto out; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ goto out; -+ } -+ -+ dlci = tty2dlci[line]; -+ if (ts0710->dlci[0].state == FLOW_STOPPED) { -+ TS0710_DEBUG -+ ("Flow stopped on all channels, returning MAX chars in buffer\n"); -+ goto out; -+ } else if (ts0710->dlci[dlci].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped, returning MAX chars in buffer\n"); -+ goto out; -+ } else if (ts0710->dlci[dlci].state != CONNECTED) { -+ TS0710_DEBUG("DLCI %d not connected\n", dlci); -+ goto out; -+ } -+ -+ if (!(mux_send_info_flags[line])) { -+ goto out; -+ } -+ send_info = mux_send_info[line]; -+ if (!send_info) { -+ goto out; -+ } -+ if (send_info->filled) { -+ goto out; -+ } -+ -+ retval = 0; -+ -+ out: -+ return retval; -+} -+ -+static int mux_chars_in_serial_buffer(struct tty_struct *tty) -+{ -+ UNUSED_PARAM(tty); -+ -+ if ((COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)) { -+ TS0710_PRINTK -+ ("MUX %s: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n", -+ __FUNCTION__); -+ -+#ifndef USB_FOR_MUX -+ TS0710_PRINTK -+ ("MUX %s: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n", -+ __FUNCTION__); -+ TS0710_SIG2APLOGD(); -+#endif -+ -+ return 0; -+ } -+ return COMM_FOR_MUX_DRIVER->chars_in_buffer(COMM_FOR_MUX_TTY); -+} -+ -+static int mux_write(struct tty_struct *tty, -+ const unsigned char *buf, int count) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int line; -+ __u8 dlci; -+ mux_send_struct *send_info; -+ __u8 *d_buf; -+ __u16 c; -+ __u8 post_recv; -+ -+ if (count <= 0) { -+ return 0; -+ } -+ -+ if (!tty) { -+ return 0; -+ } -+ -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) -+ return -ENODEV; -+ -+ dlci = tty2dlci[line]; -+ if (ts0710->dlci[0].state == FLOW_STOPPED) { -+ TS0710_DEBUG -+ ("Flow stopped on all channels, returning zero /dev/mux%d\n", -+ line); -+ return 0; -+ } else if (ts0710->dlci[dlci].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped, returning zero /dev/mux%d\n", line); -+ return 0; -+ } else if (ts0710->dlci[dlci].state == CONNECTED) { -+ -+ if (!(mux_send_info_flags[line])) { -+ TS0710_PRINTK -+ ("MUX Error: mux_write: mux_send_info_flags[%d] == 0\n", -+ line); -+ return -ENODEV; -+ } -+ send_info = mux_send_info[line]; -+ if (!send_info) { -+ TS0710_PRINTK -+ ("MUX Error: mux_write: mux_send_info[%d] == 0\n", -+ line); -+ return -ENODEV; -+ } -+ -+ c = min(count, (ts0710->dlci[dlci].mtu - 1)); -+ if (c <= 0) { -+ return 0; -+ } -+ -+ if (test_and_set_bit(BUF_BUSY, &send_info->flags)) -+ return 0; -+ -+ if (send_info->filled) { -+ clear_bit(BUF_BUSY, &send_info->flags); -+ return 0; -+ } -+ -+ d_buf = ((__u8 *) send_info->buf) + TS0710MUX_SEND_BUF_OFFSET; -+ memcpy(&d_buf[1], buf, c); -+ -+ TS0710_DEBUG("Prepare to send %d bytes from /dev/mux%d", c, -+ line); -+ if (iscmdtty[line]) { -+ TS0710_DEBUGSTR(&d_buf[1], c); -+ TS0710_DEBUG("CMDTAG"); -+ d_buf[0] = CMDTAG; -+ } else { -+ TS0710_DEBUG("DATATAG"); -+ d_buf[0] = DATATAG; -+ } -+ -+ TS0710_DEBUGHEX(d_buf, c + 1); -+ -+ send_info->frame = d_buf; -+ queue_uih(send_info, c + 1, ts0710, dlci); -+ send_info->filled = 1; -+ clear_bit(BUF_BUSY, &send_info->flags); -+ -+ post_recv = 0; -+ if (dlci == TS0710MUX_GPRS1_DLCI) { -+ if (add_count -+ (TS0710MUX_GPRS1_SEND_COUNT_IDX, c) < 0) { -+ post_recv_count_flag = 1; -+ post_recv = 1; -+ mux_data_count2[TS0710MUX_GPRS1_SEND_COUNT_IDX] -+ += c; -+ } -+ } else if (dlci == TS0710MUX_GPRS2_DLCI) { -+ if (add_count -+ (TS0710MUX_GPRS2_SEND_COUNT_IDX, c) < 0) { -+ post_recv_count_flag = 1; -+ post_recv = 1; -+ mux_data_count2[TS0710MUX_GPRS2_SEND_COUNT_IDX] -+ += c; -+ } -+ } -+ -+ if (post_recv) -+ schedule_work(&post_recv_tqueue); -+ -+ if (mux_chars_in_serial_buffer(COMM_FOR_MUX_TTY) == 0) { -+ /* Sending bottom half should be -+ run after return from this function */ -+ mux_sched_send(); -+ } -+ return c; -+ } else { -+ TS0710_PRINTK("MUX mux_write: DLCI %d not connected\n", dlci); -+ return -EDISCONNECTED; -+ } -+} -+ -+static int mux_write_room(struct tty_struct *tty) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int retval; -+ int line; -+ __u8 dlci; -+ mux_send_struct *send_info; -+ -+ retval = 0; -+ if (!tty) { -+ goto out; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ goto out; -+ } -+ -+ dlci = tty2dlci[line]; -+ if (ts0710->dlci[0].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped on all channels, returning ZERO\n"); -+ goto out; -+ } else if (ts0710->dlci[dlci].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped, returning ZERO\n"); -+ goto out; -+ } else if (ts0710->dlci[dlci].state != CONNECTED) { -+ TS0710_DEBUG("DLCI %d not connected\n", dlci); -+ goto out; -+ } -+ -+ if (!(mux_send_info_flags[line])) { -+ goto out; -+ } -+ send_info = mux_send_info[line]; -+ if (!send_info) { -+ goto out; -+ } -+ if (send_info->filled) { -+ goto out; -+ } -+ -+ retval = ts0710->dlci[dlci].mtu - 1; -+ -+ out: -+ return retval; -+} -+ -+static int mux_ioctl(struct tty_struct *tty, struct file *file, -+ unsigned int cmd, unsigned long arg) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int line; -+ __u8 dlci; -+ -+ UNUSED_PARAM(file); -+ UNUSED_PARAM(arg); -+ -+ if (!tty) { -+ return -EIO; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ return -ENODEV; -+ } -+ -+ dlci = tty2dlci[line]; -+ switch (cmd) { -+ case TS0710MUX_IO_MSC_HANGUP: -+ if (ts0710_msc_msg(ts0710, EA | RTR | DV, MCC_CMD, dlci) < 0) { -+ return -EAGAIN; -+ } else { -+ return 0; -+ } -+ -+ case TS0710MUX_IO_TEST_CMD: -+ return ts0710_exec_test_cmd(); -+/* -+ case TS0710MUX_IO_DLCI_FC_ON: -+ if( line == 0 ) { -+ break; -+ } -+ if( ts0710_msc_msg(ts0710, EA | RTC | RTR | DV, MCC_CMD, (__u8)line) < 0) { -+ return -EAGAIN; -+ } else { -+ return 0; -+ } -+ -+ case TS0710MUX_IO_DLCI_FC_OFF: -+ if( line == 0 ) { -+ break; -+ } -+ if( ts0710_msc_msg(ts0710, EA | FC | RTC | RTR | DV, MCC_CMD, (__u8)line) < 0) { -+ return -EAGAIN; -+ } else { -+ return 0; -+ } -+ -+ case TS0710MUX_IO_FC_ON: -+ if( line != 0 ) { -+ break; -+ } -+ if( ts0710_fcon_msg(ts0710, MCC_CMD) < 0) { -+ return -EAGAIN; -+ } else { -+ return 0; -+ } -+ -+ case TS0710MUX_IO_FC_OFF: -+ if( line != 0 ) { -+ break; -+ } -+ if( ts0710_fcoff_msg(ts0710, MCC_CMD) < 0) { -+ return -EAGAIN; -+ } else { -+ return 0; -+ } -+*/ -+ default: -+ break; -+ } -+ return -ENOIOCTLCMD; -+} -+ -+static void mux_flush_buffer(struct tty_struct *tty) -+{ -+ int line; -+ -+ if (!tty) { -+ return; -+ } -+ -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ return; -+ } -+ -+ TS0710_PRINTK("MUX %s: line is:%d\n", __FUNCTION__, line); -+ -+ if ((mux_send_info_flags[line]) -+ && (mux_send_info[line]) -+ && (mux_send_info[line]->filled)) { -+ -+ mux_send_info[line]->filled = 0; -+ } -+ -+ wake_up_interruptible(&tty->write_wait); -+#ifdef SERIAL_HAVE_POLL_WAIT -+ wake_up_interruptible(&tty->poll_wait); -+#endif -+ if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) && -+ tty->ldisc.write_wakeup) { -+ (tty->ldisc.write_wakeup) (tty); -+ } -+ -+/* -+ if( (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0) ) { -+ TS0710_PRINTK("MUX %s: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n", __FUNCTION__); -+ -+#ifndef USB_FOR_MUX -+ TS0710_PRINTK("MUX %s: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n", __FUNCTION__); -+ TS0710_SIG2APLOGD(); -+#endif -+ -+ return; -+ } -+ return COMM_FOR_MUX_DRIVER->flush_buffer(COMM_FOR_MUX_TTY); -+*/ -+} -+ -+static int mux_open(struct tty_struct *tty, struct file *filp) -+{ -+ int retval; -+ int line; -+ __u8 dlci; -+ __u8 cmdtty; -+ __u8 datatty; -+ mux_send_struct *send_info; -+ mux_recv_struct *recv_info; -+ -+ UNUSED_PARAM(filp); -+ -+ retval = -ENODEV; -+ if ((COMM_FOR_MUX_DRIVER == NULL) || (COMM_FOR_MUX_TTY == NULL)) { -+ -+#ifdef USB_FOR_MUX -+ TS0710_PRINTK("MUX: please install and open IPC-USB first\n"); -+#else -+ TS0710_PRINTK("MUX: please install and open ttyS0 first\n"); -+#endif -+ -+ goto out; -+ } -+ -+ if (!tty) { -+ goto out; -+ } -+ line = tty->index; -+ if ((line < 0) || (line >= NR_MUXS)) { -+ goto out; -+ } -+#ifdef TS0710SERVER -+ /* do nothing as a server */ -+ mux_tty[line]++; -+ retval = 0; -+#else -+ mux_tty[line]++; -+ dlci = tty2dlci[line]; -+ -+/* if( dlci == 1 ) { */ -+ /* Open server channel 0 first */ -+ if ((retval = ts0710_open_channel(0)) != 0) { -+ TS0710_PRINTK("MUX: Can't connect server channel 0!\n"); -+ ts0710_init(); -+ -+ mux_tty[line]--; -+ goto out; -+ } -+/* } */ -+ -+ /* Allocate memory first. As soon as connection has been established, MUX may receive */ -+ if (mux_send_info_flags[line] == 0) { -+ send_info = -+ (mux_send_struct *) kmalloc(sizeof(mux_send_struct), -+ GFP_KERNEL); -+ if (!send_info) { -+ retval = -ENOMEM; -+ -+ mux_tty[line]--; -+ goto out; -+ } -+ send_info->length = 0; -+ send_info->flags = 0; -+ send_info->filled = 0; -+ mux_send_info[line] = send_info; -+ mux_send_info_flags[line] = 1; -+ TS0710_DEBUG("Allocate mux_send_info for /dev/mux%d", line); -+ } -+ -+ if (mux_recv_info_flags[line] == 0) { -+ recv_info = -+ (mux_recv_struct *) kmalloc(sizeof(mux_recv_struct), -+ GFP_KERNEL); -+ if (!recv_info) { -+ mux_send_info_flags[line] = 0; -+ kfree(mux_send_info[line]); -+ mux_send_info[line] = 0; -+ TS0710_DEBUG("Free mux_send_info for /dev/mux%d", line); -+ retval = -ENOMEM; -+ -+ mux_tty[line]--; -+ goto out; -+ } -+ recv_info->length = 0; -+ recv_info->total = 0; -+ recv_info->mux_packet = 0; -+ recv_info->next = 0; -+ recv_info->no_tty = line; -+ recv_info->post_unthrottle = 0; -+ mux_recv_info[line] = recv_info; -+ mux_recv_info_flags[line] = 1; -+ TS0710_DEBUG("Allocate mux_recv_info for /dev/mux%d", line); -+ } -+ -+ /* Now establish DLCI connection */ -+ cmdtty = dlci2tty[dlci].cmdtty; -+ datatty = dlci2tty[dlci].datatty; -+ if ((mux_tty[cmdtty] > 0) || (mux_tty[datatty] > 0)) { -+ if ((retval = ts0710_open_channel(dlci)) != 0) { -+ TS0710_PRINTK("MUX: Can't connected channel %d!\n", -+ dlci); -+ ts0710_reset_dlci(dlci); -+ -+ mux_send_info_flags[line] = 0; -+ kfree(mux_send_info[line]); -+ mux_send_info[line] = 0; -+ TS0710_DEBUG("Free mux_send_info for /dev/mux%d", line); -+ -+ mux_recv_info_flags[line] = 0; -+ free_mux_recv_struct(mux_recv_info[line]); -+ mux_recv_info[line] = 0; -+ TS0710_DEBUG("Free mux_recv_info for /dev/mux%d", line); -+ -+ mux_tty[line]--; -+ goto out; -+ } -+ } -+ -+ retval = 0; -+#endif -+ out: -+ return retval; -+} -+ -+/* mux dispatcher, call from serial.c receiver_chars() */ -+void mux_dispatcher(struct tty_struct *tty) -+{ -+ UNUSED_PARAM(tty); -+ -+ schedule_work(&receive_tqueue); -+} -+ -+/*For BP UART problem Begin*/ -+#ifdef TS0710SEQ2 -+static int send_ack(ts0710_con * ts0710, __u8 seq_num, __u8 bp_seq1, -+ __u8 bp_seq2) -+#else -+static int send_ack(ts0710_con * ts0710, __u8 seq_num) -+#endif -+{ -+ __u8 buf[20]; -+ short_frame *ack; -+ -+#ifdef TS0710SEQ2 -+ static __u16 ack_seq = 0; -+#endif -+ -+ ack = (short_frame *) (buf + 1); -+ ack->h.addr.ea = 1; -+ ack->h.addr.cr = ((ts0710->initiator) & 0x1); -+ ack->h.addr.d = 0; -+ ack->h.addr.server_chn = 0; -+ ack->h.control = ACK; -+ ack->h.length.ea = 1; -+ -+#ifdef TS0710SEQ2 -+ ack->h.length.len = 5; -+ ack->data[0] = seq_num; -+ ack->data[1] = bp_seq1; -+ ack->data[2] = bp_seq2; -+ ack->data[3] = (ack_seq & 0xFF); -+ ack->data[4] = (ack_seq >> 8) & 0xFF; -+ ack_seq++; -+ ack->data[5] = crc_calc((__u8 *) ack, SHORT_CRC_CHECK); -+#else -+ ack->h.length.len = 1; -+ ack->data[0] = seq_num; -+ ack->data[1] = crc_calc((__u8 *) ack, SHORT_CRC_CHECK); -+#endif -+ -+ return basic_write(ts0710, buf, -+ (sizeof(short_frame) + FCS_SIZE + -+ ack->h.length.len)); -+} -+ -+/*For BP UART problem End*/ -+ -+static void receive_worker(void *private_) -+{ -+ struct tty_struct *tty = COMM_FOR_MUX_TTY; -+ int i, count; -+ static unsigned char tbuf[TS0710MUX_MAX_BUF_SIZE]; -+ static unsigned char *tbuf_ptr = &tbuf[0]; -+ static unsigned char *start_flag = 0; -+ unsigned char *search, *to, *from; -+ short_frame *short_pkt; -+ long_frame *long_pkt; -+ static int framelen = -1; -+ -+ /*For BP UART problem Begin */ -+ static __u8 expect_seq = 0; -+ __u32 crc_error; -+ __u8 *uih_data_start; -+ __u32 uih_len; -+ /*For BP UART problem End */ -+ -+ UNUSED_PARAM(private_); -+ -+ if (!tty) -+ return; -+ -+#ifdef USB_FOR_MUX -+ TS0710_DEBUG("Receive following bytes from IPC-USB"); -+#else -+ TS0710_DEBUG("Receive following bytes from UART"); -+#endif -+ -+ TS0710_DEBUGHEX(cp, count); -+ -+ if (count > (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf))) { -+ TS0710_PRINTK -+ ("MUX receive_worker: !!!!! Exceed buffer boundary !!!!!\n"); -+ count = (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf)); -+ } -+ -+ count = tty_buffer_request_room(tty, count); -+ -+ for (i = 0; i < count; i++) -+ tty_insert_flip_char(tty, tbuf_ptr[i], TTY_NORMAL); -+ -+ tbuf_ptr += count; -+ search = &tbuf[0]; -+ -+ if (test_and_set_bit(RECV_RUNNING, &mux_recv_flags)) { -+ schedule_work(&receive_tqueue); -+ return; -+ } -+ -+ if ((start_flag != 0) && (framelen != -1)) { -+ if ((tbuf_ptr - start_flag) < framelen) { -+ clear_bit(RECV_RUNNING, &mux_recv_flags); -+ return; -+ } -+ } -+ -+ while (1) { -+ if (start_flag == 0) { /* Frame Start Flag not found */ -+ framelen = -1; -+ while (search < tbuf_ptr) { -+ if (*search == TS0710_BASIC_FLAG) { -+ start_flag = search; -+ break; -+ } -+#ifdef TS0710LOG -+ else { -+ TS0710_LOG(">S %02x %c\n", *search, -+ *search); -+ } -+#endif -+ -+ search++; -+ } -+ -+ if (start_flag == 0) { -+ tbuf_ptr = &tbuf[0]; -+ break; -+ } -+ } else { /* Frame Start Flag found */ -+ /* 1 start flag + 1 address + 1 control + 1 or 2 length + lengths data + 1 FCS + 1 end flag */ -+ /* For BP UART problem 1 start flag + 1 seq_num + 1 address + ...... */ -+ /*if( (framelen == -1) && ((tbuf_ptr - start_flag) > TS0710_MAX_HDR_SIZE) ) */ -+ if ((framelen == -1) && ((tbuf_ptr - start_flag) > (TS0710_MAX_HDR_SIZE + SEQ_FIELD_SIZE))) { /*For BP UART problem */ -+ /*short_pkt = (short_frame *) (start_flag + 1); */ -+ short_pkt = (short_frame *) (start_flag + ADDRESS_FIELD_OFFSET); /*For BP UART problem */ -+ if (short_pkt->h.length.ea == 1) { /* short frame */ -+ /*framelen = TS0710_MAX_HDR_SIZE + short_pkt->h.length.len + 1; */ -+ framelen = TS0710_MAX_HDR_SIZE + short_pkt->h.length.len + 1 + SEQ_FIELD_SIZE; /*For BP UART problem */ -+ } else { /* long frame */ -+ /*long_pkt = (long_frame *) (start_flag + 1); */ -+ long_pkt = (long_frame *) (start_flag + ADDRESS_FIELD_OFFSET); /*For BP UART problem */ -+ /*framelen = TS0710_MAX_HDR_SIZE + GET_LONG_LENGTH( long_pkt->h.length ) + 2; */ -+ framelen = TS0710_MAX_HDR_SIZE + GET_LONG_LENGTH(long_pkt->h.length) + 2 + SEQ_FIELD_SIZE; /*For BP UART problem */ -+ } -+ -+ /*if( framelen > TS0710MUX_MAX_TOTAL_FRAME_SIZE ) { */ -+ if (framelen > (TS0710MUX_MAX_TOTAL_FRAME_SIZE + SEQ_FIELD_SIZE)) { /*For BP UART problem */ -+ TS0710_LOGSTR_FRAME(0, start_flag, -+ (tbuf_ptr - -+ start_flag)); -+ TS0710_PRINTK -+ ("MUX Error: %s: frame length:%d is bigger than Max total frame size:%d\n", -+ /*__FUNCTION__, framelen, TS0710MUX_MAX_TOTAL_FRAME_SIZE);*/ -+ __FUNCTION__, framelen, (TS0710MUX_MAX_TOTAL_FRAME_SIZE + SEQ_FIELD_SIZE)); /*For BP UART problem */ -+ search = start_flag + 1; -+ start_flag = 0; -+ framelen = -1; -+ continue; -+ } -+ } -+ -+ if ((framelen != -1) -+ && ((tbuf_ptr - start_flag) >= framelen)) { -+ if (*(start_flag + framelen - 1) == TS0710_BASIC_FLAG) { /* OK, We got one frame */ -+ -+ /*For BP UART problem Begin */ -+ TS0710_LOGSTR_FRAME(0, start_flag, -+ framelen); -+ TS0710_DEBUGHEX(start_flag, framelen); -+ -+ short_pkt = -+ (short_frame *) (start_flag + -+ ADDRESS_FIELD_OFFSET); -+ if ((short_pkt->h.length.ea) == 0) { -+ long_pkt = -+ (long_frame *) (start_flag + -+ ADDRESS_FIELD_OFFSET); -+ uih_len = -+ GET_LONG_LENGTH(long_pkt->h. -+ length); -+ uih_data_start = -+ long_pkt->h.data; -+ -+ crc_error = -+ crc_check((__u8 -+ *) (start_flag + -+ SLIDE_BP_SEQ_OFFSET), -+ LONG_CRC_CHECK + -+ 1, -+ *(uih_data_start + -+ uih_len)); -+ } else { -+ uih_len = -+ short_pkt->h.length.len; -+ uih_data_start = -+ short_pkt->data; -+ -+ crc_error = -+ crc_check((__u8 -+ *) (start_flag + -+ SLIDE_BP_SEQ_OFFSET), -+ SHORT_CRC_CHECK + -+ 1, -+ *(uih_data_start + -+ uih_len)); -+ } -+ -+ if (!crc_error) { -+ if (expect_seq == -+ *(start_flag + -+ SLIDE_BP_SEQ_OFFSET)) { -+ expect_seq++; -+ if (expect_seq >= 4) { -+ expect_seq = 0; -+ } -+#ifdef TS0710SEQ2 -+ send_ack -+ (&ts0710_connection, -+ expect_seq, -+ *(start_flag + -+ FIRST_BP_SEQ_OFFSET), -+ *(start_flag + -+ SECOND_BP_SEQ_OFFSET)); -+#else -+ send_ack -+ (&ts0710_connection, -+ expect_seq); -+#endif -+ -+ ts0710_recv_data -+ (&ts0710_connection, -+ start_flag + -+ ADDRESS_FIELD_OFFSET, -+ framelen - 2 - -+ SEQ_FIELD_SIZE); -+ } else { -+ -+#ifdef TS0710DEBUG -+ if (* -+ (start_flag + -+ SLIDE_BP_SEQ_OFFSET) -+ != 0x9F) { -+#endif -+ -+ TS0710_LOG -+ ("MUX sequence number %d is not expected %d, discard data!\n", -+ * -+ (start_flag -+ + -+ SLIDE_BP_SEQ_OFFSET), -+ expect_seq); -+ -+#ifdef TS0710SEQ2 -+ send_ack -+ (&ts0710_connection, -+ expect_seq, -+ * -+ (start_flag -+ + -+ FIRST_BP_SEQ_OFFSET), -+ * -+ (start_flag -+ + -+ SECOND_BP_SEQ_OFFSET)); -+#else -+ send_ack -+ (&ts0710_connection, -+ expect_seq); -+#endif -+ -+#ifdef TS0710DEBUG -+ } else { -+ *(uih_data_start -+ + uih_len) = -+ 0; -+ TS0710_PRINTK -+ ("MUX bp log: %s\n", -+ uih_data_start); -+ } -+#endif -+ -+ } -+ } else { /* crc_error */ -+ search = start_flag + 1; -+ start_flag = 0; -+ framelen = -1; -+ continue; -+ } /*End if(!crc_error) */ -+ -+ /*For BP UART problem End */ -+ -+/*For BP UART problem -+ TS0710_LOGSTR_FRAME(0, start_flag, framelen); -+ TS0710_DEBUGHEX(start_flag, framelen); -+ ts0710_recv_data(&ts0710_connection, start_flag + 1, framelen - 2); -+*/ -+ search = start_flag + framelen; -+ } else { -+ TS0710_LOGSTR_FRAME(0, start_flag, -+ framelen); -+ TS0710_DEBUGHEX(start_flag, framelen); -+ TS0710_PRINTK -+ ("MUX: Lost synchronization!\n"); -+ search = start_flag + 1; -+ } -+ -+ start_flag = 0; -+ framelen = -1; -+ continue; -+ } -+ -+ if (start_flag != &tbuf[0]) { -+ to = tbuf; -+ from = start_flag; -+ count = tbuf_ptr - start_flag; -+ while (count--) { -+ *to++ = *from++; -+ } -+ -+ tbuf_ptr -= (start_flag - tbuf); -+ start_flag = tbuf; -+ } -+ break; -+ } /* End Frame Start Flag found */ -+ } /* End while(1) */ -+ -+ clear_bit(RECV_RUNNING, &mux_recv_flags); -+} -+ -+static void post_recv_worker(void *private_) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ int tty_idx; -+ struct tty_struct *tty; -+ __u8 post_recv; -+ __u8 flow_control; -+ __u8 dlci; -+ mux_recv_struct *recv_info, *recv_info2, *post_recv_q; -+ int recv_room; -+ mux_recv_packet *recv_packet, *recv_packet2; -+ __u8 j; -+ -+ UNUSED_PARAM(private_); -+ -+ if (test_and_set_bit(RECV_RUNNING, &mux_recv_flags)) { -+ schedule_work(&post_recv_tqueue); -+ return; -+ } -+ -+ TS0710_DEBUG("Enter into post_recv_worker"); -+ -+ post_recv = 0; -+ if (!mux_recv_queue) { -+ goto out; -+ } -+ -+ post_recv_q = NULL; -+ recv_info2 = mux_recv_queue; -+ while ((recv_info = recv_info2)) { -+ recv_info2 = recv_info->next; -+ -+ if (!(recv_info->total)) { -+ TS0710_PRINTK -+ ("MUX Error: %s: Should not get here, recv_info->total == 0 \n", -+ __FUNCTION__); -+ continue; -+ } -+ -+ tty_idx = recv_info->no_tty; -+ dlci = tty2dlci[tty_idx]; -+ tty = mux_table[tty_idx]; -+ if ((!mux_tty[tty_idx]) || (!tty)) { -+ TS0710_PRINTK -+ ("MUX: No application waiting for, free recv_info! tty_idx:%d\n", -+ tty_idx); -+ mux_recv_info_flags[tty_idx] = 0; -+ free_mux_recv_struct(mux_recv_info[tty_idx]); -+ mux_recv_info[tty_idx] = 0; -+ ts0710_flow_on(dlci, ts0710); -+ continue; -+ } -+ -+ TS0710_DEBUG("/dev/mux%d recv_info->total is: %d", tty_idx, -+ recv_info->total); -+ -+ if (test_bit(TTY_THROTTLED, &tty->flags)) { -+ add_post_recv_queue(&post_recv_q, recv_info); -+ continue; -+ } else if (test_bit(TTY_DONT_FLIP, &tty->flags)) { -+ post_recv = 1; -+ add_post_recv_queue(&post_recv_q, recv_info); -+ continue; -+ } -+ -+ flow_control = 0; -+ recv_packet2 = recv_info->mux_packet; -+ while (recv_info->total) { -+ recv_room = 65535; -+ if (tty->receive_room) -+ recv_room = tty->receive_room; -+ -+ if (recv_info->length) { -+ if (recv_room < recv_info->length) { -+ flow_control = 1; -+ break; -+ } -+ -+ /* Put queued data into read buffer of tty */ -+ TS0710_DEBUG -+ ("Put queued recv data into read buffer of /dev/mux%d", -+ tty_idx); -+ TS0710_DEBUGHEX(recv_info->data, -+ recv_info->length); -+ (tty->ldisc.receive_buf) (tty, recv_info->data, -+ NULL, -+ recv_info->length); -+ recv_info->total -= recv_info->length; -+ recv_info->length = 0; -+ } else { /* recv_info->length == 0 */ -+ if ((recv_packet = recv_packet2)) { -+ recv_packet2 = recv_packet->next; -+ -+ if (recv_room < recv_packet->length) { -+ flow_control = 1; -+ recv_info->mux_packet = -+ recv_packet; -+ break; -+ } -+ -+ /* Put queued data into read buffer of tty */ -+ TS0710_DEBUG -+ ("Put queued recv data into read buffer of /dev/mux%d", -+ tty_idx); -+ TS0710_DEBUGHEX(recv_packet->data, -+ recv_packet->length); -+ (tty->ldisc.receive_buf) (tty, -+ recv_packet-> -+ data, NULL, -+ recv_packet-> -+ length); -+ recv_info->total -= recv_packet->length; -+ free_mux_recv_packet(recv_packet); -+ } else { -+ TS0710_PRINTK -+ ("MUX Error: %s: Should not get here, recv_info->total is:%u \n", -+ __FUNCTION__, recv_info->total); -+ } -+ } /* End recv_info->length == 0 */ -+ } /* End while( recv_info->total ) */ -+ -+ if (!(recv_info->total)) { -+ /* Important clear */ -+ recv_info->mux_packet = 0; -+ -+ if (recv_info->post_unthrottle) { -+ /* Do something for post_unthrottle */ -+ ts0710_flow_on(dlci, ts0710); -+ recv_info->post_unthrottle = 0; -+ } -+ } else { -+ add_post_recv_queue(&post_recv_q, recv_info); -+ -+ if (flow_control) { -+ /* Do something for flow control */ -+ if (recv_info->post_unthrottle) { -+ set_bit(TTY_THROTTLED, &tty->flags); -+ recv_info->post_unthrottle = 0; -+ } else { -+ ts0710_flow_off(tty, dlci, ts0710); -+ } -+ } /* End if( flow_control ) */ -+ } -+ } /* End while( (recv_info = recv_info2) ) */ -+ -+ mux_recv_queue = post_recv_q; -+ -+ out: -+ if (post_recv_count_flag) { -+ post_recv_count_flag = 0; -+ for (j = 0; j < TS0710MUX_COUNT_IDX_NUM; j++) { -+ if (mux_data_count2[j] > 0) { -+ if (add_count(j, mux_data_count2[j]) == 0) { -+ mux_data_count2[j] = 0; -+ } else { -+ post_recv_count_flag = 1; -+ post_recv = 1; -+ } -+ } -+ } /* End for (j = 0; j < TS0710MUX_COUNT_IDX_NUM; j++) */ -+ } -+ /* End if( post_recv_count_flag ) */ -+ if (post_recv) -+ schedule_work(&post_recv_tqueue); -+ clear_bit(RECV_RUNNING, &mux_recv_flags); -+} -+ -+/* mux sender, call from serial.c transmit_chars() */ -+void mux_sender(void) -+{ -+ mux_send_struct *send_info; -+ int chars; -+ __u8 idx; -+ -+ chars = mux_chars_in_serial_buffer(COMM_FOR_MUX_TTY); -+ if (!chars) { -+ /* chars == 0 */ -+ TS0710_LOG("<[]\n"); -+ mux_sched_send(); -+ return; -+ } -+ -+ idx = mux_send_info_idx; -+ if ((idx < NR_MUXS) && (mux_send_info_flags[idx])) { -+ send_info = mux_send_info[idx]; -+ if ((send_info) -+ && (send_info->filled) -+ && (send_info->length <= -+ (TS0710MUX_SERIAL_BUF_SIZE - chars))) { -+ -+ mux_sched_send(); -+ } -+ } -+} -+ -+static void send_worker(void *private_) -+{ -+ ts0710_con *ts0710 = &ts0710_connection; -+ __u8 j; -+ mux_send_struct *send_info; -+ int chars; -+ struct tty_struct *tty; -+ __u8 dlci; -+ -+ UNUSED_PARAM(private_); -+ -+ TS0710_DEBUG("Enter into send_worker"); -+ -+ mux_send_info_idx = NR_MUXS; -+ -+ if (ts0710->dlci[0].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped on all channels\n"); -+ return; -+ } -+ -+ for (j = 0; j < NR_MUXS; j++) { -+ -+ if (!(mux_send_info_flags[j])) { -+ continue; -+ } -+ -+ send_info = mux_send_info[j]; -+ if (!send_info) { -+ continue; -+ } -+ -+ if (!(send_info->filled)) { -+ continue; -+ } -+ -+ dlci = tty2dlci[j]; -+ if (ts0710->dlci[dlci].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped on channel DLCI: %d\n", -+ dlci); -+ continue; -+ } else if (ts0710->dlci[dlci].state != CONNECTED) { -+ TS0710_DEBUG("DLCI %d not connected\n", dlci); -+ send_info->filled = 0; -+ continue; -+ } -+ -+ chars = mux_chars_in_serial_buffer(COMM_FOR_MUX_TTY); -+ if (send_info->length <= (TS0710MUX_SERIAL_BUF_SIZE - chars)) { -+ TS0710_DEBUG("Send queued UIH for /dev/mux%d", j); -+ basic_write(ts0710, (__u8 *) send_info->frame, -+ send_info->length); -+ send_info->length = 0; -+ send_info->filled = 0; -+ } else { -+ mux_send_info_idx = j; -+ break; -+ } -+ } /* End for() loop */ -+ -+ /* Queue UIH data to be transmitted */ -+ for (j = 0; j < NR_MUXS; j++) { -+ -+ if (!(mux_send_info_flags[j])) { -+ continue; -+ } -+ -+ send_info = mux_send_info[j]; -+ if (!send_info) { -+ continue; -+ } -+ -+ if (send_info->filled) { -+ continue; -+ } -+ -+ /* Now queue UIH data to send_info->buf */ -+ -+ if (!mux_tty[j]) { -+ continue; -+ } -+ -+ tty = mux_table[j]; -+ if (!tty) { -+ continue; -+ } -+ -+ dlci = tty2dlci[j]; -+ if (ts0710->dlci[dlci].state == FLOW_STOPPED) { -+ TS0710_DEBUG("Flow stopped on channel DLCI: %d\n", -+ dlci); -+ continue; -+ } else if (ts0710->dlci[dlci].state != CONNECTED) { -+ TS0710_DEBUG("DLCI %d not connected\n", dlci); -+ continue; -+ } -+ -+ if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) -+ && tty->ldisc.write_wakeup) { -+ (tty->ldisc.write_wakeup) (tty); -+ } -+ wake_up_interruptible(&tty->write_wait); -+ -+#ifdef SERIAL_HAVE_POLL_WAIT -+ wake_up_interruptible(&tty->poll_wait); -+#endif -+ -+ if (send_info->filled) { -+ if (j < mux_send_info_idx) { -+ mux_send_info_idx = j; -+ } -+ } -+ } /* End for() loop */ -+} -+ -+static int get_count(__u8 idx) -+{ -+ int ret; -+ -+ if (idx > TS0710MUX_COUNT_MAX_IDX) { -+ TS0710_PRINTK("MUX get_count: invalid idx: %d!\n", idx); -+ return -1; -+ } -+ -+ down(&mux_data_count_mutex[idx]); -+ ret = mux_data_count[idx]; -+ up(&mux_data_count_mutex[idx]); -+ -+ return ret; -+} -+ -+static int set_count(__u8 idx, int count) -+{ -+ if (idx > TS0710MUX_COUNT_MAX_IDX) { -+ TS0710_PRINTK("MUX set_count: invalid idx: %d!\n", idx); -+ return -1; -+ } -+ if (count < 0) { -+ TS0710_PRINTK("MUX set_count: invalid count: %d!\n", count); -+ return -1; -+ } -+ -+ down(&mux_data_count_mutex[idx]); -+ mux_data_count[idx] = count; -+ up(&mux_data_count_mutex[idx]); -+ -+ return 0; -+} -+ -+static int add_count(__u8 idx, int count) -+{ -+ if (idx > TS0710MUX_COUNT_MAX_IDX) { -+ TS0710_PRINTK("MUX add_count: invalid idx: %d!\n", idx); -+ return -1; -+ } -+ if (count <= 0) { -+ TS0710_PRINTK("MUX add_count: invalid count: %d!\n", count); -+ return -1; -+ } -+ -+ if (down_trylock(&mux_data_count_mutex[idx])) -+ return -1; -+ mux_data_count[idx] += count; -+ up(&mux_data_count_mutex[idx]); -+ -+ return 0; -+} -+ -+ssize_t file_proc_read(struct file * file, char *buf, size_t size, -+ loff_t * ppos) -+{ -+ gprs_bytes gprsData[TS0710MUX_GPRS_SESSION_MAX]; -+ int bufLen = sizeof(gprs_bytes) * TS0710MUX_GPRS_SESSION_MAX; -+ -+ UNUSED_PARAM(file); -+ UNUSED_PARAM(size); -+ UNUSED_PARAM(ppos); -+ -+ gprsData[0].recvBytes = get_count(TS0710MUX_GPRS1_RECV_COUNT_IDX); -+ gprsData[0].sentBytes = get_count(TS0710MUX_GPRS1_SEND_COUNT_IDX); -+ gprsData[TS0710MUX_GPRS_SESSION_MAX - 1].recvBytes = -+ get_count(TS0710MUX_GPRS2_RECV_COUNT_IDX); -+ gprsData[TS0710MUX_GPRS_SESSION_MAX - 1].sentBytes = -+ get_count(TS0710MUX_GPRS2_SEND_COUNT_IDX); -+ -+ copy_to_user(buf, gprsData, bufLen); -+ -+ return bufLen; -+} -+ -+ssize_t file_proc_write(struct file * file, const char *buf, size_t count, -+ loff_t * ppos) -+{ -+ gprs_bytes gprsData[TS0710MUX_GPRS_SESSION_MAX]; -+ int bufLen = sizeof(gprs_bytes) * TS0710MUX_GPRS_SESSION_MAX; -+ -+ UNUSED_PARAM(file); -+ UNUSED_PARAM(count); -+ UNUSED_PARAM(ppos); -+ -+ memset(gprsData, 0, bufLen); -+ -+ copy_from_user(gprsData, buf, bufLen); -+ -+ set_count(TS0710MUX_GPRS1_RECV_COUNT_IDX, gprsData[0].recvBytes); -+ set_count(TS0710MUX_GPRS1_SEND_COUNT_IDX, gprsData[0].sentBytes); -+ set_count(TS0710MUX_GPRS2_RECV_COUNT_IDX, -+ gprsData[TS0710MUX_GPRS_SESSION_MAX - 1].recvBytes); -+ set_count(TS0710MUX_GPRS2_SEND_COUNT_IDX, -+ gprsData[TS0710MUX_GPRS_SESSION_MAX - 1].sentBytes); -+ -+ return bufLen; -+} -+ -+static void gprs_proc_init(void) -+{ -+ gprs_proc_file = -+ create_proc_entry("gprsbytes", S_IRUSR | S_IWUSR, NULL); -+ gprs_proc_file->proc_fops = &file_proc_operations; -+} -+ -+static void gprs_proc_exit(void) -+{ -+ remove_proc_entry("gprsbytes", gprs_proc_file); -+} -+ -+static int __init mux_init(void) -+{ -+ __u8 j; -+ -+ if (COMM_FOR_MUX_DRIVER == NULL) { -+ -+#ifdef USB_FOR_MUX -+ panic("please install IPC-USB first\n"); -+#else -+ panic("please install ttyS0 first\n"); -+#endif -+ -+ } -+ -+ ts0710_init(); -+ -+ for (j = 0; j < NR_MUXS; j++) { -+ mux_send_info_flags[j] = 0; -+ mux_send_info[j] = 0; -+ mux_recv_info_flags[j] = 0; -+ mux_recv_info[j] = 0; -+ } -+ mux_send_info_idx = NR_MUXS; -+ mux_recv_queue = NULL; -+ mux_recv_flags = 0; -+ -+ for (j = 0; j < TS0710MUX_COUNT_IDX_NUM; j++) { -+ mux_data_count[j] = 0; -+ mux_data_count2[j] = 0; -+ init_MUTEX(&mux_data_count_mutex[j]); -+ } -+ post_recv_count_flag = 0; -+ -+ INIT_WORK(&send_tqueue, send_worker, NULL); -+ INIT_WORK(&receive_tqueue, receive_worker, NULL); -+ INIT_WORK(&post_recv_tqueue, post_recv_worker, NULL); -+ -+ memset(&mux_driver, 0, sizeof(struct tty_driver)); -+ memset(&mux_tty, 0, sizeof(mux_tty)); -+ mux_driver.magic = TTY_DRIVER_MAGIC; -+ mux_driver.driver_name = "ts0710mux"; -+ mux_driver.name = "ts0710mux"; -+ mux_driver.major = TS0710MUX_MAJOR; -+ mux_driver.minor_start = TS0710MUX_MINOR_START; -+ mux_driver.num = NR_MUXS; -+ mux_driver.type = TTY_DRIVER_TYPE_SERIAL; -+ mux_driver.subtype = SERIAL_TYPE_NORMAL; -+ mux_driver.init_termios = tty_std_termios; -+ mux_driver.init_termios.c_iflag = 0; -+ mux_driver.init_termios.c_oflag = 0; -+ mux_driver.init_termios.c_cflag = B38400 | CS8 | CREAD; -+ mux_driver.init_termios.c_lflag = 0; -+ mux_driver.flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW; -+ -+ mux_driver.ttys = mux_table; -+ mux_driver.termios = mux_termios; -+ mux_driver.termios_locked = mux_termios_locked; -+// mux_driver.driver_state = mux_state; -+ mux_driver.other = NULL; -+ -+ mux_driver.open = mux_open; -+ mux_driver.close = mux_close; -+ mux_driver.write = mux_write; -+ mux_driver.write_room = mux_write_room; -+ mux_driver.flush_buffer = mux_flush_buffer; -+ mux_driver.chars_in_buffer = mux_chars_in_buffer; -+ mux_driver.throttle = mux_throttle; -+ mux_driver.unthrottle = mux_unthrottle; -+ mux_driver.ioctl = mux_ioctl; -+ mux_driver.owner = THIS_MODULE; -+ -+ if (tty_register_driver(&mux_driver)) -+ panic("Couldn't register mux driver"); -+ -+ COMM_MUX_DISPATCHER = mux_dispatcher; -+ COMM_MUX_SENDER = mux_sender; -+ -+ gprs_proc_init(); -+ -+ return 0; -+} -+ -+static void __exit mux_exit(void) -+{ -+ __u8 j; -+ -+ COMM_MUX_DISPATCHER = NULL; -+ COMM_MUX_SENDER = NULL; -+ -+ gprs_proc_exit(); -+ -+ mux_send_info_idx = NR_MUXS; -+ mux_recv_queue = NULL; -+ for (j = 0; j < NR_MUXS; j++) { -+ if ((mux_send_info_flags[j]) && (mux_send_info[j])) { -+ kfree(mux_send_info[j]); -+ } -+ mux_send_info_flags[j] = 0; -+ mux_send_info[j] = 0; -+ -+ if ((mux_recv_info_flags[j]) && (mux_recv_info[j])) { -+ free_mux_recv_struct(mux_recv_info[j]); -+ } -+ mux_recv_info_flags[j] = 0; -+ mux_recv_info[j] = 0; -+ } -+ -+ if (tty_unregister_driver(&mux_driver)) -+ panic("Couldn't unregister mux driver"); -+} -+ -+module_init(mux_init); -+module_exit(mux_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Harald Welte <laforge@openezx.org>"); -+MODULE_DESCRIPTION("TS 07.10 Multiplexer"); -Index: linux-2.6.20.7/drivers/char/ts0710_mux.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/char/ts0710_mux.h 2007-04-21 18:04:56.000000000 +0200 -@@ -0,0 +1,103 @@ -+/* -+ * mux_macro.h -+ * -+ * Copyright (C) 2002 2005 Motorola -+ * -+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA. -+ * -+ * -+ * 11/18/2002 (Motorola) - Initial version -+ * -+ */ -+ -+/* -+* This header file should be included by both MUX and other applications -+* which access MUX device files. It gives the additional macro definitions -+* shared between MUX and applications. -+*/ -+ -+/* MUX DLCI(Data Link Connection Identifier) Configuration */ -+/* -+* DLCI Service -+* 0 Control Channel -+* 1 Voice Call & Network-related -+* 2 SMS MO -+* 3 SMS MT -+* 4 Phonebook & related -+* 5 MISC -+* 6 CSD/FAX -+* 7 GPRS1 -+* 8 GPRS2 -+* 9 Logger CMD -+* 10 Logger Data -+* 11 Test CMD -+* 12 AGPS -+* 13 Net Monitor -+*/ -+ -+/* Mapping between DLCI and MUX device files */ -+/* -+* File Name Minor DLCI AT Command/Data -+* /dev/mux0 0 1 AT Command -+* /dev/mux1 1 2 AT Command -+* /dev/mux2 2 3 AT Command -+* /dev/mux3 3 4 AT Command -+* /dev/mux4 4 5 AT Command -+* /dev/mux5 5 6 AT Command -+* /dev/mux6 6 7 AT Command -+* /dev/mux7 7 8 AT Command -+* /dev/mux8 8 6 Data -+* /dev/mux9 9 7 Data -+* /dev/mux10 10 8 Data -+* /dev/mux11 11 9 Data -+* /dev/mux12 12 10 Data -+* /dev/mux13 13 11 Data -+* /dev/mux14 14 12 Data -+* /dev/mux15 15 13 Data -+*/ -+ -+#define MUX_CMD_FILE_VOICE_CALL "/dev/mux0" -+#define MUX_CMD_FILE_SMS_MO "/dev/mux1" -+#define MUX_CMD_FILE_SMS_MT "/dev/mux2" -+#define MUX_CMD_FILE_PHONEBOOK "/dev/mux3" -+#define MUX_CMD_FILE_MISC "/dev/mux4" -+#define MUX_CMD_FILE_CSD "/dev/mux5" -+#define MUX_CMD_FILE_GPRS1 "/dev/mux6" -+#define MUX_CMD_FILE_GPRS2 "/dev/mux7" -+ -+#define MUX_DATA_FILE_CSD "/dev/mux8" -+#define MUX_DATA_FILE_GPRS1 "/dev/mux9" -+#define MUX_DATA_FILE_GPRS2 "/dev/mux10" -+#define MUX_DATA_FILE_LOGGER_CMD "/dev/mux11" -+#define MUX_DATA_FILE_LOGGER_DATA "/dev/mux12" -+#define MUX_DATA_FILE_TEST_CMD "/dev/mux13" -+#define MUX_DATA_FILE_AGPS "/dev/mux14" -+#define MUX_DATA_FILE_NET_MONITOR "/dev/mux15" -+ -+#define NUM_MUX_CMD_FILES 8 -+#define NUM_MUX_DATA_FILES 8 -+#define NUM_MUX_FILES ( NUM_MUX_CMD_FILES + NUM_MUX_DATA_FILES ) -+ -+/* Special ioctl() upon a MUX device file for hanging up a call */ -+#define TS0710MUX_IO_MSC_HANGUP 0x54F0 -+ -+/* Special ioctl() upon a MUX device file for MUX loopback test */ -+#define TS0710MUX_IO_TEST_CMD 0x54F1 -+ -+/* Special Error code might be return from write() to a MUX device file */ -+#define EDISCONNECTED 900 /* Logical data link is disconnected */ -+ -+/* Special Error code might be return from open() to a MUX device file */ -+#define EREJECTED 901 /* Logical data link connection request is rejected */ -Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-21 18:07:45.000000000 +0200 -@@ -0,0 +1,868 @@ -+/* -+ * linux/drivers/usb/ipcusb.c -+ * -+ * Implementation of a ipc driver based Intel's Bulverde USB Host -+ * Controller. -+ * -+ * Copyright (C) 2003-2005 Motorola -+ * Copyright (C) 2006 Harald Welte <laforge@openezx.org> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ * 2003-Nov-03 - (Motorola) created -+ * 2004-Feb-20 - (Motorola) Add Power Manager codes -+ * 2004-Apr-14 - (Motorola) Update Suspend/Resume codes -+ * 2004-May-10 - (Motorola) Add unlink_urbs codes and do some updates of send -+ * out urb sequence -+ * 2006-Jun-22 - (Harald Welte) port to Linux 2.6.x -+ * -+ */ -+ -+#include <linux/kernel.h> -+#include <linux/module.h> -+#include <linux/list.h> -+#include <linux/errno.h> -+#include <asm/uaccess.h> -+#include <asm/hardware.h> -+#include <asm/arch/hardware.h> -+#include <asm/arch-pxa/pxa-regs.h> -+#include <asm/arch-pxa/ezx.h> -+#include <linux/slab.h> -+#include <linux/miscdevice.h> -+#include <linux/init.h> -+#include <linux/timer.h> -+#include <linux/delay.h> -+#include <linux/sched.h> -+#include <linux/tty.h> -+#include <linux/tty_driver.h> -+#include <linux/tty_flip.h> -+#include <linux/circ_buf.h> -+#include <linux/usb.h> -+ -+#include "ts0710_mux_usb.h" -+ -+/*Macro defined for this driver*/ -+#define DRIVER_VERSION "1.0alpha1" -+#define DRIVER_AUTHOR "Motorola / Harald Welte <laforge@openezx.org>" -+#define DRIVER_DESC "USB IPC Driver (TS07.10 lowlevel)" -+#define MOTO_IPC_VID 0x22b8 -+#define MOTO_IPC_PID 0x3006 -+#define IBUF_SIZE 32 /*urb size*/ -+#define IPC_USB_XMIT_SIZE 1024 -+#define IPC_URB_SIZE 32 -+#define IPC_USB_WRITE_INIT 0 -+#define IPC_USB_WRITE_XMIT 1 -+#define IPC_USB_PROBE_READY 3 -+#define IPC_USB_PROBE_NOT_READY 4 -+#define DBG_MAX_BUF_SIZE 1024 -+#define ICL_EVENT_INTERVAL (HZ) -+#undef BVD_DEBUG -+ -+#define IS_EP_BULK(ep) ((ep).bmAttributes == USB_ENDPOINT_XFER_BULK ? 1 : 0) -+#define IS_EP_BULK_IN(ep) (IS_EP_BULK(ep) && ((ep).bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) -+#define IS_EP_BULK_OUT(ep) (IS_EP_BULK(ep) && ((ep).bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) -+/*End defined macro*/ -+ -+/*global values defined*/ -+static struct usb_driver usb_ipc_driver; -+static struct timer_list ipcusb_timer; -+static struct timer_list suspend_timer; -+static struct timer_list wakeup_timer; -+static struct tty_struct ipcusb_tty; /* the coresponding tty struct, we just use flip buffer here. */ -+static struct tty_driver ipcusb_tty_driver; /* the coresponding tty driver, we just use write and chars in buff here*/ -+struct tty_driver *usb_for_mux_driver = NULL; -+struct tty_struct *usb_for_mux_tty = NULL; -+void (*usb_mux_dispatcher)(struct tty_struct *tty) = NULL; -+void (*usb_mux_sender)(void) = NULL; -+void (*ipcusb_ap_to_bp)(unsigned char*, int) = NULL; -+void (*ipcusb_bp_to_ap)(unsigned char*, int) = NULL; -+EXPORT_SYMBOL(usb_for_mux_driver); -+EXPORT_SYMBOL(usb_for_mux_tty); -+EXPORT_SYMBOL(usb_mux_dispatcher); -+EXPORT_SYMBOL(usb_mux_sender); -+EXPORT_SYMBOL(ipcusb_ap_to_bp); -+EXPORT_SYMBOL(ipcusb_bp_to_ap); -+static int sumbit_times = 0; -+static int callback_times = 0; -+//static unsigned long last_jiff = 0; -+extern int usbh_finished_resume; -+/*end global values defined*/ -+ -+MODULE_AUTHOR(DRIVER_AUTHOR); -+MODULE_DESCRIPTION(DRIVER_DESC); -+MODULE_LICENSE("GPL"); -+ -+#ifdef BVD_DEBUG -+#define bvd_dbg(format, arg...) printk(__FILE__ ": " format "\n" , ## arg) -+#else -+#define bvd_dbg(format, arg...) do {} while (0) -+#endif -+ -+/* USB device context */ -+typedef struct { -+ struct list_head list; -+ int size; -+ char *body; -+} buf_list_t; -+ -+struct ipc_usb_data { -+ u_int8_t write_finished_flag; -+ u_int8_t write_flag, -+ ipc_flag, -+ suspend_flag; -+ struct usb_device *ipc_dev; -+ struct urb readurb_mux, -+ writeurb_mux, -+ writeurb_dsplog; -+ char *obuf, *ibuf; -+ int writesize; /* max packet size for the -+ output bulk endpoint * -+ transfer buffers */ -+ -+ struct circ_buf xmit; /* write cric bufffer */ -+ struct list_head in_buf_list; -+ char bulk_in_ep_mux, -+ bulk_out_ep_mux, -+ bulk_in_ep_dsplog; -+ unsigned int ifnum; -+ -+ struct tasklet_struct bh, -+ bh_bp; -+ -+ spinlock_t lock; -+}; -+ -+struct ipc_usb_data *bvd_ipc; -+ -+#ifdef BVD_DEBUG -+static void bvd_dbg_hex(__u8 *buf, int len) -+{ -+ static unsigned char tbuf[DBG_MAX_BUF_SIZE]; -+ int i, c; -+ -+ if (len <= 0) -+ return; -+ -+ c = 0; -+ for (i=0; (i < len) && (c < (DBG_MAX_BUF_SIZE - 3)); i++) { -+ sprintf(&tbuf[c], "%02x ",buf[i]); -+ c += 3; -+ } -+ tbuf[c] = 0; -+ -+ printk("%s: %s\n", __FUNCTION__, tbuf); -+} -+#else -+#define bvd_dbg_hex(buf, len) -+#endif -+ -+static int unlink_urbs(struct urb *urb) -+{ -+ unsigned long flags; -+ int retval; -+ -+ spin_lock_irqsave(&bvd_ipc->lock, flags); -+ -+ retval = usb_unlink_urb(urb); -+ if (retval != -EINPROGRESS && retval != 0) -+ printk("unlink urb err, %d", retval); -+ -+ spin_unlock_irqrestore(&bvd_ipc->lock, flags); -+ return retval; -+} -+ -+static void append_to_inbuf_list(struct urb *urb) -+{ -+ buf_list_t *inbuf; -+ int count = urb->actual_length; -+ -+ inbuf = kmalloc(sizeof(buf_list_t), GFP_KERNEL); -+ if (!inbuf) { -+ printk("append_to_inbuf_list: (%d) out of memory!\n", -+ sizeof(buf_list_t)); -+ return; -+ } -+ -+ inbuf->size = count; -+ inbuf->body = kmalloc(sizeof(char)*count, GFP_KERNEL); -+ if (!inbuf->body) { -+ kfree(inbuf); -+ printk("append_to_inbuf_list: (%d) out of memory!\n", -+ sizeof(char)*count); -+ return; -+ } -+ memcpy(inbuf->body, (unsigned char*)urb->transfer_buffer, count); -+ list_add_tail(&inbuf->list, &bvd_ipc->in_buf_list); -+} -+ -+static void ipcusb_timeout(unsigned long data) -+{ -+ struct tty_struct *tty = &ipcusb_tty; -+ struct urb *urb = (struct urb *)data; -+ -+ bvd_dbg("ipcusb_timeout***"); -+ -+ while (!(list_empty(&bvd_ipc->in_buf_list))) { -+ int count; -+ buf_list_t *inbuf; -+ struct list_head *ptr = NULL; -+ -+ ptr = bvd_ipc->in_buf_list.next; -+ inbuf = list_entry (ptr, buf_list_t, list); -+ count = inbuf->size; -+ if (tty_insert_flip_string(tty, inbuf->body, count) >= count) { -+ list_del(ptr); -+ kfree(inbuf->body); -+ inbuf->body = NULL; -+ kfree(inbuf); -+ } else { -+ bvd_dbg("ipcusb_timeout: bvd_ipc->in_buf_list empty!"); -+ break; -+ } -+ } -+ -+ if (usb_mux_dispatcher) -+ usb_mux_dispatcher(tty); /**call Liu changhui's func.**/ -+ -+ if (list_empty(&bvd_ipc->in_buf_list)) { -+ urb->actual_length = 0; -+ urb->dev = bvd_ipc->ipc_dev; -+ if (usb_submit_urb(urb, GFP_ATOMIC)) -+ bvd_dbg("ipcusb_timeout: failed resubmitting read urb"); -+ bvd_dbg("ipcusb_timeout: resubmited read urb"); -+ } else { -+ ipcusb_timer.data = (unsigned long)urb; -+ mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); -+ } -+} -+ -+static void usb_ipc_read_bulk(struct urb *urb, struct pt_regs *regs) -+{ -+ buf_list_t *inbuf; -+ int count = urb->actual_length; -+ struct tty_struct *tty = &ipcusb_tty; -+ -+ bvd_dbg("usb_ipc_read_bulk: begining!"); -+ if (urb->status) -+ printk("nonzero read bulk status received: %d\n", urb->status); -+ -+ bvd_dbg("usb_ipc_read_bulk: urb->actual_length=%d", urb->actual_length); -+ bvd_dbg("usb_ipc_read_bulk: urb->transfer_buffer:"); -+ -+ bvd_dbg_hex((unsigned char*)urb->transfer_buffer, urb->actual_length); -+ -+ if (count > 0 && ((*ipcusb_bp_to_ap) != NULL)) -+ (*ipcusb_bp_to_ap)(urb->transfer_buffer, urb->actual_length); -+ -+ if (!(list_empty(&bvd_ipc->in_buf_list))) { -+ int need_mux = 0; -+ -+ bvd_dbg("usb_ipc_read_bulk: some urbs in_buf_list"); -+ if (count > 0) { -+ bvd_ipc->suspend_flag = 1; -+ append_to_inbuf_list(urb); /* append the current received urb */ -+#if 0 -+ if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -+ { -+ last_jiff = jiffies; -+ queue_apm_event(KRNL_ICL, NULL); -+ } -+#endif -+ } -+ -+ while (!(list_empty(&bvd_ipc->in_buf_list))) { -+ struct list_head* ptr = NULL; -+ ptr = bvd_ipc->in_buf_list.next; -+ inbuf = list_entry(ptr, buf_list_t, list); -+ count = inbuf->size; -+ need_mux = 1; -+ -+ tty_insert_flip_string(tty, inbuf->body, count); -+ -+ list_del(ptr); -+ kfree(inbuf->body); -+ inbuf->body = NULL; -+ kfree(inbuf); -+ } -+ -+ if (usb_mux_dispatcher && need_mux) -+ usb_mux_dispatcher(tty); /* call Liu changhui's func. */ -+ -+ if (list_empty(&bvd_ipc->in_buf_list)) { -+ urb->actual_length = 0; -+ urb->dev = bvd_ipc->ipc_dev; -+ if (usb_submit_urb(urb, GFP_ATOMIC)) -+ bvd_dbg("usb_ipc_read_bulk: " -+ "failed resubmitting read urb"); -+ bvd_dbg("usb_ipc_read_bulk: resubmited read urb"); -+ } else { -+ ipcusb_timer.data = (unsigned long)urb; -+ mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); -+ } -+ } else if (count > 0) { -+ bvd_dbg("usb_ipc_read_bulk: no urbs in_buf_list"); -+ bvd_ipc->suspend_flag = 1; -+ -+ if (tty_insert_flip_string(tty, urb->transfer_buffer, -+ count) < count) { -+ bvd_ipc->suspend_flag = 1; -+ append_to_inbuf_list(urb); -+ ipcusb_timer.data = (unsigned long)urb; -+ mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); -+#if 0 -+ if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -+ { -+ last_jiff = jiffies; -+ queue_apm_event(KRNL_ICL, NULL); -+ } -+#endif -+ } -+ -+ if (usb_mux_dispatcher) -+ usb_mux_dispatcher(tty); /* call Liu changhui's func. */ -+ -+ urb->actual_length = 0; -+ urb->dev = bvd_ipc->ipc_dev; -+ if (usb_submit_urb(urb, GFP_ATOMIC)) -+ bvd_dbg("failed resubmitting read urb"); -+#if 0 -+ if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -+ { -+ last_jiff = jiffies; -+ queue_apm_event(KRNL_ICL, NULL); -+ } -+#endif -+ bvd_dbg("usb_ipc_read_bulk: resubmited read urb"); -+ } -+ -+ bvd_dbg("usb_ipc_read_bulk: completed!!!"); -+} -+ -+static void usb_ipc_write_bulk(struct urb *urb, struct pt_regs *regs) -+{ -+ callback_times++; -+ bvd_ipc->write_finished_flag = 1; -+ -+ bvd_dbg("usb_ipc_write_bulk: begining!"); -+ //printk("%s: write_finished_flag=%d\n", __FUNCTION__, bvd_ipc->write_finished_flag); -+ -+ if (urb->status) -+ printk("nonzero write bulk status received: %d\n", urb->status); -+ -+ if (usb_mux_sender) -+ usb_mux_sender(); /**call Liu changhui's func**/ -+ -+ //printk("usb_ipc_write_bulk: mark ipcusb_softint!\n"); -+ tasklet_schedule(&bvd_ipc->bh); -+ -+ bvd_dbg("usb_ipc_write_bulk: finished!"); -+} -+ -+static void wakeup_timeout(unsigned long data) -+{ -+ GPSR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); -+ bvd_dbg("wakup_timeout: send GPIO_MCU_INT_SW signal!"); -+} -+ -+static void suspend_timeout(unsigned long data) -+{ -+ if (bvd_ipc->suspend_flag == 1) { -+ bvd_ipc->suspend_flag = 0; -+ mod_timer(&suspend_timer, jiffies+(5000*HZ/1000)); -+ bvd_dbg("suspend_timeout: add the suspend timer again"); -+ } else { -+ unlink_urbs(&bvd_ipc->readurb_mux); -+ UHCRHPS3 = 0x4; -+ mdelay(40); -+ bvd_dbg("suspend_timeout: send SUSPEND signal! UHCRHPS3=0x%x", -+ UHCRHPS3); -+ } -+} -+ -+static void ipcusb_xmit_data(void) -+{ -+ int c, count = IPC_URB_SIZE; -+ int result = 0; -+ int buf_flag = 0; -+ int buf_num = 0; -+ -+ //printk("%s: sumbit_times=%d, callback_times=%d\n", __FUNCTION__, sumbit_times, callback_times); -+ if (bvd_ipc->write_finished_flag == 0) -+ return; -+ -+ while (1) { -+ c = CIRC_CNT_TO_END(bvd_ipc->xmit.head, bvd_ipc->xmit.tail, -+ IPC_USB_XMIT_SIZE); -+ if (count < c) -+ c = count; -+ if (c <= 0) -+ break; -+ -+ memcpy(bvd_ipc->obuf+buf_num, -+ bvd_ipc->xmit.buf + bvd_ipc->xmit.tail, c); -+ buf_flag = 1; -+ bvd_ipc->xmit.tail = ((bvd_ipc->xmit.tail + c) -+ & (IPC_USB_XMIT_SIZE-1)); -+ count -= c; -+ buf_num += c; -+ } -+ -+ if (buf_num == 0) { -+ bvd_dbg("ipcusb_xmit_data: buf_num=%d, add suspend_timer", -+ buf_num); -+ bvd_ipc->suspend_flag = 0; -+ mod_timer(&suspend_timer, jiffies+(5000*HZ/1000)); -+ } -+ -+ bvd_dbg("ipcusb_xmit_data: buf_num=%d", buf_num); -+ bvd_dbg("ipcusb_xmit_data: bvd_ipc->obuf: "); -+ -+ bvd_dbg_hex((bvd_ipc->obuf)-buf_num, buf_num); -+ -+ if (buf_flag) { -+ bvd_ipc->writeurb_mux.transfer_buffer_length = buf_num; -+ bvd_dbg("ipcusb_xmit_data: copy data to write urb finished! "); -+ -+ if ((UHCRHPS3 & 0x4) == 0x4) { -+ static int ret; -+ int time = 0; -+ -+ /* if BP sleep, wake up BP first */ -+ pxa_gpio_mode(GPIO_IN | 41); -+ if (GPIO_is_high(41)) { -+ if (GPIO_is_high(GPIO_MCU_INT_SW)) -+ GPCR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); -+ else -+ GPSR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); -+ -+ time = jiffies; -+ while (GPIO_is_high(41) && (jiffies < (time+HZ))); -+ -+ if (GPIO_is_high(41)) { -+ printk("%s: Wakeup BP timeout! BP state is %d\n", -+ __FUNCTION__, GPIO_is_high(41)); -+ } -+ if (GPIO_is_high(GPIO_MCU_INT_SW)) -+ GPCR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); -+ else -+ GPSR(GPIO_MCU_INT_SW) = GPIO_bit(GPIO_MCU_INT_SW); -+ } -+ -+ /* Resume BP */ -+ UHCRHPS3 = 0x8; -+ mdelay(40); -+ bvd_dbg("ipcusb_xmit_data: Send RESUME signal! UHCRHPS3=0x%x", -+ UHCRHPS3); -+ /*send IN token*/ -+ bvd_ipc->readurb_mux.actual_length = 0; -+ bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; -+ if (ret = usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) -+ printk("ipcusb_xmit_data: usb_submit_urb(read mux bulk)" -+ "failed! status=%d\n", ret); -+ bvd_dbg("ipcusb_xmit_data: Send a IN token successfully!"); -+ } -+ -+ sumbit_times++; -+ bvd_ipc->write_finished_flag = 0; -+ //printk("%s: clear write_finished_flag:%d\n", __FUNCTION__, bvd_ipc->write_finished_flag); -+ bvd_ipc->writeurb_mux.dev = bvd_ipc->ipc_dev; -+ if (result = usb_submit_urb(&bvd_ipc->writeurb_mux, GFP_ATOMIC)) -+ warn("ipcusb_xmit_data: funky result! result=%d\n", result); -+ -+ bvd_dbg("ipcusb_xmit_data: usb_submit_urb finished! result:%d", result); -+ -+ } -+} -+ -+static void usbipc_bh_func(unsigned long param) -+{ -+ ipcusb_xmit_data(); -+} -+ -+extern void get_halted_bit(void); -+ -+static void usbipc_bh_bp_func(unsigned long param) -+{ -+ if ((UHCRHPS3 & 0x4) == 0x4) { -+ UHCRHPS3 = 0x8; -+ mdelay(40); -+ bvd_dbg("ipcusb_softint_send_readurb: Send RESUME signal! " -+ "UHCRHPS3=0x%x", UHCRHPS3); -+ } -+ if (bvd_ipc->ipc_flag == IPC_USB_PROBE_READY) { -+ get_halted_bit(); -+ -+ /*send a IN token*/ -+ bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; -+ if (usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) { -+ bvd_dbg("ipcusb_softint_send_readurb: " -+ "usb_submit_urb(read mux bulk) failed!"); -+ } -+ bvd_dbg("ipcusb_softint_send_readurb: Send a IN token successfully!"); -+ bvd_ipc->suspend_flag = 0; -+ bvd_dbg("ipcusb_softint_send_readurb: add suspend_timer"); -+ mod_timer(&suspend_timer, jiffies+(5000*HZ/1000)); -+ } -+} -+ -+static int usb_ipc_write(struct tty_struct *tty, -+ const unsigned char *buf, int count) -+{ -+ int c, ret = 0; -+ -+ bvd_dbg("usb_ipc_write: count=%d, buf: ", count); -+ bvd_dbg_hex(buf, count); -+ -+ if (count <= 0) -+ return 0; -+ -+ if (*ipcusb_ap_to_bp != NULL) -+ (*ipcusb_ap_to_bp)(buf, count); -+ -+ bvd_ipc->suspend_flag = 1; -+ -+ if ((bvd_ipc->ipc_flag == IPC_USB_PROBE_READY) && -+ (bvd_ipc->xmit.head == bvd_ipc->xmit.tail)) { -+ bvd_dbg("usb_ipc_write: set write_flag"); -+ bvd_ipc->write_flag = IPC_USB_WRITE_XMIT; -+ } -+ -+ while (1) { -+ c = CIRC_SPACE_TO_END(bvd_ipc->xmit.head, -+ bvd_ipc->xmit.tail, IPC_USB_XMIT_SIZE); -+ if (count < c) -+ c = count; -+ if (c <= 0) -+ break; -+ -+ memcpy(bvd_ipc->xmit.buf + bvd_ipc->xmit.head, buf, c); -+ bvd_ipc->xmit.head = ((bvd_ipc->xmit.head + c) -+ & (IPC_USB_XMIT_SIZE-1)); -+ buf += c; -+ count -= c; -+ ret += c; -+ } -+ bvd_dbg("usb_ipc_write: ret=%d, bvd_ipc->xmit.buf: ", ret); -+ -+ bvd_dbg_hex(bvd_ipc->xmit.buf, ret); -+ -+ if (bvd_ipc->write_flag == IPC_USB_WRITE_XMIT) { -+ bvd_ipc->write_flag = IPC_USB_WRITE_INIT; -+ bvd_dbg("usb_ipc_write: mark ipcusb_softint"); -+ tasklet_schedule(&bvd_ipc->bh); -+ } -+ -+ bvd_dbg("usb_ipc_write: ret=%d\n", ret); -+ return ret; -+} -+ -+static int usb_ipc_chars_in_buffer(struct tty_struct *tty) -+{ -+ return CIRC_CNT(bvd_ipc->xmit.head, bvd_ipc->xmit.tail, IPC_USB_XMIT_SIZE); -+} -+ -+void usb_send_readurb(void) -+{ -+ //printk("usb_send_readurb: begining!UHCRHPS3=0x%x, usbh_finished_resume=%d\n", UHCRHPS3, usbh_finished_resume); -+ -+ if (usbh_finished_resume == 0) -+ return; -+ -+ tasklet_schedule(&bvd_ipc->bh_bp); -+} -+ -+static int usb_ipc_probe(struct usb_interface *intf, -+ const struct usb_device_id *id) -+{ -+ struct usb_device *usbdev = interface_to_usbdev(intf); -+ struct usb_config_descriptor *ipccfg; -+ struct usb_interface_descriptor *interface; -+ struct usb_endpoint_descriptor *endpoint; -+ int ep_cnt, readsize, writesize; -+ char have_bulk_in_mux, have_bulk_out_mux; -+ -+ bvd_dbg("usb_ipc_probe: vendor id 0x%x, device id 0x%x", -+ usbdev->descriptor.idVendor, usbdev->descriptor.idProduct); -+ -+ if ((usbdev->descriptor.idVendor != MOTO_IPC_VID) || -+ (usbdev->descriptor.idProduct != MOTO_IPC_PID)) -+ return -ENODEV; -+ -+ /* a2590c : dsplog interface is not supported by this driver */ -+ if (intf->minor == 2) /* dsplog interface number is 2 */ -+ return -1; -+ -+ bvd_dbg("usb_ipc_probe: USB dev address:%p", usbdev); -+ bvd_dbg("usb_ipc_probe: ifnum:%u", intf->minor); -+ -+ ipccfg = &usbdev->actconfig->desc; -+ bvd_dbg("usb_ipc_prob: config%d", ipccfg->bConfigurationValue); -+ bvd_dbg("usb_ipc_prob: bNumInterfaces = %d", ipccfg->bNumInterfaces); -+ -+ /* After this point we can be a little noisy about what we are trying -+ * to configure, hehe. */ -+ if (usbdev->descriptor.bNumConfigurations != 1) { -+ info("usb_ipc_probe: Only one device configuration " -+ "is supported."); -+ return -1; -+ } -+ -+ if (usbdev->config[0].desc.bNumInterfaces != 3) { -+ info("usb_ipc_probe: Only three device interfaces are " -+ "supported."); -+ return -1; -+ } -+ -+ interface = &intf->cur_altsetting->desc; -+ endpoint = &intf->cur_altsetting->endpoint[0].desc; -+ /* Start checking for two bulk endpoints or ... FIXME: This is a future -+ * enhancement...*/ -+ bvd_dbg("usb_ipc_probe: Number of Endpoints:%d", -+ (int) interface->bNumEndpoints); -+ if (interface->bNumEndpoints != 2) { -+ info("usb_ipc_probe: Only two endpoints supported."); -+ return -1; -+ } -+ -+ ep_cnt = have_bulk_in_mux = have_bulk_out_mux = 0; -+ -+ bvd_dbg("usb_ipc_probe: endpoint[0] is:%x", -+ (&endpoint[0])->bEndpointAddress); -+ bvd_dbg("usb_ipc_probe: endpoint[1] is:%x ", -+ (&endpoint[1])->bEndpointAddress); -+ -+ while (ep_cnt < interface->bNumEndpoints) { -+ -+ if (!have_bulk_in_mux && IS_EP_BULK_IN(endpoint[ep_cnt])) { -+ bvd_dbg("usb_ipc_probe: bEndpointAddress(IN) is:%x ", -+ (&endpoint[ep_cnt])->bEndpointAddress); -+ have_bulk_in_mux = -+ (&endpoint[ep_cnt])->bEndpointAddress; -+ readsize = (&endpoint[ep_cnt])->wMaxPacketSize; -+ bvd_dbg("usb_ipc_probe: readsize=%d", readsize); -+ ep_cnt++; -+ continue; -+ } -+ -+ if (!have_bulk_out_mux && IS_EP_BULK_OUT(endpoint[ep_cnt])) { -+ bvd_dbg("usb_ipc_probe: bEndpointAddress(OUT) is:%x ", -+ (&endpoint[ep_cnt])->bEndpointAddress); -+ have_bulk_out_mux = -+ (&endpoint[ep_cnt])->bEndpointAddress; -+ writesize = (&endpoint[ep_cnt])->wMaxPacketSize; -+ bvd_dbg("usb_ipc_probe: writesize=%d", writesize); -+ ep_cnt++; -+ continue; -+ } -+ -+ info("usb_ipc_probe: Undetected endpoint ^_^ "); -+ /* Shouldn't ever get here unless we have something weird */ -+ return -1; -+ } -+ -+ /* Perform a quick check to make sure that everything worked as it -+ * should have. */ -+ -+ switch (interface->bNumEndpoints) { -+ case 2: -+ if (!have_bulk_in_mux || !have_bulk_out_mux) { -+ info("usb_ipc_probe: Two bulk endpoints required."); -+ return -1; -+ } -+ break; -+ default: -+ info("usb_ipc_probe: Endpoint determination failed ^_^ "); -+ return -1; -+ } -+ -+ /* Ok, now initialize all the relevant values */ -+ if (!(bvd_ipc->obuf = (char *)kmalloc(writesize, GFP_KERNEL))) { -+ err("usb_ipc_probe: Not enough memory for the output buffer."); -+ kfree(bvd_ipc); -+ return -1; -+ } -+ bvd_dbg("usb_ipc_probe: obuf address:%p", bvd_ipc->obuf); -+ -+ if (!(bvd_ipc->ibuf = (char *)kmalloc(readsize, GFP_KERNEL))) { -+ err("usb_ipc_probe: Not enough memory for the input buffer."); -+ kfree(bvd_ipc->obuf); -+ kfree(bvd_ipc); -+ return -1; -+ } -+ bvd_dbg("usb_ipc_probe: ibuf address:%p", bvd_ipc->ibuf); -+ -+ bvd_ipc->ipc_flag = IPC_USB_PROBE_READY; -+ bvd_ipc->write_finished_flag = 1; -+ bvd_ipc->suspend_flag = 1; -+ bvd_ipc->bulk_in_ep_mux= have_bulk_in_mux; -+ bvd_ipc->bulk_out_ep_mux= have_bulk_out_mux; -+ bvd_ipc->ipc_dev = usbdev; -+ bvd_ipc->writesize = writesize; -+ INIT_LIST_HEAD (&bvd_ipc->in_buf_list); -+ -+ bvd_ipc->bh.func = usbipc_bh_func; -+ bvd_ipc->bh.data = (unsigned long) bvd_ipc; -+ -+ bvd_ipc->bh_bp.func = usbipc_bh_bp_func; -+ bvd_ipc->bh_bp.data = (unsigned long) bvd_ipc; -+ -+ /*Build a write urb*/ -+ usb_fill_bulk_urb(&bvd_ipc->writeurb_mux, usbdev, -+ usb_sndbulkpipe(bvd_ipc->ipc_dev, -+ bvd_ipc->bulk_out_ep_mux), -+ bvd_ipc->obuf, writesize, usb_ipc_write_bulk, -+ bvd_ipc); -+ //bvd_ipc->writeurb_mux.transfer_flags |= USB_ASYNC_UNLINK; -+ -+ /*Build a read urb and send a IN token first time*/ -+ usb_fill_bulk_urb(&bvd_ipc->readurb_mux, usbdev, -+ usb_rcvbulkpipe(usbdev, bvd_ipc->bulk_in_ep_mux), -+ bvd_ipc->ibuf, readsize, usb_ipc_read_bulk, bvd_ipc); -+ //bvd_ipc->readurb_mux.transfer_flags |= USB_ASYNC_UNLINK; -+ -+ usb_driver_claim_interface(&usb_ipc_driver, intf, bvd_ipc); -+ //usb_driver_claim_interface(&usb_ipc_driver, &ipccfg->interface[1], bvd_ipc); -+ -+ // a2590c: dsplog is not supported by this driver -+ // usb_driver_claim_interface(&usb_ipc_driver, -+ // &ipccfg->interface[2], bvd_ipc); -+ /*send a IN token first time*/ -+ bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; -+ if (usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) -+ printk("usb_ipc_prob: usb_submit_urb(read mux bulk) failed!\n"); -+ -+ bvd_dbg("usb_ipc_prob: Send a IN token successfully!"); -+ -+ if (bvd_ipc->xmit.head != bvd_ipc->xmit.tail) { -+ printk("usb_ipc_probe: mark ipcusb_softint!\n"); -+ tasklet_schedule(&bvd_ipc->bh); -+ } -+ -+ printk("usb_ipc_probe: completed probe!"); -+ usb_set_intfdata(intf, &bvd_ipc); -+ return 0; -+} -+ -+static void usb_ipc_disconnect(struct usb_interface *intf) -+{ -+ //struct usb_device *usbdev = interface_to_usbdev(intf); -+ struct ipc_usb_data *bvd_ipc_disconnect = usb_get_intfdata(intf); -+ -+ printk("usb_ipc_disconnect:*** \n"); -+ -+ if ((UHCRHPS3 & 0x4) == 0) -+ usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux); -+ -+ usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux); -+ -+ bvd_ipc_disconnect->ipc_flag = IPC_USB_PROBE_NOT_READY; -+ kfree(bvd_ipc_disconnect->ibuf); -+ kfree(bvd_ipc_disconnect->obuf); -+ -+ usb_driver_release_interface(&usb_ipc_driver, -+ bvd_ipc_disconnect->ipc_dev->actconfig->interface[0]); -+ usb_driver_release_interface(&usb_ipc_driver, -+ bvd_ipc_disconnect->ipc_dev->actconfig->interface[1]); -+ -+ //a2590c: dsplog interface is not supported by this driver -+ //usb_driver_release_interface(&usb_ipc_driver, &bvd_ipc_disconnect->ipc_dev->actconfig->interface[2]); -+ -+ bvd_ipc_disconnect->ipc_dev = NULL; -+ -+ usb_set_intfdata(intf, NULL); -+ -+ printk("usb_ipc_disconnect completed!\n"); -+} -+ -+static struct usb_device_id usb_ipc_id_table[] = { -+ { USB_DEVICE(MOTO_IPC_VID, MOTO_IPC_PID) }, -+ { } /* Terminating entry */ -+}; -+ -+static struct usb_driver usb_ipc_driver = { -+ .name = "usb ipc", -+ .probe = usb_ipc_probe, -+ .disconnect = usb_ipc_disconnect, -+ .id_table = usb_ipc_id_table, -+}; -+ -+static int __init usb_ipc_init(void) -+{ -+ int result; -+ -+ bvd_dbg("init usb_ipc"); -+ /* register driver at the USB subsystem */ -+ result = usb_register(&usb_ipc_driver); -+ if (result < 0) { -+ err ("usb ipc driver could not be registered"); -+ return result; -+ } -+ -+ /*init the related mux interface*/ -+ if (!(bvd_ipc = kzalloc(sizeof(struct ipc_usb_data), GFP_KERNEL))) { -+ err("usb_ipc_init: Out of memory."); -+ usb_deregister(&usb_ipc_driver); -+ return -ENOMEM; -+ } -+ bvd_dbg("usb_ipc_init: Address of bvd_ipc:%p", bvd_ipc); -+ -+ if (!(bvd_ipc->xmit.buf = kmalloc(IPC_USB_XMIT_SIZE, GFP_KERNEL))) { -+ err("usb_ipc_init: Not enough memory for the input buffer."); -+ kfree(bvd_ipc); -+ usb_deregister(&usb_ipc_driver); -+ return -ENOMEM; -+ } -+ bvd_dbg("usb_ipc_init: bvd_ipc->xmit.buf address:%p", -+ bvd_ipc->xmit.buf); -+ bvd_ipc->ipc_dev = NULL; -+ bvd_ipc->xmit.head = bvd_ipc->xmit.tail = 0; -+ bvd_ipc->write_flag = IPC_USB_WRITE_INIT; -+ -+ ipcusb_tty_driver.write = usb_ipc_write; -+ ipcusb_tty_driver.chars_in_buffer = usb_ipc_chars_in_buffer; -+ -+ usb_for_mux_driver = &ipcusb_tty_driver; -+ usb_for_mux_tty = &ipcusb_tty; -+ -+ /* init timers for ipcusb read process and usb suspend */ -+ init_timer(&ipcusb_timer); -+ ipcusb_timer.function = ipcusb_timeout; -+ -+ init_timer(&suspend_timer); -+ suspend_timer.function = suspend_timeout; -+ -+ init_timer(&wakeup_timer); -+ wakeup_timer.function = wakeup_timeout; -+ -+ info("USB Host(Bulverde) IPC driver registered."); -+ info(DRIVER_VERSION ":" DRIVER_DESC); -+ -+ return 0; -+} -+ -+static void __exit usb_ipc_exit(void) -+{ -+ bvd_dbg("cleanup bvd_ipc"); -+ -+ kfree(bvd_ipc->xmit.buf); -+ kfree(bvd_ipc); -+ usb_deregister(&usb_ipc_driver); -+ -+ info("USB Host(Bulverde) IPC driver deregistered."); -+} -+ -+module_init(usb_ipc_init); -+module_exit(usb_ipc_exit); -+EXPORT_SYMBOL(usb_send_readurb); -Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.h 2007-04-21 18:07:21.000000000 +0200 -@@ -0,0 +1,29 @@ -+/* -+ * linux/drivers/usb/ipcusb.h -+ * -+ * Implementation of a ipc driver based Intel's Bulverde USB Host -+ * Controller. -+ * -+ * Copyright (C) 2003-2005 Motorola -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ * 2003-Nov-18 - (Motorola) created -+ * -+ */ -+extern struct tty_driver *usb_for_mux_driver; -+extern struct tty_struct *usb_for_mux_tty; -+extern void (*usb_mux_dispatcher)(struct tty_struct *tty); -+extern void (*usb_mux_sender)(void); diff --git a/packages/linux/linux-ezx-2.6.20.7/usb_add_epalloc-r3.patch b/packages/linux/linux-ezx-2.6.20.7/usb_add_epalloc-r3.patch deleted file mode 100644 index fc9daf5297..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/usb_add_epalloc-r3.patch +++ /dev/null @@ -1,282 +0,0 @@ -Index: linux-2.6.20.7/drivers/usb/gadget/epautoconf.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/epautoconf.c 2007-04-21 11:24:21.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/epautoconf.c 2007-04-21 11:27:53.000000000 -0300 -@@ -228,14 +228,19 @@ - * - * On failure, this returns a null endpoint descriptor. - */ --struct usb_ep * __devinit usb_ep_autoconfig ( -+struct usb_ep * usb_ep_autoconfig ( - struct usb_gadget *gadget, -- struct usb_endpoint_descriptor *desc -+ struct usb_endpoint_descriptor *desc, -+ struct usb_endpoint_config *epconfig, int numconfigs - ) - { - struct usb_ep *ep; - u8 type; - -+ /* Use device specific ep allocation code if provided */ -+ if (gadget->ops->ep_alloc) -+ return gadget->ops->ep_alloc(gadget, desc, epconfig, numconfigs); -+ - type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; - - /* First, apply chip-specific "best usage" knowledge. -Index: linux-2.6.20.7/drivers/usb/gadget/ether.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/ether.c 2007-04-21 11:27:52.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/ether.c 2007-04-21 11:27:53.000000000 -0300 -@@ -2219,7 +2219,8 @@ - struct eth_dev *dev; - struct net_device *net; - u8 cdc = 1, zlp = 1, rndis = 1; -- struct usb_ep *in_ep, *out_ep, *status_ep = NULL; -+ struct usb_ep *in_ep = NULL , *out_ep = NULL, *status_ep = NULL; -+ struct usb_endpoint_config ep_config[2]; - int status = -ENOMEM; - int gcnum; - -@@ -2318,7 +2319,26 @@ - - /* all we really need is bulk IN/OUT */ - usb_ep_autoconfig_reset (gadget); -- in_ep = usb_ep_autoconfig (gadget, &fs_source_desc); -+ -+ ep_config[0].config = DEV_CONFIG_VALUE; -+#if defined(DEV_CONFIG_CDC) -+ ep_config[0].interface = data_intf.bInterfaceNumber; -+ ep_config[0].altinterface = data_intf.bAlternateSetting; -+#else /* DEV_CONFIG_SUBSET */ -+ ep_config[0].interface = subset_data_intf.bInterfaceNumber; -+ ep_config[0].altinterface = subset_data_intf.bAlternateSetting; -+#endif -+ -+#ifdef CONFIG_USB_ETH_RNDIS -+ ep_config[1].config = DEV_RNDIS_CONFIG_VALUE; -+ ep_config[1].interface = rndis_data_intf.bInterfaceNumber; -+ ep_config[1].altinterface = rndis_data_intf.bAlternateSetting; -+ -+ in_ep = usb_ep_autoconfig(gadget, &fs_source_desc, &ep_config[0], 2); -+#else -+ in_ep = usb_ep_autoconfig(gadget, &fs_source_desc, &ep_config[0], 1); -+#endif -+ - if (!in_ep) { - autoconf_fail: - dev_err (&gadget->dev, -@@ -2328,7 +2348,12 @@ - } - in_ep->driver_data = in_ep; /* claim */ - -- out_ep = usb_ep_autoconfig (gadget, &fs_sink_desc); -+#ifdef CONFIG_USB_ETH_RNDIS -+ out_ep = usb_ep_autoconfig(gadget, &fs_sink_desc, &ep_config[0], 2); -+#else -+ out_ep = usb_ep_autoconfig(gadget, &fs_sink_desc, &ep_config[0], 1); -+#endif -+ - if (!out_ep) - goto autoconf_fail; - out_ep->driver_data = out_ep; /* claim */ -@@ -2338,7 +2363,25 @@ - * Since some hosts expect one, try to allocate one anyway. - */ - if (cdc || rndis) { -- status_ep = usb_ep_autoconfig (gadget, &fs_status_desc); -+#ifdef DEV_CONFIG_CDC -+ ep_config[0].config = DEV_CONFIG_VALUE; -+ ep_config[0].interface = control_intf.bInterfaceNumber; -+ ep_config[0].altinterface = control_intf.bAlternateSetting; -+#endif -+#ifdef CONFIG_USB_ETH_RNDIS -+ ep_config[1].config = DEV_RNDIS_CONFIG_VALUE; -+ ep_config[1].interface = rndis_control_intf.bInterfaceNumber; -+ ep_config[1].altinterface = rndis_control_intf.bAlternateSetting; -+#endif -+ -+#if defined(DEV_CONFIG_CDC) && defined(CONFIG_USB_ETH_RNDIS) -+ status_ep = usb_ep_autoconfig(gadget, &fs_status_desc, &ep_config[0], 2); -+#elif defined(CONFIG_USB_ETH_RNDIS) -+ status_ep = usb_ep_autoconfig(gadget, &fs_status_desc, &ep_config[1], 1); -+#else -+ status_ep = usb_ep_autoconfig(gadget, &fs_status_desc, &ep_config[0], 1); -+#endif -+ - if (status_ep) { - status_ep->driver_data = status_ep; /* claim */ - } else if (rndis) { -Index: linux-2.6.20.7/drivers/usb/gadget/file_storage.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/file_storage.c 2007-04-21 11:24:21.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/file_storage.c 2007-04-21 11:27:53.000000000 -0300 -@@ -3850,6 +3850,7 @@ - struct usb_ep *ep; - struct usb_request *req; - char *pathbuf, *p; -+ struct usb_endpoint_config ep_config; - - fsg->gadget = gadget; - set_gadget_data(gadget, fsg); -@@ -3920,21 +3921,25 @@ - } - - /* Find all the endpoints we will use */ -+ ep_config.config = CONFIG_VALUE; -+ ep_config.interface = intf_desc.bInterfaceNumber; -+ ep_config.altinterface = intf_desc.bAlternateSetting; -+ - usb_ep_autoconfig_reset(gadget); -- ep = usb_ep_autoconfig(gadget, &fs_bulk_in_desc); -+ ep = usb_ep_autoconfig(gadget, &fs_bulk_in_desc, &ep_config, 1); - if (!ep) - goto autoconf_fail; - ep->driver_data = fsg; // claim the endpoint - fsg->bulk_in = ep; - -- ep = usb_ep_autoconfig(gadget, &fs_bulk_out_desc); -+ ep = usb_ep_autoconfig(gadget, &fs_bulk_out_desc, &ep_config, 1); - if (!ep) - goto autoconf_fail; - ep->driver_data = fsg; // claim the endpoint - fsg->bulk_out = ep; - - if (transport_is_cbi()) { -- ep = usb_ep_autoconfig(gadget, &fs_intr_in_desc); -+ ep = usb_ep_autoconfig(gadget, &fs_intr_in_desc, &ep_config, 1); - if (!ep) - goto autoconf_fail; - ep->driver_data = fsg; // claim the endpoint -Index: linux-2.6.20.7/drivers/usb/gadget/serial.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/serial.c 2007-04-21 11:24:21.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/serial.c 2007-04-21 11:27:53.000000000 -0300 -@@ -1357,6 +1357,7 @@ - struct usb_ep *ep; - struct gs_dev *dev; - int gcnum; -+ struct usb_endpoint_config ep_config[2]; - - /* Some controllers can't support CDC ACM: - * - sh doesn't support multiple interfaces or configs; -@@ -1377,22 +1378,33 @@ - __constant_cpu_to_le16(GS_VERSION_NUM|0x0099); - } - -+ ep_config[0].config = GS_BULK_CONFIG_ID; -+ ep_config[0].interface = gs_bulk_interface_desc.bInterfaceNumber; -+ ep_config[0].altinterface = gs_bulk_interface_desc.bAlternateSetting; -+ ep_config[1].config = GS_ACM_CONFIG_ID; -+ ep_config[1].interface = gs_data_interface_desc.bInterfaceNumber; -+ ep_config[1].altinterface = gs_data_interface_desc.bAlternateSetting; -+ - usb_ep_autoconfig_reset(gadget); - -- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_in_desc); -+ ep = usb_ep_autoconfig(gadget, &gs_fullspeed_in_desc, &ep_config[0], 2); - if (!ep) - goto autoconf_fail; - EP_IN_NAME = ep->name; - ep->driver_data = ep; /* claim the endpoint */ - -- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_out_desc); -+ ep = usb_ep_autoconfig(gadget, &gs_fullspeed_out_desc, &ep_config[0], 2); - if (!ep) - goto autoconf_fail; - EP_OUT_NAME = ep->name; - ep->driver_data = ep; /* claim the endpoint */ - - if (use_acm) { -- ep = usb_ep_autoconfig(gadget, &gs_fullspeed_notify_desc); -+ ep_config[0].config = GS_ACM_CONFIG_ID; -+ ep_config[0].interface = gs_control_interface_desc.bInterfaceNumber; -+ ep_config[0].altinterface = gs_control_interface_desc.bAlternateSetting; -+ -+ ep = usb_ep_autoconfig(gadget, &gs_fullspeed_notify_desc, &ep_config[0], 1); - if (!ep) { - printk(KERN_ERR "gs_bind: cannot run ACM on %s\n", gadget->name); - goto autoconf_fail; -Index: linux-2.6.20.7/drivers/usb/gadget/zero.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/zero.c 2007-04-21 11:24:21.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/zero.c 2007-04-21 11:27:53.000000000 -0300 -@@ -1144,6 +1144,7 @@ - struct zero_dev *dev; - struct usb_ep *ep; - int gcnum; -+ struct usb_endpoint_config ep_config[2]; - - /* FIXME this can't yet work right with SH ... it has only - * one configuration, numbered one. -@@ -1156,7 +1157,15 @@ - * but there may also be important quirks to address. - */ - usb_ep_autoconfig_reset (gadget); -- ep = usb_ep_autoconfig (gadget, &fs_source_desc); -+ -+ ep_config[0].config = CONFIG_SOURCE_SINK; -+ ep_config[0].interface = source_sink_intf.bInterfaceNumber; -+ ep_config[0].altinterface = source_sink_intf.bAlternateSetting; -+ ep_config[1].config = CONFIG_LOOPBACK; -+ ep_config[1].interface = loopback_intf.bInterfaceNumber; -+ ep_config[1].altinterface = loopback_intf.bAlternateSetting; -+ -+ ep = usb_ep_autoconfig(gadget, &fs_source_desc, &ep_config[0], 2); - if (!ep) { - autoconf_fail: - printk (KERN_ERR "%s: can't autoconfigure on %s\n", -@@ -1166,7 +1175,7 @@ - EP_IN_NAME = ep->name; - ep->driver_data = ep; /* claim */ - -- ep = usb_ep_autoconfig (gadget, &fs_sink_desc); -+ ep = usb_ep_autoconfig(gadget, &fs_sink_desc, &ep_config[0], 2); - if (!ep) - goto autoconf_fail; - EP_OUT_NAME = ep->name; -Index: linux-2.6.20.7/include/linux/usb_gadget.h -=================================================================== ---- linux-2.6.20.7.orig/include/linux/usb_gadget.h 2007-04-21 11:24:21.000000000 -0300 -+++ linux-2.6.20.7/include/linux/usb_gadget.h 2007-04-21 11:27:53.000000000 -0300 -@@ -445,10 +445,28 @@ - - struct usb_gadget; - -+/** -+ * struct usb_endpoint_config - possible configurations of a given endpoint -+ * @config: the configuration number -+ * @interface: the interface number -+ * @altinterface: the altinterface number -+ * -+ * Used as an array to pass information about the possible configurations -+ * of a given endpoint to the bus controller. -+ */ -+struct usb_endpoint_config { -+ u8 config; -+ u8 interface; -+ u8 altinterface; -+}; -+ - /* the rest of the api to the controller hardware: device operations, - * which don't involve endpoints (or i/o). - */ - struct usb_gadget_ops { -+ struct usb_ep* (*ep_alloc)(struct usb_gadget *, -+ struct usb_endpoint_descriptor *, -+ struct usb_endpoint_config *, int); - int (*get_frame)(struct usb_gadget *); - int (*wakeup)(struct usb_gadget *); - int (*set_selfpowered) (struct usb_gadget *, int is_selfpowered); -@@ -872,7 +890,10 @@ - /* utility wrapping a simple endpoint selection policy */ - - extern struct usb_ep *usb_ep_autoconfig (struct usb_gadget *, -- struct usb_endpoint_descriptor *) __devinit; -+ struct usb_endpoint_descriptor *, -+ struct usb_endpoint_config *, -+ int numconfigs -+); - - extern void usb_ep_autoconfig_reset (struct usb_gadget *) __devinit; - diff --git a/packages/linux/linux-ezx-2.6.20.7/usb_pxa27x_udc-r3.patch b/packages/linux/linux-ezx-2.6.20.7/usb_pxa27x_udc-r3.patch deleted file mode 100644 index 2e60d5b9ce..0000000000 --- a/packages/linux/linux-ezx-2.6.20.7/usb_pxa27x_udc-r3.patch +++ /dev/null @@ -1,2868 +0,0 @@ - arch/arm/mach-pxa/spitz.c | 27 - drivers/usb/gadget/Kconfig | 20 - drivers/usb/gadget/Makefile | 1 - drivers/usb/gadget/ether.c | 12 - drivers/usb/gadget/pxa27x_udc.c | 2412 ++++++++++++++++++++++++++++++++++++++++ - drivers/usb/gadget/pxa27x_udc.h | 298 ++++ - drivers/usb/gadget/pxa2xx_udc.h | 7 - 7 files changed, 2774 insertions(+), 3 deletions(-) - -Index: linux-2.6.20.7/arch/arm/mach-pxa/spitz.c -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/spitz.c 2007-04-21 12:21:53.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/spitz.c 2007-04-21 12:22:00.000000000 -0300 -@@ -348,6 +348,32 @@ - - - /* -+ * USB Client (Gadget/UDC) -+ */ -+static void spitz_udc_command(int cmd) -+{ -+ switch(cmd) { -+ case PXA2XX_UDC_CMD_CONNECT: -+ UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE; -+ break; -+ case PXA2XX_UDC_CMD_DISCONNECT: -+ //UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE; -+ break; -+ } -+} -+ -+static int spitz_udc_detect(void) -+{ -+ return 1; -+} -+ -+static struct pxa2xx_udc_mach_info spitz_udc_info __initdata = { -+ .udc_is_connected = spitz_udc_detect, -+ .udc_command = spitz_udc_command, -+}; -+ -+ -+/* - * USB Host (OHCI) - */ - static int spitz_ohci_init(struct device *dev) -@@ -498,6 +524,7 @@ - pxa_gpio_mode(SPITZ_GPIO_HSYNC | GPIO_IN); - - platform_add_devices(devices, ARRAY_SIZE(devices)); -+ pxa_set_udc_info(&spitz_udc_info); - pxa_set_mci_info(&spitz_mci_platform_data); - pxa_set_ohci_info(&spitz_ohci_platform_data); - pxa_set_ficp_info(&spitz_ficp_platform_data); -Index: linux-2.6.20.7/drivers/usb/gadget/Kconfig -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/Kconfig 2007-04-21 12:21:53.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/Kconfig 2007-04-21 12:22:00.000000000 -0300 -@@ -121,6 +121,26 @@ - default y if USB_ETH - default y if USB_G_SERIAL - -+config USB_GADGET_PXA27X -+ boolean "PXA 27x" -+ depends on ARCH_PXA && PXA27x -+ help -+ Intel's PXA 27x series XScale ARM-5TE processors include -+ an integrated full speed USB 1.1 device controller. -+ -+ It has 23 endpoints, as well as endpoint zero (for control -+ transfers). -+ -+ Say "y" to link the driver statically, or "m" to build a -+ dynamically linked module called "pxa27x_udc" and force all -+ gadget drivers to also be dynamically linked. -+ -+config USB_PXA27X -+ tristate -+ depends on USB_GADGET_PXA27X -+ default USB_GADGET -+ select USB_GADGET_SELECTED -+ - config USB_GADGET_GOKU - boolean "Toshiba TC86C001 'Goku-S'" - depends on PCI -Index: linux-2.6.20.7/drivers/usb/gadget/Makefile -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/Makefile 2007-04-21 12:21:53.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/Makefile 2007-04-21 12:22:00.000000000 -0300 -@@ -4,6 +4,7 @@ - obj-$(CONFIG_USB_DUMMY_HCD) += dummy_hcd.o - obj-$(CONFIG_USB_NET2280) += net2280.o - obj-$(CONFIG_USB_PXA2XX) += pxa2xx_udc.o -+obj-$(CONFIG_USB_PXA27X) += pxa27x_udc.o - obj-$(CONFIG_USB_GOKU) += goku_udc.o - obj-$(CONFIG_USB_OMAP) += omap_udc.o - obj-$(CONFIG_USB_LH7A40X) += lh7a40x_udc.o -Index: linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.c 2007-04-21 12:29:05.000000000 -0300 -@@ -0,0 +1,2412 @@ -+/* -+ * Handles the Intel 27x USB Device Controller (UDC) -+ * -+ * Copyright (C) 2002 Intrinsyc, Inc. (Frank Becker) -+ * Copyright (C) 2003 Robert Schwebel, Pengutronix -+ * Copyright (C) 2003 Benedikt Spranger, Pengutronix -+ * Copyright (C) 2003 David Brownell -+ * Copyright (C) 2003 Joshua Wise -+ * Copyright (C) 2004 Intel Corporation -+ * Copyright (C) 2005 SDG Systems, LLC (Aric Blumer) -+ * Copyright (C) 2005-2006 Openedhand Ltd. (Richard Purdie) -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ */ -+ -+#undef DEBUG -+//#define DEBUG 1 -+//#define VERBOSE DBG_VERBOSE -+ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/ioport.h> -+#include <linux/types.h> -+#include <linux/version.h> -+#include <linux/errno.h> -+#include <linux/platform_device.h> -+#include <linux/delay.h> -+#include <linux/sched.h> -+#include <linux/slab.h> -+#include <linux/init.h> -+#include <linux/timer.h> -+#include <linux/list.h> -+#include <linux/interrupt.h> -+#include <linux/proc_fs.h> -+#include <linux/mm.h> -+#include <linux/device.h> -+#include <linux/dma-mapping.h> -+ -+#include <asm/byteorder.h> -+#include <asm/dma.h> -+#include <asm/io.h> -+#include <asm/irq.h> -+#include <asm/system.h> -+#include <asm/mach-types.h> -+#include <asm/unaligned.h> -+#include <asm/hardware.h> -+#include <asm/arch/pxa-regs.h> -+ -+#include <linux/usb_ch9.h> -+#include <linux/usb_gadget.h> -+ -+#include <asm/arch/udc.h> -+ -+/* -+ * This driver handles the USB Device Controller (UDC) in Intel's PXA 27x -+ * series processors. -+ * -+ * Such controller drivers work with a gadget driver. The gadget driver -+ * returns descriptors, implements configuration and data protocols used -+ * by the host to interact with this device, and allocates endpoints to -+ * the different protocol interfaces. The controller driver virtualizes -+ * usb hardware so that the gadget drivers will be more portable. -+ * -+ * This UDC hardware wants to implement a bit too much USB protocol. The -+ * biggest issue is that the endpoints have to be setup before the controller -+ * can be enabled and each endpoint can only have one configuration, interface -+ * and alternative interface number. Once enabled, these cannot be changed -+ * without a controller reset. -+ * -+ * Intel Errata #22 mentions issues when changing alternate interface. -+ * The exact meaning of this remains uncertain as gadget drivers using alternate -+ * interfaces such as CDC-Ethernet appear to work... -+ */ -+ -+#define DRIVER_VERSION "01-01-2006" -+#define DRIVER_DESC "PXA 27x USB Device Controller driver" -+ -+static const char driver_name [] = "pxa27x_udc"; -+ -+static const char ep0name [] = "ep0"; -+ -+ -+#define USE_DMA -+//#undef USE_DMA -+ -+#ifdef CONFIG_PROC_FS -+#define UDC_PROC_FILE -+#endif -+ -+#include "pxa27x_udc.h" -+ -+#ifdef USE_DMA -+static int use_dma = 1; -+module_param(use_dma, bool, 0); -+MODULE_PARM_DESC(use_dma, "true to use dma"); -+ -+static void dma_nodesc_handler(int dmach, void *_ep); -+static void kick_dma(struct pxa27x_ep *ep, struct pxa27x_request *req); -+ -+#define DMASTR " (dma support)" -+ -+#else /* !USE_DMA */ -+#define DMASTR " (pio only)" -+#endif -+ -+#define UDCISR0_IR0 0x3 -+#define UDCISR_INT_MASK (UDC_INT_FIFOERROR | UDC_INT_PACKETCMP) -+#define UDCICR_INT_MASK UDCISR_INT_MASK -+ -+#define UDCCSR_MASK (UDCCSR_FST | UDCCSR_DME) -+ -+static void pxa27x_ep_fifo_flush(struct usb_ep *ep); -+static void nuke(struct pxa27x_ep *, int status); -+static void udc_init_ep(struct pxa27x_udc *dev); -+ -+ -+/* -+ * Endpoint Functions -+ */ -+static void pio_irq_enable(int ep_num) -+{ -+ if (ep_num < 16) -+ UDCICR0 |= 3 << (ep_num * 2); -+ else { -+ ep_num -= 16; -+ UDCICR1 |= 3 << (ep_num * 2); -+ } -+} -+ -+static void pio_irq_disable(int ep_num) -+{ -+ ep_num &= 0xf; -+ if (ep_num < 16) -+ UDCICR0 &= ~(3 << (ep_num * 2)); -+ else { -+ ep_num -= 16; -+ UDCICR1 &= ~(3 << (ep_num * 2)); -+ } -+} -+ -+/* The UDCCR reg contains mask and interrupt status bits, -+ * so using '|=' isn't safe as it may ack an interrupt. -+ */ -+#define UDCCR_MASK_BITS (UDCCR_OEN | UDCCR_UDE) -+ -+static inline void udc_set_mask_UDCCR(int mask) -+{ -+ UDCCR = (UDCCR & UDCCR_MASK_BITS) | (mask & UDCCR_MASK_BITS); -+} -+ -+static inline void udc_clear_mask_UDCCR(int mask) -+{ -+ UDCCR = (UDCCR & UDCCR_MASK_BITS) & ~(mask & UDCCR_MASK_BITS); -+} -+ -+static inline void udc_ack_int_UDCCR(int mask) -+{ -+ /* udccr contains the bits we dont want to change */ -+ __u32 udccr = UDCCR & UDCCR_MASK_BITS; -+ -+ UDCCR = udccr | (mask & ~UDCCR_MASK_BITS); -+} -+ -+/* -+ * Endpoint enable/disable -+ * -+ * Not much to do here as the ep_alloc function sets up most things. Once -+ * enabled, not much of the pxa27x configuration can be changed. -+ * -+ */ -+static int pxa27x_ep_enable(struct usb_ep *_ep, const struct usb_endpoint_descriptor *desc) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ struct pxa27x_udc *dev; -+ -+ if (!_ep || !desc || _ep->name == ep0name -+ || desc->bDescriptorType != USB_DT_ENDPOINT -+ || ep->fifo_size < le16_to_cpu(desc->wMaxPacketSize)) { -+ dev_err(ep->dev->dev, "%s, bad ep or descriptor\n", __FUNCTION__); -+ return -EINVAL; -+ } -+ -+ /* xfer types must match, except that interrupt ~= bulk */ -+ if( ep->ep_type != USB_ENDPOINT_XFER_BULK -+ && desc->bmAttributes != USB_ENDPOINT_XFER_INT) { -+ dev_err(ep->dev->dev, "%s, %s type mismatch\n", __FUNCTION__, _ep->name); -+ return -EINVAL; -+ } -+ -+ /* hardware _could_ do smaller, but driver doesn't */ -+ if ((desc->bmAttributes == USB_ENDPOINT_XFER_BULK -+ && le16_to_cpu (desc->wMaxPacketSize) -+ != BULK_FIFO_SIZE) -+ || !desc->wMaxPacketSize) { -+ dev_err(ep->dev->dev, "%s, bad %s maxpacket\n", __FUNCTION__, _ep->name); -+ return -ERANGE; -+ } -+ -+ dev = ep->dev; -+ if (!dev->driver || dev->gadget.speed == USB_SPEED_UNKNOWN) { -+ dev_err(ep->dev->dev, "%s, bogus device state\n", __FUNCTION__); -+ return -ESHUTDOWN; -+ } -+ -+ ep->desc = desc; -+ ep->dma = -1; -+ ep->stopped = 0; -+ ep->pio_irqs = ep->dma_irqs = 0; -+ ep->usb_ep->maxpacket = le16_to_cpu(desc->wMaxPacketSize); -+ -+ /* flush fifo (mostly for OUT buffers) */ -+ pxa27x_ep_fifo_flush(_ep); -+ -+ /* ... reset halt state too, if we could ... */ -+ -+#ifdef USE_DMA -+ /* for (some) bulk and ISO endpoints, try to get a DMA channel and -+ * bind it to the endpoint. otherwise use PIO. -+ */ -+ dev_dbg(ep->dev->dev, "%s: called attributes=%d\n", __FUNCTION__, ep->ep_type); -+ switch (ep->ep_type) { -+ case USB_ENDPOINT_XFER_ISOC: -+ if (le16_to_cpu(desc->wMaxPacketSize) % 32) -+ break; -+ // fall through -+ case USB_ENDPOINT_XFER_BULK: -+ if (!use_dma || !ep->reg_drcmr) -+ break; -+ ep->dma = pxa_request_dma((char *)_ep->name, (le16_to_cpu(desc->wMaxPacketSize) > 64) -+ ? DMA_PRIO_MEDIUM : DMA_PRIO_LOW, dma_nodesc_handler, ep); -+ if (ep->dma >= 0) { -+ *ep->reg_drcmr = DRCMR_MAPVLD | ep->dma; -+ dev_dbg(ep->dev->dev, "%s using dma%d\n", _ep->name, ep->dma); -+ } -+ default: -+ break; -+ } -+#endif -+ DBG(DBG_VERBOSE, "enabled %s\n", _ep->name); -+ return 0; -+} -+ -+static int pxa27x_ep_disable(struct usb_ep *_ep) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ unsigned long flags; -+ -+ if (!_ep || !ep->desc) { -+ dev_err(ep->dev->dev, "%s, %s not enabled\n", __FUNCTION__, -+ _ep ? _ep->name : NULL); -+ return -EINVAL; -+ } -+ local_irq_save(flags); -+ nuke(ep, -ESHUTDOWN); -+ -+#ifdef USE_DMA -+ if (ep->dma >= 0) { -+ *ep->reg_drcmr = 0; -+ pxa_free_dma(ep->dma); -+ ep->dma = -1; -+ } -+#endif -+ -+ /* flush fifo (mostly for IN buffers) */ -+ pxa27x_ep_fifo_flush(_ep); -+ -+ ep->desc = 0; -+ ep->stopped = 1; -+ -+ local_irq_restore(flags); -+ DBG(DBG_VERBOSE, "%s disabled\n", _ep->name); -+ return 0; -+} -+ -+ -+ -+/* for the pxa27x, these can just wrap kmalloc/kfree. gadget drivers -+ * must still pass correctly initialized endpoints, since other controller -+ * drivers may care about how it's currently set up (dma issues etc). -+ */ -+ -+/* -+ * pxa27x_ep_alloc_request - allocate a request data structure -+ */ -+static struct usb_request * -+pxa27x_ep_alloc_request(struct usb_ep *_ep, unsigned gfp_flags) -+{ -+ struct pxa27x_request *req; -+ -+ req = kzalloc(sizeof *req, gfp_flags); -+ if (!req) -+ return 0; -+ -+ INIT_LIST_HEAD(&req->queue); -+ return &req->req; -+} -+ -+ -+/* -+ * pxa27x_ep_free_request - deallocate a request data structure -+ */ -+static void -+pxa27x_ep_free_request(struct usb_ep *_ep, struct usb_request *_req) -+{ -+ struct pxa27x_request *req; -+ -+ req = container_of(_req, struct pxa27x_request, req); -+ WARN_ON(!list_empty(&req->queue)); -+ kfree(req); -+} -+ -+ -+/* PXA cache needs flushing with DMA I/O (it's dma-incoherent), but there's -+ * no device-affinity and the heap works perfectly well for i/o buffers. -+ * It wastes much less memory than dma_alloc_coherent() would, and even -+ * prevents cacheline (32 bytes wide) sharing problems. -+ */ -+static void * -+pxa27x_ep_alloc_buffer(struct usb_ep *_ep, unsigned bytes, dma_addr_t *dma, unsigned gfp_flags) -+{ -+ char *retval; -+ -+ retval = kmalloc(bytes, gfp_flags & ~(__GFP_DMA|__GFP_HIGHMEM)); -+ if (retval) -+ *dma = virt_to_bus(retval); -+ return retval; -+} -+ -+static void -+pxa27x_ep_free_buffer(struct usb_ep *_ep, void *buf, dma_addr_t dma, unsigned bytes) -+{ -+ kfree(buf); -+} -+ -+/*-------------------------------------------------------------------------*/ -+ -+/* -+ * done - retire a request; caller blocked irqs -+ */ -+static void done(struct pxa27x_ep *ep, struct pxa27x_request *req, int status) -+{ -+ list_del_init(&req->queue); -+ if (likely (req->req.status == -EINPROGRESS)) -+ req->req.status = status; -+ else -+ status = req->req.status; -+ -+ if (status && status != -ESHUTDOWN) -+ DBG(DBG_VERBOSE, "complete %s req %p stat %d len %u/%u\n", -+ ep->usb_ep->name, &req->req, status, -+ req->req.actual, req->req.length); -+ -+ /* don't modify queue heads during completion callback */ -+ req->req.complete(ep->usb_ep, &req->req); -+} -+ -+ -+static inline void ep0_idle(struct pxa27x_udc *dev) -+{ -+ dev->ep0state = EP0_IDLE; -+} -+ -+static int write_packet(volatile u32 *uddr, struct pxa27x_request *req, unsigned max) -+{ -+ u32 *buf; -+ int length, count, remain; -+ -+ buf = (u32*)(req->req.buf + req->req.actual); -+ prefetch(buf); -+ -+ /* how big will this packet be? */ -+ length = min(req->req.length - req->req.actual, max); -+ req->req.actual += length; -+ -+ remain = length & 0x3; -+ count = length & ~(0x3); -+ -+ //dev_dbg(ep->dev->dev, "Length %d, Remain %d, Count %d\n",length, remain, count); -+ -+ while (likely(count)) { -+ //dev_dbg(ep->dev->dev, "Sending:0x%x\n", *buf); -+ *uddr = *buf++; -+ count -= 4; -+ } -+ -+ if (remain) { -+ volatile u8* reg=(u8*)uddr; -+ char *rd =(u8*)buf; -+ -+ while (remain--) { -+ *reg=*rd++; -+ } -+ } -+ -+ return length; -+} -+ -+/* -+ * write to an IN endpoint fifo, as many packets as possible. -+ * irqs will use this to write the rest later. -+ * caller guarantees at least one packet buffer is ready (or a zlp). -+ */ -+static int -+write_fifo(struct pxa27x_ep *ep, struct pxa27x_request *req) -+{ -+ unsigned max; -+ -+ max = le16_to_cpu(ep->desc->wMaxPacketSize); -+ do { -+ int count, is_last, is_short; -+ -+ //dev_dbg(ep->dev->dev, "write_fifo7 %x\n", *ep->reg_udccsr); -+ -+ if (*ep->reg_udccsr & UDCCSR_PC) { -+ //dev_dbg(ep->dev->dev, "Transmit Complete\n"); -+ *ep->reg_udccsr = UDCCSR_PC | (*ep->reg_udccsr & UDCCSR_MASK); -+ } -+ -+ if (*ep->reg_udccsr & UDCCSR_TRN) { -+ //dev_dbg(ep->dev->dev, "Clearing Underrun\n"); -+ *ep->reg_udccsr = UDCCSR_TRN | (*ep->reg_udccsr & UDCCSR_MASK); -+ } -+ //dev_dbg(ep->dev->dev, "write_fifo8 %x\n", *ep->reg_udccsr); -+ -+ count = write_packet(ep->reg_udcdr, req, max); -+ -+ /* last packet is usually short (or a zlp) */ -+ if (unlikely (count != max)) -+ is_last = is_short = 1; -+ else { -+ if (likely(req->req.length != req->req.actual) -+ || req->req.zero) -+ is_last = 0; -+ else -+ is_last = 1; -+ /* interrupt/iso maxpacket may not fill the fifo */ -+ is_short = unlikely (max < ep->fifo_size); -+ } -+ -+ //dev_dbg(ep->dev->dev, "write_fifo0 %x\n", *ep->reg_udccsr); -+ -+ dev_dbg(ep->dev->dev, "wrote %s count:%d bytes%s%s %d left %p\n", -+ ep->usb_ep->name, count, -+ is_last ? "/L" : "", is_short ? "/S" : "", -+ req->req.length - req->req.actual, &req->req); -+ -+ /* let loose that packet. maybe try writing another one, -+ * double buffering might work. -+ */ -+ -+ if (is_short) -+ *ep->reg_udccsr = UDCCSR_SP | (*ep->reg_udccsr & UDCCSR_MASK); -+ -+ dev_dbg(ep->dev->dev, "write_fifo0.5 %x\n", *ep->reg_udccsr); -+ -+ /* requests complete when all IN data is in the FIFO */ -+ if (is_last) { -+ done(ep, req, 0); -+ if (list_empty(&ep->queue) || unlikely(ep->dma >= 0)) { -+ pio_irq_disable(ep->pxa_ep_num); -+ //dev_dbg(ep->dev->dev, "write_fifo1 %x\n", *ep->reg_udccsr); -+#ifdef USE_DMA -+ /* unaligned data and zlps couldn't use dma */ -+ if (unlikely(!list_empty(&ep->queue))) { -+ req = list_entry(ep->queue.next, -+ struct pxa27x_request, queue); -+ kick_dma(ep,req); -+ return 0; -+ } -+#endif -+ } -+ //dev_dbg(ep->dev->dev, "write_fifo2 %x\n", *ep->reg_udccsr); -+ return 1; -+ } -+ -+ // TODO experiment: how robust can fifo mode tweaking be? -+ // double buffering is off in the default fifo mode, which -+ // prevents TFS from being set here. -+ -+ } while (*ep->reg_udccsr & UDCCSR_FS); -+ //dev_dbg(ep->dev->dev, "write_fifo2 %x\n", *ep->reg_udccsr); -+ return 0; -+} -+ -+/* caller asserts req->pending (ep0 irq status nyet cleared); starts -+ * ep0 data stage. these chips want very simple state transitions. -+ */ -+static inline -+void ep0start(struct pxa27x_udc *dev, u32 flags, const char *tag) -+{ -+ UDCCSR0 = flags|UDCCSR0_SA|UDCCSR0_OPC; -+ UDCISR0 = UDCICR_INT(0, UDC_INT_FIFOERROR | UDC_INT_PACKETCMP); -+ dev->req_pending = 0; -+ DBG(DBG_VERY_NOISY, "%s %s, %02x/%02x\n", -+ __FUNCTION__, tag, UDCCSR0, flags); -+} -+ -+static int -+write_ep0_fifo(struct pxa27x_ep *ep, struct pxa27x_request *req) -+{ -+ unsigned count; -+ int is_short; -+ -+ count = write_packet(&UDCDR0, req, EP0_FIFO_SIZE); -+ ep->dev->stats.write.bytes += count; -+ -+ /* last packet "must be" short (or a zlp) */ -+ is_short = (count != EP0_FIFO_SIZE); -+ -+ DBG(DBG_VERY_NOISY, "ep0in %d bytes %d left %p\n", count, -+ req->req.length - req->req.actual, &req->req); -+ -+ if (unlikely (is_short)) { -+ if (ep->dev->req_pending) -+ ep0start(ep->dev, UDCCSR0_IPR, "short IN"); -+ else -+ UDCCSR0 = UDCCSR0_IPR; -+ -+ count = req->req.length; -+ done(ep, req, 0); -+ ep0_idle(ep->dev); -+#if 0 -+ /* This seems to get rid of lost status irqs in some cases: -+ * host responds quickly, or next request involves config -+ * change automagic, or should have been hidden, or ... -+ * -+ * FIXME get rid of all udelays possible... -+ */ -+ if (count >= EP0_FIFO_SIZE) { -+ count = 100; -+ do { -+ if ((UDCCSR0 & UDCCSR0_OPC) != 0) { -+ /* clear OPC, generate ack */ -+ UDCCSR0 = UDCCSR0_OPC; -+ break; -+ } -+ count--; -+ udelay(1); -+ } while (count); -+ } -+#endif -+ } else if (ep->dev->req_pending) -+ ep0start(ep->dev, 0, "IN"); -+ return is_short; -+} -+ -+ -+/* -+ * read_fifo - unload packet(s) from the fifo we use for usb OUT -+ * transfers and put them into the request. caller should have made -+ * sure there's at least one packet ready. -+ * -+ * returns true if the request completed because of short packet or the -+ * request buffer having filled (and maybe overran till end-of-packet). -+ */ -+static int read_fifo(struct pxa27x_ep *ep, struct pxa27x_request *req) -+{ -+ for (;;) { -+ u32 *buf; -+ int bufferspace, count, is_short; -+ -+ /* make sure there's a packet in the FIFO.*/ -+ if (unlikely ((*ep->reg_udccsr & UDCCSR_PC) == 0)) -+ break; -+ buf =(u32*) (req->req.buf + req->req.actual); -+ prefetchw(buf); -+ bufferspace = req->req.length - req->req.actual; -+ -+ /* read all bytes from this packet */ -+ if (likely (*ep->reg_udccsr & UDCCSR_BNE)) { -+ count = 0x3ff & *ep->reg_udcbcr; -+ req->req.actual += min(count, bufferspace); -+ } else /* zlp */ -+ count = 0; -+ -+ is_short = (count < ep->usb_ep->maxpacket); -+ dev_dbg(ep->dev->dev, "read %s udccsr:%02x, count:%d bytes%s req %p %d/%d\n", -+ ep->usb_ep->name, *ep->reg_udccsr, count, -+ is_short ? "/S" : "", -+ &req->req, req->req.actual, req->req.length); -+ -+ count = min(count, bufferspace); -+ while (likely (count > 0)) { -+ *buf++ = *ep->reg_udcdr; -+ count -= 4; -+ } -+ dev_dbg(ep->dev->dev, "Buf:0x%p\n", req->req.buf); -+ -+ *ep->reg_udccsr = UDCCSR_PC; -+ /* RPC/RSP/RNE could now reflect the other packet buffer */ -+ -+ /* completion */ -+ if (is_short || req->req.actual == req->req.length) { -+ done(ep, req, 0); -+ if (list_empty(&ep->queue)) -+ pio_irq_disable(ep->pxa_ep_num); -+ return 1; -+ } -+ -+ /* finished that packet. the next one may be waiting... */ -+ } -+ return 0; -+} -+ -+/* -+ * special ep0 version of the above. no UBCR0 or double buffering; status -+ * handshaking is magic. most device protocols don't need control-OUT. -+ * CDC vendor commands (and RNDIS), mass storage CB/CBI, and some other -+ * protocols do use them. -+ */ -+static int read_ep0_fifo(struct pxa27x_ep *ep, struct pxa27x_request *req) -+{ -+ u32 *buf, word; -+ unsigned bufferspace; -+ -+ buf = (u32*) (req->req.buf + req->req.actual); -+ bufferspace = req->req.length - req->req.actual; -+ -+ while (UDCCSR0 & UDCCSR0_RNE) { -+ word = UDCDR0; -+ -+ if (unlikely (bufferspace == 0)) { -+ /* this happens when the driver's buffer -+ * is smaller than what the host sent. -+ * discard the extra data. -+ */ -+ if (req->req.status != -EOVERFLOW) -+ dev_info(ep->dev->dev, "%s overflow\n", ep->usb_ep->name); -+ req->req.status = -EOVERFLOW; -+ } else { -+ *buf++ = word; -+ req->req.actual += 4; -+ bufferspace -= 4; -+ } -+ } -+ -+ UDCCSR0 = UDCCSR0_OPC ; -+ -+ /* completion */ -+ if (req->req.actual >= req->req.length) -+ return 1; -+ -+ /* finished that packet. the next one may be waiting... */ -+ return 0; -+} -+ -+#ifdef USE_DMA -+ -+#define MAX_IN_DMA ((DCMD_LENGTH + 1) - BULK_FIFO_SIZE) -+static void kick_dma(struct pxa27x_ep *ep, struct pxa27x_request *req) -+{ -+ u32 dcmd = 0; -+ u32 len = req->req.length; -+ u32 buf = req->req.dma; -+ u32 fifo = io_v2p((u32)ep->reg_udcdr); -+ -+ buf += req->req.actual; -+ len -= req->req.actual; -+ ep->dma_con = 0; -+ -+ DMSG("%s: req:0x%p length:%d, actual:%d dma:%d\n", -+ __FUNCTION__, &req->req, req->req.length, -+ req->req.actual,ep->dma); -+ -+ /* no-descriptor mode can be simple for bulk-in, iso-in, iso-out */ -+ DCSR(ep->dma) = DCSR_NODESC; -+ if (buf & 0x3) -+ DALGN |= 1 << ep->dma; -+ else -+ DALGN &= ~(1 << ep->dma); -+ -+ if (ep->dir_in) { -+ DSADR(ep->dma) = buf; -+ DTADR(ep->dma) = fifo; -+ if (len > MAX_IN_DMA) { -+ len= MAX_IN_DMA; -+ ep->dma_con =1 ; -+ } else if (len >= ep->usb_ep->maxpacket) { -+ if ((ep->dma_con = (len % ep->usb_ep->maxpacket) != 0)) -+ len = ep->usb_ep->maxpacket; -+ } -+ dcmd = len | DCMD_BURST32 | DCMD_WIDTH4 | DCMD_ENDIRQEN -+ | DCMD_FLOWTRG | DCMD_INCSRCADDR; -+ } else { -+ DSADR(ep->dma) = fifo; -+ DTADR(ep->dma) = buf; -+ dcmd = len | DCMD_BURST32 | DCMD_WIDTH4 | DCMD_ENDIRQEN -+ | DCMD_FLOWSRC | DCMD_INCTRGADDR; -+ } -+ *ep->reg_udccsr = UDCCSR_DME; -+ DCMD(ep->dma) = dcmd; -+ DCSR(ep->dma) = DCSR_NODESC | DCSR_EORIRQEN \ -+ | ((ep->dir_in) ? DCSR_STOPIRQEN : 0); -+ *ep->reg_drcmr = ep->dma | DRCMR_MAPVLD; -+ DCSR(ep->dma) |= DCSR_RUN; -+} -+ -+static void cancel_dma(struct pxa27x_ep *ep) -+{ -+ struct pxa27x_request *req; -+ u32 tmp; -+ -+ if (DCSR(ep->dma) == 0 || list_empty(&ep->queue)) -+ return; -+ -+ DMSG("hehe dma:%d,dcsr:0x%x\n", ep->dma, DCSR(ep->dma)); -+ DCSR(ep->dma) = 0; -+ while ((DCSR(ep->dma) & DCSR_STOPSTATE) == 0) -+ cpu_relax(); -+ -+ req = list_entry(ep->queue.next, struct pxa27x_request, queue); -+ tmp = DCMD(ep->dma) & DCMD_LENGTH; -+ req->req.actual = req->req.length - tmp; -+ -+ /* the last tx packet may be incomplete, so flush the fifo. -+ * FIXME correct req.actual if we can -+ */ -+ *ep->reg_udccsr = UDCCSR_FEF; -+} -+ -+static void dma_nodesc_handler(int dmach, void *_ep) -+{ -+ struct pxa27x_ep *ep = _ep; -+ struct pxa27x_request *req, *req_next; -+ u32 dcsr, tmp, completed; -+ -+ local_irq_disable(); -+ -+ req = list_entry(ep->queue.next, struct pxa27x_request, queue); -+ -+ DMSG("%s, buf:0x%p\n",__FUNCTION__, req->req.buf); -+ -+ ep->dma_irqs++; -+ ep->dev->stats.irqs++; -+ -+ completed = 0; -+ -+ dcsr = DCSR(dmach); -+ DCSR(ep->dma) &= ~DCSR_RUN; -+ -+ if (dcsr & DCSR_BUSERR) { -+ DCSR(dmach) = DCSR_BUSERR; -+ dev_err(ep->dev->dev, "DMA Bus Error\n"); -+ req->req.status = -EIO; -+ completed = 1; -+ } else if (dcsr & DCSR_ENDINTR) { -+ DCSR(dmach) = DCSR_ENDINTR; -+ if (ep->dir_in) { -+ tmp = req->req.length - req->req.actual; -+ /* Last packet is a short one*/ -+ if (tmp < ep->usb_ep->maxpacket) { -+ int count = 0; -+ -+ *ep->reg_udccsr = UDCCSR_SP | \ -+ (*ep->reg_udccsr & UDCCSR_MASK); -+ /*Wait for packet out */ -+ while( (count++ < 10000) && \ -+ !(*ep->reg_udccsr & UDCCSR_FS)); -+ if (count >= 10000) -+ DMSG("Failed to send packet\n"); -+ else -+ DMSG("%s: short packet sent len:%d," -+ "length:%d,actual:%d\n", __FUNCTION__, -+ tmp, req->req.length, req->req.actual); -+ req->req.actual = req->req.length; -+ completed = 1; -+ /* There are still packets to transfer */ -+ } else if ( ep->dma_con) { -+ DMSG("%s: more packets,length:%d,actual:%d\n", -+ __FUNCTION__,req->req.length, -+ req->req.actual); -+ req->req.actual += ep->usb_ep->maxpacket; -+ completed = 0; -+ } else { -+ DMSG("%s: no more packets,length:%d," -+ "actual:%d\n", __FUNCTION__, -+ req->req.length, req->req.actual); -+ req->req.actual = req->req.length; -+ completed = 1; -+ } -+ } else { -+ req->req.actual = req->req.length; -+ completed = 1; -+ } -+ } else if (dcsr & DCSR_EORINTR) { //Only happened in OUT DMA -+ int remain,udccsr ; -+ -+ DCSR(dmach) = DCSR_EORINTR; -+ remain = DCMD(dmach) & DCMD_LENGTH; -+ req->req.actual = req->req.length - remain; -+ -+ udccsr = *ep->reg_udccsr; -+ if (udccsr & UDCCSR_SP) { -+ *ep->reg_udccsr = UDCCSR_PC | (udccsr & UDCCSR_MASK); -+ completed = 1; -+ } -+ DMSG("%s: length:%d actual:%d\n", -+ __FUNCTION__, req->req.length, req->req.actual); -+ } else -+ DMSG("%s: Others dma:%d DCSR:0x%x DCMD:0x%x\n", -+ __FUNCTION__, dmach, DCSR(dmach), DCMD(dmach)); -+ -+ if (likely(completed)) { -+ if (req->queue.next != &ep->queue) { -+ req_next = list_entry(req->queue.next, -+ struct pxa27x_request, queue); -+ kick_dma(ep, req_next); -+ } -+ done(ep, req, 0); -+ } else { -+ kick_dma(ep, req); -+ } -+ -+ local_irq_enable(); -+} -+ -+#endif -+/*-------------------------------------------------------------------------*/ -+ -+static int -+pxa27x_ep_queue(struct usb_ep *_ep, struct usb_request *_req, unsigned gfp_flags) -+{ -+ struct pxa27x_virt_ep *virt_ep; -+ struct pxa27x_ep *ep; -+ struct pxa27x_request *req; -+ struct pxa27x_udc *dev; -+ unsigned long flags; -+ -+ virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ ep = virt_ep->pxa_ep; -+ -+ req = container_of(_req, struct pxa27x_request, req); -+ if (unlikely (!_req || !_req->complete || !_req->buf|| -+ !list_empty(&req->queue))) { -+ DMSG("%s, bad params\n", __FUNCTION__); -+ return -EINVAL; -+ } -+ -+ if (unlikely (!_ep || (!ep->desc && _ep->name != ep0name))) { -+ DMSG("%s, bad ep\n", __FUNCTION__); -+ return -EINVAL; -+ } -+ -+ DMSG("%s, ep point %d is queue\n", __FUNCTION__, ep->ep_num); -+ -+ dev = ep->dev; -+ if (unlikely (!dev->driver -+ || dev->gadget.speed == USB_SPEED_UNKNOWN)) { -+ DMSG("%s, bogus device state\n", __FUNCTION__); -+ return -ESHUTDOWN; -+ } -+ -+ /* iso is always one packet per request, that's the only way -+ * we can report per-packet status. that also helps with dma. -+ */ -+ if (unlikely (ep->ep_type == USB_ENDPOINT_XFER_ISOC -+ && req->req.length > le16_to_cpu -+ (ep->desc->wMaxPacketSize))) -+ return -EMSGSIZE; -+ -+#ifdef USE_DMA -+ // FIXME caller may already have done the dma mapping -+ if (ep->dma >= 0) { -+ _req->dma = dma_map_single(dev->dev, _req->buf, _req->length, -+ (ep->dir_in) ? DMA_TO_DEVICE : DMA_FROM_DEVICE); -+ } -+#endif -+ -+ DBG(DBG_NOISY, "%s queue req %p, len %d buf %p\n", -+ _ep->name, _req, _req->length, _req->buf); -+ -+ local_irq_save(flags); -+ -+ _req->status = -EINPROGRESS; -+ _req->actual = 0; -+ -+ /* kickstart this i/o queue? */ -+ if (list_empty(&ep->queue) && !ep->stopped) { -+ if (ep->desc == 0 /* ep0 */) { -+ unsigned length = _req->length; -+ -+ switch (dev->ep0state) { -+ case EP0_IN_DATA_PHASE: -+ dev->stats.write.ops++; -+ if (write_ep0_fifo(ep, req)) -+ req = 0; -+ break; -+ -+ case EP0_OUT_DATA_PHASE: -+ dev->stats.read.ops++; -+ if (dev->req_pending) -+ ep0start(dev, UDCCSR0_IPR, "OUT"); -+ if (length == 0 || ((UDCCSR0 & UDCCSR0_RNE) != 0 -+ && read_ep0_fifo(ep, req))) { -+ ep0_idle(dev); -+ done(ep, req, 0); -+ req = 0; -+ } -+ break; -+ case EP0_NO_ACTION: -+ ep0_idle(dev); -+ req=0; -+ break; -+ default: -+ DMSG("ep0 i/o, odd state %d\n", dev->ep0state); -+ local_irq_restore (flags); -+ return -EL2HLT; -+ } -+#ifdef USE_DMA -+ /* either start dma or prime pio pump */ -+ } else if (ep->dma >= 0) { -+ kick_dma(ep, req); -+#endif -+ /* can the FIFO can satisfy the request immediately? */ -+ } else if (ep->dir_in && (*ep->reg_udccsr & UDCCSR_FS) != 0 -+ && write_fifo(ep, req)) { -+ req = 0; -+ } else if ((*ep->reg_udccsr & UDCCSR_FS) != 0 -+ && read_fifo(ep, req)) { -+ req = 0; -+ } -+ DMSG("req:%p,ep->desc:%p,ep->dma:%d\n", req, ep->desc, ep->dma); -+ if (likely (req && ep->desc) && ep->dma < 0) -+ pio_irq_enable(ep->pxa_ep_num); -+ } -+ -+ /* pio or dma irq handler advances the queue. */ -+ if (likely (req != 0)) -+ list_add_tail(&req->queue, &ep->queue); -+ local_irq_restore(flags); -+ -+ return 0; -+} -+ -+ -+/* -+ * nuke - dequeue ALL requests -+ */ -+static void nuke(struct pxa27x_ep *ep, int status) -+{ -+ struct pxa27x_request *req; -+ -+ /* called with irqs blocked */ -+#ifdef USE_DMA -+ if (ep->dma >= 0 && !ep->stopped) -+ cancel_dma(ep); -+#endif -+ while (!list_empty(&ep->queue)) { -+ req = list_entry(ep->queue.next, struct pxa27x_request, queue); -+ done(ep, req, status); -+ } -+ if (ep->desc) -+ pio_irq_disable(ep->pxa_ep_num); -+} -+ -+ -+/* dequeue JUST ONE request */ -+static int pxa27x_ep_dequeue(struct usb_ep *_ep, struct usb_request *_req) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ struct pxa27x_request *req; -+ unsigned long flags; -+ -+ if (!_ep || _ep->name == ep0name) -+ return -EINVAL; -+ -+ local_irq_save(flags); -+ -+ /* make sure it's actually queued on this endpoint */ -+ list_for_each_entry(req, &ep->queue, queue) { -+ if (&req->req == _req) -+ break; -+ } -+ if (&req->req != _req) { -+ local_irq_restore(flags); -+ return -EINVAL; -+ } -+ -+#ifdef USE_DMA -+ if (ep->dma >= 0 && ep->queue.next == &req->queue && !ep->stopped) { -+ cancel_dma(ep); -+ done(ep, req, -ECONNRESET); -+ /* restart i/o */ -+ if (!list_empty(&ep->queue)) { -+ req = list_entry(ep->queue.next, -+ struct pxa27x_request, queue); -+ kick_dma(ep, req); -+ } -+ } else -+#endif -+ done(ep, req, -ECONNRESET); -+ -+ local_irq_restore(flags); -+ return 0; -+} -+ -+/*-------------------------------------------------------------------------*/ -+ -+static int pxa27x_ep_set_halt(struct usb_ep *_ep, int value) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ unsigned long flags; -+ -+ DMSG("%s is called\n", __FUNCTION__); -+ if (unlikely (!_ep || (!ep->desc && _ep->name != ep0name)) -+ || ep->ep_type == USB_ENDPOINT_XFER_ISOC) { -+ DMSG("%s, bad ep\n", __FUNCTION__); -+ return -EINVAL; -+ } -+ if (value == 0) { -+ /* this path (reset toggle+halt) is needed to implement -+ * SET_INTERFACE on normal hardware. but it can't be -+ * done from software on the PXA UDC, and the hardware -+ * forgets to do it as part of SET_INTERFACE automagic. -+ */ -+ DMSG("only host can clear %s halt\n", _ep->name); -+ return -EROFS; -+ } -+ -+ local_irq_save(flags); -+ -+ if (ep->dir_in && ((*ep->reg_udccsr & UDCCSR_FS) == 0 -+ || !list_empty(&ep->queue))) { -+ local_irq_restore(flags); -+ return -EAGAIN; -+ } -+ -+ /* FST bit is the same for control, bulk in, bulk out, interrupt in */ -+ *ep->reg_udccsr = UDCCSR_FST|UDCCSR_FEF; -+ -+ /* ep0 needs special care */ -+ if (!ep->desc) { -+ start_watchdog(ep->dev); -+ ep->dev->req_pending = 0; -+ ep->dev->ep0state = EP0_STALL; -+ -+ /* and bulk/intr endpoints like dropping stalls too */ -+ } else { -+ unsigned i; -+ for (i = 0; i < 1000; i += 20) { -+ if (*ep->reg_udccsr & UDCCSR_SST) -+ break; -+ udelay(20); -+ } -+ } -+ local_irq_restore(flags); -+ -+ DBG(DBG_VERBOSE, "%s halt\n", _ep->name); -+ return 0; -+} -+ -+static int pxa27x_ep_fifo_status(struct usb_ep *_ep) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ -+ if (!_ep) { -+ DMSG("%s, bad ep\n", __FUNCTION__); -+ return -ENODEV; -+ } -+ /* pxa can't report unclaimed bytes from IN fifos */ -+ if (ep->dir_in) -+ return -EOPNOTSUPP; -+ if (ep->dev->gadget.speed == USB_SPEED_UNKNOWN -+ || (*ep->reg_udccsr & UDCCSR_FS) == 0) -+ return 0; -+ else -+ return (*ep->reg_udcbcr & 0xfff) + 1; -+} -+ -+static void pxa27x_ep_fifo_flush(struct usb_ep *_ep) -+{ -+ struct pxa27x_virt_ep *virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ struct pxa27x_ep *ep = virt_ep->pxa_ep; -+ -+ DMSG("pxa27x_ep_fifo_flush\n"); -+ -+ if (!_ep || _ep->name == ep0name || !list_empty(&ep->queue)) { -+ DMSG("%s, bad ep\n", __FUNCTION__); -+ return; -+ } -+ -+ /* toggle and halt bits stay unchanged */ -+ -+ /* for OUT, just read and discard the FIFO contents. */ -+ if (!ep->dir_in) { -+ while (((*ep->reg_udccsr) & UDCCSR_BNE) != 0) -+ (void) *ep->reg_udcdr; -+ return; -+ } -+ -+ /* most IN status is the same, but ISO can't stall */ -+ *ep->reg_udccsr = UDCCSR_PC|UDCCSR_FST|UDCCSR_TRN -+ | (ep->ep_type == USB_ENDPOINT_XFER_ISOC) -+ ? 0 : UDCCSR_SST; -+} -+ -+ -+static struct usb_ep_ops pxa27x_ep_ops = { -+ .enable = pxa27x_ep_enable, -+ .disable = pxa27x_ep_disable, -+ -+ .alloc_request = pxa27x_ep_alloc_request, -+ .free_request = pxa27x_ep_free_request, -+ -+ .alloc_buffer = pxa27x_ep_alloc_buffer, -+ .free_buffer = pxa27x_ep_free_buffer, -+ -+ .queue = pxa27x_ep_queue, -+ .dequeue = pxa27x_ep_dequeue, -+ -+ .set_halt = pxa27x_ep_set_halt, -+ .fifo_status = pxa27x_ep_fifo_status, -+ .fifo_flush = pxa27x_ep_fifo_flush, -+}; -+ -+ -+/* --------------------------------------------------------------------------- -+ * device-scoped parts of the api to the usb controller hardware -+ * --------------------------------------------------------------------------- -+ */ -+ -+static inline unsigned int validate_fifo_size(u8 bmAttributes) -+{ -+ switch (bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { -+ case USB_ENDPOINT_XFER_CONTROL: -+ return EP0_FIFO_SIZE; -+ break; -+ case USB_ENDPOINT_XFER_ISOC: -+ return ISO_FIFO_SIZE; -+ break; -+ case USB_ENDPOINT_XFER_BULK: -+ return BULK_FIFO_SIZE; -+ break; -+ case USB_ENDPOINT_XFER_INT: -+ return INT_FIFO_SIZE; -+ break; -+ default: -+ break; -+ } -+} -+ -+static void pxa27x_ep_free(struct usb_gadget *gadget, struct usb_ep *_ep) -+{ -+ struct pxa27x_udc *dev = the_controller; -+ struct pxa27x_virt_ep *virt_ep; -+ int i; -+ -+ virt_ep = container_of(_ep, struct pxa27x_virt_ep, usb_ep); -+ -+ for (i = 1; i < UDC_EP_NUM; i++) { -+ if (dev->ep[i].usb_ep == &virt_ep->usb_ep) { -+ if (dev->ep[i].desc) { -+ virt_ep->pxa_ep = &dev->ep[i]; -+ pxa27x_ep_disable(&virt_ep->usb_ep); -+ } -+ dev->ep[i].usb_ep = NULL; -+ } -+ } -+ -+ if (!list_empty(&virt_ep->usb_ep.ep_list)) -+ list_del_init(&virt_ep->usb_ep.ep_list); -+ -+ kfree(virt_ep->usb_ep.name); -+ kfree(virt_ep); -+} -+ -+static void pxa27x_ep_freeall(struct usb_gadget *gadget) -+{ -+ struct pxa27x_udc *dev = the_controller; -+ int i; -+ -+ for (i = 1; i < UDC_EP_NUM; i++) { -+ if(dev->ep[i].usb_ep) -+ pxa27x_ep_free(gadget, dev->ep[i].usb_ep); -+ } -+} -+ -+#define NAME_SIZE 18 -+ -+static int pxa27x_find_free_ep(struct pxa27x_udc *dev) -+{ -+ int i; -+ for (i = 1; i < UDC_EP_NUM; i++) { -+ if(!dev->ep[i].assigned) -+ return i; -+ } -+ return -1; -+} -+ -+/* -+ * Endpoint Allocation/Configuration -+ * -+ * pxa27x endpoint configuration is fixed when the device is enabled. Any pxa -+ * endpoint is only active in one configuration, interface and alternate -+ * interface combination so to support gadget drivers, we map one usb_ep to -+ * one of several pxa ep's. One pxa endpoint is assigned per configuration -+ * combination. -+ */ -+static struct usb_ep* pxa27x_ep_alloc(struct usb_gadget *gadget, struct usb_endpoint_descriptor *desc, -+ struct usb_endpoint_config *epconfig, int configs) -+{ -+ struct pxa27x_udc *dev = the_controller; -+ struct pxa27x_virt_ep *virt_ep; -+ unsigned int i, fifo_size; -+ char *name; -+ -+ if (unlikely(configs < 1)) { -+ dev_err(dev->dev, "%s: Error in config data\n", __FUNCTION__); -+ return NULL; -+ } -+ -+ virt_ep = kmalloc(sizeof(struct pxa27x_virt_ep), GFP_KERNEL); -+ name = kmalloc(NAME_SIZE, GFP_KERNEL); -+ if (!virt_ep || !name) { -+ dev_err(dev->dev, "%s: -ENOMEM\n", __FUNCTION__); -+ kfree(name); -+ kfree(virt_ep); -+ return NULL; -+ } -+ -+ if (!(desc->wMaxPacketSize)) { -+ fifo_size = validate_fifo_size(desc->bmAttributes); -+ desc->wMaxPacketSize = fifo_size; -+ } else { -+ fifo_size = desc->wMaxPacketSize; -+ } -+ -+ DMSG("pxa27x_ep_alloc: bLength: %d, bDescriptorType: %x, bEndpointAddress: %x,\n" -+ " bmAttributes: %x, wMaxPacketSize: %d\n", desc->bLength, -+ desc->bDescriptorType, desc->bEndpointAddress, desc->bmAttributes, -+ desc->wMaxPacketSize); -+ -+ if (!(desc->bEndpointAddress & 0xF)) -+ desc->bEndpointAddress |= dev->ep_num; -+ -+ for (i = 0; i < configs; i++) -+ { -+ struct pxa27x_ep *pxa_ep; -+ int j; -+ -+ DMSG("pxa27x_ep_alloc: config: %d, interface: %d, altinterface: %x,\n", -+ epconfig->config, epconfig->interface, epconfig->altinterface); -+ -+ j = pxa27x_find_free_ep(dev); -+ -+ if (unlikely(j < 0)) { -+ dev_err(dev->dev, "pxa27x_ep_alloc: Failed to find a spare endpoint\n"); -+ pxa27x_ep_free(gadget, &virt_ep->usb_ep); -+ return NULL; -+ } -+ -+ pxa_ep = &dev->ep[j]; -+ -+ if (i == 0) -+ virt_ep->pxa_ep = pxa_ep; -+ -+ pxa_ep->assigned = 1; -+ pxa_ep->ep_num = dev->ep_num; -+ pxa_ep->pxa_ep_num = j; -+ pxa_ep->usb_ep = &virt_ep->usb_ep; -+ pxa_ep->dev = dev; -+ pxa_ep->desc = desc; -+ pxa_ep->pio_irqs = pxa_ep->dma_irqs = 0; -+ pxa_ep->dma = -1; -+ -+ pxa_ep->fifo_size = fifo_size; -+ pxa_ep->dir_in = (desc->bEndpointAddress & USB_DIR_IN) ? 1 : 0; -+ pxa_ep->ep_type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; -+ pxa_ep->stopped = 1; -+ pxa_ep->dma_con = 0; -+ pxa_ep->config = epconfig->config; -+ pxa_ep->interface = epconfig->interface; -+ pxa_ep->aisn = epconfig->altinterface; -+ -+ pxa_ep->reg_udccsr = &UDCCSR0 + j; -+ pxa_ep->reg_udcbcr = &UDCBCR0 + j; -+ pxa_ep->reg_udcdr = &UDCDR0 + j ; -+ pxa_ep->reg_udccr = &UDCCRA - 1 + j; -+#ifdef USE_DMA -+ pxa_ep->reg_drcmr = &DRCMR24 + j; -+#endif -+ -+ /* Configure UDCCR */ -+ *pxa_ep->reg_udccr = ((pxa_ep->config << UDCCONR_CN_S) & UDCCONR_CN) -+ | ((pxa_ep->interface << UDCCONR_IN_S) & UDCCONR_IN) -+ | ((pxa_ep->aisn << UDCCONR_AISN_S) & UDCCONR_AISN) -+ | ((dev->ep_num << UDCCONR_EN_S) & UDCCONR_EN) -+ | ((pxa_ep->ep_type << UDCCONR_ET_S) & UDCCONR_ET) -+ | ((pxa_ep->dir_in) ? UDCCONR_ED : 0) -+ | ((min(pxa_ep->fifo_size, (unsigned)desc->wMaxPacketSize) << UDCCONR_MPS_S ) & UDCCONR_MPS) -+ | UDCCONR_EE; -+// | UDCCONR_DE | UDCCONR_EE; -+ -+ -+ -+#ifdef USE_DMA -+ /* Only BULK use DMA */ -+ if ((pxa_ep->ep_type & USB_ENDPOINT_XFERTYPE_MASK)\ -+ == USB_ENDPOINT_XFER_BULK) -+ *pxa_ep->reg_udccsr = UDCCSR_DME; -+#endif -+ -+ DMSG("UDCCR: 0x%p is 0x%x\n", pxa_ep->reg_udccr,*pxa_ep->reg_udccr); -+ -+ epconfig++; -+ } -+ -+ /* Fill ep name*/ -+ switch (desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) { -+ case USB_ENDPOINT_XFER_BULK: -+ sprintf(name, "ep%d%s-bulk", dev->ep_num, -+ ((desc->bEndpointAddress & USB_DIR_IN) ? "in":"out")); -+ break; -+ case USB_ENDPOINT_XFER_INT: -+ sprintf(name, "ep%d%s-intr", dev->ep_num, -+ ((desc->bEndpointAddress & USB_DIR_IN) ? "in":"out")); -+ break; -+ default: -+ sprintf(name, "ep%d%s", dev->ep_num, -+ ((desc->bEndpointAddress & USB_DIR_IN) ? "in":"out")); -+ break; -+ } -+ -+ virt_ep->desc = desc; -+ virt_ep->usb_ep.name = name; -+ virt_ep->usb_ep.ops = &pxa27x_ep_ops; -+ virt_ep->usb_ep.maxpacket = min((ushort)fifo_size, desc->wMaxPacketSize); -+ -+ list_add_tail(&virt_ep->usb_ep.ep_list, &gadget->ep_list); -+ -+ dev->ep_num++; -+ return &virt_ep->usb_ep; -+} -+ -+static int pxa27x_udc_get_frame(struct usb_gadget *_gadget) -+{ -+ return (UDCFNR & 0x7FF); -+} -+ -+static int pxa27x_udc_wakeup(struct usb_gadget *_gadget) -+{ -+ /* host may not have enabled remote wakeup */ -+ if ((UDCCR & UDCCR_DWRE) == 0) -+ return -EHOSTUNREACH; -+ udc_set_mask_UDCCR(UDCCR_UDR); -+ return 0; -+} -+ -+static const struct usb_gadget_ops pxa27x_udc_ops = { -+ .ep_alloc = pxa27x_ep_alloc, -+ .get_frame = pxa27x_udc_get_frame, -+ .wakeup = pxa27x_udc_wakeup, -+ // current versions must always be self-powered -+}; -+ -+ -+/*-------------------------------------------------------------------------*/ -+ -+#ifdef UDC_PROC_FILE -+ -+static const char proc_node_name [] = "driver/udc"; -+ -+static int -+udc_proc_read(char *page, char **start, off_t off, int count, -+ int *eof, void *_dev) -+{ -+ char *buf = page; -+ struct pxa27x_udc *dev = _dev; -+ char *next = buf; -+ unsigned size = count; -+ unsigned long flags; -+ int i, t; -+ u32 tmp; -+ -+ if (off != 0) -+ return 0; -+ -+ local_irq_save(flags); -+ -+ /* basic device status */ -+ t = scnprintf(next, size, DRIVER_DESC "\n" -+ "%s version: %s\nGadget driver: %s\n", -+ driver_name, DRIVER_VERSION DMASTR, -+ dev->driver ? dev->driver->driver.name : "(none)"); -+ size -= t; -+ next += t; -+ -+ /* registers for device and ep0 */ -+ t = scnprintf(next, size, -+ "uicr %02X.%02X, usir %02X.%02x, ufnr %02X\n", -+ UDCICR1, UDCICR0, UDCISR1, UDCISR0, UDCFNR); -+ size -= t; -+ next += t; -+ -+ tmp = UDCCR; -+ t = scnprintf(next, size,"udccr %02X =%s%s%s%s%s%s%s%s%s%s, con=%d,inter=%d,altinter=%d\n", tmp, -+ (tmp & UDCCR_OEN) ? " oen":"", -+ (tmp & UDCCR_AALTHNP) ? " aalthnp":"", -+ (tmp & UDCCR_AHNP) ? " rem" : "", -+ (tmp & UDCCR_BHNP) ? " rstir" : "", -+ (tmp & UDCCR_DWRE) ? " dwre" : "", -+ (tmp & UDCCR_SMAC) ? " smac" : "", -+ (tmp & UDCCR_EMCE) ? " emce" : "", -+ (tmp & UDCCR_UDR) ? " udr" : "", -+ (tmp & UDCCR_UDA) ? " uda" : "", -+ (tmp & UDCCR_UDE) ? " ude" : "", -+ (tmp & UDCCR_ACN) >> UDCCR_ACN_S, -+ (tmp & UDCCR_AIN) >> UDCCR_AIN_S, -+ (tmp & UDCCR_AAISN)>> UDCCR_AAISN_S ); -+ -+ size -= t; -+ next += t; -+ -+ tmp = UDCCSR0; -+ t = scnprintf(next, size, -+ "udccsr0 %02X =%s%s%s%s%s%s%s\n", tmp, -+ (tmp & UDCCSR0_SA) ? " sa" : "", -+ (tmp & UDCCSR0_RNE) ? " rne" : "", -+ (tmp & UDCCSR0_FST) ? " fst" : "", -+ (tmp & UDCCSR0_SST) ? " sst" : "", -+ (tmp & UDCCSR0_DME) ? " dme" : "", -+ (tmp & UDCCSR0_IPR) ? " ipr" : "", -+ (tmp & UDCCSR0_OPC) ? " opc" : ""); -+ size -= t; -+ next += t; -+ -+ if (!dev->driver) -+ goto done; -+ -+ t = scnprintf(next, size, "ep0 IN %lu/%lu, OUT %lu/%lu\nirqs %lu\n\n", -+ dev->stats.write.bytes, dev->stats.write.ops, -+ dev->stats.read.bytes, dev->stats.read.ops, -+ dev->stats.irqs); -+ size -= t; -+ next += t; -+ -+ /* dump endpoint queues */ -+ for (i = 0; i < UDC_EP_NUM; i++) { -+ struct pxa27x_ep *ep = &dev->ep [i]; -+ struct pxa27x_request *req; -+ int t; -+ -+ if (i != 0) { -+ const struct usb_endpoint_descriptor *d; -+ -+ d = ep->desc; -+ if (!d) -+ continue; -+ tmp = *dev->ep [i].reg_udccsr; -+ t = scnprintf(next, size, -+ "%d max %d %s udccs %02x udccr:0x%x\n", -+ i, le16_to_cpu (d->wMaxPacketSize), -+ (ep->dma >= 0) ? "dma" : "pio", tmp, -+ *dev->ep[i].reg_udccr); -+ /* TODO translate all five groups of udccs bits! */ -+ -+ } else /* ep0 should only have one transfer queued */ -+ t = scnprintf(next, size, "ep0 max 16 pio irqs %lu\n", -+ ep->pio_irqs); -+ if (t <= 0 || t > size) -+ goto done; -+ size -= t; -+ next += t; -+ -+ if (list_empty(&ep->queue)) { -+ t = scnprintf(next, size, "\t(nothing queued)\n"); -+ if (t <= 0 || t > size) -+ goto done; -+ size -= t; -+ next += t; -+ continue; -+ } -+ list_for_each_entry(req, &ep->queue, queue) { -+#ifdef USE_DMA -+ if (ep->dma >= 0 && req->queue.prev == &ep->queue) -+ t = scnprintf(next, size, "\treq %p len %d/%d " -+ "buf %p (dma%d dcmd %08x)\n", -+ &req->req, req->req.actual, -+ req->req.length, req->req.buf, -+ ep->dma, DCMD(ep->dma) -+ /* low 13 bits == bytes-to-go */); -+ else -+#endif -+ t = scnprintf(next, size, -+ "\treq %p len %d/%d buf %p\n", -+ &req->req, req->req.actual, -+ req->req.length, req->req.buf); -+ if (t <= 0 || t > size) -+ goto done; -+ size -= t; -+ next += t; -+ } -+ } -+ -+done: -+ local_irq_restore(flags); -+ *eof = 1; -+ return count - size; -+} -+ -+#define create_proc_files() \ -+ create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev) -+#define remove_proc_files() \ -+ remove_proc_entry(proc_node_name, NULL) -+ -+#else /* !UDC_PROC_FILE */ -+#define create_proc_files() do {} while (0) -+#define remove_proc_files() do {} while (0) -+ -+#endif /* UDC_PROC_FILE */ -+ -+/* "function" sysfs attribute */ -+static ssize_t show_function(struct device *_dev, struct device_attribute *attr, char *buf) -+{ -+ struct pxa27x_udc *dev = dev_get_drvdata(_dev); -+ -+ if (!dev->driver || !dev->driver->function -+ || strlen(dev->driver->function) > PAGE_SIZE) -+ return 0; -+ return scnprintf(buf, PAGE_SIZE, "%s\n", dev->driver->function); -+} -+static DEVICE_ATTR(function, S_IRUGO, show_function, NULL); -+ -+/*-------------------------------------------------------------------------*/ -+ -+/* -+ * udc_disable - disable USB device controller -+ */ -+static void udc_disable(struct pxa27x_udc *dev) -+{ -+ UDCICR0 = UDCICR1 = 0x00000000; -+ -+ udc_clear_mask_UDCCR(UDCCR_UDE); -+ -+ /* Disable clock for USB device */ -+ pxa_set_cken(CKEN11_USB, 0); -+ -+ ep0_idle(dev); -+ dev->gadget.speed = USB_SPEED_UNKNOWN; -+ dev->mach->udc_command(PXA2XX_UDC_CMD_DISCONNECT); -+} -+ -+ -+/* -+ * udc_reinit - initialize software state -+ */ -+static void udc_reinit(struct pxa27x_udc *dev) -+{ -+ u32 i; -+ -+ dev->ep0state = EP0_IDLE; -+ -+ /* basic endpoint records init */ -+ for (i = 0; i < UDC_EP_NUM; i++) { -+ struct pxa27x_ep *ep = &dev->ep[i]; -+ -+ ep->stopped = 0; -+ ep->pio_irqs = ep->dma_irqs = 0; -+ } -+ dev->configuration = 0; -+ dev->interface = 0; -+ dev->alternate = 0; -+ /* the rest was statically initialized, and is read-only */ -+} -+ -+/* until it's enabled, this UDC should be completely invisible -+ * to any USB host. -+ */ -+static void udc_enable(struct pxa27x_udc *dev) -+{ -+ udc_clear_mask_UDCCR(UDCCR_UDE); -+ -+ /* Enable clock for USB device */ -+ pxa_set_cken(CKEN11_USB, 1); -+ -+ UDCICR0 = UDCICR1 = 0; -+ -+ ep0_idle(dev); -+ dev->gadget.speed = USB_SPEED_FULL; -+ dev->stats.irqs = 0; -+ -+ udc_set_mask_UDCCR(UDCCR_UDE); -+ udelay(2); -+ if (UDCCR & UDCCR_EMCE) -+ dev_err(dev->dev, "There are error in configuration, udc disabled\n"); -+ -+ /* caller must be able to sleep in order to cope -+ * with startup transients. -+ */ -+ msleep(100); -+ -+ /* enable suspend/resume and reset irqs */ -+ UDCICR1 = UDCICR1_IECC | UDCICR1_IERU | UDCICR1_IESU | UDCICR1_IERS; -+ -+ /* enable ep0 irqs */ -+ UDCICR0 = UDCICR_INT(0,UDCICR_INT_MASK); -+ -+ DMSG("Connecting\n"); -+ /* RPFIXME */ -+ UP2OCR = UP2OCR_HXOE | UP2OCR_DPPUE | UP2OCR_DPPUBE; -+ //dev->mach->udc_command(PXA2XX_UDC_CMD_CONNECT); -+} -+ -+ -+/* when a driver is successfully registered, it will receive -+ * control requests including set_configuration(), which enables -+ * non-control requests. then usb traffic follows until a -+ * disconnect is reported. then a host may connect again, or -+ * the driver might get unbound. -+ */ -+int usb_gadget_register_driver(struct usb_gadget_driver *driver) -+{ -+ struct pxa27x_udc *dev = the_controller; -+ int retval; -+ -+ if (!driver || driver->speed != USB_SPEED_FULL || !driver->bind -+ || !driver->unbind || !driver->disconnect || !driver->setup) -+ return -EINVAL; -+ if (!dev) -+ return -ENODEV; -+ if (dev->driver) -+ return -EBUSY; -+ -+ udc_disable(dev); -+ udc_init_ep(dev); -+ udc_reinit(dev); -+ -+ /* first hook up the driver ... */ -+ dev->driver = driver; -+ dev->gadget.dev.driver = &driver->driver; -+ dev->ep_num = 1; -+ -+ retval = device_add(&dev->gadget.dev); -+ if (retval) { -+ DMSG("device_add error %d\n", retval); -+ goto add_fail; -+ } -+ retval = driver->bind(&dev->gadget); -+ if (retval) { -+ DMSG("bind to driver %s --> error %d\n", -+ driver->driver.name, retval); -+ goto bind_fail; -+ } -+ retval = device_create_file(dev->dev, &dev_attr_function); -+ if (retval) { -+ DMSG("device_create_file failed: %d\n", retval); -+ goto create_file_fail; -+ } -+ -+ /* ... then enable host detection and ep0; and we're ready -+ * for set_configuration as well as eventual disconnect. -+ * NOTE: this shouldn't power up until later. -+ */ -+ DMSG("registered gadget driver '%s'\n", driver->driver.name); -+ udc_enable(dev); -+ dump_state(dev); -+ return 0; -+ -+create_file_fail: -+ driver->unbind(&dev->gadget); -+bind_fail: -+ device_del(&dev->gadget.dev); -+add_fail: -+ dev->driver = 0; -+ dev->gadget.dev.driver = 0; -+ return retval; -+} -+EXPORT_SYMBOL(usb_gadget_register_driver); -+ -+static void -+stop_activity(struct pxa27x_udc *dev, struct usb_gadget_driver *driver) -+{ -+ int i; -+ -+ DMSG("Trace path 1\n"); -+ /* don't disconnect drivers more than once */ -+ if (dev->gadget.speed == USB_SPEED_UNKNOWN) -+ driver = 0; -+ dev->gadget.speed = USB_SPEED_UNKNOWN; -+ -+ /* prevent new request submissions, kill any outstanding requests */ -+ for (i = 0; i < UDC_EP_NUM; i++) { -+ struct pxa27x_ep *ep = &dev->ep[i]; -+ -+ ep->stopped = 1; -+ nuke(ep, -ESHUTDOWN); -+ } -+ del_timer_sync(&dev->timer); -+ -+ /* report disconnect; the driver is already quiesced */ -+ if (driver) -+ driver->disconnect(&dev->gadget); -+ -+ /* re-init driver-visible data structures */ -+ udc_reinit(dev); -+} -+ -+int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) -+{ -+ struct pxa27x_udc *dev = the_controller; -+ -+ if (!dev) -+ return -ENODEV; -+ if (!driver || driver != dev->driver) -+ return -EINVAL; -+ -+ local_irq_disable(); -+ udc_disable(dev); -+ stop_activity(dev, driver); -+ local_irq_enable(); -+ -+ driver->unbind(&dev->gadget); -+ pxa27x_ep_freeall(&dev->gadget); -+ dev->driver = 0; -+ -+ device_del(&dev->gadget.dev); -+ device_remove_file(dev->dev, &dev_attr_function); -+ -+ DMSG("unregistered gadget driver '%s'\n", driver->driver.name); -+ dump_state(dev); -+ return 0; -+} -+EXPORT_SYMBOL(usb_gadget_unregister_driver); -+ -+ -+/*-------------------------------------------------------------------------*/ -+ -+static inline void clear_ep_state(struct pxa27x_udc *dev) -+{ -+ unsigned i; -+ -+ /* hardware SET_{CONFIGURATION,INTERFACE} automagic resets endpoint -+ * fifos, and pending transactions mustn't be continued in any case. -+ */ -+ for (i = 1; i < UDC_EP_NUM; i++) -+ nuke(&dev->ep[i], -ECONNABORTED); -+} -+ -+static void udc_watchdog(unsigned long _dev) -+{ -+ struct pxa27x_udc *dev = (void *)_dev; -+ -+ local_irq_disable(); -+ if (dev->ep0state == EP0_STALL -+ && (UDCCSR0 & UDCCSR0_FST) == 0 -+ && (UDCCSR0 & UDCCSR0_SST) == 0) { -+ UDCCSR0 = UDCCSR0_FST|UDCCSR0_FTF; -+ DBG(DBG_VERBOSE, "ep0 re-stall\n"); -+ start_watchdog(dev); -+ } -+ local_irq_enable(); -+} -+ -+static void handle_ep0(struct pxa27x_udc *dev) -+{ -+ u32 udccsr0 = UDCCSR0; -+ struct pxa27x_ep *ep = &dev->ep[0]; -+ struct pxa27x_request *req; -+ union { -+ struct usb_ctrlrequest r; -+ u8 raw[8]; -+ u32 word[2]; -+ } u; -+ -+ if (list_empty(&ep->queue)) -+ req = 0; -+ else -+ req = list_entry(ep->queue.next, struct pxa27x_request, queue); -+ -+ /* clear stall status */ -+ if (udccsr0 & UDCCSR0_SST) { -+ nuke(ep, -EPIPE); -+ UDCCSR0 = UDCCSR0_SST; -+ del_timer(&dev->timer); -+ ep0_idle(dev); -+ } -+ -+ /* previous request unfinished? non-error iff back-to-back ... */ -+ if ((udccsr0 & UDCCSR0_SA) != 0 && dev->ep0state != EP0_IDLE) { -+ nuke(ep, 0); -+ del_timer(&dev->timer); -+ ep0_idle(dev); -+ } -+ -+ switch (dev->ep0state) { -+ case EP0_NO_ACTION: -+ dev_info(dev->dev, "%s: Busy\n", __FUNCTION__); -+ /*Fall through */ -+ case EP0_IDLE: -+ /* late-breaking status? */ -+ udccsr0 = UDCCSR0; -+ -+ /* start control request? */ -+ if (likely((udccsr0 & (UDCCSR0_OPC|UDCCSR0_SA|UDCCSR0_RNE)) -+ == (UDCCSR0_OPC|UDCCSR0_SA|UDCCSR0_RNE))) { -+ int i; -+ -+ nuke(ep, -EPROTO); -+ /* read SETUP packet */ -+ for (i = 0; i < 2; i++) { -+ if (unlikely(!(UDCCSR0 & UDCCSR0_RNE))) { -+bad_setup: -+ DMSG("SETUP %d!\n", i); -+ goto stall; -+ } -+ u.word [i] = UDCDR0; -+ } -+ if (unlikely((UDCCSR0 & UDCCSR0_RNE) != 0)) -+ goto bad_setup; -+ -+ le16_to_cpus(&u.r.wValue); -+ le16_to_cpus(&u.r.wIndex); -+ le16_to_cpus(&u.r.wLength); -+ -+ DBG(DBG_VERBOSE, "SETUP %02x.%02x v%04x i%04x l%04x\n", -+ u.r.bRequestType, u.r.bRequest, -+ u.r.wValue, u.r.wIndex, u.r.wLength); -+ /* cope with automagic for some standard requests. */ -+ dev->req_std = (u.r.bRequestType & USB_TYPE_MASK) -+ == USB_TYPE_STANDARD; -+ dev->req_config = 0; -+ dev->req_pending = 1; -+#if 0 -+ switch (u.r.bRequest) { -+ /* hardware was supposed to hide this */ -+ case USB_REQ_SET_CONFIGURATION: -+ case USB_REQ_SET_INTERFACE: -+ case USB_REQ_SET_ADDRESS: -+ dev_err(dev->dev, "Should not come here\n"); -+ break; -+ } -+ -+#endif -+ if (u.r.bRequestType & USB_DIR_IN) -+ dev->ep0state = EP0_IN_DATA_PHASE; -+ else -+ dev->ep0state = EP0_OUT_DATA_PHASE; -+ i = dev->driver->setup(&dev->gadget, &u.r); -+ -+ if (i < 0) { -+ /* hardware automagic preventing STALL... */ -+ if (dev->req_config) { -+ /* hardware sometimes neglects to tell -+ * tell us about config change events, -+ * so later ones may fail... -+ */ -+ WARN("config change %02x fail %d?\n", -+ u.r.bRequest, i); -+ return; -+ /* TODO experiment: if has_cfr, -+ * hardware didn't ACK; maybe we -+ * could actually STALL! -+ */ -+ } -+ DBG(DBG_VERBOSE, "protocol STALL, " -+ "%02x err %d\n", UDCCSR0, i); -+stall: -+ /* the watchdog timer helps deal with cases -+ * where udc seems to clear FST wrongly, and -+ * then NAKs instead of STALLing. -+ */ -+ ep0start(dev, UDCCSR0_FST|UDCCSR0_FTF, "stall"); -+ start_watchdog(dev); -+ dev->ep0state = EP0_STALL; -+ -+ /* deferred i/o == no response yet */ -+ } else if (dev->req_pending) { -+ if (likely(dev->ep0state == EP0_IN_DATA_PHASE -+ || dev->req_std || u.r.wLength)) -+ ep0start(dev, 0, "defer"); -+ else -+ ep0start(dev, UDCCSR0_IPR, "defer/IPR"); -+ } -+ -+ /* expect at least one data or status stage irq */ -+ return; -+ -+ } else { -+ /* some random early IRQ: -+ * - we acked FST -+ * - IPR cleared -+ * - OPC got set, without SA (likely status stage) -+ */ -+ UDCCSR0 = udccsr0 & (UDCCSR0_SA|UDCCSR0_OPC); -+ } -+ break; -+ case EP0_IN_DATA_PHASE: /* GET_DESCRIPTOR etc */ -+ if (udccsr0 & UDCCSR0_OPC) { -+ UDCCSR0 = UDCCSR0_OPC|UDCCSR0_FTF; -+ DBG(DBG_VERBOSE, "ep0in premature status\n"); -+ if (req) -+ done(ep, req, 0); -+ ep0_idle(dev); -+ } else /* irq was IPR clearing */ { -+ if (req) { -+ /* this IN packet might finish the request */ -+ (void) write_ep0_fifo(ep, req); -+ } /* else IN token before response was written */ -+ } -+ break; -+ case EP0_OUT_DATA_PHASE: /* SET_DESCRIPTOR etc */ -+ if (udccsr0 & UDCCSR0_OPC) { -+ if (req) { -+ /* this OUT packet might finish the request */ -+ if (read_ep0_fifo(ep, req)) -+ done(ep, req, 0); -+ /* else more OUT packets expected */ -+ } /* else OUT token before read was issued */ -+ } else /* irq was IPR clearing */ { -+ DBG(DBG_VERBOSE, "ep0out premature status\n"); -+ if (req) -+ done(ep, req, 0); -+ ep0_idle(dev); -+ } -+ break; -+ case EP0_STALL: -+ UDCCSR0 = UDCCSR0_FST; -+ break; -+ } -+ UDCISR0 = UDCISR_INT(0, UDCISR_INT_MASK); -+} -+ -+ -+static void handle_ep(struct pxa27x_ep *ep) -+{ -+ struct pxa27x_request *req; -+ int completed; -+ u32 udccsr=0; -+ -+ DMSG("%s is called\n", __FUNCTION__); -+ do { -+ completed = 0; -+ if (likely (!list_empty(&ep->queue))) { -+ req = list_entry(ep->queue.next, -+ struct pxa27x_request, queue); -+ } else -+ req = 0; -+ -+// udccsr = *ep->reg_udccsr; -+ DMSG("%s: req:%p, udcisr0:0x%x udccsr %p:0x%x\n", __FUNCTION__, -+ req, UDCISR0, ep->reg_udccsr, *ep->reg_udccsr); -+ if (unlikely(ep->dir_in)) { -+ udccsr = (UDCCSR_SST | UDCCSR_TRN) & *ep->reg_udccsr; -+ if (unlikely (udccsr)) -+ *ep->reg_udccsr = udccsr; -+ -+ if (req && likely ((*ep->reg_udccsr & UDCCSR_FS) != 0)) -+ completed = write_fifo(ep, req); -+ -+ } else { -+ udccsr = (UDCCSR_SST | UDCCSR_TRN) & *ep->reg_udccsr; -+ if (unlikely(udccsr)) -+ *ep->reg_udccsr = udccsr; -+ -+ /* fifos can hold packets, ready for reading... */ -+ if (likely(req)) { -+ completed = read_fifo(ep, req); -+ } else { -+ pio_irq_disable (ep->pxa_ep_num); -+ //*ep->reg_udccsr = UDCCSR_FEF; -+ DMSG("%s: no req for out data\n", -+ __FUNCTION__); -+ } -+ } -+ ep->pio_irqs++; -+ } while (completed); -+} -+ -+static void pxa27x_update_eps(struct pxa27x_udc *dev) -+{ -+ struct pxa27x_virt_ep *virt_ep; -+ int i; -+ -+ for (i = 1; i < UDC_EP_NUM; i++) { -+ if(!dev->ep[i].assigned || !dev->ep[i].usb_ep) -+ continue; -+ virt_ep = container_of(dev->ep[i].usb_ep, struct pxa27x_virt_ep, usb_ep); -+ -+ DMSG("%s, Updating eps %d:%d, %d:%d, %d:%d, %p,%p\n", __FUNCTION__, dev->ep[i].config, dev->configuration -+ ,dev->ep[i].interface, dev->interface, dev->ep[i].aisn, dev->alternate, virt_ep->pxa_ep, &dev->ep[i]); -+ -+ if(dev->ep[i].config == dev->configuration && virt_ep->pxa_ep != &dev->ep[i]) { -+ if ((dev->ep[i].interface == dev->interface && -+ dev->ep[i].aisn == dev->alternate) || virt_ep->pxa_ep->config != dev->configuration) { -+ -+ if (virt_ep->pxa_ep->desc) { -+ DMSG("%s, Changing end point to %d (en/dis)\n", __FUNCTION__, i); -+ pxa27x_ep_disable(&virt_ep->usb_ep); -+ virt_ep->pxa_ep = &dev->ep[i]; -+ pxa27x_ep_enable(&virt_ep->usb_ep, virt_ep->desc); -+ } else { -+ DMSG("%s, Changing end point to %d (no en/dis)\n", __FUNCTION__, i); -+ virt_ep->pxa_ep = &dev->ep[i]; -+ } -+ } -+ } -+ } -+} -+ -+static void pxa27x_change_configuration(struct pxa27x_udc *dev) -+{ -+ struct usb_ctrlrequest req ; -+ -+ pxa27x_update_eps(dev); -+ -+ req.bRequestType = 0; -+ req.bRequest = USB_REQ_SET_CONFIGURATION; -+ req.wValue = dev->configuration; -+ req.wIndex = 0; -+ req.wLength = 0; -+ -+ dev->ep0state = EP0_NO_ACTION; -+ dev->driver->setup(&dev->gadget, &req); -+} -+ -+static void pxa27x_change_interface(struct pxa27x_udc *dev) -+{ -+ struct usb_ctrlrequest req; -+ -+ pxa27x_update_eps(dev); -+ -+ req.bRequestType = USB_RECIP_INTERFACE; -+ req.bRequest = USB_REQ_SET_INTERFACE; -+ req.wValue = dev->alternate; -+ req.wIndex = dev->interface; -+ req.wLength = 0; -+ -+ dev->ep0state = EP0_NO_ACTION; -+ dev->driver->setup(&dev->gadget, &req); -+} -+ -+/* -+ * pxa27x_udc_irq - interrupt handler -+ * -+ * avoid delays in ep0 processing. the control handshaking isn't always -+ * under software control (pxa250c0 and the pxa255 are better), and delays -+ * could cause usb protocol errors. -+ */ -+static irqreturn_t pxa27x_udc_irq(int irq, void *_dev) -+{ -+ struct pxa27x_udc *dev = _dev; -+ int handled; -+ -+ dev->stats.irqs++; -+ -+ DBG(DBG_VERBOSE, "Interrupt, UDCISR0:0x%08x, UDCISR1:0x%08x, " -+ "UDCCR:0x%08x\n", UDCISR0, UDCISR1, UDCCR); -+ do { -+ u32 udcir = UDCISR1 & 0xF8000000; -+ -+ handled = 0; -+ -+ /* SUSpend Interrupt Request */ -+ if (unlikely(udcir & UDCISR1_IRSU)) { -+ UDCISR1 = UDCISR1_IRSU; -+ handled = 1; -+ DBG(DBG_VERBOSE, "USB suspend\n"); -+ if (dev->gadget.speed != USB_SPEED_UNKNOWN -+ && dev->driver -+ && dev->driver->suspend) -+ dev->driver->suspend(&dev->gadget); -+ ep0_idle(dev); -+ } -+ -+ /* RESume Interrupt Request */ -+ if (unlikely(udcir & UDCISR1_IRRU)) { -+ UDCISR1 = UDCISR1_IRRU; -+ handled = 1; -+ DBG(DBG_VERBOSE, "USB resume\n"); -+ -+ if (dev->gadget.speed != USB_SPEED_UNKNOWN -+ && dev->driver -+ && dev->driver->resume) -+ dev->driver->resume(&dev->gadget); -+ } -+ -+ if (unlikely(udcir & UDCISR1_IRCC)) { -+ unsigned config, interface, alternate; -+ -+ handled = 1; -+ DBG(DBG_VERBOSE, "USB SET_CONFIGURATION or " -+ "SET_INTERFACE command received\n"); -+ -+ config = (UDCCR & UDCCR_ACN) >> UDCCR_ACN_S; -+ -+ if (dev->configuration != config) { -+ dev->configuration = config; -+ pxa27x_change_configuration(dev) ; -+ } -+ -+ interface = (UDCCR & UDCCR_AIN) >> UDCCR_AIN_S; -+ alternate = (UDCCR & UDCCR_AAISN) >> UDCCR_AAISN_S; -+ -+ if ((dev->interface != interface) || (dev->alternate != alternate)) { -+ dev->interface = interface; -+ dev->alternate = alternate; -+ pxa27x_change_interface(dev); -+ } -+ -+ UDCCR |= UDCCR_SMAC; -+ -+ UDCISR1 = UDCISR1_IRCC; -+ DMSG("%s: con:%d,inter:%d,alt:%d\n", -+ __FUNCTION__, config,interface, alternate); -+ } -+ -+ /* ReSeT Interrupt Request - USB reset */ -+ if (unlikely(udcir & UDCISR1_IRRS)) { -+ UDCISR1 = UDCISR1_IRRS; -+ handled = 1; -+ -+ if ((UDCCR & UDCCR_UDA) == 0) { -+ DBG(DBG_VERBOSE, "USB reset start\n"); -+ -+ /* reset driver and endpoints, -+ * in case that's not yet done -+ */ -+ stop_activity(dev, dev->driver); -+ } -+ INFO("USB reset\n"); -+ dev->gadget.speed = USB_SPEED_FULL; -+ memset(&dev->stats, 0, sizeof dev->stats); -+ -+ } else { -+ u32 udcisr0 = UDCISR0 ; -+ u32 udcisr1 = UDCISR1 & 0xFFFF; -+ int i; -+ -+ if (unlikely (!udcisr0 && !udcisr1)) -+ continue; -+ -+ DBG(DBG_VERY_NOISY, "irq %02x.%02x\n", udcisr1,udcisr0); -+ -+ /* control traffic */ -+ if (udcisr0 & UDCISR0_IR0) { -+ dev->ep[0].pio_irqs++; -+ handle_ep0(dev); -+ handled = 1; -+ } -+ -+ udcisr0 >>= 2; -+ /* endpoint data transfers */ -+ for (i = 1; udcisr0!=0 && i < 16; udcisr0>>=2,i++) { -+ UDCISR0 = UDCISR_INT(i, UDCISR_INT_MASK); -+ -+ if (udcisr0 & UDC_INT_FIFOERROR) -+ dev_err(dev->dev, " Endpoint %d Fifo error\n", i); -+ if (udcisr0 & UDC_INT_PACKETCMP) { -+ handle_ep(&dev->ep[i]); -+ handled = 1; -+ } -+ -+ } -+ -+ for (i = 0; udcisr1!=0 && i < 8; udcisr1 >>= 2, i++) { -+ UDCISR1 = UDCISR_INT(i, UDCISR_INT_MASK); -+ -+ if (udcisr1 & UDC_INT_FIFOERROR) { -+ dev_err(dev->dev, "Endpoint %d fifo error\n", (i+16)); -+ } -+ -+ if (udcisr1 & UDC_INT_PACKETCMP) { -+ handle_ep(&dev->ep[i+16]); -+ handled = 1; -+ } -+ } -+ } -+ -+ /* we could also ask for 1 msec SOF (SIR) interrupts */ -+ -+ } while (handled); -+ return IRQ_HANDLED; -+} -+ -+int write_ep0_zlp(void) -+{ -+ UDCCSR0 = UDCCSR0_IPR; -+ return 0; -+} -+EXPORT_SYMBOL(write_ep0_zlp); -+ -+static void udc_init_ep(struct pxa27x_udc *dev) -+{ -+ int i; -+ -+ INIT_LIST_HEAD(&dev->gadget.ep_list); -+ INIT_LIST_HEAD(&dev->gadget.ep0->ep_list); -+ -+ for (i = 0; i < UDC_EP_NUM; i++) { -+ struct pxa27x_ep *ep = &dev->ep[i]; -+ -+ ep->dma = -1; -+ if (i != 0) { -+ memset(ep, 0, sizeof(*ep)); -+ } -+ INIT_LIST_HEAD(&ep->queue); -+ } -+} -+ -+/*-------------------------------------------------------------------------*/ -+ -+static void nop_release(struct device *dev) -+{ -+ DMSG("%s %s\n", __FUNCTION__, dev->bus_id); -+} -+ -+/* this uses load-time allocation and initialization (instead of -+ * doing it at run-time) to save code, eliminate fault paths, and -+ * be more obviously correct. -+ */ -+ -+static struct pxa27x_udc memory = { -+ .gadget = { -+ .ops = &pxa27x_udc_ops, -+ .ep0 = &memory.virt_ep0.usb_ep, -+ .name = driver_name, -+ .dev = { -+ .bus_id = "gadget", -+ .release = nop_release, -+ }, -+ }, -+ -+ /* control endpoint */ -+ .virt_ep0 = { -+ .pxa_ep = &memory.ep[0], -+ .usb_ep = { -+ .name = ep0name, -+ .ops = &pxa27x_ep_ops, -+ .maxpacket = EP0_FIFO_SIZE, -+ }, -+ }, -+ -+ .ep[0] = { -+ .usb_ep = &memory.virt_ep0.usb_ep, -+ .dev = &memory, -+ .reg_udccsr = &UDCCSR0, -+ .reg_udcdr = &UDCDR0, -+ }, -+}; -+ -+static int __init pxa27x_udc_probe(struct platform_device *_dev) -+{ -+ struct pxa27x_udc *dev = &memory; -+ int retval; -+ -+ /* other non-static parts of init */ -+ dev->dev = &_dev->dev; -+ dev->mach = _dev->dev.platform_data; -+ -+ /* RPFIXME */ -+ UP2OCR = UP2OCR_HXOE | UP2OCR_DPPUE | UP2OCR_DPPUBE; -+ -+ init_timer(&dev->timer); -+ dev->timer.function = udc_watchdog; -+ dev->timer.data = (unsigned long) dev; -+ -+ device_initialize(&dev->gadget.dev); -+ dev->gadget.dev.parent = &_dev->dev; -+ dev->gadget.dev.dma_mask = _dev->dev.dma_mask; -+ -+ the_controller = dev; -+ platform_set_drvdata(_dev, dev); -+ -+ udc_disable(dev); -+ udc_init_ep(dev); -+ udc_reinit(dev); -+ -+ /* irq setup after old hardware state is cleaned up */ -+ retval = request_irq(IRQ_USB, pxa27x_udc_irq, -+ SA_INTERRUPT, driver_name, dev); -+ if (retval != 0) { -+ dev_err(dev->dev, "%s: can't get irq %i, err %d\n", -+ driver_name, IRQ_USB, retval); -+ return -EBUSY; -+ } -+ dev->got_irq = 1; -+ -+ create_proc_files(); -+ -+ return 0; -+} -+ -+static int pxa27x_udc_remove(struct platform_device *_dev) -+{ -+ struct pxa27x_udc *dev = platform_get_drvdata(_dev); -+ -+ udc_disable(dev); -+ remove_proc_files(); -+ usb_gadget_unregister_driver(dev->driver); -+ -+ pxa27x_ep_freeall(&dev->gadget); -+ -+ if (dev->got_irq) { -+ free_irq(IRQ_USB, dev); -+ dev->got_irq = 0; -+ } -+ platform_set_drvdata(_dev, 0); -+ the_controller = 0; -+ return 0; -+} -+ -+#ifdef CONFIG_PM -+static void pxa27x_udc_shutdown(struct platform_device *_dev) -+{ -+ struct pxa27x_udc *dev = platform_get_drvdata(_dev); -+ -+ udc_disable(dev); -+} -+ -+static int pxa27x_udc_suspend(struct platform_device *_dev, pm_message_t state) -+{ -+ int i; -+ struct pxa27x_udc *dev = platform_get_drvdata(_dev); -+ -+ DMSG("%s is called\n", __FUNCTION__); -+ -+ dev->udccsr0 = UDCCSR0; -+ for(i=1; (i<UDC_EP_NUM); i++) { -+ if (dev->ep[i].assigned) { -+ struct pxa27x_ep *ep = &dev->ep[i]; -+ ep->udccsr_value = *ep->reg_udccsr; -+ ep->udccr_value = *ep->reg_udccr; -+ DMSG("EP%d, udccsr:0x%x, udccr:0x%x\n", -+ i, *ep->reg_udccsr, *ep->reg_udccr); -+ } -+ } -+ -+ udc_clear_mask_UDCCR(UDCCR_UDE); -+ pxa_set_cken(CKEN11_USB, 0); -+ -+ return 0; -+} -+ -+static int pxa27x_udc_resume(struct platform_device *_dev) -+{ -+ int i; -+ struct pxa27x_udc *dev = platform_get_drvdata(_dev); -+ -+ DMSG("%s is called\n", __FUNCTION__); -+ UDCCSR0 = dev->udccsr0 & (UDCCSR0_FST | UDCCSR0_DME); -+ for (i=1; i < UDC_EP_NUM; i++) { -+ if (dev->ep[i].assigned) { -+ struct pxa27x_ep *ep = &dev->ep[i]; -+ *ep->reg_udccsr = ep->udccsr_value; -+ *ep->reg_udccr = ep->udccr_value; -+ DMSG("EP%d, udccsr:0x%x, udccr:0x%x\n", -+ i, *ep->reg_udccsr, *ep->reg_udccr); -+ } -+ } -+ -+ udc_enable(dev); -+ -+ /* OTGPH bit is set when sleep mode is entered. -+ * it indicates that OTG pad is retaining its state. -+ * Upon exit from sleep mode and before clearing OTGPH, -+ * Software must configure the USB OTG pad, UDC, and UHC -+ * to the state they were in before entering sleep mode.*/ -+ PSSR |= PSSR_OTGPH; -+ -+ return 0; -+} -+#endif -+ -+/*-------------------------------------------------------------------------*/ -+ -+static struct platform_driver udc_driver = { -+ .driver = { -+ .name = "pxa2xx-udc", -+ }, -+ .probe = pxa27x_udc_probe, -+ .remove = pxa27x_udc_remove, -+#ifdef CONFIG_PM -+ .shutdown = pxa27x_udc_shutdown, -+ .suspend = pxa27x_udc_suspend, -+ .resume = pxa27x_udc_resume -+#endif -+}; -+ -+static int __init udc_init(void) -+{ -+ printk(KERN_INFO "%s: version %s\n", driver_name, DRIVER_VERSION); -+ return platform_driver_register(&udc_driver); -+} -+module_init(udc_init); -+ -+static void __exit udc_exit(void) -+{ -+ platform_driver_unregister(&udc_driver); -+} -+module_exit(udc_exit); -+ -+MODULE_DESCRIPTION(DRIVER_DESC); -+MODULE_AUTHOR("Frank Becker, Robert Schwebel, David Brownell"); -+MODULE_LICENSE("GPL"); -Index: linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/drivers/usb/gadget/pxa27x_udc.h 2007-04-21 12:22:00.000000000 -0300 -@@ -0,0 +1,298 @@ -+/* -+ * linux/drivers/usb/gadget/pxa27x_udc.h -+ * Intel PXA27x on-chip full speed USB device controller -+ * -+ * Copyright (C) 2003 Robert Schwebel <r.schwebel@pengutronix.de>, Pengutronix -+ * Copyright (C) 2003 David Brownell -+ * Copyright (C) 2004 Intel Corporation -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ */ -+ -+#ifndef __LINUX_USB_GADGET_PXA27X_H -+#define __LINUX_USB_GADGET_PXA27X_H -+ -+#include <linux/types.h> -+ -+struct pxa27x_udc; -+ -+struct pxa27x_ep { -+ struct pxa27x_udc *dev; -+ struct usb_ep *usb_ep; -+ const struct usb_endpoint_descriptor *desc; -+ -+ struct list_head queue; -+ unsigned long pio_irqs; -+ unsigned long dma_irqs; -+ -+ unsigned pxa_ep_num; -+ int dma; -+ unsigned fifo_size; -+ unsigned ep_type; -+ -+ unsigned stopped : 1; -+ unsigned dma_con : 1; -+ unsigned dir_in : 1; -+ unsigned assigned : 1; -+ -+ unsigned ep_num; -+ unsigned config; -+ unsigned interface; -+ unsigned aisn; -+ /* UDCCSR = UDC Control/Status Register for this EP -+ * UBCR = UDC Byte Count Remaining (contents of OUT fifo) -+ * UDCDR = UDC Endpoint Data Register (the fifo) -+ * UDCCR = UDC Endpoint Configuration Registers -+ * DRCM = DMA Request Channel Map -+ */ -+ volatile u32 *reg_udccsr; -+ volatile u32 *reg_udcbcr; -+ volatile u32 *reg_udcdr; -+ volatile u32 *reg_udccr; -+#ifdef USE_DMA -+ volatile u32 *reg_drcmr; -+#define drcmr(n) .reg_drcmr = & DRCMR ## n , -+#else -+#define drcmr(n) -+#endif -+ -+#ifdef CONFIG_PM -+ unsigned udccsr_value; -+ unsigned udccr_value; -+#endif -+}; -+ -+struct pxa27x_virt_ep { -+ struct usb_ep usb_ep; -+ const struct usb_endpoint_descriptor *desc; -+ struct pxa27x_ep *pxa_ep; -+}; -+ -+struct pxa27x_request { -+ struct usb_request req; -+ struct list_head queue; -+}; -+ -+enum ep0_state { -+ EP0_IDLE, -+ EP0_IN_DATA_PHASE, -+ EP0_OUT_DATA_PHASE, -+// EP0_END_XFER, -+ EP0_STALL, -+ EP0_NO_ACTION -+}; -+ -+#define EP0_FIFO_SIZE ((unsigned)16) -+#define BULK_FIFO_SIZE ((unsigned)64) -+#define ISO_FIFO_SIZE ((unsigned)256) -+#define INT_FIFO_SIZE ((unsigned)8) -+ -+struct udc_stats { -+ struct ep0stats { -+ unsigned long ops; -+ unsigned long bytes; -+ } read, write; -+ unsigned long irqs; -+}; -+ -+#define UDC_EP_NUM 24 -+ -+ -+struct pxa27x_udc { -+ struct usb_gadget gadget; -+ struct usb_gadget_driver *driver; -+ -+ enum ep0_state ep0state; -+ struct udc_stats stats; -+ unsigned got_irq : 1, -+ has_cfr : 1, -+ req_pending : 1, -+ req_std : 1, -+ req_config : 1; -+ -+#define start_watchdog(dev) mod_timer(&dev->timer, jiffies + (HZ/200)) -+ struct timer_list timer; -+ -+ struct device *dev; -+ struct pxa2xx_udc_mach_info *mach; -+ u64 dma_mask; -+ struct pxa27x_virt_ep virt_ep0; -+ struct pxa27x_ep ep[UDC_EP_NUM]; -+ unsigned int ep_num; -+ -+ unsigned configuration, -+ interface, -+ alternate; -+#ifdef CONFIG_PM -+ unsigned udccsr0; -+#endif -+}; -+ -+static struct pxa27x_udc *the_controller; -+ -+#if 0 -+/*-------------------------------------------------------------------------*/ -+ -+ -+/* one GPIO should be used to detect host disconnect */ -+static inline int is_usb_connected(void) -+{ -+ if (!the_controller->mach->udc_is_connected) -+ return 1; -+ return the_controller->mach->udc_is_connected(); -+} -+ -+/* one GPIO should force the host to see this device (or not) */ -+static inline void make_usb_disappear(void) -+{ -+ if (!the_controller->mach->udc_command) -+ return; -+ the_controller->mach->udc_command(PXA27X_UDC_CMD_DISCONNECT); -+} -+ -+static inline void let_usb_appear(void) -+{ -+ if (!the_controller->mach->udc_command) -+ return; -+ the_controller->mach->udc_command(PXA2XX_UDC_CMD_CONNECT); -+} -+#endif -+ -+/*-------------------------------------------------------------------------*/ -+ -+/* -+ * Debugging support vanishes in non-debug builds. DBG_NORMAL should be -+ * mostly silent during normal use/testing, with no timing side-effects. -+ */ -+#define DBG_NORMAL 1 /* error paths, device state transitions */ -+#define DBG_VERBOSE 2 /* add some success path trace info */ -+#define DBG_NOISY 3 /* ... even more: request level */ -+#define DBG_VERY_NOISY 4 /* ... even more: packet level */ -+ -+#ifdef DEBUG -+static const char *state_name[] = { -+ "EP0_IDLE", -+ "EP0_IN_DATA_PHASE", "EP0_OUT_DATA_PHASE", -+ "EP0_END_XFER", "EP0_STALL" -+}; -+ -+#define DMSG(stuff...) printk(KERN_ERR "udc: " stuff) -+ -+#ifdef VERBOSE -+# define UDC_DEBUG DBG_VERBOSE -+#else -+# define UDC_DEBUG DBG_NORMAL -+#endif -+ -+static void __attribute__ ((__unused__)) -+dump_udccr(const char *label) -+{ -+ u32 udccr = UDCCR; -+ DMSG("%s 0x%08x =%s%s%s%s%s%s%s%s%s%s, con=%d,inter=%d,altinter=%d\n", -+ label, udccr, -+ (udccr & UDCCR_OEN) ? " oen":"", -+ (udccr & UDCCR_AALTHNP) ? " aalthnp":"", -+ (udccr & UDCCR_AHNP) ? " rem" : "", -+ (udccr & UDCCR_BHNP) ? " rstir" : "", -+ (udccr & UDCCR_DWRE) ? " dwre" : "", -+ (udccr & UDCCR_SMAC) ? " smac" : "", -+ (udccr & UDCCR_EMCE) ? " emce" : "", -+ (udccr & UDCCR_UDR) ? " udr" : "", -+ (udccr & UDCCR_UDA) ? " uda" : "", -+ (udccr & UDCCR_UDE) ? " ude" : "", -+ (udccr & UDCCR_ACN) >> UDCCR_ACN_S, -+ (udccr & UDCCR_AIN) >> UDCCR_AIN_S, -+ (udccr & UDCCR_AAISN)>> UDCCR_AAISN_S ); -+} -+ -+static void __attribute__ ((__unused__)) -+dump_udccsr0(const char *label) -+{ -+ u32 udccsr0 = UDCCSR0; -+ -+ DMSG("%s %s 0x%08x =%s%s%s%s%s%s%s\n", -+ label, state_name[the_controller->ep0state], udccsr0, -+ (udccsr0 & UDCCSR0_SA) ? " sa" : "", -+ (udccsr0 & UDCCSR0_RNE) ? " rne" : "", -+ (udccsr0 & UDCCSR0_FST) ? " fst" : "", -+ (udccsr0 & UDCCSR0_SST) ? " sst" : "", -+ (udccsr0 & UDCCSR0_DME) ? " dme" : "", -+ (udccsr0 & UDCCSR0_IPR) ? " ipr" : "", -+ (udccsr0 & UDCCSR0_OPC) ? " opr" : ""); -+} -+ -+static void __attribute__ ((__unused__)) -+dump_state(struct pxa27x_udc *dev) -+{ -+ unsigned i; -+ -+ DMSG("%s, udcicr %02X.%02X, udcsir %02X.%02x, udcfnr %02X\n", -+ state_name[dev->ep0state], -+ UDCICR1, UDCICR0, UDCISR1, UDCISR0, UDCFNR); -+ dump_udccr("udccr"); -+ -+ if (!dev->driver) { -+ DMSG("no gadget driver bound\n"); -+ return; -+ } else -+ DMSG("ep0 driver '%s'\n", dev->driver->driver.name); -+ -+ -+ dump_udccsr0 ("udccsr0"); -+ DMSG("ep0 IN %lu/%lu, OUT %lu/%lu\n", -+ dev->stats.write.bytes, dev->stats.write.ops, -+ dev->stats.read.bytes, dev->stats.read.ops); -+ -+ for (i = 1; i < UDC_EP_NUM; i++) { -+ if (dev->ep[i].assigned) -+ DMSG ("udccs%d = %02x\n", i, *dev->ep->reg_udccsr); -+ } -+} -+ -+#if 0 -+static void dump_regs(u8 ep) -+{ -+ DMSG("EP:%d UDCCSR:0x%08x UDCBCR:0x%08x\n UDCCR:0x%08x\n", -+ ep,UDCCSN(ep), UDCBCN(ep), UDCCN(ep)); -+} -+static void dump_req (struct pxa27x_request *req) -+{ -+ struct usb_request *r = &req->req; -+ -+ DMSG("%s: buf:0x%08x length:%d dma:0x%08x actual:%d\n", -+ __FUNCTION__, (unsigned)r->buf, r->length, -+ r->dma, r->actual); -+} -+#endif -+ -+#else -+ -+#define DMSG(stuff...) do{}while(0) -+ -+#define dump_udccr(x) do{}while(0) -+#define dump_udccsr0(x) do{}while(0) -+#define dump_state(x) do{}while(0) -+ -+#define UDC_DEBUG ((unsigned)4) -+ -+#endif -+ -+#define DBG(lvl, stuff...) do{if ((lvl) <= UDC_DEBUG) DMSG(stuff);}while(0) -+ -+#define WARN(stuff...) printk(KERN_WARNING "udc: " stuff) -+#define INFO(stuff...) printk(KERN_INFO "udc: " stuff) -+ -+ -+#endif /* __LINUX_USB_GADGET_PXA27X_H */ -Index: linux-2.6.20.7/drivers/usb/gadget/pxa2xx_udc.h -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/pxa2xx_udc.h 2007-04-21 12:21:53.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/pxa2xx_udc.h 2007-04-21 12:22:00.000000000 -0300 -@@ -259,7 +259,8 @@ - unsigned i; - - DMSG("%s %s, uicr %02X.%02X, usir %02X.%02x, ufnr %02X.%02X\n", -- is_usb_connected() ? "host " : "disconnected", -+ //is_usb_connected() ? "host " : "disconnected", -+ "host ", - state_name[dev->ep0state], - UICR1, UICR0, USIR1, USIR0, UFNRH, UFNRL); - dump_udccr("udccr"); -@@ -276,8 +277,8 @@ - } else - DMSG("ep0 driver '%s'\n", dev->driver->driver.name); - -- if (!is_usb_connected()) -- return; -+ //if (!is_usb_connected()) -+ // return; - - dump_udccs0 ("udccs0"); - DMSG("ep0 IN %lu/%lu, OUT %lu/%lu\n", -Index: linux-2.6.20.7/drivers/usb/gadget/ether.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/usb/gadget/ether.c 2007-04-21 12:21:53.000000000 -0300 -+++ linux-2.6.20.7/drivers/usb/gadget/ether.c 2007-04-21 12:29:18.000000000 -0300 -@@ -1275,6 +1275,10 @@ - /* done sending after USB_CDC_GET_ENCAPSULATED_RESPONSE */ - } - -+#ifdef CONFIG_USB_GADGET_PXA27X -+int write_ep0_zlp(void); -+#endif -+ - static void rndis_command_complete (struct usb_ep *ep, struct usb_request *req) - { - struct eth_dev *dev = ep->driver_data; -@@ -1285,6 +1289,10 @@ - status = rndis_msg_parser (dev->rndis_config, (u8 *) req->buf); - if (status < 0) - ERROR(dev, "%s: rndis parse error %d\n", __FUNCTION__, status); -+ -+#ifdef CONFIG_USB_GADGET_PXA27X -+ write_ep0_zlp(); -+#endif - spin_unlock(&dev->lock); - } - diff --git a/packages/linux/linux-ezx-2.6.21/ezx-kbd.patch b/packages/linux/linux-ezx-2.6.21/ezx-kbd.patch deleted file mode 100644 index 7c020a2d96..0000000000 --- a/packages/linux/linux-ezx-2.6.21/ezx-kbd.patch +++ /dev/null @@ -1,139 +0,0 @@ -Index: linux-2.6.21/arch/arm/mach-pxa/ezx-kbd.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-kbd.c 2007-04-30 20:33:19.000000000 -0300 -@@ -0,0 +1,109 @@ -+#include <linux/input.h> -+#include <asm/arch/kbd.h> -+#include <asm/arch/pxa-regs.h> -+ -+extern void __init pxa_set_kbd_info(struct pxakbd_platform_data *); -+ -+#if defined(CONFIG_PXA_EZX_E680) -+static unsigned char ezx_keycode[] = { -+ /* row 0 */ -+ KEY_UP, KEY_RIGHT, KEY_RESERVED, KEY_PHONE, -+ /* row 1 */ -+ KEY_DOWN, KEY_LEFT, KEY_VOLUMEUP, KEY_VOLUMEDOWN, -+ /* row 2 */ -+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_KPENTER, -+}; -+ -+static unsigned char ezx_direct_keycode[] = { -+ KEY_CAMERA, -+ KEYPAD_RESERVED, -+ KEYPAD_RESERVED, -+ KEYPAD_HOME, -+ KEY_POWER, -+ KEYPAD_MENU, -+}; -+#elif defined(CONFIG_PXA_EZX_A780) -+static unsigned char ezx_keycode[] = { -+ /* row 0 */ -+ KEY_KPENTER, KEY_MENU, KEY_CANCEL, KEY_PAGEUP, KEY_UP, -+ /* row 1 */ -+ KEY_KP1, KEY_KP2, KEY_KP3, KEY_ENTER, KEY_KPENTER, /*center joypad */ -+ /* row 2 */ -+ KEY_KP4, KEY_KP5, KEY_KP6, KEY_PAGEDOWN, KEY_PHONE, -+ /* row 3 */ -+ KEY_KP7, KEY_KP8, KEY_KP9, KEY_PHONE, KEY_LEFT, -+ /* row 4 */ -+ KEY_KPASTERISK, KEY_KP0, KEY_KPDOT, KEY_PAGEDOWN, KEY_DOWN, -+}; -+static unsigned char ezx_direct_keycode[] = { -+ KEY_CAMERA, -+}; -+#else -+#error "no EZX subarchitecture defined" -+#endif -+ -+static int ezx_kbd_init(void) -+{ -+#if defined(CONFIG_PXA_EZX_E680) -+ pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, VR Key */ -+ pxa_gpio_mode(96 | GPIO_ALT_FN_1_IN); /* KP_DKIN<3>, GAME_A */ -+ pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN); /* KP_DKIN<4>, power key */ -+ pxa_gpio_mode(98 | GPIO_ALT_FN_1_IN); /* KP_DKIN<5>, GAME_B */ -+ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */ -+ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */ -+ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */ -+ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */ -+ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */ -+ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */ -+ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */ -+ pxa_gpio_mode(GPIO_TC_MM_EN); -+ GPDR(GPIO_TC_MM_EN) |= GPIO_bit(GPIO_TC_MM_EN); -+ GPSR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN); -+ PGSR3 |= GPIO_bit(GPIO_TC_MM_EN); -+#elif defined(CONFIG_PXA_EZX_A780) -+ pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, voice_rec */ -+ pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */ -+ pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */ -+ pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */ -+ pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */ -+ pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */ -+ pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */ -+ pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */ -+ pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */ -+ pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */ -+ pxa_gpio_mode(107 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<4> */ -+#endif -+ return 0; -+} -+ -+static struct pxakbd_platform_data ezx_kbd_platform_data = { -+ .init = &ezx_kbd_init, -+ .scan_interval = HZ/40, -+ .matrix = { -+ .keycode = ezx_keycode, -+#if defined(CONFIG_PXA_EZX_E680) -+ .cols = 4, -+ .rows = 3, -+#elif defined(CONFIG_PXA_EZX_A780) -+ .cols = 5, -+ .rows = 5, -+#endif -+ }, -+ .direct = { -+ .keycode = ezx_direct_keycode, -+#if defined(CONFIG_PXA_EZX_E680) -+ .num = 6, -+#elif defined(CONFIG_PXA_EZX_A780) -+ .num = 1, -+#endif -+ }, -+}; -+ -+ -+int __init __ezx_kbd_init (void) -+{ -+ pxa_set_kbd_info(&ezx_kbd_platform_data); -+ return 0; -+} -+ -+arch_initcall(__ezx_kbd_init); -Index: linux-2.6.21/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-04-30 20:09:21.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-04-30 20:09:34.000000000 -0300 -@@ -18,7 +18,7 @@ - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o --obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o -+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o ezx-kbd.o - obj-$(CONFIG_PXA_EZX_EMU) += ezx-emu.o - - # Support for blinky lights -Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c -=================================================================== ---- linux-2.6.21.orig/drivers/input/keyboard/pxakbd.c 2007-04-30 20:47:29.000000000 -0300 -+++ linux-2.6.21/drivers/input/keyboard/pxakbd.c 2007-04-30 20:49:32.000000000 -0300 -@@ -213,6 +213,7 @@ - if (!input_dev) - goto out_pxa; - -+ spin_lock_init(&pxakbd->lock); - pxakbd->irq = platform_get_irq(pdev, 0); - r = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!r || pxakbd->irq == NO_IRQ) { diff --git a/packages/linux/linux-ezx-2.6.21/ezx-mci.patch b/packages/linux/linux-ezx-2.6.21/ezx-mci.patch deleted file mode 100644 index d16693e3e4..0000000000 --- a/packages/linux/linux-ezx-2.6.21/ezx-mci.patch +++ /dev/null @@ -1,177 +0,0 @@ -Index: linux-2.6.20.7/arch/arm/mach-pxa/ezx-mci.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.20.7/arch/arm/mach-pxa/ezx-mci.c 2007-04-20 01:10:13.000000000 -0300 -@@ -0,0 +1,159 @@ -+/* -+ * linux/arch/arm/mach-ezx/a780.c -+ * -+ * Support for the Motorola Ezx A780 Development Platform. -+ * -+ * Author: Zhuang Xiaofan -+ * Created: Nov 25, 2003 -+ * Copyright: Motorola Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+ -+#include <linux/mmc/host.h> -+#include <linux/irq.h> -+#include <asm/irq.h> -+#include <asm/arch/pxa-regs.h> -+#include <asm/arch/ezx-pcap.h> -+#include <asm/arch/mmc.h> -+#include <asm/arch/hardware.h> -+ -+extern int ezx_pcap_mmcsd_power(int); -+extern void ezx_pcap_mmcsd_voltage(u_int32_t); -+ -+static struct pxamci_platform_data ezx_mci_platform_data; -+ -+static int ezx_mci_init(struct device *dev, -+ irqreturn_t (*ezx_detect_int)(int, void *), -+ void *data) -+{ -+ int err; -+ printk("%s entered\n", __FUNCTION__); -+ -+ /* Setup GPIO for PXA27x MMC/SD controller */ -+ pxa_gpio_mode(GPIO32_MMCCLK_MD); -+ pxa_gpio_mode(GPIO112_MMCCMD_MD); -+ pxa_gpio_mode(GPIO92_MMCDAT0_MD); -+ pxa_gpio_mode(GPIO109_MMCDAT1_MD); -+ pxa_gpio_mode(GPIO110_MMCDAT2_MD); -+ pxa_gpio_mode(GPIO111_MMCDAT3_MD); -+ -+ ezx_pcap_mmcsd_power(1); -+ -+ ezx_mci_platform_data.detect_delay = msecs_to_jiffies(250); -+ -+ err = request_irq(0x49, ezx_detect_int, SA_INTERRUPT, -+ "MMC card detect", data); -+ if (err) { -+ printk(KERN_ERR "ezx_mci_detect: MMC/SD: can't request " -+ "MMC card detect IRQ\n"); -+ return -1; -+ } -+ -+ set_irq_type(0x0b, IRQT_BOTHEDGE); -+ -+ return 0; -+} -+ -+static int ezx_mci_get_ro(struct device *dev) -+{ -+ printk("%s entered\n", __FUNCTION__); -+#if defined(CONFIG_PXA_EZX_E680) -+ /* this is only e680, i guess */ -+ // return GPIO_is_high(96+4); -+ return (GPLR3 & 0x800); -+#else -+ return 0; -+#endif -+} -+ -+#if defined(CONFIG_PXA_EZX_A780) -+static u_int8_t mmc_voltage[] = { -+ [MMC_VDD_160] = 5, -+ [MMC_VDD_170] = 5, -+ [MMC_VDD_180] = 6, -+ [MMC_VDD_190] = 6, -+ [MMC_VDD_200] = 7, -+ [MMC_VDD_210] = 7, -+ [MMC_VDD_220] = 8, -+ [MMC_VDD_230] = 8, -+ [MMC_VDD_240] = 9, -+ [MMC_VDD_250] = 9, -+ [MMC_VDD_260] = 10, -+ [MMC_VDD_270] = 10, -+ [MMC_VDD_280] = 11, -+ [MMC_VDD_290] = 11, -+ [MMC_VDD_300] = 12, -+ [MMC_VDD_310] = 12, -+ [MMC_VDD_320] = 13, -+ [MMC_VDD_330] = 13, -+ [MMC_VDD_340] = 14, -+ [MMC_VDD_350] = 14, -+ [MMC_VDD_360] = 15, -+}; -+#elif defined(CONFIG_PXA_EZX_E680) -+static u_int8_t mmc_voltage[] = { -+ [MMC_VDD_160] = 3, -+ [MMC_VDD_170] = 3, -+ [MMC_VDD_180] = 3, -+ [MMC_VDD_190] = 3, -+ [MMC_VDD_200] = 3, -+ [MMC_VDD_210] = 3, -+ [MMC_VDD_220] = 3, -+ [MMC_VDD_230] = 3, -+ [MMC_VDD_240] = 3, -+ [MMC_VDD_250] = 3, -+ [MMC_VDD_260] = 3, -+ [MMC_VDD_270] = 3, -+ [MMC_VDD_280] = 3, -+ [MMC_VDD_290] = 3, -+ [MMC_VDD_300] = 3, -+ [MMC_VDD_310] = 3, -+ [MMC_VDD_320] = 3, -+ [MMC_VDD_330] = 3, -+ [MMC_VDD_340] = 3, -+ [MMC_VDD_350] = 3, -+ [MMC_VDD_360] = 3, -+}; -+#endif -+ -+static void ezx_mci_setpower(struct device *dev, unsigned int vdd) -+{ -+ printk("%s(vdd=%u) entered\n", __FUNCTION__, vdd); -+ if (vdd <= MMC_VDD_360) -+ ezx_pcap_mmcsd_voltage(mmc_voltage[vdd]); -+ -+ ezx_pcap_mmcsd_power(1); -+} -+ -+static void ezx_mci_exit(struct device *dev, void *data) -+{ -+ printk("%s entered\n", __FUNCTION__); -+ ezx_pcap_mmcsd_power(0); -+ free_irq(0x49, data); -+} -+ -+static struct pxamci_platform_data ezx_mci_platform_data = { -+#if defined(CONFIG_PXA_EZX_E680) -+ .ocr_mask = MMC_VDD_27_28, -+#elif defined(CONFIG_PXA_EZX_A780) -+ .ocr_mask = MMC_VDD_160_165|MMC_VDD_18_19|MMC_VDD_20_21 -+ |MMC_VDD_22_23|MMC_VDD_24_25|MMC_VDD_26_27 -+ |MMC_VDD_28_29|MMC_VDD_30_31|MMC_VDD_32_33 -+ |MMC_VDD_34_35|MMC_VDD_35_36, -+#endif -+ .init = ezx_mci_init, -+ .get_ro = ezx_mci_get_ro, -+ .setpower = ezx_mci_setpower, -+ .exit = ezx_mci_exit, -+}; -+ -+int __init __ezx_mci_init (void) -+{ -+ pxa_set_mci_info(&ezx_mci_platform_data); -+ return 0; -+} -+ -+arch_initcall(__ezx_mci_init); -Index: linux-2.6.20.7/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.20.7.orig/arch/arm/mach-pxa/Makefile 2007-04-21 02:56:16.000000000 -0300 -+++ linux-2.6.20.7/arch/arm/mach-pxa/Makefile 2007-04-21 03:00:03.000000000 -0300 -@@ -18,7 +18,7 @@ - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o - obj-$(CONFIG_MACH_TOSA) += tosa.o --obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o -+obj-$(CONFIG_PXA_EZX) += ezx.o ezx_lcd.o ezx_ssp.o ezx-pcap.o ezx-mci.o - - # Support for blinky lights - led-y := leds.o diff --git a/packages/linux/linux-ezx-2.6.21/ezx-serial-bug-workaround.patch b/packages/linux/linux-ezx-2.6.21/ezx-serial-bug-workaround.patch deleted file mode 100644 index 9f30cc35fe..0000000000 --- a/packages/linux/linux-ezx-2.6.21/ezx-serial-bug-workaround.patch +++ /dev/null @@ -1,45 +0,0 @@ -Work around some errata in the pxa serial code (copied from motorolas 2.4.x tree) - -Index: linux-2.6.20.7/drivers/serial/pxa.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/serial/pxa.c 2007-04-21 13:57:46.000000000 -0300 -+++ linux-2.6.20.7/drivers/serial/pxa.c 2007-04-21 14:05:03.000000000 -0300 -@@ -29,6 +29,10 @@ - #define SUPPORT_SYSRQ - #endif - -+#define pxa_buggy_port(x) ({ \ -+ int cpu_ver; asm("mrc%? p15, 0, %0, c0, c0" : "=r" (cpu_ver)); \ -+ ((x) == PORT_PXA && (cpu_ver & ~1) == 0x69052100); }) -+ - #include <linux/module.h> - #include <linux/ioport.h> - #include <linux/init.h> -@@ -195,7 +199,7 @@ - if (uart_circ_empty(xmit)) - serial_pxa_stop_tx(&up->port); - } -- -+static inline irqreturn_t serial_pxa_irq(int, void *); - static void serial_pxa_start_tx(struct uart_port *port) - { - struct uart_pxa_port *up = (struct uart_pxa_port *)port; -@@ -203,6 +207,8 @@ - if (!(up->ier & UART_IER_THRI)) { - up->ier |= UART_IER_THRI; - serial_out(up, UART_IER, up->ier); -+ if (pxa_buggy_port(up->port.type)) -+ serial_pxa_irq(up->port.irq, NULL); - } - } - -@@ -298,6 +304,9 @@ - - mcr |= up->mcr; - -+ if (pxa_buggy_port(up->port.type) && up->port.irq != 0) -+ mcr ^= UART_MCR_OUT2; -+ - serial_out(up, UART_MCR, mcr); - } - diff --git a/packages/linux/linux-ezx-2.6.21/ezx-ts.patch b/packages/linux/linux-ezx-2.6.21/ezx-ts.patch deleted file mode 100644 index 1dd88efd6e..0000000000 --- a/packages/linux/linux-ezx-2.6.21/ezx-ts.patch +++ /dev/null @@ -1,399 +0,0 @@ -Index: linux-2.6.21/drivers/input/touchscreen/Kconfig -=================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-04-26 05:08:32.000000000 +0200 -+++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-04-26 23:27:05.000000000 +0200 -@@ -164,4 +164,16 @@ - To compile this driver as a module, choose M here: the - module will be called ucb1400_ts. - -+config TOUCHSCREEN_PCAP -+ tristate "Motorola PCAP touchscreen" -+ depends on PXA_EZX_PCAP -+ help -+ Say Y here if you have a Motorola EZX (E680, A780) telephone -+ and want to support the built-in touchscreen. -+ -+ If unsure, say N. -+ -+ To compile this driver as a module, choose M here: the -+ module will be called hp680_ts_input. -+ - endif -Index: linux-2.6.21/drivers/input/touchscreen/Makefile -=================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-04-26 05:08:32.000000000 +0200 -+++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-04-26 23:27:52.000000000 +0200 -@@ -16,3 +16,4 @@ - obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o - obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o - obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o -+obj-$(CONFIG_TOUCHSCREEN_PCAP) += pcap_ts.o -Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-04-26 23:27:05.000000000 +0200 -@@ -0,0 +1,364 @@ -+/* -+ * pcap_ts.c - Touchscreen driver for Motorola PCAP2 based touchscreen as found -+ * in the EZX phone platform. -+ * -+ * Copyright (C) 2006 Harald Welte <laforge@openezx.org> -+ * -+ * Based on information found in the original Motorola 2.4.x ezx-ts.c driver. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * TODO: -+ * split this in a hardirq handler and a tasklet/bh -+ * suspend/resume support -+ */ -+ -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/fs.h> -+#include <linux/string.h> -+#include <linux/pm.h> -+#include <linux/timer.h> -+#include <linux/config.h> -+#include <linux/interrupt.h> -+#include <linux/platform_device.h> -+#include <linux/input.h> -+ -+#include <asm/arch/hardware.h> -+#include <asm/arch/pxa-regs.h> -+ -+#include "../../misc/ezx/ssp_pcap.h" -+ -+#if 1 -+#define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args) -+#else -+#define DEBUGP(x, args ...) -+#endif -+ -+#define PRESSURE 1 -+#define COORDINATE 2 -+ -+struct pcap_ts { -+ int irq_xy; -+ int irq_touch; -+ struct input_dev *input; -+ struct timer_list timer; -+ -+ u_int16_t x, y; -+ u_int16_t pressure, pressure_last; -+ -+ u_int8_t read_state; -+}; -+ -+#define X_AXIS_MIN 0 -+#define X_AXIS_MAX 1023 -+ -+#define Y_AXIS_MAX X_AXIS_MAX -+#define Y_AXIS_MIN X_AXIS_MIN -+ -+#define PRESSURE_MAX X_AXIS_MAX -+#define PRESSURE_MIN X_AXIS_MIN -+ -+static int pcap_ts_mode(u_int32_t mode) -+{ -+ int ret; -+ -+ u_int32_t tmp; -+ -+ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ tmp &= ~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK; -+ tmp |= mode; -+ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp); -+ -+ DEBUGP("set ts mode "); -+ if (mode == PCAP_TS_POSITION_XY_MEASUREMENT) -+ DEBUGP("COORD\n"); -+ else if (mode == PCAP_TS_PRESSURE_MEASUREMENT) -+ DEBUGP("PRESS\n"); -+ else if (mode == PCAP_TS_STANDBY_MODE) -+ DEBUGP("STANDBY\n"); -+ else -+ printk("UNKNOWN\n"); -+ -+ return ret; -+} -+ -+/* issue a XY read command to the ADC of PCAP2. Well get an ADCDONE2 interrupt -+ * once the result of the conversion is available */ -+static int pcap_ts_start_xy_read(struct pcap_ts *pcap_ts) -+{ -+ int ret; -+ u_int32_t tmp; -+ DEBUGP("start xy read in mode %s\n", -+ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ -+ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ tmp &= SSP_PCAP_ADC_START_VALUE_SET_MASK; -+ tmp |= SSP_PCAP_ADC_START_VALUE; -+ -+ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp); -+ if (ret < 0) -+ return ret; -+ -+ ret = ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_ADC2_ASC, 1); -+ -+ return ret; -+} -+ -+/* read the XY result from the ADC of PCAP2 */ -+static int pcap_ts_get_xy_value(struct pcap_ts *pcap_ts) -+{ -+ int ret; -+ u_int32_t tmp; -+ -+ DEBUGP("get xy value in mode %s\n", -+ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ -+ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ if (tmp & 0x00400000) -+ return -EIO; -+ -+ if (pcap_ts->read_state == COORDINATE) { -+ pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK); -+ pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK) -+ >>SSP_PCAP_ADD2_VALUE_SHIFT; -+ } else { -+ pcap_ts->pressure_last = pcap_ts->pressure; -+ pcap_ts->pressure = (tmp & SSP_PCAP_ADD2_VALUE_MASK) -+ >>SSP_PCAP_ADD2_VALUE_SHIFT; -+ } -+ -+ return 0; -+} -+ -+/* PCAP2 interrupts us when ADC conversion result is available */ -+static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id, struct pt_regs *regs) -+{ -+ struct pcap_ts *pcap_ts = dev_id; -+ -+ if (pcap_ts_get_xy_value(pcap_ts) < 0) { -+ printk("pcap_ts: error reading XY value\n"); -+ return IRQ_HANDLED; -+ } -+ -+ DEBUGP("%s X=%4d, Y=%4d Z=%4d\n", -+ pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS", -+ pcap_ts->x, pcap_ts->y, pcap_ts->pressure); -+ -+ if (pcap_ts->read_state == PRESSURE) { -+ input_report_abs(pcap_ts->input, ABS_PRESSURE, -+ pcap_ts->pressure); -+ if ((pcap_ts->pressure >= PRESSURE_MAX || -+ pcap_ts->pressure <= PRESSURE_MIN ) && -+ pcap_ts->pressure == pcap_ts->pressure_last) { -+ /* pen has been released */ -+ input_report_key(pcap_ts->input, BTN_TOUCH, 0); -+ input_sync(pcap_ts->input); -+ -+ pcap_ts->x = pcap_ts->y = 0; -+ -+ /* ask PCAP2 to interrupt us if touch event happens -+ * again */ -+ pcap_ts->read_state = PRESSURE; -+ pcap_ts_mode(PCAP_TS_STANDBY_MODE); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -+ -+ /* no need for timer, we'll get interrupted with -+ * next touch down event */ -+ del_timer(&pcap_ts->timer); -+ } else { -+ /* pen has been touched down */ -+ input_report_key(pcap_ts->input, BTN_TOUCH, 1); -+ /* don't input_sync(), we don't know position yet */ -+ -+ /* switch state machine into coordinate read mode */ -+ pcap_ts->read_state = COORDINATE; -+ pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT); -+ pcap_ts_start_xy_read(pcap_ts); -+ -+ mod_timer(&pcap_ts->timer, jiffies + HZ/20); -+ } -+ } else { -+ /* we are in coordinate mode */ -+ if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX || -+ pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) { -+ DEBUGP("invalid x/y coordinate position: PEN_UP?\n"); -+#if 0 -+ input_report_key(pcap_ts->input, BTN_TOUCH, 0); -+ pcap_ts->x = pcap_ts->y = 0; -+#endif -+ } else { -+ input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x); -+ input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y); -+ } -+ input_sync(pcap_ts->input); -+ -+ /* switch back to pressure read mode */ -+ pcap_ts->read_state = PRESSURE; -+ pcap_ts_mode(PCAP_TS_STANDBY_MODE); -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -+ } -+ -+ return IRQ_HANDLED; -+} -+ -+/* PCAP2 interrupts us if the pen touches down */ -+static irqreturn_t pcap_ts_irq_touch(int irq, void *dev_id, struct pt_regs *regs) -+{ -+ struct pcap_ts *pcap_ts = dev_id; -+ DEBUGP("entered\n"); -+ -+ /* mask Touchscreen interrupt bit, prevents further touch events -+ * from being reported to us until we're finished with reading -+ * both pressure and x/y from ADC */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 1); -+ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT); -+ pcap_ts->read_state = PRESSURE; -+ pcap_ts_start_xy_read(pcap_ts); -+ -+ return IRQ_HANDLED; -+} -+ -+static void pcap_ts_timer_fn(unsigned long data) -+{ -+ struct pcap_ts *pcap_ts = (struct pcap_ts *) data; -+ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 1); -+ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT); -+ pcap_ts->read_state = PRESSURE; -+ pcap_ts_start_xy_read(pcap_ts); -+} -+ -+static int __init ezxts_probe(struct platform_device *pdev) -+{ -+ struct pcap_ts *pcap_ts; -+ struct input_dev *input_dev; -+ int err = -ENOMEM; -+ -+ pcap_ts = kzalloc(sizeof(*pcap_ts), GFP_KERNEL); -+ input_dev = input_allocate_device(); -+ if (!pcap_ts || !input_dev) -+ goto fail; -+ -+ pcap_ts->irq_xy = platform_get_irq(pdev, 0); -+ if (pcap_ts->irq_xy < 0) { -+ err = pcap_ts->irq_xy; -+ goto fail; -+ } -+ -+ pcap_ts->irq_touch = platform_get_irq(pdev, 1); -+ if (pcap_ts->irq_touch < 0) { -+ err = pcap_ts->irq_touch; -+ goto fail; -+ } -+ -+ ssp_pcap_open(SSP_PCAP_TS_OPEN); -+ -+ err = request_irq(pcap_ts->irq_xy, pcap_ts_irq_xy, SA_INTERRUPT, -+ "PCAP Touchscreen XY", pcap_ts); -+ if (err < 0) { -+ printk(KERN_ERR "pcap_ts: can't grab xy irq %d: %d\n", -+ pcap_ts->irq_xy, err); -+ goto fail; -+ } -+ -+ err = request_irq(pcap_ts->irq_touch, pcap_ts_irq_touch, SA_INTERRUPT, -+ "PCAP Touchscreen Touch", pcap_ts); -+ if (err < 0) { -+ printk(KERN_ERR "pcap_ts: can't grab touch irq %d: %d\n", -+ pcap_ts->irq_touch, err); -+ goto fail_xy; -+ } -+ -+ pcap_ts->input = input_dev; -+ pcap_ts->read_state = PRESSURE; -+ init_timer(&pcap_ts->timer); -+ pcap_ts->timer.data = (unsigned long) pcap_ts; -+ pcap_ts->timer.function = &pcap_ts_timer_fn; -+ -+ platform_set_drvdata(pdev, pcap_ts); -+ -+ /* enable pressure interrupt */ -+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -+ -+ input_dev->name = "EZX PCAP2 Touchscreen"; -+ input_dev->phys = "ezxts/input0"; -+ input_dev->id.bustype = BUS_HOST; -+ input_dev->id.vendor = 0x0001; -+ input_dev->id.product = 0x0002; -+ input_dev->id.version = 0x0100; -+ input_dev->cdev.dev = &pdev->dev; -+ input_dev->private = pcap_ts; -+ -+ input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_ABS); -+ input_dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH); -+ input_set_abs_params(input_dev, ABS_X, X_AXIS_MIN, X_AXIS_MAX, 0, 0); -+ input_set_abs_params(input_dev, ABS_Y, Y_AXIS_MIN, Y_AXIS_MAX, 0, 0); -+ input_set_abs_params(input_dev, ABS_PRESSURE, PRESSURE_MIN, -+ PRESSURE_MAX, 0, 0); -+ -+ input_register_device(pcap_ts->input); -+ -+ return 0; -+ -+fail_xy: -+ free_irq(pcap_ts->irq_xy, pcap_ts); -+fail: -+ input_free_device(input_dev); -+ kfree(pcap_ts); -+ -+ return err; -+} -+ -+static int ezxts_remove(struct platform_device *pdev) -+{ -+ struct pcap_ts *pcap_ts = platform_get_drvdata(pdev); -+ -+ del_timer_sync(&pcap_ts->timer); -+ -+ free_irq(pcap_ts->irq_touch, pcap_ts); -+ free_irq(pcap_ts->irq_xy, pcap_ts); -+ -+ input_unregister_device(pcap_ts->input); -+ kfree(pcap_ts); -+ -+ return 0; -+} -+ -+static struct platform_driver ezxts_driver = { -+ .probe = ezxts_probe, -+ .remove = ezxts_remove, -+ //.suspend = ezxts_suspend, -+ //.resume = ezxts_resume, -+ .driver = { -+ .name = "pcap-ts", -+ }, -+}; -+ -+static int __devinit ezxts_init(void) -+{ -+ return platform_driver_register(&ezxts_driver); -+} -+ -+static void __exit ezxts_exit(void) -+{ -+ platform_driver_unregister(&ezxts_driver); -+} -+ -+module_init(ezxts_init); -+module_exit(ezxts_exit); -+ -+MODULE_DESCRIPTION("Motorola PCAP2 touchscreen driver"); -+MODULE_AUTHOR("Harald Welte <laforge@openezx.org>"); -+MODULE_LICENSE("GPL"); diff --git a/packages/linux/linux-ezx-2.6.21/mux-fix-init-errorpath.patch b/packages/linux/linux-ezx-2.6.21/mux-fix-init-errorpath.patch deleted file mode 100644 index 716ef86fd1..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-fix-init-errorpath.patch +++ /dev/null @@ -1,20 +0,0 @@ -Index: linux-2.6.16/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux_usb.c 2007-01-17 00:10:32.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux_usb.c 2007-01-17 00:42:23.000000000 +0100 -@@ -811,7 +811,6 @@ - /*init the related mux interface*/ - if (!(bvd_ipc = kzalloc(sizeof(struct ipc_usb_data), GFP_KERNEL))) { - err("usb_ipc_init: Out of memory."); -- usb_deregister(&usb_ipc_driver); - return -ENOMEM; - } - bvd_dbg("usb_ipc_init: Address of bvd_ipc:%p", bvd_ipc); -@@ -819,7 +818,6 @@ - if (!(bvd_ipc->xmit.buf = kmalloc(IPC_USB_XMIT_SIZE, GFP_KERNEL))) { - err("usb_ipc_init: Not enough memory for the input buffer."); - kfree(bvd_ipc); -- usb_deregister(&usb_ipc_driver); - return -ENOMEM; - } - bvd_dbg("usb_ipc_init: bvd_ipc->xmit.buf address:%p", diff --git a/packages/linux/linux-ezx-2.6.21/mux-fix-tty-driver.patch b/packages/linux/linux-ezx-2.6.21/mux-fix-tty-driver.patch deleted file mode 100644 index 2e1aabd952..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-fix-tty-driver.patch +++ /dev/null @@ -1,125 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/ts0710_mux.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux.c 2007-04-22 10:51:31.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux.c 2007-04-22 10:53:05.000000000 +0200 -@@ -241,7 +241,8 @@ - static volatile __u8 mux_recv_info_flags[NR_MUXS]; - static mux_recv_struct *mux_recv_queue = NULL; - --static struct tty_driver mux_driver; -+// Local for 2.6? -+static struct tty_driver *mux_driver; - - #ifdef USB_FOR_MUX - #define COMM_FOR_MUX_DRIVER usb_for_mux_driver -@@ -3007,6 +3008,7 @@ - #else - mux_tty[line]++; - dlci = tty2dlci[line]; -+ mux_table[line] = tty; - - /* if( dlci == 1 ) { */ - /* Open server channel 0 first */ -@@ -3087,6 +3089,7 @@ - } - } - -+ - retval = 0; - #endif - out: -@@ -3894,43 +3897,50 @@ - INIT_WORK(&receive_tqueue, receive_worker, NULL); - INIT_WORK(&post_recv_tqueue, post_recv_worker, NULL); - -- memset(&mux_driver, 0, sizeof(struct tty_driver)); -- memset(&mux_tty, 0, sizeof(mux_tty)); -- mux_driver.magic = TTY_DRIVER_MAGIC; -- mux_driver.driver_name = "ts0710mux"; -- mux_driver.name = "ts0710mux"; -- mux_driver.major = TS0710MUX_MAJOR; -- mux_driver.minor_start = TS0710MUX_MINOR_START; -- mux_driver.num = NR_MUXS; -- mux_driver.type = TTY_DRIVER_TYPE_SERIAL; -- mux_driver.subtype = SERIAL_TYPE_NORMAL; -- mux_driver.init_termios = tty_std_termios; -- mux_driver.init_termios.c_iflag = 0; -- mux_driver.init_termios.c_oflag = 0; -- mux_driver.init_termios.c_cflag = B38400 | CS8 | CREAD; -- mux_driver.init_termios.c_lflag = 0; -- mux_driver.flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW; -- -- mux_driver.ttys = mux_table; -- mux_driver.termios = mux_termios; -- mux_driver.termios_locked = mux_termios_locked; -+ mux_driver = alloc_tty_driver(NR_MUXS); -+ if (!mux_driver) -+ return -ENOMEM; -+ -+ mux_driver->owner = THIS_MODULE; -+ mux_driver->driver_name = "ts0710mux"; -+ mux_driver->name = "mux"; -+ mux_driver->devfs_name = "mux"; -+ mux_driver->major = TS0710MUX_MAJOR; -+ mux_driver->minor_start = TS0710MUX_MINOR_START; -+ mux_driver->type = TTY_DRIVER_TYPE_SERIAL; -+ mux_driver->subtype = SERIAL_TYPE_NORMAL; -+ mux_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW; -+ -+ mux_driver->init_termios = tty_std_termios; -+ mux_driver->init_termios.c_iflag = 0; -+ mux_driver->init_termios.c_oflag = 0; -+ mux_driver->init_termios.c_cflag = B38400 | CS8 | CREAD; -+ mux_driver->init_termios.c_lflag = 0; -+ -+// mux_driver.ttys = mux_table; -+ mux_driver->termios = mux_termios; -+ mux_driver->termios_locked = mux_termios_locked; - // mux_driver.driver_state = mux_state; -- mux_driver.other = NULL; -+ mux_driver->other = NULL; - -- mux_driver.open = mux_open; -- mux_driver.close = mux_close; -- mux_driver.write = mux_write; -- mux_driver.write_room = mux_write_room; -- mux_driver.flush_buffer = mux_flush_buffer; -- mux_driver.chars_in_buffer = mux_chars_in_buffer; -- mux_driver.throttle = mux_throttle; -- mux_driver.unthrottle = mux_unthrottle; -- mux_driver.ioctl = mux_ioctl; -- mux_driver.owner = THIS_MODULE; -+ mux_driver->open = mux_open; -+ mux_driver->close = mux_close; -+ mux_driver->write = mux_write; -+ mux_driver->write_room = mux_write_room; -+ mux_driver->flush_buffer = mux_flush_buffer; -+ mux_driver->chars_in_buffer = mux_chars_in_buffer; -+ mux_driver->throttle = mux_throttle; -+ mux_driver->unthrottle = mux_unthrottle; -+ mux_driver->ioctl = mux_ioctl; - -- if (tty_register_driver(&mux_driver)) -+ // FIXME: No panic() here -+ if (tty_register_driver(mux_driver)) - panic("Couldn't register mux driver"); - -+ for (j=0; j<NR_MUXS; j++) -+ tty_register_device(mux_driver, j, NULL); -+ -+ - COMM_MUX_DISPATCHER = mux_dispatcher; - COMM_MUX_SENDER = mux_sender; - -@@ -3964,7 +3974,10 @@ - mux_recv_info[j] = 0; - } - -- if (tty_unregister_driver(&mux_driver)) -+ for (j=0; j<NR_MUXS; j++) -+ tty_unregister_device(mux_driver, j); -+ -+ if (tty_unregister_driver(mux_driver)) - panic("Couldn't unregister mux driver"); - } - diff --git a/packages/linux/linux-ezx-2.6.21/mux-fix.patch b/packages/linux/linux-ezx-2.6.21/mux-fix.patch deleted file mode 100644 index b820762f41..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-fix.patch +++ /dev/null @@ -1,164 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux_usb.c 2007-04-21 18:07:45.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-21 20:55:13.000000000 +0200 -@@ -626,7 +626,6 @@ - } - - interface = &intf->cur_altsetting->desc; -- endpoint = &intf->cur_altsetting->endpoint[0].desc; - /* Start checking for two bulk endpoints or ... FIXME: This is a future - * enhancement...*/ - bvd_dbg("usb_ipc_probe: Number of Endpoints:%d", -@@ -638,30 +637,26 @@ - - ep_cnt = have_bulk_in_mux = have_bulk_out_mux = 0; - -- bvd_dbg("usb_ipc_probe: endpoint[0] is:%x", -- (&endpoint[0])->bEndpointAddress); -- bvd_dbg("usb_ipc_probe: endpoint[1] is:%x ", -- (&endpoint[1])->bEndpointAddress); -- - while (ep_cnt < interface->bNumEndpoints) { -- -- if (!have_bulk_in_mux && IS_EP_BULK_IN(endpoint[ep_cnt])) { -- bvd_dbg("usb_ipc_probe: bEndpointAddress(IN) is:%x ", -- (&endpoint[ep_cnt])->bEndpointAddress); -- have_bulk_in_mux = -- (&endpoint[ep_cnt])->bEndpointAddress; -- readsize = (&endpoint[ep_cnt])->wMaxPacketSize; -+ endpoint = &intf->cur_altsetting->endpoint[ep_cnt].desc; -+ bvd_dbg("usb_ipc_probe: endpoint[%i] is: %x", ep_cnt, -+ endpoint->bEndpointAddress); -+ -+ if (!have_bulk_in_mux && IS_EP_BULK_IN(*endpoint)) { -+ bvd_dbg("usb_ipc_probe: bEndpointAddress(IN) is: %x ", -+ endpoint->bEndpointAddress); -+ have_bulk_in_mux = endpoint->bEndpointAddress; -+ readsize = endpoint->wMaxPacketSize; - bvd_dbg("usb_ipc_probe: readsize=%d", readsize); - ep_cnt++; - continue; - } - -- if (!have_bulk_out_mux && IS_EP_BULK_OUT(endpoint[ep_cnt])) { -- bvd_dbg("usb_ipc_probe: bEndpointAddress(OUT) is:%x ", -- (&endpoint[ep_cnt])->bEndpointAddress); -- have_bulk_out_mux = -- (&endpoint[ep_cnt])->bEndpointAddress; -- writesize = (&endpoint[ep_cnt])->wMaxPacketSize; -+ if (!have_bulk_out_mux && IS_EP_BULK_OUT(*endpoint)) { -+ bvd_dbg("usb_ipc_probe: bEndpointAddress(OUT) is: %x ", -+ endpoint->bEndpointAddress); -+ have_bulk_out_mux = endpoint->bEndpointAddress; -+ writesize = endpoint->wMaxPacketSize; - bvd_dbg("usb_ipc_probe: writesize=%d", writesize); - ep_cnt++; - continue; -@@ -718,21 +713,27 @@ - bvd_ipc->bh_bp.func = usbipc_bh_bp_func; - bvd_ipc->bh_bp.data = (unsigned long) bvd_ipc; - -+ bvd_dbg("after assignements"); - /*Build a write urb*/ -+ usb_init_urb(&bvd_ipc->writeurb_mux); - usb_fill_bulk_urb(&bvd_ipc->writeurb_mux, usbdev, - usb_sndbulkpipe(bvd_ipc->ipc_dev, - bvd_ipc->bulk_out_ep_mux), - bvd_ipc->obuf, writesize, usb_ipc_write_bulk, - bvd_ipc); - //bvd_ipc->writeurb_mux.transfer_flags |= USB_ASYNC_UNLINK; -+ bvd_dbg("after write urb"); - - /*Build a read urb and send a IN token first time*/ -+ usb_init_urb(&bvd_ipc->readurb_mux); - usb_fill_bulk_urb(&bvd_ipc->readurb_mux, usbdev, - usb_rcvbulkpipe(usbdev, bvd_ipc->bulk_in_ep_mux), - bvd_ipc->ibuf, readsize, usb_ipc_read_bulk, bvd_ipc); - //bvd_ipc->readurb_mux.transfer_flags |= USB_ASYNC_UNLINK; -+ bvd_dbg("after read urb"); - -- usb_driver_claim_interface(&usb_ipc_driver, intf, bvd_ipc); -+ //usb_driver_claim_interface(&usb_ipc_driver, intf, bvd_ipc); -+ bvd_dbg("after claim interface"); - //usb_driver_claim_interface(&usb_ipc_driver, &ipccfg->interface[1], bvd_ipc); - - // a2590c: dsplog is not supported by this driver -@@ -740,6 +741,8 @@ - // &ipccfg->interface[2], bvd_ipc); - /*send a IN token first time*/ - bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; -+ bvd_dbg("after assignement"); -+ - if (usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) - printk("usb_ipc_prob: usb_submit_urb(read mux bulk) failed!\n"); - -@@ -750,7 +753,7 @@ - tasklet_schedule(&bvd_ipc->bh); - } - -- printk("usb_ipc_probe: completed probe!"); -+ printk("usb_ipc_probe: completed probe!\n"); - usb_set_intfdata(intf, &bvd_ipc); - return 0; - } -@@ -760,21 +763,23 @@ - //struct usb_device *usbdev = interface_to_usbdev(intf); - struct ipc_usb_data *bvd_ipc_disconnect = usb_get_intfdata(intf); - -- printk("usb_ipc_disconnect:*** \n"); - -+ printk("usb_ipc_disconnect. bvd_ipc_disconnect address: %p\n", bvd_ipc_disconnect); -+ -+ //FIXME: Memory leak? - if ((UHCRHPS3 & 0x4) == 0) -- usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux); -+ // usb_unlink_urb(&bvd_ipc_disconnect->readurb_mux); - -- usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux); -+ //usb_unlink_urb(&bvd_ipc_disconnect->writeurb_mux); - - bvd_ipc_disconnect->ipc_flag = IPC_USB_PROBE_NOT_READY; - kfree(bvd_ipc_disconnect->ibuf); - kfree(bvd_ipc_disconnect->obuf); - -- usb_driver_release_interface(&usb_ipc_driver, -- bvd_ipc_disconnect->ipc_dev->actconfig->interface[0]); -- usb_driver_release_interface(&usb_ipc_driver, -- bvd_ipc_disconnect->ipc_dev->actconfig->interface[1]); -+ //usb_driver_release_interface(&usb_ipc_driver, -+ // bvd_ipc_disconnect->ipc_dev->actconfig->interface[0]); -+ //usb_driver_release_interface(&usb_ipc_driver, -+ // bvd_ipc_disconnect->ipc_dev->actconfig->interface[1]); - - //a2590c: dsplog interface is not supported by this driver - //usb_driver_release_interface(&usb_ipc_driver, &bvd_ipc_disconnect->ipc_dev->actconfig->interface[2]); -@@ -803,13 +808,6 @@ - int result; - - bvd_dbg("init usb_ipc"); -- /* register driver at the USB subsystem */ -- result = usb_register(&usb_ipc_driver); -- if (result < 0) { -- err ("usb ipc driver could not be registered"); -- return result; -- } -- - /*init the related mux interface*/ - if (!(bvd_ipc = kzalloc(sizeof(struct ipc_usb_data), GFP_KERNEL))) { - err("usb_ipc_init: Out of memory."); -@@ -836,6 +834,14 @@ - usb_for_mux_driver = &ipcusb_tty_driver; - usb_for_mux_tty = &ipcusb_tty; - -+ /* register driver at the USB subsystem */ -+ // this was called before bvd_ipc was allocated -+ result = usb_register(&usb_ipc_driver); -+ if (result < 0) { -+ err ("usb ipc driver could not be registered"); -+ return result; -+ } -+ - /* init timers for ipcusb read process and usb suspend */ - init_timer(&ipcusb_timer); - ipcusb_timer.function = ipcusb_timeout; diff --git a/packages/linux/linux-ezx-2.6.21/mux-linux-2.6.20.7-fix.patch b/packages/linux/linux-ezx-2.6.21/mux-linux-2.6.20.7-fix.patch deleted file mode 100644 index cab7490118..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-linux-2.6.20.7-fix.patch +++ /dev/null @@ -1,224 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/ts0710.h -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710.h 2007-04-24 16:04:23.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710.h 2007-04-24 16:04:23.000000000 +0200 -@@ -45,7 +45,7 @@ - * 11/18/2002 Modified - */ - --#include <linux/config.h> -+//#include <linux/config.h> - #include <linux/module.h> - - #include <linux/errno.h> -@@ -58,7 +58,7 @@ - #include <linux/major.h> - #include <linux/mm.h> - #include <linux/init.h> --#include <linux/devfs_fs_kernel.h> -+//#include <linux/devfs_fs_kernel.h> - - #include <asm/uaccess.h> - #include <asm/system.h> -Index: linux-2.6.20.7/drivers/char/ts0710_mux.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux.c 2007-04-24 16:04:23.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux.c 2007-04-24 16:26:58.000000000 +0200 -@@ -46,7 +46,7 @@ - * 11/18/2002 Second version - * 04/21/2004 Add GPRS PROC - */ --#include <linux/config.h> -+//#include <linux/config.h> - #include <linux/module.h> - #include <linux/types.h> - -@@ -70,7 +70,7 @@ - #include <linux/mm.h> - #include <linux/slab.h> - #include <linux/init.h> --#include <linux/devfs_fs_kernel.h> -+//#include <linux/devfs_fs_kernel.h> - //#include <syslog.h> - - #include <asm/uaccess.h> -@@ -268,8 +268,8 @@ - static struct work_struct post_recv_tqueue; - - static struct tty_struct *mux_table[NR_MUXS]; --static struct termios *mux_termios[NR_MUXS]; --static struct termios *mux_termios_locked[NR_MUXS]; -+static struct ktermios *mux_termios[NR_MUXS]; -+static struct ktermios *mux_termios_locked[NR_MUXS]; - static volatile short int mux_tty[NR_MUXS]; - - #ifdef min -@@ -1894,11 +1894,14 @@ - if (test_bit(TTY_THROTTLED, &tty->flags)) { - queue_data = 1; - } else { -+ /* - if (test_bit - (TTY_DONT_FLIP, &tty->flags)) { - queue_data = 1; - post_recv = 1; -- } else if (recv_info->total) { -+ } else -+ */ -+ if (recv_info->total) { - queue_data = 1; - post_recv = 1; - } else if (recv_room < uih_len) { -@@ -3149,7 +3152,7 @@ - - /*For BP UART problem End*/ - --static void receive_worker(void *private_) -+static void receive_worker(struct work_struct *private_) - { - struct tty_struct *tty = COMM_FOR_MUX_TTY; - int i, count, tbuf_free, tbuf_read; -@@ -3440,7 +3443,7 @@ - clear_bit(RECV_RUNNING, &mux_recv_flags); - } - --static void post_recv_worker(void *private_) -+static void post_recv_worker(struct work_struct *private_) - { - ts0710_con *ts0710 = &ts0710_connection; - int tty_idx; -@@ -3499,11 +3502,14 @@ - if (test_bit(TTY_THROTTLED, &tty->flags)) { - add_post_recv_queue(&post_recv_q, recv_info); - continue; -- } else if (test_bit(TTY_DONT_FLIP, &tty->flags)) { -+ } -+ /* -+ else if (test_bit(TTY_DONT_FLIP, &tty->flags)) { - post_recv = 1; - add_post_recv_queue(&post_recv_q, recv_info); - continue; - } -+ */ - - flow_control = 0; - recv_packet2 = recv_info->mux_packet; -@@ -3635,7 +3641,7 @@ - } - } - --static void send_worker(void *private_) -+static void send_worker(struct work_struct *private_) - { - ts0710_con *ts0710 = &ts0710_connection; - __u8 j; -@@ -3893,9 +3899,9 @@ - } - post_recv_count_flag = 0; - -- INIT_WORK(&send_tqueue, send_worker, NULL); -- INIT_WORK(&receive_tqueue, receive_worker, NULL); -- INIT_WORK(&post_recv_tqueue, post_recv_worker, NULL); -+ INIT_WORK(&send_tqueue, send_worker); -+ INIT_WORK(&receive_tqueue, receive_worker); -+ INIT_WORK(&post_recv_tqueue, post_recv_worker); - - mux_driver = alloc_tty_driver(NR_MUXS); - if (!mux_driver) -@@ -3904,12 +3910,12 @@ - mux_driver->owner = THIS_MODULE; - mux_driver->driver_name = "ts0710mux"; - mux_driver->name = "mux"; -- mux_driver->devfs_name = "mux"; -+ //mux_driver->devfs_name = "mux"; - mux_driver->major = TS0710MUX_MAJOR; - mux_driver->minor_start = TS0710MUX_MINOR_START; - mux_driver->type = TTY_DRIVER_TYPE_SERIAL; - mux_driver->subtype = SERIAL_TYPE_NORMAL; -- mux_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW; -+ mux_driver->flags = TTY_DRIVER_RESET_TERMIOS | TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; - - mux_driver->init_termios = tty_std_termios; - mux_driver->init_termios.c_iflag = 0; -@@ -3917,10 +3923,10 @@ - mux_driver->init_termios.c_cflag = B38400 | CS8 | CREAD; - mux_driver->init_termios.c_lflag = 0; - --// mux_driver.ttys = mux_table; -+ //mux_driver.ttys = mux_table; - mux_driver->termios = mux_termios; - mux_driver->termios_locked = mux_termios_locked; --// mux_driver.driver_state = mux_state; -+ //mux_driver.driver_state = mux_state; - mux_driver->other = NULL; - - mux_driver->open = mux_open; -Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux_usb.c 2007-04-24 16:27:30.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-24 16:31:51.000000000 +0200 -@@ -86,8 +86,8 @@ - struct tty_struct *usb_for_mux_tty = NULL; - void (*usb_mux_dispatcher)(struct tty_struct *tty) = NULL; - void (*usb_mux_sender)(void) = NULL; --void (*ipcusb_ap_to_bp)(unsigned char*, int) = NULL; --void (*ipcusb_bp_to_ap)(unsigned char*, int) = NULL; -+void (*ipcusb_ap_to_bp)(const unsigned char*, int) = NULL; -+void (*ipcusb_bp_to_ap)(const unsigned char*, int) = NULL; - EXPORT_SYMBOL(usb_for_mux_driver); - EXPORT_SYMBOL(usb_for_mux_tty); - EXPORT_SYMBOL(usb_mux_dispatcher); -@@ -222,7 +222,7 @@ - inbuf = list_entry(ptr, buf_list_t, list); - src_count = inbuf->size; - if (dst_count >= src_count) { -- memcpy(buf, inbuf->body, src_count); -+ memcpy((char *)buf, inbuf->body, src_count); - ret = src_count; - list_del(ptr); - kfree(inbuf->body); -@@ -282,7 +282,7 @@ - spin_unlock(&bvd_ipc->in_buf_lock); - } - --static void usb_ipc_read_bulk(struct urb *urb, struct pt_regs *regs) -+static void usb_ipc_read_bulk(struct urb *urb) - { - buf_list_t *inbuf; - int count = urb->actual_length; -@@ -319,7 +319,7 @@ - bvd_dbg("usb_ipc_read_bulk: completed!!!"); - } - --static void usb_ipc_write_bulk(struct urb *urb, struct pt_regs *regs) -+static void usb_ipc_write_bulk(struct urb *urb) - { - callback_times++; - bvd_ipc->write_finished_flag = 1; -@@ -437,7 +437,7 @@ - /*send IN token*/ - bvd_ipc->readurb_mux.actual_length = 0; - bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; -- if (ret = usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) -+ if ( (ret = usb_submit_urb(&bvd_ipc->readurb_mux, GFP_ATOMIC)) ) - printk("ipcusb_xmit_data: usb_submit_urb(read mux bulk)" - "failed! status=%d\n", ret); - bvd_dbg("ipcusb_xmit_data: Send a IN token successfully!"); -@@ -447,7 +447,7 @@ - bvd_ipc->write_finished_flag = 0; - //printk("%s: clear write_finished_flag:%d\n", __FUNCTION__, bvd_ipc->write_finished_flag); - bvd_ipc->writeurb_mux.dev = bvd_ipc->ipc_dev; -- if (result = usb_submit_urb(&bvd_ipc->writeurb_mux, GFP_ATOMIC)) -+ if ( (result = usb_submit_urb(&bvd_ipc->writeurb_mux, GFP_ATOMIC)) ) - warn("ipcusb_xmit_data: funky result! result=%d\n", result); - - bvd_dbg("ipcusb_xmit_data: usb_submit_urb finished! result:%d", result); -@@ -556,7 +556,7 @@ - struct usb_config_descriptor *ipccfg; - struct usb_interface_descriptor *interface; - struct usb_endpoint_descriptor *endpoint; -- int ep_cnt, readsize, writesize; -+ int ep_cnt, readsize=0, writesize=0; - char have_bulk_in_mux, have_bulk_out_mux; - - bvd_dbg("usb_ipc_probe: vendor id 0x%x, device id 0x%x", diff --git a/packages/linux/linux-ezx-2.6.21/mux-remove-flipbuffers.patch b/packages/linux/linux-ezx-2.6.21/mux-remove-flipbuffers.patch deleted file mode 100644 index d4781f9fc7..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-remove-flipbuffers.patch +++ /dev/null @@ -1,269 +0,0 @@ -Index: linux-2.6.16/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux_usb.c 2007-01-17 00:52:25.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux_usb.c 2007-01-17 00:52:26.000000000 +0100 -@@ -133,6 +133,7 @@ - - struct circ_buf xmit; /* write cric bufffer */ - struct list_head in_buf_list; -+ spinlock_t in_buf_lock; - char bulk_in_ep_mux, - bulk_out_ep_mux, - bulk_in_ep_dsplog; -@@ -204,9 +205,39 @@ - return; - } - memcpy(inbuf->body, (unsigned char*)urb->transfer_buffer, count); -+ spin_lock(&bvd_ipc->in_buf_lock); - list_add_tail(&inbuf->list, &bvd_ipc->in_buf_list); -+ spin_unlock(&bvd_ipc->in_buf_lock); - } - -+int get_from_inbuf_list(const unsigned char *buf, int dst_count) -+{ -+ int ret = 0; -+ spin_lock(&bvd_ipc->in_buf_lock); -+ if (!(list_empty(&bvd_ipc->in_buf_list))) { -+ int src_count; -+ buf_list_t *inbuf; -+ struct list_head *ptr; -+ -+ ptr = bvd_ipc->in_buf_list.next; -+ inbuf = list_entry(ptr, buf_list_t, list); -+ src_count = inbuf->size; -+ if (dst_count >= src_count) { -+ memcpy(buf, inbuf->body, src_count); -+ ret = src_count; -+ list_del(ptr); -+ kfree(inbuf->body); -+ kfree(inbuf); -+ } else { -+ bvd_dbg("get_from_inbuf_list: not enough space in destination buffer"); -+ } -+ } -+ spin_unlock(&bvd_ipc->in_buf_lock); -+ -+ return ret; -+} -+EXPORT_SYMBOL(get_from_inbuf_list); -+ - static void ipcusb_timeout(unsigned long data) - { - struct tty_struct *tty = &ipcusb_tty; -@@ -214,13 +245,14 @@ - - bvd_dbg("ipcusb_timeout***"); - -+ spin_lock(&bvd_ipc->in_buf_lock); - while (!(list_empty(&bvd_ipc->in_buf_list))) { - int count; - buf_list_t *inbuf; - struct list_head *ptr = NULL; - - ptr = bvd_ipc->in_buf_list.next; -- inbuf = list_entry (ptr, buf_list_t, list); -+ inbuf = list_entry(ptr, buf_list_t, list); - count = inbuf->size; - if (tty_insert_flip_string(tty, inbuf->body, count) >= count) { - list_del(ptr); -@@ -232,10 +264,12 @@ - break; - } - } -+ spin_unlock(&bvd_ipc->in_buf_lock); - - if (usb_mux_dispatcher) - usb_mux_dispatcher(tty); /**call Liu changhui's func.**/ - -+ spin_lock(&bvd_ipc->in_buf_lock); - if (list_empty(&bvd_ipc->in_buf_list)) { - urb->actual_length = 0; - urb->dev = bvd_ipc->ipc_dev; -@@ -246,6 +280,7 @@ - ipcusb_timer.data = (unsigned long)urb; - mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); - } -+ spin_unlock(&bvd_ipc->in_buf_lock); - } - - static void usb_ipc_read_bulk(struct urb *urb, struct pt_regs *regs) -@@ -266,69 +301,11 @@ - if (count > 0 && ((*ipcusb_bp_to_ap) != NULL)) - (*ipcusb_bp_to_ap)(urb->transfer_buffer, urb->actual_length); - -- if (!(list_empty(&bvd_ipc->in_buf_list))) { -- int need_mux = 0; -- -- bvd_dbg("usb_ipc_read_bulk: some urbs in_buf_list"); -- if (count > 0) { -- bvd_ipc->suspend_flag = 1; -- append_to_inbuf_list(urb); /* append the current received urb */ --#if 0 -- if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -- { -- last_jiff = jiffies; -- queue_apm_event(KRNL_ICL, NULL); -- } --#endif -- } -- -- while (!(list_empty(&bvd_ipc->in_buf_list))) { -- struct list_head* ptr = NULL; -- ptr = bvd_ipc->in_buf_list.next; -- inbuf = list_entry(ptr, buf_list_t, list); -- count = inbuf->size; -- need_mux = 1; -- -- tty_insert_flip_string(tty, inbuf->body, count); -- -- list_del(ptr); -- kfree(inbuf->body); -- inbuf->body = NULL; -- kfree(inbuf); -- } -- -- if (usb_mux_dispatcher && need_mux) -- usb_mux_dispatcher(tty); /* call Liu changhui's func. */ -- -- if (list_empty(&bvd_ipc->in_buf_list)) { -- urb->actual_length = 0; -- urb->dev = bvd_ipc->ipc_dev; -- if (usb_submit_urb(urb, GFP_ATOMIC)) -- bvd_dbg("usb_ipc_read_bulk: " -- "failed resubmitting read urb"); -- bvd_dbg("usb_ipc_read_bulk: resubmited read urb"); -- } else { -- ipcusb_timer.data = (unsigned long)urb; -- mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); -- } -- } else if (count > 0) { -- bvd_dbg("usb_ipc_read_bulk: no urbs in_buf_list"); -+ if (count > 0) { -+ bvd_dbg("usb_ipc_read_bulk: inserting buffer into in_buf_list"); - bvd_ipc->suspend_flag = 1; - -- if (tty_insert_flip_string(tty, urb->transfer_buffer, -- count) < count) { -- bvd_ipc->suspend_flag = 1; -- append_to_inbuf_list(urb); -- ipcusb_timer.data = (unsigned long)urb; -- mod_timer(&ipcusb_timer, jiffies+(10*HZ/1000)); --#if 0 -- if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -- { -- last_jiff = jiffies; -- queue_apm_event(KRNL_ICL, NULL); -- } --#endif -- } -+ append_to_inbuf_list(urb); - - if (usb_mux_dispatcher) - usb_mux_dispatcher(tty); /* call Liu changhui's func. */ -@@ -337,13 +314,6 @@ - urb->dev = bvd_ipc->ipc_dev; - if (usb_submit_urb(urb, GFP_ATOMIC)) - bvd_dbg("failed resubmitting read urb"); --#if 0 -- if(jiffies - last_jiff > ICL_EVENT_INTERVAL) -- { -- last_jiff = jiffies; -- queue_apm_event(KRNL_ICL, NULL); -- } --#endif - bvd_dbg("usb_ipc_read_bulk: resubmited read urb"); - } - -@@ -705,7 +675,8 @@ - bvd_ipc->bulk_out_ep_mux= have_bulk_out_mux; - bvd_ipc->ipc_dev = usbdev; - bvd_ipc->writesize = writesize; -- INIT_LIST_HEAD (&bvd_ipc->in_buf_list); -+ INIT_LIST_HEAD(&bvd_ipc->in_buf_list); -+ bvd_ipc->in_buf_lock = SPIN_LOCK_UNLOCKED; - - bvd_ipc->bh.func = usbipc_bh_func; - bvd_ipc->bh.data = (unsigned long) bvd_ipc; -Index: linux-2.6.16/drivers/char/ts0710_mux.c -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux.c 2007-01-17 00:52:23.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux.c 2007-01-17 00:52:26.000000000 +0100 -@@ -3149,7 +3149,7 @@ - static void receive_worker(void *private_) - { - struct tty_struct *tty = COMM_FOR_MUX_TTY; -- int i, count; -+ int i, count, tbuf_free, tbuf_read; - static unsigned char tbuf[TS0710MUX_MAX_BUF_SIZE]; - static unsigned char *tbuf_ptr = &tbuf[0]; - static unsigned char *start_flag = 0; -@@ -3167,29 +3167,39 @@ - - UNUSED_PARAM(private_); - -- if (!tty) -- return; -+ if (!tty) -+ return; -+ -+ while (1) { -+ tbuf_free = TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf); -+ TS0710_PRINTK("Reading max %i bytes from ts0710_mux_usb inbuf.\n", tbuf_free); -+ tbuf_read = get_from_inbuf_list(tbuf_ptr, tbuf_free); -+ if (tbuf_read == 0) { -+ break; -+ } else { -+ TS0710_PRINTK("Read %i bytes.\n", tbuf_read); -+ }; -+ tbuf_ptr += tbuf_read; -+ }; -+ -+ count = (tbuf_ptr - tbuf); -+ -+ // Should be impossible? -+ //if (count > (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf))) { -+ // TS0710_PRINTK -+ // ("MUX receive_worker: !!!!! Exceed buffer boundary !!!!!\n"); -+ // count = (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf)); -+ //} - - #ifdef USB_FOR_MUX -- TS0710_DEBUG("Receive following bytes from IPC-USB"); -+ TS0710_DEBUG("Received following bytes from IPC-USB"); - #else -- TS0710_DEBUG("Receive following bytes from UART"); -+ TS0710_DEBUG("Received following bytes from UART"); - #endif -- -- TS0710_DEBUGHEX(cp, count); -- -- if (count > (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf))) { -- TS0710_PRINTK -- ("MUX receive_worker: !!!!! Exceed buffer boundary !!!!!\n"); -- count = (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf)); -- } -- -- count = tty_buffer_request_room(tty, count); -- -- for (i = 0; i < count; i++) -- tty_insert_flip_char(tty, tbuf_ptr[i], TTY_NORMAL); -- -- tbuf_ptr += count; -+ TS0710_DEBUGHEX(tbuf, count); -+ -+ //gets updated above -+ //tbuf_ptr += count; - search = &tbuf[0]; - - if (test_and_set_bit(RECV_RUNNING, &mux_recv_flags)) { -Index: linux-2.6.16/drivers/char/ts0710_mux_usb.h -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux_usb.h 2007-01-17 00:52:23.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux_usb.h 2007-01-17 00:52:26.000000000 +0100 -@@ -27,3 +27,6 @@ - extern struct tty_struct *usb_for_mux_tty; - extern void (*usb_mux_dispatcher)(struct tty_struct *tty); - extern void (*usb_mux_sender)(void); -+ -+extern int get_from_inbuf_list(const unsigned char *buf, int dst_count); -+ diff --git a/packages/linux/linux-ezx-2.6.21/mux-remove-get_halted_bit.patch b/packages/linux/linux-ezx-2.6.21/mux-remove-get_halted_bit.patch deleted file mode 100644 index 0ebe27d03b..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-remove-get_halted_bit.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: linux-2.6.16/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux_usb.c 2007-01-17 01:06:21.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux_usb.c 2007-01-17 01:06:31.000000000 +0100 -@@ -461,7 +461,7 @@ - ipcusb_xmit_data(); - } - --extern void get_halted_bit(void); -+//extern void get_halted_bit(void); - - static void usbipc_bh_bp_func(unsigned long param) - { -@@ -472,7 +472,7 @@ - "UHCRHPS3=0x%x", UHCRHPS3); - } - if (bvd_ipc->ipc_flag == IPC_USB_PROBE_READY) { -- get_halted_bit(); -+ //get_halted_bit(); - - /*send a IN token*/ - bvd_ipc->readurb_mux.dev = bvd_ipc->ipc_dev; diff --git a/packages/linux/linux-ezx-2.6.21/mux-remove-usbh_finished_resume.patch b/packages/linux/linux-ezx-2.6.21/mux-remove-usbh_finished_resume.patch deleted file mode 100644 index c415ded428..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux-remove-usbh_finished_resume.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: linux-2.6.16/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.16.orig/drivers/char/ts0710_mux_usb.c 2007-01-17 01:12:23.000000000 +0100 -+++ linux-2.6.16/drivers/char/ts0710_mux_usb.c 2007-01-17 01:12:37.000000000 +0100 -@@ -97,7 +97,6 @@ - static int sumbit_times = 0; - static int callback_times = 0; - //static unsigned long last_jiff = 0; --extern int usbh_finished_resume; - /*end global values defined*/ - - MODULE_AUTHOR(DRIVER_AUTHOR); -@@ -546,9 +545,6 @@ - void usb_send_readurb(void) - { - //printk("usb_send_readurb: begining!UHCRHPS3=0x%x, usbh_finished_resume=%d\n", UHCRHPS3, usbh_finished_resume); -- -- if (usbh_finished_resume == 0) -- return; - - tasklet_schedule(&bvd_ipc->bh_bp); - } diff --git a/packages/linux/linux-ezx-2.6.21/mux_debug.patch b/packages/linux/linux-ezx-2.6.21/mux_debug.patch deleted file mode 100644 index 58cb25a0b6..0000000000 --- a/packages/linux/linux-ezx-2.6.21/mux_debug.patch +++ /dev/null @@ -1,551 +0,0 @@ -Index: linux-2.6.20.7/drivers/char/ts0710_mux.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux.c 2007-04-22 12:24:18.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux.c 2007-04-22 12:26:47.000000000 +0200 -@@ -85,6 +85,9 @@ - #include "ts0710.h" - #include "ts0710_mux.h" - -+#define TS0710DEBUG -+#define PRINT_OUTPUT_PRINTK -+ - #define TS0710MUX_GPRS_SESSION_MAX 2 - #define TS0710MUX_MAJOR 250 - #define TS0710MUX_MINOR_START 0 -@@ -316,7 +319,7 @@ - #ifdef TS0710DEBUG - - #ifdef PRINT_OUTPUT_PRINTK --#define TS0710_DEBUG(fmt, arg...) printk(KERN_INFO "MUX " __FUNCTION__ ": " fmt "\n" , ## arg) -+#define TS0710_DEBUG(fmt, arg...) printk(KERN_INFO "MUX %s: " fmt "\n" , __func__, ## arg) - #else - #include "ezxlog.h" - static __u8 strDebug[256]; -@@ -530,10 +533,10 @@ - if (strncmp(p->comm, "aplogd", 6) == 0) { - sig = 1; - if (send_sig(SIGUSR2, p, 1) == 0) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX: success to send SIGUSR2 to aplogd!\n"); - } else { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX: failure to send SIGUSR2 to aplogd!\n"); - } - break; -@@ -542,7 +545,7 @@ - read_unlock(&tasklist_lock); - - if (!sig) { -- TS0710_PRINTK("MUX: not found aplogd!\n"); -+ TS0710_DEBUG("MUX: not found aplogd!\n"); - } - } - #else -@@ -559,11 +562,11 @@ - buf[len + 1] = TS0710_BASIC_FLAG; - - if ((COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX basic_write: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n"); - - #ifndef USB_FOR_MUX -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX basic_write: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n"); - TS0710_SIG2APLOGD(); - #endif -@@ -577,7 +580,7 @@ - res = COMM_FOR_MUX_DRIVER->write(COMM_FOR_MUX_TTY, buf, len + 2); - - if (res != len + 2) { -- TS0710_PRINTK("MUX basic_write: Write Error!\n"); -+ TS0710_DEBUG("MUX basic_write: Write Error!\n"); - return -1; - } - -@@ -601,7 +604,7 @@ - TS0710_DEBUG("crc_check: CRC check OK\n"); - return 0; - } else { -- TS0710_PRINTK("MUX crc_check: CRC check failed\n"); -+ TS0710_DEBUG("MUX crc_check: CRC check failed\n"); - return 1; - } - } -@@ -1266,7 +1269,7 @@ - break; - - case FCON: /*Flow control on command */ -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Received Flow control(all channels) on command\n"); - if (mcc_short_pkt->h.type.cr == MCC_CMD) { - ts0710->dlci[0].state = CONNECTED; -@@ -1276,7 +1279,7 @@ - break; - - case FCOFF: /*Flow control off command */ -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Received Flow control(all channels) off command\n"); - if (mcc_short_pkt->h.type.cr == MCC_CMD) { - for (j = 0; j < TS0710_MAX_CHN; j++) { -@@ -1823,7 +1826,7 @@ - TS0710_DEBUG("UIH on channel %d\n", dlci); - - if (uih_len > ts0710->dlci[dlci].mtu) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: DLCI:%d, uih_len:%d is bigger than mtu:%d, discard data!\n", - dlci, uih_len, ts0710->dlci[dlci].mtu); - break; -@@ -1844,7 +1847,7 @@ - dlci, tty_idx); - TS0710_DEBUGSTR(uih_data_start, uih_len); - if (!(iscmdtty[tty_idx])) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: %s: Wrong CMDTAG on DLCI:%d, /dev/mux%d\n", - __FUNCTION__, dlci, tty_idx); - } -@@ -1856,7 +1859,7 @@ - ("NON-CMDTAG on DLCI:%d, /dev/mux%d\n", - dlci, tty_idx); - if (iscmdtty[tty_idx]) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: %s: Wrong NON-CMDTAG on DLCI:%d, /dev/mux%d\n", - __FUNCTION__, dlci, tty_idx); - } -@@ -1864,13 +1867,14 @@ - } - tty = mux_table[tty_idx]; - if ((!mux_tty[tty_idx]) || (!tty)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX: No application waiting for, discard it! /dev/mux%d\n", - tty_idx); -+ TS0710_DEBUG("MUX: mux_tty[%d] = %d, tty is at %i", tty_idx, mux_tty[tty_idx], tty); - } else { /* Begin processing received data */ - if ((!mux_recv_info_flags[tty_idx]) - || (!mux_recv_info[tty_idx])) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: No mux_recv_info, discard it! /dev/mux%d\n", - tty_idx); - break; -@@ -1878,7 +1882,7 @@ - - recv_info = mux_recv_info[tty_idx]; - if (recv_info->total > 8192) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX : discard data for tty_idx:%d, recv_info->total > 8192 \n", - tty_idx); - break; -@@ -1949,7 +1953,7 @@ - get_mux_recv_packet - (uih_len); - if (!recv_packet) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX %s: no memory\n", - __FUNCTION__); - break; -@@ -1980,7 +1984,7 @@ - } else { /* recv_info->total == 0 */ - if (uih_len > - TS0710MUX_RECV_BUF_SIZE) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: tty_idx:%d, uih_len == %d is too big\n", - tty_idx, uih_len); - uih_len = -@@ -2120,12 +2124,12 @@ - if (ts0710->dlci[dlci].state == DISCONNECTED) { - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI %d Send DISC got signal!\n", - dlci); - break; - } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI %d Send DISC timeout!\n", dlci); - continue; - } -@@ -2158,7 +2162,7 @@ - return 0; - } else if (ts0710->dlci[0].state == CONNECTING) { - /* Reentry */ -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI: 0, reentry to open DLCI 0, pid: %d, %s !\n", - current->pid, current->comm); - try = 11; -@@ -2179,13 +2183,13 @@ - DISCONNECTED) { - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Wait for connecting got signal!\n", - dlci); - retval = -EAGAIN; - break; - } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Wait for connecting timeout!\n", - dlci); - continue; -@@ -2199,7 +2203,7 @@ - } - } else if ((ts0710->dlci[0].state != DISCONNECTED) - && (ts0710->dlci[0].state != REJECTED)) { -- TS0710_PRINTK("MUX DLCI:%d state is invalid!\n", dlci); -+ TS0710_DEBUG("MUX DLCI:%d state is invalid!\n", dlci); - return retval; - } else { - ts0710->initiator = 1; -@@ -2218,19 +2222,19 @@ - retval = 0; - break; - } else if (ts0710->dlci[0].state == REJECTED) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM got rejected!\n", - dlci); - retval = -EREJECTED; - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM got signal!\n", - dlci); - retval = -EAGAIN; - break; - } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM timeout!\n", - dlci); - continue; -@@ -2271,13 +2275,13 @@ - DISCONNECTED) { - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Wait for connecting got signal!\n", - dlci); - retval = -EAGAIN; - break; - } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Wait for connecting timeout!\n", - dlci); - continue; -@@ -2296,7 +2300,7 @@ - } - } else if ((ts0710->dlci[dlci].state != DISCONNECTED) - && (ts0710->dlci[dlci].state != REJECTED)) { -- TS0710_PRINTK("MUX DLCI:%d state is invalid!\n", dlci); -+ TS0710_DEBUG("MUX DLCI:%d state is invalid!\n", dlci); - return retval; - } else { - ts0710->dlci[dlci].state = NEGOTIATING; -@@ -2313,13 +2317,13 @@ - if (ts0710->dlci[dlci].state == CONNECTING) { - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send pn_msg got signal!\n", - dlci); - retval = -EAGAIN; - break; - } else if ((jiffies - t) >= TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send pn_msg timeout!\n", - dlci); - continue; -@@ -2344,20 +2348,20 @@ - break; - } else if (ts0710->dlci[dlci].state == - REJECTED) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM got rejected!\n", - dlci); - retval = -EREJECTED; - break; - } else if (signal_pending(current)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM got signal!\n", - dlci); - retval = -EAGAIN; - break; - } else if ((jiffies - t) >= - TS0710MUX_TIME_OUT) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX DLCI:%d Send SABM timeout!\n", - dlci); - continue; -@@ -2468,7 +2472,7 @@ - schedule_work(&send_tqueue); - #else - if (!tq_serial_for_mux) { -- TS0710_PRINTK("MUX Error: %s: tq_serial_for_mux == 0\n", -+ TS0710_DEBUG("MUX Error: %s: tq_serial_for_mux == 0\n", - __FUNCTION__); - return; - } -@@ -2508,7 +2512,7 @@ - if ((mux_tty[cmdtty] == 0) && (mux_tty[datatty] == 0)) { - if (dlci == 1) { - ts0710_close_channel(0); -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX mux_close: tapisrv might be down!!! Close DLCI 1\n"); - TS0710_SIG2APLOGD(); - } -@@ -2673,12 +2677,12 @@ - UNUSED_PARAM(tty); - - if ((COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX %s: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n", - __FUNCTION__); - - #ifndef USB_FOR_MUX -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX %s: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n", - __FUNCTION__); - TS0710_SIG2APLOGD(); -@@ -2724,14 +2728,14 @@ - } else if (ts0710->dlci[dlci].state == CONNECTED) { - - if (!(mux_send_info_flags[line])) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: mux_write: mux_send_info_flags[%d] == 0\n", - line); - return -ENODEV; - } - send_info = mux_send_info[line]; - if (!send_info) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: mux_write: mux_send_info[%d] == 0\n", - line); - return -ENODEV; -@@ -2800,7 +2804,7 @@ - } - return c; - } else { -- TS0710_PRINTK("MUX mux_write: DLCI %d not connected\n", dlci); -+ TS0710_DEBUG("MUX mux_write: DLCI %d not connected\n", dlci); - return -EDISCONNECTED; - } - } -@@ -2940,7 +2944,7 @@ - return; - } - -- TS0710_PRINTK("MUX %s: line is:%d\n", __FUNCTION__, line); -+ TS0710_DEBUG("MUX %s: line is:%d\n", __FUNCTION__, line); - - if ((mux_send_info_flags[line]) - && (mux_send_info[line]) -@@ -2960,10 +2964,10 @@ - - /* - if( (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0) ) { -- TS0710_PRINTK("MUX %s: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n", __FUNCTION__); -+ TS0710_DEBUG("MUX %s: (COMM_FOR_MUX_DRIVER == 0) || (COMM_FOR_MUX_TTY == 0)\n", __FUNCTION__); - - #ifndef USB_FOR_MUX -- TS0710_PRINTK("MUX %s: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n", __FUNCTION__); -+ TS0710_DEBUG("MUX %s: tapisrv might be down!!! (serial_for_mux_driver == 0) || (serial_for_mux_tty == 0)\n", __FUNCTION__); - TS0710_SIG2APLOGD(); - #endif - -@@ -2989,9 +2993,9 @@ - if ((COMM_FOR_MUX_DRIVER == NULL) || (COMM_FOR_MUX_TTY == NULL)) { - - #ifdef USB_FOR_MUX -- TS0710_PRINTK("MUX: please install and open IPC-USB first\n"); -+ TS0710_DEBUG("MUX: please install and open IPC-USB first\n"); - #else -- TS0710_PRINTK("MUX: please install and open ttyS0 first\n"); -+ TS0710_DEBUG("MUX: please install and open ttyS0 first\n"); - #endif - - goto out; -@@ -3016,7 +3020,7 @@ - /* if( dlci == 1 ) { */ - /* Open server channel 0 first */ - if ((retval = ts0710_open_channel(0)) != 0) { -- TS0710_PRINTK("MUX: Can't connect server channel 0!\n"); -+ TS0710_DEBUG("MUX: Can't connect server channel 0!\n"); - ts0710_init(); - - mux_tty[line]--; -@@ -3073,7 +3077,7 @@ - datatty = dlci2tty[dlci].datatty; - if ((mux_tty[cmdtty] > 0) || (mux_tty[datatty] > 0)) { - if ((retval = ts0710_open_channel(dlci)) != 0) { -- TS0710_PRINTK("MUX: Can't connected channel %d!\n", -+ TS0710_DEBUG("MUX: Can't connected channel %d!\n", - dlci); - ts0710_reset_dlci(dlci); - -@@ -3096,6 +3100,7 @@ - retval = 0; - #endif - out: -+ TS0710_DEBUG("returning %d for open of /dev/mux%d (mux_tty[%d] = %d", retval, line, line, mux_tty[line]); - return retval; - } - -@@ -3178,12 +3183,12 @@ - - while (1) { - tbuf_free = TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf); -- TS0710_PRINTK("Reading max %i bytes from ts0710_mux_usb inbuf.\n", tbuf_free); -+ TS0710_DEBUG("Reading max %i bytes from ts0710_mux_usb inbuf.\n", tbuf_free); - tbuf_read = get_from_inbuf_list(tbuf_ptr, tbuf_free); - if (tbuf_read == 0) { - break; - } else { -- TS0710_PRINTK("Read %i bytes.\n", tbuf_read); -+ TS0710_DEBUG("Read %i bytes.\n", tbuf_read); - }; - tbuf_ptr += tbuf_read; - }; -@@ -3192,7 +3197,7 @@ - - // Should be impossible? - //if (count > (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf))) { -- // TS0710_PRINTK -+ // TS0710_DEBUG - // ("MUX receive_worker: !!!!! Exceed buffer boundary !!!!!\n"); - // count = (TS0710MUX_MAX_BUF_SIZE - (tbuf_ptr - tbuf)); - //} -@@ -3264,7 +3269,7 @@ - TS0710_LOGSTR_FRAME(0, start_flag, - (tbuf_ptr - - start_flag)); -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: %s: frame length:%d is bigger than Max total frame size:%d\n", - /*__FUNCTION__, framelen, TS0710MUX_MAX_TOTAL_FRAME_SIZE);*/ - __FUNCTION__, framelen, (TS0710MUX_MAX_TOTAL_FRAME_SIZE + SEQ_FIELD_SIZE)); /*For BP UART problem */ -@@ -3389,7 +3394,7 @@ - *(uih_data_start - + uih_len) = - 0; -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX bp log: %s\n", - uih_data_start); - } -@@ -3415,7 +3420,7 @@ - TS0710_LOGSTR_FRAME(0, start_flag, - framelen); - TS0710_DEBUGHEX(start_flag, framelen); -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX: Lost synchronization!\n"); - search = start_flag + 1; - } -@@ -3476,7 +3481,7 @@ - recv_info2 = recv_info->next; - - if (!(recv_info->total)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: %s: Should not get here, recv_info->total == 0 \n", - __FUNCTION__); - continue; -@@ -3486,7 +3491,7 @@ - dlci = tty2dlci[tty_idx]; - tty = mux_table[tty_idx]; - if ((!mux_tty[tty_idx]) || (!tty)) { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX: No application waiting for, free recv_info! tty_idx:%d\n", - tty_idx); - mux_recv_info_flags[tty_idx] = 0; -@@ -3560,7 +3565,7 @@ - recv_info->total -= recv_packet->length; - free_mux_recv_packet(recv_packet); - } else { -- TS0710_PRINTK -+ TS0710_DEBUG - ("MUX Error: %s: Should not get here, recv_info->total is:%u \n", - __FUNCTION__, recv_info->total); - } -@@ -3760,7 +3765,7 @@ - int ret; - - if (idx > TS0710MUX_COUNT_MAX_IDX) { -- TS0710_PRINTK("MUX get_count: invalid idx: %d!\n", idx); -+ TS0710_DEBUG("MUX get_count: invalid idx: %d!\n", idx); - return -1; - } - -@@ -3774,11 +3779,11 @@ - static int set_count(__u8 idx, int count) - { - if (idx > TS0710MUX_COUNT_MAX_IDX) { -- TS0710_PRINTK("MUX set_count: invalid idx: %d!\n", idx); -+ TS0710_DEBUG("MUX set_count: invalid idx: %d!\n", idx); - return -1; - } - if (count < 0) { -- TS0710_PRINTK("MUX set_count: invalid count: %d!\n", count); -+ TS0710_DEBUG("MUX set_count: invalid count: %d!\n", count); - return -1; - } - -@@ -3792,11 +3797,11 @@ - static int add_count(__u8 idx, int count) - { - if (idx > TS0710MUX_COUNT_MAX_IDX) { -- TS0710_PRINTK("MUX add_count: invalid idx: %d!\n", idx); -+ TS0710_DEBUG("MUX add_count: invalid idx: %d!\n", idx); - return -1; - } - if (count <= 0) { -- TS0710_PRINTK("MUX add_count: invalid count: %d!\n", count); -+ TS0710_DEBUG("MUX add_count: invalid count: %d!\n", count); - return -1; - } - -Index: linux-2.6.20.7/drivers/char/ts0710_mux_usb.c -=================================================================== ---- linux-2.6.20.7.orig/drivers/char/ts0710_mux_usb.c 2007-04-22 12:26:47.000000000 +0200 -+++ linux-2.6.20.7/drivers/char/ts0710_mux_usb.c 2007-04-22 12:26:47.000000000 +0200 -@@ -72,7 +72,8 @@ - #define IPC_USB_PROBE_NOT_READY 4 - #define DBG_MAX_BUF_SIZE 1024 - #define ICL_EVENT_INTERVAL (HZ) --#undef BVD_DEBUG -+ -+#define BVD_DEBUG - - #define IS_EP_BULK(ep) ((ep).bmAttributes == USB_ENDPOINT_XFER_BULK ? 1 : 0) - #define IS_EP_BULK_IN(ep) (IS_EP_BULK(ep) && ((ep).bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) diff --git a/packages/efl/files/.mtn2git_empty b/packages/linux/linux-ezx-2.6.21/patches/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/efl/files/.mtn2git_empty +++ b/packages/linux/linux-ezx-2.6.21/patches/.mtn2git_empty diff --git a/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX new file mode 100755 index 0000000000..7e7e0f2898 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/Makefile.OpenEZX @@ -0,0 +1,51 @@ +# Makefile used to build binary images of OpenEZX kernels +# +# If you are currently in the linux kernel toplevel dir, +# you can call this Makefile with: +# $ make -f path_to/Makefile.OpenEZX +# +# Note that you can set the CROSS_COMPILE and QUILT_PATCHES variable +# in your environment. +# + +PHONES = a780 e680 a1200 e2 e6 + +CROSS_COMPILE ?= /home/wyrm/ezx/dev/cross/bin/arm-angstrom-linux-gnueabi- +QUILT_PATCHES ?= patches + +DATE = $(shell date +%Y%m%d) + +all: $(foreach p, $(PHONES), zImage-$(p) modules-$(p).tar.gz) + +zImages: $(foreach p, $(PHONES), zImage-$(p)) + +modules: $(foreach p, $(PHONES), modules-$(p).tar.gz) + +release: $(foreach p, $(PHONES), tag-$(p)) + cat md5sums.tmp | gpg --clearsign > md5sums + tar -rf ezxrelease.tar md5sums + rm -f md5sums.tmp md5sums + mv ezxrelease.tar ezxrelease-$(DATE).tar + +tag-%: zImage-% modules-%.tar.gz + p=$(patsubst tag-%,%,$@) && \ + tag=$(shell cat include/config/kernel.release)-$(DATE) && \ + cp zImage-$$p zImage-$$tag-$$p && \ + cp modules-$$p.tar.gz modules-$$tag-$$p.tar.gz && \ + tar -rf ezxrelease.tar zImage-$$tag-$$p modules-$$tag-$$p.tar.gz && \ + md5sum zImage-$$tag-$$p modules-$$tag-$$p.tar.gz >> md5sums.tmp && \ + rm -f zImage-$$tag-$$p modules-$$tag-$$p.tar.gz + +zImage-%: $(QUILT_PATCHES)/defconfig-% + cp $< ./.config + make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) zImage + mv arch/arm/boot/zImage $@ + +modules-%.tar.gz: $(QUILT_PATCHES)/defconfig-% + cp $< ./.config + -find . -name "*.ko" -print0 | xargs -r0 rm + mkdir /tmp/$@ + make ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) \ + INSTALL_MOD_PATH=/tmp/$@ modules modules_install + tar -C /tmp/$@ -czf $@ . + rm -rf /tmp/$@ diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch new file mode 100755 index 0000000000..0d2640a2e7 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-mci.patch @@ -0,0 +1,135 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:31.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:44:29.000000000 -0300 +@@ -97,6 +97,7 @@ + config PXA_EZX_A1200 + bool "Motorola A1200 GSM Phone" + select PXA27x ++ select EZX_MCI_TF + + config PXA_EZX_E6 + bool "Motorola E6 GSM Phone" +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:32:26.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:44:56.000000000 -0300 +@@ -13,11 +13,14 @@ + #include <linux/init.h> + #include <linux/platform_device.h> + #include <linux/fb.h> ++#include <linux/mmc/host.h> ++#include <linux/irq.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> + #include <asm/arch/pxa-regs.h> + #include <asm/arch/pxafb.h> ++#include <asm/arch/mmc.h> + + #include "generic.h" + #include "ezx.h" +@@ -25,6 +28,95 @@ + extern void ezx_lcd_power(int, struct fb_var_screeninfo *); + extern void ezx_backlight_power(int); + ++#ifdef CONFIG_EZX_PCAP ++extern int ezx_pcap_mmcsd_power(int); ++extern void ezx_pcap_mmcsd_voltage(u_int32_t); ++#else ++#define ezx_pcap_mmcsd_voltage(x) {} ++#define ezx_pcap_mmcsd_power(x) {} ++#endif ++ ++static struct pxamci_platform_data a1200_mci_platform_data; ++ ++static u_int8_t mmc_voltage[] = { ++ [MMC_VDD_160] = 5, ++ [MMC_VDD_170] = 5, ++ [MMC_VDD_180] = 6, ++ [MMC_VDD_190] = 6, ++ [MMC_VDD_200] = 7, ++ [MMC_VDD_210] = 7, ++ [MMC_VDD_220] = 8, ++ [MMC_VDD_230] = 8, ++ [MMC_VDD_240] = 9, ++ [MMC_VDD_250] = 9, ++ [MMC_VDD_260] = 10, ++ [MMC_VDD_270] = 10, ++ [MMC_VDD_280] = 11, ++ [MMC_VDD_290] = 11, ++ [MMC_VDD_300] = 12, ++ [MMC_VDD_310] = 12, ++ [MMC_VDD_320] = 13, ++ [MMC_VDD_330] = 13, ++ [MMC_VDD_340] = 14, ++ [MMC_VDD_350] = 14, ++ [MMC_VDD_360] = 15, ++}; ++ ++static int a1200_mci_init(struct device *dev, ++ irqreturn_t (*ezx_detect_int)(int, void *), ++ void *data) ++{ ++ int err; ++ ++ /* Setup GPIO for PXA27x MMC/SD controller */ ++ pxa_gpio_mode(GPIO32_MMCCLK_MD); ++ pxa_gpio_mode(GPIO112_MMCCMD_MD); ++ pxa_gpio_mode(GPIO92_MMCDAT0_MD); ++ pxa_gpio_mode(GPIO109_MMCDAT1_MD); ++ pxa_gpio_mode(GPIO110_MMCDAT2_MD); ++ pxa_gpio_mode(GPIO111_MMCDAT3_MD); ++ ++ ezx_pcap_mmcsd_power(1); ++ ++ a1200_mci_platform_data.detect_delay = msecs_to_jiffies(250); ++ ++ err = request_irq(0x49, ezx_detect_int, SA_INTERRUPT, ++ "MMC card detect", data); ++ if (err) { ++ printk(KERN_ERR "ezx_mci_detect: MMC/SD: can't request " ++ "MMC card detect IRQ\n"); ++ return -1; ++ } ++ ++ set_irq_type(0x0b, IRQT_BOTHEDGE); ++ ++ return 0; ++} ++ ++static void a1200_mci_setpower(struct device *dev, unsigned int vdd) ++{ ++ if (vdd <= MMC_VDD_360) ++ ezx_pcap_mmcsd_voltage(mmc_voltage[vdd]); ++ ++ ezx_pcap_mmcsd_power(1); ++} ++ ++static void a1200_mci_exit(struct device *dev, void *data) ++{ ++ ezx_pcap_mmcsd_power(0); ++ free_irq(0x49, data); ++} ++ ++static struct pxamci_platform_data a1200_mci_platform_data = { ++ .ocr_mask = MMC_VDD_160_165|MMC_VDD_18_19|MMC_VDD_20_21 ++ |MMC_VDD_22_23|MMC_VDD_24_25|MMC_VDD_26_27 ++ |MMC_VDD_28_29|MMC_VDD_30_31|MMC_VDD_32_33 ++ |MMC_VDD_34_35|MMC_VDD_35_36, ++ .init = a1200_mci_init, ++ .setpower = a1200_mci_setpower, ++ .exit = a1200_mci_exit, ++}; ++ + static struct pxafb_mode_info mode_a1200 = { + .pixclock = 192308, + .xres = 240, +@@ -54,6 +146,7 @@ + static void __init a1200_init(void) + { + set_pxa_fb_info(&a1200_fb_info); ++ pxa_set_mci_info(&a1200_mci_platform_data); + + platform_add_devices(devices, ARRAY_SIZE(devices)); + } diff --git a/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch new file mode 100755 index 0000000000..a7ca6362b0 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a1200-ts.patch @@ -0,0 +1,40 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:32:32.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 20:33:41.000000000 -0300 +@@ -117,6 +117,27 @@ + .exit = a1200_mci_exit, + }; + ++/* PCAP_TS */ ++struct resource pcap_ts_resources[] = { ++ [0] = { ++ .start = EZX_IRQ_ADCDONE2, ++ .end = EZX_IRQ_ADCDONE2, ++ .flags = IORESOURCE_IRQ, ++ }, ++ [1] = { ++ .start = EZX_IRQ_TS, ++ .end = EZX_IRQ_TS, ++ .flags = IORESOURCE_IRQ, ++ } ++}; ++ ++struct platform_device pcap_ts_device = { ++ .name = "pcap-ts", ++ .id = -1, ++ .num_resources = ARRAY_SIZE(pcap_ts_resources), ++ .resource = pcap_ts_resources, ++}; ++ + static struct pxafb_mode_info mode_a1200 = { + .pixclock = 192308, + .xres = 240, +@@ -141,6 +162,7 @@ + }; + + static struct platform_device *devices[] __initdata = { ++ &pcap_ts_device, + }; + + static void __init a1200_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/a780-flip.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch index 56f1e4336d..b93b1b14e4 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/a780-flip.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-flip.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 13:23:57.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 13:26:53.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:47.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:50.000000000 +0200 @@ -17,6 +17,7 @@ #include <linux/mmc/host.h> #include <linux/irq.h> @@ -10,7 +10,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c #include <asm/mach-types.h> #include <asm/mach/arch.h> -@@ -193,7 +194,30 @@ +@@ -214,8 +215,31 @@ }, }; @@ -37,6 +37,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c + + static struct platform_device *devices[] __initdata = { + &pcap_ts_device, + &a780flip_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/a780-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch index 383839d639..902889abe6 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/a780-kbd.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-kbd.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-17 22:04:57.000000000 +0200 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-17 22:05:05.000000000 +0200 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:54:38.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:56:22.000000000 -0300 @@ -16,18 +16,21 @@ #include <linux/fb.h> #include <linux/mmc/host.h> @@ -86,5 +86,5 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c pxa_set_mci_info(&a780_mci_platform_data); + pxa_set_kbd_info(&a780_kbd_platform_data); - platform_add_devices(devices, ARRAY_SIZE(devices)); - } + /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ + pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); diff --git a/packages/linux/linux-ezx-2.6.21/a780-leds.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch index 09913df2ca..5a9a9383f7 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/a780-leds.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-leds.patch @@ -5,8 +5,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig =================================================================== ---- linux-2.6.21.orig/drivers/leds/Kconfig 2007-05-08 04:09:08.000000000 -0300 -+++ linux-2.6.21/drivers/leds/Kconfig 2007-05-08 14:09:03.000000000 -0300 +--- linux-2.6.21.orig/drivers/leds/Kconfig 2007-06-08 18:33:45.000000000 +0200 ++++ linux-2.6.21/drivers/leds/Kconfig 2007-06-08 18:39:04.000000000 +0200 @@ -104,6 +104,13 @@ These triggers allow kernel events to drive the LEDs and can be configured via sysfs. If unsure, say Y. @@ -23,8 +23,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig depends on LEDS_TRIGGERS Index: linux-2.6.21/drivers/leds/Makefile =================================================================== ---- linux-2.6.21.orig/drivers/leds/Makefile 2007-05-08 04:09:08.000000000 -0300 -+++ linux-2.6.21/drivers/leds/Makefile 2007-05-08 14:09:03.000000000 -0300 +--- linux-2.6.21.orig/drivers/leds/Makefile 2007-06-08 18:33:45.000000000 +0200 ++++ linux-2.6.21/drivers/leds/Makefile 2007-06-08 18:39:04.000000000 +0200 @@ -16,6 +16,7 @@ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o obj-$(CONFIG_LEDS_H1940) += leds-h1940.o @@ -36,7 +36,7 @@ Index: linux-2.6.21/drivers/leds/Makefile Index: linux-2.6.21/drivers/leds/leds-a780.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/leds/leds-a780.c 2007-05-08 14:09:03.000000000 -0300 ++++ linux-2.6.21/drivers/leds/leds-a780.c 2007-06-08 18:39:04.000000000 +0200 @@ -0,0 +1,122 @@ +/* + * EZX Platform LED Driver for the Motorola A780 GSM Phone @@ -162,9 +162,9 @@ Index: linux-2.6.21/drivers/leds/leds-a780.c +MODULE_LICENSE("GPL"); Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 14:09:13.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 14:11:37.000000000 -0300 -@@ -215,9 +215,14 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:38:50.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-08 18:39:04.000000000 +0200 +@@ -236,10 +236,15 @@ }, }; @@ -174,6 +174,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c +}; static struct platform_device *devices[] __initdata = { + &pcap_ts_device, &a780flip_device, + &a780led_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/a780-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch index b9d601856a..4877bfffa5 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/a780-mci.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-mci.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 03:46:17.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 04:05:48.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:44:14.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-24 00:47:01.000000000 -0300 @@ -14,11 +14,14 @@ #include <linux/init.h> #include <linux/platform_device.h> @@ -119,5 +119,17 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c set_pxa_fb_info(&a780_fb_info); + pxa_set_mci_info(&a780_mci_platform_data); - platform_add_devices(devices, ARRAY_SIZE(devices)); - } + /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ + pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); +Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-24 00:47:13.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:11.000000000 -0300 +@@ -87,6 +87,7 @@ + config PXA_EZX_A780 + bool "Motorola A780 GSM Phone" + select PXA27x ++ select EZX_MCI_TF + + config PXA_EZX_E2 + bool "Motorola E2 GSM Phone" diff --git a/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch new file mode 100755 index 0000000000..a4a476ac59 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-ts.patch @@ -0,0 +1,40 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 20:32:48.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 20:33:10.000000000 -0300 +@@ -121,6 +121,27 @@ + .exit = a780_mci_exit, + }; + ++/* PCAP_TS */ ++struct resource pcap_ts_resources[] = { ++ [0] = { ++ .start = EZX_IRQ_ADCDONE2, ++ .end = EZX_IRQ_ADCDONE2, ++ .flags = IORESOURCE_IRQ, ++ }, ++ [1] = { ++ .start = EZX_IRQ_TS, ++ .end = EZX_IRQ_TS, ++ .flags = IORESOURCE_IRQ, ++ } ++}; ++ ++struct platform_device pcap_ts_device = { ++ .name = "pcap-ts", ++ .id = -1, ++ .num_resources = ARRAY_SIZE(pcap_ts_resources), ++ .resource = pcap_ts_resources, ++}; ++ + static struct pxafb_mode_info mode_a780 = { + .pixclock = 150000, + .xres = 240, +@@ -194,6 +215,7 @@ + }; + + static struct platform_device *devices[] __initdata = { ++ &pcap_ts_device, + }; + + static void __init a780_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/a780-vibrator.patch b/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch index 7436c40f5f..7436c40f5f 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/a780-vibrator.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/a780-vibrator.patch diff --git a/packages/linux/linux-ezx-2.6.21/asoc-pxa-ssp.patch b/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch index 1fc8283ca2..1fc8283ca2 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/asoc-pxa-ssp.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/asoc-pxa-ssp.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/defconfig-a780 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-a1200 index a9300a61f5..36021906b7 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/defconfig-a780 +++ b/packages/linux/linux-ezx-2.6.21/patches/defconfig-a1200 @@ -1,11 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.20.7 -# Sun Apr 22 15:03:36 2007 +# Linux kernel version: 2.6.21.4 +# Wed Jun 13 17:26:12 2007 # CONFIG_ARM=y -# CONFIG_GENERIC_TIME is not set +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y @@ -15,6 +18,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -24,6 +28,7 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # @@ -34,23 +39,22 @@ CONFIG_LOCALVERSION="-ezxdev" # CONFIG_SWAP is not set CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT 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_IKCONFIG is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set -CONFIG_INITRAMFS_SOURCE="" +# CONFIG_BLK_DEV_INITRD is not set CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y -# CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y @@ -59,11 +63,11 @@ CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y -CONFIG_SHMEM=y +# CONFIG_SHMEM is not set CONFIG_SLAB=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set +CONFIG_TINY_SHMEM=y CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -89,14 +93,14 @@ CONFIG_BLOCK=y # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=y -CONFIG_IOSCHED_DEADLINE=m -CONFIG_IOSCHED_CFQ=m -CONFIG_DEFAULT_AS=y -# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_IOSCHED_AS is not set +CONFIG_IOSCHED_DEADLINE=y +# CONFIG_IOSCHED_CFQ is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="anticipatory" +CONFIG_DEFAULT_IOSCHED="deadline" # # System Type @@ -122,6 +126,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -142,8 +147,14 @@ CONFIG_ARCH_PXA=y # CONFIG_MACH_TRIZEPS4 is not set CONFIG_PXA_EZX=y # CONFIG_PXA_EZX_E680 is not set -CONFIG_PXA_EZX_A780=y +# CONFIG_PXA_EZX_A780 is not set # CONFIG_PXA_EZX_E2 is not set +CONFIG_PXA_EZX_A1200=y +# CONFIG_PXA_EZX_E6 is not set +# CONFIG_EZX_BP is not set +CONFIG_EZX_PCAP=y +CONFIG_EZX_MCI_TF=y +# CONFIG_EZX_EMU is not set CONFIG_PXA27x=y CONFIG_PXA_SSP=y @@ -164,6 +175,7 @@ CONFIG_CPU_CP15_MMU=y # CONFIG_ARM_THUMB=y # CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set CONFIG_IWMMXT=y CONFIG_XSCALE_PMU=y @@ -179,11 +191,11 @@ CONFIG_XSCALE_PMU=y # # Kernel Features # -# CONFIG_PREEMPT is not set +CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +# CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -194,6 +206,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 CONFIG_ALIGNMENT_TRAP=y # @@ -201,8 +214,9 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0 CONFIG_ZBOOT_ROM_BSS=0 -CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000 mem=16M@0xAC000000" +CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000" # CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set # # Floating point emulation @@ -211,9 +225,6 @@ CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169 # # At least one emulation must be selected # -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set # # Userspace binary formats @@ -225,8 +236,11 @@ CONFIG_BINFMT_MISC=m # # Power management options # -# CONFIG_PM is not set -# CONFIG_APM is not set +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM_EMULATION=y # # Networking @@ -240,9 +254,6 @@ CONFIG_NET=y CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y -CONFIG_XFRM=y -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_SUB_POLICY is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -261,11 +272,10 @@ CONFIG_SYN_COOKIES=y # 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_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" @@ -313,27 +323,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -# CONFIG_BT_HCIUSB is not set -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_BCSP is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT is not set # CONFIG_IEEE80211 is not set # @@ -346,7 +336,6 @@ CONFIG_BT_HCIUART_H4=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=m -# CONFIG_DEBUG_DRIVER is not set # CONFIG_SYS_HYPERVISOR is not set # @@ -357,93 +346,7 @@ CONFIG_CONNECTOR=m # # Memory Technology Devices (MTD) # -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=y -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -CONFIG_MTD_CMDLINE_PARTS=y -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=y -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_GEOMETRY=y -# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -# CONFIG_MTD_CFI_I2 is not set -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=y -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set -CONFIG_MTD_XIP=y - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_SHARP_SL is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD is not set # # Parallel port support @@ -453,17 +356,17 @@ CONFIG_MTD_XIP=y # # Plug and Play support # +# CONFIG_PNPACPI is not set # # Block devices # # CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP=m # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set -# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -541,8 +444,17 @@ CONFIG_DUMMY=y # Wan interfaces # # CONFIG_WAN is not set -# CONFIG_PPP is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set # CONFIG_SLIP is not set +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -562,10 +474,7 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_TSDEV=y CONFIG_INPUT_TSDEV_SCREEN_X=240 @@ -583,6 +492,8 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set +CONFIG_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_PXA=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y @@ -595,14 +506,13 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_TOUCHSCREEN_PCAP=y # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # -CONFIG_SERIO=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO is not set # CONFIG_GAMEPORT is not set # @@ -639,7 +549,7 @@ CONFIG_LEGACY_PTY_COUNT=8 # Watchdog Cards # # CONFIG_WATCHDOG is not set -# CONFIG_HW_RANDOM is not set +CONFIG_HW_RANDOM=y # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set @@ -653,8 +563,8 @@ CONFIG_LEGACY_PTY_COUNT=8 # # I2C support # -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m # # I2C Algorithms @@ -666,7 +576,7 @@ CONFIG_I2C_CHARDEV=y # # I2C Hardware Bus support # -CONFIG_I2C_PXA=y +CONFIG_I2C_PXA=m # CONFIG_I2C_PXA_SLAVE is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set @@ -692,18 +602,18 @@ CONFIG_I2C_PXA=y # SPI support # CONFIG_SPI=y -CONFIG_SPI_DEBUG=y CONFIG_SPI_MASTER=y # # SPI Master Controller Drivers # # CONFIG_SPI_BITBANG is not set -CONFIG_SPI_PXA2XX=y +CONFIG_SPI_PXA2XX=m # # SPI Protocol Masters # +# CONFIG_SPI_AT25 is not set # # Dallas's 1-wire bus @@ -719,7 +629,11 @@ CONFIG_SPI_PXA2XX=y # # Misc devices # -# CONFIG_TIFM_CORE is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set # # LED devices @@ -752,15 +666,25 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=y # # Graphics support # -# CONFIG_FIRMWARE_EDID is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_EZX is not set CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# 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 + +# +# Frame buffer hardware drivers +# # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y CONFIG_FB_PXA_PARAMETERS=y @@ -790,53 +714,17 @@ CONFIG_FONT_MINI_4x6=y # Logo configuration # # CONFIG_LOGO is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound # -CONFIG_SOUND=y - -# -# Advanced Linux Sound Architecture -# -CONFIG_SND=y -# CONFIG_SND_SEQUENCER is not set -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_PCM_OSS is not set -# CONFIG_SND_DYNAMIC_MINORS is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_VERBOSE_PROCFS is not set -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set - -# -# Generic devices -# -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_MPU401 is not set - -# -# ALSA ARM devices -# -# CONFIG_SND_PXA2XX_AC97 is not set - -# -# USB devices -# -# CONFIG_SND_USB_AUDIO is not set - -# -# Open Sound System -# -# CONFIG_SOUND_PRIME is not set +# CONFIG_SOUND is not set # # HID Devices # CONFIG_HID=y +# CONFIG_HID_DEBUG is not set # # USB support @@ -851,8 +739,8 @@ CONFIG_USB=y # Miscellaneous USB options # # CONFIG_USB_DEVICEFS is not set -# CONFIG_USB_BANDWIDTH is not set # CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # @@ -860,7 +748,8 @@ CONFIG_USB=y # # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_SL811_HCD is not set @@ -901,6 +790,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_ATI_REMOTE2 is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set # # USB Imaging devices @@ -916,7 +806,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET_MII is not set # CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y +# CONFIG_USB_MON is not set # # USB port drivers @@ -937,6 +827,7 @@ CONFIG_USB_MON=y # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set @@ -946,6 +837,7 @@ CONFIG_USB_MON=y # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set # # USB DSL modem support @@ -959,13 +851,15 @@ CONFIG_USB_GADGET=y CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA27X=y +CONFIG_USB_PXA27X=y +# CONFIG_USB_PXA2XX_SMALL is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set # CONFIG_USB_GADGET_AT91 is not set -CONFIG_USB_GADGET_DUMMY_HCD=y -CONFIG_USB_DUMMY_HCD=y -CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y # CONFIG_USB_ETH_RNDIS is not set @@ -981,43 +875,12 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y -# CONFIG_MMC_TIFM_SD is not set # # 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_X1205 is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_SA1100=y -# CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_CLASS is not set # # File systems @@ -1059,7 +922,9 @@ CONFIG_AUTOFS4_FS=y # # CD-ROM/DVD Filesystems # -# CONFIG_ISO9660_FS is not set +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y # CONFIG_UDF_FS is not set # @@ -1078,8 +943,7 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set @@ -1094,8 +958,7 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1105,27 +968,35 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=y +CONFIG_NFS_FS=m CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V3_ACL=y # CONFIG_NFS_V4 is not set -# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFS_DIRECTIO=y CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V3_ACL=y # CONFIG_NFSD_V4 is not set CONFIG_NFSD_TCP=y -# CONFIG_ROOT_NFS is not set -CONFIG_LOCKD=y +CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=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_CIFS=m +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -1200,30 +1071,11 @@ CONFIG_NLS_UTF8=m # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set -CONFIG_DEBUG_KERNEL=y -CONFIG_LOG_BUF_SHIFT=16 -CONFIG_DETECT_SOFTLOCKUP=y -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -CONFIG_DEBUG_RT_MUTEXES=y -CONFIG_DEBUG_PI_LIST=y -# CONFIG_RT_MUTEX_TESTER is not set -CONFIG_DEBUG_SPINLOCK=y -CONFIG_DEBUG_MUTEXES=y -CONFIG_DEBUG_RWSEMS=y -CONFIG_DEBUG_SPINLOCK_SLEEP=y -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_KOBJECT is not set -CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y -# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -CONFIG_DEBUG_ERRORS=y -# CONFIG_DEBUG_LL is not set # # Security options @@ -1240,10 +1092,12 @@ CONFIG_DEBUG_ERRORS=y # Library routines # CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=y +CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC32=y CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-ezx-2.6.21/defconfig-a780 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-a780 index 85701ae3d1..bd794af856 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/defconfig-a780 +++ b/packages/linux/linux-ezx-2.6.21/patches/defconfig-a780 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21 -# Tue May 8 15:14:00 2007 +# Sat Jun 2 19:52:36 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -149,8 +149,11 @@ CONFIG_PXA_EZX=y # CONFIG_PXA_EZX_E680 is not set CONFIG_PXA_EZX_A780=y # CONFIG_PXA_EZX_E2 is not set +# CONFIG_PXA_EZX_A1200 is not set +# CONFIG_PXA_EZX_E6 is not set CONFIG_EZX_BP=y CONFIG_EZX_PCAP=y +CONFIG_EZX_MCI_TF=y CONFIG_EZX_EMU=y CONFIG_EZX_EMU_USB=y # CONFIG_EZX_EMU_UART is not set @@ -323,21 +326,21 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m +CONFIG_BT=y +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=y CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m +CONFIG_BT_BNEP=y CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m +CONFIG_BT_HIDP=y # # Bluetooth device drivers # # CONFIG_BT_HCIUSB is not set -CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART=y CONFIG_BT_HCIUART_H4=y # CONFIG_BT_HCIUART_BCSP is not set # CONFIG_BT_HCIBCM203X is not set @@ -366,17 +369,18 @@ CONFIG_CONNECTOR=m # # Memory Technology Devices (MTD) # -CONFIG_MTD=m +CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=m +# CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m +CONFIG_MTD_CHAR=y # CONFIG_MTD_BLKDEVS is not set # CONFIG_MTD_BLOCK is not set # CONFIG_MTD_BLOCK_RO is not set @@ -389,24 +393,29 @@ CONFIG_MTD_CHAR=m # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=m +CONFIG_MTD_CFI=y # CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=m -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I2 is not set # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=m +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CFI_UTIL=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set @@ -416,13 +425,16 @@ CONFIG_MTD_XIP=y # # Mapping drivers for chip access # -CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x0 +CONFIG_MTD_PHYSMAP_LEN=0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set # CONFIG_MTD_SHARP_SL is not set -CONFIG_MTD_EZX=m -# CONFIG_MTD_EZX_A780 is not set -CONFIG_MTD_EZX_A780_ALTERNATE=y +CONFIG_MTD_EZX=y +CONFIG_MTD_EZX_A780=y +# CONFIG_MTD_EZX_A780_ALTERNATE is not set # CONFIG_MTD_EZX_E2 is not set # CONFIG_MTD_PLATRAM is not set @@ -831,7 +843,7 @@ CONFIG_FONT_MINI_4x6=y # # HID Devices # -CONFIG_HID=m +CONFIG_HID=y # CONFIG_HID_DEBUG is not set # @@ -988,37 +1000,7 @@ CONFIG_MMC_PXA=y # 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 is not set -# CONFIG_RTC_INTF_PROC is not set -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set - -# -# RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_SA1100=y -# CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_CLASS is not set # # File systems @@ -1097,7 +1079,7 @@ CONFIG_RAMFS=y # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1107,7 +1089,7 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=y +CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y # CONFIG_NFS_V4 is not set @@ -1118,13 +1100,12 @@ CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y # CONFIG_NFSD_V4 is not set CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y +CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m -CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y +CONFIG_SUNRPC=m # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=m @@ -1206,7 +1187,7 @@ CONFIG_NLS_UTF8=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_ENABLE_MUST_CHECK is not set # CONFIG_MAGIC_SYSRQ is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set @@ -1236,7 +1217,7 @@ CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC32=y CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y diff --git a/packages/linux/linux-ezx/defconfig-rokr-e2 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e2 index 6345a77a34..be512457d9 100644..100755 --- a/packages/linux/linux-ezx/defconfig-rokr-e2 +++ b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e2 @@ -1,11 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.19.1 -# Thu Jan 4 18:45:14 2007 +# Linux kernel version: 2.6.21.4 +# Wed Jun 13 17:29:50 2007 # CONFIG_ARM=y -# CONFIG_GENERIC_TIME is not set +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set CONFIG_GENERIC_HARDIRQS=y CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_HARDIRQS_SW_RESEND=y @@ -15,6 +18,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -24,31 +28,32 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # -CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION="-ezxdev" # CONFIG_LOCALVERSION_AUTO is not set # CONFIG_SWAP is not set CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set -CONFIG_BSD_PROCESS_ACCT=y -# CONFIG_BSD_PROCESS_ACCT_V3 is not set +# CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set -CONFIG_INITRAMFS_SOURCE="" -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y CONFIG_UID16=y -CONFIG_SYSCTL_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y @@ -58,11 +63,11 @@ CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y -CONFIG_SHMEM=y +# CONFIG_SHMEM is not set CONFIG_SLAB=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_RT_MUTEXES=y -# CONFIG_TINY_SHMEM is not set +CONFIG_TINY_SHMEM=y CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set @@ -71,10 +76,10 @@ CONFIG_BASE_SMALL=0 # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_FORCE_UNLOAD is not set -# CONFIG_MODVERSIONS is not set +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_KMOD is not set +CONFIG_KMOD=y # # Block layer @@ -89,13 +94,13 @@ CONFIG_BLOCK=y # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set +CONFIG_IOSCHED_DEADLINE=y # CONFIG_IOSCHED_CFQ is not set # CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" # # System Type @@ -121,6 +126,7 @@ CONFIG_DEFAULT_IOSCHED="noop" # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set # CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set @@ -136,13 +142,20 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_LUBBOCK is not set # CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set -CONFIG_ARCH_EZX=y # CONFIG_ARCH_PXA_IDP is not set # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set -CONFIG_ARCH_EZX_SUMATRA=y -# CONFIG_ARCH_EZX_A780 is not set +CONFIG_PXA_EZX=y +# CONFIG_PXA_EZX_E680 is not set +# CONFIG_PXA_EZX_A780 is not set +CONFIG_PXA_EZX_E2=y +# CONFIG_PXA_EZX_A1200 is not set +# CONFIG_PXA_EZX_E6 is not set +# CONFIG_EZX_BP is not set +CONFIG_EZX_PCAP=y +# CONFIG_EZX_EMU is not set CONFIG_PXA27x=y +CONFIG_PXA_SSP=y # # Processor Type @@ -161,6 +174,7 @@ CONFIG_CPU_CP15_MMU=y # CONFIG_ARM_THUMB=y # CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set CONFIG_IWMMXT=y CONFIG_XSCALE_PMU=y @@ -176,10 +190,11 @@ CONFIG_XSCALE_PMU=y # # Kernel Features # -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 -# CONFIG_AEABI is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -190,15 +205,17 @@ CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 # CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 CONFIG_ALIGNMENT_TRAP=y # # Boot options # -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M console=tty0 video=pxafb:mode:240x320-8,active root=/dev/mmcblk0p1 rootdelay=1" +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000" # CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set # # Floating point emulation @@ -207,16 +224,13 @@ CONFIG_CMDLINE="mem=32M console=tty0 video=pxafb:mode:240x320-8,active root=/dev # # At least one emulation must be selected # -# CONFIG_FPE_NWFPE is not set -# CONFIG_FPE_FASTFPE is not set # # Userspace binary formats # CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m # # Power management options @@ -225,7 +239,7 @@ CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set # CONFIG_PM_SYSFS_DEPRECATED is not set -CONFIG_APM=y +CONFIG_APM_EMULATION=y # # Networking @@ -236,12 +250,55 @@ CONFIG_NET=y # Networking options # # CONFIG_NETDEBUG is not set -# CONFIG_PACKET is not set -# CONFIG_UNIX is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y # CONFIG_NET_KEY is not set -# CONFIG_INET 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=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# 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 is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# 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 @@ -251,6 +308,7 @@ CONFIG_NET=y # 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 # @@ -275,97 +333,19 @@ CONFIG_NET=y # Generic Driver Options # CONFIG_STANDALONE=y -# CONFIG_PREVENT_FIRMWARE_BUILD is not set -# CONFIG_FW_LOADER is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # -# CONFIG_CONNECTOR is not set +CONFIG_CONNECTOR=m # # Memory Technology Devices (MTD) # -CONFIG_MTD=y -# CONFIG_MTD_DEBUG is not set -# CONFIG_MTD_CONCAT is not set -# CONFIG_MTD_PARTITIONS is not set - -# -# User Modules And Translation Layers -# -# CONFIG_MTD_CHAR is not set -# CONFIG_MTD_BLOCK is not set -# CONFIG_MTD_BLOCK_RO is not set -# CONFIG_FTL is not set -# CONFIG_NFTL is not set -# CONFIG_INFTL is not set -# CONFIG_RFD_FTL is not set -# CONFIG_SSFDC is not set - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=y -# CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=y -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set -# CONFIG_MTD_XIP is not set - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_SHARP_SL is not set -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -# CONFIG_MTD_DOC2001PLUS is not set - -# -# NAND Flash Device Drivers -# -# CONFIG_MTD_NAND is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD is not set # # Parallel port support @@ -375,15 +355,17 @@ CONFIG_MTD_CFI_UTIL=y # # Plug and Play support # +# CONFIG_PNPACPI is not set # # Block devices # # CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_LOOP is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set -# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -425,7 +407,55 @@ CONFIG_MTD_CFI_UTIL=y # # Network device support # -# CONFIG_NETDEVICES is not set +CONFIG_NETDEVICES=y +CONFIG_DUMMY=y +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# CONFIG_SHAPER is not set +# CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set @@ -443,19 +473,26 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y -# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_TSDEV=y +CONFIG_INPUT_TSDEV_SCREEN_X=240 +CONFIG_INPUT_TSDEV_SCREEN_Y=320 +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # -# CONFIG_INPUT_KEYBOARD is not set +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_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_PXA=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TOUCHSCREEN is not set @@ -484,9 +521,13 @@ CONFIG_HW_CONSOLE=y # # Non-8250 serial port support # -# CONFIG_SERIAL_PXA is not set +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=8 # # IPMI @@ -497,7 +538,7 @@ CONFIG_UNIX98_PTYS=y # Watchdog Cards # # CONFIG_WATCHDOG is not set -# CONFIG_HW_RANDOM is not set +CONFIG_HW_RANDOM=y # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set @@ -511,8 +552,8 @@ CONFIG_UNIX98_PTYS=y # # I2C support # -CONFIG_I2C=y -# CONFIG_I2C_CHARDEV is not set +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m # # I2C Algorithms @@ -524,7 +565,8 @@ CONFIG_I2C=y # # I2C Hardware Bus support # -# CONFIG_I2C_PXA is not set +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set @@ -555,11 +597,12 @@ CONFIG_SPI_MASTER=y # SPI Master Controller Drivers # # CONFIG_SPI_BITBANG is not set -CONFIG_SPI_PXA2XX=y +CONFIG_SPI_PXA2XX=m # # SPI Protocol Masters # +# CONFIG_SPI_AT25 is not set # # Dallas's 1-wire bus @@ -575,12 +618,17 @@ CONFIG_SPI_PXA2XX=y # # Misc devices # -# CONFIG_TIFM_CORE is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set # # LED devices # -# CONFIG_NEW_LEDS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y # # LED drivers @@ -589,6 +637,9 @@ CONFIG_SPI_PXA2XX=y # # LED Triggers # +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y # # Multimedia devices @@ -598,19 +649,31 @@ CONFIG_SPI_PXA2XX=y # # Digital Video Broadcasting Devices # +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support # -# CONFIG_FIRMWARE_EDID is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_EZX is not set CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# 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=y -CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y CONFIG_FB_PXA_PARAMETERS=y @@ -627,11 +690,11 @@ CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FONTS=y # CONFIG_FONT_8x8 is not set # CONFIG_FONT_8x16 is not set -CONFIG_FONT_6x11=y +# CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set +CONFIG_FONT_MINI_4x6=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set @@ -640,11 +703,6 @@ CONFIG_FONT_6x11=y # Logo configuration # # CONFIG_LOGO is not set -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=y -CONFIG_LCD_DEVICE=y # # Sound @@ -654,7 +712,8 @@ CONFIG_LCD_DEVICE=y # # HID Devices # -# CONFIG_HID is not set +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set # # USB support @@ -662,21 +721,127 @@ CONFIG_LCD_DEVICE=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y # CONFIG_USB_ARCH_HAS_EHCI is not set -# CONFIG_USB is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set + +# +# USB DSL modem support +# + +# # USB Gadget Support # CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_NET2280 is not set -CONFIG_USB_GADGET_PXA2XX=y -CONFIG_USB_PXA2XX=y +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA27X=y +CONFIG_USB_PXA27X=y # CONFIG_USB_PXA2XX_SMALL is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set @@ -686,7 +851,7 @@ CONFIG_USB_PXA2XX=y # CONFIG_USB_GADGET_DUALSPEED is not set # CONFIG_USB_ZERO is not set CONFIG_USB_ETH=y -CONFIG_USB_ETH_RNDIS=y +# CONFIG_USB_ETH_RNDIS is not set # CONFIG_USB_GADGETFS is not set # CONFIG_USB_FILE_STORAGE is not set # CONFIG_USB_G_SERIAL is not set @@ -699,48 +864,21 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y -# CONFIG_MMC_TIFM_SD is not set # # 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_X1205 is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_SA1100=y -# CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_CLASS is not set # # File systems # -# CONFIG_EXT2_FS is not set +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y @@ -749,7 +887,12 @@ CONFIG_EXT3_FS_SECURITY=y CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=y -# CONFIG_REISERFS_FS is not set +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set @@ -757,24 +900,30 @@ CONFIG_FS_POSIX_ACL=y # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set -# CONFIG_INOTIFY is not set +CONFIG_INOTIFY=y +CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTOFS4_FS is not set +CONFIG_AUTOFS_FS=y +CONFIG_AUTOFS4_FS=y # CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # -# CONFIG_ISO9660_FS is not set +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # -# CONFIG_MSDOS_FS is not set -# CONFIG_VFAT_FS is not set +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set # @@ -783,8 +932,7 @@ CONFIG_DNOTIFY=y CONFIG_PROC_FS=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set @@ -799,8 +947,7 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS2_FS is not set -# CONFIG_CRAMFS is not set +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -810,6 +957,39 @@ CONFIG_RAMFS=y # # Network File Systems # +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +CONFIG_NFS_V3_ACL=y +# CONFIG_NFS_V4 is not set +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +# CONFIG_NFSD_V4 is not set +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=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=m +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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 @@ -821,45 +1001,50 @@ CONFIG_MSDOS_PARTITION=y # Native Language Support # CONFIG_NLS=y -CONFIG_NLS_DEFAULT="utf-8" -CONFIG_NLS_CODEPAGE_437=y -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -# CONFIG_NLS_ISO8859_1 is not set -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=m +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 @@ -877,7 +1062,7 @@ CONFIG_NLS_UTF8=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_KERNEL is not set CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_FRAME_POINTER=y # CONFIG_DEBUG_USER is not set @@ -896,9 +1081,12 @@ CONFIG_FRAME_POINTER=y # Library routines # CONFIG_BITREVERSE=y -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC16 is not set +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m CONFIG_CRC32=y -# CONFIG_LIBCRC32C is not set +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m CONFIG_PLIST=y -CONFIG_IOMAP_COPY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-ezx-2.6.21/patches/defconfig-e6 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e6 new file mode 100755 index 0000000000..75ee2803d9 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e6 @@ -0,0 +1,1102 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21.4 +# Wed Jun 13 17:29:19 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="-ezxdev" +# CONFIG_LOCALVERSION_AUTO is not set +# CONFIG_SWAP is not set +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +# CONFIG_SYSCTL_SYSCALL is not set +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 is not set +CONFIG_SLAB=y +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_RT_MUTEXES=y +CONFIG_TINY_SHMEM=y +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=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# 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 is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_DEADLINE=y +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="deadline" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +# CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set +CONFIG_PXA_EZX=y +# CONFIG_PXA_EZX_E680 is not set +# CONFIG_PXA_EZX_A780 is not set +# CONFIG_PXA_EZX_E2 is not set +# CONFIG_PXA_EZX_A1200 is not set +CONFIG_PXA_EZX_E6=y +# CONFIG_EZX_BP is not set +CONFIG_EZX_PCAP=y +# CONFIG_EZX_EMU is not set +CONFIG_PXA27x=y +CONFIG_PXA_SSP=y + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +CONFIG_IWMMXT=y +CONFIG_XSCALE_PMU=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_CMDLINE="console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000" +# CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY 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=y +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_ARPD is not set +CONFIG_SYN_COOKIES=y +# 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 is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +# CONFIG_INET_DIAG is not set +# 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 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +CONFIG_CONNECTOR=m + +# +# Memory Technology Devices (MTD) +# +# CONFIG_MTD is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNPACPI is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +# CONFIG_IDE is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +# CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA 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 + +# +# PHY device support +# + +# +# Ethernet (10 or 100Mbit) +# +# CONFIG_NET_ETHERNET is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +CONFIG_PPP=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# 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 + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# 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=y +# 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_KEYBOARD_GPIO=y +CONFIG_KEYBOARD_PXA=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_ADS7846 is not set +# 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_PENMOUNT is not set +# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set +# CONFIG_TOUCHSCREEN_TOUCHWIN is not set +# CONFIG_TOUCHSCREEN_UCB1400 is not set +CONFIG_TOUCHSCREEN_PCAP=y +# 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_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=8 + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=y +# CONFIG_NVRAM is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set + +# +# I2C support +# +CONFIG_I2C=m +CONFIG_I2C_CHARDEV=m + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=m +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_BITBANG is not set +CONFIG_SPI_PXA2XX=m + +# +# SPI Protocol Masters +# +# CONFIG_SPI_AT25 is not set + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y + +# +# Multimedia devices +# +# CONFIG_VIDEO_DEV is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_EZX is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# 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 + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_PXA=y +CONFIG_FB_PXA_PARAMETERS=y +# CONFIG_FB_MBX is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_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 is not set +# CONFIG_FONT_ACORN_8x8 is not set +CONFIG_FONT_MINI_4x6=y +# 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=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +# CONFIG_USB_HID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA27X=y +CONFIG_USB_PXA27X=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +# CONFIG_USB_ZERO is not set +CONFIG_USB_ETH=y +# CONFIG_USB_ETH_RNDIS is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FILE_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +CONFIG_FS_MBCACHE=y +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_CHECK is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_REISERFS_FS_XATTR=y +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# 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=y +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=m +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +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_SYSCTL=y +CONFIG_SYSFS=y +# CONFIG_TMPFS 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=m +# 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=y +CONFIG_NFS_V3_ACL=y +# CONFIG_NFS_V4 is not set +CONFIG_NFS_DIRECTIO=y +CONFIG_NFSD=m +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +# CONFIG_NFSD_V4 is not set +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_ACL_SUPPORT=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=m +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CIFS_POSIX=y +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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 is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=m +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_PRINTK_TIME is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# 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_FRAME_POINTER=y +# CONFIG_DEBUG_USER is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y diff --git a/packages/linux/linux-ezx-2.6.21/defconfig-e680 b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e680 index 59b639f910..d180351886 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/defconfig-e680 +++ b/packages/linux/linux-ezx-2.6.21/patches/defconfig-e680 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21 -# Tue May 8 14:31:50 2007 +# Sat Jun 2 18:29:02 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -149,8 +149,11 @@ CONFIG_PXA_EZX=y CONFIG_PXA_EZX_E680=y # CONFIG_PXA_EZX_A780 is not set # CONFIG_PXA_EZX_E2 is not set +# CONFIG_PXA_EZX_A1200 is not set +# CONFIG_PXA_EZX_E6 is not set CONFIG_EZX_BP=y CONFIG_EZX_PCAP=y +CONFIG_EZX_MCI_SD=y CONFIG_EZX_EMU=y CONFIG_EZX_EMU_USB=y # CONFIG_EZX_EMU_UART is not set @@ -323,21 +326,21 @@ CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m +CONFIG_BT=y +CONFIG_BT_L2CAP=y +CONFIG_BT_SCO=y +CONFIG_BT_RFCOMM=y CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m +CONFIG_BT_BNEP=y CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m +CONFIG_BT_HIDP=y # # Bluetooth device drivers # # CONFIG_BT_HCIUSB is not set -CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART=y CONFIG_BT_HCIUART_H4=y # CONFIG_BT_HCIUART_BCSP is not set # CONFIG_BT_HCIBCM203X is not set @@ -366,17 +369,18 @@ CONFIG_CONNECTOR=m # # Memory Technology Devices (MTD) # -CONFIG_MTD=m +CONFIG_MTD=y # CONFIG_MTD_DEBUG is not set -CONFIG_MTD_CONCAT=m +# CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set # CONFIG_MTD_AFS_PARTS is not set # # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m +CONFIG_MTD_CHAR=y # CONFIG_MTD_BLKDEVS is not set # CONFIG_MTD_BLOCK is not set # CONFIG_MTD_BLOCK_RO is not set @@ -389,24 +393,29 @@ CONFIG_MTD_CHAR=m # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=m +CONFIG_MTD_CFI=y # CONFIG_MTD_JEDECPROBE is not set -CONFIG_MTD_GEN_PROBE=m -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +CONFIG_MTD_CFI_GEOMETRY=y +# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set CONFIG_MTD_MAP_BANK_WIDTH_2=y -CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I2 is not set # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=m +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CFI_UTIL=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set @@ -416,13 +425,16 @@ CONFIG_MTD_XIP=y # # Mapping drivers for chip access # -CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_PHYSMAP=y +CONFIG_MTD_PHYSMAP_START=0x0 +CONFIG_MTD_PHYSMAP_LEN=0 +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 # CONFIG_MTD_ARM_INTEGRATOR is not set # CONFIG_MTD_SHARP_SL is not set -CONFIG_MTD_EZX=m -# CONFIG_MTD_EZX_A780 is not set -CONFIG_MTD_EZX_A780_ALTERNATE=y +CONFIG_MTD_EZX=y +CONFIG_MTD_EZX_A780=y +# CONFIG_MTD_EZX_A780_ALTERNATE is not set # CONFIG_MTD_EZX_E2 is not set # CONFIG_MTD_PLATRAM is not set @@ -664,7 +676,8 @@ CONFIG_HW_RANDOM=y # TPM devices # # CONFIG_TCG_TPM is not set -# CONFIG_TS0710_MUX is not set +CONFIG_TS0710_MUX=y +CONFIG_TS0710_MUX_USB=y # # I2C support @@ -754,8 +767,10 @@ CONFIG_LEDS_CLASS=y # # LED Triggers # -# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_E680=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_HEARTBEAT=y # # Multimedia devices @@ -828,7 +843,7 @@ CONFIG_FONT_MINI_4x6=y # # HID Devices # -CONFIG_HID=m +CONFIG_HID=y # CONFIG_HID_DEBUG is not set # @@ -985,37 +1000,7 @@ CONFIG_MMC_PXA=y # 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 is not set -# CONFIG_RTC_INTF_PROC is not set -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set - -# -# RTC drivers -# -# CONFIG_RTC_DRV_CMOS is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_M48T86 is not set -CONFIG_RTC_DRV_SA1100=y -# CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_CLASS is not set # # File systems @@ -1094,7 +1079,7 @@ CONFIG_RAMFS=y # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=y +CONFIG_CRAMFS=m # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1104,7 +1089,7 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=y +CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y # CONFIG_NFS_V4 is not set @@ -1115,13 +1100,12 @@ CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y # CONFIG_NFSD_V4 is not set CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y +CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m -CONFIG_NFS_ACL_SUPPORT=y +CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y +CONFIG_SUNRPC=m # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set CONFIG_SMB_FS=m @@ -1203,7 +1187,7 @@ CONFIG_NLS_UTF8=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set -CONFIG_ENABLE_MUST_CHECK=y +# CONFIG_ENABLE_MUST_CHECK is not set # CONFIG_MAGIC_SYSRQ is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set @@ -1233,7 +1217,7 @@ CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC32=y CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y diff --git a/packages/linux/linux-ezx-2.6.21/patches/dmesg-a780.log b/packages/linux/linux-ezx-2.6.21/patches/dmesg-a780.log new file mode 100755 index 0000000000..6b15077676 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/dmesg-a780.log @@ -0,0 +1,299 @@ +<5>Linux version 2.6.21-ezxdev (wyrm@vault) (gcc version 4.1.1) #222 PREEMPT Tue May 8 15:19:34 BRT 2007 +<4>CPU: XScale-PXA270 [69054117] revision 7 (ARMv5TE), cr=0000397f +<4>Machine: Motorola Ezx Platform +<4>Memory policy: ECC disabled, Data cache writeback +<7>On node 0 totalpages: 12288 +<7> DMA zone: 416 pages used for memmap +<7> DMA zone: 0 pages reserved +<7> DMA zone: 11872 pages, LIFO batch:1 +<7> Normal zone: 0 pages used for memmap +<6>Run Mode clock: 195.00MHz (*15) +<6>Turbo Mode clock: 292.50MHz (*1.5, active) +<6>Memory clock: 195.00MHz (/2) +<6>System bus clock: 195.00MHz +<4>CPU0: D VIVT undefined 5 cache +<4>CPU0: I cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets +<4>CPU0: D cache: 32768 bytes, associativity 32, 32 byte lines, 32 sets +<4>Built 1 zonelists. Total pages: 11872 +<5>Kernel command line: console=tty1 noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 ip=169.254.1.11:169.254.1.10:169.254.1.10:255.255.255.254:ezx:usb0:off debug mem=32M@0xA0000000 mem=16M@0xAC000000 +<4>PID hash table entries: 256 (order: 8, 1024 bytes) +<4>Console: colour dummy device 80x30 +<4>Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) +<4>Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) +<6>Memory: 32MB 16MB = 48MB total +<5>Memory: 46084KB available (2264K code, 217K data, 84K init) +<7>Calibrating delay loop... 291.63 BogoMIPS (lpj=1458176) +<4>Mount-cache hash table entries: 512 +<6>CPU: Testing write buffer coherency: ok +<6>NET: Registered protocol family 16 +<6>usbcore: registered new interface driver usbfs +<6>usbcore: registered new interface driver hub +<6>usbcore: registered new device driver usb +<6>Time: pxa_timer clocksource has been installed. +<6>NET: Registered protocol family 2 +<4>IP route cache hash table entries: 1024 (order: 0, 4096 bytes) +<4>TCP established hash table entries: 2048 (order: 2, 16384 bytes) +<4>TCP bind hash table entries: 2048 (order: 1, 8192 bytes) +<6>TCP: Hash tables configured (established 2048 bind 2048) +<6>TCP reno registered +<4>bp handshake entered! +<4>ezx-bp: handshake step 2 +<4>BP rdy irq +<4>bp handshake entered! +<5>ezx-bp: handshake passed +<4>ezx-pcap: ssp driver registered +<6>io scheduler noop registered +<6>io scheduler deadline registered (default) +<4>pxa2xx-fb pxa2xx-fb: machine LCCR0 setting contains illegal bits: 00200878 +<4>pxa2xx-fb pxa2xx-fb: machine LCCR3 setting contains illegal bits: 00300008 +<4>Console: switching to colour frame buffer device 60x53 +<6>usbcore: registered new interface driver usb ipc +<6>drivers/char/ts0710_mux_usb.c: USB Host(Bulverde) IPC driver registered. +<6>drivers/char/ts0710_mux_usb.c: 1.0alpha1:USB IPC Driver (TS07.10 lowlevel) +<6>pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 22) is a FFUART +<6>pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 21) is a BTUART +<6>pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 20) is a STUART +<7>ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver +<6>pxa27x-ohci pxa27x-ohci: PXA27x OHCI +<6>pxa27x-ohci pxa27x-ohci: new USB bus registered, assigned bus number 1 +<6>pxa27x-ohci pxa27x-ohci: irq 3, io mem 0x4c000000 +<6>usb usb1: configuration #1 chosen from 1 choice +<6>hub 1-0:1.0: USB hub found +<6>hub 1-0:1.0: 3 ports detected +<6>pxa27x_udc: version 08-Feb-2007 +<5>USB cmd disconnect +<5>USB cmd disconnect +<4>ether gadget: using random self ethernet address +<4>ether gadget: using random host ethernet address +<6>usb0: Ethernet Gadget, version: May Day 2005 +<6>usb0: using pxa27x_udc, OUT Bulk-out-2 IN Bulk-in-1 +<6>usb0: MAC 46:86:e0:79:e7:fb +<5>USB cmd connect +<5>USB cmd connect +<6>input: gpio-keys as /class/input/input0 +<6>input: pxa-keyboard as /class/input/input1 +<6>input: pcap-touchscreen as /class/input/input2 +<6>sa1100-rtc sa1100-rtc: rtc core: registered sa1100-rtc as rtc0 +<6>Registered led device: a780:main +<6>Registered led device: a780:aux +<6>Registered led device: a780:vibrator +<6>TCP cubic registered +<6>NET: Registered protocol family 1 +<6>NET: Registered protocol family 17 +<6>XScale iWMMXt coprocessor detected. +<6>sa1100-rtc sa1100-rtc: setting the system clock to 1970-01-01 00:00:16 (16) +<6>mmcblk0: mmc0:bffc SU02G 1985024KiB +<6>udc: USB reset +<6> mmcblk0:<6>usb 1-3: new full speed USB device using pxa27x-ohci and address 2 +<4> p1 p2 p3 < p5 p6 p7 > +<6>udc: USB reset +<3>usb 1-3: device descriptor read/64, error -62 +<6>usb0: full speed config #1: 100 mA, Ethernet Gadget, using CDC Ethernet Subset +<3>usb 1-3: device descriptor read/64, error -62 +<6>usb 1-3: new full speed USB device using pxa27x-ohci and address 3 +<3>usb 1-3: device descriptor read/64, error -62 +<4>IP-Config: Complete: +<4> device=usb0, addr=169.254.1.11, mask=255.255.255.254, gw=169.254.1.10, +<4> host=ezx, domain=, nis-domain=(none), +<4> bootserver=169.254.1.10, rootserver=169.254.1.10, rootpath= +<6>kjournald starting. Commit interval 5 seconds +<4>EXT3-fs warning: maximal mount count reached, running e2fsck is recommended +<6>EXT3 FS on mmcblk0p2, internal journal +<6>EXT3-fs: recovery complete. +<6>EXT3-fs: mounted filesystem with ordered data mode. +<4>VFS: Mounted root (ext3 filesystem). +<6>Freeing init memory: 84K +<3>usb 1-3: device descriptor read/64, error -110 +<6>usb 1-3: new full speed USB device using pxa27x-ohci and address 4 +<3>usb 1-3: device descriptor read/8, error -62 +<4>usb 1-3: config 1 has an invalid interface number: 13 but max is 2 +<4>usb 1-3: config 1 has an invalid interface number: 6 but max is 2 +<4>usb 1-3: config 1 has an invalid interface number: 7 but max is 2 +<4>usb 1-3: config 1 has no interface number 0 +<4>usb 1-3: config 1 has no interface number 1 +<4>usb 1-3: config 1 has no interface number 2 +<6>usb 1-3: configuration #1 chosen from 1 choice +<4>usb_ipc_probe: completed probe! +<6>drivers/char/ts0710_mux_usb.c: usb_ipc_probe: Only two endpoints supported. +<4>usb ipc: probe of 1-3:1.6 failed with error -1 +<6>drivers/char/ts0710_mux_usb.c: usb_ipc_probe: Only two endpoints supported. +<4>usb ipc: probe of 1-3:1.7 failed with error -1 +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2009 bytes from ts0710_mux_usb inbuf. +<4>Read 21 bytes. +<4>Reading max 1988 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2009 bytes from ts0710_mux_usb inbuf. +<4>Read 21 bytes. +<4>Reading max 1988 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2009 bytes from ts0710_mux_usb inbuf. +<4>Read 21 bytes. +<4>Reading max 1988 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2009 bytes from ts0710_mux_usb inbuf. +<4>Read 21 bytes. +<4>Reading max 1988 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2009 bytes from ts0710_mux_usb inbuf. +<4>Read 21 bytes. +<4>Reading max 1988 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 11 bytes. +<4>Reading max 2037 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 17 bytes. +<4>Reading max 2031 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 11 bytes. +<4>Reading max 2037 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 7 bytes. +<4>Reading max 2041 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 11 bytes. +<4>Reading max 2037 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2016 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1984 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1952 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1920 bytes from ts0710_mux_usb inbuf. +<4>Read 6 bytes. +<4>Reading max 1914 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1882 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1850 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1818 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1786 bytes from ts0710_mux_usb inbuf. +<4>Read 6 bytes. +<4>Reading max 1780 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1748 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1716 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1684 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1652 bytes from ts0710_mux_usb inbuf. +<4>Read 6 bytes. +<4>Reading max 1646 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2016 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1984 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1952 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1920 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1888 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1856 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1824 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1792 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1760 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1728 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1696 bytes from ts0710_mux_usb inbuf. +<4>Read 16 bytes. +<4>Reading max 1680 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2016 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1984 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1952 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1920 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1888 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1856 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1824 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1792 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1760 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1728 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 1696 bytes from ts0710_mux_usb inbuf. +<4>Read 13 bytes. +<4>Reading max 1683 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 14 bytes. +<4>Reading max 2034 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>Read 32 bytes. +<4>Reading max 2016 bytes from ts0710_mux_usb inbuf. +<4>Read 2 bytes. +<4>Reading max 2014 bytes from ts0710_mux_usb inbuf. +<4>Reading max 2048 bytes from ts0710_mux_usb inbuf. +<4>nonzero read bulk status received: -104 diff --git a/packages/linux/linux-ezx-2.6.21/e680-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch index 054c567d6b..2a2d9c7a72 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/e680-kbd.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e680-kbd.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 13:03:53.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:21:56.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:54:39.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:56:30.000000000 -0300 @@ -15,18 +15,21 @@ #include <linux/fb.h> #include <linux/mmc/host.h> @@ -89,5 +89,5 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c pxa_set_mci_info(&e680_mci_platform_data); + pxa_set_kbd_info(&e680_kbd_platform_data); - platform_add_devices(devices, ARRAY_SIZE(devices)); - } + /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ + pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); diff --git a/packages/linux/linux-ezx-2.6.21/e680-leds.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch index 37d47f89dc..82dc93b611 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/e680-leds.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e680-leds.patch @@ -5,8 +5,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig =================================================================== ---- linux-2.6.21.orig/drivers/leds/Kconfig 2007-05-08 14:31:16.000000000 -0300 -+++ linux-2.6.21/drivers/leds/Kconfig 2007-05-08 14:31:17.000000000 -0300 +--- linux-2.6.21.orig/drivers/leds/Kconfig 2007-06-08 18:39:04.000000000 +0200 ++++ linux-2.6.21/drivers/leds/Kconfig 2007-06-08 18:39:12.000000000 +0200 @@ -111,6 +111,13 @@ This option enables support for the LEDs on the Motorola A780 GSM Phone. @@ -23,8 +23,8 @@ Index: linux-2.6.21/drivers/leds/Kconfig depends on LEDS_TRIGGERS Index: linux-2.6.21/drivers/leds/Makefile =================================================================== ---- linux-2.6.21.orig/drivers/leds/Makefile 2007-05-08 14:31:16.000000000 -0300 -+++ linux-2.6.21/drivers/leds/Makefile 2007-05-08 14:31:17.000000000 -0300 +--- linux-2.6.21.orig/drivers/leds/Makefile 2007-06-08 18:39:04.000000000 +0200 ++++ linux-2.6.21/drivers/leds/Makefile 2007-06-08 18:39:12.000000000 +0200 @@ -17,6 +17,7 @@ obj-$(CONFIG_LEDS_H1940) += leds-h1940.o obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o @@ -36,7 +36,7 @@ Index: linux-2.6.21/drivers/leds/Makefile Index: linux-2.6.21/drivers/leds/leds-e680.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/leds/leds-e680.c 2007-05-08 14:44:39.000000000 -0300 ++++ linux-2.6.21/drivers/leds/leds-e680.c 2007-06-08 18:39:12.000000000 +0200 @@ -0,0 +1,309 @@ +/* + * EZX Platform LED Driver for the Motorola E680(i) GSM Phone @@ -349,9 +349,9 @@ Index: linux-2.6.21/drivers/leds/leds-e680.c +MODULE_LICENSE("GPL"); Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:23:29.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:31:17.000000000 -0300 -@@ -221,8 +221,14 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:59.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:39:12.000000000 +0200 +@@ -242,9 +242,15 @@ }, }; @@ -361,6 +361,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c +}; + static struct platform_device *devices[] __initdata = { + &pcap_ts_device, &e680locksw_device, + &e680led_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/e680-locksw.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch index 91fab24d44..36b52a916a 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/e680-locksw.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e680-locksw.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:23:12.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 14:23:29.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:48.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-08 18:38:59.000000000 +0200 @@ -16,6 +16,7 @@ #include <linux/mmc/host.h> #include <linux/irq.h> @@ -10,7 +10,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c #include <asm/mach-types.h> #include <asm/mach/arch.h> -@@ -199,7 +200,29 @@ +@@ -220,8 +221,30 @@ }, }; @@ -36,6 +36,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c +}; + static struct platform_device *devices[] __initdata = { + &pcap_ts_device, + &e680locksw_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/e680-mci.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch index 1bf69176ef..b5bb2931f1 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/e680-mci.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/e680-mci.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 03:47:41.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 13:03:53.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:43:08.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-24 00:48:20.000000000 -0300 @@ -13,11 +13,14 @@ #include <linux/init.h> #include <linux/platform_device.h> @@ -123,5 +123,17 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c set_pxa_fb_info(&e680_fb_info); + pxa_set_mci_info(&e680_mci_platform_data); - platform_add_devices(devices, ARRAY_SIZE(devices)); - } + /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ + pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); +Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:28.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-24 00:48:55.000000000 -0300 +@@ -83,6 +83,7 @@ + config PXA_EZX_E680 + bool "Motorola E680 GSM Phone" + select PXA27x ++ select EZX_MCI_SD + + config PXA_EZX_A780 + bool "Motorola A780 GSM Phone" diff --git a/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch new file mode 100755 index 0000000000..52f9ce34b5 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/e680-ts.patch @@ -0,0 +1,40 @@ +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c +=================================================================== +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 20:32:49.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 20:33:26.000000000 -0300 +@@ -124,6 +124,27 @@ + .exit = e680_mci_exit, + }; + ++/* PCAP_TS */ ++struct resource pcap_ts_resources[] = { ++ [0] = { ++ .start = EZX_IRQ_ADCDONE2, ++ .end = EZX_IRQ_ADCDONE2, ++ .flags = IORESOURCE_IRQ, ++ }, ++ [1] = { ++ .start = EZX_IRQ_TS, ++ .end = EZX_IRQ_TS, ++ .flags = IORESOURCE_IRQ, ++ } ++}; ++ ++struct platform_device pcap_ts_device = { ++ .name = "pcap-ts", ++ .id = -1, ++ .num_resources = ARRAY_SIZE(pcap_ts_resources), ++ .resource = pcap_ts_resources, ++}; ++ + static struct pxafb_mode_info mode_e680 = { + .pixclock = 150000, + .xres = 240, +@@ -200,6 +221,7 @@ + }; + + static struct platform_device *devices[] __initdata = { ++ &pcap_ts_device, + }; + + static void __init e680_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/ezx-backlight.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch index ec48d46746..7054ef549b 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-backlight.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-backlight.patch @@ -5,8 +5,8 @@ Index: linux-2.6.21/drivers/video/backlight/Kconfig =================================================================== ---- linux-2.6.21.orig/drivers/video/backlight/Kconfig 2007-05-08 14:19:18.000000000 -0300 -+++ linux-2.6.21/drivers/video/backlight/Kconfig 2007-05-08 14:22:22.000000000 -0300 +--- linux-2.6.21.orig/drivers/video/backlight/Kconfig 2007-06-02 20:03:06.000000000 -0300 ++++ linux-2.6.21/drivers/video/backlight/Kconfig 2007-06-02 20:26:49.000000000 -0300 @@ -63,3 +63,12 @@ help If you have a Frontpath ProGear say Y to enable the @@ -22,8 +22,8 @@ Index: linux-2.6.21/drivers/video/backlight/Kconfig + Index: linux-2.6.21/drivers/video/backlight/Makefile =================================================================== ---- linux-2.6.21.orig/drivers/video/backlight/Makefile 2007-05-08 14:19:18.000000000 -0300 -+++ linux-2.6.21/drivers/video/backlight/Makefile 2007-05-08 14:22:22.000000000 -0300 +--- linux-2.6.21.orig/drivers/video/backlight/Makefile 2007-06-02 20:03:06.000000000 -0300 ++++ linux-2.6.21/drivers/video/backlight/Makefile 2007-06-02 20:26:49.000000000 -0300 @@ -6,3 +6,4 @@ obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o obj-$(CONFIG_BACKLIGHT_LOCOMO) += locomolcd.o @@ -32,7 +32,7 @@ Index: linux-2.6.21/drivers/video/backlight/Makefile Index: linux-2.6.21/drivers/video/backlight/ezx_bl.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/video/backlight/ezx_bl.c 2007-05-08 14:24:16.000000000 -0300 ++++ linux-2.6.21/drivers/video/backlight/ezx_bl.c 2007-06-02 20:26:49.000000000 -0300 @@ -0,0 +1,142 @@ +/* + * Backlight Driver for Motorola A780 and E680(i) GSM Phones. @@ -178,8 +178,8 @@ Index: linux-2.6.21/drivers/video/backlight/ezx_bl.c +MODULE_LICENSE("GPL"); Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-08 14:22:21.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 14:22:22.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 20:19:44.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:26:49.000000000 -0300 @@ -67,6 +67,12 @@ #endif EXPORT_SYMBOL(ezx_backlight_power); @@ -193,10 +193,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c /* SSP */ struct platform_device ezxssp_device = { .name = "ezx-ssp", -@@ -204,6 +210,7 @@ +@@ -179,6 +185,7 @@ + &ezxbp_device, &ezxpcap_device, &ezxemu_device, - &pcap_ts_device, + &ezxbacklight_device, }; diff --git a/packages/linux/linux-ezx-2.6.21/ezx-bp.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch index a8a7e08086..a0b3b61b12 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-bp.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-bp.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-12 20:40:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-14 21:12:37.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 14:46:25.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:03:12.000000000 -0300 @@ -100,9 +100,41 @@ .init = ezx_ohci_init, }; @@ -46,9 +46,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c static int __init ezx_init(void) Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-12 20:40:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-14 21:12:37.000000000 -0300 -@@ -94,6 +94,9 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 14:48:52.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:03:11.000000000 -0300 +@@ -102,6 +102,9 @@ endchoice @@ -61,8 +61,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c 2007-05-12 21:28:07.000000000 -0300 -@@ -0,0 +1,250 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c 2007-06-02 18:26:22.000000000 -0300 +@@ -0,0 +1,249 @@ +/* + * BP handshake code for Motorola EZX phones + * @@ -110,7 +110,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c +{ + if (pxa_gpio_get_value(GPIO_BB_WDI2) == 0) { + DEBUGP("BP request poweroff!\n"); -+ pm_power_off(); ++// pm_power_off(); + } +} + @@ -133,7 +133,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c + pxa_gpio_mode(GPIO_MCU_INT_SW | GPIO_IN); + pxa_gpio_mode(GPIO_BP_RDY | GPIO_IN); + -+ while ( timeout -- ) { ++ while (timeout--) { + if (pxa_gpio_get_value(GPIO_MCU_INT_SW) == 0 + || pxa_gpio_get_value(GPIO_BP_RDY) == 0) { + step ++; @@ -202,7 +202,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c +static irqreturn_t bp_wdi2_handler(int irq, void *dev_id) +{ + DEBUGP("BP request poweroff!\n"); -+ pm_power_off(); ++// pm_power_off(); + return IRQ_HANDLED; +} + @@ -250,7 +250,6 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c + pxa_gpio_set_value(GPIO_BB_RESET, 1); + + check_power_off(); -+ + handshake(); + + return 0; @@ -315,12 +314,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-bp.c + Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-12 20:40:44.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-14 21:12:37.000000000 -0300 -@@ -22,6 +22,7 @@ - obj-$(CONFIG_PXA_EZX_A780) += ezx-a780.o - obj-$(CONFIG_PXA_EZX_E680) += ezx-e680.o +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 14:49:50.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 20:03:11.000000000 -0300 +@@ -24,6 +24,7 @@ obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o + obj-$(CONFIG_PXA_EZX_A1200) += ezx-a1200.o + obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o +obj-$(CONFIG_EZX_BP) += ezx-bp.o # Support for blinky lights diff --git a/packages/linux/linux-ezx-2.6.21/ezx-core.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch index d70b685a0f..c0e9435723 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-core.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-core.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head-xscale.S 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head-xscale.S 2007-06-02 14:46:25.000000000 -0300 @@ -53,3 +53,6 @@ str r1, [r0, #0x18] #endif @@ -11,8 +11,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head-xscale.S +#endif Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 14:48:52.000000000 -0300 @@ -37,6 +37,10 @@ bool "Keith und Koep Trizeps4 DIMM-Module" select PXA27x @@ -24,7 +24,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endchoice if PXA_SHARPSL -@@ -71,6 +75,27 @@ +@@ -71,6 +75,35 @@ endif @@ -45,6 +45,14 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig + bool "Motorola E2 GSM Phone" + select PXA27x + ++config PXA_EZX_A1200 ++ bool "Motorola A1200 GSM Phone" ++ select PXA27x ++ ++config PXA_EZX_E6 ++ bool "Motorola E6 GSM Phone" ++ select PXA27x ++ +endchoice + +endif @@ -52,7 +60,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endmenu config MACH_POODLE -@@ -144,4 +169,5 @@ +@@ -144,4 +177,5 @@ tristate help Enable support for PXA2xx SSP ports @@ -60,9 +68,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endif Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-08 03:43:23.000000000 -0300 -@@ -18,6 +18,10 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 14:49:50.000000000 -0300 +@@ -18,6 +18,12 @@ obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o obj-$(CONFIG_MACH_TOSA) += tosa.o @@ -70,14 +78,16 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile +obj-$(CONFIG_PXA_EZX_A780) += ezx-a780.o +obj-$(CONFIG_PXA_EZX_E680) += ezx-e680.o +obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o ++obj-$(CONFIG_PXA_EZX_A1200) += ezx-a1200.o ++obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o # Support for blinky lights led-y := leds.o Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 03:43:23.000000000 -0300 -@@ -0,0 +1,141 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 14:46:25.000000000 -0300 +@@ -0,0 +1,135 @@ +/* + * ezx.c - Common code for EZX platform. + * @@ -201,12 +211,6 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c + pxa_gpio_mode(GPIO44_BTCTS_MD); + pxa_gpio_mode(GPIO45_BTRTS_MD); + -+ /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ -+ pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); -+ clr_GPIO(GPIO_EMU_MUX1); -+ pxa_gpio_mode(GPIO_EMU_MUX2|GPIO_OUT); -+ clr_GPIO(GPIO_EMU_MUX2); -+ + /* Standard UART */ + pxa_gpio_mode(GPIO46_STRXD_MD); + pxa_gpio_mode(GPIO47_STTXD_MD); @@ -222,7 +226,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-05-08 03:43:23.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx.h 2007-06-02 14:46:25.000000000 -0300 @@ -0,0 +1,225 @@ +/* + * linux/include/asm-arm/arch-pxa/ezx.h @@ -451,8 +455,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx.h + Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-02 14:46:25.000000000 -0300 @@ -849,6 +849,8 @@ #define UP2OCR_HXOE (1 << 17) /* Host Port 2 Transceiver Output Enable */ #define UP2OCR_SEOS (1 << 24) /* Single-Ended Output Select */ @@ -568,8 +572,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h #define PGSR2 __REG(0x40F00028) /* Power Manager GPIO Sleep State Register for GP[84-64] */ Index: linux-2.6.21/arch/arm/boot/compressed/head.S =================================================================== ---- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-06-02 14:46:25.000000000 -0300 @@ -117,6 +117,9 @@ mov r0, r0 .endr @@ -582,8 +586,8 @@ Index: linux-2.6.21/arch/arm/boot/compressed/head.S .word start @ absolute load/run zImage address Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-06-02 14:46:25.000000000 -0300 @@ -14,14 +14,14 @@ #define STUART ((volatile unsigned long *)0x40700000) #define HWUART ((volatile unsigned long *)0x41600000) @@ -605,7 +609,7 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h Index: linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c 2007-05-08 03:43:23.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c 2007-06-02 14:46:25.000000000 -0300 @@ -0,0 +1,126 @@ +/* + * SSP control code for Motorola EZX phones @@ -736,7 +740,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx_ssp.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.h 2007-05-08 03:43:23.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.h 2007-06-02 14:46:25.000000000 -0300 @@ -0,0 +1,9 @@ +#include <asm/arch/ezx.h> + @@ -749,8 +753,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.h + Index: linux-2.6.21/arch/arm/mm/init.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mm/init.c 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/arch/arm/mm/init.c 2007-05-08 03:43:23.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mm/init.c 2007-06-02 14:46:22.000000000 -0300 ++++ linux-2.6.21/arch/arm/mm/init.c 2007-06-02 14:46:25.000000000 -0300 @@ -241,6 +241,10 @@ */ reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, @@ -765,8 +769,8 @@ Index: linux-2.6.21/arch/arm/mm/init.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-05-08 03:46:17.000000000 -0300 -@@ -0,0 +1,82 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c 2007-06-02 14:46:25.000000000 -0300 +@@ -0,0 +1,88 @@ +/* + * ezx-a780.c - Code specific to A780 GSM Phone. + * @@ -836,6 +840,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c + + set_pxa_fb_info(&a780_fb_info); + ++ /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ ++ pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); ++ clr_GPIO(GPIO_EMU_MUX1); ++ pxa_gpio_mode(GPIO_EMU_MUX2|GPIO_OUT); ++ clr_GPIO(GPIO_EMU_MUX2); ++ + platform_add_devices(devices, ARRAY_SIZE(devices)); +} + @@ -852,7 +862,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a780.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-05-08 03:47:56.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c 2007-06-02 14:46:25.000000000 -0300 @@ -0,0 +1,70 @@ +/* + * ezx-e2.c - Code specific to E2 GSM Phone. @@ -901,7 +911,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c + .lccr0 = 0x022008B8, + .lccr3 = 0xC130FF13, + .pxafb_backlight_power = ezx_backlight_power, -+ .pxafb_lcd_power = &pxafb_lcd_power, ++ .pxafb_lcd_power = &ezx_lcd_power, +}; + +static struct platform_device *devices[] __initdata = { @@ -927,8 +937,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e2.c Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-05-08 03:47:41.000000000 -0300 -@@ -0,0 +1,81 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c 2007-06-02 14:46:25.000000000 -0300 +@@ -0,0 +1,87 @@ +/* + * ezx-e680.c - Code specific to E680 GSM Phone. + * @@ -997,6 +1007,12 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c + + set_pxa_fb_info(&e680_fb_info); + ++ /* clear EMU MUX1/MUX2 (low) to close the audio path to EMU */ ++ pxa_gpio_mode(GPIO_EMU_MUX1|GPIO_OUT); ++ clr_GPIO(GPIO_EMU_MUX1); ++ pxa_gpio_mode(GPIO_EMU_MUX2|GPIO_OUT); ++ clr_GPIO(GPIO_EMU_MUX2); ++ + platform_add_devices(devices, ARRAY_SIZE(devices)); +} + @@ -1010,3 +1026,153 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e680.c + .timer = &pxa_timer, + .init_machine = e680_init, +MACHINE_END +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-a1200.c 2007-06-02 14:46:25.000000000 -0300 +@@ -0,0 +1,70 @@ ++/* ++ * ezx-a1200.c - Code specific to A1200 GSM Phone. ++ * ++ * Copyright (c) 2007 OpenEZX Team (www.openezx.org) ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/fb.h> ++ ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/arch/pxafb.h> ++ ++#include "generic.h" ++#include "ezx.h" ++ ++extern void ezx_lcd_power(int, struct fb_var_screeninfo *); ++extern void ezx_backlight_power(int); ++ ++static struct pxafb_mode_info mode_a1200 = { ++ .pixclock = 192308, ++ .xres = 240, ++ .yres = 320, ++ .bpp = 8, ++ .hsync_len = 10, ++ .left_margin = 20, ++ .right_margin = 10, ++ .vsync_len = 2, ++ .upper_margin = 3, ++ .lower_margin = 2, ++ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, ++}; ++ ++static struct pxafb_mach_info a1200_fb_info = { ++ .modes = &mode_a1200, ++ .num_modes = 1, ++ .lccr0 = 0x022008B8, ++ .lccr3 = 0xC130FF13, ++ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_lcd_power = &ezx_lcd_power, ++}; ++ ++static struct platform_device *devices[] __initdata = { ++}; ++ ++static void __init a1200_init(void) ++{ ++ set_pxa_fb_info(&a1200_fb_info); ++ ++ platform_add_devices(devices, ARRAY_SIZE(devices)); ++} ++ ++MACHINE_START(EZX, "Motorola Ezx Platform") ++ /* Maintainer: OpenEZX Team (www.openezx.org) */ ++ .phys_io = 0x40000000, ++ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, ++ .boot_params = 0xa0000100, ++ .map_io = pxa_map_io, ++ .init_irq = pxa_init_irq, ++ .timer = &pxa_timer, ++ .init_machine = a1200_init, ++MACHINE_END +Index: linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-e6.c 2007-06-02 14:48:08.000000000 -0300 +@@ -0,0 +1,70 @@ ++/* ++ * ezx-e6.c - Code specific to E6 GSM Phone. ++ * ++ * Copyright (c) 2007 OpenEZX Team (www.openezx.org) ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License version 2 as ++ * published by the Free Software Foundation. ++ * ++ */ ++ ++#include <linux/kernel.h> ++#include <linux/init.h> ++#include <linux/platform_device.h> ++#include <linux/fb.h> ++ ++#include <asm/mach-types.h> ++#include <asm/mach/arch.h> ++#include <asm/arch/pxa-regs.h> ++#include <asm/arch/pxafb.h> ++ ++#include "generic.h" ++#include "ezx.h" ++ ++extern void ezx_lcd_power(int, struct fb_var_screeninfo *); ++extern void ezx_backlight_power(int); ++ ++static struct pxafb_mode_info mode_e6 = { ++ .pixclock = 192308, ++ .xres = 240, ++ .yres = 320, ++ .bpp = 8, ++ .hsync_len = 10, ++ .left_margin = 20, ++ .right_margin = 10, ++ .vsync_len = 2, ++ .upper_margin = 3, ++ .lower_margin = 2, ++ .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, ++}; ++ ++static struct pxafb_mach_info e6_fb_info = { ++ .modes = &mode_e6, ++ .num_modes = 1, ++ .lccr0 = 0x022008B8, ++ .lccr3 = 0xC130FF13, ++ .pxafb_backlight_power = ezx_backlight_power, ++ .pxafb_lcd_power = &ezx_lcd_power, ++}; ++ ++static struct platform_device *devices[] __initdata = { ++}; ++ ++static void __init e6_init(void) ++{ ++ set_pxa_fb_info(&e6_fb_info); ++ ++ platform_add_devices(devices, ARRAY_SIZE(devices)); ++} ++ ++MACHINE_START(EZX, "Motorola Ezx Platform") ++ /* Maintainer: OpenEZX Team (www.openezx.org) */ ++ .phys_io = 0x40000000, ++ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, ++ .boot_params = 0xa0000100, ++ .map_io = pxa_map_io, ++ .init_irq = pxa_init_irq, ++ .timer = &pxa_timer, ++ .init_machine = e6_init, ++MACHINE_END diff --git a/packages/linux/linux-ezx-2.6.21/ezx-emu.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch index 7f089315a5..94581d4531 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-emu.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-emu.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-05-08 02:31:16.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c 2007-06-02 20:32:34.000000000 -0300 @@ -0,0 +1,215 @@ +/* + * EMU Driver for Motorola EZX phones @@ -220,8 +220,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-emu.c +MODULE_LICENSE("GPL"); Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-08 02:28:47.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-08 02:31:16.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:32.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-02 20:32:34.000000000 -0300 @@ -73,6 +73,7 @@ endchoice @@ -230,9 +230,9 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endif if PXA_EZX -@@ -100,6 +101,28 @@ - config EZX_PCAP - bool "PCAP Support" +@@ -117,6 +118,28 @@ + config EZX_MCI_TF + bool +config EZX_EMU + bool "Motorola Enchanced Mini Usb" @@ -261,8 +261,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig endmenu Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-08 02:28:47.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 02:31:16.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-02 20:32:28.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-02 20:32:34.000000000 -0300 @@ -150,11 +150,35 @@ .resource = ezxpcap_resources, }; @@ -301,10 +301,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c /* PM */ Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-08 02:28:47.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-08 02:31:16.000000000 -0300 -@@ -24,6 +24,7 @@ - obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-02 20:32:28.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-02 20:32:34.000000000 -0300 +@@ -26,6 +26,7 @@ + obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o obj-$(CONFIG_EZX_BP) += ezx-bp.o obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o +obj-$(CONFIG_EZX_EMU) += ezx-emu.o diff --git a/packages/linux/linux-ezx-2.6.21/patches/ezx-enable-stuart.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-enable-stuart.patch new file mode 100755 index 0000000000..6f1a2c1ba4 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-enable-stuart.patch @@ -0,0 +1,99 @@ +Index: linux-2.6.21/arch/arm/boot/compressed/head.S +=================================================================== +--- linux-2.6.21.orig/arch/arm/boot/compressed/head.S 2007-05-19 11:22:56.000000000 -0300 ++++ linux-2.6.21/arch/arm/boot/compressed/head.S 2007-05-19 11:50:29.000000000 -0300 +@@ -10,6 +10,7 @@ + */ + #include <linux/linkage.h> + ++#define DEBUG + /* + * Debugging stuff + * +@@ -117,6 +118,8 @@ + mov r0, r0 + .endr + ++ inituart r10, r11 ++ + mov r1, #0x300 @ mach_id 0x363 is official EZX + orr r1, r1, #0x63 @ bootloader JUMP doesn't set r1 + +Index: linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h +=================================================================== +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/uncompress.h 2007-05-19 11:22:56.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/uncompress.h 2007-05-19 11:30:38.000000000 -0300 +@@ -19,9 +19,9 @@ + + static inline void putc(char c) + { +-/* while (!(UART[5] & 0x40)) ++ while (!(UART[5] & 0x40)) + barrier(); +- UART[0] = c;*/ ++ UART[0] = c; + } + + /* +Index: linux-2.6.21/include/asm-arm/arch-pxa/debug-macro.S +=================================================================== +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/debug-macro.S 2007-05-19 11:30:54.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/debug-macro.S 2007-05-19 11:49:35.000000000 -0300 +@@ -14,11 +14,52 @@ + #include "hardware.h" + + .macro addruart,rx +- mrc p15, 0, \rx, c1, c0 +- tst \rx, #1 @ MMU enabled? +- moveq \rx, #0x40000000 @ physical +- movne \rx, #io_p2v(0x40000000) @ virtual +- orr \rx, \rx, #0x00100000 ++@ mrc p15, 0, \rx, c1, c0 ++@ tst \rx, #1 @ MMU enabled? ++ mov \rx, #0x40000000 ++@ moveq \rx, #0x40000000 @ physical ++@ movne \rx, #io_p2v(0x40000000) @ virtual ++ orr \rx, \rx, #0x00700000 ++ .endm ++ ++ .macro inituart,rd,rx ++ ldr \rd, =0x41300004 @ CKEN ++ ldr \rx, [\rd] ++ orr \rx, \rx, #0x20 ++ str \rx, [\rd] ++ ++ ldr \rd, =0x40E0005C ++ ldr \rx, [\rd] ++ bic \rx, \rx, #0xF0000000 @ clear GPIO46/47 config ++ orr \rx, \rx, #0x60000000 @ set GPIO46: AF2, GPIO47: AF1 ++ str \rx, [\rd] ++ ldr \rd, =0x40E00010 ++ ldr \rx, [\rd] ++ bic \rx, \rx, #0x0000c000 @ clear GPIO46/47 direction ++ orr \rx, \rx, #0x00008000 @ set GPIO 47 out, 46 in ++ str \rx, [\rd] ++ ++ addruart \rd ++ mov \rx, #0x83 @ DLAB = 1 ++ strb \rx, [\rd, #0x0c] ++ ++ mov \rx, #0x08 @ Divisor 8 => 115200 bps ++ strb \rx, [\rd, #0x00] ++ ++ mov \rx, #0x00 ++ strb \rx, [\rd, #0x04] @ Divisor high = 0 ++ ++ mov \rx, #0x03 ++ strb \rx, [\rd, #0x0c] @ DLAB = 0, n81 ++ ++ mov \rx, #0x00 ++ strb \rx, [\rd, #0x10] @ MCR = 0 ++ ++ mov \rx, #0x00 ++ strb \rx, [\rd, #0x28] @ disable autobaud ++ ++ mov \rx, #0x40 ++ strb \rx, [\rd, #0x04] @ IER UUE (UART Enable) + .endm + + #define UART_SHIFT 2 diff --git a/packages/linux/linux-ezx-2.6.21/ezx-mtd-map.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch index 7ef42f0ffc..7ef42f0ffc 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-mtd-map.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-mtd-map.patch diff --git a/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch index 41903260e6..6af6317a6e 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-pcap.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pcap.patch @@ -1,19 +1,17 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-05-08 16:13:29.000000000 -0300 -@@ -0,0 +1,428 @@ ++++ linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c 2007-06-07 21:39:37.000000000 -0300 +@@ -0,0 +1,472 @@ +/* Driver for Motorola PCAP2 as present in EZX phones + * + * This is both a SPI device driver for PCAP itself, as well as + * an IRQ demultiplexer for handling PCAP generated events such as + * headphone jack sense by downstream drivers. + * -+ * (C) 2006 by Harald Welte <laforge@openezx.org> ++ * Copyright (C) 2006 Harald Welte <laforge@openezx.org> ++ * Copyright (C) 2007 Daniel Ribeiro <drwyrm@gmail.com> + * -+ * 2007, April - Daniel Ribeiro <drwyrm@gmail.com> -+ * Altered to work with corgi's SSP code. -+ * Fixed irq handling routine. + */ + +#include <linux/module.h> @@ -21,6 +19,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c +#include <linux/platform_device.h> +#include <linux/interrupt.h> +#include <linux/kernel_stat.h> ++#include <linux/proc_fs.h> + +#include <asm/hardware.h> +#include <asm/mach-types.h> @@ -41,7 +40,6 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c + +extern unsigned long ezx_ssp_pcap_putget(ulong); + -+ +int ezx_pcap_write(u_int8_t reg_num, u_int32_t value) +{ + value &= SSP_PCAP_REGISTER_VALUE_MASK; @@ -107,6 +105,47 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c +} +EXPORT_SYMBOL_GPL(ezx_pcap_read_bit); + ++/* /proc/pcap support */ ++#ifdef CONFIG_PROC_FS ++ ++static struct proc_dir_entry *proc_pcap; ++ ++char *pcap_registers[] = { ++ "ISR\t", "MSR\t", "PSTAT\t", NULL, NULL, NULL, "VREG2\t", "VREG\t", ++ "BATT_DAC", "ADC1\t", "ADC2\t", "AUD_CODEC", "AUD_RX_AMPS", ++ "AUD_ST_DAC", NULL, NULL, NULL, NULL, NULL, NULL, "BUSCTRL\t", ++ "PERIPH\t", NULL, NULL, "LOWPWR\t", NULL, "AUD_TX_AMPS", "GP\t", ++ NULL, NULL, NULL, NULL, NULL ++}; ++ ++static int pcap_read_proc(char *page, char **start, off_t off, int count, ++ int *eof, void *data_unused) ++{ ++ int len = 0; ++ u_int8_t r; ++ u_int32_t v; ++ off_t begin = 0; ++ ++ for(r=0;r<32;r++) { ++ if (pcap_registers[r] == NULL) ++ continue; ++ ezx_pcap_read(r, &v); ++ len += sprintf(page+len, "%s\t%08X\n", pcap_registers[r], v); ++ if(len + begin > off + count) ++ goto done; ++ if(len + begin < off) { ++ begin += len; ++ len = 0; ++ } ++ } ++ *eof = 1; ++done: ++ if (off >= len+begin) ++ return 0; ++ *start = page + (off-begin); ++ return ((count < begin+len-off) ? count : begin+len-off); ++} ++#endif + +void ezx_pcap_vibrator_level(u_int32_t value) +{ @@ -131,7 +170,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c + ezx_pcap_write(SSP_PCAP_ADJ_ISR_REGISTER, PCAP_CLEAR_INTERRUPT_REGISTER); + + ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUD_RX_AMPS_A1CTRL, 1); -+ ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3); ++// ezx_pcap_vibrator_level(PCAP_VIBRATOR_VOLTAGE_LEVEL3); + + /* set SW1 sleep to keep SW1 1.3v in sync mode */ + ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_SW1_MODE10, 0); @@ -170,7 +209,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c + ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_LOWPWR_CTRL_VAUX2_LOWPWR, 1); + ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 1); + -+ PGSR(GPIO34_TXENB) |= GPIO_bit(GPIO34_TXENB); ++// PGSR(GPIO34_TXENB) |= GPIO_bit(GPIO34_TXENB); + + return 0; +} @@ -180,10 +219,10 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c +{ + unsigned int tmp; + ezx_pcap_read(SSP_PCAP_ADJ_AUX_VREG_REGISTER, &tmp); -+#if defined(CONFIG_PXA_EZX_E680) ++#if defined(CONFIG_EZX_MCI_SD) + tmp &= 0xffffff9f; /* zero all vaux2 bits */ + tmp |= (bits & 0x3) << 5; -+#elif defined(CONFIG_PXA_EZX_A780) ++#elif defined(CONFIG_EZX_MCI_TF) + tmp &= 0xfffff0ff; /* zero all vaux3 bits */ + tmp |= (bits & 0xf) << 8; +#endif @@ -193,19 +232,13 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c + +int ezx_pcap_mmcsd_power(int on) +{ -+ if (on) { -+#if defined(CONFIG_PXA_EZX_E680) -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 1); -+#else -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, 1); ++ if (on > 0) on = 1; ++ else on = 0; ++#if defined(CONFIG_EZX_MCI_SD) ++ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, on); ++#elif defined(CONFIG_EZX_MCI_TF) ++ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, on); +#endif -+ } else { -+#if defined(CONFIG_PXA_EZX_E680) -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX2_EN, 0); -+#else -+ return ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_AUX_VREG_VAUX3_EN, 0); -+#endif -+ } +} +EXPORT_SYMBOL_GPL(ezx_pcap_mmcsd_power); + @@ -416,11 +449,22 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c +static int __init ezx_pcap_init(void) +{ + DEBUGP("ezx_pcap_init entered\n"); ++ ++#ifdef CONFIG_PROC_FS ++ if((proc_pcap = create_proc_entry("pcap", 0, NULL))) ++ proc_pcap->read_proc = pcap_read_proc; ++#endif ++ + return platform_driver_register(&ezxpcap_driver); +} + +static void __exit ezx_pcap_exit(void) +{ ++#ifdef CONFIG_PROC_FS ++ if (proc_pcap) ++ remove_proc_entry("pcap", NULL); ++#endif ++ + return platform_driver_unregister(&ezxpcap_driver); +} + @@ -434,7 +478,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx-pcap.c Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-05-08 04:03:42.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h 2007-06-03 11:14:40.000000000 -0300 @@ -0,0 +1,665 @@ +/* (c) Copyright Motorola Beijing 2002 all rights reserved. + @@ -1103,8 +1147,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/ezx-pcap.h +#endif Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-05-08 03:43:19.000000000 -0300 -+++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-05-08 04:03:42.000000000 -0300 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/irqs.h 2007-06-03 02:17:12.000000000 -0300 ++++ linux-2.6.21/include/asm-arm/arch-pxa/irqs.h 2007-06-03 11:14:40.000000000 -0300 @@ -176,7 +176,8 @@ #define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1) #elif defined(CONFIG_ARCH_LUBBOCK) || \ @@ -1131,8 +1175,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/irqs.h +#define EZX_IRQ_ADCDONE2 EZX_IRQ(6) /* TS x/y ADC ready */ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-08 04:03:40.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 16:29:06.000000000 -0300 +--- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-06-03 11:14:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-06-09 14:57:44.000000000 -0300 @@ -131,11 +131,30 @@ .resource = ezxbp_resources, }; @@ -1166,25 +1210,31 @@ Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c /* PM */ Index: linux-2.6.21/arch/arm/mach-pxa/Kconfig =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-05-08 04:03:37.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-05-08 16:29:06.000000000 -0300 -@@ -97,6 +97,9 @@ +--- linux-2.6.21.orig/arch/arm/mach-pxa/Kconfig 2007-06-03 11:14:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Kconfig 2007-06-09 14:57:46.000000000 -0300 +@@ -105,6 +105,15 @@ config EZX_BP bool "BP Control code for EZX Platform" +config EZX_PCAP + bool "PCAP Support" + ++config EZX_MCI_SD ++ bool ++ ++config EZX_MCI_TF ++ bool ++ endif endmenu Index: linux-2.6.21/arch/arm/mach-pxa/Makefile =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-05-08 04:03:37.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-05-08 16:29:06.000000000 -0300 -@@ -23,6 +23,7 @@ - obj-$(CONFIG_PXA_EZX_E680) += ezx-e680.o - obj-$(CONFIG_PXA_EZX_E2) += ezx-e2.o +--- linux-2.6.21.orig/arch/arm/mach-pxa/Makefile 2007-06-03 11:14:40.000000000 -0300 ++++ linux-2.6.21/arch/arm/mach-pxa/Makefile 2007-06-09 14:57:44.000000000 -0300 +@@ -25,6 +25,7 @@ + obj-$(CONFIG_PXA_EZX_A1200) += ezx-a1200.o + obj-$(CONFIG_PXA_EZX_E6) += ezx-e6.o obj-$(CONFIG_EZX_BP) += ezx-bp.o +obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o diff --git a/packages/linux/linux-ezx-2.6.21/ezx-pm.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch index 85b6f5c15d..85b6f5c15d 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/ezx-pm.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-pm.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/ezx-serial-bug-workaround.patch b/packages/linux/linux-ezx-2.6.21/patches/ezx-serial-bug-workaround.patch index 9f30cc35fe..9f30cc35fe 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/ezx-serial-bug-workaround.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/ezx-serial-bug-workaround.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-fix-init-errorpath.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-init-errorpath.patch index 716ef86fd1..716ef86fd1 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-fix-init-errorpath.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-init-errorpath.patch diff --git a/packages/linux/linux-ezx-2.6.21/mux-fix-makefile.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-makefile.patch index 31452da847..31452da847 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/mux-fix-makefile.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-makefile.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-fix-tty-driver.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-tty-driver.patch index 2e1aabd952..2e1aabd952 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-fix-tty-driver.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-fix-tty-driver.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-fix.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-fix.patch index b820762f41..b820762f41 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-fix.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-fix.patch diff --git a/packages/linux/linux-ezx-2.6.21/mux-ifdef-ezx-features.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-ifdef-ezx-features.patch index e7935a2598..e7935a2598 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/mux-ifdef-ezx-features.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-ifdef-ezx-features.patch diff --git a/packages/linux/linux-ezx-2.6.21/mux-linux-2.6.21-fix.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-linux-2.6.21-fix.patch index 8d5299e3bd..8d5299e3bd 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/mux-linux-2.6.21-fix.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-linux-2.6.21-fix.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-remove-flipbuffers.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-flipbuffers.patch index d4781f9fc7..d4781f9fc7 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-remove-flipbuffers.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-flipbuffers.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-remove-get_halted_bit.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-get_halted_bit.patch index 0ebe27d03b..0ebe27d03b 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-remove-get_halted_bit.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-get_halted_bit.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux-remove-usbh_finished_resume.patch b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-usbh_finished_resume.patch index c415ded428..c415ded428 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux-remove-usbh_finished_resume.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux-remove-usbh_finished_resume.patch diff --git a/packages/linux/linux-ezx-2.6.21/mux_cli.patch b/packages/linux/linux-ezx-2.6.21/patches/mux_cli.patch index b3974a5996..b3974a5996 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/mux_cli.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux_cli.patch diff --git a/packages/linux/linux-ezx-2.6.20.7/mux_debug.patch b/packages/linux/linux-ezx-2.6.21/patches/mux_debug.patch index 58cb25a0b6..58cb25a0b6 100644..100755 --- a/packages/linux/linux-ezx-2.6.20.7/mux_debug.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/mux_debug.patch diff --git a/packages/linux/linux-ezx-2.6.21/patches/patch-2.6.21.4 b/packages/linux/linux-ezx-2.6.21/patches/patch-2.6.21.4 new file mode 100644 index 0000000000..2c2ed60433 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/patch-2.6.21.4 @@ -0,0 +1,2816 @@ +diff --git a/Makefile b/Makefile +index d970cb1..e5c5531 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,7 +1,7 @@ + VERSION = 2 + PATCHLEVEL = 6 + SUBLEVEL = 21 +-EXTRAVERSION = ++EXTRAVERSION = .4 + NAME = Nocturnal Monster Puppy + + # *DOCUMENTATION* +diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c +index 2409560..7ed141f 100644 +--- a/arch/arm/kernel/traps.c ++++ b/arch/arm/kernel/traps.c +@@ -273,6 +273,7 @@ asmlinkage void do_undefinstr(struct pt_regs *regs) + struct undef_hook *hook; + siginfo_t info; + void __user *pc; ++ unsigned long flags; + + /* + * According to the ARM ARM, PC is 2 or 4 bytes ahead, +@@ -291,7 +292,7 @@ asmlinkage void do_undefinstr(struct pt_regs *regs) + get_user(instr, (u32 __user *)pc); + } + +- spin_lock_irq(&undef_lock); ++ spin_lock_irqsave(&undef_lock, flags); + list_for_each_entry(hook, &undef_hook, node) { + if ((instr & hook->instr_mask) == hook->instr_val && + (regs->ARM_cpsr & hook->cpsr_mask) == hook->cpsr_val) { +@@ -301,7 +302,7 @@ asmlinkage void do_undefinstr(struct pt_regs *regs) + } + } + } +- spin_unlock_irq(&undef_lock); ++ spin_unlock_irqrestore(&undef_lock, flags); + + #ifdef CONFIG_DEBUG_USER + if (user_debug & UDBG_UNDEFINED) { +diff --git a/arch/arm/mach-iop13xx/pci.c b/arch/arm/mach-iop13xx/pci.c +index 89ec70e..d907a2a 100644 +--- a/arch/arm/mach-iop13xx/pci.c ++++ b/arch/arm/mach-iop13xx/pci.c +@@ -1023,7 +1023,7 @@ int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) + << IOP13XX_ATUX_PCIXSR_FUNC_NUM; + __raw_writel(pcixsr, IOP13XX_ATUX_PCIXSR); + +- res[0].start = IOP13XX_PCIX_LOWER_IO_PA; ++ res[0].start = IOP13XX_PCIX_LOWER_IO_PA + IOP13XX_PCIX_IO_BUS_OFFSET; + res[0].end = IOP13XX_PCIX_UPPER_IO_PA; + res[0].name = "IQ81340 ATUX PCI I/O Space"; + res[0].flags = IORESOURCE_IO; +@@ -1033,7 +1033,7 @@ int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) + res[1].name = "IQ81340 ATUX PCI Memory Space"; + res[1].flags = IORESOURCE_MEM; + sys->mem_offset = IOP13XX_PCIX_MEM_OFFSET; +- sys->io_offset = IOP13XX_PCIX_IO_OFFSET; ++ sys->io_offset = IOP13XX_PCIX_LOWER_IO_PA; + break; + case IOP13XX_INIT_ATU_ATUE: + /* Note: the function number field in the PCSR is ro */ +@@ -1044,7 +1044,7 @@ int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) + + __raw_writel(pcsr, IOP13XX_ATUE_PCSR); + +- res[0].start = IOP13XX_PCIE_LOWER_IO_PA; ++ res[0].start = IOP13XX_PCIE_LOWER_IO_PA + IOP13XX_PCIE_IO_BUS_OFFSET; + res[0].end = IOP13XX_PCIE_UPPER_IO_PA; + res[0].name = "IQ81340 ATUE PCI I/O Space"; + res[0].flags = IORESOURCE_IO; +@@ -1054,7 +1054,7 @@ int iop13xx_pci_setup(int nr, struct pci_sys_data *sys) + res[1].name = "IQ81340 ATUE PCI Memory Space"; + res[1].flags = IORESOURCE_MEM; + sys->mem_offset = IOP13XX_PCIE_MEM_OFFSET; +- sys->io_offset = IOP13XX_PCIE_IO_OFFSET; ++ sys->io_offset = IOP13XX_PCIE_LOWER_IO_PA; + sys->map_irq = iop13xx_pcie_map_irq; + break; + default: +diff --git a/arch/arm/plat-iop/time.c b/arch/arm/plat-iop/time.c +index 16300ad..0cc26da 100644 +--- a/arch/arm/plat-iop/time.c ++++ b/arch/arm/plat-iop/time.c +@@ -32,22 +32,22 @@ static unsigned long next_jiffy_time; + + unsigned long iop_gettimeoffset(void) + { +- unsigned long offset, temp1, temp2; ++ unsigned long offset, temp; + + /* enable cp6, if necessary, to avoid taking the overhead of an + * undefined instruction trap + */ + asm volatile ( + "mrc p15, 0, %0, c15, c1, 0\n\t" +- "ands %1, %0, #(1 << 6)\n\t" ++ "tst %0, #(1 << 6)\n\t" + "orreq %0, %0, #(1 << 6)\n\t" + "mcreq p15, 0, %0, c15, c1, 0\n\t" +-#ifdef CONFIG_XSCALE ++#ifdef CONFIG_CPU_XSCALE + "mrceq p15, 0, %0, c15, c1, 0\n\t" + "moveq %0, %0\n\t" + "subeq pc, pc, #4\n\t" + #endif +- : "=r"(temp1), "=r"(temp2) : : "cc"); ++ : "=r"(temp) : : "cc"); + + offset = next_jiffy_time - read_tcr1(); + +diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c +index 837b041..ca3e1d3 100644 +--- a/arch/i386/kernel/cpu/cpufreq/powernow-k7.c ++++ b/arch/i386/kernel/cpu/cpufreq/powernow-k7.c +@@ -341,15 +341,17 @@ static int powernow_acpi_init(void) + pc.val = (unsigned long) acpi_processor_perf->states[0].control; + for (i = 0; i < number_scales; i++) { + u8 fid, vid; +- unsigned int speed; ++ struct acpi_processor_px *state = ++ &acpi_processor_perf->states[i]; ++ unsigned int speed, speed_mhz; + +- pc.val = (unsigned long) acpi_processor_perf->states[i].control; ++ pc.val = (unsigned long) state->control; + dprintk ("acpi: P%d: %d MHz %d mW %d uS control %08x SGTC %d\n", + i, +- (u32) acpi_processor_perf->states[i].core_frequency, +- (u32) acpi_processor_perf->states[i].power, +- (u32) acpi_processor_perf->states[i].transition_latency, +- (u32) acpi_processor_perf->states[i].control, ++ (u32) state->core_frequency, ++ (u32) state->power, ++ (u32) state->transition_latency, ++ (u32) state->control, + pc.bits.sgtc); + + vid = pc.bits.vid; +@@ -360,6 +362,18 @@ static int powernow_acpi_init(void) + powernow_table[i].index |= (vid << 8); /* upper 8 bits */ + + speed = powernow_table[i].frequency; ++ speed_mhz = speed / 1000; ++ ++ /* processor_perflib will multiply the MHz value by 1000 to ++ * get a KHz value (e.g. 1266000). However, powernow-k7 works ++ * with true KHz values (e.g. 1266768). To ensure that all ++ * powernow frequencies are available, we must ensure that ++ * ACPI doesn't restrict them, so we round up the MHz value ++ * to ensure that perflib's computed KHz value is greater than ++ * or equal to powernow's KHz value. ++ */ ++ if (speed % 1000 > 0) ++ speed_mhz++; + + if ((fid_codes[fid] % 10)==5) { + if (have_a0 == 1) +@@ -368,10 +382,16 @@ static int powernow_acpi_init(void) + + dprintk (" FID: 0x%x (%d.%dx [%dMHz]) " + "VID: 0x%x (%d.%03dV)\n", fid, fid_codes[fid] / 10, +- fid_codes[fid] % 10, speed/1000, vid, ++ fid_codes[fid] % 10, speed_mhz, vid, + mobile_vid_table[vid]/1000, + mobile_vid_table[vid]%1000); + ++ if (state->core_frequency != speed_mhz) { ++ state->core_frequency = speed_mhz; ++ dprintk(" Corrected ACPI frequency to %d\n", ++ speed_mhz); ++ } ++ + if (latency < pc.bits.sgtc) + latency = pc.bits.sgtc; + +@@ -602,7 +622,7 @@ static int __init powernow_cpu_init (struct cpufreq_policy *policy) + result = powernow_acpi_init(); + if (result) { + printk (KERN_INFO PFX "ACPI and legacy methods failed\n"); +- printk (KERN_INFO PFX "See http://www.codemonkey.org.uk/projects/cpufreq/powernow-k7.shtml\n"); ++ printk (KERN_INFO PFX "See http://www.codemonkey.org.uk/projects/cpufreq/powernow-k7.html\n"); + } + } else { + /* SGTC use the bus clock as timer */ +diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +index fe3b670..e295d87 100644 +--- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.c ++++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.c +@@ -521,7 +521,7 @@ static int check_supported_cpu(unsigned int cpu) + + if ((eax & CPUID_XFAM) == CPUID_XFAM_K8) { + if (((eax & CPUID_USE_XFAM_XMOD) != CPUID_USE_XFAM_XMOD) || +- ((eax & CPUID_XMOD) > CPUID_XMOD_REV_G)) { ++ ((eax & CPUID_XMOD) > CPUID_XMOD_REV_MASK)) { + printk(KERN_INFO PFX "Processor cpuid %x not supported\n", eax); + goto out; + } +diff --git a/arch/i386/kernel/cpu/cpufreq/powernow-k8.h b/arch/i386/kernel/cpu/cpufreq/powernow-k8.h +index 0fb2a30..575541f 100644 +--- a/arch/i386/kernel/cpu/cpufreq/powernow-k8.h ++++ b/arch/i386/kernel/cpu/cpufreq/powernow-k8.h +@@ -46,8 +46,8 @@ struct powernow_k8_data { + #define CPUID_XFAM 0x0ff00000 /* extended family */ + #define CPUID_XFAM_K8 0 + #define CPUID_XMOD 0x000f0000 /* extended model */ +-#define CPUID_XMOD_REV_G 0x00060000 +-#define CPUID_XFAM_10H 0x00100000 /* family 0x10 */ ++#define CPUID_XMOD_REV_MASK 0x00080000 ++#define CPUID_XFAM_10H 0x00100000 /* family 0x10 */ + #define CPUID_USE_XFAM_XMOD 0x00000f00 + #define CPUID_GET_MAX_CAPABILITIES 0x80000000 + #define CPUID_FREQ_VOLT_CAPABILITIES 0x80000007 +diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c +index fb9bf1e..f56569f 100644 +--- a/arch/sparc64/kernel/of_device.c ++++ b/arch/sparc64/kernel/of_device.c +@@ -508,6 +508,13 @@ static int __init build_one_resource(struct device_node *parent, + return 0; + } + ++ /* When we miss an I/O space match on PCI, just pass it up ++ * to the next PCI bridge and/or controller. ++ */ ++ if (!strcmp(bus->name, "pci") && ++ (addr[0] & 0x03000000) == 0x01000000) ++ return 0; ++ + return 1; + } + +diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c +index 0917c24..3494adf 100644 +--- a/arch/sparc64/kernel/prom.c ++++ b/arch/sparc64/kernel/prom.c +@@ -1555,10 +1555,21 @@ static struct device_node * __init create_node(phandle node, struct device_node + + static struct device_node * __init build_tree(struct device_node *parent, phandle node, struct device_node ***nextp) + { ++ struct device_node *ret = NULL, *prev_sibling = NULL; + struct device_node *dp; + +- dp = create_node(node, parent); +- if (dp) { ++ while (1) { ++ dp = create_node(node, parent); ++ if (!dp) ++ break; ++ ++ if (prev_sibling) ++ prev_sibling->sibling = dp; ++ ++ if (!ret) ++ ret = dp; ++ prev_sibling = dp; ++ + *(*nextp) = dp; + *nextp = &dp->allnext; + +@@ -1567,10 +1578,10 @@ static struct device_node * __init build_tree(struct device_node *parent, phandl + + dp->child = build_tree(dp, prom_getchild(node), nextp); + +- dp->sibling = build_tree(parent, prom_getsibling(node), nextp); ++ node = prom_getsibling(node); + } + +- return dp; ++ return ret; + } + + void __init prom_build_devicetree(void) +diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c +index fc99f7b..8ad7bdb 100644 +--- a/arch/sparc64/kernel/smp.c ++++ b/arch/sparc64/kernel/smp.c +@@ -566,6 +566,9 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t + unsigned long flags, status; + int cnt, retries, this_cpu, prev_sent, i; + ++ if (cpus_empty(mask)) ++ return; ++ + /* We have to do this whole thing with interrupts fully disabled. + * Otherwise if we send an xcall from interrupt context it will + * corrupt both our mondo block and cpu list state. +diff --git a/arch/x86_64/kernel/vsyscall.c b/arch/x86_64/kernel/vsyscall.c +index b43c698..fc9f042 100644 +--- a/arch/x86_64/kernel/vsyscall.c ++++ b/arch/x86_64/kernel/vsyscall.c +@@ -132,7 +132,7 @@ static __always_inline void do_vgettimeofday(struct timeval * tv) + + /* convert to usecs and add to timespec: */ + tv->tv_usec += nsec_delta / NSEC_PER_USEC; +- while (tv->tv_usec > USEC_PER_SEC) { ++ while (tv->tv_usec >= USEC_PER_SEC) { + tv->tv_sec += 1; + tv->tv_usec -= USEC_PER_SEC; + } +diff --git a/crypto/api.c b/crypto/api.c +index 55af8bb..33734fd 100644 +--- a/crypto/api.c ++++ b/crypto/api.c +@@ -48,8 +48,10 @@ EXPORT_SYMBOL_GPL(crypto_mod_get); + + void crypto_mod_put(struct crypto_alg *alg) + { ++ struct module *module = alg->cra_module; ++ + crypto_alg_put(alg); +- module_put(alg->cra_module); ++ module_put(module); + } + EXPORT_SYMBOL_GPL(crypto_mod_put); + +diff --git a/drivers/acpi/tables/tbfadt.c b/drivers/acpi/tables/tbfadt.c +index 807c711..d341491 100644 +--- a/drivers/acpi/tables/tbfadt.c ++++ b/drivers/acpi/tables/tbfadt.c +@@ -347,6 +347,20 @@ static void acpi_tb_convert_fadt(void) + acpi_gbl_xpm1b_enable.space_id = acpi_gbl_FADT.xpm1a_event_block.space_id; + + } ++ /* ++ * _CST object and C States change notification start with ++ * ACPI 2.0 (FADT r3). Although the field should be Reserved ++ * and 0 before then, some pre-r3 FADT set this field and ++ * it results in SMM-related boot failures. For them, clear it. ++ */ ++ if ((acpi_gbl_FADT.header.revision < 3) && ++ (acpi_gbl_FADT.cst_control != 0)) { ++ ACPI_WARNING((AE_INFO, ++ "Ignoring BIOS FADT r%u C-state control", ++ acpi_gbl_FADT.header.revision)); ++ acpi_gbl_FADT.cst_control = 0; ++ } ++ + } + + /****************************************************************************** +diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c +index 2ffcca0..4d63974 100644 +--- a/drivers/ata/libata-sff.c ++++ b/drivers/ata/libata-sff.c +@@ -557,12 +557,30 @@ ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int + int i, p = 0; + void __iomem * const *iomap; + ++ /* Discard disabled ports. Some controllers show their ++ unused channels this way */ ++ if (ata_resources_present(pdev, 0) == 0) ++ ports &= ~ATA_PORT_PRIMARY; ++ if (ata_resources_present(pdev, 1) == 0) ++ ports &= ~ATA_PORT_SECONDARY; ++ + /* iomap BARs */ +- for (i = 0; i < 4; i++) { +- if (pcim_iomap(pdev, i, 0) == NULL) { +- dev_printk(KERN_ERR, &pdev->dev, +- "failed to iomap PCI BAR %d\n", i); +- return NULL; ++ if (ports & ATA_PORT_PRIMARY) { ++ for (i = 0; i <= 1; i++) { ++ if (pcim_iomap(pdev, i, 0) == NULL) { ++ dev_printk(KERN_ERR, &pdev->dev, ++ "failed to iomap PCI BAR %d\n", i); ++ return NULL; ++ } ++ } ++ } ++ if (ports & ATA_PORT_SECONDARY) { ++ for (i = 2; i <= 3; i++) { ++ if (pcim_iomap(pdev, i, 0) == NULL) { ++ dev_printk(KERN_ERR, &pdev->dev, ++ "failed to iomap PCI BAR %d\n", i); ++ return NULL; ++ } + } + } + +@@ -577,13 +595,6 @@ ata_pci_init_native_mode(struct pci_dev *pdev, struct ata_port_info **port, int + probe_ent->irq = pdev->irq; + probe_ent->irq_flags = IRQF_SHARED; + +- /* Discard disabled ports. Some controllers show their +- unused channels this way */ +- if (ata_resources_present(pdev, 0) == 0) +- ports &= ~ATA_PORT_PRIMARY; +- if (ata_resources_present(pdev, 1) == 0) +- ports &= ~ATA_PORT_SECONDARY; +- + if (ports & ATA_PORT_PRIMARY) { + probe_ent->port[p].cmd_addr = iomap[0]; + probe_ent->port[p].altstatus_addr = +diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c +index 598e6a2..ea6efca 100644 +--- a/drivers/ata/sata_via.c ++++ b/drivers/ata/sata_via.c +@@ -97,6 +97,10 @@ static struct pci_driver svia_pci_driver = { + .name = DRV_NAME, + .id_table = svia_pci_tbl, + .probe = svia_init_one, ++#ifdef CONFIG_PM ++ .suspend = ata_pci_device_suspend, ++ .resume = ata_pci_device_resume, ++#endif + .remove = ata_pci_remove_one, + }; + +@@ -116,6 +120,10 @@ static struct scsi_host_template svia_sht = { + .slave_configure = ata_scsi_slave_config, + .slave_destroy = ata_scsi_slave_destroy, + .bios_param = ata_std_bios_param, ++#ifdef CONFIG_PM ++ .suspend = ata_scsi_device_suspend, ++ .resume = ata_scsi_device_resume, ++#endif + }; + + static const struct ata_port_operations vt6420_sata_ops = { +diff --git a/drivers/base/core.c b/drivers/base/core.c +index d7fcf82..a8dfee2 100644 +--- a/drivers/base/core.c ++++ b/drivers/base/core.c +@@ -93,6 +93,9 @@ static void device_release(struct kobject * kobj) + { + struct device * dev = to_dev(kobj); + ++ kfree(dev->devt_attr); ++ dev->devt_attr = NULL; ++ + if (dev->release) + dev->release(dev); + else if (dev->type && dev->type->release) +@@ -765,10 +768,8 @@ void device_del(struct device * dev) + + if (parent) + klist_del(&dev->knode_parent); +- if (dev->devt_attr) { ++ if (dev->devt_attr) + device_remove_file(dev, dev->devt_attr); +- kfree(dev->devt_attr); +- } + if (dev->class) { + sysfs_remove_link(&dev->kobj, "subsystem"); + /* If this is not a "fake" compatible device, remove the +diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c +index e221465..cc13ebc 100644 +--- a/drivers/char/ipmi/ipmi_si_intf.c ++++ b/drivers/char/ipmi/ipmi_si_intf.c +@@ -1859,10 +1859,10 @@ static __devinit int try_init_acpi(struct SPMITable *spmi) + + if (spmi->addr.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) { + info->io_setup = mem_setup; +- info->io.addr_type = IPMI_IO_ADDR_SPACE; ++ info->io.addr_type = IPMI_MEM_ADDR_SPACE; + } else if (spmi->addr.space_id == ACPI_ADR_SPACE_SYSTEM_IO) { + info->io_setup = port_setup; +- info->io.addr_type = IPMI_MEM_ADDR_SPACE; ++ info->io.addr_type = IPMI_IO_ADDR_SPACE; + } else { + kfree(info); + printk("ipmi_si: Unknown ACPI I/O Address type\n"); +diff --git a/drivers/char/random.c b/drivers/char/random.c +index b9dc7aa..fa5b95b 100644 +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -760,7 +760,7 @@ static size_t account(struct entropy_store *r, size_t nbytes, int min, + + static void extract_buf(struct entropy_store *r, __u8 *out) + { +- int i, x; ++ int i; + __u32 data[16], buf[5 + SHA_WORKSPACE_WORDS]; + + sha_init(buf); +@@ -772,9 +772,11 @@ static void extract_buf(struct entropy_store *r, __u8 *out) + * attempts to find previous ouputs), unless the hash + * function can be inverted. + */ +- for (i = 0, x = 0; i < r->poolinfo->poolwords; i += 16, x+=2) { +- sha_transform(buf, (__u8 *)r->pool+i, buf + 5); +- add_entropy_words(r, &buf[x % 5], 1); ++ for (i = 0; i < r->poolinfo->poolwords; i += 16) { ++ /* hash blocks of 16 words = 512 bits */ ++ sha_transform(buf, (__u8 *)(r->pool + i), buf + 5); ++ /* feed back portion of the resulting hash */ ++ add_entropy_words(r, &buf[i % 5], 1); + } + + /* +@@ -782,7 +784,7 @@ static void extract_buf(struct entropy_store *r, __u8 *out) + * portion of the pool while mixing, and hash one + * final time. + */ +- __add_entropy_words(r, &buf[x % 5], 1, data); ++ __add_entropy_words(r, &buf[i % 5], 1, data); + sha_transform(buf, (__u8 *)data, buf + 5); + + /* +@@ -1022,37 +1024,44 @@ random_poll(struct file *file, poll_table * wait) + return mask; + } + +-static ssize_t +-random_write(struct file * file, const char __user * buffer, +- size_t count, loff_t *ppos) ++static int ++write_pool(struct entropy_store *r, const char __user *buffer, size_t count) + { +- int ret = 0; + size_t bytes; + __u32 buf[16]; + const char __user *p = buffer; +- size_t c = count; + +- while (c > 0) { +- bytes = min(c, sizeof(buf)); ++ while (count > 0) { ++ bytes = min(count, sizeof(buf)); ++ if (copy_from_user(&buf, p, bytes)) ++ return -EFAULT; + +- bytes -= copy_from_user(&buf, p, bytes); +- if (!bytes) { +- ret = -EFAULT; +- break; +- } +- c -= bytes; ++ count -= bytes; + p += bytes; + +- add_entropy_words(&input_pool, buf, (bytes + 3) / 4); +- } +- if (p == buffer) { +- return (ssize_t)ret; +- } else { +- struct inode *inode = file->f_path.dentry->d_inode; +- inode->i_mtime = current_fs_time(inode->i_sb); +- mark_inode_dirty(inode); +- return (ssize_t)(p - buffer); ++ add_entropy_words(r, buf, (bytes + 3) / 4); + } ++ ++ return 0; ++} ++ ++static ssize_t ++random_write(struct file * file, const char __user * buffer, ++ size_t count, loff_t *ppos) ++{ ++ size_t ret; ++ struct inode *inode = file->f_path.dentry->d_inode; ++ ++ ret = write_pool(&blocking_pool, buffer, count); ++ if (ret) ++ return ret; ++ ret = write_pool(&nonblocking_pool, buffer, count); ++ if (ret) ++ return ret; ++ ++ inode->i_mtime = current_fs_time(inode->i_sb); ++ mark_inode_dirty(inode); ++ return (ssize_t)count; + } + + static int +@@ -1091,8 +1100,8 @@ random_ioctl(struct inode * inode, struct file * file, + return -EINVAL; + if (get_user(size, p++)) + return -EFAULT; +- retval = random_write(file, (const char __user *) p, +- size, &file->f_pos); ++ retval = write_pool(&input_pool, (const char __user *)p, ++ size); + if (retval < 0) + return retval; + credit_entropy_store(&input_pool, ent_count); +diff --git a/drivers/crypto/geode-aes.c b/drivers/crypto/geode-aes.c +index 6d3840e..6a86958 100644 +--- a/drivers/crypto/geode-aes.c ++++ b/drivers/crypto/geode-aes.c +@@ -102,10 +102,15 @@ geode_aes_crypt(struct geode_aes_op *op) + u32 flags = 0; + unsigned long iflags; + +- if (op->len == 0 || op->src == op->dst) ++ if (op->len == 0) + return 0; + +- if (op->flags & AES_FLAGS_COHERENT) ++ /* If the source and destination is the same, then ++ * we need to turn on the coherent flags, otherwise ++ * we don't need to worry ++ */ ++ ++ if (op->src == op->dst) + flags |= (AES_CTRL_DCA | AES_CTRL_SCA); + + if (op->dir == AES_DIR_ENCRYPT) +@@ -120,7 +125,7 @@ geode_aes_crypt(struct geode_aes_op *op) + _writefield(AES_WRITEIV0_REG, op->iv); + } + +- if (op->flags & AES_FLAGS_USRKEY) { ++ if (!(op->flags & AES_FLAGS_HIDDENKEY)) { + flags |= AES_CTRL_WRKEY; + _writefield(AES_WRITEKEY0_REG, op->key); + } +@@ -289,6 +294,7 @@ static struct crypto_alg geode_cbc_alg = { + .setkey = geode_setkey, + .encrypt = geode_cbc_encrypt, + .decrypt = geode_cbc_decrypt, ++ .ivsize = AES_IV_LENGTH, + } + } + }; +diff --git a/drivers/crypto/geode-aes.h b/drivers/crypto/geode-aes.h +index 8003a36..f479686 100644 +--- a/drivers/crypto/geode-aes.h ++++ b/drivers/crypto/geode-aes.h +@@ -20,8 +20,7 @@ + #define AES_DIR_DECRYPT 0 + #define AES_DIR_ENCRYPT 1 + +-#define AES_FLAGS_USRKEY (1 << 0) +-#define AES_FLAGS_COHERENT (1 << 1) ++#define AES_FLAGS_HIDDENKEY (1 << 0) + + struct geode_aes_op { + +diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c +index 97ee870..3a95cc5 100644 +--- a/drivers/md/raid1.c ++++ b/drivers/md/raid1.c +@@ -271,21 +271,25 @@ static int raid1_end_read_request(struct bio *bio, unsigned int bytes_done, int + */ + update_head_pos(mirror, r1_bio); + +- if (uptodate || (conf->raid_disks - conf->mddev->degraded) <= 1) { +- /* +- * Set R1BIO_Uptodate in our master bio, so that +- * we will return a good error code for to the higher +- * levels even if IO on some other mirrored buffer fails. +- * +- * The 'master' represents the composite IO operation to +- * user-side. So if something waits for IO, then it will +- * wait for the 'master' bio. ++ if (uptodate) ++ set_bit(R1BIO_Uptodate, &r1_bio->state); ++ else { ++ /* If all other devices have failed, we want to return ++ * the error upwards rather than fail the last device. ++ * Here we redefine "uptodate" to mean "Don't want to retry" + */ +- if (uptodate) +- set_bit(R1BIO_Uptodate, &r1_bio->state); ++ unsigned long flags; ++ spin_lock_irqsave(&conf->device_lock, flags); ++ if (r1_bio->mddev->degraded == conf->raid_disks || ++ (r1_bio->mddev->degraded == conf->raid_disks-1 && ++ !test_bit(Faulty, &conf->mirrors[mirror].rdev->flags))) ++ uptodate = 1; ++ spin_unlock_irqrestore(&conf->device_lock, flags); ++ } + ++ if (uptodate) + raid_end_bio_io(r1_bio); +- } else { ++ else { + /* + * oops, read error: + */ +@@ -992,13 +996,14 @@ static void error(mddev_t *mddev, mdk_rdev_t *rdev) + unsigned long flags; + spin_lock_irqsave(&conf->device_lock, flags); + mddev->degraded++; ++ set_bit(Faulty, &rdev->flags); + spin_unlock_irqrestore(&conf->device_lock, flags); + /* + * if recovery is running, make sure it aborts. + */ + set_bit(MD_RECOVERY_ERR, &mddev->recovery); +- } +- set_bit(Faulty, &rdev->flags); ++ } else ++ set_bit(Faulty, &rdev->flags); + set_bit(MD_CHANGE_DEVS, &mddev->flags); + printk(KERN_ALERT "raid1: Disk failure on %s, disabling device. \n" + " Operation continuing on %d devices\n", +diff --git a/drivers/message/fusion/mptspi.c b/drivers/message/fusion/mptspi.c +index 85f21b5..2eb5741 100644 +--- a/drivers/message/fusion/mptspi.c ++++ b/drivers/message/fusion/mptspi.c +@@ -726,13 +726,15 @@ static int mptspi_slave_configure(struct scsi_device *sdev) + struct _MPT_SCSI_HOST *hd = + (struct _MPT_SCSI_HOST *)sdev->host->hostdata; + VirtTarget *vtarget = scsi_target(sdev)->hostdata; +- int ret = mptscsih_slave_configure(sdev); ++ int ret; ++ ++ mptspi_initTarget(hd, vtarget, sdev); ++ ++ ret = mptscsih_slave_configure(sdev); + + if (ret) + return ret; + +- mptspi_initTarget(hd, vtarget, sdev); +- + ddvprintk((MYIOC_s_INFO_FMT "id=%d min_period=0x%02x" + " max_offset=0x%02x max_width=%d\n", hd->ioc->name, + sdev->id, spi_min_period(scsi_target(sdev)), +diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig +index a3d46ea..32a3003 100644 +--- a/drivers/net/Kconfig ++++ b/drivers/net/Kconfig +@@ -2929,11 +2929,6 @@ endif #NETDEVICES + config NETPOLL + def_bool NETCONSOLE + +-config NETPOLL_RX +- bool "Netpoll support for trapping incoming packets" +- default n +- depends on NETPOLL +- + config NETPOLL_TRAP + bool "Netpoll traffic trapping" + default n +diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c +index e85f5ec..5006c67 100644 +--- a/drivers/net/bnx2.c ++++ b/drivers/net/bnx2.c +@@ -54,8 +54,8 @@ + + #define DRV_MODULE_NAME "bnx2" + #define PFX DRV_MODULE_NAME ": " +-#define DRV_MODULE_VERSION "1.5.8" +-#define DRV_MODULE_RELDATE "April 24, 2007" ++#define DRV_MODULE_VERSION "1.5.8.1" ++#define DRV_MODULE_RELDATE "May 7, 2007" + + #define RUN_AT(x) (jiffies + (x)) + +@@ -4510,8 +4510,7 @@ bnx2_start_xmit(struct sk_buff *skb, struct net_device *dev) + vlan_tag_flags |= + (TX_BD_FLAGS_VLAN_TAG | (vlan_tx_tag_get(skb) << 16)); + } +- if ((mss = skb_shinfo(skb)->gso_size) && +- (skb->len > (bp->dev->mtu + ETH_HLEN))) { ++ if ((mss = skb_shinfo(skb)->gso_size)) { + u32 tcp_opt_len, ip_tcp_len; + + if (skb_header_cloned(skb) && +@@ -5565,6 +5564,9 @@ bnx2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + case SIOCGMIIREG: { + u32 mii_regval; + ++ if (!netif_running(dev)) ++ return -EAGAIN; ++ + spin_lock_bh(&bp->phy_lock); + err = bnx2_read_phy(bp, data->reg_num & 0x1f, &mii_regval); + spin_unlock_bh(&bp->phy_lock); +@@ -5578,6 +5580,9 @@ bnx2_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) + if (!capable(CAP_NET_ADMIN)) + return -EPERM; + ++ if (!netif_running(dev)) ++ return -EAGAIN; ++ + spin_lock_bh(&bp->phy_lock); + err = bnx2_write_phy(bp, data->reg_num & 0x1f, data->val_in); + spin_unlock_bh(&bp->phy_lock); +@@ -6143,6 +6148,7 @@ bnx2_suspend(struct pci_dev *pdev, pm_message_t state) + reset_code = BNX2_DRV_MSG_CODE_SUSPEND_NO_WOL; + bnx2_reset_chip(bp, reset_code); + bnx2_free_skbs(bp); ++ pci_save_state(pdev); + bnx2_set_power_state(bp, pci_choose_state(pdev, state)); + return 0; + } +@@ -6156,6 +6162,7 @@ bnx2_resume(struct pci_dev *pdev) + if (!netif_running(dev)) + return 0; + ++ pci_restore_state(pdev); + bnx2_set_power_state(bp, PCI_D0); + netif_device_attach(dev); + bnx2_init_nic(bp); +diff --git a/drivers/net/sis900.c b/drivers/net/sis900.c +index b2a3b19..ce547af 100644 +--- a/drivers/net/sis900.c ++++ b/drivers/net/sis900.c +@@ -1754,6 +1754,7 @@ static int sis900_rx(struct net_device *net_dev) + sis_priv->rx_ring[entry].cmdsts = RX_BUF_SIZE; + } else { + struct sk_buff * skb; ++ struct sk_buff * rx_skb; + + pci_unmap_single(sis_priv->pci_dev, + sis_priv->rx_ring[entry].bufptr, RX_BUF_SIZE, +@@ -1787,10 +1788,10 @@ static int sis900_rx(struct net_device *net_dev) + } + + /* give the socket buffer to upper layers */ +- skb = sis_priv->rx_skbuff[entry]; +- skb_put(skb, rx_size); +- skb->protocol = eth_type_trans(skb, net_dev); +- netif_rx(skb); ++ rx_skb = sis_priv->rx_skbuff[entry]; ++ skb_put(rx_skb, rx_size); ++ rx_skb->protocol = eth_type_trans(rx_skb, net_dev); ++ netif_rx(rx_skb); + + /* some network statistics */ + if ((rx_status & BCAST) == MCAST) +diff --git a/drivers/net/skge.c b/drivers/net/skge.c +index d476a3c..5ef9023 100644 +--- a/drivers/net/skge.c ++++ b/drivers/net/skge.c +@@ -135,10 +135,13 @@ static void skge_get_regs(struct net_device *dev, struct ethtool_regs *regs, + /* Wake on Lan only supported on Yukon chips with rev 1 or above */ + static u32 wol_supported(const struct skge_hw *hw) + { +- if (hw->chip_id == CHIP_ID_YUKON && hw->chip_rev != 0) +- return WAKE_MAGIC | WAKE_PHY; +- else ++ if (hw->chip_id == CHIP_ID_GENESIS) ++ return 0; ++ ++ if (hw->chip_id == CHIP_ID_YUKON && hw->chip_rev == 0) + return 0; ++ ++ return WAKE_MAGIC | WAKE_PHY; + } + + static u32 pci_wake_enabled(struct pci_dev *dev) +@@ -3583,7 +3586,9 @@ static struct net_device *skge_devinit(struct skge_hw *hw, int port, + skge->duplex = -1; + skge->speed = -1; + skge->advertising = skge_supported_modes(hw); +- skge->wol = pci_wake_enabled(hw->pdev) ? wol_supported(hw) : 0; ++ ++ if (pci_wake_enabled(hw->pdev)) ++ skge->wol = wol_supported(hw) & WAKE_MAGIC; + + hw->dev[port] = dev; + +@@ -3789,6 +3794,9 @@ static int skge_suspend(struct pci_dev *pdev, pm_message_t state) + struct skge_hw *hw = pci_get_drvdata(pdev); + int i, err, wol = 0; + ++ if (!hw) ++ return 0; ++ + err = pci_save_state(pdev); + if (err) + return err; +@@ -3817,6 +3825,9 @@ static int skge_resume(struct pci_dev *pdev) + struct skge_hw *hw = pci_get_drvdata(pdev); + int i, err; + ++ if (!hw) ++ return 0; ++ + err = pci_set_power_state(pdev, PCI_D0); + if (err) + goto out; +@@ -3855,6 +3866,9 @@ static void skge_shutdown(struct pci_dev *pdev) + struct skge_hw *hw = pci_get_drvdata(pdev); + int i, wol = 0; + ++ if (!hw) ++ return; ++ + for (i = 0; i < hw->ports; i++) { + struct net_device *dev = hw->dev[i]; + struct skge_port *skge = netdev_priv(dev); +diff --git a/drivers/net/sky2.c b/drivers/net/sky2.c +index ac36152..b6b444b 100644 +--- a/drivers/net/sky2.c ++++ b/drivers/net/sky2.c +@@ -123,16 +123,13 @@ static const struct pci_device_id sky2_id_table[] = { + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, /* 88E8050 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, /* 88E8053 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, /* 88E8055 */ +-#ifdef broken +- /* This device causes data corruption problems that are not resolved */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, /* 88E8056 */ +-#endif + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, /* 88EC036 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, /* 88EC032 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, /* 88EC034 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4369) }, /* 88EC042 */ + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x436A) }, /* 88E8058 */ +- { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x436B) }, /* 88E8071 */ ++// { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x436B) }, /* 88E8071 */ + { 0 } + }; + +@@ -3722,6 +3719,7 @@ err_out_free_regions: + pci_release_regions(pdev); + pci_disable_device(pdev); + err_out: ++ pci_set_drvdata(pdev, NULL); + return err; + } + +@@ -3774,6 +3772,9 @@ static int sky2_suspend(struct pci_dev *pdev, pm_message_t state) + struct sky2_hw *hw = pci_get_drvdata(pdev); + int i, wol = 0; + ++ if (!hw) ++ return 0; ++ + del_timer_sync(&hw->idle_timer); + netif_poll_disable(hw->dev[0]); + +@@ -3805,6 +3806,9 @@ static int sky2_resume(struct pci_dev *pdev) + struct sky2_hw *hw = pci_get_drvdata(pdev); + int i, err; + ++ if (!hw) ++ return 0; ++ + err = pci_set_power_state(pdev, PCI_D0); + if (err) + goto out; +@@ -3851,6 +3855,9 @@ static void sky2_shutdown(struct pci_dev *pdev) + struct sky2_hw *hw = pci_get_drvdata(pdev); + int i, wol = 0; + ++ if (!hw) ++ return; ++ + del_timer_sync(&hw->idle_timer); + netif_poll_disable(hw->dev[0]); + +diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c +index c956141..0b89812 100644 +--- a/drivers/net/smc911x.c ++++ b/drivers/net/smc911x.c +@@ -499,7 +499,7 @@ static inline void smc911x_rcv(struct net_device *dev) + SMC_SET_RX_CFG(RX_CFG_RX_END_ALGN4_ | ((2<<8) & RX_CFG_RXDOFF_)); + SMC_PULL_DATA(data, pkt_len+2+3); + +- DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name,); ++ DBG(SMC_DEBUG_PKTS, "%s: Received packet\n", dev->name); + PRINT_PKT(data, ((pkt_len - 4) <= 64) ? pkt_len - 4 : 64); + dev->last_rx = jiffies; + skb->dev = dev; +diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c +index 256969e..3d20115 100644 +--- a/drivers/net/tg3.c ++++ b/drivers/net/tg3.c +@@ -64,8 +64,8 @@ + + #define DRV_MODULE_NAME "tg3" + #define PFX DRV_MODULE_NAME ": " +-#define DRV_MODULE_VERSION "3.75" +-#define DRV_MODULE_RELDATE "March 23, 2007" ++#define DRV_MODULE_VERSION "3.75.1" ++#define DRV_MODULE_RELDATE "May 7, 2007" + + #define TG3_DEF_MAC_MODE 0 + #define TG3_DEF_RX_MODE 0 +@@ -3895,8 +3895,7 @@ static int tg3_start_xmit(struct sk_buff *skb, struct net_device *dev) + entry = tp->tx_prod; + base_flags = 0; + mss = 0; +- if (skb->len > (tp->dev->mtu + ETH_HLEN) && +- (mss = skb_shinfo(skb)->gso_size) != 0) { ++ if ((mss = skb_shinfo(skb)->gso_size) != 0) { + int tcp_opt_len, ip_tcp_len; + + if (skb_header_cloned(skb) && +@@ -4053,8 +4052,7 @@ static int tg3_start_xmit_dma_bug(struct sk_buff *skb, struct net_device *dev) + if (skb->ip_summed == CHECKSUM_PARTIAL) + base_flags |= TXD_FLAG_TCPUDP_CSUM; + mss = 0; +- if (skb->len > (tp->dev->mtu + ETH_HLEN) && +- (mss = skb_shinfo(skb)->gso_size) != 0) { ++ if ((mss = skb_shinfo(skb)->gso_size) != 0) { + int tcp_opt_len, ip_tcp_len, hdr_len; + + if (skb_header_cloned(skb) && +@@ -5936,7 +5934,7 @@ static int tg3_load_tso_firmware(struct tg3 *tp) + + + /* tp->lock is held. */ +-static void __tg3_set_mac_addr(struct tg3 *tp) ++static void __tg3_set_mac_addr(struct tg3 *tp, int skip_mac_1) + { + u32 addr_high, addr_low; + int i; +@@ -5948,6 +5946,8 @@ static void __tg3_set_mac_addr(struct tg3 *tp) + (tp->dev->dev_addr[4] << 8) | + (tp->dev->dev_addr[5] << 0)); + for (i = 0; i < 4; i++) { ++ if (i == 1 && skip_mac_1) ++ continue; + tw32(MAC_ADDR_0_HIGH + (i * 8), addr_high); + tw32(MAC_ADDR_0_LOW + (i * 8), addr_low); + } +@@ -5974,7 +5974,7 @@ static int tg3_set_mac_addr(struct net_device *dev, void *p) + { + struct tg3 *tp = netdev_priv(dev); + struct sockaddr *addr = p; +- int err = 0; ++ int err = 0, skip_mac_1 = 0; + + if (!is_valid_ether_addr(addr->sa_data)) + return -EINVAL; +@@ -5985,22 +5985,21 @@ static int tg3_set_mac_addr(struct net_device *dev, void *p) + return 0; + + if (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) { +- /* Reset chip so that ASF can re-init any MAC addresses it +- * needs. +- */ +- tg3_netif_stop(tp); +- tg3_full_lock(tp, 1); ++ u32 addr0_high, addr0_low, addr1_high, addr1_low; + +- tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); +- err = tg3_restart_hw(tp, 0); +- if (!err) +- tg3_netif_start(tp); +- tg3_full_unlock(tp); +- } else { +- spin_lock_bh(&tp->lock); +- __tg3_set_mac_addr(tp); +- spin_unlock_bh(&tp->lock); ++ addr0_high = tr32(MAC_ADDR_0_HIGH); ++ addr0_low = tr32(MAC_ADDR_0_LOW); ++ addr1_high = tr32(MAC_ADDR_1_HIGH); ++ addr1_low = tr32(MAC_ADDR_1_LOW); ++ ++ /* Skip MAC addr 1 if ASF is using it. */ ++ if ((addr0_high != addr1_high || addr0_low != addr1_low) && ++ !(addr1_high == 0 && addr1_low == 0)) ++ skip_mac_1 = 1; + } ++ spin_lock_bh(&tp->lock); ++ __tg3_set_mac_addr(tp, skip_mac_1); ++ spin_unlock_bh(&tp->lock); + + return err; + } +@@ -6317,7 +6316,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) + tp->rx_jumbo_ptr); + + /* Initialize MAC address and backoff seed. */ +- __tg3_set_mac_addr(tp); ++ __tg3_set_mac_addr(tp, 0); + + /* MTU + ethernet header + FCS + optional VLAN tag */ + tw32(MAC_RX_MTU_SIZE, tp->dev->mtu + ETH_HLEN + 8); +@@ -6348,8 +6347,7 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy) + tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) || + (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750)) { + if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE && +- (tp->pci_chip_rev_id == CHIPREV_ID_5705_A1 || +- tp->pci_chip_rev_id == CHIPREV_ID_5705_A2)) { ++ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) { + rdmac_mode |= RDMAC_MODE_FIFO_SIZE_128; + } else if (!(tr32(TG3PCI_PCISTATE) & PCISTATE_BUS_SPEED_HIGH) && + !(tp->tg3_flags2 & TG3_FLG2_IS_5788)) { +diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c +index 65d6f23..5af9125 100644 +--- a/drivers/pci/quirks.c ++++ b/drivers/pci/quirks.c +@@ -1737,18 +1737,20 @@ DECLARE_PCI_FIXUP_RESUME(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE, + quirk_nvidia_ck804_pcie_aer_ext_cap); + + #ifdef CONFIG_PCI_MSI +-/* The Serverworks PCI-X chipset does not support MSI. We cannot easily rely +- * on setting PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually +- * some other busses controlled by the chipset even if Linux is not aware of it. +- * Instead of setting the flag on all busses in the machine, simply disable MSI +- * globally. ++/* Some chipsets do not support MSI. We cannot easily rely on setting ++ * PCI_BUS_FLAGS_NO_MSI in its bus flags because there are actually ++ * some other busses controlled by the chipset even if Linux is not ++ * aware of it. Instead of setting the flag on all busses in the ++ * machine, simply disable MSI globally. + */ +-static void __init quirk_svw_msi(struct pci_dev *dev) ++static void __init quirk_disable_all_msi(struct pci_dev *dev) + { + pci_no_msi(); + printk(KERN_WARNING "PCI: MSI quirk detected. MSI deactivated.\n"); + } +-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_svw_msi); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_GCNB_LE, quirk_disable_all_msi); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS400_200, quirk_disable_all_msi); ++DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS480, quirk_disable_all_msi); + + /* Disable MSI on chipsets that are known to not support it */ + static void __devinit quirk_disable_msi(struct pci_dev *dev) +diff --git a/drivers/serial/sunhv.c b/drivers/serial/sunhv.c +index 40d4856..c3a6bd2 100644 +--- a/drivers/serial/sunhv.c ++++ b/drivers/serial/sunhv.c +@@ -493,6 +493,10 @@ static struct of_device_id hv_match[] = { + .name = "console", + .compatible = "qcn", + }, ++ { ++ .name = "console", ++ .compatible = "SUNW,sun4v-console", ++ }, + {}, + }; + MODULE_DEVICE_TABLE(of, hv_match); +diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c +index 3dfa3e4..3257d94 100644 +--- a/drivers/usb/atm/cxacru.c ++++ b/drivers/usb/atm/cxacru.c +@@ -146,6 +146,12 @@ enum cxacru_info_idx { + CXINF_MAX = 0x1c, + }; + ++enum poll_state { ++ CX_INIT, ++ CX_POLLING, ++ CX_ABORT ++}; ++ + struct cxacru_modem_type { + u32 pll_f_clk; + u32 pll_b_clk; +@@ -159,6 +165,8 @@ struct cxacru_data { + + int line_status; + struct delayed_work poll_work; ++ struct mutex poll_state_serialize; ++ enum poll_state poll_state; + + /* contol handles */ + struct mutex cm_serialize; +@@ -356,7 +364,7 @@ static int cxacru_atm_start(struct usbatm_data *usbatm_instance, + /* + struct atm_dev *atm_dev = usbatm_instance->atm_dev; + */ +- int ret; ++ int ret, start_polling = 1; + + dbg("cxacru_atm_start"); + +@@ -376,7 +384,15 @@ static int cxacru_atm_start(struct usbatm_data *usbatm_instance, + } + + /* Start status polling */ +- cxacru_poll_status(&instance->poll_work.work); ++ mutex_lock(&instance->poll_state_serialize); ++ if (instance->poll_state == CX_INIT) ++ instance->poll_state = CX_POLLING; ++ else /* poll_state == CX_ABORT */ ++ start_polling = 0; ++ mutex_unlock(&instance->poll_state_serialize); ++ ++ if (start_polling) ++ cxacru_poll_status(&instance->poll_work.work); + return 0; + } + +@@ -685,6 +701,9 @@ static int cxacru_bind(struct usbatm_data *usbatm_instance, + instance->usbatm = usbatm_instance; + instance->modem_type = (struct cxacru_modem_type *) id->driver_info; + ++ mutex_init(&instance->poll_state_serialize); ++ instance->poll_state = CX_INIT; ++ + instance->rcv_buf = (u8 *) __get_free_page(GFP_KERNEL); + if (!instance->rcv_buf) { + dbg("cxacru_bind: no memory for rcv_buf"); +@@ -744,6 +763,7 @@ static void cxacru_unbind(struct usbatm_data *usbatm_instance, + struct usb_interface *intf) + { + struct cxacru_data *instance = usbatm_instance->driver_data; ++ int stop_polling = 1; + + dbg("cxacru_unbind entered"); + +@@ -752,8 +772,20 @@ static void cxacru_unbind(struct usbatm_data *usbatm_instance, + return; + } + +- while (!cancel_delayed_work(&instance->poll_work)) +- flush_scheduled_work(); ++ mutex_lock(&instance->poll_state_serialize); ++ if (instance->poll_state != CX_POLLING) { ++ /* Polling hasn't started yet and with ++ * the mutex locked it can be prevented ++ * from starting. ++ */ ++ instance->poll_state = CX_ABORT; ++ stop_polling = 0; ++ } ++ mutex_unlock(&instance->poll_state_serialize); ++ ++ if (stop_polling) ++ while (!cancel_delayed_work(&instance->poll_work)) ++ flush_scheduled_work(); + + usb_kill_urb(instance->snd_urb); + usb_kill_urb(instance->rcv_urb); +diff --git a/drivers/usb/input/hiddev.c b/drivers/usb/input/hiddev.c +index a8b3d66..488d61b 100644 +--- a/drivers/usb/input/hiddev.c ++++ b/drivers/usb/input/hiddev.c +@@ -51,6 +51,7 @@ struct hiddev { + wait_queue_head_t wait; + struct hid_device *hid; + struct list_head list; ++ spinlock_t list_lock; + }; + + struct hiddev_list { +@@ -161,7 +162,9 @@ static void hiddev_send_event(struct hid_device *hid, + { + struct hiddev *hiddev = hid->hiddev; + struct hiddev_list *list; ++ unsigned long flags; + ++ spin_lock_irqsave(&hiddev->list_lock, flags); + list_for_each_entry(list, &hiddev->list, node) { + if (uref->field_index != HID_FIELD_INDEX_NONE || + (list->flags & HIDDEV_FLAG_REPORT) != 0) { +@@ -171,6 +174,7 @@ static void hiddev_send_event(struct hid_device *hid, + kill_fasync(&list->fasync, SIGIO, POLL_IN); + } + } ++ spin_unlock_irqrestore(&hiddev->list_lock, flags); + + wake_up_interruptible(&hiddev->wait); + } +@@ -235,9 +239,13 @@ static int hiddev_fasync(int fd, struct file *file, int on) + static int hiddev_release(struct inode * inode, struct file * file) + { + struct hiddev_list *list = file->private_data; ++ unsigned long flags; + + hiddev_fasync(-1, file, 0); ++ ++ spin_lock_irqsave(&list->hiddev->list_lock, flags); + list_del(&list->node); ++ spin_unlock_irqrestore(&list->hiddev->list_lock, flags); + + if (!--list->hiddev->open) { + if (list->hiddev->exist) +@@ -257,6 +265,7 @@ static int hiddev_release(struct inode * inode, struct file * file) + static int hiddev_open(struct inode *inode, struct file *file) + { + struct hiddev_list *list; ++ unsigned long flags; + + int i = iminor(inode) - HIDDEV_MINOR_BASE; + +@@ -267,7 +276,11 @@ static int hiddev_open(struct inode *inode, struct file *file) + return -ENOMEM; + + list->hiddev = hiddev_table[i]; ++ ++ spin_lock_irqsave(&list->hiddev->list_lock, flags); + list_add_tail(&list->node, &hiddev_table[i]->list); ++ spin_unlock_irqrestore(&list->hiddev->list_lock, flags); ++ + file->private_data = list; + + if (!list->hiddev->open++) +@@ -773,6 +786,7 @@ int hiddev_connect(struct hid_device *hid) + + init_waitqueue_head(&hiddev->wait); + INIT_LIST_HEAD(&hiddev->list); ++ spin_lock_init(&hiddev->list_lock); + hiddev->hid = hid; + hiddev->exist = 1; + +diff --git a/fs/fat/dir.c b/fs/fat/dir.c +index c16af24..ccf161d 100644 +--- a/fs/fat/dir.c ++++ b/fs/fat/dir.c +@@ -422,7 +422,7 @@ EODir: + EXPORT_SYMBOL_GPL(fat_search_long); + + struct fat_ioctl_filldir_callback { +- struct dirent __user *dirent; ++ void __user *dirent; + int result; + /* for dir ioctl */ + const char *longname; +@@ -647,62 +647,85 @@ static int fat_readdir(struct file *filp, void *dirent, filldir_t filldir) + return __fat_readdir(inode, filp, dirent, filldir, 0, 0); + } + +-static int fat_ioctl_filldir(void *__buf, const char *name, int name_len, +- loff_t offset, u64 ino, unsigned int d_type) ++#define FAT_IOCTL_FILLDIR_FUNC(func, dirent_type) \ ++static int func(void *__buf, const char *name, int name_len, \ ++ loff_t offset, u64 ino, unsigned int d_type) \ ++{ \ ++ struct fat_ioctl_filldir_callback *buf = __buf; \ ++ struct dirent_type __user *d1 = buf->dirent; \ ++ struct dirent_type __user *d2 = d1 + 1; \ ++ \ ++ if (buf->result) \ ++ return -EINVAL; \ ++ buf->result++; \ ++ \ ++ if (name != NULL) { \ ++ /* dirent has only short name */ \ ++ if (name_len >= sizeof(d1->d_name)) \ ++ name_len = sizeof(d1->d_name) - 1; \ ++ \ ++ if (put_user(0, d2->d_name) || \ ++ put_user(0, &d2->d_reclen) || \ ++ copy_to_user(d1->d_name, name, name_len) || \ ++ put_user(0, d1->d_name + name_len) || \ ++ put_user(name_len, &d1->d_reclen)) \ ++ goto efault; \ ++ } else { \ ++ /* dirent has short and long name */ \ ++ const char *longname = buf->longname; \ ++ int long_len = buf->long_len; \ ++ const char *shortname = buf->shortname; \ ++ int short_len = buf->short_len; \ ++ \ ++ if (long_len >= sizeof(d1->d_name)) \ ++ long_len = sizeof(d1->d_name) - 1; \ ++ if (short_len >= sizeof(d1->d_name)) \ ++ short_len = sizeof(d1->d_name) - 1; \ ++ \ ++ if (copy_to_user(d2->d_name, longname, long_len) || \ ++ put_user(0, d2->d_name + long_len) || \ ++ put_user(long_len, &d2->d_reclen) || \ ++ put_user(ino, &d2->d_ino) || \ ++ put_user(offset, &d2->d_off) || \ ++ copy_to_user(d1->d_name, shortname, short_len) || \ ++ put_user(0, d1->d_name + short_len) || \ ++ put_user(short_len, &d1->d_reclen)) \ ++ goto efault; \ ++ } \ ++ return 0; \ ++efault: \ ++ buf->result = -EFAULT; \ ++ return -EFAULT; \ ++} ++ ++FAT_IOCTL_FILLDIR_FUNC(fat_ioctl_filldir, dirent) ++ ++static int fat_ioctl_readdir(struct inode *inode, struct file *filp, ++ void __user *dirent, filldir_t filldir, ++ int short_only, int both) + { +- struct fat_ioctl_filldir_callback *buf = __buf; +- struct dirent __user *d1 = buf->dirent; +- struct dirent __user *d2 = d1 + 1; +- +- if (buf->result) +- return -EINVAL; +- buf->result++; +- +- if (name != NULL) { +- /* dirent has only short name */ +- if (name_len >= sizeof(d1->d_name)) +- name_len = sizeof(d1->d_name) - 1; +- +- if (put_user(0, d2->d_name) || +- put_user(0, &d2->d_reclen) || +- copy_to_user(d1->d_name, name, name_len) || +- put_user(0, d1->d_name + name_len) || +- put_user(name_len, &d1->d_reclen)) +- goto efault; +- } else { +- /* dirent has short and long name */ +- const char *longname = buf->longname; +- int long_len = buf->long_len; +- const char *shortname = buf->shortname; +- int short_len = buf->short_len; +- +- if (long_len >= sizeof(d1->d_name)) +- long_len = sizeof(d1->d_name) - 1; +- if (short_len >= sizeof(d1->d_name)) +- short_len = sizeof(d1->d_name) - 1; +- +- if (copy_to_user(d2->d_name, longname, long_len) || +- put_user(0, d2->d_name + long_len) || +- put_user(long_len, &d2->d_reclen) || +- put_user(ino, &d2->d_ino) || +- put_user(offset, &d2->d_off) || +- copy_to_user(d1->d_name, shortname, short_len) || +- put_user(0, d1->d_name + short_len) || +- put_user(short_len, &d1->d_reclen)) +- goto efault; ++ struct fat_ioctl_filldir_callback buf; ++ int ret; ++ ++ buf.dirent = dirent; ++ buf.result = 0; ++ mutex_lock(&inode->i_mutex); ++ ret = -ENOENT; ++ if (!IS_DEADDIR(inode)) { ++ ret = __fat_readdir(inode, filp, &buf, filldir, ++ short_only, both); + } +- return 0; +-efault: +- buf->result = -EFAULT; +- return -EFAULT; ++ mutex_unlock(&inode->i_mutex); ++ if (ret >= 0) ++ ret = buf.result; ++ return ret; + } + +-static int fat_dir_ioctl(struct inode * inode, struct file * filp, +- unsigned int cmd, unsigned long arg) ++static int fat_dir_ioctl(struct inode *inode, struct file *filp, ++ unsigned int cmd, unsigned long arg) + { +- struct fat_ioctl_filldir_callback buf; +- struct dirent __user *d1; +- int ret, short_only, both; ++ struct dirent __user *d1 = (struct dirent __user *)arg; ++ int short_only, both; + + switch (cmd) { + case VFAT_IOCTL_READDIR_SHORT: +@@ -717,7 +740,6 @@ static int fat_dir_ioctl(struct inode * inode, struct file * filp, + return fat_generic_ioctl(inode, filp, cmd, arg); + } + +- d1 = (struct dirent __user *)arg; + if (!access_ok(VERIFY_WRITE, d1, sizeof(struct dirent[2]))) + return -EFAULT; + /* +@@ -728,69 +750,48 @@ static int fat_dir_ioctl(struct inode * inode, struct file * filp, + if (put_user(0, &d1->d_reclen)) + return -EFAULT; + +- buf.dirent = d1; +- buf.result = 0; +- mutex_lock(&inode->i_mutex); +- ret = -ENOENT; +- if (!IS_DEADDIR(inode)) { +- ret = __fat_readdir(inode, filp, &buf, fat_ioctl_filldir, +- short_only, both); +- } +- mutex_unlock(&inode->i_mutex); +- if (ret >= 0) +- ret = buf.result; +- return ret; ++ return fat_ioctl_readdir(inode, filp, d1, fat_ioctl_filldir, ++ short_only, both); + } + + #ifdef CONFIG_COMPAT + #define VFAT_IOCTL_READDIR_BOTH32 _IOR('r', 1, struct compat_dirent[2]) + #define VFAT_IOCTL_READDIR_SHORT32 _IOR('r', 2, struct compat_dirent[2]) + +-static long fat_compat_put_dirent32(struct dirent *d, +- struct compat_dirent __user *d32) +-{ +- if (!access_ok(VERIFY_WRITE, d32, sizeof(struct compat_dirent))) +- return -EFAULT; +- +- __put_user(d->d_ino, &d32->d_ino); +- __put_user(d->d_off, &d32->d_off); +- __put_user(d->d_reclen, &d32->d_reclen); +- if (__copy_to_user(d32->d_name, d->d_name, d->d_reclen)) +- return -EFAULT; ++FAT_IOCTL_FILLDIR_FUNC(fat_compat_ioctl_filldir, compat_dirent) + +- return 0; +-} +- +-static long fat_compat_dir_ioctl(struct file *file, unsigned cmd, ++static long fat_compat_dir_ioctl(struct file *filp, unsigned cmd, + unsigned long arg) + { +- struct compat_dirent __user *p = compat_ptr(arg); +- int ret; +- mm_segment_t oldfs = get_fs(); +- struct dirent d[2]; ++ struct inode *inode = filp->f_path.dentry->d_inode; ++ struct compat_dirent __user *d1 = compat_ptr(arg); ++ int short_only, both; + + switch (cmd) { +- case VFAT_IOCTL_READDIR_BOTH32: +- cmd = VFAT_IOCTL_READDIR_BOTH; +- break; + case VFAT_IOCTL_READDIR_SHORT32: +- cmd = VFAT_IOCTL_READDIR_SHORT; ++ short_only = 1; ++ both = 0; ++ break; ++ case VFAT_IOCTL_READDIR_BOTH32: ++ short_only = 0; ++ both = 1; + break; + default: + return -ENOIOCTLCMD; + } + +- set_fs(KERNEL_DS); +- lock_kernel(); +- ret = fat_dir_ioctl(file->f_path.dentry->d_inode, file, +- cmd, (unsigned long) &d); +- unlock_kernel(); +- set_fs(oldfs); +- if (ret >= 0) { +- ret |= fat_compat_put_dirent32(&d[0], p); +- ret |= fat_compat_put_dirent32(&d[1], p + 1); +- } +- return ret; ++ if (!access_ok(VERIFY_WRITE, d1, sizeof(struct compat_dirent[2]))) ++ return -EFAULT; ++ /* ++ * Yes, we don't need this put_user() absolutely. However old ++ * code didn't return the right value. So, app use this value, ++ * in order to check whether it is EOF. ++ */ ++ if (put_user(0, &d1->d_reclen)) ++ return -EFAULT; ++ ++ return fat_ioctl_readdir(inode, filp, d1, fat_compat_ioctl_filldir, ++ short_only, both); + } + #endif /* CONFIG_COMPAT */ + +diff --git a/fs/jfs/jfs_logmgr.c b/fs/jfs/jfs_logmgr.c +index 5065baa..3760d02 100644 +--- a/fs/jfs/jfs_logmgr.c ++++ b/fs/jfs/jfs_logmgr.c +@@ -2354,12 +2354,13 @@ int jfsIOWait(void *arg) + lbmStartIO(bp); + spin_lock_irq(&log_redrive_lock); + } +- spin_unlock_irq(&log_redrive_lock); + + if (freezing(current)) { ++ spin_unlock_irq(&log_redrive_lock); + refrigerator(); + } else { + set_current_state(TASK_INTERRUPTIBLE); ++ spin_unlock_irq(&log_redrive_lock); + schedule(); + current->state = TASK_RUNNING; + } +diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c +index 6f24768..79bd03b 100644 +--- a/fs/nfsd/export.c ++++ b/fs/nfsd/export.c +@@ -469,6 +469,13 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) + nd.dentry = NULL; + exp.ex_path = NULL; + ++ /* fs locations */ ++ exp.ex_fslocs.locations = NULL; ++ exp.ex_fslocs.locations_count = 0; ++ exp.ex_fslocs.migrated = 0; ++ ++ exp.ex_uuid = NULL; ++ + if (mesg[mlen-1] != '\n') + return -EINVAL; + mesg[mlen-1] = 0; +@@ -509,13 +516,6 @@ static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) + if (exp.h.expiry_time == 0) + goto out; + +- /* fs locations */ +- exp.ex_fslocs.locations = NULL; +- exp.ex_fslocs.locations_count = 0; +- exp.ex_fslocs.migrated = 0; +- +- exp.ex_uuid = NULL; +- + /* flags */ + err = get_int(&mesg, &an_int); + if (err == -ENOENT) +diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c +index c8178b7..2cac562 100644 +--- a/fs/reiserfs/xattr.c ++++ b/fs/reiserfs/xattr.c +@@ -68,7 +68,7 @@ static struct dentry *get_xa_root(struct super_block *sb, int flags) + if (!privroot) + return ERR_PTR(-ENODATA); + +- mutex_lock(&privroot->d_inode->i_mutex); ++ mutex_lock_nested(&privroot->d_inode->i_mutex, I_MUTEX_XATTR); + if (REISERFS_SB(sb)->xattr_root) { + xaroot = dget(REISERFS_SB(sb)->xattr_root); + goto out; +diff --git a/fs/udf/namei.c b/fs/udf/namei.c +index fe361cd..b254375 100644 +--- a/fs/udf/namei.c ++++ b/fs/udf/namei.c +@@ -878,7 +878,7 @@ static int udf_rmdir(struct inode * dir, struct dentry * dentry) + inode->i_nlink); + clear_nlink(inode); + inode->i_size = 0; +- inode_dec_link_count(inode); ++ inode_dec_link_count(dir); + inode->i_ctime = dir->i_ctime = dir->i_mtime = current_fs_time(dir->i_sb); + mark_inode_dirty(dir); + +diff --git a/include/asm-arm/arch-iop13xx/iop13xx.h b/include/asm-arm/arch-iop13xx/iop13xx.h +index d26b755..74d7498 100644 +--- a/include/asm-arm/arch-iop13xx/iop13xx.h ++++ b/include/asm-arm/arch-iop13xx/iop13xx.h +@@ -27,19 +27,24 @@ static inline int iop13xx_cpu_id(void) + #define IOP13XX_PCI_OFFSET IOP13XX_MAX_RAM_SIZE + + /* PCI MAP +- * 0x0000.0000 - 0x8000.0000 1:1 mapping with Physical RAM +- * 0x8000.0000 - 0x8800.0000 PCIX/PCIE memory window (128MB) +-*/ ++ * bus range cpu phys cpu virt note ++ * 0x0000.0000 + 2GB (n/a) (n/a) inbound, 1:1 mapping with Physical RAM ++ * 0x8000.0000 + 928M 0x1.8000.0000 (ioremap) PCIX outbound memory window ++ * 0x8000.0000 + 928M 0x2.8000.0000 (ioremap) PCIE outbound memory window ++ * ++ * IO MAP ++ * 0x1000 + 64K 0x0.fffb.1000 0xfec6.1000 PCIX outbound i/o window ++ * 0x1000 + 64K 0x0.fffd.1000 0xfed7.1000 PCIE outbound i/o window ++ */ + #define IOP13XX_PCIX_IO_WINDOW_SIZE 0x10000UL + #define IOP13XX_PCIX_LOWER_IO_PA 0xfffb0000UL + #define IOP13XX_PCIX_LOWER_IO_VA 0xfec60000UL +-#define IOP13XX_PCIX_LOWER_IO_BA 0x0fff0000UL ++#define IOP13XX_PCIX_LOWER_IO_BA 0x0UL /* OIOTVR */ ++#define IOP13XX_PCIX_IO_BUS_OFFSET 0x1000UL + #define IOP13XX_PCIX_UPPER_IO_PA (IOP13XX_PCIX_LOWER_IO_PA +\ + IOP13XX_PCIX_IO_WINDOW_SIZE - 1) + #define IOP13XX_PCIX_UPPER_IO_VA (IOP13XX_PCIX_LOWER_IO_VA +\ + IOP13XX_PCIX_IO_WINDOW_SIZE - 1) +-#define IOP13XX_PCIX_IO_OFFSET (IOP13XX_PCIX_LOWER_IO_VA -\ +- IOP13XX_PCIX_LOWER_IO_BA) + #define IOP13XX_PCIX_IO_PHYS_TO_VIRT(addr) (u32) ((u32) addr -\ + (IOP13XX_PCIX_LOWER_IO_PA\ + - IOP13XX_PCIX_LOWER_IO_VA)) +@@ -65,15 +70,14 @@ static inline int iop13xx_cpu_id(void) + #define IOP13XX_PCIE_IO_WINDOW_SIZE 0x10000UL + #define IOP13XX_PCIE_LOWER_IO_PA 0xfffd0000UL + #define IOP13XX_PCIE_LOWER_IO_VA 0xfed70000UL +-#define IOP13XX_PCIE_LOWER_IO_BA 0x0fff0000UL ++#define IOP13XX_PCIE_LOWER_IO_BA 0x0UL /* OIOTVR */ ++#define IOP13XX_PCIE_IO_BUS_OFFSET 0x1000UL + #define IOP13XX_PCIE_UPPER_IO_PA (IOP13XX_PCIE_LOWER_IO_PA +\ + IOP13XX_PCIE_IO_WINDOW_SIZE - 1) + #define IOP13XX_PCIE_UPPER_IO_VA (IOP13XX_PCIE_LOWER_IO_VA +\ + IOP13XX_PCIE_IO_WINDOW_SIZE - 1) + #define IOP13XX_PCIE_UPPER_IO_BA (IOP13XX_PCIE_LOWER_IO_BA +\ + IOP13XX_PCIE_IO_WINDOW_SIZE - 1) +-#define IOP13XX_PCIE_IO_OFFSET (IOP13XX_PCIE_LOWER_IO_VA -\ +- IOP13XX_PCIE_LOWER_IO_BA) + #define IOP13XX_PCIE_IO_PHYS_TO_VIRT(addr) (u32) ((u32) addr -\ + (IOP13XX_PCIE_LOWER_IO_PA\ + - IOP13XX_PCIE_LOWER_IO_VA)) +diff --git a/include/asm-sparc64/openprom.h b/include/asm-sparc64/openprom.h +index e01b805..26ec046 100644 +--- a/include/asm-sparc64/openprom.h ++++ b/include/asm-sparc64/openprom.h +@@ -177,7 +177,7 @@ struct linux_nodeops { + /* More fun PROM structures for device probing. */ + #define PROMREG_MAX 24 + #define PROMVADDR_MAX 16 +-#define PROMINTR_MAX 15 ++#define PROMINTR_MAX 32 + + struct linux_prom_registers { + unsigned which_io; /* hi part of physical address */ +diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h +index daa4940..bf92c26 100644 +--- a/include/linux/clocksource.h ++++ b/include/linux/clocksource.h +@@ -48,6 +48,7 @@ struct clocksource; + * @shift: cycle to nanosecond divisor (power of two) + * @flags: flags describing special properties + * @vread: vsyscall based read ++ * @resume: resume function for the clocksource, if necessary + * @cycle_interval: Used internally by timekeeping core, please ignore. + * @xtime_interval: Used internally by timekeeping core, please ignore. + */ +@@ -61,6 +62,7 @@ struct clocksource { + u32 shift; + unsigned long flags; + cycle_t (*vread)(void); ++ void (*resume)(void); + + /* timekeeping specific data, ignore */ + cycle_t cycle_last, cycle_interval; +@@ -198,6 +200,7 @@ static inline void clocksource_calculate_interval(struct clocksource *c, + extern int clocksource_register(struct clocksource*); + extern struct clocksource* clocksource_get_next(void); + extern void clocksource_change_rating(struct clocksource *cs, int rating); ++extern void clocksource_resume(void); + + #ifdef CONFIG_GENERIC_TIME_VSYSCALL + extern void update_vsyscall(struct timespec *ts, struct clocksource *c); +diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h +index 1a52854..b1b0f68 100644 +--- a/include/linux/netdevice.h ++++ b/include/linux/netdevice.h +@@ -647,8 +647,10 @@ static inline void netif_start_queue(struct net_device *dev) + static inline void netif_wake_queue(struct net_device *dev) + { + #ifdef CONFIG_NETPOLL_TRAP +- if (netpoll_trap()) ++ if (netpoll_trap()) { ++ clear_bit(__LINK_STATE_XOFF, &dev->state); + return; ++ } + #endif + if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state)) + __netif_schedule(dev); +@@ -656,10 +658,6 @@ static inline void netif_wake_queue(struct net_device *dev) + + static inline void netif_stop_queue(struct net_device *dev) + { +-#ifdef CONFIG_NETPOLL_TRAP +- if (netpoll_trap()) +- return; +-#endif + set_bit(__LINK_STATE_XOFF, &dev->state); + } + +diff --git a/include/linux/netfilter/nf_conntrack_proto_gre.h b/include/linux/netfilter/nf_conntrack_proto_gre.h +index 4e6bbce..535e421 100644 +--- a/include/linux/netfilter/nf_conntrack_proto_gre.h ++++ b/include/linux/netfilter/nf_conntrack_proto_gre.h +@@ -87,24 +87,6 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir, + /* delete keymap entries */ + void nf_ct_gre_keymap_destroy(struct nf_conn *ct); + +-/* get pointer to gre key, if present */ +-static inline __be32 *gre_key(struct gre_hdr *greh) +-{ +- if (!greh->key) +- return NULL; +- if (greh->csum || greh->routing) +- return (__be32 *)(greh+sizeof(*greh)+4); +- return (__be32 *)(greh+sizeof(*greh)); +-} +- +-/* get pointer ot gre csum, if present */ +-static inline __sum16 *gre_csum(struct gre_hdr *greh) +-{ +- if (!greh->csum) +- return NULL; +- return (__sum16 *)(greh+sizeof(*greh)); +-} +- + extern void nf_ct_gre_keymap_flush(void); + extern void nf_nat_need_gre(void); + +diff --git a/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h +index e371e0f..d0f36f5 100644 +--- a/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h ++++ b/include/linux/netfilter_ipv4/ip_conntrack_proto_gre.h +@@ -90,25 +90,6 @@ int ip_ct_gre_keymap_add(struct ip_conntrack *ct, + /* delete keymap entries */ + void ip_ct_gre_keymap_destroy(struct ip_conntrack *ct); + +- +-/* get pointer to gre key, if present */ +-static inline __be32 *gre_key(struct gre_hdr *greh) +-{ +- if (!greh->key) +- return NULL; +- if (greh->csum || greh->routing) +- return (__be32 *) (greh+sizeof(*greh)+4); +- return (__be32 *) (greh+sizeof(*greh)); +-} +- +-/* get pointer ot gre csum, if present */ +-static inline __sum16 *gre_csum(struct gre_hdr *greh) +-{ +- if (!greh->csum) +- return NULL; +- return (__sum16 *) (greh+sizeof(*greh)); +-} +- + #endif /* __KERNEL__ */ + + #endif /* _CONNTRACK_PROTO_GRE_H */ +diff --git a/kernel/cpuset.c b/kernel/cpuset.c +index f382b0f..9e45dd1 100644 +--- a/kernel/cpuset.c ++++ b/kernel/cpuset.c +@@ -1751,12 +1751,7 @@ static ssize_t cpuset_tasks_read(struct file *file, char __user *buf, + { + struct ctr_struct *ctr = file->private_data; + +- if (*ppos + nbytes > ctr->bufsz) +- nbytes = ctr->bufsz - *ppos; +- if (copy_to_user(buf, ctr->buf + *ppos, nbytes)) +- return -EFAULT; +- *ppos += nbytes; +- return nbytes; ++ return simple_read_from_buffer(buf, nbytes, ppos, ctr->buf, ctr->bufsz); + } + + static int cpuset_tasks_release(struct inode *unused_inode, struct file *file) +diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c +index fe5c7db..5baee91 100644 +--- a/kernel/time/clocksource.c ++++ b/kernel/time/clocksource.c +@@ -74,6 +74,8 @@ static struct clocksource *watchdog; + static struct timer_list watchdog_timer; + static DEFINE_SPINLOCK(watchdog_lock); + static cycle_t watchdog_last; ++static int watchdog_resumed; ++ + /* + * Interval: 0.5sec Treshold: 0.0625s + */ +@@ -98,15 +100,26 @@ static void clocksource_watchdog(unsigned long data) + struct clocksource *cs, *tmp; + cycle_t csnow, wdnow; + int64_t wd_nsec, cs_nsec; ++ int resumed; + + spin_lock(&watchdog_lock); + ++ resumed = watchdog_resumed; ++ if (unlikely(resumed)) ++ watchdog_resumed = 0; ++ + wdnow = watchdog->read(); + wd_nsec = cyc2ns(watchdog, (wdnow - watchdog_last) & watchdog->mask); + watchdog_last = wdnow; + + list_for_each_entry_safe(cs, tmp, &watchdog_list, wd_list) { + csnow = cs->read(); ++ ++ if (unlikely(resumed)) { ++ cs->wd_last = csnow; ++ continue; ++ } ++ + /* Initialized ? */ + if (!(cs->flags & CLOCK_SOURCE_WATCHDOG)) { + if ((cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) && +@@ -136,6 +149,13 @@ static void clocksource_watchdog(unsigned long data) + } + spin_unlock(&watchdog_lock); + } ++static void clocksource_resume_watchdog(void) ++{ ++ spin_lock(&watchdog_lock); ++ watchdog_resumed = 1; ++ spin_unlock(&watchdog_lock); ++} ++ + static void clocksource_check_watchdog(struct clocksource *cs) + { + struct clocksource *cse; +@@ -182,9 +202,34 @@ static void clocksource_check_watchdog(struct clocksource *cs) + if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) + cs->flags |= CLOCK_SOURCE_VALID_FOR_HRES; + } ++ ++static inline void clocksource_resume_watchdog(void) { } + #endif + + /** ++ * clocksource_resume - resume the clocksource(s) ++ */ ++void clocksource_resume(void) ++{ ++ struct list_head *tmp; ++ unsigned long flags; ++ ++ spin_lock_irqsave(&clocksource_lock, flags); ++ ++ list_for_each(tmp, &clocksource_list) { ++ struct clocksource *cs; ++ ++ cs = list_entry(tmp, struct clocksource, list); ++ if (cs->resume) ++ cs->resume(); ++ } ++ ++ clocksource_resume_watchdog(); ++ ++ spin_unlock_irqrestore(&clocksource_lock, flags); ++} ++ ++/** + * clocksource_get_next - Returns the selected clocksource + * + */ +diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c +index bfda3f7..a96ec9a 100644 +--- a/kernel/time/tick-common.c ++++ b/kernel/time/tick-common.c +@@ -31,7 +31,7 @@ DEFINE_PER_CPU(struct tick_device, tick_cpu_device); + */ + ktime_t tick_next_period; + ktime_t tick_period; +-static int tick_do_timer_cpu = -1; ++int tick_do_timer_cpu __read_mostly = -1; + DEFINE_SPINLOCK(tick_device_lock); + + /* +@@ -295,6 +295,12 @@ static void tick_shutdown(unsigned int *cpup) + clockevents_exchange_device(dev, NULL); + td->evtdev = NULL; + } ++ /* Transfer the do_timer job away from this cpu */ ++ if (*cpup == tick_do_timer_cpu) { ++ int cpu = first_cpu(cpu_online_map); ++ ++ tick_do_timer_cpu = (cpu != NR_CPUS) ? cpu : -1; ++ } + spin_unlock_irqrestore(&tick_device_lock, flags); + } + +diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h +index c9d203b..bb13f27 100644 +--- a/kernel/time/tick-internal.h ++++ b/kernel/time/tick-internal.h +@@ -5,6 +5,7 @@ DECLARE_PER_CPU(struct tick_device, tick_cpu_device); + extern spinlock_t tick_device_lock; + extern ktime_t tick_next_period; + extern ktime_t tick_period; ++extern int tick_do_timer_cpu __read_mostly; + + extern void tick_setup_periodic(struct clock_event_device *dev, int broadcast); + extern void tick_handle_periodic(struct clock_event_device *dev); +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index 51556b9..f4fc867 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -221,6 +221,18 @@ void tick_nohz_stop_sched_tick(void) + ts->tick_stopped = 1; + ts->idle_jiffies = last_jiffies; + } ++ ++ /* ++ * If this cpu is the one which updates jiffies, then ++ * give up the assignment and let it be taken by the ++ * cpu which runs the tick timer next, which might be ++ * this cpu as well. If we don't drop this here the ++ * jiffies might be stale and do_timer() never ++ * invoked. ++ */ ++ if (cpu == tick_do_timer_cpu) ++ tick_do_timer_cpu = -1; ++ + /* + * calculate the expiry time for the next timer wheel + * timer +@@ -338,12 +350,24 @@ static void tick_nohz_handler(struct clock_event_device *dev) + { + struct tick_sched *ts = &__get_cpu_var(tick_cpu_sched); + struct pt_regs *regs = get_irq_regs(); ++ int cpu = smp_processor_id(); + ktime_t now = ktime_get(); + + dev->next_event.tv64 = KTIME_MAX; + ++ /* ++ * Check if the do_timer duty was dropped. We don't care about ++ * concurrency: This happens only when the cpu in charge went ++ * into a long sleep. If two cpus happen to assign themself to ++ * this duty, then the jiffies update is still serialized by ++ * xtime_lock. ++ */ ++ if (unlikely(tick_do_timer_cpu == -1)) ++ tick_do_timer_cpu = cpu; ++ + /* Check, if the jiffies need an update */ +- tick_do_update_jiffies64(now); ++ if (tick_do_timer_cpu == cpu) ++ tick_do_update_jiffies64(now); + + /* + * When we are idle and the tick is stopped, we have to touch +@@ -431,9 +455,23 @@ static enum hrtimer_restart tick_sched_timer(struct hrtimer *timer) + struct hrtimer_cpu_base *base = timer->base->cpu_base; + struct pt_regs *regs = get_irq_regs(); + ktime_t now = ktime_get(); ++ int cpu = smp_processor_id(); ++ ++#ifdef CONFIG_NO_HZ ++ /* ++ * Check if the do_timer duty was dropped. We don't care about ++ * concurrency: This happens only when the cpu in charge went ++ * into a long sleep. If two cpus happen to assign themself to ++ * this duty, then the jiffies update is still serialized by ++ * xtime_lock. ++ */ ++ if (unlikely(tick_do_timer_cpu == -1)) ++ tick_do_timer_cpu = cpu; ++#endif + + /* Check, if the jiffies need an update */ +- tick_do_update_jiffies64(now); ++ if (tick_do_timer_cpu == cpu) ++ tick_do_update_jiffies64(now); + + /* + * Do not call, when we are not in irq context and have +diff --git a/kernel/timer.c b/kernel/timer.c +index dd6c2c1..e045774 100644 +--- a/kernel/timer.c ++++ b/kernel/timer.c +@@ -1903,6 +1903,8 @@ unregister_time_interpolator(struct time_interpolator *ti) + prev = &curr->next; + } + ++ clocksource_resume(); ++ + write_seqlock_irqsave(&xtime_lock, flags); + if (ti == time_interpolator) { + /* we lost the best time-interpolator: */ +diff --git a/lib/zlib_inflate/inflate.c b/lib/zlib_inflate/inflate.c +index fceb97c..7e1e311 100644 +--- a/lib/zlib_inflate/inflate.c ++++ b/lib/zlib_inflate/inflate.c +@@ -743,12 +743,14 @@ int zlib_inflate(z_streamp strm, int flush) + + strm->data_type = state->bits + (state->last ? 64 : 0) + + (state->mode == TYPE ? 128 : 0); +- if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) +- ret = Z_BUF_ERROR; + + if (flush == Z_PACKET_FLUSH && ret == Z_OK && +- (strm->avail_out != 0 || strm->avail_in == 0)) ++ strm->avail_out != 0 && strm->avail_in == 0) + return zlib_inflateSyncPacket(strm); ++ ++ if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK) ++ ret = Z_BUF_ERROR; ++ + return ret; + } + +diff --git a/mm/hugetlb.c b/mm/hugetlb.c +index 36db012..88e708b 100644 +--- a/mm/hugetlb.c ++++ b/mm/hugetlb.c +@@ -140,6 +140,8 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma, + return page; + + fail: ++ if (vma->vm_flags & VM_MAYSHARE) ++ resv_huge_pages++; + spin_unlock(&hugetlb_lock); + return NULL; + } +diff --git a/mm/oom_kill.c b/mm/oom_kill.c +index 3791edf..b3a3dd6 100644 +--- a/mm/oom_kill.c ++++ b/mm/oom_kill.c +@@ -397,6 +397,7 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order) + struct task_struct *p; + unsigned long points = 0; + unsigned long freed = 0; ++ int constraint; + + blocking_notifier_call_chain(&oom_notify_list, 0, &freed); + if (freed > 0) +@@ -411,14 +412,15 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, int order) + show_mem(); + } + +- cpuset_lock(); +- read_lock(&tasklist_lock); +- + /* + * Check if there were limitations on the allocation (only relevant for + * NUMA) that may require different handling. + */ +- switch (constrained_alloc(zonelist, gfp_mask)) { ++ constraint = constrained_alloc(zonelist, gfp_mask); ++ cpuset_lock(); ++ read_lock(&tasklist_lock); ++ ++ switch (constraint) { + case CONSTRAINT_MEMORY_POLICY: + oom_kill_process(current, points, + "No available memory (MPOL_BIND)"); +diff --git a/mm/slob.c b/mm/slob.c +index 5adc29c..c683d35 100644 +--- a/mm/slob.c ++++ b/mm/slob.c +@@ -150,15 +150,6 @@ static void slob_free(void *block, int size) + spin_unlock_irqrestore(&slob_lock, flags); + } + +-static int FASTCALL(find_order(int size)); +-static int fastcall find_order(int size) +-{ +- int order = 0; +- for ( ; size > 4096 ; size >>=1) +- order++; +- return order; +-} +- + void *__kmalloc(size_t size, gfp_t gfp) + { + slob_t *m; +@@ -174,7 +165,7 @@ void *__kmalloc(size_t size, gfp_t gfp) + if (!bb) + return 0; + +- bb->order = find_order(size); ++ bb->order = get_order(size); + bb->pages = (void *)__get_free_pages(gfp, bb->order); + + if (bb->pages) { +@@ -284,7 +275,7 @@ void *kmem_cache_alloc(struct kmem_cache *c, gfp_t flags) + if (c->size < PAGE_SIZE) + b = slob_alloc(c->size, flags, c->align); + else +- b = (void *)__get_free_pages(flags, find_order(c->size)); ++ b = (void *)__get_free_pages(flags, get_order(c->size)); + + if (c->ctor) + c->ctor(b, c, SLAB_CTOR_CONSTRUCTOR); +@@ -311,7 +302,7 @@ void kmem_cache_free(struct kmem_cache *c, void *b) + if (c->size < PAGE_SIZE) + slob_free(b, c->size); + else +- free_pages((unsigned long)b, find_order(c->size)); ++ free_pages((unsigned long)b, get_order(c->size)); + } + EXPORT_SYMBOL(kmem_cache_free); + +diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c +index cac06c4..444a56b 100644 +--- a/net/ipv4/fib_frontend.c ++++ b/net/ipv4/fib_frontend.c +@@ -777,6 +777,10 @@ static void nl_fib_lookup(struct fib_result_nl *frn, struct fib_table *tb ) + .tos = frn->fl_tos, + .scope = frn->fl_scope } } }; + ++#ifdef CONFIG_IP_MULTIPLE_TABLES ++ res.r = NULL; ++#endif ++ + frn->err = -ENOENT; + if (tb) { + local_bh_disable(); +diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c +index 23b99ae..75bd597 100644 +--- a/net/ipv4/netfilter/ip_conntrack_core.c ++++ b/net/ipv4/netfilter/ip_conntrack_core.c +@@ -302,7 +302,6 @@ destroy_conntrack(struct nf_conntrack *nfct) + { + struct ip_conntrack *ct = (struct ip_conntrack *)nfct; + struct ip_conntrack_protocol *proto; +- struct ip_conntrack_helper *helper; + typeof(ip_conntrack_destroyed) destroyed; + + DEBUGP("destroy_conntrack(%p)\n", ct); +@@ -312,10 +311,6 @@ destroy_conntrack(struct nf_conntrack *nfct) + ip_conntrack_event(IPCT_DESTROY, ct); + set_bit(IPS_DYING_BIT, &ct->status); + +- helper = ct->helper; +- if (helper && helper->destroy) +- helper->destroy(ct); +- + /* To make sure we don't get any weird locking issues here: + * destroy_conntrack() MUST NOT be called with a write lock + * to ip_conntrack_lock!!! -HW */ +@@ -356,6 +351,11 @@ destroy_conntrack(struct nf_conntrack *nfct) + static void death_by_timeout(unsigned long ul_conntrack) + { + struct ip_conntrack *ct = (void *)ul_conntrack; ++ struct ip_conntrack_helper *helper; ++ ++ helper = ct->helper; ++ if (helper && helper->destroy) ++ helper->destroy(ct); + + write_lock_bh(&ip_conntrack_lock); + /* Inside lock so preempt is disabled on module removal path. +diff --git a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c +index e694299..b86479a 100644 +--- a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c ++++ b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c +@@ -460,7 +460,8 @@ static int sctp_new(struct ip_conntrack *conntrack, + SCTP_CONNTRACK_NONE, sch->type); + + /* Invalid: delete conntrack */ +- if (newconntrack == SCTP_CONNTRACK_MAX) { ++ if (newconntrack == SCTP_CONNTRACK_NONE || ++ newconntrack == SCTP_CONNTRACK_MAX) { + DEBUGP("ip_conntrack_sctp: invalid new deleting.\n"); + return 0; + } +diff --git a/net/ipv4/netfilter/ip_nat_proto_gre.c b/net/ipv4/netfilter/ip_nat_proto_gre.c +index 9581020..e3146a3 100644 +--- a/net/ipv4/netfilter/ip_nat_proto_gre.c ++++ b/net/ipv4/netfilter/ip_nat_proto_gre.c +@@ -70,6 +70,11 @@ gre_unique_tuple(struct ip_conntrack_tuple *tuple, + __be16 *keyptr; + unsigned int min, i, range_size; + ++ /* If there is no master conntrack we are not PPTP, ++ do not change tuples */ ++ if (!conntrack->master) ++ return 0; ++ + if (maniptype == IP_NAT_MANIP_SRC) + keyptr = &tuple->src.u.gre.key; + else +@@ -122,18 +127,9 @@ gre_manip_pkt(struct sk_buff **pskb, + if (maniptype == IP_NAT_MANIP_DST) { + /* key manipulation is always dest */ + switch (greh->version) { +- case 0: +- if (!greh->key) { +- DEBUGP("can't nat GRE w/o key\n"); +- break; +- } +- if (greh->csum) { +- /* FIXME: Never tested this code... */ +- nf_proto_csum_replace4(gre_csum(greh), *pskb, +- *(gre_key(greh)), +- tuple->dst.u.gre.key, 0); +- } +- *(gre_key(greh)) = tuple->dst.u.gre.key; ++ case GRE_VERSION_1701: ++ /* We do not currently NAT any GREv0 packets. ++ * Try to behave like "ip_nat_proto_unknown" */ + break; + case GRE_VERSION_PPTP: + DEBUGP("call_id -> 0x%04x\n", +diff --git a/net/ipv4/netfilter/nf_nat_proto_gre.c b/net/ipv4/netfilter/nf_nat_proto_gre.c +index e5a34c1..ca3ff84 100644 +--- a/net/ipv4/netfilter/nf_nat_proto_gre.c ++++ b/net/ipv4/netfilter/nf_nat_proto_gre.c +@@ -72,6 +72,11 @@ gre_unique_tuple(struct nf_conntrack_tuple *tuple, + __be16 *keyptr; + unsigned int min, i, range_size; + ++ /* If there is no master conntrack we are not PPTP, ++ do not change tuples */ ++ if (!conntrack->master) ++ return 0; ++ + if (maniptype == IP_NAT_MANIP_SRC) + keyptr = &tuple->src.u.gre.key; + else +@@ -122,18 +127,9 @@ gre_manip_pkt(struct sk_buff **pskb, unsigned int iphdroff, + if (maniptype != IP_NAT_MANIP_DST) + return 1; + switch (greh->version) { +- case 0: +- if (!greh->key) { +- DEBUGP("can't nat GRE w/o key\n"); +- break; +- } +- if (greh->csum) { +- /* FIXME: Never tested this code... */ +- nf_proto_csum_replace4(gre_csum(greh), *pskb, +- *(gre_key(greh)), +- tuple->dst.u.gre.key, 0); +- } +- *(gre_key(greh)) = tuple->dst.u.gre.key; ++ case GRE_VERSION_1701: ++ /* We do not currently NAT any GREv0 packets. ++ * Try to behave like "nf_nat_proto_unknown" */ + break; + case GRE_VERSION_PPTP: + DEBUGP("call_id -> 0x%04x\n", ntohs(tuple->dst.u.gre.key)); +diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c +index 3834b10..824c6b9 100644 +--- a/net/ipv4/tcp.c ++++ b/net/ipv4/tcp.c +@@ -1759,8 +1759,7 @@ int tcp_disconnect(struct sock *sk, int flags) + tcp_clear_retrans(tp); + inet_csk_delack_init(sk); + sk->sk_send_head = NULL; +- tp->rx_opt.saw_tstamp = 0; +- tcp_sack_reset(&tp->rx_opt); ++ memset(&tp->rx_opt, 0, sizeof(tp->rx_opt)); + __sk_dst_reset(sk); + + BUG_TRAP(!inet->num || icsk->icsk_bind_hash); +diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c +index 452a82c..a541137 100644 +--- a/net/ipv6/addrconf.c ++++ b/net/ipv6/addrconf.c +@@ -2281,8 +2281,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, + break; + + case NETDEV_CHANGENAME: +-#ifdef CONFIG_SYSCTL + if (idev) { ++ snmp6_unregister_dev(idev); ++#ifdef CONFIG_SYSCTL + addrconf_sysctl_unregister(&idev->cnf); + neigh_sysctl_unregister(idev->nd_parms); + neigh_sysctl_register(dev, idev->nd_parms, +@@ -2290,8 +2291,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, + &ndisc_ifinfo_sysctl_change, + NULL); + addrconf_sysctl_register(idev, &idev->cnf); +- } + #endif ++ snmp6_register_dev(idev); ++ } + break; + }; + +@@ -4060,6 +4062,10 @@ int __init addrconf_init(void) + return err; + + ip6_null_entry.rt6i_idev = in6_dev_get(&loopback_dev); ++#ifdef CONFIG_IPV6_MULTIPLE_TABLES ++ ip6_prohibit_entry.rt6i_idev = in6_dev_get(&loopback_dev); ++ ip6_blk_hole_entry.rt6i_idev = in6_dev_get(&loopback_dev); ++#endif + + register_netdevice_notifier(&ipv6_dev_notf); + +diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c +index fb39604..794b930 100644 +--- a/net/ipv6/exthdrs.c ++++ b/net/ipv6/exthdrs.c +@@ -396,6 +396,7 @@ static int ipv6_rthdr_rcv(struct sk_buff **skbp) + + switch (hdr->type) { + #ifdef CONFIG_IPV6_MIP6 ++ case IPV6_SRCRT_TYPE_2: + break; + #endif + case IPV6_SRCRT_TYPE_0: +@@ -651,6 +652,14 @@ EXPORT_SYMBOL_GPL(ipv6_invert_rthdr); + Hop-by-hop options. + **********************************/ + ++/* ++ * Note: we cannot rely on skb->dst before we assign it in ip6_route_input(). ++ */ ++static inline struct inet6_dev *ipv6_skb_idev(struct sk_buff *skb) ++{ ++ return skb->dst ? ip6_dst_idev(skb->dst) : __in6_dev_get(skb->dev); ++} ++ + /* Router Alert as of RFC 2711 */ + + static int ipv6_hop_ra(struct sk_buff **skbp, int optoff) +@@ -677,25 +686,25 @@ static int ipv6_hop_jumbo(struct sk_buff **skbp, int optoff) + if (skb->nh.raw[optoff+1] != 4 || (optoff&3) != 2) { + LIMIT_NETDEBUG(KERN_DEBUG "ipv6_hop_jumbo: wrong jumbo opt length/alignment %d\n", + skb->nh.raw[optoff+1]); +- IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), ++ IP6_INC_STATS_BH(ipv6_skb_idev(skb), + IPSTATS_MIB_INHDRERRORS); + goto drop; + } + + pkt_len = ntohl(*(__be32*)(skb->nh.raw+optoff+2)); + if (pkt_len <= IPV6_MAXPLEN) { +- IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); ++ IP6_INC_STATS_BH(ipv6_skb_idev(skb), IPSTATS_MIB_INHDRERRORS); + icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, optoff+2); + return 0; + } + if (skb->nh.ipv6h->payload_len) { +- IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IPSTATS_MIB_INHDRERRORS); ++ IP6_INC_STATS_BH(ipv6_skb_idev(skb), IPSTATS_MIB_INHDRERRORS); + icmpv6_param_prob(skb, ICMPV6_HDR_FIELD, optoff); + return 0; + } + + if (pkt_len > skb->len - sizeof(struct ipv6hdr)) { +- IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IPSTATS_MIB_INTRUNCATEDPKTS); ++ IP6_INC_STATS_BH(ipv6_skb_idev(skb), IPSTATS_MIB_INTRUNCATEDPKTS); + goto drop; + } + +diff --git a/net/ipv6/ip6_input.c b/net/ipv6/ip6_input.c +index 61e7a6c..1b34ee5 100644 +--- a/net/ipv6/ip6_input.c ++++ b/net/ipv6/ip6_input.c +@@ -235,7 +235,7 @@ int ip6_mc_input(struct sk_buff *skb) + IP6_INC_STATS_BH(ip6_dst_idev(skb->dst), IPSTATS_MIB_INMCASTPKTS); + + hdr = skb->nh.ipv6h; +- deliver = likely(!(skb->dev->flags & (IFF_PROMISC|IFF_ALLMULTI))) || ++ deliver = unlikely(skb->dev->flags & (IFF_PROMISC|IFF_ALLMULTI)) || + ipv6_chk_mcast_addr(skb->dev, &hdr->daddr, NULL); + + /* +diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c +index 3055169..9fa3ffb 100644 +--- a/net/ipv6/ip6_output.c ++++ b/net/ipv6/ip6_output.c +@@ -449,10 +449,17 @@ int ip6_forward(struct sk_buff *skb) + */ + if (xrlim_allow(dst, 1*HZ)) + ndisc_send_redirect(skb, n, target); +- } else if (ipv6_addr_type(&hdr->saddr)&(IPV6_ADDR_MULTICAST|IPV6_ADDR_LOOPBACK +- |IPV6_ADDR_LINKLOCAL)) { ++ } else { ++ int addrtype = ipv6_addr_type(&hdr->saddr); ++ + /* This check is security critical. */ +- goto error; ++ if (addrtype & (IPV6_ADDR_MULTICAST|IPV6_ADDR_LOOPBACK)) ++ goto error; ++ if (addrtype & IPV6_ADDR_LINKLOCAL) { ++ icmpv6_send(skb, ICMPV6_DEST_UNREACH, ++ ICMPV6_NOT_NEIGHBOUR, 0, skb->dev); ++ goto error; ++ } + } + + if (skb->len > dst_mtu(dst)) { +diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c +index fa3fb50..d57853d 100644 +--- a/net/ipv6/proc.c ++++ b/net/ipv6/proc.c +@@ -236,6 +236,7 @@ int snmp6_unregister_dev(struct inet6_dev *idev) + return -EINVAL; + remove_proc_entry(idev->stats.proc_dir_entry->name, + proc_net_devsnmp6); ++ idev->stats.proc_dir_entry = NULL; + return 0; + } + +diff --git a/net/ipv6/xfrm6_tunnel.c b/net/ipv6/xfrm6_tunnel.c +index 93c4223..dff33cc 100644 +--- a/net/ipv6/xfrm6_tunnel.c ++++ b/net/ipv6/xfrm6_tunnel.c +@@ -261,7 +261,7 @@ static int xfrm6_tunnel_rcv(struct sk_buff *skb) + __be32 spi; + + spi = xfrm6_tunnel_spi_lookup((xfrm_address_t *)&iph->saddr); +- return xfrm6_rcv_spi(skb, spi); ++ return xfrm6_rcv_spi(skb, spi) > 0 ? : 0; + } + + static int xfrm6_tunnel_err(struct sk_buff *skb, struct inet6_skb_parm *opt, +diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c +index b3a70eb..ce28fdd 100644 +--- a/net/netfilter/nf_conntrack_core.c ++++ b/net/netfilter/nf_conntrack_core.c +@@ -315,7 +315,6 @@ static void + destroy_conntrack(struct nf_conntrack *nfct) + { + struct nf_conn *ct = (struct nf_conn *)nfct; +- struct nf_conn_help *help = nfct_help(ct); + struct nf_conntrack_l3proto *l3proto; + struct nf_conntrack_l4proto *l4proto; + typeof(nf_conntrack_destroyed) destroyed; +@@ -327,9 +326,6 @@ destroy_conntrack(struct nf_conntrack *nfct) + nf_conntrack_event(IPCT_DESTROY, ct); + set_bit(IPS_DYING_BIT, &ct->status); + +- if (help && help->helper && help->helper->destroy) +- help->helper->destroy(ct); +- + /* To make sure we don't get any weird locking issues here: + * destroy_conntrack() MUST NOT be called with a write lock + * to nf_conntrack_lock!!! -HW */ +@@ -375,6 +371,10 @@ destroy_conntrack(struct nf_conntrack *nfct) + static void death_by_timeout(unsigned long ul_conntrack) + { + struct nf_conn *ct = (void *)ul_conntrack; ++ struct nf_conn_help *help = nfct_help(ct); ++ ++ if (help && help->helper && help->helper->destroy) ++ help->helper->destroy(ct); + + write_lock_bh(&nf_conntrack_lock); + /* Inside lock so preempt is disabled on module removal path. +diff --git a/net/netfilter/nf_conntrack_proto_sctp.c b/net/netfilter/nf_conntrack_proto_sctp.c +index 3c80558..b53bc64 100644 +--- a/net/netfilter/nf_conntrack_proto_sctp.c ++++ b/net/netfilter/nf_conntrack_proto_sctp.c +@@ -469,7 +469,8 @@ static int sctp_new(struct nf_conn *conntrack, const struct sk_buff *skb, + SCTP_CONNTRACK_NONE, sch->type); + + /* Invalid: delete conntrack */ +- if (newconntrack == SCTP_CONNTRACK_MAX) { ++ if (newconntrack == SCTP_CONNTRACK_NONE || ++ newconntrack == SCTP_CONNTRACK_MAX) { + DEBUGP("nf_conntrack_sctp: invalid new deleting.\n"); + return 0; + } +diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c +index de889f2..a86f36b 100644 +--- a/net/sched/sch_prio.c ++++ b/net/sched/sch_prio.c +@@ -74,7 +74,7 @@ prio_classify(struct sk_buff *skb, struct Qdisc *sch, int *qerr) + band = res.classid; + } + band = TC_H_MIN(band) - 1; +- if (band > q->bands) ++ if (band >= q->bands) + return q->queues[q->prio2band[0]]; + + return q->queues[band]; +diff --git a/net/sctp/socket.c b/net/sctp/socket.c +index a1d026f..843c928 100644 +--- a/net/sctp/socket.c ++++ b/net/sctp/socket.c +@@ -3847,7 +3847,7 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len, + memcpy(&temp, &from->ipaddr, sizeof(temp)); + sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp); + addrlen = sctp_get_af_specific(sk->sk_family)->sockaddr_len; +- if(space_left < addrlen) ++ if (space_left < addrlen) + return -ENOMEM; + if (copy_to_user(to, &temp, addrlen)) + return -EFAULT; +@@ -3936,8 +3936,9 @@ done: + /* Helper function that copies local addresses to user and returns the number + * of addresses copied. + */ +-static int sctp_copy_laddrs_to_user_old(struct sock *sk, __u16 port, int max_addrs, +- void __user *to) ++static int sctp_copy_laddrs_old(struct sock *sk, __u16 port, ++ int max_addrs, void *to, ++ int *bytes_copied) + { + struct list_head *pos, *next; + struct sctp_sockaddr_entry *addr; +@@ -3954,10 +3955,10 @@ static int sctp_copy_laddrs_to_user_old(struct sock *sk, __u16 port, int max_add + sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk), + &temp); + addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; +- if (copy_to_user(to, &temp, addrlen)) +- return -EFAULT; ++ memcpy(to, &temp, addrlen); + + to += addrlen; ++ *bytes_copied += addrlen; + cnt ++; + if (cnt >= max_addrs) break; + } +@@ -3965,8 +3966,8 @@ static int sctp_copy_laddrs_to_user_old(struct sock *sk, __u16 port, int max_add + return cnt; + } + +-static int sctp_copy_laddrs_to_user(struct sock *sk, __u16 port, +- void __user **to, size_t space_left) ++static int sctp_copy_laddrs(struct sock *sk, __u16 port, void *to, ++ size_t space_left, int *bytes_copied) + { + struct list_head *pos, *next; + struct sctp_sockaddr_entry *addr; +@@ -3983,14 +3984,14 @@ static int sctp_copy_laddrs_to_user(struct sock *sk, __u16 port, + sctp_get_pf_specific(sk->sk_family)->addr_v4map(sctp_sk(sk), + &temp); + addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; +- if(space_left<addrlen) ++ if (space_left < addrlen) + return -ENOMEM; +- if (copy_to_user(*to, &temp, addrlen)) +- return -EFAULT; ++ memcpy(to, &temp, addrlen); + +- *to += addrlen; ++ to += addrlen; + cnt ++; + space_left -= addrlen; ++ bytes_copied += addrlen; + } + + return cnt; +@@ -4014,6 +4015,9 @@ static int sctp_getsockopt_local_addrs_old(struct sock *sk, int len, + int addrlen; + rwlock_t *addr_lock; + int err = 0; ++ void *addrs; ++ void *buf; ++ int bytes_copied = 0; + + if (len != sizeof(struct sctp_getaddrs_old)) + return -EINVAL; +@@ -4041,6 +4045,15 @@ static int sctp_getsockopt_local_addrs_old(struct sock *sk, int len, + + to = getaddrs.addrs; + ++ /* Allocate space for a local instance of packed array to hold all ++ * the data. We store addresses here first and then put write them ++ * to the user in one shot. ++ */ ++ addrs = kmalloc(sizeof(union sctp_addr) * getaddrs.addr_num, ++ GFP_KERNEL); ++ if (!addrs) ++ return -ENOMEM; ++ + sctp_read_lock(addr_lock); + + /* If the endpoint is bound to 0.0.0.0 or ::0, get the valid +@@ -4050,38 +4063,42 @@ static int sctp_getsockopt_local_addrs_old(struct sock *sk, int len, + addr = list_entry(bp->address_list.next, + struct sctp_sockaddr_entry, list); + if (sctp_is_any(&addr->a)) { +- cnt = sctp_copy_laddrs_to_user_old(sk, bp->port, +- getaddrs.addr_num, +- to); +- if (cnt < 0) { +- err = cnt; +- goto unlock; +- } ++ cnt = sctp_copy_laddrs_old(sk, bp->port, ++ getaddrs.addr_num, ++ addrs, &bytes_copied); + goto copy_getaddrs; + } + } + ++ buf = addrs; + list_for_each(pos, &bp->address_list) { + addr = list_entry(pos, struct sctp_sockaddr_entry, list); + memcpy(&temp, &addr->a, sizeof(temp)); + sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp); + addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; +- if (copy_to_user(to, &temp, addrlen)) { +- err = -EFAULT; +- goto unlock; +- } +- to += addrlen; ++ memcpy(buf, &temp, addrlen); ++ buf += addrlen; ++ bytes_copied += addrlen; + cnt ++; + if (cnt >= getaddrs.addr_num) break; + } + + copy_getaddrs: ++ sctp_read_unlock(addr_lock); ++ ++ /* copy the entire address list into the user provided space */ ++ if (copy_to_user(to, addrs, bytes_copied)) { ++ err = -EFAULT; ++ goto error; ++ } ++ ++ /* copy the leading structure back to user */ + getaddrs.addr_num = cnt; + if (copy_to_user(optval, &getaddrs, sizeof(struct sctp_getaddrs_old))) + err = -EFAULT; + +-unlock: +- sctp_read_unlock(addr_lock); ++error: ++ kfree(addrs); + return err; + } + +@@ -4101,7 +4118,9 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len, + rwlock_t *addr_lock; + int err = 0; + size_t space_left; +- int bytes_copied; ++ int bytes_copied = 0; ++ void *addrs; ++ void *buf; + + if (len <= sizeof(struct sctp_getaddrs)) + return -EINVAL; +@@ -4129,6 +4148,9 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len, + to = optval + offsetof(struct sctp_getaddrs,addrs); + space_left = len - sizeof(struct sctp_getaddrs) - + offsetof(struct sctp_getaddrs,addrs); ++ addrs = kmalloc(space_left, GFP_KERNEL); ++ if (!addrs) ++ return -ENOMEM; + + sctp_read_lock(addr_lock); + +@@ -4139,41 +4161,47 @@ static int sctp_getsockopt_local_addrs(struct sock *sk, int len, + addr = list_entry(bp->address_list.next, + struct sctp_sockaddr_entry, list); + if (sctp_is_any(&addr->a)) { +- cnt = sctp_copy_laddrs_to_user(sk, bp->port, +- &to, space_left); ++ cnt = sctp_copy_laddrs(sk, bp->port, addrs, ++ space_left, &bytes_copied); + if (cnt < 0) { + err = cnt; +- goto unlock; ++ goto error; + } + goto copy_getaddrs; + } + } + ++ buf = addrs; + list_for_each(pos, &bp->address_list) { + addr = list_entry(pos, struct sctp_sockaddr_entry, list); + memcpy(&temp, &addr->a, sizeof(temp)); + sctp_get_pf_specific(sk->sk_family)->addr_v4map(sp, &temp); + addrlen = sctp_get_af_specific(temp.sa.sa_family)->sockaddr_len; +- if(space_left < addrlen) +- return -ENOMEM; /*fixme: right error?*/ +- if (copy_to_user(to, &temp, addrlen)) { +- err = -EFAULT; +- goto unlock; ++ if (space_left < addrlen) { ++ err = -ENOMEM; /*fixme: right error?*/ ++ goto error; + } +- to += addrlen; ++ memcpy(buf, &temp, addrlen); ++ buf += addrlen; ++ bytes_copied += addrlen; + cnt ++; + space_left -= addrlen; + } + + copy_getaddrs: ++ sctp_read_unlock(addr_lock); ++ ++ if (copy_to_user(to, addrs, bytes_copied)) { ++ err = -EFAULT; ++ goto error; ++ } + if (put_user(cnt, &((struct sctp_getaddrs __user *)optval)->addr_num)) + return -EFAULT; +- bytes_copied = ((char __user *)to) - optval; + if (put_user(bytes_copied, optlen)) + return -EFAULT; + +-unlock: +- sctp_read_unlock(addr_lock); ++error: ++ kfree(addrs); + return err; + } + +@@ -4961,7 +4989,12 @@ int sctp_inet_listen(struct socket *sock, int backlog) + /* Allocate HMAC for generating cookie. */ + if (sctp_hmac_alg) { + tfm = crypto_alloc_hash(sctp_hmac_alg, 0, CRYPTO_ALG_ASYNC); +- if (!tfm) { ++ if (IS_ERR(tfm)) { ++ if (net_ratelimit()) { ++ printk(KERN_INFO ++ "SCTP: failed to load transform for %s: %ld\n", ++ sctp_hmac_alg, PTR_ERR(tfm)); ++ } + err = -ENOSYS; + goto out; + } +diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c +index db298b5..c678f5f 100644 +--- a/net/sunrpc/auth_gss/svcauth_gss.c ++++ b/net/sunrpc/auth_gss/svcauth_gss.c +@@ -1196,13 +1196,7 @@ svcauth_gss_wrap_resp_integ(struct svc_rqst *rqstp) + if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, + integ_len)) + BUG(); +- if (resbuf->page_len == 0 +- && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE +- < PAGE_SIZE) { +- BUG_ON(resbuf->tail[0].iov_len); +- /* Use head for everything */ +- resv = &resbuf->head[0]; +- } else if (resbuf->tail[0].iov_base == NULL) { ++ if (resbuf->tail[0].iov_base == NULL) { + if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE > PAGE_SIZE) + goto out_err; + resbuf->tail[0].iov_base = resbuf->head[0].iov_base +diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c +index 785c3e3..ba89293 100644 +--- a/net/xfrm/xfrm_policy.c ++++ b/net/xfrm/xfrm_policy.c +@@ -782,6 +782,10 @@ struct xfrm_policy *xfrm_policy_byid(u8 type, int dir, u32 id, int delete, + struct hlist_head *chain; + struct hlist_node *entry; + ++ *err = -ENOENT; ++ if (xfrm_policy_id2dir(id) != dir) ++ return NULL; ++ + *err = 0; + write_lock_bh(&xfrm_policy_lock); + chain = xfrm_policy_byidx + idx_hash(id); +diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c +index 6bc7e7c..8912c0f 100644 +--- a/scripts/basic/fixdep.c ++++ b/scripts/basic/fixdep.c +@@ -249,6 +249,8 @@ void parse_config_file(char *map, size_t len) + found: + if (!memcmp(q - 7, "_MODULE", 7)) + q -= 7; ++ if( (q-p-7) < 0 ) ++ continue; + use_config(p+7, q-p-7); + } + } +diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c +index c94291b..a6f8992 100644 +--- a/sound/pci/hda/patch_sigmatel.c ++++ b/sound/pci/hda/patch_sigmatel.c +@@ -1751,6 +1751,7 @@ static int stac92xx_resume(struct hda_codec *codec) + + stac92xx_init(codec); + stac92xx_set_config_regs(codec); ++ snd_hda_resume_ctls(codec, spec->mixer); + for (i = 0; i < spec->num_mixers; i++) + snd_hda_resume_ctls(codec, spec->mixers[i]); + if (spec->multiout.dig_out_nid) diff --git a/packages/linux/linux-ezx-2.6.21/pcap-ts.patch b/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch index d2b44b3c9a..28b9c557d3 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/pcap-ts.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/pcap-ts.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/drivers/input/touchscreen/Kconfig =================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-05-08 14:19:21.000000000 -0300 -+++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-05-08 14:22:21.000000000 -0300 +--- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-06-02 20:17:58.000000000 -0300 ++++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-06-02 20:18:40.000000000 -0300 @@ -164,4 +164,13 @@ To compile this driver as a module, choose M here: the module will be called ucb1400_ts. @@ -19,13 +19,14 @@ Index: linux-2.6.21/drivers/input/touchscreen/Kconfig Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-05-08 14:28:43.000000000 -0300 -@@ -0,0 +1,375 @@ ++++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-06-02 20:19:39.000000000 -0300 +@@ -0,0 +1,372 @@ +/* + * pcap_ts.c - Touchscreen driver for Motorola PCAP2 based touchscreen as found + * in the EZX phone platform. + * + * Copyright (C) 2006 Harald Welte <laforge@openezx.org> ++ * Copyright (C) 2007 Daniel Ribeiro <drwyrm@gmail.com> + * + * Based on information found in the original Motorola 2.4.x ezx-ts.c driver. + * @@ -33,10 +34,6 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * -+ * May 3, 2007 - Daniel Ribeiro <drwyrm@gmail.com> -+ * Major cleanup -+ * PM Callbacks -+ * + * TODO: + * split this in a hardirq handler and a tasklet/bh + */ @@ -396,51 +393,10 @@ Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c +MODULE_DESCRIPTION("Motorola PCAP2 touchscreen driver"); +MODULE_AUTHOR("Harald Welte <laforge@openezx.org>"); +MODULE_LICENSE("GPL"); -Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c -=================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-08 14:19:21.000000000 -0300 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-08 14:52:47.000000000 -0300 -@@ -174,11 +174,36 @@ - .resource = ezxemu_resources, - }; - -+/* PCAP_TS */ -+struct resource pcap_ts_resources[] = { -+ [0] = { -+ .start = EZX_IRQ_ADCDONE2, -+ .end = EZX_IRQ_ADCDONE2, -+ .flags = IORESOURCE_IRQ, -+ }, -+ [1] = { -+ .start = EZX_IRQ_TS, -+ .end = EZX_IRQ_TS, -+ .flags = IORESOURCE_IRQ, -+ } -+}; -+ -+struct platform_device pcap_ts_device = { -+ .name = "pcap-ts", -+ .id = -1, -+ .dev = { -+ .parent = &ezxpcap_device.dev, -+ }, -+ .num_resources = ARRAY_SIZE(pcap_ts_resources), -+ .resource = pcap_ts_resources, -+}; -+ - static struct platform_device *devices[] __initdata = { - &ezxssp_device, - &ezxbp_device, - &ezxpcap_device, - &ezxemu_device, -+ &pcap_ts_device, - }; - - /* PM */ Index: linux-2.6.21/drivers/input/touchscreen/Makefile =================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-05-08 14:19:21.000000000 -0300 -+++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-05-08 14:22:21.000000000 -0300 +--- linux-2.6.21.orig/drivers/input/touchscreen/Makefile 2007-06-02 20:17:58.000000000 -0300 ++++ linux-2.6.21/drivers/input/touchscreen/Makefile 2007-06-02 20:18:40.000000000 -0300 @@ -16,3 +16,4 @@ obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o diff --git a/packages/linux/linux-ezx-2.6.21/pxa-kbd.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa-kbd.patch index 83a3585ba2..425a5b984c 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/pxa-kbd.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/pxa-kbd.patch @@ -1,7 +1,7 @@ Index: linux-2.6.21/arch/arm/mach-pxa/generic.c =================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/generic.c 2007-05-17 20:04:53.000000000 +0200 -+++ linux-2.6.21/arch/arm/mach-pxa/generic.c 2007-05-17 20:06:02.000000000 +0200 +--- linux-2.6.21.orig/arch/arm/mach-pxa/generic.c 2007-06-01 20:04:10.000000000 +0200 ++++ linux-2.6.21/arch/arm/mach-pxa/generic.c 2007-06-01 20:04:45.000000000 +0200 @@ -42,6 +42,7 @@ #include <asm/arch/mmc.h> #include <asm/arch/irda.h> @@ -51,8 +51,8 @@ Index: linux-2.6.21/arch/arm/mach-pxa/generic.c static int __init pxa_init(void) Index: linux-2.6.21/drivers/input/keyboard/Kconfig =================================================================== ---- linux-2.6.21.orig/drivers/input/keyboard/Kconfig 2007-05-17 20:04:53.000000000 +0200 -+++ linux-2.6.21/drivers/input/keyboard/Kconfig 2007-05-17 20:06:02.000000000 +0200 +--- linux-2.6.21.orig/drivers/input/keyboard/Kconfig 2007-06-01 20:04:10.000000000 +0200 ++++ linux-2.6.21/drivers/input/keyboard/Kconfig 2007-06-01 20:04:45.000000000 +0200 @@ -229,4 +229,11 @@ To compile this driver as a module, choose M here: the module will be called gpio-keys. @@ -67,8 +67,8 @@ Index: linux-2.6.21/drivers/input/keyboard/Kconfig endif Index: linux-2.6.21/drivers/input/keyboard/Makefile =================================================================== ---- linux-2.6.21.orig/drivers/input/keyboard/Makefile 2007-05-17 20:04:53.000000000 +0200 -+++ linux-2.6.21/drivers/input/keyboard/Makefile 2007-05-17 20:06:02.000000000 +0200 +--- linux-2.6.21.orig/drivers/input/keyboard/Makefile 2007-06-01 20:04:10.000000000 +0200 ++++ linux-2.6.21/drivers/input/keyboard/Makefile 2007-06-01 20:04:45.000000000 +0200 @@ -19,4 +19,4 @@ obj-$(CONFIG_KEYBOARD_OMAP) += omap-keypad.o obj-$(CONFIG_KEYBOARD_AAED2000) += aaed2000_kbd.o @@ -78,7 +78,7 @@ Index: linux-2.6.21/drivers/input/keyboard/Makefile Index: linux-2.6.21/include/asm-arm/arch-pxa/kbd.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/include/asm-arm/arch-pxa/kbd.h 2007-05-17 20:06:02.000000000 +0200 ++++ linux-2.6.21/include/asm-arm/arch-pxa/kbd.h 2007-06-01 20:04:45.000000000 +0200 @@ -0,0 +1,28 @@ +/* + * kbd_pxa.h @@ -111,8 +111,8 @@ Index: linux-2.6.21/include/asm-arm/arch-pxa/kbd.h Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.21/drivers/input/keyboard/pxakbd.c 2007-05-18 16:59:36.000000000 +0200 -@@ -0,0 +1,385 @@ ++++ linux-2.6.21/drivers/input/keyboard/pxakbd.c 2007-06-02 10:41:13.000000000 +0200 +@@ -0,0 +1,403 @@ +/* + * Driver for Motorola EZX phone "keyboard" + * @@ -182,25 +182,37 @@ Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c +} + +/* read the full 8x8 matrix from the PXA27x keypad controller */ -+static void __read_matrix(u_int8_t *matrix) ++static inline void __read_matrix(u_int8_t *matrix) +{ + u_int32_t tmp; ++ u_int8_t row; ++ ++ /* Fill the matrix by rows */ + + tmp = KPASMKP0; -+ matrix[0] = tmp & 0x000000ff; -+ matrix[1] = (tmp & 0x00ff0000) >> 16; ++ for (row=0; row<8; row++) { ++ /* zero the matrix on the first time, then keep ORing */ ++ matrix[row] = ((tmp >> row) & 1); ++ matrix[row] |= ((tmp >> (16 + row)) & 1) << 1; ++ } + + tmp = KPASMKP1; -+ matrix[2] = tmp & 0x000000ff; -+ matrix[3] = (tmp & 0x00ff0000) >> 16; ++ for (row=0; row<8; row++) { ++ matrix[row] |= ((tmp >> row) & 1) << 2; ++ matrix[row] |= ((tmp >> (16 + row)) & 1) << 3; ++ } + + tmp = KPASMKP2; -+ matrix[4] = tmp & 0x000000ff; -+ matrix[5] = (tmp & 0x00ff0000) >> 16; ++ for (row=0; row<8; row++) { ++ matrix[row] |= ((tmp >> row) & 1) << 4; ++ matrix[row] |= ((tmp >> (16 + row)) & 1) << 5; ++ } + + tmp = KPASMKP3; -+ matrix[6] = tmp & 0x000000ff; -+ matrix[7] = (tmp & 0x00ff0000) >> 16; ++ for (row=0; row<8; row++) { ++ matrix[row] |= ((tmp >> row) & 1) << 6; ++ matrix[row] |= ((tmp >> (16 + row)) & 1) << 7; ++ } +} + +/* compare current matrix with last, generate 'diff' events */ @@ -327,6 +339,12 @@ Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c + + int rows, cols, n_direct; + ++ if (!pdev->dev.platform_data) { ++ printk(KERN_ERR "pxakbd: platform data not set\n"); ++ ret = -ENODEV; ++ goto out; ++ } ++ + pxakbd = kzalloc(sizeof(*pxakbd), GFP_KERNEL); + if (!pxakbd) + goto out; @@ -500,8 +518,8 @@ Index: linux-2.6.21/drivers/input/keyboard/pxakbd.c +MODULE_LICENSE("GPL"); Index: linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h =================================================================== ---- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-17 20:06:01.000000000 +0200 -+++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-05-17 20:06:02.000000000 +0200 +--- linux-2.6.21.orig/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-01 20:04:45.000000000 +0200 ++++ linux-2.6.21/include/asm-arm/arch-pxa/pxa-regs.h 2007-06-01 20:04:45.000000000 +0200 @@ -2165,6 +2165,11 @@ #define KPMK_MKP (0x1 << 31) #define KPAS_SO (0x1 << 31) diff --git a/packages/linux/linux-ezx-2.6.21/pxa27x-udc-support.2.patch b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-support.2.patch index d35e40f046..d35e40f046 100644..100755 --- a/packages/linux/linux-ezx-2.6.21/pxa27x-udc-support.2.patch +++ b/packages/linux/linux-ezx-2.6.21/patches/pxa27x-udc-support.2.patch diff --git a/packages/linux/linux-ezx-2.6.21/patches/series b/packages/linux/linux-ezx-2.6.21/patches/series new file mode 100755 index 0000000000..5580b74bf8 --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/patches/series @@ -0,0 +1,93 @@ +patch-2.6.21.4 + +ezx-core.patch +# ezx-core TODO: should be ezx-common +# look at the pxa-regs.h diff and put each definition on the proper patch +# register a machine type for each phone model + +# enable this patch ONLY if you have STUART connected and dont forget +# to change your cmdline if you want console on STUART. +#ezx-enable-stuart.patch + +ezx-bp.patch +# ezx-bp TODO: +# try to run this as a module - this may solve timing issues for opentapi. +# suspend/resume (not sure if it can be handled here) +# implement 2nd gen handshake support +# move platform device to ezx-phone.c + +ezx-pm.patch + +ezx-pcap.patch +# ezx-pcap TODO: +# implement a per board init reg array +# move mmc functions to the ezx-phone.c mmc init +# move vibrator level function to the vibrator driver + + +a780-mci.patch +e680-mci.patch +a1200-mci.patch + +pxa27x-udc-support.2.patch + +ezx-emu.patch +# ezx-emu TODO: +# userspace interface for controling emu +# read adc to find which accessory is plugged + +ezx-mtd-map.patch +# ezx-mtd-map TODO: +# at least the original partition should go on the ezx-phone.c file + +ezx-serial-bug-workaround.patch +# ezx-serial-bug TODO: +# does anyone have a phone with this bug? + +pxa-kbd.patch +# pxa-kbd TODO: +# test multi-key presses +# ask Harald about driver status/sending mainline + +a780-kbd.patch +e680-kbd.patch + +pcap-ts.patch +a780-ts.patch +e680-ts.patch +a1200-ts.patch + +ezx-backlight.patch + +a780-flip.patch +e680-locksw.patch + +a780-leds.patch +e680-leds.patch + +a780-vibrator.patch + +# mux_cli patches +mux_cli.patch +mux-fix.patch +mux-fix-init-errorpath.patch +mux-remove-flipbuffers.patch +mux-remove-get_halted_bit.patch +mux-remove-usbh_finished_resume.patch +mux-fix-makefile.patch +mux-fix-tty-driver.patch +mux-linux-2.6.21-fix.patch +#mux-ifdef-ezx-features.patch +#mux_debug.patch +# mux_cli TODO: +# merge patches +# try to understand the code and cleanup (painful) + +# Global TODO: +# compile everything as module and test for insmod/rmmod +# can NOT run as module (yet) +# pxa-ohci, ts0710_mux, ts0710_mux_usb, ezx-bp + +# incomplete +#asoc-pxa-ssp.patch +#ezx-asoc.patch diff --git a/packages/linux/linux-ezx-2.6.21/pcap_ts.c.patch b/packages/linux/linux-ezx-2.6.21/pcap_ts.c.patch deleted file mode 100644 index d46033bc80..0000000000 --- a/packages/linux/linux-ezx-2.6.21/pcap_ts.c.patch +++ /dev/null @@ -1,237 +0,0 @@ -Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c -=================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/pcap_ts.c 2007-05-01 16:28:00.000000000 +0200 -+++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-05-01 16:28:03.000000000 +0200 -@@ -21,15 +21,14 @@ - #include <linux/string.h> - #include <linux/pm.h> - #include <linux/timer.h> --#include <linux/config.h> -+//#include <linux/config.h> - #include <linux/interrupt.h> - #include <linux/platform_device.h> - #include <linux/input.h> - - #include <asm/arch/hardware.h> - #include <asm/arch/pxa-regs.h> -- --#include "../../misc/ezx/ssp_pcap.h" -+#include <asm/arch/ezx-pcap.h> - - #if 1 - #define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args) -@@ -61,6 +60,9 @@ - #define PRESSURE_MAX X_AXIS_MAX - #define PRESSURE_MIN X_AXIS_MIN - -+#define SAMPLE_INTERVAL (HZ/100) -+ -+ - static int pcap_ts_mode(u_int32_t mode) - { - int ret; -@@ -157,8 +159,6 @@ - pcap_ts->x, pcap_ts->y, pcap_ts->pressure); - - if (pcap_ts->read_state == PRESSURE) { -- input_report_abs(pcap_ts->input, ABS_PRESSURE, -- pcap_ts->pressure); - if ((pcap_ts->pressure >= PRESSURE_MAX || - pcap_ts->pressure <= PRESSURE_MIN ) && - pcap_ts->pressure == pcap_ts->pressure_last) { -@@ -166,6 +166,8 @@ - input_report_key(pcap_ts->input, BTN_TOUCH, 0); - input_sync(pcap_ts->input); - -+ input_report_abs(pcap_ts->input, ABS_PRESSURE, 0); -+ - pcap_ts->x = pcap_ts->y = 0; - - /* ask PCAP2 to interrupt us if touch event happens -@@ -182,18 +184,24 @@ - input_report_key(pcap_ts->input, BTN_TOUCH, 1); - /* don't input_sync(), we don't know position yet */ - -+ if (pcap_ts->pressure == 0) -+ pcap_ts->pressure = pcap_ts->pressure_last; -+ -+ input_report_abs(pcap_ts->input, ABS_PRESSURE, -+ pcap_ts->pressure); -+ - /* switch state machine into coordinate read mode */ - pcap_ts->read_state = COORDINATE; - pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT); - pcap_ts_start_xy_read(pcap_ts); -- -- mod_timer(&pcap_ts->timer, jiffies + HZ/20); - } - } else { - /* we are in coordinate mode */ - if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX || - pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) { - DEBUGP("invalid x/y coordinate position: PEN_UP?\n"); -+ -+ pcap_ts->pressure = 0; - #if 0 - input_report_key(pcap_ts->input, BTN_TOUCH, 0); - pcap_ts->x = pcap_ts->y = 0; -@@ -206,8 +214,8 @@ - - /* switch back to pressure read mode */ - pcap_ts->read_state = PRESSURE; -- pcap_ts_mode(PCAP_TS_STANDBY_MODE); -- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -+ pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT); -+ mod_timer(&pcap_ts->timer, jiffies + SAMPLE_INTERVAL); - } - - return IRQ_HANDLED; -@@ -234,18 +242,19 @@ - { - struct pcap_ts *pcap_ts = (struct pcap_ts *) data; - -- ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 1); -- pcap_ts_mode(PCAP_TS_PRESSURE_MEASUREMENT); -- pcap_ts->read_state = PRESSURE; - pcap_ts_start_xy_read(pcap_ts); - } - - static int __init ezxts_probe(struct platform_device *pdev) - { -+ int ret; -+ u_int32_t tmp; - struct pcap_ts *pcap_ts; - struct input_dev *input_dev; - int err = -ENOMEM; - -+ printk(KERN_DEBUG "Start probing TS!\n"); -+ - pcap_ts = kzalloc(sizeof(*pcap_ts), GFP_KERNEL); - input_dev = input_allocate_device(); - if (!pcap_ts || !input_dev) -@@ -263,7 +272,46 @@ - goto fail; - } - -- ssp_pcap_open(SSP_PCAP_TS_OPEN); -+ // Some initialization before done in ssp_pcap_open() -+ //ssp_pcap_open(SSP_PCAP_TS_OPEN); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_TS_REFENB, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_ADCDONE2I, 1); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ISR_TSI, 1); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_MSR_ADCDONE2M, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC1, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC2_ADINC2, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO0, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO1, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO2, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATO3, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_ATOX, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR1, 0); -+ ezx_pcap_bit_set( SSP_PCAP_ADJ_BIT_ADC1_MTR2, 0); -+ -+ //SSP_PCAP_TSI_mode_set(PCAP_TS_STANDBY_MODE); -+ ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp); -+ if (ret < 0) -+ return ret; -+ -+ tmp &= (~SSP_PCAP_TOUCH_PANEL_POSITION_DETECT_MODE_MASK); -+ tmp |= PCAP_TS_STANDBY_MODE; -+ -+ ret = ezx_pcap_write(SSP_PCAP_ADJ_ADC1_REGISTER, tmp); -+ if (ret < 0) -+ return ret; -+ -+ /* send the usb accessory infomation to PM */ -+ /* -+ if((ACCESSORY_TYPE) sspUsbAccessoryInfo.type == ACCESSORY_DEVICE_USB_PORT) -+ { -+ if( (ACCESSORY_DEVICE_STATUS )sspUsbAccessoryInfo.status == ACCESSORY_DEVICE_STATUS_ATTACHED ) -+ apm_queue_event(KRNL_ACCS_ATTACH); -+ else -+ apm_queue_event(KRNL_ACCS_DETACH); -+ } -+ */ -+ - - err = request_irq(pcap_ts->irq_xy, pcap_ts_irq_xy, SA_INTERRUPT, - "PCAP Touchscreen XY", pcap_ts); -@@ -343,10 +391,11 @@ - //.resume = ezxts_resume, - .driver = { - .name = "pcap-ts", -+ .owner = THIS_MODULE, - }, - }; - --static int __devinit ezxts_init(void) -+static int __init ezxts_init(void) - { - return platform_driver_register(&ezxts_driver); - } -Index: linux-2.6.21/drivers/input/touchscreen/Kconfig -=================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/Kconfig 2007-05-01 16:28:00.000000000 +0200 -+++ linux-2.6.21/drivers/input/touchscreen/Kconfig 2007-05-01 16:28:03.000000000 +0200 -@@ -166,7 +166,7 @@ - - config TOUCHSCREEN_PCAP - tristate "Motorola PCAP touchscreen" -- depends on PXA_EZX_PCAP -+ depends on PXA_EZX - help - Say Y here if you have a Motorola EZX (E680, A780) telephone - and want to support the built-in touchscreen. -@@ -174,6 +174,6 @@ - If unsure, say N. - - To compile this driver as a module, choose M here: the -- module will be called hp680_ts_input. -+ module will be called pcap_ts. - - endif -Index: linux-2.6.21/arch/arm/mach-pxa/ezx.c -=================================================================== ---- linux-2.6.21.orig/arch/arm/mach-pxa/ezx.c 2007-05-01 16:28:00.000000000 +0200 -+++ linux-2.6.21/arch/arm/mach-pxa/ezx.c 2007-05-01 16:28:03.000000000 +0200 -@@ -116,6 +116,31 @@ - .resource = ezxemu_resources, - }; - -+/* PCAP_TS */ -+struct resource pcap_ts_resources[] = { -+ [0] = { -+ .start = EZX_IRQ_ADCDONE2, -+ .end = EZX_IRQ_ADCDONE2, -+ .flags = IORESOURCE_IRQ, -+ }, -+ [1] = { -+ .start = EZX_IRQ_TS, -+ .end = EZX_IRQ_TS, -+ .flags = IORESOURCE_IRQ, -+ } -+}; -+ -+struct platform_device pcap_ts_device = { -+ .name = "pcap-ts", -+ .id = -1, -+ .dev = { -+ .parent = &ezxpcap_device.dev, -+ }, -+ .num_resources = ARRAY_SIZE(pcap_ts_resources), -+ .resource = pcap_ts_resources, -+}; -+ -+ - /* OHCI Controller */ - - static int ezx_ohci_init(struct device *dev) -@@ -342,6 +367,7 @@ - &ezxpcap_device, - &ezxbp_device, - &ezxemu_device, -+ &pcap_ts_device, - }; - - static void __init a780_init(void) diff --git a/packages/linux/linux-ezx-2.6.21/touchscreen-fix-r0.patch b/packages/linux/linux-ezx-2.6.21/touchscreen-fix-r0.patch deleted file mode 100644 index 9f4ce980ad..0000000000 --- a/packages/linux/linux-ezx-2.6.21/touchscreen-fix-r0.patch +++ /dev/null @@ -1,21 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - -Index: linux-2.6.21/drivers/input/touchscreen/pcap_ts.c -=================================================================== ---- linux-2.6.21.orig/drivers/input/touchscreen/pcap_ts.c 2007-04-30 21:55:41.000000000 +0200 -+++ linux-2.6.21/drivers/input/touchscreen/pcap_ts.c 2007-04-30 21:55:41.000000000 +0200 -@@ -128,10 +128,7 @@ - if (ret < 0) - return ret; - -- if (tmp & 0x00400000) -- return -EIO; -- -- if (pcap_ts->read_state == COORDINATE) { -+ if (pcap_ts->read_state == COORDINATE && !(tmp & 0x00400000)) { - pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK); - pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK) - >>SSP_PCAP_ADD2_VALUE_SHIFT; diff --git a/packages/linux/linux-ezx-2.6.21/update_patches.sh b/packages/linux/linux-ezx-2.6.21/update_patches.sh new file mode 100644 index 0000000000..d63a1e8e7d --- /dev/null +++ b/packages/linux/linux-ezx-2.6.21/update_patches.sh @@ -0,0 +1,16 @@ +#!/bin/sh +set -e + +# Helper script to update patches and speedup filling the SRC_URI section of our .bb +# Run it while in packages/linux/linux-ezx-2.6.x/ + +[ -d patches ] && mtn drop -R patches +rm -rf patches + +svn --quiet co http://svn.openezx.org/trunk/src/kernel-2.6/patches/ patches +find patches -type f -print0 +mtn add patches patches/* + +cat patches/series | grep ^[0-9A-Za-z] | sed -e 's/.*/\tfile:\/\/patches\/\0;patch=1 \\/' +ls -1 patches/defconfig-* | sed -e 's/.*/\tfile:\/\/\0 \\/' + diff --git a/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff b/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff deleted file mode 100644 index 6e424c626c..0000000000 --- a/packages/linux/linux-ezx-2.6.21/wyrm-ts.diff +++ /dev/null @@ -1,124 +0,0 @@ -Ignores read interrupts after penUP events until a penDOWN interrupt arrives. -Some other changes i dont remember exactly. :) -Signed-off-by: Daniel Ribeiro <drwyrm@gmail.com> -Index: linux-2.6.16/drivers/input/touchscreen/pcap_ts.c -=================================================================== ---- linux-2.6.16.orig/drivers/input/touchscreen/pcap_ts.c 2007-03-09 21:26:25.000000000 -0300 -+++ linux-2.6.16/drivers/input/touchscreen/pcap_ts.c 2007-03-09 21:26:42.000000000 -0300 -@@ -31,7 +31,7 @@ - - #include "../../misc/ezx/ssp_pcap.h" - --#if 1 -+#if 0 - #define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args) - #else - #define DEBUGP(x, args ...) -@@ -39,6 +39,7 @@ - - #define PRESSURE 1 - #define COORDINATE 2 -+#define STANDBY 3 - - struct pcap_ts { - int irq_xy; -@@ -97,7 +98,7 @@ - int ret; - u_int32_t tmp; - DEBUGP("start xy read in mode %s\n", -- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY")); - - ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp); - if (ret < 0) -@@ -122,7 +123,7 @@ - u_int32_t tmp; - - DEBUGP("get xy value in mode %s\n", -- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY")); - - ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp); - if (ret < 0) -@@ -145,7 +146,16 @@ - static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id, struct pt_regs *regs) - { - struct pcap_ts *pcap_ts = dev_id; -+// DEBUGP("read_state: %d\n", pcap_ts->read_state); - -+ /* -+ * Ignore further read interrupts after we set STANDBY - WM -+ */ -+ if (pcap_ts->read_state == STANDBY) -+ { -+ DEBUGP("ignored\n"); -+ return IRQ_HANDLED; -+ } - if (pcap_ts_get_xy_value(pcap_ts) < 0) { - printk("pcap_ts: error reading XY value\n"); - return IRQ_HANDLED; -@@ -160,33 +170,32 @@ - pcap_ts->pressure <= PRESSURE_MIN ) && - pcap_ts->pressure == pcap_ts->pressure_last) { - /* pen has been released */ -+ DEBUGP("UP\n"); - input_report_key(pcap_ts->input, BTN_TOUCH, 0); -- input_sync(pcap_ts->input); -- - input_report_abs(pcap_ts->input, ABS_PRESSURE, 0); -+ input_sync(pcap_ts->input); - - pcap_ts->x = pcap_ts->y = 0; - -+ /* no need for timer, we'll get interrupted with -+ * next touch down event */ -+ del_timer(&pcap_ts->timer); -+ - /* ask PCAP2 to interrupt us if touch event happens - * again */ -- pcap_ts->read_state = PRESSURE; -+ pcap_ts->read_state = STANDBY; - pcap_ts_mode(PCAP_TS_STANDBY_MODE); - ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -- -- /* no need for timer, we'll get interrupted with -- * next touch down event */ -- del_timer(&pcap_ts->timer); - } else { - /* pen has been touched down */ -+ DEBUGP("DOWN\n"); -+ - input_report_key(pcap_ts->input, BTN_TOUCH, 1); - /* don't input_sync(), we don't know position yet */ - - if (pcap_ts->pressure == 0) - pcap_ts->pressure = pcap_ts->pressure_last; - -- input_report_abs(pcap_ts->input, ABS_PRESSURE, -- pcap_ts->pressure); -- - /* switch state machine into coordinate read mode */ - pcap_ts->read_state = COORDINATE; - pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT); -@@ -196,18 +205,14 @@ - /* we are in coordinate mode */ - if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX || - pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) { -- DEBUGP("invalid x/y coordinate position: PEN_UP?\n"); -- -+ DEBUGP("PEN_UP?\n"); - pcap_ts->pressure = 0; --#if 0 -- input_report_key(pcap_ts->input, BTN_TOUCH, 0); -- pcap_ts->x = pcap_ts->y = 0; --#endif - } else { -+ input_report_abs(pcap_ts->input, ABS_PRESSURE, pcap_ts->pressure); - input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x); - input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y); -+ input_sync(pcap_ts->input); - } -- input_sync(pcap_ts->input); - - /* switch back to pressure read mode */ - pcap_ts->read_state = PRESSURE; diff --git a/packages/linux/linux-ezx/defconfig-a780 b/packages/linux/linux-ezx/defconfig-a780 deleted file mode 100644 index 313540dc4c..0000000000 --- a/packages/linux/linux-ezx/defconfig-a780 +++ /dev/null @@ -1,1317 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.13 -# Sun Jan 21 10:52:04 2007 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_MTD_XIP=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -# CONFIG_LOCALVERSION is not set -# CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_UID16=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS_EXTRA_PASS=y -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 is not set -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -CONFIG_SLAB=y -CONFIG_TINY_SHMEM=y -CONFIG_BASE_SMALL=0 -# CONFIG_SLOB is not set -CONFIG_OBSOLETE_INTERMODULE=m - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_KMOD is not set - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -CONFIG_ARCH_PXA=y -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_AT91RM9200 is not set -CONFIG_PXA_EZX=y - -# -# Intel PXA2xx Implementations -# -# CONFIG_ARCH_LUBBOCK is not set -# CONFIG_MACH_MAINSTONE is not set -# CONFIG_ARCH_PXA_IDP is not set -# CONFIG_PXA_SHARPSL is not set -# CONFIG_PXA_EZX_E680 is not set -CONFIG_PXA_EZX_A780=y -CONFIG_PXA27x=y -CONFIG_IWMMXT=y -CONFIG_PXA_SPI=y -CONFIG_PXA_EZX_PCAP=y -CONFIG_PXA_EZX_PCAP_EMU=m -CONFIG_PXA_EZX_PCAP_EMU_USB=y -# CONFIG_PXA_EZX_PCAP_EMU_UART is not set - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -CONFIG_XSCALE_PMU=y - -# -# Bus support -# - -# -# PCCARD (PCMCIA/CardBus) support -# -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y -# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS2,115200n8 console=tty1 noinitrd root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug mem=32M@0xA0000000 mem=16M@0xAC000000" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set - -# -# Power management options -# -CONFIG_PM=y -CONFIG_PM_LEGACY=y -# CONFIG_PM_DEBUG is not set -CONFIG_APM=y - -# -# Networking -# -CONFIG_NET=y - -# -# Networking options -# -# CONFIG_NETDEBUG is not set -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -# CONFIG_IP_PNP_DHCP is not set -# CONFIG_IP_PNP_BOOTP is not set -# CONFIG_IP_PNP_RARP 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=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y - -# -# IP: Virtual Server Configuration -# -# CONFIG_IP_VS is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_TUNNEL=m -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -CONFIG_IP_NF_CONNTRACK_EVENTS=y -CONFIG_IP_NF_CONNTRACK_NETLINK=m -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_NETBIOS_NS=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_PPTP=m -# CONFIG_IP_NF_QUEUE is not set -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_MULTIPORT=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH_ESP=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_MATCH_POLICY=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_NAT_PPTP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -# CONFIG_IP_NF_TARGET_ECN is not set -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -# CONFIG_IP6_NF_QUEUE is not set -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_MULTIPORT=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AHESP=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_POLICY=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_RAW=m - -# -# 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_NET_DIVERT 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 -CONFIG_NET_CLS_ROUTE=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -CONFIG_CONNECTOR=m - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=m -CONFIG_MTD_DEBUG=y -CONFIG_MTD_DEBUG_VERBOSE=3 -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -CONFIG_FTL=m -CONFIG_NFTL=m -CONFIG_NFTL_RW=y -CONFIG_INFTL=m -CONFIG_RFD_FTL=m - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_GEOMETRY=y -# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -# CONFIG_MTD_CFI_I2 is not set -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=m -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=m -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set -CONFIG_MTD_XIP=y - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_SHARP_SL is not set -CONFIG_MTD_PXA27x=m -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 - -# -# NAND Flash Device Drivers -# -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_H1900 is not set -CONFIG_MTD_NAND_IDS=m -CONFIG_MTD_NAND_DISKONCHIP=m -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH is not set -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_NANDSIM is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -# CONFIG_BLK_DEV_RAM is not set -CONFIG_BLK_DEV_RAM_COUNT=16 -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_ARCH_EZX_ROFLASH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set - -# -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set -CONFIG_BLK_DEV_DM=m -CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH 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 is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set - -# -# PHY device support -# - -# -# Ethernet (10 or 100Mbit) -# -# CONFIG_NET_ETHERNET is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -# CONFIG_PPPOE 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 - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_TSDEV=m -CONFIG_INPUT_TSDEV_SCREEN_X=240 -CONFIG_INPUT_TSDEV_SCREEN_Y=320 -CONFIG_INPUT_EVDEV=y -# 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_PXA=y -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_INPUT_JOYSTICK is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# 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_PCAP=y -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=m -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -# CONFIG_WATCHDOG is not set -# CONFIG_NVRAM is not set -CONFIG_SA1100_RTC=y -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_RAW_DRIVER is not set -# CONFIG_LINUX_LED is not set -# CONFIG_BULVERDE_SRAM_DEV is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set -CONFIG_TS0710_MUX=y -CONFIG_TS0710_MUX_USB=y - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_PXA=y -CONFIG_I2C_PXA_SLAVE=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_SENSORS_DS1337 is not set -# CONFIG_SENSORS_DS1374 is not set -# CONFIG_SENSORS_EEPROM is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set -# CONFIG_I2C_ADCM2700 is not set -# CONFIG_I2C_A780_CAMERA is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set - -# -# SPI support -# -CONFIG_SPI=y -CONFIG_SPI_DEBUG=y -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_BITBANG=m - -# -# SPI Protocol Masters -# - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set - -# -# Hardware Monitoring support -# -# CONFIG_HWMON is not set -# CONFIG_HWMON_VID is not set - -# -# Misc devices -# - -# -# Motorola EZX devices -# -CONFIG_KEYPAD_A780=y -# CONFIG_KEYPAD_E680 is not set -CONFIG_KEYLIGHT_A780=y -CONFIG_VIBRATOR_A780=y -# CONFIG_FMRADIO_E680 is not set - -# -# Multimedia Capabilities Port drivers -# - -# -# LED devices -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_A780=y -CONFIG_LEDS_TRIGGER_TIMER=y - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_PXA=y -CONFIG_FB_PXA_PARAMETERS=y -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_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 is not set -# CONFIG_FONT_ACORN_8x8 is not set -CONFIG_FONT_MINI_4x6=y -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set - -# -# Logo configuration -# -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_DEVICE=y -# CONFIG_BACKLIGHT_HP680 is not set -CONFIG_BACKLIGHT_EZX=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=y -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -# CONFIG_USB_DEVICEFS is not set -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=y -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -# CONFIG_USB_STORAGE is not set -CONFIG_USB_LIBUSUAL=y - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_ATI_REMOTE2 is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_DEBUG_FILES=y -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -CONFIG_USB_GADGET_PXA27X=y -CONFIG_USB_PXA27X=y -# CONFIG_USB_PXA27X_DMA is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -CONFIG_MMC_PXA=y - -# -# File systems -# -# CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -# 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_OCFS2_FS is not set -# CONFIG_MINIX_FS is not set -CONFIG_ROMFS_FS=m -# CONFIG_INOTIFY is not set -# CONFIG_QUOTA is not set -# CONFIG_DNOTIFY is not set -# CONFIG_AUTOFS_FS is not set -# 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=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -CONFIG_RELAYFS_FS=m -CONFIG_CONFIGFS_FS=m - -# -# 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_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=m -# 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=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set -# CONFIG_NFSD_V4 is not set -CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS 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 is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -CONFIG_NLS=m -CONFIG_NLS_DEFAULT="iso8859-1" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -# CONFIG_NLS_ISO8859_1 is not set -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_UTF8 is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_KERNEL=y -CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_DETECT_SOFTLOCKUP is not set -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_TEST=m - -# -# Hardware crypto devices -# - -# -# Library routines -# -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m -CONFIG_CRC32=y -CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=m -CONFIG_ZLIB_DEFLATE=m -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m - -# -# Dynamic Power Management -# -# CONFIG_DPM is not set diff --git a/packages/linux/linux-ezx/defconfig-e680 b/packages/linux/linux-ezx/defconfig-e680 deleted file mode 100644 index ef5fef395f..0000000000 --- a/packages/linux/linux-ezx/defconfig-e680 +++ /dev/null @@ -1,1314 +0,0 @@ -# -# Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.13 -# Thu May 18 19:40:25 2006 -# -CONFIG_ARM=y -CONFIG_MMU=y -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_MTD_XIP=y - -# -# Code maturity level options -# -CONFIG_EXPERIMENTAL=y -CONFIG_BROKEN_ON_SMP=y -CONFIG_LOCK_KERNEL=y -CONFIG_INIT_ENV_ARG_LIMIT=32 - -# -# General setup -# -CONFIG_LOCALVERSION="-ezx6" -# CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set -CONFIG_SYSVIPC=y -# CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y -# CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set -CONFIG_INITRAMFS_SOURCE="" -CONFIG_UID16=y -CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_EMBEDDED=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS_EXTRA_PASS=y -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 is not set -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 -CONFIG_SLAB=y -CONFIG_TINY_SHMEM=y -CONFIG_BASE_SMALL=0 -# CONFIG_SLOB is not set -CONFIG_OBSOLETE_INTERMODULE=m - -# -# Loadable module support -# -CONFIG_MODULES=y -CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y -# CONFIG_MODVERSIONS is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_KMOD is not set - -# -# Block layer -# - -# -# IO Schedulers -# -CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -# CONFIG_DEFAULT_AS is not set -# CONFIG_DEFAULT_DEADLINE is not set -# CONFIG_DEFAULT_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" - -# -# System Type -# -# CONFIG_ARCH_CLPS7500 is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CO285 is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_IXP2000 is not set -# CONFIG_ARCH_L7200 is not set -CONFIG_ARCH_PXA=y -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_S3C2410 is not set -# CONFIG_ARCH_SHARK is not set -# CONFIG_ARCH_LH7A40X is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_AT91RM9200 is not set -CONFIG_PXA_EZX=y - -# -# Intel PXA2xx Implementations -# -# CONFIG_ARCH_LUBBOCK is not set -# CONFIG_MACH_MAINSTONE is not set -# CONFIG_ARCH_PXA_IDP is not set -# CONFIG_PXA_SHARPSL is not set -CONFIG_PXA_EZX_E680=y -# CONFIG_PXA_EZX_A780 is not set -CONFIG_PXA27x=y -CONFIG_IWMMXT=y -CONFIG_PXA_SPI=y -CONFIG_PXA_EZX_PCAP=y -CONFIG_PXA_EZX_PCAP_EMU=m - -# -# Processor Type -# -CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y -CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y -CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_TLB_V4WBI=y - -# -# Processor Features -# -CONFIG_ARM_THUMB=y -CONFIG_XSCALE_PMU=y - -# -# Bus support -# - -# -# PCCARD (PCMCIA/CardBus) support -# -# CONFIG_PCCARD is not set - -# -# Kernel Features -# -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -# CONFIG_AEABI is not set -# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 -CONFIG_ALIGNMENT_TRAP=y - -# -# Boot options -# -CONFIG_ZBOOT_ROM_TEXT=0x0 -CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=1 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off console=ttyS2,115200n8 console=tty0" -# CONFIG_XIP_KERNEL is not set - -# -# Floating point emulation -# - -# -# At least one emulation must be selected -# -CONFIG_FPE_NWFPE=y -# CONFIG_FPE_NWFPE_XP is not set -# CONFIG_FPE_FASTFPE is not set - -# -# Userspace binary formats -# -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set - -# -# Power management options -# -CONFIG_PM=y -CONFIG_PM_LEGACY=y -# CONFIG_PM_DEBUG is not set -CONFIG_APM=y - -# -# Networking -# -CONFIG_NET=y - -# -# Networking options -# -# CONFIG_NETDEBUG is not set -CONFIG_PACKET=y -CONFIG_PACKET_MMAP=y -CONFIG_UNIX=y -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m -CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set -# CONFIG_IP_ADVANCED_ROUTER is not set -CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -# CONFIG_IP_PNP_DHCP is not set -# CONFIG_IP_PNP_BOOTP is not set -# CONFIG_IP_PNP_RARP 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=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m -# CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y - -# -# IP: Virtual Server Configuration -# -# CONFIG_IP_VS is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_TUNNEL=m -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -CONFIG_IP_NF_CONNTRACK_EVENTS=y -CONFIG_IP_NF_CONNTRACK_NETLINK=m -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_NETBIOS_NS=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_PPTP=m -# CONFIG_IP_NF_QUEUE is not set -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_MULTIPORT=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH_ESP=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_MATCH_POLICY=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_NAT_PPTP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -# CONFIG_IP_NF_TARGET_ECN is not set -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -# CONFIG_IP6_NF_QUEUE is not set -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_MULTIPORT=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AHESP=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_POLICY=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_RAW=m - -# -# 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_NET_DIVERT 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 -CONFIG_NET_CLS_ROUTE=y - -# -# Network testing -# -# CONFIG_NET_PKTGEN is not set -# CONFIG_HAMRADIO is not set -# CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m - -# -# Device Drivers -# - -# -# Generic Driver Options -# -CONFIG_STANDALONE=y -CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m -# CONFIG_DEBUG_DRIVER is not set - -# -# Connector - unified userspace <-> kernelspace linker -# -CONFIG_CONNECTOR=m - -# -# Memory Technology Devices (MTD) -# -CONFIG_MTD=m -CONFIG_MTD_DEBUG=y -CONFIG_MTD_DEBUG_VERBOSE=3 -# CONFIG_MTD_CONCAT is not set -CONFIG_MTD_PARTITIONS=y -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set - -# -# User Modules And Translation Layers -# -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -CONFIG_FTL=m -CONFIG_NFTL=m -CONFIG_NFTL_RW=y -CONFIG_INFTL=m -CONFIG_RFD_FTL=m - -# -# RAM/ROM/Flash chip drivers -# -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m -CONFIG_MTD_CFI_ADV_OPTIONS=y -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_GEOMETRY=y -# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_CFI_I1=y -# CONFIG_MTD_CFI_I2 is not set -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -# CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=m -# CONFIG_MTD_CFI_AMDSTD is not set -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=m -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_OBSOLETE_CHIPS is not set -CONFIG_MTD_XIP=y - -# -# Mapping drivers for chip access -# -# CONFIG_MTD_COMPLEX_MAPPINGS is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_SHARP_SL is not set -CONFIG_MTD_PXA27x=m -# CONFIG_MTD_PLATRAM is not set - -# -# Self-contained MTD device drivers -# -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set -# CONFIG_MTD_BLOCK2MTD is not set - -# -# Disk-On-Chip Device Drivers -# -# CONFIG_MTD_DOC2000 is not set -# CONFIG_MTD_DOC2001 is not set -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 - -# -# NAND Flash Device Drivers -# -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_H1900 is not set -CONFIG_MTD_NAND_IDS=m -CONFIG_MTD_NAND_DISKONCHIP=m -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH is not set -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_NANDSIM is not set - -# -# OneNAND Flash Device Drivers -# -# CONFIG_MTD_ONENAND is not set - -# -# Parallel port support -# -# CONFIG_PARPORT is not set - -# -# Plug and Play support -# - -# -# Block devices -# -# CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_UB is not set -# CONFIG_BLK_DEV_RAM is not set -CONFIG_BLK_DEV_RAM_COUNT=16 -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_ARCH_EZX_ROFLASH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set - -# -# SCSI device support -# -# CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set - -# -# Multi-device support (RAID and LVM) -# -CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set -CONFIG_BLK_DEV_DM=m -CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH 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 is not set -# CONFIG_BONDING is not set -# CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set - -# -# PHY device support -# - -# -# Ethernet (10 or 100Mbit) -# -# CONFIG_NET_ETHERNET is not set - -# -# Ethernet (1000 Mbit) -# - -# -# Ethernet (10000 Mbit) -# - -# -# Token Ring devices -# - -# -# Wireless LAN (non-hamradio) -# -# CONFIG_NET_RADIO is not set - -# -# Wan interfaces -# -# CONFIG_WAN is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -# CONFIG_PPPOE 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 - -# -# Input device support -# -CONFIG_INPUT=y - -# -# Userland interfaces -# -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_TSDEV=m -CONFIG_INPUT_TSDEV_SCREEN_X=240 -CONFIG_INPUT_TSDEV_SCREEN_Y=320 -CONFIG_INPUT_EVDEV=y -# 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_PXA=y -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_INPUT_JOYSTICK is not set -CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# 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_PCAP=y -# CONFIG_INPUT_MISC is not set - -# -# Hardware I/O ports -# -CONFIG_SERIO=m -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_GAMEPORT is not set - -# -# Character devices -# -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_HW_CONSOLE=y -# CONFIG_SERIAL_NONSTANDARD is not set - -# -# Serial drivers -# -# CONFIG_SERIAL_8250 is not set - -# -# Non-8250 serial port support -# -CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -CONFIG_UNIX98_PTYS=y -# CONFIG_LEGACY_PTYS is not set -# CONFIG_LEGACY_PTY_COUNT is not set - -# -# IPMI -# -# CONFIG_IPMI_HANDLER is not set - -# -# Watchdog Cards -# -# CONFIG_WATCHDOG is not set -# CONFIG_NVRAM is not set -CONFIG_SA1100_RTC=y -# CONFIG_DTLK is not set -# CONFIG_R3964 is not set - -# -# Ftape, the floppy tape device driver -# -# CONFIG_RAW_DRIVER is not set -# CONFIG_LINUX_LED is not set -# CONFIG_BULVERDE_SRAM_DEV is not set - -# -# TPM devices -# -# CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set - -# -# I2C support -# -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_PXA=y -CONFIG_I2C_PXA_SLAVE=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_SENSORS_DS1337 is not set -# CONFIG_SENSORS_DS1374 is not set -# CONFIG_SENSORS_EEPROM is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set -# CONFIG_I2C_ADCM2700 is not set -# CONFIG_I2C_A780_CAMERA is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set - -# -# SPI support -# -CONFIG_SPI=y -CONFIG_SPI_DEBUG=y -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_BITBANG=m - -# -# SPI Protocol Masters -# - -# -# Dallas's 1-wire bus -# -# CONFIG_W1 is not set - -# -# Hardware Monitoring support -# -# CONFIG_HWMON is not set -# CONFIG_HWMON_VID is not set - -# -# Misc devices -# - -# -# Motorola EZX devices -# -# CONFIG_KEYPAD_A780 is not set -# CONFIG_KEYPAD_E680 is not set -# CONFIG_KEYLIGHT_A780 is not set -# CONFIG_FMRADIO_E680 is not set - -# -# Multimedia Capabilities Port drivers -# - -# -# LED devices -# -CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=y -CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_E680=y -# CONFIG_LEDS_A780 is not set -CONFIG_LEDS_TRIGGER_TIMER=y - -# -# Multimedia devices -# -# CONFIG_VIDEO_DEV is not set - -# -# Digital Video Broadcasting Devices -# -# CONFIG_DVB is not set - -# -# Graphics support -# -CONFIG_FB=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_IMAGEBLIT=y -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_S1D13XXX is not set -CONFIG_FB_PXA=y -CONFIG_FB_PXA_PARAMETERS=y -# CONFIG_FB_VIRTUAL is not set - -# -# Console display driver support -# -# CONFIG_VGA_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 is not set -# CONFIG_FONT_ACORN_8x8 is not set -CONFIG_FONT_MINI_4x6=y -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set - -# -# Logo configuration -# -CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_BACKLIGHT_EZX=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_DEVICE=y - -# -# Sound -# -# CONFIG_SOUND is not set - -# -# USB support -# -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=m -# CONFIG_USB_DEBUG is not set - -# -# Miscellaneous USB options -# -# CONFIG_USB_DEVICEFS is not set -# CONFIG_USB_BANDWIDTH is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_SUSPEND is not set -# CONFIG_USB_OTG is not set - -# -# USB Host Controller Drivers -# -# CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=m -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set - -# -# USB Device Class drivers -# -# CONFIG_USB_ACM is not set -# CONFIG_USB_PRINTER is not set - -# -# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' -# - -# -# may also be needed; see USB_STORAGE Help for more information -# -# CONFIG_USB_STORAGE is not set -CONFIG_USB_LIBUSUAL=y - -# -# USB Input Devices -# -# CONFIG_USB_HID is not set - -# -# USB HID Boot Protocol drivers -# -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set -# CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set -# CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set -# CONFIG_USB_ATI_REMOTE2 is not set -# CONFIG_USB_KEYSPAN_REMOTE is not set -# CONFIG_USB_APPLETOUCH is not set - -# -# USB Imaging devices -# -# CONFIG_USB_MDC800 is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# -# USB Network Adapters -# -# CONFIG_USB_CATC is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_USBNET is not set -CONFIG_USB_MON=y - -# -# USB port drivers -# - -# -# USB Serial Converter support -# -# CONFIG_USB_SERIAL is not set - -# -# USB Miscellaneous drivers -# -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_LD is not set - -# -# USB DSL modem support -# - -# -# USB Gadget Support -# -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_DEBUG_FILES=y -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -CONFIG_USB_GADGET_PXA27X=y -CONFIG_USB_PXA27X=y -# CONFIG_USB_PXA27X_DMA is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set - -# -# MMC/SD Card support -# -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -CONFIG_MMC_PXA=y - -# -# File systems -# -# CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set -# 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_OCFS2_FS is not set -# CONFIG_MINIX_FS is not set -CONFIG_ROMFS_FS=m -# CONFIG_INOTIFY is not set -# CONFIG_QUOTA is not set -# CONFIG_DNOTIFY is not set -# CONFIG_AUTOFS_FS is not set -# 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=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_NTFS_FS is not set - -# -# Pseudo filesystems -# -CONFIG_PROC_FS=y -CONFIG_SYSFS=y -CONFIG_TMPFS=y -# CONFIG_HUGETLB_PAGE is not set -CONFIG_RAMFS=y -CONFIG_RELAYFS_FS=m -CONFIG_CONFIGFS_FS=m - -# -# 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_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set -CONFIG_CRAMFS=m -# 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=y -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y -# CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set -# CONFIG_NFSD_V4 is not set -CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y -CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m -CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y -# CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS 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 is not set -CONFIG_MSDOS_PARTITION=y - -# -# Native Language Support -# -CONFIG_NLS=m -CONFIG_NLS_DEFAULT="iso8859-1" -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -# CONFIG_NLS_ISO8859_1 is not set -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_UTF8 is not set - -# -# Profiling support -# -# CONFIG_PROFILING is not set - -# -# Kernel hacking -# -# CONFIG_PRINTK_TIME is not set -CONFIG_MAGIC_SYSRQ=y -CONFIG_DEBUG_KERNEL=y -CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_DETECT_SOFTLOCKUP is not set -# CONFIG_SCHEDSTATS is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_SPINLOCK_SLEEP is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set -# CONFIG_DEBUG_VM is not set -CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y -# CONFIG_RCU_TORTURE_TEST is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set -CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set - -# -# Security options -# -# CONFIG_KEYS is not set -# CONFIG_SECURITY is not set - -# -# Cryptographic options -# -CONFIG_CRYPTO=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_TEST=m - -# -# Hardware crypto devices -# - -# -# Library routines -# -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m -CONFIG_CRC32=y -CONFIG_LIBCRC32C=m -CONFIG_ZLIB_INFLATE=m -CONFIG_ZLIB_DEFLATE=m -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m - -# -# Dynamic Power Management -# -# CONFIG_DPM is not set diff --git a/packages/linux/linux-ezx/pxa-serial-gcc4.diff b/packages/linux/linux-ezx/pxa-serial-gcc4.diff deleted file mode 100644 index 7f827965e9..0000000000 --- a/packages/linux/linux-ezx/pxa-serial-gcc4.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/pxa.c 2006-08-29 10:51:57.000000000 +0200 -+++ linux-2.6.16/drivers/serial/pxa.c 2006-08-29 10:52:38.545780000 +0200 -@@ -241,7 +241,7 @@ - /* - * This handles the interrupt from one port. - */ --static inline irqreturn_t -+inline irqreturn_t - serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs) - { - struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id; diff --git a/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff b/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff deleted file mode 100644 index 6fd54ece3a..0000000000 --- a/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- /tmp/sa1100-rtc.c 2006-08-29 10:51:48.000000000 +0200 -+++ linux-2.6.16/drivers/char/sa1100-rtc.c 2006-08-29 10:52:14.995780000 +0200 -@@ -126,7 +126,7 @@ - tval->tm_mday = days + 1; - } - --static irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) -+irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs) - { - unsigned int rtsr = RTSR; - diff --git a/packages/linux/linux-ezx/wyrm-ts.diff b/packages/linux/linux-ezx/wyrm-ts.diff deleted file mode 100644 index a7ec75613c..0000000000 --- a/packages/linux/linux-ezx/wyrm-ts.diff +++ /dev/null @@ -1,119 +0,0 @@ ---- /tmp/pcap_ts.c 2007-02-04 16:55:21.000000000 -0200 -+++ linux-2.6.16/drivers/input/touchscreen/pcap_ts.c 2007-02-04 18:47:58.000000000 -0200 -@@ -31,7 +31,7 @@ - - #include "../../misc/ezx/ssp_pcap.h" - --#if 1 -+#if 0 - #define DEBUGP(x, args ...) printk(KERN_DEBUG "%s: " x, __FUNCTION__, ## args) - #else - #define DEBUGP(x, args ...) -@@ -39,6 +39,7 @@ - - #define PRESSURE 1 - #define COORDINATE 2 -+#define STANDBY 3 - - struct pcap_ts { - int irq_xy; -@@ -97,7 +98,7 @@ - int ret; - u_int32_t tmp; - DEBUGP("start xy read in mode %s\n", -- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY")); - - ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC1_REGISTER, &tmp); - if (ret < 0) -@@ -122,7 +123,7 @@ - u_int32_t tmp; - - DEBUGP("get xy value in mode %s\n", -- pcap_ts->read_state == COORDINATE ? "COORD" : "PRESS"); -+ pcap_ts->read_state == COORDINATE ? "COORD" : (pcap_ts->read_state == PRESSURE ? "PRESS" : "STANDBY")); - - ret = ezx_pcap_read(SSP_PCAP_ADJ_ADC2_REGISTER, &tmp); - if (ret < 0) -@@ -145,7 +146,16 @@ - static irqreturn_t pcap_ts_irq_xy(int irq, void *dev_id, struct pt_regs *regs) - { - struct pcap_ts *pcap_ts = dev_id; -+// DEBUGP("read_state: %d\n", pcap_ts->read_state); - -+ /* -+ * Ignore further read interrupts after we set STANDBY - WM -+ */ -+ if (pcap_ts->read_state == STANDBY) -+ { -+ DEBUGP("ignored\n"); -+ return IRQ_HANDLED; -+ } - if (pcap_ts_get_xy_value(pcap_ts) < 0) { - printk("pcap_ts: error reading XY value\n"); - return IRQ_HANDLED; -@@ -160,33 +170,32 @@ - pcap_ts->pressure <= PRESSURE_MIN ) && - pcap_ts->pressure == pcap_ts->pressure_last) { - /* pen has been released */ -+ DEBUGP("UP\n"); - input_report_key(pcap_ts->input, BTN_TOUCH, 0); -- input_sync(pcap_ts->input); -- - input_report_abs(pcap_ts->input, ABS_PRESSURE, 0); -+ input_sync(pcap_ts->input); - - pcap_ts->x = pcap_ts->y = 0; - -+ /* no need for timer, we'll get interrupted with -+ * next touch down event */ -+ del_timer(&pcap_ts->timer); -+ - /* ask PCAP2 to interrupt us if touch event happens - * again */ -- pcap_ts->read_state = PRESSURE; -+ pcap_ts->read_state = STANDBY; - pcap_ts_mode(PCAP_TS_STANDBY_MODE); - ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_MSR_TSM, 0); -- -- /* no need for timer, we'll get interrupted with -- * next touch down event */ -- del_timer(&pcap_ts->timer); - } else { - /* pen has been touched down */ -+ DEBUGP("DOWN\n"); -+ - input_report_key(pcap_ts->input, BTN_TOUCH, 1); - /* don't input_sync(), we don't know position yet */ - - if (pcap_ts->pressure == 0) - pcap_ts->pressure = pcap_ts->pressure_last; - -- input_report_abs(pcap_ts->input, ABS_PRESSURE, -- pcap_ts->pressure); -- - /* switch state machine into coordinate read mode */ - pcap_ts->read_state = COORDINATE; - pcap_ts_mode(PCAP_TS_POSITION_XY_MEASUREMENT); -@@ -196,18 +205,14 @@ - /* we are in coordinate mode */ - if (pcap_ts->x <= X_AXIS_MIN || pcap_ts->x >= X_AXIS_MAX || - pcap_ts->y <= Y_AXIS_MIN || pcap_ts->y >= Y_AXIS_MAX) { -- DEBUGP("invalid x/y coordinate position: PEN_UP?\n"); -- -+ DEBUGP("PEN_UP?\n"); - pcap_ts->pressure = 0; --#if 0 -- input_report_key(pcap_ts->input, BTN_TOUCH, 0); -- pcap_ts->x = pcap_ts->y = 0; --#endif - } else { -+ input_report_abs(pcap_ts->input, ABS_PRESSURE, pcap_ts->pressure); - input_report_abs(pcap_ts->input, ABS_X, pcap_ts->x); - input_report_abs(pcap_ts->input, ABS_Y, pcap_ts->y); -+ input_sync(pcap_ts->input); - } -- input_sync(pcap_ts->input); - - /* switch back to pressure read mode */ - pcap_ts->read_state = PRESSURE; diff --git a/packages/linux/linux-ezx_2.6.16.13.bb b/packages/linux/linux-ezx_2.6.16.13.bb deleted file mode 100644 index 1e6d3e2506..0000000000 --- a/packages/linux/linux-ezx_2.6.16.13.bb +++ /dev/null @@ -1,110 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and E680" -SECTION = "kernel" -AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>" -HOMEPAGE = "http://www.openezx.org" -LICENSE = "GPL" -DEPENDS += "quilt-native" -EZX = "ezx9" -PR = "${EZX}-r2" - -inherit kernel - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx" -RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" - -############################################################## -# source and patches -# -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \ - http://www.openezx.org/download/patches-2.6.16-2.6.16.13-${EZX}.tar.bz2 \ - \ - file://logo_linux_clut224.ppm \ - file://defconfig-a780 \ - file://defconfig-e680 \ - file://wyrm-ts.diff;patch=1" -S = "${WORKDIR}/linux-2.6.16" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = '(a780|e680)' - -CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd" -CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000" - -############################################################### -# module configs specific to this kernel -# -module_autoload_pxaficp_ir = "pxaficp_ir" -module_autoload_snd-pcm-oss = "snd-pcm-oss" - -do_ezxpatch() { - mv ${WORKDIR}/patches ${S} && cd ${S} && quilt push -av - rm -Rf patches .pc -} - -do_configure() { - install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# check the kernel is below the 1024*1024 byte limit for the boot-over usb -# -do_compile_append() { - size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'` - if [ $size -ge 1294336 ]; then - rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE} - echo "Size is $size" - die "This kernel is too big for your EZX Phone. Please reduce the size of the kernel by making more of it modular." - fi -} - -############################################################### -# put into deploy directory -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_package after do_install -addtask ezxpatch before do_patch after do_unpack diff --git a/packages/linux/linux-ezx_2.6.19+2.6.20-rc2.bb b/packages/linux/linux-ezx_2.6.19+2.6.20-rc2.bb deleted file mode 100644 index b5202fc0f5..0000000000 --- a/packages/linux/linux-ezx_2.6.19+2.6.20-rc2.bb +++ /dev/null @@ -1,125 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and E680" -SECTION = "kernel" -AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>" -HOMEPAGE = "http://www.openezx.org" -LICENSE = "GPL" -DEPENDS += "quilt-native" -EZX = "ezx0" -PR = "${EZX}-r2" - -DEFAULT_PREFERENCE = "-1" -DEFAULT_PREFERENCE_rokr-e2 = "1" - -inherit kernel - -KERNEL_RELEASE = "2.6.20-rc2" - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx" - -RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" -DMSRC = "http://people.openezx.org/dotmonkey/patch" - -############################################################## -# source and patches -# -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2 \ - ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/testing/patch-2.6.20-rc2.bz2;patch=1 \ - ${DMSRC}/Kconfig.patch;patch=1;pnum=5 \ - ${DMSRC}/Makefile.patch;patch=1;pnum=5 \ - ${DMSRC}/head-xscale.S.patch;patch=1;pnum=5 \ - ${DMSRC}/sumatra.c.patch;patch=1;pnum=1 \ - ${DMSRC}/uncompress.h.patch;patch=1;pnum=5 \ - file://logo_linux_clut224.ppm \ - file://defconfig-${MACHINE} \ - file://wyrm-ts.diff;patch=1" - -S = "${WORKDIR}/linux-2.6.19" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = '(a780|e680|a1200|rokr-e2)' - -CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd" -CMDLINE_CON_rokr-e2 = "video=pxafb:mode:240x320-8,active console=ttyS2,115200n8 console=tty1" - -CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000" -CMDLINE_rokr-e2 = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}" - -############################################################### -# module configs specific to this kernel -# -module_autoload_pxaficp_ir = "pxaficp_ir" -module_autoload_snd-pcm-oss = "snd-pcm-oss" - -do_ezxpatch() { - #mv ${WORKDIR}/patches ${S} && cd ${S} && quilt push -av - #rm -Rf patches .pc - : -} - -do_configure() { - install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# check the kernel is below the 1024*1024 byte limit for the boot-over usb -# -do_compile_append() { - size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'` - if [ $size -ge 1294336 ]; then - rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE} - echo "Size is $size" - die "This kernel is too big for your EZX Phone. Please reduce the size of the kernel by making more of it modular." - fi -} - -############################################################### -# put into deploy directory -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_package after do_install -addtask ezxpatch before do_patch after do_unpack diff --git a/packages/linux/linux-ezx_2.6.20.7.bb b/packages/linux/linux-ezx_2.6.20.7.bb deleted file mode 100644 index 7336fee762..0000000000 --- a/packages/linux/linux-ezx_2.6.20.7.bb +++ /dev/null @@ -1,125 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for the Motorola GSM phones A780 and E680" -SECTION = "kernel" -AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>" -HOMEPAGE = "http://www.openezx.org" -LICENSE = "GPL" -DEPENDS += "quilt-native" -EZX = "ezx0" -PR = "${EZX}-r0" - -DEFAULT_PREFERENCE = "-1" - - -inherit kernel - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx" -RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" - -############################################################## -# source and patches -# -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.20.7.tar.bz2 \ - \ - file://ezx-core.patch;patch=1 \ - file://ezx-pcap.patch;patch=1 \ - file://ezx-mci.patch;patch=1 \ - file://usb_pxa27x_udc-r3.patch;patch=1 \ - file://usb_add_epalloc-r3.patch;patch=1 \ - file://ezx-emu.patch;patch=1 \ - file://ezx-fix-usb_pxa27x_udc-r3.patch;patch=1 \ - file://ezx-mtd-map.patch;patch=1 \ - file://ezx-serial-bug-workaround.patch;patch=1 \ - file://mux_cli.patch;patch=1 \ - file://mux-fix.patch;patch=1 \ - file://mux-fix-init-errorpath.patch;patch=1 \ - file://mux-remove-flipbuffers.patch;patch=1 \ - file://mux-remove-get_halted_bit.patch;patch=1 \ - file://mux-remove-usbh_finished_resume.patch;patch=1 \ - file://mux-fix-makefile.patch;patch=1 \ - file://mux-fix-tty-driver.patch;patch=1 \ - \ - file://logo_linux_clut224.ppm \ - file://defconfig-a780 \ - file://defconfig-e680 \ - " - -S = "${WORKDIR}/linux-2.6.20.7" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = '(a780|e680)' - -CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd" -CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG} mem=32M@0xA0000000 mem=16M@0xAC000000" - -############################################################### -# module configs specific to this kernel -# -module_autoload_pxaficp_ir = "pxaficp_ir" -module_autoload_snd-pcm-oss = "snd-pcm-oss" - -do_configure() { - install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# check the kernel is below the 1024*1024 byte limit for the boot-over usb -# -do_compile_append() { - size=`ls -l arch/${ARCH}/boot/${KERNEL_IMAGETYPE} | awk '{ print $5}'` - if [ $size -ge 1294336 ]; then - rm arch/${ARCH}/boot/${KERNEL_IMAGETYPE} - echo "Size is $size" - echo "This kernel is too big for your EZX Phone. Please reduce the size of the kernel by making more of it modular." - fi -} - -############################################################### -# put into deploy directory -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib -} - -do_deploy[dirs] = "${S}" - -addtask deploy before do_package after do_install diff --git a/packages/linux/linux-ezx_2.6.21.bb b/packages/linux/linux-ezx_2.6.21.bb index 80c0122504..8b111a2c44 100644 --- a/packages/linux/linux-ezx_2.6.21.bb +++ b/packages/linux/linux-ezx_2.6.21.bb @@ -4,52 +4,59 @@ AUTHOR = "Harald Welte and the OpenEZX Team <openezx-devel@lists.openezx.org>" HOMEPAGE = "http://www.openezx.org" LICENSE = "GPL" DEPENDS += "quilt-native" -EZX = "ezx0" -PR = "${EZX}-r5" +EZX = "ezxdev" +PR = "${EZX}-r6" inherit kernel -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-ezx" -RPSRC = "http://www.rpsys.net/openzaurus/patches/archive" - ############################################################## # source and patches # SRC_URI = " \ - ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ - file://ezx-core.patch;patch=1 \ - file://ezx-bp.patch;patch=1 \ - file://ezx-pm.patch;patch=1 \ - file://ezx-pcap.patch;patch=1 \ - file://a780-mci.patch;patch=1 \ - file://e680-mci.patch;patch=1 \ - file://pxa27x-udc-support.2.patch;patch=1 \ - file://ezx-emu.patch;patch=1 \ - file://ezx-mtd-map.patch;patch=1 \ - file://ezx-serial-bug-workaround.patch;patch=1 \ - file://pxa-kbd.patch;patch=1 \ - file://a780-kbd.patch;patch=1 \ - file://e680-kbd.patch;patch=1 \ - file://pcap-ts.patch;patch=1 \ - file://ezx-backlight.patch;patch=1 \ - file://a780-flip.patch;patch=1 \ - file://e680-locksw.patch;patch=1 \ - file://a780-leds.patch;patch=1 \ - file://e680-leds.patch;patch=1 \ - file://a780-vibrator.patch;patch=1 \ - file://mux_cli.patch;patch=1 \ - file://mux-fix.patch;patch=1 \ - file://mux-fix-init-errorpath.patch;patch=1 \ - file://mux-remove-flipbuffers.patch;patch=1 \ - file://mux-remove-get_halted_bit.patch;patch=1 \ - file://mux-remove-usbh_finished_resume.patch;patch=1 \ - file://mux-fix-makefile.patch;patch=1 \ - file://mux-fix-tty-driver.patch;patch=1 \ - file://mux-linux-2.6.21-fix.patch;patch=1 \ - file://logo_linux_clut224.ppm \ - file://defconfig-a780 \ - file://defconfig-e680 \ - " + ${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ + file://logo_linux_clut224.ppm \ + \ + file://patches/patch-2.6.21.4;patch=1 \ + file://patches/ezx-core.patch;patch=1 \ + file://patches/ezx-bp.patch;patch=1 \ + file://patches/ezx-pm.patch;patch=1 \ + file://patches/ezx-pcap.patch;patch=1 \ + file://patches/a780-mci.patch;patch=1 \ + file://patches/e680-mci.patch;patch=1 \ + file://patches/a1200-mci.patch;patch=1 \ + file://patches/pxa27x-udc-support.2.patch;patch=1 \ + file://patches/ezx-emu.patch;patch=1 \ + file://patches/ezx-mtd-map.patch;patch=1 \ + file://patches/ezx-serial-bug-workaround.patch;patch=1 \ + file://patches/pxa-kbd.patch;patch=1 \ + file://patches/a780-kbd.patch;patch=1 \ + file://patches/e680-kbd.patch;patch=1 \ + file://patches/pcap-ts.patch;patch=1 \ + file://patches/a780-ts.patch;patch=1 \ + file://patches/e680-ts.patch;patch=1 \ + file://patches/a1200-ts.patch;patch=1 \ + file://patches/ezx-backlight.patch;patch=1 \ + file://patches/a780-flip.patch;patch=1 \ + file://patches/e680-locksw.patch;patch=1 \ + file://patches/a780-leds.patch;patch=1 \ + file://patches/e680-leds.patch;patch=1 \ + file://patches/a780-vibrator.patch;patch=1 \ + file://patches/mux_cli.patch;patch=1 \ + file://patches/mux-fix.patch;patch=1 \ + file://patches/mux-fix-init-errorpath.patch;patch=1 \ + file://patches/mux-remove-flipbuffers.patch;patch=1 \ + file://patches/mux-remove-get_halted_bit.patch;patch=1 \ + file://patches/mux-remove-usbh_finished_resume.patch;patch=1 \ + file://patches/mux-fix-makefile.patch;patch=1 \ + file://patches/mux-fix-tty-driver.patch;patch=1 \ + file://patches/mux-linux-2.6.21-fix.patch;patch=1 \ + file://patches/defconfig-a1200 \ + file://patches/defconfig-a780 \ + file://patches/defconfig-e2 \ + file://patches/defconfig-e6 \ + file://patches/defconfig-e680 \ + \ + " S = "${WORKDIR}/linux-${PV}" @@ -61,7 +68,7 @@ FILES_kernel-image = "" ALLOW_EMPTY = "1" COMPATIBLE_HOST = "arm.*-linux" -COMPATIBLE_MACHINE = '(a780|e680)' +COMPATIBLE_MACHINE = '(a780|e680|a1200)' # For now the code for serial console is disabled in compress.c #CMDLINE_CON = "console=ttyS2,115200n8 console=tty1 noinitrd" @@ -79,13 +86,13 @@ CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDL ############################################################### # module configs specific to this kernel # -module_autoload_pxaficp_ir = "pxaficp_ir" -module_autoload_snd-pcm-oss = "snd-pcm-oss" +#module_autoload_pxaficp_ir = "pxaficp_ir" +#module_autoload_snd-pcm-oss = "snd-pcm-oss" do_configure() { install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then + if [ ! -e ${WORKDIR}/patches/defconfig-${MACHINE} ]; then die "No default configuration for ${MACHINE} available." fi @@ -99,6 +106,13 @@ do_configure() { echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config fi + # + # Logo configuration + # + echo "CONFIG_LOGO=y" >> ${S}/.config + echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config + + sed -e '/CONFIG_AEABI/d' \ -e '/CONFIG_OABI_COMPAT=/d' \ -e '/CONFIG_CMDLINE=/d' \ @@ -106,7 +120,9 @@ do_configure() { -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' + -e '/CONFIG_LOGO=/d' \ + -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \ + '${WORKDIR}/patches/defconfig-${MACHINE}' >>'${S}/.config' yes '' | oe_runmake oldconfig } @@ -128,10 +144,10 @@ do_compile_append() { # do_deploy() { install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib + install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin + tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${PV}-${PR}-${MACHINE}-${DATETIME}.tgz -C ${D} lib } do_deploy[dirs] = "${S}" -addtask deploy before do_populate_staging after do_package +addtask deploy before do_package after do_install diff --git a/packages/linux/linux-gta01.inc b/packages/linux/linux-gta01.inc index ee3c09e908..915e5633af 100644 --- a/packages/linux/linux-gta01.inc +++ b/packages/linux/linux-gta01.inc @@ -3,7 +3,7 @@ SECTION = "kernel" AUTHOR = "Harald Welte <laforge@openmoko.org>" HOMEPAGE = "N/A" LICENSE = "GPL" -DEPENDS += "u-boot-mkimage-gta01-native" +DEPENDS += "quilt-native uboot-gta01" inherit kernel @@ -12,7 +12,7 @@ FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01" ############################################################## # source and patches # -SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \ +SRC_URI = "http://ftp.de.kernel.org/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \ file://defconfig-${VANILLA_VERSION}-${MACHINE}" S = "${WORKDIR}/linux-${VANILLA_VERSION}" @@ -22,9 +22,10 @@ S = "${WORKDIR}/linux-${VANILLA_VERSION}" FILES_kernel-image = "" ALLOW_EMPTY = "1" +COMPATIBLE_HOST = "arm.*-linux" COMPATIBLE_MACHINE = 'fic-gta01' -CMDLINE_CON = "" +CMDLINE_CON = "console=ttySAC0,115200n8" #CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" # uncomment if you want to boot over NFS #CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" @@ -37,10 +38,15 @@ CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDL ############################################################### # module configs specific to this kernel # + +# usb module_autoload_ohci-hcd = "ohci-hcd" +module_autoload_hci_usb = "hci_usb" module_autoload_g_ether = "g_ether" -#module_autoload_snd-pcm-oss = "snd-pcm-oss" -#module_autoload_snd-soc-corgi_c7x0 = "snd-soc-s3c24xx" +# audio +module_autoload_snd-soc-neo1973-wm8753 = "snd-soc-neo1973-wm8753" +# sd/mmc +module_autoload_s3cmci = "s3cmci" do_prepatch() { mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av @@ -48,6 +54,8 @@ do_prepatch() { } do_configure() { + #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm + if [ ! -e ${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE} ]; then die "No default configuration for ${MACHINE} available." fi @@ -79,12 +87,12 @@ do_configure() { # do_deploy() { install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin + install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}.bin tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin rm -f linux.bin.gz gzip -9 linux.bin - uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin + ${STAGING_BINDIR_NATIVE}/uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}.bin rm -f linux.bin.gz } diff --git a/packages/linux/linux-gta01/defconfig-2.6.21.1-fic-gta01 b/packages/linux/linux-gta01/defconfig-2.6.21.3-fic-gta01 index 9f2ff3de21..16b2ac1dab 100644 --- a/packages/linux/linux-gta01/defconfig-2.6.21.1-fic-gta01 +++ b/packages/linux/linux-gta01/defconfig-2.6.21.3-fic-gta01 @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21.1 -# Fri May 18 12:58:24 2007 +# Linux kernel version: 2.6.21.3 +# Mon Jun 11 18:32:32 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -44,8 +44,7 @@ CONFIG_SYSVIPC_SYSCTL=y # CONFIG_TASKSTATS is not set # CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -CONFIG_IKCONFIG=y -CONFIG_IKCONFIG_PROC=y +# CONFIG_IKCONFIG is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set CONFIG_BLK_DEV_INITRD=y @@ -167,7 +166,7 @@ CONFIG_S3C2410_CLOCK=y # CONFIG_MACH_OTOM is not set # CONFIG_MACH_AML_M5900 is not set # CONFIG_MACH_VR1000 is not set -# CONFIG_MACH_QT2410 is not set +CONFIG_MACH_QT2410=y CONFIG_MACH_NEO1973_GTA01=y # @@ -188,6 +187,7 @@ CONFIG_ARCH_S3C2440=y # CONFIG_MACH_NEXCODER_2440 is not set CONFIG_SMDK2440_CPU2440=y CONFIG_MACH_HXD8=y +# CONFIG_MACH_NEO1973_GTA02 is not set # # S3C2442 Machines @@ -237,8 +237,7 @@ CONFIG_ARM_THUMB=y CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y CONFIG_HZ=200 -CONFIG_AEABI=y -CONFIG_OABI_COMPAT=y +# CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -257,7 +256,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE=" ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug" +CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug" # CONFIG_XIP_KERNEL is not set CONFIG_KEXEC=y @@ -276,14 +275,16 @@ CONFIG_FPE_FASTFPE=y # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set -CONFIG_BINFMT_MISC=m +# CONFIG_BINFMT_MISC is not set +# CONFIG_ARTHUR is not set # # Power management options # CONFIG_PM=y -# CONFIG_PM_LEGACY is not set -# CONFIG_PM_DEBUG is not set +CONFIG_PM_LEGACY=y +CONFIG_PM_DEBUG=y +CONFIG_DISABLE_CONSOLE_SUSPEND=y # CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM_EMULATION=y @@ -296,7 +297,7 @@ CONFIG_NET=y # Networking options # # CONFIG_NETDEBUG is not set -CONFIG_PACKET=y +CONFIG_PACKET=m CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y @@ -314,7 +315,10 @@ CONFIG_IP_FIB_HASH=y CONFIG_IP_MULTIPLE_TABLES=y # CONFIG_IP_ROUTE_MULTIPATH is not set # CONFIG_IP_ROUTE_VERBOSE is not set -# CONFIG_IP_PNP is not set +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_RARP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m # CONFIG_NET_IPGRE_BROADCAST is not set @@ -838,6 +842,8 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set +CONFIG_NET_PCI=y +CONFIG_CS89x0=m # # Ethernet (1000 Mbit) @@ -911,6 +917,7 @@ CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_GPIO=m CONFIG_KEYBOARD_GTA01=y +CONFIG_KEYBOARD_QT2410=y CONFIG_INPUT_MOUSE=y # CONFIG_MOUSE_PS2 is not set # CONFIG_MOUSE_SERIAL is not set @@ -1005,9 +1012,9 @@ CONFIG_I2C_CHARDEV=y # # I2C Algorithms # -CONFIG_I2C_ALGOBIT=m -CONFIG_I2C_ALGOPCF=m -CONFIG_I2C_ALGOPCA=m +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support @@ -1025,11 +1032,12 @@ CONFIG_I2C_S3C2410=y # CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_EEPROM is not set CONFIG_SENSORS_PCF50606=y +# CONFIG_SENSORS_PCF50633 is not set # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set -# CONFIG_SENSORS_TSL256X is not set +CONFIG_SENSORS_TSL256X=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set @@ -1126,7 +1134,7 @@ CONFIG_LEDS_CLASS=y # # LED drivers # -# CONFIG_LEDS_S3C24XX is not set +CONFIG_LEDS_S3C24XX=m CONFIG_LEDS_GTA01=y # @@ -1134,7 +1142,7 @@ CONFIG_LEDS_GTA01=y # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y -CONFIG_LEDS_TRIGGER_HEARTBEAT=m +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # Multimedia devices @@ -1172,6 +1180,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_S1D13XXX is not set CONFIG_FB_S3C2410=y CONFIG_FB_S3C2410_DEBUG=y +# CONFIG_FB_GLAMO is not set # CONFIG_FB_VIRTUAL is not set # @@ -1266,11 +1275,11 @@ CONFIG_SND_SOC=y # # SoC Audio for the Samsung S3C24XX # -CONFIG_SND_S3C24XX_SOC=y -CONFIG_SND_S3C24XX_SOC_I2S=y +CONFIG_SND_S3C24XX_SOC=m +CONFIG_SND_S3C24XX_SOC_I2S=m CONFIG_SND_S3C24XX_SOC_SMDK2440=m -CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y -CONFIG_SND_SOC_WM8753=y +CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=m +CONFIG_SND_SOC_WM8753=m CONFIG_SND_SOC_UDA1380=m # @@ -1515,7 +1524,7 @@ CONFIG_USB_ETH_RNDIS=y CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y -CONFIG_MMC_S3C=y +CONFIG_MMC_S3C=m # # Real Time Clock @@ -1566,11 +1575,7 @@ CONFIG_JBD=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y -CONFIG_XFS_FS=m -# CONFIG_XFS_QUOTA is not set -# CONFIG_XFS_SECURITY is not set -# CONFIG_XFS_POSIX_ACL is not set -# CONFIG_XFS_RT 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 @@ -1623,7 +1628,16 @@ CONFIG_CONFIGFS_FS=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_YAFFS_FS is not set +CONFIG_YAFFS_FS=y +CONFIG_YAFFS_YAFFS1=y +# CONFIG_YAFFS_DOES_ECC is not set +CONFIG_YAFFS_YAFFS2=y +CONFIG_YAFFS_AUTO_YAFFS2=y +# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set +CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS=10 +# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set +# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set +CONFIG_YAFFS_SHORT_NAMES_IN_RAM=y CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y @@ -1653,6 +1667,7 @@ CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y +# CONFIG_ROOT_NFS is not set CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m @@ -1747,9 +1762,9 @@ CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set -CONFIG_TIMER_STATS=y +# CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_PREEMPT is not set +CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set @@ -1758,7 +1773,7 @@ CONFIG_TIMER_STATS=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y -# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_INFO=y # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y diff --git a/packages/linux/linux-gta01/fix-EVIOCGRAB-semantics.patch b/packages/linux/linux-gta01/fix-EVIOCGRAB-semantics.patch new file mode 100644 index 0000000000..3c96faa271 --- /dev/null +++ b/packages/linux/linux-gta01/fix-EVIOCGRAB-semantics.patch @@ -0,0 +1,97 @@ +diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c +index 12c7ab8..c7e741b 100644 +--- a/drivers/input/evdev.c ++++ b/drivers/input/evdev.c +@@ -29,7 +29,7 @@ struct evdev { + char name[16]; + struct input_handle handle; + wait_queue_head_t wait; +- struct evdev_list *grab; ++ int grab; + struct list_head list; + }; + +@@ -37,6 +37,7 @@ struct evdev_list { + struct input_event buffer[EVDEV_BUFFER_SIZE]; + int head; + int tail; ++ int grab; + struct fasync_struct *fasync; + struct evdev *evdev; + struct list_head node; +@@ -49,8 +50,7 @@ static void evdev_event(struct input_han + struct evdev *evdev = handle->private; + struct evdev_list *list; + +- if (evdev->grab) { +- list = evdev->grab; ++ list_for_each_entry(list, &evdev->list, node) { + + do_gettimeofday(&list->buffer[list->head].time); + list->buffer[list->head].type = type; +@@ -59,17 +59,7 @@ static void evdev_event(struct input_han + list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); + + kill_fasync(&list->fasync, SIGIO, POLL_IN); +- } else +- list_for_each_entry(list, &evdev->list, node) { +- +- do_gettimeofday(&list->buffer[list->head].time); +- list->buffer[list->head].type = type; +- list->buffer[list->head].code = code; +- list->buffer[list->head].value = value; +- list->head = (list->head + 1) & (EVDEV_BUFFER_SIZE - 1); +- +- kill_fasync(&list->fasync, SIGIO, POLL_IN); +- } ++ } + + wake_up_interruptible(&evdev->wait); + } +@@ -104,9 +94,10 @@ static int evdev_release(struct inode * + { + struct evdev_list *list = file->private_data; + +- if (list->evdev->grab == list) { +- input_release_device(&list->evdev->handle); +- list->evdev->grab = NULL; ++ if (list->grab) { ++ if(!--list->evdev->grab && list->evdev->exist) ++ input_release_device(&list->evdev->handle); ++ list->grab = 0; + } + + evdev_fasync(-1, file, 0); +@@ -483,17 +474,19 @@ static long evdev_ioctl_handler(struct f + + case EVIOCGRAB: + if (p) { +- if (evdev->grab) +- return -EBUSY; +- if (input_grab_device(&evdev->handle)) ++ if (list->grab) + return -EBUSY; +- evdev->grab = list; ++ if (!evdev->grab++) ++ if (input_grab_device(&evdev->handle)) ++ return -EBUSY; ++ list->grab = 0; + return 0; + } else { +- if (evdev->grab != list) ++ if (!list->grab) + return -EINVAL; +- input_release_device(&evdev->handle); +- evdev->grab = NULL; ++ if (!--evdev->grab) ++ input_release_device(&evdev->handle); ++ list->grab = 0; + return 0; + } + +- +To unsubscribe from this list: send the line "unsubscribe linux-kernel" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html +Please read the FAQ at http://www.tux.org/lkml/ + diff --git a/packages/linux/linux-gta01/udc-nomodule-misccr.patch b/packages/linux/linux-gta01/udc-nomodule-misccr.patch deleted file mode 100644 index 0f84b56c2a..0000000000 --- a/packages/linux/linux-gta01/udc-nomodule-misccr.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: linux-2.6.17.14-fic1/drivers/usb/gadget/s3c2410_udc.c -=================================================================== ---- linux-2.6.17.14-fic1.orig/drivers/usb/gadget/s3c2410_udc.c 2006-11-03 01:22:14.000000000 +0100 -+++ linux-2.6.17.14-fic1/drivers/usb/gadget/s3c2410_udc.c 2006-11-03 12:41:52.000000000 +0100 -@@ -1492,7 +1492,7 @@ - return -ENODEV; - if (udc->driver) - return -EBUSY; -- if (!driver->bind || !driver->unbind || !driver->setup -+ if (!driver->bind || !driver->setup - || driver->speed == USB_SPEED_UNKNOWN) - return -EINVAL; - -@@ -1700,6 +1700,8 @@ - } - dprintk(DEBUG_VERBOSE, "%s: got irq %i\n", gadget_name, IRQ_USBD); - -+ s3c2410_modify_misccr(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND0|S3C2410_MISCCR_USBSUSPND1, 0); -+ - #ifdef ENABLE_SYSFS - /* create device files */ - device_create_file(&pdev->dev, &dev_attr_regs); diff --git a/packages/linux/linux-gta01_2.6.17.14.bb b/packages/linux/linux-gta01_2.6.17.14.bb deleted file mode 100644 index 8f3c37753a..0000000000 --- a/packages/linux/linux-gta01_2.6.17.14.bb +++ /dev/null @@ -1,101 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for FIC Neo1973 (GTA01)" -SECTION = "kernel" -AUTHOR = "Harald Welte <laforge@openmoko.org>" -HOMEPAGE = "N/A" -LICENSE = "GPL" -DEPENDS += "uboot-gta01" -MOKOR = "moko7" -PR = "${MOKOR}-r1" - -inherit kernel - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01" -#HWSRC = "http://people.gta01.openmoko.org/laforge/src/kernel/20060806" - -############################################################## -# source and patches -# -SRC_URI = "http://ftp.de.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.14.tar.bz2 \ - svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=https \ - file://defconfig-${MACHINE}" -S = "${WORKDIR}/linux-2.6.17.14" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_MACHINE = 'fic-gta01' - -CMDLINE_CON = "console=ttySAC0,115200n8" -#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}" - -############################################################### -# module configs specific to this kernel -# -module_autoload_ohci-hcd = "ohci-hcd" -module_autoload_g_ether = "g_ether" -#module_autoload_snd-pcm-oss = "snd-pcm-oss" -#module_autoload_snd-soc-corgi_c7x0 = "snd-soc-s3c24xx" - -do_prepatch() { - mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av - rm -Rf patches .pc -} - -do_configure() { - #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# put into deploy directory and append u-boot header -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib - arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin - rm -f linux.bin.gz - gzip -9 linux.bin - uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin - rm -f linux.bin.gz -} - -do_deploy[dirs] = "${S}" - -addtask prepatch before do_patch after do_unpack -addtask deploy before do_package after do_install - diff --git a/packages/linux/linux-gta01_2.6.17.7.bb b/packages/linux/linux-gta01_2.6.17.7.bb deleted file mode 100644 index cf4bfeb8ea..0000000000 --- a/packages/linux/linux-gta01_2.6.17.7.bb +++ /dev/null @@ -1,97 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for FIC GTA01" -SECTION = "kernel" -AUTHOR = "Harald Welte <hwelte@hmw-consulting.de>" -HOMEPAGE = "N/A" -LICENSE = "GPL" -DEPENDS += "uboot-gta01" -PR = "r4" - -inherit kernel - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01" -HWSRC = "http://people.gta01.hmw-consulting.de/laforge/src/kernel/20060806" - -############################################################## -# source and patches -# -SRC_URI = "http://people.gta01.hmw-consulting.de/laforge/tmp/linux-2.6.17.7-gta01-lcm.tar.bz2 \ - file://defconfig-${MACHINE}" -S = "${WORKDIR}/linux-2.6.17.7-new" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_MACHINE = 'fic-gta01' - -CMDLINE_CON = "console=ttySAC0,115200n8" -#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}" - -############################################################### -# module configs specific to this kernel -# -#module_autoload_pxaficp_ir = "pxaficp_ir" -#module_autoload_snd-pcm-oss = "snd-pcm-oss" - -do_prepatch() { - mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av - rm -Rf patches .pc -} - -do_configure() { - #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# put into deploy directory and append u-boot header -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${MACHINE}.tgz -C ${D} lib - arm-linux-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin - rm -f linux.bin.gz - gzip -9 linux.bin - uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "Kernel Image QT2410" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${MACHINE}-${DATETIME}.bin - rm -f linux.bin.gz -} - -do_deploy[dirs] = "${S}" - -addtask prepatch before do_patch after do_unpack -addtask deploy before do_package after do_install - diff --git a/packages/linux/linux-gta01_2.6.20.bb b/packages/linux/linux-gta01_2.6.20.bb deleted file mode 100644 index 2c8fe80b33..0000000000 --- a/packages/linux/linux-gta01_2.6.20.bb +++ /dev/null @@ -1,102 +0,0 @@ -DESCRIPTION = "2.6 Linux Development Kernel for FIC Neo1973 (GTA01)" -SECTION = "kernel" -AUTHOR = "Harald Welte <laforge@openmoko.org>" -HOMEPAGE = "N/A" -LICENSE = "GPL" -DEPENDS += "u-boot-mkimage-gta01-native" -MOKOR = "moko8" -PR = "${MOKOR}-r2" - -VANILLA_VERSION = "2.6.20" - -inherit kernel - -FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/linux-gta01" - -############################################################## -# source and patches -# -SRC_URI = "http://ftp.de.kernel.org/pub/linux/kernel/v2.6/linux-${VANILLA_VERSION}.tar.bz2 \ - svn://svn.openmoko.org/branches/src/target/kernel/2.6.20.x;module=patches;proto=http \ - file://defconfig-${VANILLA_VERSION}-${MACHINE}" -S = "${WORKDIR}/linux-${VANILLA_VERSION}" - -############################################################## -# kernel image resides on a seperate flash partition (for now) -# -FILES_kernel-image = "" -ALLOW_EMPTY = "1" - -COMPATIBLE_MACHINE = 'fic-gta01' - -CMDLINE_CON = "" -#CMDLINE_ROOT = "root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=5" -# uncomment if you want to boot over NFS -#CMDLINE_ROOT = "root=/dev/nfs nfsroot=192.168.1.10:/export/opie-image rootdelay=5 3" -# uncomment to enable dyntick -#CMDLINE_OTHER = "dyntick=enable" -CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' -CMDLINE_IP = "ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off" -CMDLINE = "${CMDLINE_CON} ${CMDLINE_ROOT} ${CMDLINE_IP} ${CMDLINE_ROTATE} ${CMDLINE_OTHER} ${CMDLINE_DEBUG}" - -############################################################### -# module configs specific to this kernel -# -module_autoload_ohci-hcd = "ohci-hcd" -module_autoload_g_ether = "g_ether" -#module_autoload_snd-pcm-oss = "snd-pcm-oss" -#module_autoload_snd-soc-corgi_c7x0 = "snd-soc-s3c24xx" - -do_prepatch() { - mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av - rm -Rf patches .pc -} - -do_configure() { - #install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm - - if [ ! -e ${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE} ]; then - die "No default configuration for ${MACHINE} available." - fi - - echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - - if [ "${TARGET_OS}" == "linux-gnueabi" ]; then - echo "CONFIG_AEABI=y" >> ${S}/.config - echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config - else - echo "# CONFIG_AEABI is not set" >> ${S}/.config - echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config - fi - - sed -e '/CONFIG_AEABI/d' \ - -e '/CONFIG_OABI_COMPAT=/d' \ - -e '/CONFIG_CMDLINE=/d' \ - -e '/CONFIG_MTD_MTDRAM_SA1100=/d' \ - -e '/CONFIG_MTDRAM_TOTAL_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ERASE_SIZE=/d' \ - -e '/CONFIG_MTDRAM_ABS_POS=/d' \ - '${WORKDIR}/defconfig-${VANILLA_VERSION}-${MACHINE}' >>'${S}/.config' - - yes '' | oe_runmake oldconfig -} - -############################################################### -# put into deploy directory and append u-boot header -# -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${PR}-${MACHINE}-${DATETIME}.bin - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_RELEASE}-${PR}-${MACHINE}.tgz -C ${D} lib - ${OBJCOPY} -O binary -R .note -R .comment -S vmlinux linux.bin - rm -f linux.bin.gz - gzip -9 linux.bin - uboot-mkimage -A arm -O linux -T kernel -C gzip -a 30008000 -e 30008000 -n "OpenMoko Kernel Image Neo1973(GTA01)" -d linux.bin.gz ${DEPLOY_DIR_IMAGE}/uImage-${PV}-${PR}-${MACHINE}-${DATETIME}.bin - rm -f linux.bin.gz -} - -do_deploy[dirs] = "${S}" - -addtask prepatch before do_patch after do_unpack -addtask deploy before do_package after do_install - diff --git a/packages/linux/linux-gta01_2.6.21.1.bb b/packages/linux/linux-gta01_2.6.21.3.bb index a9bf11126b..cccc4dd6a1 100644 --- a/packages/linux/linux-gta01_2.6.21.1.bb +++ b/packages/linux/linux-gta01_2.6.21.3.bb @@ -1,10 +1,10 @@ require linux-gta01.inc -DEFAULT_PREFERENCE = "-6" +SRC_URI += "svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http" +SRC_URI += "file://fix-EVIOCGRAB-semantics.patch;patch=1" MOKOR = "moko10" -PR = "${MOKOR}-r0" -VANILLA_VERSION = "2.6.21.1" +PR = "${MOKOR}-r3" -SRC_URI += "svn://svn.openmoko.org/trunk/src/target/kernel;module=patches;proto=http" +VANILLA_VERSION = "2.6.21.3" diff --git a/packages/linux/linux-hackndev-2.6_svn.bb b/packages/linux/linux-hackndev-2.6_svn.bb index fa2a209d50..64d74a357f 100644 --- a/packages/linux/linux-hackndev-2.6_svn.bb +++ b/packages/linux/linux-hackndev-2.6_svn.bb @@ -19,7 +19,7 @@ S = "${WORKDIR}/trunk" K_MAJOR = "2" K_MINOR = "6" K_MICRO = "21" -HHV="hnd1" +HHV="hnd2" PV = "${K_MAJOR}.${K_MINOR}.${K_MICRO}-${HHV}" inherit kernel diff --git a/packages/linux/linux-handhelds-2.6/aximx50/defconfig b/packages/linux/linux-handhelds-2.6/aximx50/defconfig index 7b2c332d40..111b8bf0f9 100644 --- a/packages/linux/linux-handhelds-2.6/aximx50/defconfig +++ b/packages/linux/linux-handhelds-2.6/aximx50/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:21 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:15 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h2200/defconfig b/packages/linux/linux-handhelds-2.6/h2200/defconfig index c40780e0d9..b9a1b826b6 100644 --- a/packages/linux/linux-handhelds-2.6/h2200/defconfig +++ b/packages/linux/linux-handhelds-2.6/h2200/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:23 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:16 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h3600/defconfig b/packages/linux/linux-handhelds-2.6/h3600/defconfig index bd58264fd9..03d94d8ac9 100644 --- a/packages/linux/linux-handhelds-2.6/h3600/defconfig +++ b/packages/linux/linux-handhelds-2.6/h3600/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:24 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:18 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h3800/defconfig b/packages/linux/linux-handhelds-2.6/h3800/defconfig index 8b93a0f93c..6affe42376 100644 --- a/packages/linux/linux-handhelds-2.6/h3800/defconfig +++ b/packages/linux/linux-handhelds-2.6/h3800/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:26 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:20 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h3900/defconfig b/packages/linux/linux-handhelds-2.6/h3900/defconfig index 5fba9c979f..7e5f8d2d0e 100644 --- a/packages/linux/linux-handhelds-2.6/h3900/defconfig +++ b/packages/linux/linux-handhelds-2.6/h3900/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:28 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:22 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h4000/defconfig b/packages/linux/linux-handhelds-2.6/h4000/defconfig index 5720f82af4..259486ee78 100644 --- a/packages/linux/linux-handhelds-2.6/h4000/defconfig +++ b/packages/linux/linux-handhelds-2.6/h4000/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:30 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:24 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/h5000/defconfig b/packages/linux/linux-handhelds-2.6/h5000/defconfig index 710f15a716..48c421e9d8 100644 --- a/packages/linux/linux-handhelds-2.6/h5000/defconfig +++ b/packages/linux/linux-handhelds-2.6/h5000/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:32 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:26 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig index 36946e8e09..94714a6d7b 100644 --- a/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig +++ b/packages/linux/linux-handhelds-2.6/htcblueangel/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:37 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:31 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig index b50b9e4d29..e679e5e847 100644 --- a/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig +++ b/packages/linux/linux-handhelds-2.6/htcuniversal/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:39 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:33 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig index 0035d6189c..a2da0c17b3 100644 --- a/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig +++ b/packages/linux/linux-handhelds-2.6/htcwallaby/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:40 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:35 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/hx4700/defconfig b/packages/linux/linux-handhelds-2.6/hx4700/defconfig index 67e1c59d84..baba338606 100644 --- a/packages/linux/linux-handhelds-2.6/hx4700/defconfig +++ b/packages/linux/linux-handhelds-2.6/hx4700/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:33 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:28 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6/magician/defconfig b/packages/linux/linux-handhelds-2.6/magician/defconfig index c7c8c5cb91..7cd642f521 100644 --- a/packages/linux/linux-handhelds-2.6/magician/defconfig +++ b/packages/linux/linux-handhelds-2.6/magician/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hh8 -# Wed Jun 20 18:24:35 2007 +# Linux kernel version: 2.6.21-hh9 +# Fri Jun 22 18:35:29 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -49,7 +49,8 @@ CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_EMBEDDED=y diff --git a/packages/linux/linux-handhelds-2.6_2.6.21-hh9.bb b/packages/linux/linux-handhelds-2.6_2.6.21-hh9.bb new file mode 100644 index 0000000000..ec5844bfb5 --- /dev/null +++ b/packages/linux/linux-handhelds-2.6_2.6.21-hh9.bb @@ -0,0 +1,11 @@ +SECTION = "kernel" +DESCRIPTION = "handhelds.org Linux kernel 2.6 for PocketPCs and other consumer handheld devices." +LICENSE = "GPL" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \ + file://defconfig" + +require linux-handhelds-2.6.inc diff --git a/packages/linux/linux-jlime-current.bb b/packages/linux/linux-jlime-current.bb new file mode 100644 index 0000000000..68bcd4ab04 --- /dev/null +++ b/packages/linux/linux-jlime-current.bb @@ -0,0 +1,19 @@ +########################################################################### +# Currently supports : +# HP Jornada 620/660/680/690 +# HP Jornada 710/720/728 +# Nec Mobilepro 900c +# Nec Mobilpro 770/880 + +DESCRIPTION = "2.6 Linux Development Kernel for JLime supported Machines." +SECTION = "kernel" +LICENSE = "GPL" + +inherit kernel + +PR = "r1" + +SRC_URI = "git://filip.eu.org/jlime-current.git;protocol=git \ + git://filip.eu.org/jlime.git;protocol=git" + +S = "${WORKDIR}/jlime-current" diff --git a/packages/linux/linux-rp-2.6.17/defconfig-qemuarm b/packages/linux/linux-rp-2.6.17/defconfig-qemuarm index abb6726556..e34fe5c090 100644 --- a/packages/linux/linux-rp-2.6.17/defconfig-qemuarm +++ b/packages/linux/linux-rp-2.6.17/defconfig-qemuarm @@ -616,10 +616,7 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y diff --git a/packages/linux/linux-rp-2.6.17/defconfig-qemux86 b/packages/linux/linux-rp-2.6.17/defconfig-qemux86 index fb66874b90..6fe280985f 100644 --- a/packages/linux/linux-rp-2.6.17/defconfig-qemux86 +++ b/packages/linux/linux-rp-2.6.17/defconfig-qemux86 @@ -39,7 +39,7 @@ CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y CONFIG_VM86=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y @@ -812,13 +812,10 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # CONFIG_INPUT_POWER is not set @@ -831,8 +828,8 @@ CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set -CONFIG_INPUT_MOUSE=y -CONFIG_MOUSE_PS2=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_MOUSE_PS2 is not set # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_INPORT is not set # CONFIG_MOUSE_LOGIBM is not set @@ -880,8 +877,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_CORE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set CONFIG_PRINTER=y # CONFIG_LP_CONSOLE is not set # CONFIG_PPDEV is not set @@ -1224,7 +1220,7 @@ CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_SPLIT_ISO is not set # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_OHCI_HCD is not set +CONFIG_USB_OHCI_HCD=y CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set @@ -1263,7 +1259,7 @@ CONFIG_USB_HIDINPUT=y # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set # CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set +CONFIG_USB_WACOM=y # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-akita b/packages/linux/linux-rp-2.6.20/defconfig-akita index c20d0c2030..c89d954696 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-akita +++ b/packages/linux/linux-rp-2.6.20/defconfig-akita @@ -1,13 +1,23 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16 -# Thu Mar 23 22:11:12 2006 +# Linux kernel version: 2.6.20 +# Thu Mar 29 12:24:24 2007 # CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options @@ -24,16 +34,22 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" -CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -45,11 +61,9 @@ CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 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 @@ -60,7 +74,6 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -68,6 +81,10 @@ CONFIG_KMOD=y # # 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 @@ -85,16 +102,28 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type # +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set @@ -102,20 +131,16 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_AT91RM9200 is not set # # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set # CONFIG_MACH_HX2750 is not set # CONFIG_PXA_SHARPSL_25x is not set CONFIG_PXA_SHARPSL_27x=y @@ -123,10 +148,9 @@ CONFIG_MACH_AKITA=y CONFIG_MACH_SPITZ=y CONFIG_MACH_BORZOI=y CONFIG_PXA27x=y -# CONFIG_PXA_KEYS is not set -CONFIG_IWMMXT=y CONFIG_PXA_SHARP_Cxx00=y CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set # # Processor Type @@ -137,13 +161,16 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y # # Processor Features # CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_IWMMXT=y CONFIG_XSCALE_PMU=y -CONFIG_KEXEC=y CONFIG_SHARP_PARAM=y CONFIG_SHARPSL_PM=y CONFIG_SHARP_SCOOP=y @@ -171,7 +198,9 @@ CONFIG_PCMCIA_PXA2XX=y # CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y -# CONFIG_AEABI is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -181,6 +210,7 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set CONFIG_ALIGNMENT_TRAP=y # @@ -188,7 +218,9 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1 dyntick=enable quiet" # CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y # # CPU Frequency scaling @@ -212,7 +244,6 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m -# CONFIG_ARTHUR is not set # # Power management options @@ -220,6 +251,7 @@ CONFIG_BINFMT_MISC=m CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM=y # @@ -236,6 +268,7 @@ CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -249,11 +282,17 @@ CONFIG_SYN_COOKIES=y # 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=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set # # IP: Virtual Server Configuration @@ -261,11 +300,21 @@ CONFIG_TCP_CONG_BIC=y # CONFIG_IP_VS is not set CONFIG_IPV6=m # CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -273,22 +322,12 @@ CONFIG_NETFILTER=y # Core Netfilter Configuration # # CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -# CONFIG_IP_NF_CONNTRACK_EVENTS is not set -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -# CONFIG_IP_NF_NETBIOS_NS is not set -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -# CONFIG_IP_NF_PPTP is not set CONFIG_IP_NF_QUEUE=m # @@ -319,7 +358,6 @@ CONFIG_IP_NF_QUEUE=m # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -378,6 +416,7 @@ CONFIG_IRCOMM=m # CONFIG_USB_IRDA is not set # CONFIG_SIGMATEL_FIR is not set CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -409,6 +448,8 @@ CONFIG_IEEE80211=m CONFIG_IEEE80211_CRYPT_WEP=m CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -421,6 +462,7 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -442,11 +484,13 @@ CONFIG_MTD_CMDLINE_PARTS=y # User Modules And Translation Layers # CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set # # RAM/ROM/Flash chip drivers @@ -472,6 +516,7 @@ CONFIG_MTD_ROM=y # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_PLATRAM is not set @@ -481,7 +526,6 @@ CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set # CONFIG_MTD_BLOCK2MTD is not set # @@ -496,6 +540,7 @@ CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND_H1900 is not set CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_DISKONCHIP is not set @@ -525,7 +570,7 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set -CONFIG_BLK_DEV_RAM_COUNT=16 +# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -533,6 +578,7 @@ CONFIG_BLK_DEV_RAM_COUNT=16 # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y # @@ -562,6 +608,8 @@ CONFIG_IDE_GENERIC=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # @@ -581,20 +629,21 @@ CONFIG_CHR_DEV_SG=m CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set # -# SCSI Transport Attributes +# 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_SATA is not set # CONFIG_SCSI_DEBUG is not set # @@ -607,10 +656,17 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_PCMCIA_SYM53C500 is not set # +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# # Multi-device support (RAID and LVM) # CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m @@ -652,6 +708,7 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set # # Ethernet (1000 Mbit) @@ -669,6 +726,7 @@ CONFIG_MII=m # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set # # Obsolete Wireless cards support (pre-802.11) @@ -695,6 +753,7 @@ CONFIG_PCMCIA_HERMES=m CONFIG_PCMCIA_SPECTRUM=m # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set @@ -728,6 +787,7 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -742,6 +802,7 @@ CONFIG_PPP_BSDCOMP=m # Input device support # CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set # # Userland interfaces @@ -765,6 +826,7 @@ CONFIG_INPUT_KEYBOARD=y # 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_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y # CONFIG_INPUT_MOUSE is not set @@ -775,6 +837,10 @@ CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# 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=y CONFIG_INPUT_UINPUT=m @@ -790,6 +856,7 @@ CONFIG_INPUT_UINPUT=m 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 # @@ -820,15 +887,12 @@ CONFIG_UNIX98_PTYS=y # Watchdog Cards # # CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # -# Ftape, the floppy tape device driver -# - -# # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set @@ -840,7 +904,6 @@ CONFIG_UNIX98_PTYS=y # TPM devices # # CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set # # I2C support @@ -860,6 +923,7 @@ CONFIG_I2C=y # CONFIG_I2C_PXA=y # CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set @@ -899,10 +963,7 @@ CONFIG_I2C_PXA=y # # Misc devices # - -# -# Multimedia Capabilities Port drivers -# +# CONFIG_TIFM_CORE is not set # # Multi-Function Devices @@ -913,11 +974,20 @@ CONFIG_I2C_PXA=y # CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y -CONFIG_LEDS_TRIGGERS=y + +# +# LED drivers +# CONFIG_LEDS_SPITZ=y # CONFIG_LEDS_TOSA is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # Multimedia devices @@ -928,66 +998,30 @@ CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # -# Video Capture Adapters -# - -# -# Video Capture Adapters -# -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_TUNER_3036 is not set - -# -# V4L USB devices -# -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_QUICKCAM_MESSENGER is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_USB_W9968CF is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC is not set - -# -# Radio Adapters -# -# CONFIG_USB_DSBR is not set - -# - -# # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +CONFIG_USB_DABUSB=m # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # 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 # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +# CONFIG_FB_PXA_OVERLAY is not set # CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set # CONFIG_FB_W100 is not set # CONFIG_FB_VIRTUAL is not set @@ -1013,14 +1047,20 @@ CONFIG_FONT_8x16=y # # Logo configuration # -# CONFIG_LOGO is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_LCD_DEVICE=y CONFIG_BACKLIGHT_CORGI=y -# CONFIG_BACKLIGHT_HP680 is not set # # Sound @@ -1033,23 +1073,27 @@ CONFIG_SOUND=m CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_SEQUENCER_OSS is not set # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y # CONFIG_SND_DEBUG_DETECT is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set # # Generic devices # CONFIG_SND_AC97_CODEC=m -CONFIG_SND_AC97_BUS=m # CONFIG_SND_DUMMY is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set @@ -1070,6 +1114,8 @@ CONFIG_SND_USB_AUDIO=m # # PCMCIA devices # +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # # SoC audio support @@ -1085,23 +1131,37 @@ CONFIG_SND_SOC=m # CONFIG_SND_PXA2xx_SOC=m CONFIG_SND_PXA2xx_SOC_I2S=m -# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8753 is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9713 is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9712 is not set -# CONFIG_SND_PXA2xx_SOC_CORGI is not set CONFIG_SND_PXA2xx_SOC_SPITZ=m -# CONFIG_SND_PXA2xx_SOC_TOSA is not set +# CONFIG_SND_PXA2xx_SOC_MAGICIAN is not set + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Freescale i.MX +# + +# +# SoC Audio for the Samsung S3C24XX +# # # Soc Codecs # # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8731 is not set CONFIG_SND_SOC_WM8750=m # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8772 is not set # CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set # CONFIG_SND_SOC_WM9713 is not set # CONFIG_SND_SOC_WM9712 is not set # CONFIG_SND_SOC_UDA1380 is not set @@ -1111,12 +1171,19 @@ CONFIG_SND_SOC_WM8750=m # Open Sound System # # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID Devices +# +CONFIG_HID=y # # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set CONFIG_USB=m # CONFIG_USB_DEBUG is not set @@ -1142,7 +1209,6 @@ CONFIG_USB_SL811_CS=m # # USB Device Class drivers # -# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m @@ -1164,13 +1230,13 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # CONFIG_USB_HID=m -CONFIG_USB_HIDINPUT=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set @@ -1185,9 +1251,7 @@ CONFIG_USB_WACOM=m # CONFIG_USB_ACECAD is not set CONFIG_USB_KBTAB=m CONFIG_USB_POWERMATE=m -CONFIG_USB_MTOUCH=m -# CONFIG_USB_ITMTOUCH is not set -CONFIG_USB_EGALAX=m +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set CONFIG_USB_XPAD=m CONFIG_USB_ATI_REMOTE=m @@ -1202,31 +1266,23 @@ CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m # -# USB Multimedia devices -# -CONFIG_USB_DABUSB=m - -# -# Video4Linux support is needed for USB Multimedia device support -# - -# # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m # CONFIG_USB_NET_GL620A is not set CONFIG_USB_NET_NET1080=m # CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set # CONFIG_USB_NET_RNDIS_HOST is not set # CONFIG_USB_NET_CDC_SUBSET is not set CONFIG_USB_NET_ZAURUS=m -# CONFIG_USB_ZD1201 is not set CONFIG_USB_MON=y # @@ -1238,8 +1294,9 @@ CONFIG_USB_MON=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_AIRPRIME is not set -# CONFIG_USB_SERIAL_ANYDATA is not set +# CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m @@ -1247,6 +1304,7 @@ CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m @@ -1271,15 +1329,20 @@ CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m # CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m # CONFIG_USB_SERIAL_OPTION is not set CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set CONFIG_USB_EZUSB=y # @@ -1287,16 +1350,20 @@ CONFIG_USB_EZUSB=y # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set CONFIG_USB_CYTHERM=m -CONFIG_USB_PHIDGETKIT=m -CONFIG_USB_PHIDGETSERVO=m +# CONFIG_USB_PHIDGET is not set CONFIG_USB_IDMOUSE=m +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_TEST is not set # @@ -1316,6 +1383,7 @@ CONFIG_USB_PXA27X=m # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set CONFIG_USB_ZERO=m @@ -1325,6 +1393,7 @@ CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set # # MMC/SD Card support @@ -1333,13 +1402,16 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y +# CONFIG_MMC_TIFM_SD is not set # # 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 @@ -1347,16 +1419,24 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 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_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set # # File systems @@ -1366,16 +1446,19 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=m # CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set +CONFIG_FS_POSIX_ACL=y # 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 is not set @@ -1402,11 +1485,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # Pseudo filesystems # CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1419,18 +1503,20 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y CONFIG_JFFS2_RUBIN=y # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_EMBEDDED is not set @@ -1450,9 +1536,14 @@ CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m @@ -1463,7 +1554,9 @@ CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1536,6 +1629,11 @@ CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=y # +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# # Profiling support # CONFIG_PROFILING=y @@ -1545,26 +1643,33 @@ CONFIG_OPROFILE=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y # CONFIG_DEBUG_LL is not set @@ -1578,7 +1683,12 @@ CONFIG_DEBUG_ERRORS=y # Cryptographic options # CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m @@ -1587,9 +1697,14 @@ CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_CAST5=m @@ -1599,6 +1714,7 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_TEST=m @@ -1610,10 +1726,14 @@ CONFIG_CRYPTO_TEST=m # # Library routines # +CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m +CONFIG_LZO=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_SHARPSL_RC=n +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +CONFIG_SHARPSL_RC=m diff --git a/packages/linux/linux-rp-2.6.20/defconfig-c7x0 b/packages/linux/linux-rp-2.6.20/defconfig-c7x0 index ad7fca8861..452e0a669c 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-c7x0 +++ b/packages/linux/linux-rp-2.6.20/defconfig-c7x0 @@ -1,13 +1,23 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16 -# Mon May 22 09:00:01 2006 +# Linux kernel version: 2.6.20 +# Thu Mar 29 13:32:11 2007 # CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options @@ -24,16 +34,22 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" -CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -45,11 +61,9 @@ CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 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 @@ -60,7 +74,6 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y @@ -68,6 +81,10 @@ CONFIG_KMOD=y # # 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 @@ -85,16 +102,28 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type # +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set @@ -102,20 +131,16 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_AT91RM9200 is not set # # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set # CONFIG_MACH_HX2750 is not set CONFIG_PXA_SHARPSL_25x=y # CONFIG_PXA_SHARPSL_27x is not set @@ -125,9 +150,9 @@ CONFIG_MACH_SHEPHERD=y CONFIG_MACH_HUSKY=y # CONFIG_MACH_TOSA is not set CONFIG_PXA25x=y -# CONFIG_PXA_KEYS is not set CONFIG_PXA_SHARP_C7xx=y CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set # # Processor Type @@ -138,13 +163,16 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y # # Processor Features # CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_IWMMXT is not set CONFIG_XSCALE_PMU=y -CONFIG_KEXEC=y CONFIG_SHARP_PARAM=y CONFIG_SHARPSL_PM=y CONFIG_SHARP_SCOOP=y @@ -172,7 +200,9 @@ CONFIG_PCMCIA_PXA2XX=y # CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y -# CONFIG_AEABI is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -182,6 +212,7 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set CONFIG_ALIGNMENT_TRAP=y # @@ -189,7 +220,10 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable quiet" # CONFIG_XIP_KERNEL is not set +CONFIG_CPU_FREQ_PXA25x=y +CONFIG_KEXEC=y # # CPU Frequency scaling @@ -206,7 +240,6 @@ CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_PXA25x=y # # Floating point emulation @@ -225,7 +258,6 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m -# CONFIG_ARTHUR is not set # # Power management options @@ -233,6 +265,7 @@ CONFIG_BINFMT_MISC=m CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM=y # @@ -249,6 +282,7 @@ CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -262,11 +296,17 @@ CONFIG_SYN_COOKIES=y # 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=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set # # IP: Virtual Server Configuration @@ -274,11 +314,21 @@ CONFIG_TCP_CONG_BIC=y # CONFIG_IP_VS is not set CONFIG_IPV6=m # CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -286,22 +336,12 @@ CONFIG_NETFILTER=y # Core Netfilter Configuration # # CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -# CONFIG_IP_NF_CONNTRACK_EVENTS is not set -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -# CONFIG_IP_NF_NETBIOS_NS is not set -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -# CONFIG_IP_NF_PPTP is not set CONFIG_IP_NF_QUEUE=m # @@ -332,7 +372,6 @@ CONFIG_IP_NF_QUEUE=m # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -391,6 +430,7 @@ CONFIG_IRCOMM=m # CONFIG_USB_IRDA is not set # CONFIG_SIGMATEL_FIR is not set CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -422,6 +462,8 @@ CONFIG_IEEE80211=m CONFIG_IEEE80211_CRYPT_WEP=m CONFIG_IEEE80211_CRYPT_CCMP=m CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -434,6 +476,7 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -455,11 +498,13 @@ CONFIG_MTD_CMDLINE_PARTS=y # User Modules And Translation Layers # CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set # # RAM/ROM/Flash chip drivers @@ -485,6 +530,7 @@ CONFIG_MTD_ROM=y # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_PLATRAM is not set @@ -494,7 +540,6 @@ CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set # CONFIG_MTD_BLOCK2MTD is not set # @@ -509,6 +554,7 @@ CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND_H1900 is not set CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_DISKONCHIP is not set @@ -538,7 +584,7 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set -CONFIG_BLK_DEV_RAM_COUNT=16 +# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -546,6 +592,7 @@ CONFIG_BLK_DEV_RAM_COUNT=16 # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y # @@ -575,6 +622,8 @@ CONFIG_IDE_GENERIC=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # @@ -594,20 +643,21 @@ CONFIG_CHR_DEV_SG=m CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set # -# SCSI Transport Attributes +# 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_SATA is not set # CONFIG_SCSI_DEBUG is not set # @@ -620,10 +670,17 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_PCMCIA_SYM53C500 is not set # +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# # Multi-device support (RAID and LVM) # CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m @@ -665,6 +722,7 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set # # Ethernet (1000 Mbit) @@ -682,6 +740,7 @@ CONFIG_MII=m # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set # # Obsolete Wireless cards support (pre-802.11) @@ -708,6 +767,7 @@ CONFIG_PCMCIA_HERMES=m CONFIG_PCMCIA_SPECTRUM=m # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set @@ -741,6 +801,7 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -755,6 +816,7 @@ CONFIG_PPP_BSDCOMP=m # Input device support # CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set # # Userland interfaces @@ -778,6 +840,7 @@ CONFIG_INPUT_KEYBOARD=y # 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_KEYBOARD_CORGI=y # CONFIG_KEYBOARD_SPITZ is not set # CONFIG_INPUT_MOUSE is not set @@ -788,6 +851,10 @@ CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# 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=y CONFIG_INPUT_UINPUT=m @@ -803,6 +870,7 @@ CONFIG_INPUT_UINPUT=m 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 # @@ -833,15 +901,12 @@ CONFIG_UNIX98_PTYS=y # Watchdog Cards # # CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # -# Ftape, the floppy tape device driver -# - -# # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set @@ -853,7 +918,6 @@ CONFIG_UNIX98_PTYS=y # TPM devices # # CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set # # I2C support @@ -873,6 +937,7 @@ CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_PXA=y # CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set @@ -912,10 +977,7 @@ CONFIG_I2C_PXA=y # # Misc devices # - -# -# Multimedia Capabilities Port drivers -# +# CONFIG_TIFM_CORE is not set # # Multi-Function Devices @@ -926,56 +988,93 @@ CONFIG_I2C_PXA=y # CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y -CONFIG_LEDS_TRIGGERS=y + +# +# LED drivers +# CONFIG_LEDS_CORGI=y # CONFIG_LEDS_TOSA is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # Multimedia devices # CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # -# Video For Linux +# Video Capture Adapters # # -# Video Adapters +# Video Capture Adapters # # CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_SAA5246A is not set # CONFIG_VIDEO_SAA5249 is not set # CONFIG_TUNER_3036 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_USBVISION is not set +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set # CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_VIDEO_AUDIO_DECODER is not set -# CONFIG_VIDEO_DECODER is not set +# CONFIG_USB_W9968CF is not set +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set # # Radio Adapters # -# CONFIG_RADIO_MAESTRO is not set +CONFIG_USB_DSBR=m # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +CONFIG_USB_DABUSB=m # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y +# CONFIG_FB_DDC is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # 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 # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_PXA is not set +# CONFIG_FB_MBX is not set CONFIG_FB_W100=y # CONFIG_FB_VIRTUAL is not set @@ -1004,13 +1103,16 @@ CONFIG_FONT_8x16=y CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CORGI=y -# CONFIG_BACKLIGHT_HP680 is not set # # Sound @@ -1023,23 +1125,27 @@ CONFIG_SOUND=m CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_SEQUENCER_OSS is not set # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_VERBOSE_PRINTK=y CONFIG_SND_DEBUG=y # CONFIG_SND_DEBUG_DETECT is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set # # Generic devices # CONFIG_SND_AC97_CODEC=m -CONFIG_SND_AC97_BUS=m # CONFIG_SND_DUMMY is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set @@ -1060,6 +1166,8 @@ CONFIG_SND_USB_AUDIO=m # # PCMCIA devices # +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # # SoC audio support @@ -1075,23 +1183,37 @@ CONFIG_SND_SOC=m # CONFIG_SND_PXA2xx_SOC=m CONFIG_SND_PXA2xx_SOC_I2S=m -# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8753 is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9713 is not set -# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9712 is not set CONFIG_SND_PXA2xx_SOC_CORGI=m -# CONFIG_SND_PXA2xx_SOC_SPITZ is not set -# CONFIG_SND_PXA2xx_SOC_TOSA is not set +# CONFIG_SND_PXA2xx_SOC_MAGICIAN is not set + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Freescale i.MX +# + +# +# SoC Audio for the Samsung S3C24XX +# # # Soc Codecs # # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set CONFIG_SND_SOC_WM8731=m # CONFIG_SND_SOC_WM8750 is not set # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8772 is not set # CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set # CONFIG_SND_SOC_WM9713 is not set # CONFIG_SND_SOC_WM9712 is not set # CONFIG_SND_SOC_UDA1380 is not set @@ -1101,12 +1223,19 @@ CONFIG_SND_SOC_WM8731=m # Open Sound System # # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID Devices +# +CONFIG_HID=y # # USB support # CONFIG_USB_ARCH_HAS_HCD=y # CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set CONFIG_USB=m # CONFIG_USB_DEBUG is not set @@ -1129,7 +1258,6 @@ CONFIG_USB_SL811_CS=m # # USB Device Class drivers # -# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m @@ -1151,13 +1279,13 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # CONFIG_USB_HID=m -CONFIG_USB_HIDINPUT=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set @@ -1172,9 +1300,7 @@ CONFIG_USB_WACOM=m # CONFIG_USB_ACECAD is not set CONFIG_USB_KBTAB=m CONFIG_USB_POWERMATE=m -CONFIG_USB_MTOUCH=m -# CONFIG_USB_ITMTOUCH is not set -CONFIG_USB_EGALAX=m +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set CONFIG_USB_XPAD=m CONFIG_USB_ATI_REMOTE=m @@ -1189,37 +1315,23 @@ CONFIG_USB_MDC800=m CONFIG_USB_MICROTEK=m # -# USB Multimedia devices -# -CONFIG_USB_DABUSB=m -CONFIG_USB_VICAM=m -CONFIG_USB_DSBR=m -# CONFIG_USB_ET61X251 is not set -CONFIG_USB_IBMCAM=m -CONFIG_USB_KONICAWC=m -CONFIG_USB_OV511=m -CONFIG_USB_SE401=m -CONFIG_USB_SN9C102=m -CONFIG_USB_STV680=m -# CONFIG_USB_PWC is not set - -# # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m # CONFIG_USB_NET_GL620A is not set CONFIG_USB_NET_NET1080=m # CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set # CONFIG_USB_NET_RNDIS_HOST is not set # CONFIG_USB_NET_CDC_SUBSET is not set CONFIG_USB_NET_ZAURUS=m -# CONFIG_USB_ZD1201 is not set CONFIG_USB_MON=y # @@ -1231,8 +1343,9 @@ CONFIG_USB_MON=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_AIRPRIME is not set -# CONFIG_USB_SERIAL_ANYDATA is not set +# CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m # CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m @@ -1240,6 +1353,7 @@ CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m @@ -1264,14 +1378,20 @@ CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m # CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set CONFIG_USB_EZUSB=y # @@ -1279,16 +1399,20 @@ CONFIG_USB_EZUSB=y # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set CONFIG_USB_CYTHERM=m -CONFIG_USB_PHIDGETKIT=m -CONFIG_USB_PHIDGETSERVO=m +# CONFIG_USB_PHIDGET is not set CONFIG_USB_IDMOUSE=m +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_TEST is not set # @@ -1309,6 +1433,7 @@ CONFIG_USB_PXA2XX=y # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set CONFIG_USB_ZERO=m @@ -1318,6 +1443,7 @@ CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set # # MMC/SD Card support @@ -1326,13 +1452,16 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y +# CONFIG_MMC_TIFM_SD is not set # # 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 @@ -1340,16 +1469,24 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 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_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set # # File systems @@ -1358,14 +1495,17 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set +CONFIG_FS_POSIX_ACL=y # 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 is not set @@ -1392,11 +1532,12 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # Pseudo filesystems # CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set # CONFIG_CONFIGFS_FS is not set # @@ -1409,18 +1550,20 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y CONFIG_JFFS2_RUBIN=y # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_EMBEDDED is not set @@ -1440,9 +1583,14 @@ CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m @@ -1453,7 +1601,9 @@ CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1526,6 +1676,11 @@ CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=y # +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# # Profiling support # CONFIG_PROFILING=y @@ -1535,26 +1690,33 @@ CONFIG_OPROFILE=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y # CONFIG_DEBUG_LL is not set @@ -1568,7 +1730,12 @@ CONFIG_DEBUG_ERRORS=y # Cryptographic options # CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m @@ -1577,9 +1744,14 @@ CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_CAST5=m @@ -1589,6 +1761,7 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_TEST=m @@ -1600,10 +1773,14 @@ CONFIG_CRYPTO_TEST=m # # Library routines # +CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m +CONFIG_LZO=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_SHARPSL_RC=m +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-collie b/packages/linux/linux-rp-2.6.20/defconfig-collie index 1c6c0be8cc..422ed94df3 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-collie +++ b/packages/linux/linux-rp-2.6.20/defconfig-collie @@ -1736,3 +1736,4 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-hx2000 b/packages/linux/linux-rp-2.6.20/defconfig-hx2000 index e0df2ae453..2a67a2d045 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-hx2000 +++ b/packages/linux/linux-rp-2.6.20/defconfig-hx2000 @@ -776,7 +776,10 @@ CONFIG_MFD_TSC2101=y # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices @@ -1159,4 +1162,4 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_PLIST=y CONFIG_IOMAP_COPY=y -CONFIG_SHARPSL_RC=n +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-poodle b/packages/linux/linux-rp-2.6.20/defconfig-poodle index f332c72d56..13616c08f1 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-poodle +++ b/packages/linux/linux-rp-2.6.20/defconfig-poodle @@ -1653,4 +1653,4 @@ CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_SHARPSL_RC=n +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-qemuarm b/packages/linux/linux-rp-2.6.20/defconfig-qemuarm index ed8f122cb0..f70b6db7c7 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-qemuarm +++ b/packages/linux/linux-rp-2.6.20/defconfig-qemuarm @@ -415,7 +415,7 @@ CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_RAM_SIZE=51200 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -752,7 +752,9 @@ CONFIG_NEW_LEDS=y # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # @@ -1188,4 +1190,4 @@ CONFIG_CRC32=y # CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_SHARPSL_RC=n +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-qemux86 b/packages/linux/linux-rp-2.6.20/defconfig-qemux86 index 39ca9ffea7..08e0a0c6c7 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-qemux86 +++ b/packages/linux/linux-rp-2.6.20/defconfig-qemux86 @@ -428,8 +428,10 @@ CONFIG_BLK_DEV_FD=y # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=51200 +CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -975,7 +977,9 @@ CONFIG_HWMON=y # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # @@ -1560,4 +1564,4 @@ CONFIG_X86_HT=y CONFIG_X86_BIOS_REBOOT=y CONFIG_X86_TRAMPOLINE=y CONFIG_KTIME_SCALAR=y -CONFIG_SHARPSL_RC=n +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-spitz b/packages/linux/linux-rp-2.6.20/defconfig-spitz index ed290b2959..4ee5b814fb 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-spitz +++ b/packages/linux/linux-rp-2.6.20/defconfig-spitz @@ -1,15 +1,23 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.17 -# Sun Sep 3 23:29:17 2006 +# Linux kernel version: 2.6.20 +# Tue Jun 26 23:12:35 2007 # CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options @@ -26,17 +34,22 @@ CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set +CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" -CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -49,6 +62,8 @@ 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 @@ -66,7 +81,10 @@ CONFIG_KMOD=y # # 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 @@ -84,18 +102,28 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type # +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set # CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set @@ -103,12 +131,6 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set -# CONFIG_ARCH_AT91RM9200 is not set # # Intel PXA2xx Implementations @@ -118,6 +140,7 @@ CONFIG_ARCH_PXA=y # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set # CONFIG_MACH_HX2750 is not set # CONFIG_PXA_SHARPSL_25x is not set CONFIG_PXA_SHARPSL_27x=y @@ -125,10 +148,9 @@ CONFIG_MACH_AKITA=y CONFIG_MACH_SPITZ=y CONFIG_MACH_BORZOI=y CONFIG_PXA27x=y -# CONFIG_PXA_KEYS is not set -CONFIG_IWMMXT=y CONFIG_PXA_SHARP_Cxx00=y CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set # # Processor Type @@ -139,13 +161,16 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y # # Processor Features # CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_IWMMXT=y CONFIG_XSCALE_PMU=y -CONFIG_KEXEC=y CONFIG_SHARP_PARAM=y CONFIG_SHARPSL_PM=y CONFIG_SHARP_SCOOP=y @@ -174,7 +199,8 @@ CONFIG_PCMCIA_PXA2XX=y CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y CONFIG_HZ=100 -# CONFIG_AEABI is not set +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -184,6 +210,7 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set CONFIG_ALIGNMENT_TRAP=y # @@ -191,8 +218,9 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rw fbcon=rotate:1 dyntick=enable debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw fbcon=rotate:1 dyntick=enable quiet" # CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y # # CPU Frequency scaling @@ -216,7 +244,6 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m -# CONFIG_ARTHUR is not set # # Power management options @@ -224,6 +251,7 @@ CONFIG_BINFMT_MISC=m CONFIG_PM=y # CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM=y # @@ -240,6 +268,7 @@ CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -255,10 +284,15 @@ CONFIG_SYN_COOKIES=y # 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=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set # # IP: Virtual Server Configuration @@ -270,9 +304,17 @@ CONFIG_IPV6=m CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set @@ -280,23 +322,12 @@ CONFIG_NETFILTER=y # Core Netfilter Configuration # # CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set # CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -# CONFIG_IP_NF_CONNTRACK_EVENTS is not set -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -# CONFIG_IP_NF_NETBIOS_NS is not set -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -# CONFIG_IP_NF_PPTP is not set -# CONFIG_IP_NF_H323 is not set CONFIG_IP_NF_QUEUE=m # @@ -327,7 +358,6 @@ CONFIG_IP_NF_QUEUE=m # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -386,6 +416,7 @@ CONFIG_IRCOMM=m # CONFIG_USB_IRDA is not set # CONFIG_SIGMATEL_FIR is not set CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -431,6 +462,7 @@ CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -452,11 +484,13 @@ CONFIG_MTD_CMDLINE_PARTS=y # User Modules And Translation Layers # CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y CONFIG_MTD_BLOCK=y # CONFIG_FTL is not set # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set # # RAM/ROM/Flash chip drivers @@ -482,6 +516,7 @@ CONFIG_MTD_ROM=y # Mapping drivers for chip access # CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_PLATRAM is not set @@ -505,6 +540,7 @@ CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set # CONFIG_MTD_NAND_H1900 is not set CONFIG_MTD_NAND_IDS=y # CONFIG_MTD_NAND_DISKONCHIP is not set @@ -542,6 +578,7 @@ CONFIG_BLK_DEV_LOOP=y # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y # @@ -571,6 +608,8 @@ CONFIG_IDE_GENERIC=y # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=m +# CONFIG_SCSI_TGT is not set +# CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # @@ -590,20 +629,21 @@ CONFIG_CHR_DEV_SG=m CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set # -# SCSI Transport Attributes +# 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_SATA is not set # CONFIG_SCSI_DEBUG is not set # @@ -616,10 +656,17 @@ CONFIG_SCSI_MULTI_LUN=y # CONFIG_PCMCIA_SYM53C500 is not set # +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# # Multi-device support (RAID and LVM) # CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m @@ -661,6 +708,7 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set # # Ethernet (1000 Mbit) @@ -705,6 +753,7 @@ CONFIG_PCMCIA_HERMES=m CONFIG_PCMCIA_SPECTRUM=m # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y # CONFIG_HOSTAP_FIRMWARE_NVRAM is not set @@ -738,6 +787,7 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -752,6 +802,7 @@ CONFIG_PPP_BSDCOMP=m # Input device support # CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set # # Userland interfaces @@ -775,6 +826,7 @@ CONFIG_INPUT_KEYBOARD=y # 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_KEYBOARD_CORGI is not set CONFIG_KEYBOARD_SPITZ=y # CONFIG_INPUT_MOUSE is not set @@ -785,6 +837,10 @@ CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# 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=y CONFIG_INPUT_UINPUT=m @@ -800,6 +856,7 @@ CONFIG_INPUT_UINPUT=m 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 # @@ -830,15 +887,12 @@ CONFIG_UNIX98_PTYS=y # Watchdog Cards # # CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # -# Ftape, the floppy tape device driver -# - -# # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set @@ -850,7 +904,6 @@ CONFIG_UNIX98_PTYS=y # TPM devices # # CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set # # I2C support @@ -870,6 +923,7 @@ CONFIG_I2C=y # CONFIG_I2C_PXA=y # CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set @@ -909,6 +963,7 @@ CONFIG_I2C_PXA=y # # Misc devices # +# CONFIG_TIFM_CORE is not set # # Multi-Function Devices @@ -932,6 +987,7 @@ CONFIG_LEDS_SPITZ=y CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=y CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # Multimedia devices @@ -941,49 +997,6 @@ CONFIG_VIDEO_V4L1=y CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y - # -# Video Capture Adapters -# - -# -# Video Capture Adapters -# -# CONFIG_VIDEO_ADV_DEBUG is not set -CONFIG_VIDEO_HELPER_CHIPS_AUTO=y -# CONFIG_VIDEO_VIVI is not set -# CONFIG_VIDEO_CPIA is not set -# CONFIG_VIDEO_CPIA2 is not set -# CONFIG_VIDEO_SAA5246A is not set -# CONFIG_VIDEO_SAA5249 is not set -# CONFIG_TUNER_3036 is not set - -# -# V4L USB devices -# -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_USB_VICAM is not set -# CONFIG_USB_IBMCAM is not set -# CONFIG_USB_KONICAWC is not set -# CONFIG_USB_QUICKCAM_MESSENGER is not set -# CONFIG_USB_ET61X251 is not set -# CONFIG_VIDEO_OVCAMCHIP is not set -# CONFIG_USB_W9968CF is not set -# CONFIG_USB_OV511 is not set -# CONFIG_USB_SE401 is not set -# CONFIG_USB_SN9C102 is not set -# CONFIG_USB_STV680 is not set -# CONFIG_USB_ZC0301 is not set -# CONFIG_USB_PWC is not set - -# -# Radio Adapters -# -# CONFIG_USB_DSBR is not set - -# - # # Digital Video Broadcasting Devices # @@ -993,12 +1006,13 @@ CONFIG_USB_DABUSB=m # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set -CONFIG_FB_FIRMWARE_EDID=y +# CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_S1D13XXX is not set @@ -1007,6 +1021,7 @@ CONFIG_FB_PXA_LCD_QVGA=y # CONFIG_FB_PXA_LCD_VGA is not set CONFIG_FB_PXA_OVERLAY=y # CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set # CONFIG_FB_W100 is not set # CONFIG_FB_VIRTUAL is not set @@ -1036,10 +1051,10 @@ CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y # CONFIG_LOGO_LINUX_CLUT224 is not set -# CONFIG_LOGO_OHAND_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y # CONFIG_LOGO_OZ240_CLUT224 is not set # CONFIG_LOGO_OZ480_CLUT224 is not set -CONFIG_LOGO_OZ640_CLUT224=y +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y @@ -1079,7 +1094,6 @@ CONFIG_SND_DEBUG=y # Generic devices # CONFIG_SND_AC97_CODEC=m -CONFIG_SND_AC97_BUS=m # CONFIG_SND_DUMMY is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set @@ -1118,6 +1132,7 @@ CONFIG_SND_SOC=m CONFIG_SND_PXA2xx_SOC=m CONFIG_SND_PXA2xx_SOC_I2S=m CONFIG_SND_PXA2xx_SOC_SPITZ=m +# CONFIG_SND_PXA2xx_SOC_MAGICIAN is not set # # SoC Audio for the Atmel AT91 @@ -1128,15 +1143,25 @@ CONFIG_SND_PXA2xx_SOC_SPITZ=m # # +# SoC Audio for the Samsung S3C24XX +# + +# # Soc Codecs # # CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8731 is not set CONFIG_SND_SOC_WM8750=m # CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8772 is not set # CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set # CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set # CONFIG_SND_SOC_WM9713 is not set # CONFIG_SND_SOC_WM9712 is not set # CONFIG_SND_SOC_UDA1380 is not set @@ -1146,6 +1171,12 @@ CONFIG_SND_SOC_WM8750=m # Open Sound System # # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID Devices +# +CONFIG_HID=y # # USB support @@ -1199,13 +1230,13 @@ CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # CONFIG_USB_HID=m -CONFIG_USB_HIDINPUT=y # CONFIG_USB_HIDINPUT_POWERBOOK is not set # CONFIG_HID_FF is not set # CONFIG_USB_HIDDEV is not set @@ -1241,16 +1272,17 @@ CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m # CONFIG_USB_NET_GL620A is not set CONFIG_USB_NET_NET1080=m # CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set # CONFIG_USB_NET_RNDIS_HOST is not set # CONFIG_USB_NET_CDC_SUBSET is not set CONFIG_USB_NET_ZAURUS=m -# CONFIG_USB_ZD1201 is not set CONFIG_USB_MON=y # @@ -1262,8 +1294,8 @@ CONFIG_USB_MON=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_AIRPRIME is not set -# CONFIG_USB_SERIAL_ANYDATA is not set # CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m # CONFIG_USB_SERIAL_WHITEHEAT is not set @@ -1297,16 +1329,20 @@ CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m # CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m # CONFIG_USB_SERIAL_OPTION is not set CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set CONFIG_USB_EZUSB=y # @@ -1314,16 +1350,20 @@ CONFIG_USB_EZUSB=y # CONFIG_USB_EMI62=m CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set CONFIG_USB_AUERSWALD=m CONFIG_USB_RIO500=m CONFIG_USB_LEGOTOWER=m CONFIG_USB_LCD=m CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set CONFIG_USB_CYTHERM=m -CONFIG_USB_PHIDGETKIT=m -CONFIG_USB_PHIDGETSERVO=m +# CONFIG_USB_PHIDGET is not set CONFIG_USB_IDMOUSE=m +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_TEST is not set # @@ -1353,6 +1393,7 @@ CONFIG_USB_GADGETFS=m CONFIG_USB_FILE_STORAGE=m # CONFIG_USB_FILE_STORAGE_TEST is not set CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set # # MMC/SD Card support @@ -1361,6 +1402,7 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y +# CONFIG_MMC_TIFM_SD is not set # # Real Time Clock @@ -1369,6 +1411,7 @@ 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 @@ -1376,17 +1419,24 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 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_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set # # File systems @@ -1396,16 +1446,19 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_FS_XATTR is not set +# CONFIG_EXT4DEV_FS is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -# CONFIG_FS_POSIX_ACL is not set +CONFIG_FS_POSIX_ACL=y # 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 is not set @@ -1432,8 +1485,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # Pseudo filesystems # CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y # CONFIG_CONFIGFS_FS is not set @@ -1448,18 +1503,20 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=m CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y CONFIG_JFFS2_RUBIN=y # CONFIG_JFFS2_CMODE_NONE is not set CONFIG_JFFS2_CMODE_PRIORITY=y # CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_EMBEDDED is not set @@ -1479,9 +1536,14 @@ CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -# CONFIG_NFSD is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m @@ -1492,7 +1554,9 @@ CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1565,6 +1629,11 @@ CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=y # +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# # Profiling support # CONFIG_PROFILING=y @@ -1574,27 +1643,33 @@ CONFIG_OPROFILE=m # Kernel hacking # # CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 # CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_PREEMPT is not set -# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y -# CONFIG_UNWIND_INFO is not set # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y # CONFIG_DEBUG_LL is not set @@ -1608,7 +1683,12 @@ CONFIG_DEBUG_ERRORS=y # Cryptographic options # CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m @@ -1617,9 +1697,14 @@ CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_CAST5=m @@ -1629,6 +1714,7 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_TEST=m @@ -1640,10 +1726,14 @@ CONFIG_CRYPTO_TEST=m # # Library routines # +CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=y # CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m +CONFIG_LZO=m CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y CONFIG_SHARPSL_RC=m diff --git a/packages/linux/linux-rp-2.6.20/defconfig-tosa b/packages/linux/linux-rp-2.6.20/defconfig-tosa index 476f07cabe..4360f7a179 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-tosa +++ b/packages/linux/linux-rp-2.6.20/defconfig-tosa @@ -935,6 +935,9 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y # Multimedia devices # CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # # Video For Linux @@ -1606,4 +1609,4 @@ CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_GENERIC_ALLOCATOR=y -CONFIG_SHARPSL_RC=n +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/sharpsl-rc-r1.patch b/packages/linux/linux-rp-2.6.20/sharpsl-rc-r1.patch index 8230d53392..da83fdf5eb 100644 --- a/packages/linux/linux-rp-2.6.20/sharpsl-rc-r1.patch +++ b/packages/linux/linux-rp-2.6.20/sharpsl-rc-r1.patch @@ -298,7 +298,7 @@ Index: linux-2.6.20/drivers/input/keyboard/sharpsl_rc.c + pxa_gpio_mode(REMOTE_GPIO_INT | GPIO_IN); + ret = request_irq(REMOTE_IRQ_INT, + sharpsl_rc_interrupt, -+ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_SHARED, ++ IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING | IRQF_SHARED, + "sharpsl_rc", + sharpsl_rc); + if (ret < 0) { diff --git a/packages/elitaire/.mtn2git_empty b/packages/linux/linux-rp-2.6.21/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/elitaire/.mtn2git_empty +++ b/packages/linux/linux-rp-2.6.21/.mtn2git_empty diff --git a/packages/linux/linux-rp-2.6.21/connectplus-remove-ide-HACK.patch b/packages/linux/linux-rp-2.6.21/connectplus-remove-ide-HACK.patch new file mode 100644 index 0000000000..4414b21191 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/connectplus-remove-ide-HACK.patch @@ -0,0 +1,12 @@ +Index: linux-2.6.13/drivers/ide/legacy/ide-cs.c +=================================================================== +--- linux-2.6.13.orig/drivers/ide/legacy/ide-cs.c 2005-09-01 22:43:46.000000000 +0100 ++++ linux-2.6.13/drivers/ide/legacy/ide-cs.c 2005-09-01 22:45:46.000000000 +0100 +@@ -488,7 +488,6 @@ + PCMCIA_DEVICE_PROD_ID123("KODAK Picture Card ", "KODAK ", "V100K", 0x94a0d8f3, 0xe4fc3ea0, 0xe5e7eed4), + PCMCIA_DEVICE_PROD_ID1("STI Flash", 0xe4a13209), + PCMCIA_DEVICE_PROD_ID12("STI", "Flash 5.0", 0xbf2df18d, 0x8cb57a0e), +- PCMCIA_MFC_DEVICE_PROD_ID12(1, "SanDisk", "ConnectPlus", 0x7a954bd9, 0x74be00c6), + PCMCIA_DEVICE_NULL, + }; + MODULE_DEVICE_TABLE(pcmcia, ide_ids); diff --git a/packages/linux/linux-gta01/defconfig-2.6.20-fic-gta01 b/packages/linux/linux-rp-2.6.21/defconfig-akita index e0a885fa0d..748ab41d22 100644 --- a/packages/linux/linux-gta01/defconfig-2.6.20-fic-gta01 +++ b/packages/linux/linux-rp-2.6.21/defconfig-akita @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.20 -# Thu Feb 15 23:04:12 2007 +# Thu Mar 29 12:24:24 2007 # CONFIG_ARM=y # CONFIG_GENERIC_TIME is not set @@ -15,6 +15,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" @@ -29,23 +30,24 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # -CONFIG_LOCALVERSION="-moko8" -# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set +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 is not set -# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y @@ -88,14 +90,14 @@ CONFIG_BLOCK=y # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=m -CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m CONFIG_IOSCHED_CFQ=m -# CONFIG_DEFAULT_AS is not set -CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type @@ -122,63 +124,42 @@ CONFIG_DEFAULT_IOSCHED="deadline" # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set # CONFIG_ARCH_PNX4008 is not set -# CONFIG_ARCH_PXA is not set +CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -CONFIG_ARCH_S3C2410=y +# CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set # -# S3C24XX Implementations +# Intel PXA2xx Implementations # -# CONFIG_MACH_AML_M5900 is not set -# CONFIG_MACH_ANUBIS is not set -# CONFIG_MACH_OSIRIS is not set -# CONFIG_ARCH_BAST is not set -# CONFIG_ARCH_H1940 is not set -# CONFIG_MACH_N30 is not set -# CONFIG_ARCH_SMDK2410 is not set -CONFIG_MACH_QT2410=y -CONFIG_MACH_GTA01=y -# CONFIG_ARCH_S3C2440 is not set -# CONFIG_MACH_SMDK2413 is not set -# CONFIG_MACH_VR1000 is not set -# CONFIG_MACH_RX3715 is not set -# CONFIG_MACH_OTOM is not set -# CONFIG_MACH_NEXCODER_2440 is not set -# CONFIG_MACH_VSTMS is not set -CONFIG_S3C2410_CLOCK=y -CONFIG_S3C2410_PM=y -CONFIG_CPU_S3C2410_DMA=y -CONFIG_CPU_S3C2410=y - -# -# S3C2410 Boot -# -# CONFIG_S3C2410_BOOT_WATCHDOG is not set -CONFIG_S3C2410_BOOT_ERROR_RESET=y - -# -# S3C2410 Setup -# -CONFIG_S3C2410_DMA=y -# CONFIG_S3C2410_DMA_DEBUG is not set -# CONFIG_S3C2410_PM_DEBUG is not set -# CONFIG_S3C2410_PM_CHECK is not set -CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_HX2750 is not set +# CONFIG_PXA_SHARPSL_25x is not set +CONFIG_PXA_SHARPSL_27x=y +CONFIG_MACH_AKITA=y +CONFIG_MACH_SPITZ=y +CONFIG_MACH_BORZOI=y +CONFIG_PXA27x=y +CONFIG_PXA_SHARP_Cxx00=y +CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set # # Processor Type # CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4T=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y CONFIG_CPU_TLB_V4WBI=y CONFIG_CPU_CP15=y CONFIG_CPU_CP15_MMU=y @@ -187,9 +168,12 @@ CONFIG_CPU_CP15_MMU=y # Processor Features # CONFIG_ARM_THUMB=y -# CONFIG_CPU_ICACHE_DISABLE is not set # CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +CONFIG_IWMMXT=y +CONFIG_XSCALE_PMU=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARPSL_PM=y +CONFIG_SHARP_SCOOP=y # # Bus support @@ -198,15 +182,25 @@ CONFIG_ARM_THUMB=y # # PCCARD (PCMCIA/CardBus) support # -# CONFIG_PCCARD is not set +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y # # Kernel Features # CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y -CONFIG_HZ=200 -# CONFIG_AEABI is not set +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -224,8 +218,14 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1 dyntick=enable quiet" # CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set # # Floating point emulation @@ -234,24 +234,23 @@ CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1. # # At least one emulation must be selected # -# CONFIG_FPE_NWFPE is not set -CONFIG_FPE_FASTFPE=y +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set # # Userspace binary formats # CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m # # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y -CONFIG_PM_DEBUG=y -CONFIG_DISABLE_CONSOLE_SUSPEND=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set # CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM=y @@ -264,43 +263,36 @@ CONFIG_NET=y # Networking options # # CONFIG_NETDEBUG is not set -CONFIG_PACKET=m +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_NET_KEY=m +# CONFIG_NET_KEY is not set CONFIG_INET=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_ADVANCED_ROUTER=y -CONFIG_ASK_IP_FIB_HASH=y -# CONFIG_IP_FIB_TRIE is not set +# CONFIG_IP_MULTICAST is not set +# CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_ROUTE_MULTIPATH is not set -# CONFIG_IP_ROUTE_VERBOSE is not set # CONFIG_IP_PNP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -# CONFIG_NET_IPGRE_BROADCAST is not set -# CONFIG_IP_MROUTE is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_XFRM_MODE_TRANSPORT=m -CONFIG_INET_XFRM_MODE_TUNNEL=m -CONFIG_INET_XFRM_MODE_BEET=m -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +# 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=m +CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" -CONFIG_TCP_MD5SIG=y +# CONFIG_TCP_MD5SIG is not set # # IP: Virtual Server Configuration @@ -329,121 +321,19 @@ CONFIG_NETFILTER=y # # Core Netfilter Configuration # -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NF_CONNTRACK_ENABLED=m -CONFIG_NF_CONNTRACK_SUPPORT=y -# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set -CONFIG_NF_CONNTRACK=m -CONFIG_NF_CT_ACCT=y -CONFIG_NF_CONNTRACK_MARK=y -CONFIG_NF_CONNTRACK_EVENTS=y -CONFIG_NF_CT_PROTO_GRE=m -CONFIG_NF_CT_PROTO_SCTP=m -# CONFIG_NF_CONNTRACK_AMANDA is not set -CONFIG_NF_CONNTRACK_FTP=m -CONFIG_NF_CONNTRACK_H323=m -CONFIG_NF_CONNTRACK_IRC=m -CONFIG_NF_CONNTRACK_NETBIOS_NS=m -CONFIG_NF_CONNTRACK_PPTP=m -CONFIG_NF_CONNTRACK_SIP=m -CONFIG_NF_CONNTRACK_TFTP=m -CONFIG_NF_CT_NETLINK=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_CONNMARK=m -CONFIG_NETFILTER_XT_TARGET_DSCP=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NFLOG=m -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m -CONFIG_NETFILTER_XT_MATCH_CONNMARK=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_DSCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_QUOTA=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STATISTIC=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m -CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # -CONFIG_NF_CONNTRACK_IPV4=m -CONFIG_NF_CONNTRACK_PROC_COMPAT=y -# CONFIG_IP_NF_QUEUE is not set -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_TOS=m -# CONFIG_IP_NF_MATCH_RECENT is not set -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_NF_NAT=m -CONFIG_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_NF_NAT_SNMP_BASIC=m -CONFIG_NF_NAT_PROTO_GRE=m -CONFIG_NF_NAT_FTP=m -CONFIG_NF_NAT_IRC=m -CONFIG_NF_NAT_TFTP=m -# CONFIG_NF_NAT_AMANDA is not set -CONFIG_NF_NAT_PPTP=m -CONFIG_NF_NAT_H323=m -CONFIG_NF_NAT_SIP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_TARGET_CLUSTERIP=m -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPTABLES is not set +CONFIG_IP_NF_QUEUE=m # # IPv6: Netfilter Configuration (EXPERIMENTAL) # -CONFIG_NF_CONNTRACK_IPV6=m # CONFIG_IP6_NF_QUEUE is not set -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_HL=m -# CONFIG_IP6_NF_RAW is not set # # DCCP Configuration (EXPERIMENTAL) @@ -474,54 +364,59 @@ CONFIG_IP6_NF_TARGET_HL=m # # QoS and/or fair queueing # -CONFIG_NET_SCHED=y -CONFIG_NET_SCH_FIFO=y -# CONFIG_NET_SCH_CLK_JIFFIES is not set -CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y -# CONFIG_NET_SCH_CLK_CPU is not set - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -CONFIG_CLS_U32_MARK=y -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -# CONFIG_NET_CLS_POLICE is not set -# CONFIG_NET_CLS_IND is not set -CONFIG_NET_ESTIMATOR=y +# 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_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -536,14 +431,25 @@ CONFIG_BT_HIDP=m # Bluetooth device drivers # CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set -CONFIG_FIB_RULES=y +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -554,14 +460,14 @@ CONFIG_FIB_RULES=y # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m +CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # -CONFIG_CONNECTOR=m +# CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) @@ -602,21 +508,21 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set # CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set +CONFIG_MTD_ROM=y # CONFIG_MTD_ABSENT is not set # CONFIG_MTD_OBSOLETE_CHIPS is not set # # Mapping drivers for chip access # -# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set @@ -635,13 +541,10 @@ CONFIG_MTD_CFI_I2=y CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y # CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_H1900 is not set CONFIG_MTD_NAND_IDS=y -CONFIG_MTD_NAND_S3C2410=y -CONFIG_MTD_NAND_S3C2410_BBT=y -# CONFIG_MTD_NAND_S3C2410_DEBUG is not set -CONFIG_MTD_NAND_S3C2410_HWECC=y -CONFIG_MTD_NAND_S3C2410_CLKSTOP=y # CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_SHARPSL=y # CONFIG_MTD_NAND_NANDSIM is not set # @@ -662,22 +565,43 @@ CONFIG_MTD_NAND_S3C2410_CLKSTOP=y # Block devices # # CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set -CONFIG_BLK_DEV_UB=m -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 -CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # -# CONFIG_IDE is not set +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set # # SCSI device support @@ -692,8 +616,8 @@ CONFIG_SCSI_PROC_FS=y # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CHR_DEV_OSST is not set +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m # CONFIG_BLK_DEV_SR_VENDOR is not set CONFIG_CHR_DEV_SG=m @@ -702,10 +626,10 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set -CONFIG_SCSI_SCAN_ASYNC=y +# CONFIG_SCSI_SCAN_ASYNC is not set # # SCSI Transports @@ -723,6 +647,15 @@ CONFIG_SCSI_SCAN_ASYNC=y # 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 is not set @@ -736,9 +669,10 @@ CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m # # Fusion MPT device support @@ -774,8 +708,7 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set -CONFIG_NET_PCI=y -CONFIG_CS89x0=m +# CONFIG_SMC911X is not set # # Ethernet (1000 Mbit) @@ -792,20 +725,66 @@ CONFIG_CS89x0=m # # Wireless LAN (non-hamradio) # -# CONFIG_NET_RADIO is not set +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP 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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m -CONFIG_PPP_MULTILINK=y -CONFIG_PPP_FILTER=y +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m +# CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m +# CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set CONFIG_SLHC=m @@ -828,14 +807,15 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_EVBUG=m +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y # # Input Device Drivers @@ -846,18 +826,13 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set -CONFIG_KEYBOARD_STOWAWAY=m -CONFIG_KEYBOARD_GTA01=y -CONFIG_KEYBOARD_QT2410=y -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_CORGI is not set +CONFIG_KEYBOARD_SPITZ=y +# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -CONFIG_TOUCHSCREEN_S3C2410=y -# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set +CONFIG_TOUCHSCREEN_CORGI=y # CONFIG_TOUCHSCREEN_GUNZE is not set # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set @@ -866,14 +841,13 @@ CONFIG_TOUCHSCREEN_S3C2410=y # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set # CONFIG_TOUCHSCREEN_TOUCHWIN is not set # CONFIG_TOUCHSCREEN_UCB1400 is not set -# CONFIG_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # -CONFIG_SERIO=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO is not set # CONFIG_GAMEPORT is not set # @@ -881,21 +855,24 @@ CONFIG_SERIO=y # CONFIG_VT=y CONFIG_VT_CONSOLE=y -CONFIG_NR_TTY_DEVICES=4 CONFIG_HW_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # -# CONFIG_SERIAL_8250 is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # -CONFIG_SERIAL_S3C2410=y -CONFIG_SERIAL_S3C2410_CONSOLE=y +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y @@ -909,36 +886,30 @@ CONFIG_UNIX98_PTYS=y # # Watchdog Cards # -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_NOWAYOUT is not set - -# -# Watchdog Device Drivers -# -# CONFIG_SOFT_WATCHDOG is not set -CONFIG_S3C2410_WATCHDOG=m - -# -# USB-based Watchdog Cards -# -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_HW_RANDOM is not set +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m # CONFIG_NVRAM 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 -# CONFIG_TS0710_MUX is not set # # I2C support # CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_CHARDEV is not set # # I2C Algorithms @@ -950,9 +921,10 @@ CONFIG_I2C_CHARDEV=y # # I2C Hardware Bus support # +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set -CONFIG_I2C_S3C2410=y # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set @@ -962,7 +934,6 @@ CONFIG_I2C_S3C2410=y # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_EEPROM is not set -CONFIG_SENSORS_PCF50606=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set @@ -975,21 +946,8 @@ CONFIG_SENSORS_PCF50606=y # # SPI support # -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_BITBANG=y -CONFIG_SPI_S3C24XX_GPIO=y -CONFIG_SPI_S3C24XX=y - -# -# SPI Protocol Masters -# -CONFIG_SPI_SLAVE_JBT6K74=y +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set # # Dallas's 1-wire bus @@ -999,49 +957,8 @@ CONFIG_SPI_SLAVE_JBT6K74=y # # Hardware Monitoring support # -CONFIG_HWMON=y +# CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_FSCPOS is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_HWMON_DEBUG_CHIP is not set # # Misc devices @@ -1049,38 +966,47 @@ CONFIG_HWMON=y # CONFIG_TIFM_CORE is not set # +# Multi-Function Devices +# + +# # LED devices # CONFIG_NEW_LEDS=y -CONFIG_LEDS_CLASS=m +CONFIG_LEDS_CLASS=y # # LED drivers # -CONFIG_LEDS_S3C24XX=m +CONFIG_LEDS_SPITZ=y +# CONFIG_LEDS_TOSA is not set # # LED Triggers # CONFIG_LEDS_TRIGGERS=y -CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_IDE_DISK=y # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set -# CONFIG_USB_DABUSB is not set +CONFIG_USB_DABUSB=m # # Graphics support # -# CONFIG_FIRMWARE_EDID is not set +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y @@ -1090,8 +1016,13 @@ CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_S3C2410=y -# CONFIG_FB_S3C2410_DEBUG is not set +CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +# CONFIG_FB_PXA_OVERLAY is not set +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set +# CONFIG_FB_W100 is not set # CONFIG_FB_VIRTUAL is not set # @@ -1100,11 +1031,11 @@ CONFIG_FB_S3C2410=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y # CONFIG_FONT_8x8 is not set -# CONFIG_FONT_8x16 is not set -CONFIG_FONT_6x11=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set @@ -1117,44 +1048,54 @@ CONFIG_FONT_6x11=y # Logo configuration # CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y CONFIG_LCD_CLASS_DEVICE=y CONFIG_LCD_DEVICE=y -CONFIG_BACKLIGHT_GTA01=y +CONFIG_BACKLIGHT_CORGI=y # # Sound # -CONFIG_SOUND=y +CONFIG_SOUND=m # # Advanced Linux Sound Architecture # -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m -# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=y -CONFIG_SND_PCM_OSS=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_SEQUENCER_OSS is not set # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VERBOSE_PRINTK is not set -# CONFIG_SND_DEBUG is not set +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_DETECT is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set # # Generic devices # +CONFIG_SND_AC97_CODEC=m # CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set @@ -1162,6 +1103,8 @@ CONFIG_SND_VERBOSE_PROCFS=y # # ALSA ARM devices # +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m # # USB devices @@ -1169,17 +1112,31 @@ CONFIG_SND_VERBOSE_PROCFS=y CONFIG_SND_USB_AUDIO=m # +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# # SoC audio support # -CONFIG_SND_SOC=y +CONFIG_SND_SOC=m + # # Soc Platforms # +CONFIG_SND_PXA2xx_SOC=m +CONFIG_SND_PXA2xx_SOC_I2S=m +CONFIG_SND_PXA2xx_SOC_SPITZ=m # # SoC Audio for the Intel PXA2xx # +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_I2S=m +CONFIG_SND_PXA2XX_SOC_SPITZ=m +# CONFIG_SND_PXA2XX_SOC_MAGICIAN is not set # # SoC Audio for the Atmel AT91 @@ -1192,9 +1149,6 @@ CONFIG_SND_SOC=y # # SoC Audio for the Samsung S3C24XX # -CONFIG_SND_S3C24XX_SOC=y -CONFIG_SND_S3C24XX_SOC_I2S=y -CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y # # Soc Codecs @@ -1203,13 +1157,13 @@ CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=y # CONFIG_SND_SOC_WM8711 is not set # CONFIG_SND_SOC_WM8510 is not set # CONFIG_SND_SOC_WM8731 is not set -# CONFIG_SND_SOC_WM8750 is not set -CONFIG_SND_SOC_WM8753=y +CONFIG_SND_SOC_WM8750=m +# CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8772 is not set # CONFIG_SND_SOC_WM8971 is not set # CONFIG_SND_SOC_WM8956 is not set # CONFIG_SND_SOC_WM8960 is not set -CONFIG_SND_SOC_WM8976=y +# CONFIG_SND_SOC_WM8976 is not set # CONFIG_SND_SOC_WM8974 is not set # CONFIG_SND_SOC_WM8980 is not set # CONFIG_SND_SOC_WM9713 is not set @@ -1221,6 +1175,7 @@ CONFIG_SND_SOC_WM8976=y # Open Sound System # # CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m # # HID Devices @@ -1233,7 +1188,7 @@ CONFIG_HID=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y # CONFIG_USB_ARCH_HAS_EHCI is not set -CONFIG_USB=y +CONFIG_USB=m # CONFIG_USB_DEBUG is not set # @@ -1252,7 +1207,8 @@ CONFIG_USB_DEVICEFS=y CONFIG_USB_OHCI_HCD=m # CONFIG_USB_OHCI_BIG_ENDIAN is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m # # USB Device Class drivers @@ -1269,16 +1225,17 @@ CONFIG_USB_PRINTER=m # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=y -CONFIG_USB_STORAGE_FREECOM=y -CONFIG_USB_STORAGE_DPCM=y -CONFIG_USB_STORAGE_USBAT=y -CONFIG_USB_STORAGE_SDDR09=y -CONFIG_USB_STORAGE_SDDR55=y -CONFIG_USB_STORAGE_JUMPSHOT=y -CONFIG_USB_STORAGE_ALAUDA=y -CONFIG_USB_STORAGE_KARMA=y -CONFIG_USB_LIBUSUAL=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set # # USB Input Devices @@ -1291,17 +1248,17 @@ CONFIG_USB_HID=m # # USB HID Boot Protocol drivers # -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m # CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m # CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m # CONFIG_USB_ATI_REMOTE2 is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set @@ -1309,8 +1266,8 @@ CONFIG_USB_HID=m # # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m # # USB Network Adapters @@ -1323,17 +1280,12 @@ CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_GL620A=m +# CONFIG_USB_NET_GL620A is not set CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_MCS7830=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set CONFIG_USB_NET_ZAURUS=m CONFIG_USB_MON=y @@ -1346,17 +1298,17 @@ CONFIG_USB_MON=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRCABLE=m -CONFIG_USB_SERIAL_AIRPRIME=m -CONFIG_USB_SERIAL_ARK3116=m +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_WHITEHEAT=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP2101=m +# CONFIG_USB_SERIAL_CP2101 is not set CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_FUNSOFT=m +# CONFIG_USB_SERIAL_FUNSOFT is not set CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m @@ -1366,33 +1318,33 @@ CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_MOS7720=m -CONFIG_USB_SERIAL_MOS7840=m -CONFIG_USB_SERIAL_NAVMAN=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_HP4X=m +# CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m -CONFIG_USB_SERIAL_SAFE_PADDED=y -CONFIG_USB_SERIAL_SIERRAWIRELESS=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m -CONFIG_USB_SERIAL_OPTION=m +# CONFIG_USB_SERIAL_OPTION is not set CONFIG_USB_SERIAL_OMNINET=m # CONFIG_USB_SERIAL_DEBUG is not set CONFIG_USB_EZUSB=y @@ -1400,22 +1352,22 @@ CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers # -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m # CONFIG_USB_ADUTUX is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m # CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set +CONFIG_USB_CYTHERM=m # CONFIG_USB_PHIDGET is not set -# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_IDMOUSE=m # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_LD is not set -CONFIG_USB_TRANCEVIBRATOR=m +# CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_TEST is not set # @@ -1425,26 +1377,26 @@ CONFIG_USB_TRANCEVIBRATOR=m # # USB Gadget Support # -CONFIG_USB_GADGET=y +CONFIG_USB_GADGET=m # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_NET2280 is not set # CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA27X=y +CONFIG_USB_PXA27X=m # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set -CONFIG_USB_GADGET_S3C2410=y -CONFIG_USB_S3C2410=y -# CONFIG_USB_S3C2410_DEBUG is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m # CONFIG_USB_MIDI_GADGET is not set # @@ -1453,16 +1405,17 @@ CONFIG_USB_ETH_RNDIS=y CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y # CONFIG_MMC_TIFM_SD is not set -CONFIG_MMC_S3C=m # # Real Time Clock # CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y -# CONFIG_RTC_HCTOSYS is not set -CONFIG_RTC_DEBUG=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set # # RTC interfaces @@ -1483,24 +1436,22 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_RS5C348 is not set # CONFIG_RTC_DRV_RS5C372 is not set -CONFIG_RTC_DRV_S3C=m # CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_MAX6902 is not set # CONFIG_RTC_DRV_V3020 is not set # # File systems # -CONFIG_EXT2_FS=m +CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set -CONFIG_EXT3_FS=y +CONFIG_EXT3_FS=m # CONFIG_EXT3_FS_XATTR is not set # CONFIG_EXT4DEV_FS is not set -CONFIG_JBD=y +CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set @@ -1509,29 +1460,27 @@ CONFIG_FS_POSIX_ACL=y # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set -CONFIG_ROMFS_FS=y +# CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set -CONFIG_AUTOFS4_FS=m -CONFIG_FUSE_FS=m +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -# CONFIG_ZISOFS is not set +# CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m +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 @@ -1546,7 +1495,7 @@ CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -CONFIG_CONFIGFS_FS=m +# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems @@ -1558,26 +1507,25 @@ CONFIG_CONFIGFS_FS=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_YAFFS_FS is not set -# CONFIG_YAFFS_YAFFS1 is not set -# CONFIG_YAFFS_DOES_ECC is not set -# CONFIG_YAFFS_YAFFS2 is not set -# CONFIG_YAFFS_AUTO_YAFFS2 is not set -# CONFIG_YAFFS_DISABLE_LAZY_LOAD is not set -# CONFIG_YAFFS_CHECKPOINT_RESERVED_BLOCKS is not set -# CONFIG_YAFFS_DISABLE_WIDE_TNODES is not set -# CONFIG_YAFFS_ALWAYS_CHECK_CHUNK_ERASED is not set -# CONFIG_YAFFS_SHORT_NAMES_IN_RAM is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y # CONFIG_JFFS2_FS_XATTR is not set -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -CONFIG_CRAMFS=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1587,7 +1535,7 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=y +CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y @@ -1597,18 +1545,20 @@ CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y -CONFIG_LOCKD=y +CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=m # CONFIG_CIFS_STATS is not set -CONFIG_CIFS_WEAK_PW_HASH=y +# CONFIG_CIFS_WEAK_PW_HASH is not set # CONFIG_CIFS_XATTR is not set # CONFIG_CIFS_DEBUG2 is not set # CONFIG_CIFS_EXPERIMENTAL is not set @@ -1620,52 +1570,67 @@ CONFIG_CIFS_WEAK_PW_HASH=y # # Partition Types # -# CONFIG_PARTITION_ADVANCED is not set +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=m -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=m -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set +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 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=m -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=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=y +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=y # # Distributed Lock Manager @@ -1675,7 +1640,8 @@ CONFIG_NLS_UTF8=m # # Profiling support # -# CONFIG_PROFILING is not set +CONFIG_PROFILING=y +CONFIG_OPROFILE=m # # Kernel hacking @@ -1688,10 +1654,10 @@ CONFIG_MAGIC_SYSRQ=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 -CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_DETECT_SOFTLOCKUP is not set # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set -CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set @@ -1701,18 +1667,15 @@ CONFIG_DEBUG_PREEMPT=y # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y -CONFIG_FORCED_INLINING=y +# CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set -CONFIG_DEBUG_S3C2410_PORT=y -CONFIG_DEBUG_S3C2410_UART=0 +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL is not set # # Security options @@ -1725,24 +1688,24 @@ CONFIG_DEBUG_S3C2410_UART=0 # CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=m +# CONFIG_CRYPTO_XCBC is not set CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_GF128MUL=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set CONFIG_CRYPTO_ECB=m -CONFIG_CRYPTO_CBC=y -CONFIG_CRYPTO_LRW=m -CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m @@ -1755,6 +1718,7 @@ CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_TEST=m @@ -1767,15 +1731,13 @@ CONFIG_CRYPTO_TEST=m # Library routines # CONFIG_BITREVERSE=y -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m +CONFIG_LZO=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_IOMAP_COPY=y +CONFIG_SHARPSL_RC=m diff --git a/packages/linux/linux-rp-2.6.21/defconfig-bootcdx86 b/packages/linux/linux-rp-2.6.21/defconfig-bootcdx86 new file mode 100644 index 0000000000..d439d89813 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-bootcdx86 @@ -0,0 +1,1606 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21 +# Mon Jun 11 12:01:43 2007 +# +CONFIG_X86_32=y +CONFIG_GENERIC_TIME=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_X86=y +CONFIG_MMU=y +CONFIG_ZONE_DMA=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=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 is not set +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +# CONFIG_IKCONFIG is not set +# CONFIG_CPUSETS is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# 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 is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# 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 is not set +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" + +# +# Processor type and features +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +# CONFIG_PARAVIRT is not set +# CONFIG_M386 is not set +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +CONFIG_MPENTIUMII=y +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MCORE2 is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_INVLPG=y +CONFIG_X86_BSWAP=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_TSC=y +CONFIG_HPET_TIMER=y +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_NONFATAL=y +CONFIG_X86_MCE_P4THERMAL=y +CONFIG_VM86=y +# CONFIG_TOSHIBA is not set +# CONFIG_I8K is not set +# CONFIG_X86_REBOOTFIXUPS is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +CONFIG_NOHIGHMEM=y +# CONFIG_HIGHMEM4G is not set +# CONFIG_HIGHMEM64G is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_POPULATES_NODE_MAP=y +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=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +# CONFIG_EFI is not set +CONFIG_IRQBALANCE=y +CONFIG_SECCOMP=y +# 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_PHYSICAL_START=0x100000 +# CONFIG_RELOCATABLE is not set +CONFIG_PHYSICAL_ALIGN=0x100000 +# CONFIG_HOTPLUG_CPU is not set +# CONFIG_COMPAT_VDSO is not set + +# +# Power management options (ACPI, APM) +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set + +# +# ACPI (Advanced Configuration and Power Interface) Support +# +CONFIG_ACPI=y +CONFIG_ACPI_PROCFS=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_ASUS is not set +# CONFIG_ACPI_IBM is not set +# CONFIG_ACPI_TOSHIBA is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +# CONFIG_ACPI_CONTAINER is not set + +# +# APM (Advanced Power Management) BIOS Support +# +# CONFIG_APM is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +CONFIG_PCI_MSI=y +CONFIG_HT_IRQ=y +CONFIG_ISA_DMA_API=y +CONFIG_ISA=y +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SCx200 is not set +CONFIG_K8_NB=y + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# PCI Hotplug Support +# +# CONFIG_HOTPLUG_PCI is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +# CONFIG_BINFMT_AOUT is not set +# CONFIG_BINFMT_MISC is not set + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE 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 is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +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 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m +# 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 is not set + +# +# Plug and Play support +# +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +# CONFIG_ISAPNP is not set +# CONFIG_PNPBIOS is not set +CONFIG_PNPACPI=y + +# +# Block devices +# +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_XD is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_SONY_LAPTOP is not set + +# +# 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 is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# 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_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_7000FASST is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_AHA1542 is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_DTC3280 is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_SEAGATE is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_T128 is not set +# CONFIG_SCSI_U14_34F is not set +# CONFIG_SCSI_ULTRASTOR is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_SRP is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set + +# +# 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 +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_IEEE1394 is not set + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Macintosh device drivers +# +# CONFIG_MAC_EMUMOUSEBTN is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_NET_SB1000 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_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +CONFIG_NET_VENDOR_3COM=y +# CONFIG_EL1 is not set +# CONFIG_EL2 is not set +# CONFIG_ELPLUS is not set +# CONFIG_EL16 is not set +# CONFIG_EL3 is not set +# CONFIG_3C515 is not set +CONFIG_VORTEX=m +CONFIG_TYPHOON=m +CONFIG_LANCE=m +CONFIG_NET_VENDOR_SMC=y +CONFIG_WD80x3=m +CONFIG_ULTRA=m +CONFIG_SMC9194=m +# CONFIG_NET_VENDOR_RACAL is not set + +# +# Tulip family network device support +# +CONFIG_NET_TULIP=y +# CONFIG_DE2104X is not set +CONFIG_TULIP=m +CONFIG_TULIP_MWI=y +CONFIG_TULIP_MMIO=y +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +CONFIG_DE4X5=m +CONFIG_WINBOND_840=m +CONFIG_DM9102=m +CONFIG_ULI526X=m +CONFIG_AT1700=m +CONFIG_DEPCA=m +CONFIG_HP100=m +CONFIG_NET_ISA=y +# CONFIG_E2100 is not set +# CONFIG_EWRK3 is not set +# CONFIG_EEXPRESS is not set +# CONFIG_EEXPRESS_PRO is not set +# CONFIG_HPLAN_PLUS is not set +# CONFIG_HPLAN is not set +# CONFIG_LP486E is not set +# CONFIG_ETH16I is not set +CONFIG_NE2000=y +# CONFIG_ZNET is not set +# CONFIG_SEEQ8005 is not set +CONFIG_NET_PCI=y +CONFIG_PCNET32=m +CONFIG_PCNET32_NAPI=y +CONFIG_AMD8111_ETH=m +CONFIG_AMD8111E_NAPI=y +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADAPTEC_STARFIRE_NAPI=y +CONFIG_AC3200=m +CONFIG_APRICOT=m +CONFIG_B44=m +CONFIG_FORCEDETH=m +CONFIG_FORCEDETH_NAPI=y +CONFIG_CS89x0=m +CONFIG_DGRS=m +CONFIG_EEPRO100=m +CONFIG_E100=m +CONFIG_FEALNX=m +CONFIG_NATSEMI=m +CONFIG_NE2K_PCI=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_PIO=y +CONFIG_8139TOO_TUNE_TWISTER=y +CONFIG_8139TOO_8129=y +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_SIS900=m +CONFIG_EPIC100=m +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y +CONFIG_TLAN=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_RHINE_NAPI=y +CONFIG_SC92031=m + +# +# Ethernet (1000 Mbit) +# +CONFIG_ACENIC=m +CONFIG_ACENIC_OMIT_TIGON_I=y +CONFIG_DL2K=m +CONFIG_E1000=m +CONFIG_E1000_NAPI=y +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_NS83820=m +CONFIG_HAMACHI=m +CONFIG_YELLOWFIN=m +CONFIG_R8169=m +CONFIG_R8169_NAPI=y +CONFIG_SIS190=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SK98LIN=m +CONFIG_VIA_VELOCITY=m +CONFIG_TIGON3=m +CONFIG_BNX2=m +CONFIG_QLA3XXX=m +CONFIG_ATL1=m + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set +# CONFIG_MYRI10GE is not set +# CONFIG_NETXEN_NIC is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC 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=m +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_POWER is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# 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=y +CONFIG_MOUSE_PS2=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW 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=y +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_ATI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AGP_EFFICEON=m +# CONFIG_DRM is not set +# CONFIG_DRM_I830 is not set +# CONFIG_DRM_I915 is not set +# CONFIG_MWAVE is not set +# CONFIG_PC8736x_GPIO is not set +# CONFIG_NSC_GPIO is not set +# CONFIG_CS5535_GPIO is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK 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 is not set +# CONFIG_HWMON_VID is not set + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multi-Function Devices +# + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +# 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=y +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_VESA=y +# CONFIG_FB_VESA_STD is not set +CONFIG_FB_VESA_TNG=y +CONFIG_FB_VESA_DEFAULT_MODE="640x480-16@60" +CONFIG_VIDEO_SELECT=y +# CONFIG_FB_HGA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I810 is not set +# CONFIG_FB_INTEL is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_CYBLA is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_GEODE is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +# 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=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ISA devices +# +# CONFIG_SND_ADLIB is not set +# CONFIG_SND_AD1816A is not set +# CONFIG_SND_AD1848 is not set +# CONFIG_SND_ALS100 is not set +# CONFIG_SND_AZT2320 is not set +# CONFIG_SND_CMI8330 is not set +# CONFIG_SND_CS4231 is not set +# CONFIG_SND_CS4232 is not set +# CONFIG_SND_CS4236 is not set +# CONFIG_SND_DT019X is not set +# CONFIG_SND_ES968 is not set +# CONFIG_SND_ES1688 is not set +# CONFIG_SND_ES18XX is not set +# CONFIG_SND_GUSCLASSIC is not set +# CONFIG_SND_GUSEXTREME is not set +# CONFIG_SND_GUSMAX is not set +# CONFIG_SND_INTERWAVE is not set +# CONFIG_SND_INTERWAVE_STB is not set +# CONFIG_SND_OPL3SA2 is not set +# CONFIG_SND_OPTI92X_AD1848 is not set +# CONFIG_SND_OPTI92X_CS4231 is not set +# CONFIG_SND_OPTI93X is not set +# CONFIG_SND_MIRO is not set +# CONFIG_SND_SB8 is not set +# CONFIG_SND_SB16 is not set +# CONFIG_SND_SBAWE is not set +# CONFIG_SND_SGALAXY is not set +# CONFIG_SND_SSCAPE is not set +# CONFIG_SND_WAVEFRONT is not set + +# +# PCI devices +# +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# 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_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +CONFIG_SND_INTEL8X0=y +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# 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_VX222 is not set +# CONFIG_SND_YMFPCI is not set +CONFIG_SND_AC97_POWER_SAVE=y + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_USX2Y is not set + +# +# SoC audio support +# +# CONFIG_SND_SOC is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=y + +# +# HID Devices +# +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_SUSPEND=y +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_SPLIT_ISO=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_EHCI_TT_NEWSCHED is not set +# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +# CONFIG_USB_STORAGE is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set +# CONFIG_USB_AIPTEK is not set +CONFIG_USB_WACOM=y +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET_MII is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_MON is not set + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_BERRY_CHARGE is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem 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 +# +# CONFIG_INFINIBAND is not set + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# +# CONFIG_EDAC is not set + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# DMA Engine support +# +# CONFIG_DMA_ENGINE is not set + +# +# DMA Clients +# + +# +# DMA Devices +# + +# +# Auxiliary Display support +# + +# +# Virtualization +# +# CONFIG_KVM is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# 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 is not set +# CONFIG_AUTOFS4_FS is not set +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set +# 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_SQUASHFS 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 is not set +# CONFIG_NFSD is not set +# CONFIG_SMB_FS 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 is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="utf-8" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Instrumentation Support +# +CONFIG_PROFILING=y +CONFIG_OPROFILE=y +# CONFIG_KPROBES is not set + +# +# Kernel hacking +# +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# 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=15 +# CONFIG_DEBUG_BUGVERBOSE is not set +CONFIG_EARLY_PRINTK=y +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=m +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_MANAGER=m +# CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_NULL is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +# 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=m +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_TWOFISH_586 is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_AES is not set +# CONFIG_CRYPTO_AES_586 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_CRC32C is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_TEST is not set + +# +# Hardware crypto devices +# +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=m +CONFIG_CRYPTO_DEV_PADLOCK_SHA=m +CONFIG_CRYPTO_DEV_GEODE=m + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_AUDIT_GENERIC=y +# CONFIG_LZO is not set +CONFIG_ZLIB_INFLATE=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.21/defconfig-c7x0 b/packages/linux/linux-rp-2.6.21/defconfig-c7x0 new file mode 100644 index 0000000000..e8efdd4de2 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-c7x0 @@ -0,0 +1,1786 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.20 +# Thu Mar 29 13:32:11 2007 +# +CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=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_POSIX_MQUEUE is not set +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 is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# 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=y + +# +# 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=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_HX2750 is not set +CONFIG_PXA_SHARPSL_25x=y +# CONFIG_PXA_SHARPSL_27x is not set +# CONFIG_MACH_POODLE is not set +CONFIG_MACH_CORGI=y +CONFIG_MACH_SHEPHERD=y +CONFIG_MACH_HUSKY=y +# CONFIG_MACH_TOSA is not set +CONFIG_PXA25x=y +CONFIG_PXA_SHARP_C7xx=y +CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_IWMMXT is not set +CONFIG_XSCALE_PMU=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARPSL_PM=y +CONFIG_SHARP_SCOOP=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable quiet" +# CONFIG_XIP_KERNEL is not set +CONFIG_CPU_FREQ_PXA25x=y +CONFIG_KEXEC=y + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_NET_KEY 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=y +# 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=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_QUEUE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE 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=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +# 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_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_SHARP_SL=y +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_H1900 is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_SHARPSL=y +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# 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_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=m +# 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=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# 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_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 is not set + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# 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_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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# 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 + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=m +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y + +# +# 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_KEYBOARD_CORGI=y +# CONFIG_KEYBOARD_SPITZ is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_CORGI=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_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=y +CONFIG_INPUT_UINPUT=m + +# +# 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=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m +# CONFIG_NVRAM 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=y +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +CONFIG_I2C_ALGOBIT=y +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP 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 is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# +# CONFIG_TIFM_CORE is not set + +# +# Multi-Function Devices +# + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_CORGI=y +# CONFIG_LEDS_TOSA is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_USBVISION is not set +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_USB_W9968CF is not set +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set + +# +# Radio Adapters +# +CONFIG_USB_DSBR=m + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_FIRMWARE_EDID=y +CONFIG_FB=y +# CONFIG_FB_DDC is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# 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 +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_PXA is not set +# CONFIG_FB_MBX is not set +CONFIG_FB_W100=y +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_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=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CORGI=y + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_SEQUENCER_OSS is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_DETECT is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=m +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# SoC audio support +# +CONFIG_SND_SOC=m + +# +# Soc Platforms +# + +# +# SoC Audio for the Intel PXA2xx +# +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_I2S=m +CONFIG_SND_PXA2XX_SOC_CORGI=m +# CONFIG_SND_PXA2XX_SOC_MAGICIAN is not set + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Freescale i.MX +# + +# +# SoC Audio for the Samsung S3C24XX +# + +# +# Soc Codecs +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8510 is not set +CONFIG_SND_SOC_WM8731=m +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8772 is not set +# CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM8956 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8976 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8980 is not set +# CONFIG_SND_SOC_WM9713 is not set +# CONFIG_SND_SOC_WM9712 is not set +# CONFIG_SND_SOC_UDA1380 is not set +# CONFIG_SND_SOC_AK4535 is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID Devices +# +CONFIG_HID=y + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m +# CONFIG_USB_ACECAD is not set +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +# CONFIG_USB_SERIAL_CP2101 is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set +CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +CONFIG_USB_CYTHERM=m +# CONFIG_USB_PHIDGET is not set +CONFIG_USB_IDMOUSE=m +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GADGET_PXA2XX=y +CONFIG_USB_PXA2XX=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y +# CONFIG_MMC_TIFM_SD is not set + +# +# 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_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# 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 is not set +# 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_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL 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_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC 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=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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="cp437" +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=y +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=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +CONFIG_PROFILING=y +CONFIG_OPROFILE=m + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +# CONFIG_FORCED_INLINING is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL 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=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_LZO=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.21/defconfig-collie b/packages/linux/linux-rp-2.6.21/defconfig-collie new file mode 100644 index 0000000000..422ed94df3 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-collie @@ -0,0 +1,1739 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.20.4 +# Fri Apr 6 23:20:59 2007 +# +CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set +CONFIG_MMU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=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_POSIX_MQUEUE is not set +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 is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_HOTPLUG=y +CONFIG_PRINTK=y +CONFIG_BUG=y +# CONFIG_ELF_CORE is not set +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=y + +# +# 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=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +CONFIG_ARCH_SA1100=y +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set + +# +# SA11x0 Implementations +# +# CONFIG_SA1100_ASSABET is not set +# CONFIG_SA1100_CERF is not set +CONFIG_SA1100_COLLIE=y +# CONFIG_SA1100_H3100 is not set +# CONFIG_SA1100_H3600 is not set +# CONFIG_SA1100_H3800 is not set +# CONFIG_SA1100_BADGE4 is not set +# CONFIG_SA1100_JORNADA720 is not set +# CONFIG_SA1100_HACKKIT is not set +# CONFIG_SA1100_LART is not set +# CONFIG_SA1100_PLEB is not set +# CONFIG_SA1100_SHANNON is not set +# CONFIG_SA1100_SIMPAD is not set +# CONFIG_SA1100_SSP is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_SA1100=y +CONFIG_CPU_32v4=y +CONFIG_CPU_ABRT_EV4=y +CONFIG_CPU_CACHE_V4WB=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WB=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_SHARP_LOCOMO=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARP_SCOOP=y + +# +# Bus support +# +CONFIG_ISA=y + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +# CONFIG_I82365 is not set +# CONFIG_TCIC is not set +CONFIG_PCMCIA_SA1100=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +# CONFIG_AEABI is not set +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_NODES_SHIFT=2 +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_DISCONTIGMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_NEED_MULTIPLE_NODES=y +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set +# CONFIG_LEDS is not set +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m +# CONFIG_ARTHUR is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_NET_KEY 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=y +# 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=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_QUEUE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE 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=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +CONFIG_IRTTY_SIR=m + +# +# Dongle support +# +# CONFIG_DONGLE is not set + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +CONFIG_USB_IRDA=m +# CONFIG_SIGMATEL_FIR is not set +CONFIG_SA1100_FIR=m +# CONFIG_MCS_FIR is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIUSB is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +# 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_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=m +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +# CONFIG_MTD_ABSENT is not set +CONFIG_MTD_OBSOLETE_CHIPS=y +CONFIG_MTD_SHARP=y + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_SA1100=y +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +# CONFIG_MTD_NAND is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# CONFIG_PNP is not set + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=m +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=m + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=m +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=m +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +# CONFIG_IDE_GENERIC is not set +# CONFIG_IDE_ARM is not set +# CONFIG_IDE_CHIPSETS is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=m +# 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=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# 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 is not set + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m + +# +# 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=m +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_SMC91X is not set +# CONFIG_DM9000 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 + +# +# 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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# 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 + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y + +# +# 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_LOCOMO=y +# 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 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=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_SA1100=y +CONFIG_SERIAL_SA1100_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m +# CONFIG_NVRAM 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=m +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +# CONFIG_I2C_ELEKTOR is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_BITBANG is not set +CONFIG_SPI_LOCOMO=m + +# +# SPI Protocol Masters +# + +# +# Dallas's 1-wire bus +# +# CONFIG_W1 is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# +# CONFIG_TIFM_CORE is not set + +# +# Multimedia Capabilities Port drivers +# +CONFIG_MCP=y +CONFIG_MCP_SA11X0=y +CONFIG_MCP_UCB1200=y +CONFIG_MCP_UCB1200_TS=m + +# +# Multi-Function Devices +# + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m + +# +# LED drivers +# +CONFIG_LEDS_LOCOMO=m + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=m +# CONFIG_LEDS_TRIGGER_IDE_DISK is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=m + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video Capture Adapters +# + +# +# Video Capture Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_HELPER_CHIPS_AUTO=y +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_PMS is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_PVRUSB2 is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_USBVISION is not set +# CONFIG_USB_VICAM is not set +# CONFIG_USB_IBMCAM is not set +# CONFIG_USB_KONICAWC is not set +# CONFIG_USB_QUICKCAM_MESSENGER is not set +# CONFIG_USB_ET61X251 is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_USB_W9968CF is not set +# CONFIG_USB_OV511 is not set +# CONFIG_USB_SE401 is not set +# CONFIG_USB_SN9C102 is not set +# CONFIG_USB_STV680 is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set + +# +# Radio Adapters +# +# CONFIG_RADIO_CADET is not set +# CONFIG_RADIO_RTRACK is not set +# CONFIG_RADIO_RTRACK2 is not set +# CONFIG_RADIO_AZTECH is not set +# CONFIG_RADIO_GEMTEK is not set +# CONFIG_RADIO_SF16FMI is not set +# CONFIG_RADIO_SF16FMR2 is not set +# CONFIG_RADIO_TERRATEC is not set +# CONFIG_RADIO_TRUST is not set +# CONFIG_RADIO_TYPHOON is not set +# CONFIG_RADIO_ZOLTRIX is not set +# CONFIG_USB_DSBR is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +CONFIG_FIRMWARE_EDID=y +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# 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 +CONFIG_FB_SA1100=y +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +# CONFIG_MDA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +CONFIG_FONT_8x8=y +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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 +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +CONFIG_BACKLIGHT_LOCOMO=y + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_DUMMY=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# SoC audio support +# +# CONFIG_SND_SOC is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# HID Devices +# +CONFIG_HID=m + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +# CONFIG_USB_ARCH_HAS_OHCI is not set +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET=m +# CONFIG_USB_ALI_M5632 is not set +# CONFIG_USB_AN2720 is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set +CONFIG_USB_SERIAL_AIRPRIME=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_PHIDGET is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +# CONFIG_USB_GADGET is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=m +CONFIG_MMC_DEBUG=y +CONFIG_MMC_BLOCK=m +# CONFIG_MMC_TIFM_SD is not set +CONFIG_MMC_SPI=m + +# +# 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_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# File systems +# +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# CONFIG_EXT4DEV_FS is not set +# 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 is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +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_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL 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_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC 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=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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="cp437" +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=y +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_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +# CONFIG_FORCED_INLINING is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL 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=m +CONFIG_CRYPTO_HASH=m +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=m +# CONFIG_CRYPTO_XCBC is not set +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=m +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_LZO=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.20/defconfig-ipaq-pxa270 b/packages/linux/linux-rp-2.6.21/defconfig-hx2000 index b31a1e4071..2a67a2d045 100644 --- a/packages/linux/linux-rp-2.6.20/defconfig-ipaq-pxa270 +++ b/packages/linux/linux-rp-2.6.21/defconfig-hx2000 @@ -1,20 +1,28 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.15-rc1-git7 -# Sat Nov 19 23:13:51 2005 +# Linux kernel version: 2.6.20-rc2 +# Mon Jan 1 01:49:04 2007 # CONFIG_ARM=y +# CONFIG_GENERIC_TIME is not set CONFIG_MMU=y -CONFIG_UID16=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options # CONFIG_EXPERIMENTAL=y -# CONFIG_CLEAN_COMPILE is not set -CONFIG_BROKEN=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 @@ -25,32 +33,39 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y # CONFIG_SWAP is not set -# CONFIG_SYSVIPC is not set +CONFIG_SYSVIPC=y +# CONFIG_IPC_NS is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set -CONFIG_SYSCTL=y +# CONFIG_TASKSTATS is not set +# CONFIG_UTS_NS is not set # CONFIG_AUDIT is not set -CONFIG_HOTPLUG=y -CONFIG_KOBJECT_UEVENT=y # CONFIG_IKCONFIG is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # 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_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SHMEM=y -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 +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 @@ -58,7 +73,6 @@ CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set -CONFIG_OBSOLETE_MODPARM=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set # CONFIG_KMOD is not set @@ -66,6 +80,10 @@ CONFIG_OBSOLETE_MODPARM=y # # 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 @@ -83,17 +101,28 @@ CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type # +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set # CONFIG_ARCH_CLPS7500 is not set # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_CAMELOT is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_PNX4008 is not set CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set @@ -101,23 +130,20 @@ CONFIG_ARCH_PXA=y # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_IMX is not set -# CONFIG_ARCH_H720X is not set -# CONFIG_ARCH_AAEC2000 is not set # # Intel PXA2xx Implementations # # CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set # CONFIG_MACH_MAINSTONE is not set # CONFIG_ARCH_PXA_IDP is not set # CONFIG_PXA_SHARPSL is not set +# CONFIG_MACH_TRIZEPS4 is not set CONFIG_MACH_HX2750=y CONFIG_PXA27x=y -CONFIG_PXA_KEYS=y CONFIG_PXA_SSP=y +CONFIG_PXA_KEYS=y # # Processor Type @@ -128,17 +154,20 @@ CONFIG_CPU_32v5=y CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y # # Processor Features # CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +CONFIG_IWMMXT=y CONFIG_XSCALE_PMU=y # # Bus support # -CONFIG_ISA_DMA_API=y # # PCCARD (PCMCIA/CardBus) support @@ -159,6 +188,9 @@ CONFIG_PCMCIA_PXA2XX=y # CONFIG_PREEMPT=y CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y @@ -168,6 +200,7 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 +# CONFIG_RESOURCES_64BIT is not set CONFIG_ALIGNMENT_TRAP=y # @@ -175,7 +208,9 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable debug" # CONFIG_XIP_KERNEL is not set +# CONFIG_KEXEC is not set # # CPU Frequency scaling @@ -199,14 +234,15 @@ CONFIG_FPE_NWFPE=y CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set # CONFIG_BINFMT_MISC is not set -# CONFIG_ARTHUR is not set # # Power management options # CONFIG_PM=y # CONFIG_PM_LEGACY is not set -# CONFIG_PM_DEBUG is not set +CONFIG_PM_DEBUG=y +# CONFIG_DISABLE_CONSOLE_SUSPEND is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set CONFIG_APM=y # @@ -217,9 +253,13 @@ CONFIG_NET=y # # Networking options # +# CONFIG_NETDEBUG is not set 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_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set @@ -233,12 +273,21 @@ CONFIG_SYN_COOKIES=y # 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=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set -CONFIG_TCP_CONG_BIC=y +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 # @@ -250,6 +299,11 @@ CONFIG_TCP_CONG_BIC=y # 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 @@ -259,7 +313,6 @@ CONFIG_TCP_CONG_BIC=y # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set -# CONFIG_NET_DIVERT is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set @@ -280,6 +333,8 @@ CONFIG_IEEE80211=m CONFIG_IEEE80211_CRYPT_WEP=m # 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 @@ -292,6 +347,7 @@ CONFIG_STANDALONE=y # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set +# CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker @@ -318,6 +374,7 @@ CONFIG_MTD_BLOCK=y # CONFIG_NFTL is not set # CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set # # RAM/ROM/Flash chip drivers @@ -366,7 +423,6 @@ CONFIG_MTD_CFI_UTIL=y # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set # CONFIG_MTD_BLOCK2MTD is not set # @@ -405,6 +461,7 @@ CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=8192 +CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -413,6 +470,7 @@ CONFIG_BLK_DEV_INITRD=y # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 CONFIG_BLK_DEV_IDE=y # @@ -441,6 +499,12 @@ CONFIG_IDE_GENERIC=y # # CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set +# CONFIG_SCSI_NETLINK is not set + +# +# Serial ATA (prod) and Parallel ATA (experimental) drivers +# +# CONFIG_ATA is not set # # Multi-device support (RAID and LVM) @@ -455,7 +519,6 @@ CONFIG_IDE_GENERIC=y # # IEEE 1394 (FireWire) support # -# CONFIG_IEEE1394 is not set # # I2O device support @@ -482,6 +545,7 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set # # Ethernet (1000 Mbit) @@ -499,6 +563,7 @@ CONFIG_MII=m # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set # # Obsolete Wireless cards support (pre-802.11) @@ -515,7 +580,6 @@ CONFIG_NET_RADIO=y # # Wireless 802.11b ISA/PCI cards support # -# CONFIG_AIRO is not set CONFIG_HERMES=m # CONFIG_ATMEL is not set @@ -528,6 +592,7 @@ CONFIG_PCMCIA_SPECTRUM=m # CONFIG_PCMCIA_WL3501 is not set CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set CONFIG_HOSTAP_CS=m CONFIG_NET_WIRELESS=y @@ -558,6 +623,7 @@ CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set +CONFIG_SLHC=m # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -572,11 +638,12 @@ CONFIG_PPP_BSDCOMP=m # Input device support # CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 @@ -584,7 +651,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set -# CONFIG_INPUT_POWER is not set +CONFIG_INPUT_POWER=y # # Input Device Drivers @@ -597,6 +664,10 @@ CONFIG_INPUT_TOUCHSCREEN=y # CONFIG_TOUCHSCREEN_ELO is not set # CONFIG_TOUCHSCREEN_MTOUCH is not set # CONFIG_TOUCHSCREEN_MK712 is not set +# 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_TOUCHSCREEN_TSC2101=y # CONFIG_INPUT_MISC is not set @@ -612,6 +683,7 @@ CONFIG_TOUCHSCREEN_TSC2101=y 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 # @@ -638,16 +710,12 @@ CONFIG_UNIX98_PTYS=y # Watchdog Cards # # CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m # CONFIG_NVRAM is not set -# CONFIG_SA1100_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # -# Ftape, the floppy tape device driver -# - -# # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set @@ -659,7 +727,6 @@ CONFIG_UNIX98_PTYS=y # TPM devices # # CONFIG_TCG_TPM is not set -# CONFIG_TELCLOCK is not set # # I2C support @@ -667,27 +734,52 @@ CONFIG_UNIX98_PTYS=y # 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 is not set +# CONFIG_HWMON_VID is not set # # Misc devices # +# CONFIG_TIFM_CORE is not set # -# Multimedia Capabilities Port drivers +# Multi-Function Devices # +CONFIG_MFD_TSC2101=y # -# Multi-Function Devices +# LED devices +# +# CONFIG_NEW_LEDS is not set + +# +# LED drivers +# + +# +# LED Triggers # -CONFIG_MFD_TSC2101=y # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices @@ -697,16 +789,22 @@ CONFIG_MFD_TSC2101=y # # Graphics support # +CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # 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 # CONFIG_FB_S1D13XXX is not set CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +# CONFIG_FB_PXA_OVERLAY is not set # CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set # CONFIG_FB_VIRTUAL is not set # @@ -723,7 +821,14 @@ CONFIG_FONT_8x16=y # # Logo configuration # -# CONFIG_LOGO is not set +CONFIG_LOGO=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y @@ -737,10 +842,16 @@ CONFIG_BACKLIGHT_HX2750=y # CONFIG_SOUND is not set # +# HID Devices +# +CONFIG_HID=y + +# # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set # CONFIG_USB is not set # @@ -759,14 +870,16 @@ CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y CONFIG_MMC_PXA=y -# CONFIG_MMC_WBSD is not set +# CONFIG_MMC_TIFM_SD is not set # # 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 @@ -774,15 +887,17 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 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_X1205 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_M48T86 is not set CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set # # File systems @@ -791,14 +906,17 @@ CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set # CONFIG_EXT3_FS is not set -# CONFIG_JBD is not set +# CONFIG_EXT4DEV_FS is not set # 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 is not set @@ -825,12 +943,13 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # Pseudo filesystems # CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y -# CONFIG_TMPFS is not set -# CONFIG_HUGETLBFS is not set +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -# CONFIG_RELAYFS_FS is not set +# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems @@ -842,15 +961,14 @@ CONFIG_RAMFS=y # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -# CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y # CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_FS_XATTR is not set # CONFIG_JFFS2_COMPRESSION_OPTIONS is not set CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y -CONFIG_JFFS2_SUMMARY=y # CONFIG_JFFS2_RUBIN is not set CONFIG_CRAMFS=y CONFIG_SQUASHFS=m @@ -893,6 +1011,7 @@ CONFIG_MSDOS_PARTITION=y # 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 # @@ -940,6 +1059,11 @@ CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y # +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# # Profiling support # # CONFIG_PROFILING is not set @@ -948,24 +1072,33 @@ CONFIG_NLS_UTF8=y # Kernel hacking # # CONFIG_PRINTK_TIME is not set -CONFIG_DEBUG_KERNEL=y +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=y CONFIG_LOG_BUF_SHIFT=14 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set CONFIG_DEBUG_PREEMPT=y +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RWSEMS is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set CONFIG_FRAME_POINTER=y +CONFIG_FORCED_INLINING=y # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y CONFIG_DEBUG_LL=y # CONFIG_DEBUG_ICEDCC is not set @@ -980,7 +1113,11 @@ CONFIG_DEBUG_LL=y # Cryptographic options # CONFIG_CRYPTO=y +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_BLKCIPHER=m +CONFIG_CRYPTO_MANAGER=m # CONFIG_CRYPTO_HMAC is not set +# CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set # CONFIG_CRYPTO_MD5 is not set @@ -989,6 +1126,10 @@ CONFIG_CRYPTO=y # 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=m +CONFIG_CRYPTO_CBC=m +# CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_DES is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set @@ -1012,10 +1153,13 @@ CONFIG_CRYPTO_CRC32C=y # # Library routines # +CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m # CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=y CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_SHARPSL_RC=n +CONFIG_PLIST=y +CONFIG_IOMAP_COPY=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-gta01/defconfig-fic-gta01 b/packages/linux/linux-rp-2.6.21/defconfig-poodle index 40adbcd1a1..13616c08f1 100644 --- a/packages/linux/linux-gta01/defconfig-fic-gta01 +++ b/packages/linux/linux-rp-2.6.21/defconfig-poodle @@ -1,13 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.17.14 -# Tue Feb 13 20:26:21 2007 +# Linux kernel version: 2.6.17 +# Mon Jul 10 23:38:56 2006 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y CONFIG_VECTORS_BASE=0xffff0000 # @@ -15,17 +16,19 @@ CONFIG_VECTORS_BASE=0xffff0000 # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # -CONFIG_LOCALVERSION="-moko7" -# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set -# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set @@ -33,7 +36,7 @@ CONFIG_SYSCTL=y CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y -# CONFIG_EMBEDDED is not set +CONFIG_EMBEDDED=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set @@ -69,14 +72,14 @@ CONFIG_KMOD=y # IO Schedulers # CONFIG_IOSCHED_NOOP=y -CONFIG_IOSCHED_AS=m -CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m CONFIG_IOSCHED_CFQ=m -# CONFIG_DEFAULT_AS is not set -CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set -CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type @@ -93,10 +96,10 @@ CONFIG_DEFAULT_IOSCHED="deadline" # CONFIG_ARCH_IXP2000 is not set # CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set -# CONFIG_ARCH_PXA is not set +CONFIG_ARCH_PXA=y # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set -CONFIG_ARCH_S3C2410=y +# CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set @@ -108,57 +111,45 @@ CONFIG_ARCH_S3C2410=y # CONFIG_ARCH_AT91RM9200 is not set # -# S3C24XX Implementations +# Intel PXA2xx Implementations # -# CONFIG_MACH_ANUBIS is not set -# CONFIG_MACH_OSIRIS is not set -# CONFIG_ARCH_BAST is not set -# CONFIG_ARCH_H1940 is not set -# CONFIG_MACH_N30 is not set -# CONFIG_ARCH_SMDK2410 is not set -CONFIG_MACH_QT2410=y -CONFIG_MACH_GTA01=y -# CONFIG_ARCH_S3C2440 is not set -# CONFIG_MACH_VR1000 is not set -# CONFIG_MACH_RX3715 is not set -# CONFIG_MACH_OTOM is not set -# CONFIG_MACH_NEXCODER_2440 is not set -CONFIG_CPU_S3C2410=y - -# -# S3C2410 Boot -# -CONFIG_S3C2410_BOOT_ERROR_RESET=y - -# -# S3C2410 Setup -# -CONFIG_S3C2410_DMA=y -# CONFIG_S3C2410_DMA_DEBUG is not set -CONFIG_S3C2410_PM_DEBUG=y -CONFIG_S3C2410_PM_CHECK=y -CONFIG_S3C2410_PM_CHECK_CHUNKSIZE=64 -CONFIG_S3C2410_LOWLEVEL_UART_PORT=0 +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_HX2750 is not set +CONFIG_PXA_SHARPSL_25x=y +# CONFIG_PXA_SHARPSL_27x is not set +CONFIG_MACH_POODLE=y +# CONFIG_MACH_CORGI is not set +# CONFIG_MACH_SHEPHERD is not set +# CONFIG_MACH_HUSKY is not set +# CONFIG_MACH_TOSA is not set +CONFIG_PXA25x=y +# CONFIG_PXA_KEYS is not set +CONFIG_PXA_SSP=y # # Processor Type # CONFIG_CPU_32=y -CONFIG_CPU_ARM920T=y -CONFIG_CPU_32v4=y -CONFIG_CPU_ABRT_EV4T=y -CONFIG_CPU_CACHE_V4WT=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y CONFIG_CPU_CACHE_VIVT=y -CONFIG_CPU_COPY_V4WB=y CONFIG_CPU_TLB_V4WBI=y # # Processor Features # CONFIG_ARM_THUMB=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +CONFIG_XSCALE_PMU=y +CONFIG_KEXEC=y +CONFIG_SHARP_LOCOMO=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARPSL_PM=y +CONFIG_SHARP_SCOOP=y # # Bus support @@ -167,14 +158,23 @@ CONFIG_ARM_THUMB=y # # PCCARD (PCMCIA/CardBus) support # -# CONFIG_PCCARD is not set +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y # # Kernel Features # -# CONFIG_PREEMPT is not set -# CONFIG_NO_IDLE_HZ is not set -CONFIG_HZ=200 +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y @@ -192,33 +192,51 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="console=ttySAC0,115200n8 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off debug" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 fbcon=rotate:1 dyntick=enable debug" # CONFIG_XIP_KERNEL is not set # +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_PXA25x=y + +# # Floating point emulation # # # At least one emulation must be selected # -# CONFIG_FPE_NWFPE is not set -CONFIG_FPE_FASTFPE=y +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set # # Userspace binary formats # CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_AOUT is not set -# CONFIG_BINFMT_MISC is not set +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m # CONFIG_ARTHUR is not set # # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y -CONFIG_PM_DEBUG=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set CONFIG_APM=y # @@ -230,33 +248,28 @@ CONFIG_NET=y # Networking options # # CONFIG_NETDEBUG is not set -CONFIG_PACKET=m +CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y # CONFIG_XFRM_USER is not set -CONFIG_NET_KEY=m +# CONFIG_NET_KEY is not set CONFIG_INET=y -CONFIG_IP_MULTICAST=y +# CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -CONFIG_IP_PNP=y -CONFIG_IP_PNP_DHCP=y -# CONFIG_IP_PNP_BOOTP is not set -# CONFIG_IP_PNP_RARP is not set -CONFIG_NET_IPIP=m -CONFIG_NET_IPGRE=m -# CONFIG_NET_IPGRE_BROADCAST is not set -# CONFIG_IP_MROUTE is not set +# 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=y -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_XFRM_TUNNEL=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_DIAG=y -CONFIG_INET_TCP_DIAG=y +# 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_DIAG=m +CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y @@ -279,103 +292,30 @@ CONFIG_NETFILTER=y # # Core Netfilter Configuration # -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_ESP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_POLICY=m -CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NETFILTER_XTABLES is not set # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=m -CONFIG_IP_NF_CT_ACCT=y +# CONFIG_IP_NF_CT_ACCT is not set # CONFIG_IP_NF_CONNTRACK_MARK is not set -CONFIG_IP_NF_CONNTRACK_EVENTS=y -CONFIG_IP_NF_CONNTRACK_NETLINK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set CONFIG_IP_NF_CT_PROTO_SCTP=m CONFIG_IP_NF_FTP=m CONFIG_IP_NF_IRC=m # CONFIG_IP_NF_NETBIOS_NS is not set -# CONFIG_IP_NF_TFTP is not set -# CONFIG_IP_NF_AMANDA is not set -CONFIG_IP_NF_PPTP=m -CONFIG_IP_NF_H323=m -# CONFIG_IP_NF_QUEUE is not set -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_TOS=m -# CONFIG_IP_NF_MATCH_RECENT is not set -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -# CONFIG_IP_NF_MATCH_HASHLIMIT is not set -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -# CONFIG_IP_NF_TARGET_SAME is not set -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_PPTP=m -CONFIG_IP_NF_NAT_H323=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -CONFIG_IP_NF_TARGET_ECN=m -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_TTL=m -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_ARPTABLES is not set +CONFIG_IP_NF_TFTP=m +CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set +# CONFIG_IP_NF_H323 is not set +CONFIG_IP_NF_QUEUE=m # # IPv6: Netfilter Configuration (EXPERIMENTAL) # # CONFIG_IP6_NF_QUEUE is not set -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AH=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_HL=m -# CONFIG_IP6_NF_RAW is not set # # DCCP Configuration (EXPERIMENTAL) @@ -407,53 +347,58 @@ CONFIG_IP6_NF_TARGET_HL=m # # QoS and/or fair queueing # -CONFIG_NET_SCHED=y -# CONFIG_NET_SCH_CLK_JIFFIES is not set -CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y -# CONFIG_NET_SCH_CLK_CPU is not set - -# -# Queueing/Scheduling -# -CONFIG_NET_SCH_CBQ=m -CONFIG_NET_SCH_HTB=m -CONFIG_NET_SCH_HFSC=m -CONFIG_NET_SCH_PRIO=m -CONFIG_NET_SCH_RED=m -CONFIG_NET_SCH_SFQ=m -CONFIG_NET_SCH_TEQL=m -CONFIG_NET_SCH_TBF=m -CONFIG_NET_SCH_GRED=m -CONFIG_NET_SCH_DSMARK=m -CONFIG_NET_SCH_NETEM=m -CONFIG_NET_SCH_INGRESS=m - -# -# Classification -# -CONFIG_NET_CLS=y -CONFIG_NET_CLS_BASIC=m -CONFIG_NET_CLS_TCINDEX=m -CONFIG_NET_CLS_ROUTE4=m -CONFIG_NET_CLS_ROUTE=y -CONFIG_NET_CLS_FW=m -CONFIG_NET_CLS_U32=m -CONFIG_CLS_U32_PERF=y -# CONFIG_CLS_U32_MARK is not set -CONFIG_NET_CLS_RSVP=m -CONFIG_NET_CLS_RSVP6=m -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_CLS_ACT is not set -# CONFIG_NET_CLS_POLICE is not set -# CONFIG_NET_CLS_IND is not set -CONFIG_NET_ESTIMATOR=y +# 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_IRDA=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_PXA_FICP=m CONFIG_BT=m CONFIG_BT_L2CAP=m CONFIG_BT_SCO=m @@ -468,13 +413,25 @@ CONFIG_BT_HIDP=m # Bluetooth device drivers # CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_IEEE80211 is not set +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +# CONFIG_IEEE80211_SOFTMAC is not set +CONFIG_WIRELESS_EXT=y # # Device Drivers @@ -485,13 +442,13 @@ CONFIG_BT_HCIUSB_SCO=y # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m +CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # # Connector - unified userspace <-> kernelspace linker # -CONFIG_CONNECTOR=m +# CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) @@ -510,9 +467,8 @@ CONFIG_MTD_CMDLINE_PARTS=y CONFIG_MTD_CHAR=y CONFIG_MTD_BLOCK=y # CONFIG_FTL is not set -CONFIG_NFTL=y -CONFIG_NFTL_RW=y -CONFIG_INFTL=m +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set # CONFIG_RFD_FTL is not set # @@ -531,21 +487,20 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set # CONFIG_MTD_RAM is not set -# CONFIG_MTD_ROM is not set +CONFIG_MTD_ROM=y # CONFIG_MTD_ABSENT is not set # CONFIG_MTD_OBSOLETE_CHIPS is not set # # Mapping drivers for chip access # -# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_SHARP_SL=y # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set @@ -563,12 +518,10 @@ CONFIG_MTD_CFI_I2=y # CONFIG_MTD_NAND=y CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_H1900 is not set CONFIG_MTD_NAND_IDS=y -CONFIG_MTD_NAND_S3C2410=y -CONFIG_MTD_NAND_S3C2410_BBT=y -# CONFIG_MTD_NAND_S3C2410_DEBUG is not set -# CONFIG_MTD_NAND_S3C2410_HWECC is not set # CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_SHARPSL=y # CONFIG_MTD_NAND_NANDSIM is not set # @@ -589,14 +542,12 @@ CONFIG_MTD_NAND_S3C2410_BBT=y # Block devices # # CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set -CONFIG_BLK_DEV_UB=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_COUNT=16 -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set @@ -612,7 +563,8 @@ CONFIG_BLK_DEV_IDE=y # CONFIG_BLK_DEV_IDE_SATA is not set CONFIG_BLK_DEV_IDEDISK=y # CONFIG_IDEDISK_MULTI_MODE is not set -CONFIG_BLK_DEV_IDECD=y +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set @@ -631,23 +583,24 @@ CONFIG_IDE_GENERIC=y # SCSI device support # # CONFIG_RAID_ATTRS is not set -CONFIG_SCSI=y +CONFIG_SCSI=m 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 is not set -# CONFIG_CHR_DEV_SG is not set +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set @@ -667,16 +620,25 @@ CONFIG_BLK_DEV_SD=y # 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 + +# # Multi-device support (RAID and LVM) # CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m # # Fusion MPT device support @@ -698,7 +660,7 @@ CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set +CONFIG_TUN=m # # PHY device support @@ -712,8 +674,6 @@ CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_SMC91X is not set # CONFIG_DM9000 is not set -CONFIG_NET_PCI=y -CONFIG_CS89x0=y # # Ethernet (1000 Mbit) @@ -730,20 +690,65 @@ CONFIG_CS89x0=y # # Wireless LAN (non-hamradio) # -# CONFIG_NET_RADIO is not set +CONFIG_NET_RADIO=y +# CONFIG_NET_WIRELESS_RTNETLINK is not set + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP 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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m -CONFIG_PPP_MULTILINK=y +# CONFIG_PPP_MULTILINK is not set # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=m -CONFIG_PPP_SYNC_TTY=m +# CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m +# CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set # CONFIG_SHAPER is not set @@ -764,14 +769,15 @@ CONFIG_INPUT=y # # Userland interfaces # -CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV=m # CONFIG_INPUT_MOUSEDEV_PSAUX is not set -CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=240 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y -CONFIG_INPUT_EVBUG=m +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y # # Input Device Drivers @@ -780,30 +786,26 @@ CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_LOCOMO=y # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set -CONFIG_KEYBOARD_GTA01=m -CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_KEYBOARD_CORGI is not set +# CONFIG_KEYBOARD_SPITZ is not set +# CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set CONFIG_INPUT_TOUCHSCREEN=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -CONFIG_TOUCHSCREEN_S3C2410=y -# CONFIG_TOUCHSCREEN_S3C2410_DEBUG is not set +CONFIG_TOUCHSCREEN_CORGI=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_INPUT_MISC is not set +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # -CONFIG_SERIO=y -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO is not set # CONFIG_GAMEPORT is not set # @@ -817,18 +819,21 @@ CONFIG_HW_CONSOLE=y # # Serial drivers # -# CONFIG_SERIAL_8250 is not set +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set # # Non-8250 serial port support # -CONFIG_SERIAL_S3C2410=y -CONFIG_SERIAL_S3C2410_CONSOLE=y +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set # # IPMI @@ -840,13 +845,19 @@ CONFIG_LEGACY_PTY_COUNT=256 # # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set -CONFIG_S3C2410_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # # Ftape, the floppy tape device driver # + +# +# 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 # @@ -854,26 +865,26 @@ CONFIG_S3C2410_RTC=y # # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set -# CONFIG_TS0710_MUX is not set # # I2C support # CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_CHARDEV is not set # # I2C Algorithms # -# CONFIG_I2C_ALGOBIT is not set +CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ALGOPCF is not set # CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support # +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set # CONFIG_I2C_PARPORT_LIGHT is not set -CONFIG_I2C_S3C2410=y # CONFIG_I2C_STUB is not set # CONFIG_I2C_PCA_ISA is not set @@ -883,7 +894,6 @@ CONFIG_I2C_S3C2410=y # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set # CONFIG_SENSORS_EEPROM is not set -CONFIG_SENSORS_PCF50606=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set @@ -896,21 +906,8 @@ CONFIG_SENSORS_PCF50606=y # # SPI support # -CONFIG_SPI=y -# CONFIG_SPI_DEBUG is not set -CONFIG_SPI_MASTER=y - -# -# SPI Master Controller Drivers -# -CONFIG_SPI_BITBANG=y -CONFIG_SPI_S3C24XX_GPIO=y -CONFIG_SPI_S3C24XX=y - -# -# SPI Protocol Masters -# -CONFIG_SPI_SLAVE_JBT6K74=y +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set # # Dallas's 1-wire bus @@ -920,71 +917,101 @@ CONFIG_SPI_SLAVE_JBT6K74=y # # Hardware Monitoring support # -CONFIG_HWMON=y +# CONFIG_HWMON is not set # CONFIG_HWMON_VID is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_FSCHER is not set -# CONFIG_SENSORS_FSCPOS is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_HWMON_DEBUG_CHIP is not set # # Misc devices # # +# Multi-Function Devices +# + +# # LED devices # -# CONFIG_NEW_LEDS is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y # # LED drivers # +CONFIG_LEDS_LOCOMO=y +# CONFIG_LEDS_TOSA is not set # # LED Triggers # +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_IDE_DISK=y # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # +# Video Capture Adapters +# + +# +# Video Capture Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_VIVI is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_CPIA2 is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set +# CONFIG_VIDEO_OVCAMCHIP is not set + +# +# Encoders and Decoders +# +# CONFIG_VIDEO_MSP3400 is not set +# CONFIG_VIDEO_CS53L32A is not set +# CONFIG_VIDEO_WM8775 is not set +# CONFIG_VIDEO_WM8739 is not set +# CONFIG_VIDEO_CX25840 is not set +# CONFIG_VIDEO_SAA711X is not set +# CONFIG_VIDEO_SAA7127 is not set +# CONFIG_VIDEO_UPD64031A is not set +# CONFIG_VIDEO_UPD64083 is not set + +# +# V4L USB devices +# +# CONFIG_VIDEO_EM28XX is not set +CONFIG_USB_DSBR=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_USB_VICAM=m +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +# CONFIG_USB_ET61X251 is not set +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +# CONFIG_USB_W9968CF is not set +# CONFIG_USB_ZC0301 is not set +# CONFIG_USB_PWC is not set + +# +# Radio Adapters +# +# CONFIG_RADIO_MAESTRO is not set + +# # Digital Video Broadcasting Devices # # CONFIG_DVB is not set -# CONFIG_USB_DABUSB is not set +CONFIG_USB_DABUSB=m # # Graphics support @@ -995,11 +1022,12 @@ CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set CONFIG_FB_FIRMWARE_EDID=y -# CONFIG_FB_MODE_HELPERS is not set +CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_S3C2410=y -# CONFIG_FB_S3C2410_DEBUG is not set +CONFIG_FB_PXA=y +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_W100 is not set # CONFIG_FB_VIRTUAL is not set # @@ -1008,15 +1036,15 @@ CONFIG_FB_S3C2410=y # CONFIG_VGA_CONSOLE is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y CONFIG_FONTS=y # CONFIG_FONT_8x8 is not set # CONFIG_FONT_8x16 is not set -CONFIG_FONT_6x11=y +# CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set -# CONFIG_FONT_MINI_4x6 is not set +CONFIG_FONT_MINI_4x6=y # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set @@ -1025,31 +1053,36 @@ CONFIG_FONT_6x11=y # Logo configuration # CONFIG_LOGO=y -# CONFIG_LOGO_LINUX_MONO is not set -# CONFIG_LOGO_LINUX_VGA16 is not set -CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +# CONFIG_LOGO_OHAND_CLUT224 is not set +CONFIG_LOGO_OZ240_CLUT224=y +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_DEVICE=y -CONFIG_BACKLIGHT_GTA01=y +# CONFIG_BACKLIGHT_CORGI is not set +CONFIG_BACKLIGHT_LOCOMO=y # # Sound # -CONFIG_SOUND=y +CONFIG_SOUND=m # # Advanced Linux Sound Architecture # -CONFIG_SND=y -CONFIG_SND_TIMER=y -CONFIG_SND_PCM=y +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m # CONFIG_SND_SEQUENCER is not set CONFIG_SND_OSSEMUL=y -CONFIG_SND_MIXER_OSS=y -CONFIG_SND_PCM_OSS=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_DYNAMIC_MINORS is not set CONFIG_SND_SUPPORT_OLD_API=y @@ -1068,6 +1101,7 @@ CONFIG_SND_VERBOSE_PROCFS=y # # ALSA ARM devices # +# CONFIG_SND_PXA2XX_AC97 is not set # # USB devices @@ -1075,49 +1109,47 @@ CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_USB_AUDIO is not set # -# SoC audio support +# PCMCIA devices # -CONFIG_SND_SOC=y +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set # -# Soc Platforms -# - -# -# SoC Audio for the Intel PXA2xx -# - -# -# SoC Audio for the Atmel AT91 +# SoC audio support # +CONFIG_SND_SOC=m # -# SoC Audio for the Freescale i.MX +# Soc Platforms # # -# SoC Audio for the Samsung S3C24XX +# SoC Audio for the Intel PXA2xx # -CONFIG_SND_S3C24XX_SOC=m -CONFIG_SND_S3C24XX_SOC_I2S=m -CONFIG_SND_S3C24XX_SOC_NEO1973_WM8753=m +CONFIG_SND_PXA2xx_SOC=m +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8731 is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8753 is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8974 is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9713 is not set +# CONFIG_SND_MAINSTONE_BASEBAND is not set +# CONFIG_SND_MAINSTONE_BLUETOOTH is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9712 is not set +# CONFIG_SND_PXA2xx_SOC_CORGI is not set +# CONFIG_SND_PXA2xx_SOC_SPITZ is not set +CONFIG_SND_PXA2xx_SOC_POODLE=m +# CONFIG_SND_PXA2xx_SOC_TOSA is not set # # Soc Codecs # # CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8731 is not set +CONFIG_SND_SOC_WM8731=m # CONFIG_SND_SOC_WM8750 is not set -CONFIG_SND_SOC_WM8753=m +# CONFIG_SND_SOC_WM8753 is not set # CONFIG_SND_SOC_WM8772 is not set # CONFIG_SND_SOC_WM8971 is not set -# CONFIG_SND_SOC_WM8956 is not set -# CONFIG_SND_SOC_WM8960 is not set -CONFIG_SND_SOC_WM8976=m # CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8980 is not set # CONFIG_SND_SOC_WM9713 is not set # CONFIG_SND_SOC_WM9712 is not set # CONFIG_SND_SOC_UDA1380 is not set @@ -1132,9 +1164,9 @@ CONFIG_SND_SOC_WM8976=m # USB support # CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_OHCI is not set # CONFIG_USB_ARCH_HAS_EHCI is not set -CONFIG_USB=y +CONFIG_USB=m # CONFIG_USB_DEBUG is not set # @@ -1150,10 +1182,8 @@ CONFIG_USB_DEVICEFS=y # USB Host Controller Drivers # # CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=m -# CONFIG_USB_OHCI_BIG_ENDIAN is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_SL811_HCD is not set +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m # # USB Device Class drivers @@ -1168,18 +1198,18 @@ CONFIG_USB_PRINTER=m # # may also be needed; see USB_STORAGE Help for more information # -CONFIG_USB_STORAGE=y +CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set -CONFIG_USB_STORAGE_DATAFAB=y -CONFIG_USB_STORAGE_FREECOM=y -CONFIG_USB_STORAGE_ISD200=y -CONFIG_USB_STORAGE_DPCM=y -CONFIG_USB_STORAGE_USBAT=y -CONFIG_USB_STORAGE_SDDR09=y -CONFIG_USB_STORAGE_SDDR55=y -CONFIG_USB_STORAGE_JUMPSHOT=y -CONFIG_USB_STORAGE_ALAUDA=y -CONFIG_USB_LIBUSUAL=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_LIBUSUAL is not set # # USB Input Devices @@ -1193,17 +1223,17 @@ CONFIG_USB_HIDINPUT=y # # USB HID Boot Protocol drivers # -# CONFIG_USB_KBD is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m # CONFIG_USB_ACECAD is not set -# CONFIG_USB_KBTAB is not set -# CONFIG_USB_POWERMATE is not set +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m # CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set -# CONFIG_USB_XPAD is not set -# CONFIG_USB_ATI_REMOTE is not set +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m # CONFIG_USB_ATI_REMOTE2 is not set # CONFIG_USB_KEYSPAN_REMOTE is not set # CONFIG_USB_APPLETOUCH is not set @@ -1211,8 +1241,8 @@ CONFIG_USB_HIDINPUT=y # # USB Imaging devices # -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m # # USB Network Adapters @@ -1224,17 +1254,13 @@ CONFIG_USB_RTL8150=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m -CONFIG_USB_NET_GL620A=m +# CONFIG_USB_NET_GL620A is not set CONFIG_USB_NET_NET1080=m -CONFIG_USB_NET_PLUSB=m -CONFIG_USB_NET_RNDIS_HOST=m -CONFIG_USB_NET_CDC_SUBSET=m -CONFIG_USB_ALI_M5632=y -CONFIG_USB_AN2720=y -CONFIG_USB_BELKIN=y -CONFIG_USB_ARMLINUX=y -CONFIG_USB_EPSON2888=y +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_ZD1201 is not set CONFIG_USB_MON=y # @@ -1246,17 +1272,17 @@ CONFIG_USB_MON=y # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y -CONFIG_USB_SERIAL_AIRPRIME=m -CONFIG_USB_SERIAL_ANYDATA=m -CONFIG_USB_SERIAL_ARK3116=m +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ANYDATA is not set +# CONFIG_USB_SERIAL_ARK3116 is not set CONFIG_USB_SERIAL_BELKIN=m -CONFIG_USB_SERIAL_WHITEHEAT=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m -CONFIG_USB_SERIAL_CP2101=m +# CONFIG_USB_SERIAL_CP2101 is not set CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m -CONFIG_USB_SERIAL_FUNSOFT=m +# CONFIG_USB_SERIAL_FUNSOFT is not set CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m @@ -1266,26 +1292,26 @@ CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m -CONFIG_USB_SERIAL_NAVMAN=m +# CONFIG_USB_SERIAL_NAVMAN is not set CONFIG_USB_SERIAL_PL2303=m -CONFIG_USB_SERIAL_HP4X=m +# CONFIG_USB_SERIAL_HP4X is not set CONFIG_USB_SERIAL_SAFE=m -CONFIG_USB_SERIAL_SAFE_PADDED=y +# CONFIG_USB_SERIAL_SAFE_PADDED is not set CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m @@ -1295,17 +1321,17 @@ CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers # -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_AUERSWALD is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_CYTHERM is not set -# CONFIG_USB_PHIDGETKIT is not set -# CONFIG_USB_PHIDGETSERVO is not set -# CONFIG_USB_IDMOUSE is not set +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m # CONFIG_USB_LD is not set # CONFIG_USB_TEST is not set @@ -1320,22 +1346,23 @@ CONFIG_USB_GADGET=y # CONFIG_USB_GADGET_DEBUG_FILES is not set CONFIG_USB_GADGET_SELECTED=y # CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA2XX=y +CONFIG_USB_PXA2XX=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_PXA27X is not set # CONFIG_USB_GADGET_GOKU is not set # CONFIG_USB_GADGET_LH7A40X is not set # CONFIG_USB_GADGET_OMAP is not set -CONFIG_USB_GADGET_S3C2410=y -CONFIG_USB_S3C2410=y -# CONFIG_USB_S3C2410_DEBUG is not set # CONFIG_USB_GADGET_AT91 is not set # CONFIG_USB_GADGET_DUMMY_HCD is not set # CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=y +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m CONFIG_USB_ETH_RNDIS=y -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m # # MMC/SD Card support @@ -1343,7 +1370,7 @@ CONFIG_USB_ETH_RNDIS=y CONFIG_MMC=y # CONFIG_MMC_DEBUG is not set CONFIG_MMC_BLOCK=y -CONFIG_MMC_S3C=y +CONFIG_MMC_PXA=y # # Real Time Clock @@ -1368,6 +1395,7 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y # CONFIG_RTC_DRV_TEST is not set # @@ -1376,41 +1404,33 @@ CONFIG_RTC_INTF_DEV=y 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_JBD=y -# CONFIG_JBD_DEBUG is not set -CONFIG_FS_MBCACHE=y +# CONFIG_EXT3_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set -CONFIG_FS_POSIX_ACL=y +# CONFIG_FS_POSIX_ACL is not set # CONFIG_XFS_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set -CONFIG_ROMFS_FS=y +# CONFIG_ROMFS_FS is not set CONFIG_INOTIFY=y # CONFIG_QUOTA is not set CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set -CONFIG_FUSE_FS=m +# CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # -CONFIG_ISO9660_FS=m -CONFIG_JOLIET=y -# CONFIG_ZISOFS is not set +# CONFIG_ISO9660_FS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m +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 @@ -1423,7 +1443,7 @@ CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -CONFIG_CONFIGFS_FS=m +# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems @@ -1435,18 +1455,23 @@ CONFIG_CONFIGFS_FS=m # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set -CONFIG_JFFS_FS=m -CONFIG_JFFS_FS_VERBOSE=0 -# CONFIG_JFFS_PROC_FS is not set +# CONFIG_JFFS_FS is not set CONFIG_JFFS2_FS=y CONFIG_JFFS2_FS_DEBUG=0 CONFIG_JFFS2_FS_WRITEBUFFER=y CONFIG_JFFS2_SUMMARY=y -# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y CONFIG_JFFS2_ZLIB=y CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -CONFIG_CRAMFS=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1456,27 +1481,26 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=y +CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m -CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set -CONFIG_NFSD_V4=y -CONFIG_NFSD_TCP=y -CONFIG_ROOT_NFS=y -CONFIG_LOCKD=y +# CONFIG_NFSD is not set +CONFIG_LOCKD=m CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=y -CONFIG_SUNRPC_GSS=y -CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m # CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set -# CONFIG_CIFS is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_EXPERIMENTAL is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set @@ -1485,57 +1509,73 @@ CONFIG_RPCSEC_GSS_KRB5=y # # Partition Types # -# CONFIG_PARTITION_ADVANCED is not set +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=m -CONFIG_NLS_DEFAULT="iso8859-1" -CONFIG_NLS_CODEPAGE_437=m -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set +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 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_ASCII is not set -CONFIG_NLS_ISO8859_1=m -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -CONFIG_NLS_UTF8=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=y +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=y # # Profiling support # -# CONFIG_PROFILING is not set +CONFIG_PROFILING=y +CONFIG_OPROFILE=m # # Kernel hacking @@ -1547,25 +1587,23 @@ CONFIG_LOG_BUF_SHIFT=14 CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y -CONFIG_UNWIND_INFO=y -CONFIG_FORCED_INLINING=y +# CONFIG_UNWIND_INFO is not set +# CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set -# CONFIG_DEBUG_ERRORS is not set -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set -CONFIG_DEBUG_S3C2410_PORT=y -CONFIG_DEBUG_S3C2410_UART=0 +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL is not set # # Security options @@ -1578,29 +1616,29 @@ CONFIG_DEBUG_S3C2410_UART=0 # CONFIG_CRYPTO=y CONFIG_CRYPTO_HMAC=y -# CONFIG_CRYPTO_NULL is not set -# CONFIG_CRYPTO_MD4 is not set -CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_NULL=m +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_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_TGR192 is not set -CONFIG_CRYPTO_DES=y -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_AES is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=m -# CONFIG_CRYPTO_KHAZAD is not set -# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m # # Hardware crypto devices @@ -1609,13 +1647,10 @@ CONFIG_CRYPTO_DEFLATE=m # # Library routines # -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set CONFIG_CRC32=y CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-ezx/defconfig-a780-laforge b/packages/linux/linux-rp-2.6.21/defconfig-qemuarm index 560530a1ce..f70b6db7c7 100644 --- a/packages/linux/linux-ezx/defconfig-a780-laforge +++ b/packages/linux/linux-rp-2.6.21/defconfig-qemuarm @@ -1,13 +1,14 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.16.13 -# Thu May 18 19:40:25 2006 +# Linux kernel version: 2.6.17 +# Sat Aug 26 22:45:02 2006 # CONFIG_ARM=y CONFIG_MMU=y CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 # # Code maturity level options @@ -19,22 +20,24 @@ CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # -CONFIG_LOCALVERSION="-ezx6" -# CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_SWAP is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y CONFIG_SYSVIPC=y # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set CONFIG_SYSCTL=y # CONFIG_AUDIT is not set -# CONFIG_IKCONFIG is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" CONFIG_UID16=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y -CONFIG_EMBEDDED=y +# CONFIG_EMBEDDED is not set CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KALLSYMS_EXTRA_PASS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y @@ -42,44 +45,40 @@ CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y -# CONFIG_SHMEM is not set -CONFIG_CC_ALIGN_FUNCTIONS=0 -CONFIG_CC_ALIGN_LABELS=0 -CONFIG_CC_ALIGN_LOOPS=0 -CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_SHMEM=y CONFIG_SLAB=y -CONFIG_TINY_SHMEM=y +# CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set -CONFIG_OBSOLETE_INTERMODULE=m +CONFIG_OBSOLETE_INTERMODULE=y # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y -CONFIG_MODULE_FORCE_UNLOAD=y -CONFIG_OBSOLETE_MODPARM=y +# CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set -# CONFIG_KMOD is not set +CONFIG_KMOD=y # # Block layer # +# CONFIG_BLK_DEV_IO_TRACE is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y -# CONFIG_IOSCHED_AS is not set -# CONFIG_IOSCHED_DEADLINE is not set -# CONFIG_IOSCHED_CFQ is not set -# CONFIG_DEFAULT_AS is not set +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set -CONFIG_DEFAULT_NOOP=y -CONFIG_DEFAULT_IOSCHED="noop" +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" # # System Type @@ -88,61 +87,63 @@ CONFIG_DEFAULT_IOSCHED="noop" # CONFIG_ARCH_CLPS711X is not set # CONFIG_ARCH_CO285 is not set # CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set # CONFIG_ARCH_FOOTBRIDGE is not set # CONFIG_ARCH_INTEGRATOR is not set # CONFIG_ARCH_IOP3XX is not set # CONFIG_ARCH_IXP4XX is not set # CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set # CONFIG_ARCH_L7200 is not set -CONFIG_ARCH_PXA=y +# CONFIG_ARCH_PXA is not set # CONFIG_ARCH_RPC is not set # CONFIG_ARCH_SA1100 is not set # CONFIG_ARCH_S3C2410 is not set # CONFIG_ARCH_SHARK is not set # CONFIG_ARCH_LH7A40X is not set # CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_VERSATILE=y # CONFIG_ARCH_REALVIEW is not set # CONFIG_ARCH_IMX is not set # CONFIG_ARCH_H720X is not set # CONFIG_ARCH_AAEC2000 is not set # CONFIG_ARCH_AT91RM9200 is not set -CONFIG_PXA_EZX=y # -# Intel PXA2xx Implementations +# Versatile platform type # -# CONFIG_ARCH_LUBBOCK is not set -# CONFIG_MACH_MAINSTONE is not set -# CONFIG_ARCH_PXA_IDP is not set -# CONFIG_PXA_SHARPSL is not set -# CONFIG_PXA_EZX_E680 is not set -CONFIG_PXA_EZX_A780=y -CONFIG_PXA27x=y -CONFIG_IWMMXT=y -CONFIG_PXA_SPI=y -CONFIG_PXA_EZX_PCAP=y -CONFIG_PXA_EZX_PCAP_EMU=m +CONFIG_ARCH_VERSATILE_PB=y +# CONFIG_MACH_VERSATILE_AB is not set # # Processor Type # CONFIG_CPU_32=y -CONFIG_CPU_XSCALE=y +CONFIG_CPU_ARM926T=y CONFIG_CPU_32v5=y -CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_ABRT_EV5TJ=y CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_COPY_V4WB=y CONFIG_CPU_TLB_V4WBI=y # # Processor Features # CONFIG_ARM_THUMB=y -CONFIG_XSCALE_PMU=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_WRITETHROUGH is not set +# CONFIG_CPU_CACHE_ROUND_ROBIN is not set +# CONFIG_KEXEC is not set +CONFIG_ARM_VIC=y +CONFIG_ICST307=y # # Bus support # +CONFIG_ARM_AMBA=y +CONFIG_PCI=y +# CONFIG_PCI_DEBUG is not set # # PCCARD (PCMCIA/CardBus) support @@ -154,6 +155,7 @@ CONFIG_XSCALE_PMU=y # # CONFIG_PREEMPT is not set # CONFIG_NO_IDLE_HZ is not set +CONFIG_HZ=100 # CONFIG_AEABI is not set # CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set CONFIG_SELECT_MEMORY_MODEL=y @@ -164,6 +166,9 @@ CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y # CONFIG_SPARSEMEM_STATIC is not set CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_LEDS=y +CONFIG_LEDS_TIMER=y +CONFIG_LEDS_CPU=y CONFIG_ALIGNMENT_TRAP=y # @@ -171,7 +176,7 @@ CONFIG_ALIGNMENT_TRAP=y # CONFIG_ZBOOT_ROM_TEXT=0x0 CONFIG_ZBOOT_ROM_BSS=0x0 -CONFIG_CMDLINE="mem=32M root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=1 ip=192.168.1.2:192.168.1.10:192.168.1.10:255.255.255.0:ezx:usb0:off console=ttyS2,115200n8 console=tty0" +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable debug" # CONFIG_XIP_KERNEL is not set # @@ -184,6 +189,7 @@ CONFIG_CMDLINE="mem=32M root=/dev/mmcblk0p1 rootfstype=ext3 rootdelay=1 ip=192.1 CONFIG_FPE_NWFPE=y # CONFIG_FPE_NWFPE_XP is not set # CONFIG_FPE_FASTFPE is not set +CONFIG_VFP=y # # Userspace binary formats @@ -197,9 +203,9 @@ CONFIG_BINFMT_ELF=y # Power management options # CONFIG_PM=y -CONFIG_PM_LEGACY=y +# CONFIG_PM_LEGACY is not set # CONFIG_PM_DEBUG is not set -CONFIG_APM=y +# CONFIG_APM is not set # # Networking @@ -210,147 +216,36 @@ CONFIG_NET=y # Networking options # # CONFIG_NETDEBUG is not set -CONFIG_PACKET=m +CONFIG_PACKET=y CONFIG_PACKET_MMAP=y -CONFIG_UNIX=m -CONFIG_XFRM=y -CONFIG_XFRM_USER=m -CONFIG_NET_KEY=m +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set CONFIG_INET=y -# CONFIG_IP_MULTICAST is not set +CONFIG_IP_MULTICAST=y # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y -# CONFIG_IP_PNP is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set -CONFIG_INET_AH=m -CONFIG_INET_ESP=m -CONFIG_INET_IPCOMP=m -CONFIG_INET_TUNNEL=m -CONFIG_INET_DIAG=m -CONFIG_INET_TCP_DIAG=m +# 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_DIAG=y +CONFIG_INET_TCP_DIAG=y # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_BIC=y - -# -# IP: Virtual Server Configuration -# -# CONFIG_IP_VS is not set -CONFIG_IPV6=m -# CONFIG_IPV6_PRIVACY is not set -CONFIG_INET6_AH=m -CONFIG_INET6_ESP=m -CONFIG_INET6_IPCOMP=m -CONFIG_INET6_TUNNEL=m -CONFIG_IPV6_TUNNEL=m -CONFIG_NETFILTER=y -# CONFIG_NETFILTER_DEBUG is not set - -# -# Core Netfilter Configuration -# -CONFIG_NETFILTER_NETLINK=m -CONFIG_NETFILTER_NETLINK_QUEUE=m -CONFIG_NETFILTER_NETLINK_LOG=m -CONFIG_NETFILTER_XTABLES=m -CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m -CONFIG_NETFILTER_XT_TARGET_MARK=m -CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m -CONFIG_NETFILTER_XT_TARGET_NOTRACK=m -CONFIG_NETFILTER_XT_MATCH_COMMENT=m -CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m -CONFIG_NETFILTER_XT_MATCH_DCCP=m -CONFIG_NETFILTER_XT_MATCH_HELPER=m -CONFIG_NETFILTER_XT_MATCH_LENGTH=m -CONFIG_NETFILTER_XT_MATCH_LIMIT=m -CONFIG_NETFILTER_XT_MATCH_MAC=m -CONFIG_NETFILTER_XT_MATCH_MARK=m -CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m -CONFIG_NETFILTER_XT_MATCH_REALM=m -CONFIG_NETFILTER_XT_MATCH_SCTP=m -CONFIG_NETFILTER_XT_MATCH_STATE=m -CONFIG_NETFILTER_XT_MATCH_STRING=m -CONFIG_NETFILTER_XT_MATCH_TCPMSS=m - -# -# IP: Netfilter Configuration -# -CONFIG_IP_NF_CONNTRACK=m -# CONFIG_IP_NF_CT_ACCT is not set -# CONFIG_IP_NF_CONNTRACK_MARK is not set -CONFIG_IP_NF_CONNTRACK_EVENTS=y -CONFIG_IP_NF_CONNTRACK_NETLINK=m -CONFIG_IP_NF_CT_PROTO_SCTP=m -CONFIG_IP_NF_FTP=m -CONFIG_IP_NF_IRC=m -CONFIG_IP_NF_NETBIOS_NS=m -CONFIG_IP_NF_TFTP=m -CONFIG_IP_NF_AMANDA=m -CONFIG_IP_NF_PPTP=m -# CONFIG_IP_NF_QUEUE is not set -CONFIG_IP_NF_IPTABLES=m -CONFIG_IP_NF_MATCH_IPRANGE=m -CONFIG_IP_NF_MATCH_MULTIPORT=m -CONFIG_IP_NF_MATCH_TOS=m -CONFIG_IP_NF_MATCH_RECENT=m -CONFIG_IP_NF_MATCH_ECN=m -CONFIG_IP_NF_MATCH_DSCP=m -CONFIG_IP_NF_MATCH_AH_ESP=m -CONFIG_IP_NF_MATCH_TTL=m -CONFIG_IP_NF_MATCH_OWNER=m -CONFIG_IP_NF_MATCH_ADDRTYPE=m -CONFIG_IP_NF_MATCH_HASHLIMIT=m -CONFIG_IP_NF_MATCH_POLICY=m -CONFIG_IP_NF_FILTER=m -CONFIG_IP_NF_TARGET_REJECT=m -CONFIG_IP_NF_TARGET_LOG=m -CONFIG_IP_NF_TARGET_ULOG=m -CONFIG_IP_NF_TARGET_TCPMSS=m -CONFIG_IP_NF_NAT=m -CONFIG_IP_NF_NAT_NEEDED=y -CONFIG_IP_NF_TARGET_MASQUERADE=m -CONFIG_IP_NF_TARGET_REDIRECT=m -CONFIG_IP_NF_TARGET_NETMAP=m -CONFIG_IP_NF_TARGET_SAME=m -CONFIG_IP_NF_NAT_SNMP_BASIC=m -CONFIG_IP_NF_NAT_IRC=m -CONFIG_IP_NF_NAT_FTP=m -CONFIG_IP_NF_NAT_TFTP=m -CONFIG_IP_NF_NAT_AMANDA=m -CONFIG_IP_NF_NAT_PPTP=m -CONFIG_IP_NF_MANGLE=m -CONFIG_IP_NF_TARGET_TOS=m -# CONFIG_IP_NF_TARGET_ECN is not set -CONFIG_IP_NF_TARGET_DSCP=m -CONFIG_IP_NF_TARGET_TTL=m -CONFIG_IP_NF_RAW=m -CONFIG_IP_NF_ARPTABLES=m -CONFIG_IP_NF_ARPFILTER=m -CONFIG_IP_NF_ARP_MANGLE=m - -# -# IPv6: Netfilter Configuration (EXPERIMENTAL) -# -# CONFIG_IP6_NF_QUEUE is not set -CONFIG_IP6_NF_IPTABLES=m -CONFIG_IP6_NF_MATCH_RT=m -CONFIG_IP6_NF_MATCH_OPTS=m -CONFIG_IP6_NF_MATCH_FRAG=m -CONFIG_IP6_NF_MATCH_HL=m -CONFIG_IP6_NF_MATCH_MULTIPORT=m -CONFIG_IP6_NF_MATCH_OWNER=m -CONFIG_IP6_NF_MATCH_IPV6HEADER=m -CONFIG_IP6_NF_MATCH_AHESP=m -CONFIG_IP6_NF_MATCH_EUI64=m -CONFIG_IP6_NF_MATCH_POLICY=m -CONFIG_IP6_NF_FILTER=m -CONFIG_IP6_NF_TARGET_LOG=m -CONFIG_IP6_NF_TARGET_REJECT=m -CONFIG_IP6_NF_MANGLE=m -CONFIG_IP6_NF_TARGET_HL=m -CONFIG_IP6_NF_RAW=m +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +# CONFIG_NETFILTER is not set # # DCCP Configuration (EXPERIMENTAL) @@ -383,7 +278,6 @@ CONFIG_IP6_NF_RAW=m # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set -CONFIG_NET_CLS_ROUTE=y # # Network testing @@ -391,32 +285,8 @@ CONFIG_NET_CLS_ROUTE=y # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set -CONFIG_BT=m -CONFIG_BT_L2CAP=m -CONFIG_BT_SCO=m -CONFIG_BT_RFCOMM=m -CONFIG_BT_RFCOMM_TTY=y -CONFIG_BT_BNEP=m -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -CONFIG_BT_HIDP=m - -# -# Bluetooth device drivers -# -CONFIG_BT_HCIUSB=m -CONFIG_BT_HCIUSB_SCO=y -CONFIG_BT_HCIUART=m -CONFIG_BT_HCIUART_H4=y -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIBCM203X=m -CONFIG_BT_HCIBPA10X=m -CONFIG_BT_HCIBFUSB=m -CONFIG_BT_HCIVHCI=m -CONFIG_IEEE80211=m -# CONFIG_IEEE80211_DEBUG is not set -CONFIG_IEEE80211_CRYPT_WEP=m -CONFIG_IEEE80211_CRYPT_CCMP=m +# CONFIG_BT is not set +# CONFIG_IEEE80211 is not set # # Device Drivers @@ -427,69 +297,65 @@ CONFIG_IEEE80211_CRYPT_CCMP=m # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y -CONFIG_FW_LOADER=m +# CONFIG_FW_LOADER is not set # CONFIG_DEBUG_DRIVER is not set # # Connector - unified userspace <-> kernelspace linker # -CONFIG_CONNECTOR=m +# CONFIG_CONNECTOR is not set # # Memory Technology Devices (MTD) # -CONFIG_MTD=m -CONFIG_MTD_DEBUG=y -CONFIG_MTD_DEBUG_VERBOSE=3 +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set # CONFIG_MTD_CONCAT is not set CONFIG_MTD_PARTITIONS=y # CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_CMDLINE_PARTS is not set -# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_AFS_PARTS=y # # User Modules And Translation Layers # -CONFIG_MTD_CHAR=m -CONFIG_MTD_BLOCK=m -# CONFIG_MTD_BLOCK_RO is not set -CONFIG_FTL=m -CONFIG_NFTL=m -CONFIG_NFTL_RW=y -CONFIG_INFTL=m -CONFIG_RFD_FTL=m +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set # # RAM/ROM/Flash chip drivers # -CONFIG_MTD_CFI=m -CONFIG_MTD_JEDECPROBE=m -CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y CONFIG_MTD_CFI_ADV_OPTIONS=y CONFIG_MTD_CFI_NOSWAP=y # CONFIG_MTD_CFI_BE_BYTE_SWAP is not set # CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_GEOMETRY=y -# CONFIG_MTD_MAP_BANK_WIDTH_1 is not set +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y # CONFIG_MTD_MAP_BANK_WIDTH_8 is not set # CONFIG_MTD_MAP_BANK_WIDTH_16 is not set # CONFIG_MTD_MAP_BANK_WIDTH_32 is not set CONFIG_MTD_CFI_I1=y -# CONFIG_MTD_CFI_I2 is not set +CONFIG_MTD_CFI_I2=y # CONFIG_MTD_CFI_I4 is not set # CONFIG_MTD_CFI_I8 is not set # CONFIG_MTD_OTP is not set -CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_INTELEXT=y # CONFIG_MTD_CFI_AMDSTD is not set # CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CFI_UTIL=y # CONFIG_MTD_RAM is not set # CONFIG_MTD_ROM is not set # CONFIG_MTD_ABSENT is not set # CONFIG_MTD_OBSOLETE_CHIPS is not set -CONFIG_MTD_XIP=y # # Mapping drivers for chip access @@ -497,20 +363,15 @@ CONFIG_MTD_XIP=y # CONFIG_MTD_COMPLEX_MAPPINGS is not set # CONFIG_MTD_PHYSMAP is not set # CONFIG_MTD_ARM_INTEGRATOR is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_SHARP_SL is not set -CONFIG_MTD_PXA27x=m # CONFIG_MTD_PLATRAM is not set # # Self-contained MTD device drivers # -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_M25P80 is not set +# CONFIG_MTD_PMC551 is not set # CONFIG_MTD_SLRAM is not set # CONFIG_MTD_PHRAM is not set # CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_BLKMTD is not set # CONFIG_MTD_BLOCK2MTD is not set # @@ -518,26 +379,12 @@ CONFIG_MTD_PXA27x=m # # CONFIG_MTD_DOC2000 is not set # CONFIG_MTD_DOC2001 is not set -CONFIG_MTD_DOC2001PLUS=m -CONFIG_MTD_DOCPROBE=m -CONFIG_MTD_DOCECC=m -# CONFIG_MTD_DOCPROBE_ADVANCED is not set -CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOC2001PLUS is not set # # NAND Flash Device Drivers # -CONFIG_MTD_NAND=m -# CONFIG_MTD_NAND_VERIFY_WRITE is not set -# CONFIG_MTD_NAND_H1900 is not set -CONFIG_MTD_NAND_IDS=m -CONFIG_MTD_NAND_DISKONCHIP=m -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED=y -CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 -# CONFIG_MTD_NAND_DISKONCHIP_PROBE_HIGH is not set -# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND is not set # # OneNAND Flash Device Drivers @@ -556,52 +403,119 @@ CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0x0 # # Block devices # +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set -CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set -# CONFIG_BLK_DEV_RAM is not set +CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=51200 +CONFIG_BLK_DEV_INITRD=y # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set -# CONFIG_ARCH_EZX_ROFLASH is not set - -# -# ATA/ATAPI/MFM/RLL support -# -# CONFIG_IDE is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set -# CONFIG_SCSI is not set +CONFIG_SCSI=y +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 is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_DPT_I2O is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_SYM53C8XX_2=y +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set # # Multi-device support (RAID and LVM) # CONFIG_MD=y -# CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=m CONFIG_DM_CRYPT=m -# CONFIG_DM_SNAPSHOT is not set -# CONFIG_DM_MIRROR is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DM_MULTIPATH is not set +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m # # Fusion MPT device support # # CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set # # IEEE 1394 (FireWire) support # +# CONFIG_IEEE1394 is not set # # I2O device support # +# CONFIG_I2O is not set # # Network device support @@ -610,28 +524,65 @@ CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set -# CONFIG_TUN is not set +CONFIG_TUN=m + +# +# ARCnet devices +# +# CONFIG_ARCNET is not set # # PHY device support # +# CONFIG_PHYLIB is not set # # Ethernet (10 or 100Mbit) # -# CONFIG_NET_ETHERNET is not set +CONFIG_NET_ETHERNET=y +CONFIG_MII=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +CONFIG_SMC91X=y +# CONFIG_DM9000 is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_HP100 is not set +# CONFIG_NET_PCI is not set # # Ethernet (1000 Mbit) # +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_SK98LIN is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +# CONFIG_S2IO is not set # # Token Ring devices # +# CONFIG_TR is not set # # Wireless LAN (non-hamradio) @@ -642,16 +593,11 @@ CONFIG_NETDEVICES=y # Wan interfaces # # CONFIG_WAN is not set -CONFIG_PPP=m -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_FILTER is not set -CONFIG_PPP_ASYNC=m -# CONFIG_PPP_SYNC_TTY is not set -CONFIG_PPP_DEFLATE=m -CONFIG_PPP_BSDCOMP=m -CONFIG_PPP_MPPE=m -# CONFIG_PPPOE is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PPP is not set # CONFIG_SLIP is not set +# CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set @@ -672,42 +618,37 @@ CONFIG_INPUT=y # # CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set -CONFIG_INPUT_TSDEV=m -CONFIG_INPUT_TSDEV_SCREEN_X=240 -CONFIG_INPUT_TSDEV_SCREEN_Y=320 -CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_POWER is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y -# CONFIG_KEYBOARD_ATKBD is not set +CONFIG_KEYBOARD_ATKBD=y # 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_PXA=y CONFIG_INPUT_MOUSE=y -# CONFIG_MOUSE_PS2 is not set +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=y -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# 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_PCAP=m -# CONFIG_INPUT_MISC is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_UINPUT is not set # # Hardware I/O ports # -CONFIG_SERIO=m +CONFIG_SERIO=y # CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_LIBPS2 is not set +CONFIG_SERIO_AMBAKMI=y +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set @@ -727,13 +668,13 @@ CONFIG_HW_CONSOLE=y # # Non-8250 serial port support # -CONFIG_SERIAL_PXA=y -CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y -CONFIG_LEGACY_PTYS=y -CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_LEGACY_PTYS is not set # # IPMI @@ -745,16 +686,15 @@ CONFIG_LEGACY_PTY_COUNT=256 # # CONFIG_WATCHDOG is not set # CONFIG_NVRAM is not set -CONFIG_SA1100_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set # # Ftape, the floppy tape device driver # +# CONFIG_DRM is not set # CONFIG_RAW_DRIVER is not set -# CONFIG_LINUX_LED is not set -# CONFIG_BULVERDE_SRAM_DEV is not set # # TPM devices @@ -765,96 +705,63 @@ CONFIG_SA1100_RTC=y # # I2C support # -CONFIG_I2C=y -CONFIG_I2C_CHARDEV=y - -# -# I2C Algorithms -# -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALGOPCA is not set - -# -# I2C Hardware Bus support -# -CONFIG_I2C_PXA=y -CONFIG_I2C_PXA_SLAVE=y -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_PCA_ISA is not set - -# -# Miscellaneous I2C Chip support -# -# CONFIG_SENSORS_DS1337 is not set -# CONFIG_SENSORS_DS1374 is not set -# CONFIG_SENSORS_EEPROM is not set -# CONFIG_SENSORS_PCF8574 is not set -# CONFIG_SENSORS_PCA9539 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_RTC8564 is not set -# CONFIG_SENSORS_MAX6875 is not set -# CONFIG_RTC_X1205_I2C is not set -# CONFIG_I2C_ADCM2700 is not set -# CONFIG_I2C_A780_CAMERA is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C is not set # # SPI support # -CONFIG_SPI=y -CONFIG_SPI_DEBUG=y -CONFIG_SPI_MASTER=y +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set # -# SPI Master Controller Drivers +# Dallas's 1-wire bus # -CONFIG_SPI_BITBANG=m +# CONFIG_W1 is not set # -# SPI Protocol Masters +# Hardware Monitoring support # +CONFIG_HWMON=y +# CONFIG_HWMON_VID is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_HWMON_DEBUG_CHIP is not set # -# Dallas's 1-wire bus +# Misc devices # -# CONFIG_W1 is not set # -# Hardware Monitoring support +# Multi-Function Devices # -# CONFIG_HWMON is not set -# CONFIG_HWMON_VID is not set # -# Misc devices +# LED devices # +CONFIG_NEW_LEDS=y +# CONFIG_LEDS_CLASS is not set # -# Motorola EZX devices +# LED drivers # -# CONFIG_KEYPAD_A780 is not set -# CONFIG_KEYPAD_E680 is not set -# CONFIG_KEYLIGHT_A780 is not set -# CONFIG_FMRADIO_E680 is not set # -# Multimedia Capabilities Port drivers +# LED Triggers # +# CONFIG_LEDS_TRIGGERS is not set # # Multimedia devices # -# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set # # Graphics support @@ -864,31 +771,40 @@ CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set -# CONFIG_FB_MODE_HELPERS is not set +CONFIG_FB_FIRMWARE_EDID=y +CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +CONFIG_FB_ARMCLCD=y +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set # CONFIG_FB_S1D13XXX is not set -CONFIG_FB_PXA=y -CONFIG_FB_PXA_PARAMETERS=y +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_TRIDENT is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # -# CONFIG_VGA_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 is not set -# CONFIG_FONT_ACORN_8x8 is not set -CONFIG_FONT_MINI_4x6=y -# CONFIG_FONT_SUN8x16 is not set -# CONFIG_FONT_SUN12x22 is not set -# CONFIG_FONT_10x18 is not set +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y # # Logo configuration @@ -896,12 +812,12 @@ CONFIG_FONT_MINI_4x6=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y -CONFIG_LOGO_LINUX_CLUT224=y -CONFIG_BACKLIGHT_LCD_SUPPORT=y -CONFIG_BACKLIGHT_CLASS_DEVICE=m -CONFIG_BACKLIGHT_DEVICE=y -CONFIG_LCD_CLASS_DEVICE=m -CONFIG_LCD_DEVICE=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound @@ -913,7 +829,8 @@ CONFIG_LCD_DEVICE=y # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y -CONFIG_USB=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y # CONFIG_USB_DEBUG is not set # @@ -928,10 +845,12 @@ CONFIG_USB=m # # USB Host Controller Drivers # +# CONFIG_USB_EHCI_HCD is not set # CONFIG_USB_ISP116X_HCD is not set -CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_UHCI_HCD is not set # CONFIG_USB_SL811_HCD is not set # @@ -948,12 +867,12 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y # may also be needed; see USB_STORAGE Help for more information # # CONFIG_USB_STORAGE is not set -CONFIG_USB_LIBUSUAL=y +# CONFIG_USB_LIBUSUAL is not set # # USB Input Devices # -# CONFIG_USB_HID is not set +CONFIG_USB_HID=y # # USB HID Boot Protocol drivers @@ -961,13 +880,11 @@ CONFIG_USB_LIBUSUAL=y # CONFIG_USB_KBD is not set # CONFIG_USB_MOUSE is not set # CONFIG_USB_AIPTEK is not set -# CONFIG_USB_WACOM is not set +CONFIG_USB_WACOM=y # CONFIG_USB_ACECAD is not set # CONFIG_USB_KBTAB is not set # CONFIG_USB_POWERMATE is not set -# CONFIG_USB_MTOUCH is not set -# CONFIG_USB_ITMTOUCH is not set -# CONFIG_USB_EGALAX is not set +# CONFIG_USB_TOUCHSCREEN is not set # CONFIG_USB_YEALINK is not set # CONFIG_USB_XPAD is not set # CONFIG_USB_ATI_REMOTE is not set @@ -979,15 +896,7 @@ CONFIG_USB_LIBUSUAL=y # USB Imaging devices # # CONFIG_USB_MDC800 is not set - -# -# USB Multimedia devices -# -# CONFIG_USB_DABUSB is not set - -# -# Video4Linux support is needed for USB Multimedia device support -# +# CONFIG_USB_MICROTEK is not set # # USB Network Adapters @@ -1031,52 +940,51 @@ CONFIG_USB_MON=y # # USB Gadget Support # -CONFIG_USB_GADGET=y -CONFIG_USB_GADGET_DEBUG_FILES=y -CONFIG_USB_GADGET_SELECTED=y -# CONFIG_USB_GADGET_NET2280 is not set -# CONFIG_USB_GADGET_PXA2XX is not set -CONFIG_USB_GADGET_PXA27X=y -CONFIG_USB_PXA27X=y -# CONFIG_USB_PXA27X_DMA is not set -# CONFIG_USB_GADGET_GOKU is not set -# CONFIG_USB_GADGET_LH7A40X is not set -# CONFIG_USB_GADGET_OMAP is not set -# CONFIG_USB_GADGET_DUMMY_HCD is not set -# CONFIG_USB_GADGET_DUALSPEED is not set -# CONFIG_USB_ZERO is not set -CONFIG_USB_ETH=y -# CONFIG_USB_ETH_RNDIS is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_FILE_STORAGE is not set -# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_GADGET is not set # # MMC/SD Card support # -CONFIG_MMC=y -# CONFIG_MMC_DEBUG is not set -CONFIG_MMC_BLOCK=y -CONFIG_MMC_PXA=y +# CONFIG_MMC is not set + +# +# Real Time Clock +# +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y + +# +# RTC drivers +# +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_TEST is not set # # File systems # -# CONFIG_EXT2_FS is not set -CONFIG_EXT3_FS=y -# CONFIG_EXT3_FS_XATTR is not set -CONFIG_JBD=y -# CONFIG_JBD_DEBUG is not set +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set # 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_OCFS2_FS is not set # CONFIG_MINIX_FS is not set -CONFIG_ROMFS_FS=m -# CONFIG_INOTIFY is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y # CONFIG_QUOTA is not set -# CONFIG_DNOTIFY is not set +CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set @@ -1090,11 +998,8 @@ CONFIG_ROMFS_FS=m # # DOS/FAT/NT Filesystems # -CONFIG_FAT_FS=m -CONFIG_MSDOS_FS=m -CONFIG_VFAT_FS=m -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_MSDOS_FS is not set +# CONFIG_VFAT_FS is not set # CONFIG_NTFS_FS is not set # @@ -1102,11 +1007,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_PROC_FS=y CONFIG_SYSFS=y -# CONFIG_TMPFS is not set +CONFIG_TMPFS=y # CONFIG_HUGETLB_PAGE is not set CONFIG_RAMFS=y -CONFIG_RELAYFS_FS=m -CONFIG_CONFIGFS_FS=m +# CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems @@ -1119,8 +1023,16 @@ CONFIG_CONFIGFS_FS=m # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS_FS is not set -# CONFIG_JFFS2_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_SUMMARY is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set CONFIG_CRAMFS=y +# CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set @@ -1130,25 +1042,26 @@ CONFIG_CRAMFS=y # # Network File Systems # -CONFIG_NFS_FS=m +CONFIG_NFS_FS=y CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set -CONFIG_NFS_V4=y +# CONFIG_NFS_V4 is not set # CONFIG_NFS_DIRECTIO is not set -CONFIG_NFSD=m +CONFIG_NFSD=y CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set # CONFIG_NFSD_V4 is not set -CONFIG_NFSD_TCP=y -CONFIG_LOCKD=m +# CONFIG_NFSD_TCP is not set +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y CONFIG_LOCKD_V4=y -CONFIG_EXPORTFS=m +CONFIG_EXPORTFS=y CONFIG_NFS_COMMON=y -CONFIG_SUNRPC=m -CONFIG_SUNRPC_GSS=m -CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_RPCSEC_GSS_SPKM3 is not set -# CONFIG_SMB_FS is not set +CONFIG_SMB_FS=y +# CONFIG_SMB_NLS_DEFAULT is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set @@ -1158,13 +1071,28 @@ CONFIG_RPCSEC_GSS_KRB5=m # # Partition Types # -# CONFIG_PARTITION_ADVANCED is not set +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=m +CONFIG_NLS=y CONFIG_NLS_DEFAULT="iso8859-1" # CONFIG_NLS_CODEPAGE_437 is not set # CONFIG_NLS_CODEPAGE_737 is not set @@ -1208,7 +1136,8 @@ CONFIG_NLS_DEFAULT="iso8859-1" # # Profiling support # -# CONFIG_PROFILING is not set +CONFIG_PROFILING=y +CONFIG_OPROFILE=m # # Kernel hacking @@ -1217,25 +1146,25 @@ CONFIG_NLS_DEFAULT="iso8859-1" CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y CONFIG_LOG_BUF_SHIFT=14 -# CONFIG_DETECT_SOFTLOCKUP is not set +CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHEDSTATS is not set # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_INFO=y # CONFIG_DEBUG_FS is not set # CONFIG_DEBUG_VM is not set CONFIG_FRAME_POINTER=y +# CONFIG_UNWIND_INFO is not set CONFIG_FORCED_INLINING=y # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_DEBUG_USER is not set # CONFIG_DEBUG_WAITQ is not set CONFIG_DEBUG_ERRORS=y -CONFIG_DEBUG_LL=y -# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_LL is not set # # Security options @@ -1246,31 +1175,7 @@ CONFIG_DEBUG_LL=y # # Cryptographic options # -CONFIG_CRYPTO=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_NULL=m -CONFIG_CRYPTO_MD4=m -CONFIG_CRYPTO_MD5=m -CONFIG_CRYPTO_SHA1=m -CONFIG_CRYPTO_SHA256=m -CONFIG_CRYPTO_SHA512=m -CONFIG_CRYPTO_WP512=m -CONFIG_CRYPTO_TGR192=m -CONFIG_CRYPTO_DES=m -CONFIG_CRYPTO_BLOWFISH=m -CONFIG_CRYPTO_TWOFISH=m -CONFIG_CRYPTO_SERPENT=m -CONFIG_CRYPTO_AES=m -CONFIG_CRYPTO_CAST5=m -CONFIG_CRYPTO_CAST6=m -CONFIG_CRYPTO_TEA=m -CONFIG_CRYPTO_ARC4=m -CONFIG_CRYPTO_KHAZAD=m -CONFIG_CRYPTO_ANUBIS=m -CONFIG_CRYPTO_DEFLATE=m -CONFIG_CRYPTO_MICHAEL_MIC=m -CONFIG_CRYPTO_CRC32C=m -CONFIG_CRYPTO_TEST=m +# CONFIG_CRYPTO is not set # # Hardware crypto devices @@ -1279,20 +1184,10 @@ CONFIG_CRYPTO_TEST=m # # Library routines # -CONFIG_CRC_CCITT=m -CONFIG_CRC16=m +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set CONFIG_CRC32=y -CONFIG_LIBCRC32C=m +# CONFIG_LIBCRC32C is not set CONFIG_ZLIB_INFLATE=y -CONFIG_ZLIB_DEFLATE=m -CONFIG_REED_SOLOMON=m -CONFIG_REED_SOLOMON_DEC16=y -CONFIG_TEXTSEARCH=y -CONFIG_TEXTSEARCH_KMP=m -CONFIG_TEXTSEARCH_BM=m -CONFIG_TEXTSEARCH_FSM=m - -# -# Dynamic Power Management -# -# CONFIG_DPM is not set +CONFIG_ZLIB_DEFLATE=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.21/defconfig-qemux86 b/packages/linux/linux-rp-2.6.21/defconfig-qemux86 new file mode 100644 index 0000000000..08e0a0c6c7 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-qemux86 @@ -0,0 +1,1567 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.17 +# Mon Oct 16 19:42:42 2006 +# +CONFIG_X86_32=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_X86=y +CONFIG_MMU=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_DMI=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_POSIX_MQUEUE=y +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_SYSCTL=y +CONFIG_AUDIT=y +CONFIG_AUDITSYSCALL=y +# CONFIG_IKCONFIG is not set +# CONFIG_CPUSETS is not set +# CONFIG_RELAY is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_UID16=y +CONFIG_VM86=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_EMBEDDED=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_TINY_SHMEM is not set +CONFIG_BASE_SMALL=0 +# CONFIG_SLOB is not set + +# +# Loadable module support +# +CONFIG_MODULES=y +# CONFIG_MODULE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# +CONFIG_LBD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_LSF is not set + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# Processor type and features +# +CONFIG_SMP=y +CONFIG_X86_PC=y +# CONFIG_X86_ELAN is not set +# CONFIG_X86_VOYAGER is not set +# CONFIG_X86_NUMAQ is not set +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_BIGSMP is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_GENERICARCH is not set +# CONFIG_X86_ES7000 is not set +CONFIG_M386=y +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586TSC is not set +# CONFIG_M586MMX is not set +# CONFIG_M686 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +# CONFIG_MPENTIUM4 is not set +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +# CONFIG_MCRUSOE is not set +# CONFIG_MEFFICEON is not set +# CONFIG_MWINCHIPC6 is not set +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +# CONFIG_MCYRIXIII is not set +# CONFIG_MVIAC3_2 is not set +CONFIG_X86_GENERIC=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_F00F_BUG=y +CONFIG_X86_INTEL_USERCOPY=y +# CONFIG_HPET_TIMER is not set +CONFIG_NR_CPUS=8 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_NONFATAL=y +CONFIG_X86_MCE_P4THERMAL=y +# CONFIG_TOSHIBA is not set +# CONFIG_I8K is not set +# CONFIG_X86_REBOOTFIXUPS is not set +# CONFIG_MICROCODE is not set +# CONFIG_X86_MSR is not set +# CONFIG_X86_CPUID is not set + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +# CONFIG_DELL_RBU is not set +# CONFIG_DCDBAS is not set +CONFIG_NOHIGHMEM=y +# CONFIG_HIGHMEM4G is not set +# CONFIG_HIGHMEM64G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +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=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_MATH_EMULATION is not set +CONFIG_MTRR=y +# CONFIG_EFI is not set +CONFIG_IRQBALANCE=y +# CONFIG_REGPARM is not set +CONFIG_SECCOMP=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +# CONFIG_KEXEC is not set +CONFIG_PHYSICAL_START=0x100000 +# CONFIG_HOTPLUG_CPU is not set + +# +# Power management options (ACPI, APM) +# +CONFIG_PM=y +CONFIG_PM_LEGACY=y +# CONFIG_PM_DEBUG is not set + +# +# ACPI (Advanced Configuration and Power Interface) Support +# +CONFIG_ACPI=y +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_VIDEO=m +# CONFIG_ACPI_HOTKEY is not set +CONFIG_ACPI_FAN=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_THERMAL=y +# CONFIG_ACPI_ASUS is not set +CONFIG_ACPI_IBM=m +# CONFIG_ACPI_IBM_DOCK is not set +# CONFIG_ACPI_TOSHIBA is not set +CONFIG_ACPI_BLACKLIST_YEAR=0 +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_EC=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_SYSTEM=y +CONFIG_X86_PM_TIMER=y +# CONFIG_ACPI_CONTAINER is not set + +# +# APM (Advanced Power Management) BIOS Support +# +# CONFIG_APM is not set + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Bus options (PCI, PCMCIA, EISA, MCA, ISA) +# +CONFIG_PCI=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GOMMCONFIG is not set +# CONFIG_PCI_GODIRECT is not set +CONFIG_PCI_GOANY=y +CONFIG_PCI_BIOS=y +CONFIG_PCI_DIRECT=y +CONFIG_PCI_MMCONFIG=y +# CONFIG_PCIEPORTBUS is not set +# CONFIG_PCI_MSI is not set +CONFIG_ISA_DMA_API=y +CONFIG_ISA=y +# CONFIG_EISA is not set +# CONFIG_MCA is not set +# CONFIG_SCx200 is not set + +# +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# PCI Hotplug Support +# +# CONFIG_HOTPLUG_PCI is not set + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=y +CONFIG_BINFMT_MISC=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_UNIX=y +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_FIB_HASH=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE is not set +# CONFIG_IP_MROUTE 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_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +# CONFIG_IPV6 is not set +# CONFIG_INET6_XFRM_TUNNEL is not set +# CONFIG_INET6_TUNNEL is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=y +# CONFIG_IP_NF_CT_ACCT is not set +# CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +# CONFIG_IP_NF_CT_PROTO_SCTP is not set +# CONFIG_IP_NF_FTP is not set +# CONFIG_IP_NF_IRC is not set +# CONFIG_IP_NF_NETBIOS_NS is not set +# CONFIG_IP_NF_TFTP is not set +# CONFIG_IP_NF_AMANDA is not set +# CONFIG_IP_NF_PPTP is not set +# CONFIG_IP_NF_H323 is not set +CONFIG_IP_NF_QUEUE=y + +# +# 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_NET_DIVERT 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 is not set + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=m + +# +# 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=y +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARPORT_PC_FIFO is not set +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_GSC is not set +# CONFIG_PARPORT_1284 is not set + +# +# Plug and Play support +# +CONFIG_PNP=y +# CONFIG_PNP_DEBUG is not set + +# +# Protocols +# +# CONFIG_ISAPNP is not set +# CONFIG_PNPBIOS is not set +CONFIG_PNPACPI=y + +# +# Block devices +# +CONFIG_BLK_DEV_FD=y +# CONFIG_BLK_DEV_XD is not set +# CONFIG_PARIDE is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_LOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=51200 +CONFIG_BLK_DEV_INITRD=y +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_IDEDISK=y +CONFIG_IDEDISK_MULTI_MODE=y +CONFIG_BLK_DEV_IDECD=y +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +# CONFIG_BLK_DEV_IDEPNP is not set +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_GENERIC=y +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_RZ1000=y +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEDMA_ONLYDISK is not set +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +# CONFIG_BLK_DEV_ATIIXP is not set +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_CS5535 is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_PIIX=y +# CONFIG_BLK_DEV_IT821X is not set +# CONFIG_BLK_DEV_NS87415 is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SIS5513 is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +# CONFIG_IDE_ARM is not set +# CONFIG_IDE_CHIPSETS is not set +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +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 is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# 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 + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_7000FASST is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AHA152X is not set +# CONFIG_SCSI_AHA1542 is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +# CONFIG_SCSI_AIC79XX is not set +CONFIG_SCSI_DPT_I2O=m +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +CONFIG_SCSI_SATA=y +# CONFIG_SCSI_SATA_AHCI is not set +# CONFIG_SCSI_SATA_SVW is not set +CONFIG_SCSI_ATA_PIIX=y +# CONFIG_SCSI_SATA_MV is not set +# CONFIG_SCSI_SATA_NV is not set +# CONFIG_SCSI_PDC_ADMA is not set +# CONFIG_SCSI_SATA_QSTOR is not set +# CONFIG_SCSI_SATA_PROMISE is not set +CONFIG_SCSI_SATA_SX4=m +# CONFIG_SCSI_SATA_SIL is not set +# CONFIG_SCSI_SATA_SIL24 is not set +CONFIG_SCSI_SATA_SIS=m +# CONFIG_SCSI_SATA_ULI is not set +# CONFIG_SCSI_SATA_VIA is not set +# CONFIG_SCSI_SATA_VITESSE is not set +CONFIG_SCSI_SATA_INTEL_COMBINED=y +# CONFIG_SCSI_BUSLOGIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_DTC3280 is not set +# CONFIG_SCSI_EATA is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_PPA is not set +# CONFIG_SCSI_IMM is not set +# CONFIG_SCSI_NCR53C406A is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_FC is not set +# CONFIG_SCSI_LPFC is not set +# CONFIG_SCSI_SYM53C416 is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_T128 is not set +# CONFIG_SCSI_U14_34F is not set +# CONFIG_SCSI_ULTRASTOR is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_DEBUG is not set + +# +# Old CD-ROM drivers (not SCSI, not IDE) +# +# CONFIG_CD_NO_IDESCSI is not set + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_DM=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set +# CONFIG_FUSION_SPI is not set +# CONFIG_FUSION_FC is not set +# CONFIG_FUSION_SAS is not set + +# +# IEEE 1394 (FireWire) support +# +CONFIG_IEEE1394=y + +# +# Subsystem Options +# +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +# CONFIG_IEEE1394_OUI_DB is not set +# CONFIG_IEEE1394_EXTRA_CONFIG_ROMS is not set +# CONFIG_IEEE1394_EXPORT_FULL_API is not set + +# +# Device Drivers +# + +# +# Texas Instruments PCILynx requires I2C +# +CONFIG_IEEE1394_OHCI1394=y + +# +# Protocol Drivers +# +# CONFIG_IEEE1394_VIDEO1394 is not set +# CONFIG_IEEE1394_SBP2 is not set +# CONFIG_IEEE1394_ETH1394 is not set +# CONFIG_IEEE1394_DV1394 is not set +CONFIG_IEEE1394_RAWIO=y + +# +# I2O device support +# +# CONFIG_I2O is not set + +# +# Network device support +# +CONFIG_NETDEVICES=y +CONFIG_DUMMY=m +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +# CONFIG_TUN is not set +# CONFIG_NET_SB1000 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_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_LANCE is not set +# CONFIG_NET_VENDOR_SMC is not set +# CONFIG_NET_VENDOR_RACAL is not set + +# +# Tulip family network device support +# +# CONFIG_NET_TULIP is not set +# CONFIG_AT1700 is not set +# CONFIG_DEPCA is not set +# CONFIG_HP100 is not set +CONFIG_NET_ISA=y +# CONFIG_E2100 is not set +# CONFIG_EWRK3 is not set +# CONFIG_EEXPRESS is not set +# CONFIG_EEXPRESS_PRO is not set +# CONFIG_HPLAN_PLUS is not set +# CONFIG_HPLAN is not set +# CONFIG_LP486E is not set +# CONFIG_ETH16I is not set +CONFIG_NE2000=y +# CONFIG_ZNET is not set +# CONFIG_SEEQ8005 is not set +CONFIG_NET_PCI=y +# CONFIG_PCNET32 is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_ADAPTEC_STARFIRE is not set +# CONFIG_AC3200 is not set +# CONFIG_APRICOT is not set +# CONFIG_B44 is not set +# CONFIG_FORCEDETH is not set +# CONFIG_CS89x0 is not set +# CONFIG_DGRS is not set +# CONFIG_EEPRO100 is not set +# CONFIG_E100 is not set +# CONFIG_FEALNX is not set +# CONFIG_NATSEMI is not set +CONFIG_NE2K_PCI=y +# CONFIG_8139CP is not set +CONFIG_8139TOO=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139TOO_8129 is not set +# CONFIG_8139_OLD_RX_RESET is not set +# CONFIG_SIS900 is not set +# CONFIG_EPIC100 is not set +# CONFIG_SUNDANCE is not set +# CONFIG_TLAN is not set +# CONFIG_VIA_RHINE is not set +# CONFIG_NET_POCKET is not set + +# +# Ethernet (1000 Mbit) +# +# CONFIG_ACENIC is not set +# CONFIG_DL2K is not set +# CONFIG_E1000 is not set +# CONFIG_NS83820 is not set +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +# CONFIG_R8169 is not set +# CONFIG_SIS190 is not set +# CONFIG_SKGE is not set +# CONFIG_SKY2 is not set +# CONFIG_SK98LIN is not set +# CONFIG_VIA_VELOCITY is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2 is not set + +# +# Ethernet (10000 Mbit) +# +# CONFIG_CHELSIO_T1 is not set +# CONFIG_IXGB is not set +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set + +# +# Token Ring devices +# +# CONFIG_TR is not set + +# +# Wireless LAN (non-hamradio) +# +# CONFIG_NET_RADIO is not set + +# +# Wan interfaces +# +# CONFIG_WAN is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_PLIP is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +# CONFIG_NET_FC 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 + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_POWER is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +CONFIG_KEYBOARD_ATKBD=y +# 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_INPUT_MOUSE is not set +# CONFIG_MOUSE_PS2 is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_CONSOLE is not set +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_CORE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set +CONFIG_PRINTER=y +# CONFIG_LP_CONSOLE 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 is not set +# CONFIG_NVRAM is not set +# CONFIG_RTC is not set +# CONFIG_GEN_RTC is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_SONYPI is not set + +# +# Ftape, the floppy tape device driver +# +CONFIG_AGP=y +# CONFIG_AGP_ALI is not set +# CONFIG_AGP_ATI is not set +# CONFIG_AGP_AMD is not set +# CONFIG_AGP_AMD64 is not set +CONFIG_AGP_INTEL=y +# CONFIG_AGP_NVIDIA is not set +# CONFIG_AGP_SIS is not set +# CONFIG_AGP_SWORKS is not set +# CONFIG_AGP_VIA is not set +# CONFIG_AGP_EFFICEON is not set +CONFIG_DRM=y +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_I810 is not set +# CONFIG_DRM_I830 is not set +# CONFIG_DRM_I915 is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_SIS is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +# CONFIG_MWAVE is not set +# CONFIG_CS5535_GPIO is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set + +# +# TPM devices +# +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK 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_F71805F is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Misc devices +# +# CONFIG_IBM_ASM is not set + +# +# Multi-Function Devices +# + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +# CONFIG_USB_DABUSB is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +CONFIG_FB_FIRMWARE_EDID=y +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_VGA16=y +CONFIG_FB_VESA=y +# CONFIG_FB_VESA_STD is not set +CONFIG_FB_VESA_TNG=y +CONFIG_FB_VESA_DEFAULT_MODE="640x480-32@60" +CONFIG_VIDEO_SELECT=y +# CONFIG_FB_HGA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I810 is not set +# CONFIG_FB_INTEL is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_CYBLA is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_GEODE is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +# 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=y +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_SEQUENCER=y +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=y +CONFIG_SND_AC97_BUS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ISA devices +# +# CONFIG_SND_ADLIB is not set +# CONFIG_SND_AD1816A is not set +# CONFIG_SND_AD1848 is not set +# CONFIG_SND_ALS100 is not set +# CONFIG_SND_AZT2320 is not set +# CONFIG_SND_CMI8330 is not set +# CONFIG_SND_CS4231 is not set +# CONFIG_SND_CS4232 is not set +# CONFIG_SND_CS4236 is not set +# CONFIG_SND_DT019X is not set +# CONFIG_SND_ES968 is not set +# CONFIG_SND_ES1688 is not set +# CONFIG_SND_ES18XX is not set +# CONFIG_SND_GUSCLASSIC is not set +# CONFIG_SND_GUSEXTREME is not set +# CONFIG_SND_GUSMAX is not set +# CONFIG_SND_INTERWAVE is not set +# CONFIG_SND_INTERWAVE_STB is not set +# CONFIG_SND_OPL3SA2 is not set +# CONFIG_SND_OPTI92X_AD1848 is not set +# CONFIG_SND_OPTI92X_CS4231 is not set +# CONFIG_SND_OPTI93X is not set +# CONFIG_SND_MIRO is not set +# CONFIG_SND_SB8 is not set +# CONFIG_SND_SB16 is not set +# CONFIG_SND_SBAWE is not set +# CONFIG_SND_SGALAXY is not set +# CONFIG_SND_SSCAPE is not set +# CONFIG_SND_WAVEFRONT is not set + +# +# PCI devices +# +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALS300 is not set +# CONFIG_SND_ALS4000 is not set +# CONFIG_SND_ALI5451 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# 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_EMU10K1 is not set +# CONFIG_SND_EMU10K1X is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +CONFIG_SND_INTEL8X0=y +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_MAESTRO3 is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# 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_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# USB devices +# +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_USX2Y is not set + +# +# SoC audio support +# +# CONFIG_SND_SOC is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB=y +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_SPLIT_ISO is not set +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +CONFIG_USB_PRINTER=y + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=y +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set +# CONFIG_USB_AIPTEK is not set +CONFIG_USB_WACOM=y +# CONFIG_USB_ACECAD is not set +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +# CONFIG_USB_XPAD is not set +# CONFIG_USB_ATI_REMOTE is not set +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set + +# +# USB Network Adapters +# +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_USBNET is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# +# CONFIG_USB_USS720 is not set + +# +# USB Serial Converter support +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +CONFIG_USB_CYTHERM=m +# CONFIG_USB_PHIDGETKIT is not set +CONFIG_USB_PHIDGETSERVO=m +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem 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 +# +# CONFIG_INFINIBAND is not set + +# +# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) +# +# CONFIG_EDAC is not set + +# +# Real Time Clock +# +# CONFIG_RTC_CLASS is not set + +# +# 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_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_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +CONFIG_AUTOFS4_FS=y +# CONFIG_FUSE_FS is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +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_SYSFS=y +CONFIG_TMPFS=y +# 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_SQUASHFS 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=y +# CONFIG_NFS_V3 is not set +# CONFIG_NFS_V4 is not set +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=y +# CONFIG_NFSD_V3 is not set +CONFIG_NFSD_TCP=y +CONFIG_ROOT_NFS=y +CONFIG_LOCKD=y +CONFIG_EXPORTFS=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +# CONFIG_RPCSEC_GSS_KRB5 is not set +# CONFIG_RPCSEC_GSS_SPKM3 is not set +# CONFIG_SMB_FS 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 is not set +CONFIG_MSDOS_PARTITION=y + +# +# Native Language Support +# +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_UTF8 is not set + +# +# Instrumentation Support +# +CONFIG_PROFILING=y +CONFIG_OPROFILE=y +# CONFIG_KPROBES is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +# CONFIG_MAGIC_SYSRQ is not set +# CONFIG_DEBUG_KERNEL is not set +CONFIG_LOG_BUF_SHIFT=15 +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_FS is not set +# CONFIG_UNWIND_INFO is not set +CONFIG_EARLY_PRINTK=y +CONFIG_STACK_BACKTRACE_COLS=2 +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_MPPARSE=y +CONFIG_DOUBLEFAULT=y + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +# CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# + +# +# Library routines +# +# CONFIG_CRC_CCITT is not set +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_X86_SMP=y +CONFIG_X86_HT=y +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_KTIME_SCALAR=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.21/defconfig-spitz b/packages/linux/linux-rp-2.6.21/defconfig-spitz new file mode 100644 index 0000000000..e1c2c10352 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-spitz @@ -0,0 +1,1741 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.21 +# Wed Jun 13 15:37:54 2007 +# +CONFIG_ARM=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_GENERIC_GPIO=y +CONFIG_GENERIC_TIME=y +CONFIG_MMU=y +# CONFIG_NO_IOPORT is not set +CONFIG_GENERIC_HARDIRQS=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +# CONFIG_ARCH_HAS_ILOG2_U32 is not set +# CONFIG_ARCH_HAS_ILOG2_U64 is not set +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA=y +CONFIG_ARCH_MTD_XIP=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=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 is not set +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 is not set +CONFIG_SYSFS_DEPRECATED=y +# CONFIG_RELAY is not set +# CONFIG_BLK_DEV_INITRD is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_EMBEDDED=y +CONFIG_UID16=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# 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=y + +# +# 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=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_IXP23XX is not set +# CONFIG_ARCH_L7200 is not set +# CONFIG_ARCH_NS9XXX is not set +# CONFIG_ARCH_PNX4008 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_LOGICPD_PXA270 is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_TRIZEPS4 is not set +# CONFIG_MACH_HX2750 is not set +# CONFIG_PXA_SHARPSL_25x is not set +CONFIG_PXA_SHARPSL_27x=y +CONFIG_MACH_AKITA=y +CONFIG_MACH_SPITZ=y +CONFIG_MACH_BORZOI=y +CONFIG_PXA27x=y +CONFIG_PXA_SHARP_Cxx00=y +CONFIG_PXA_SSP=y +# CONFIG_PXA_KEYS is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_OUTER_CACHE is not set +CONFIG_IWMMXT=y +CONFIG_XSCALE_PMU=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARPSL_PM=y +CONFIG_SHARP_SCOOP=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +CONFIG_HZ=100 +CONFIG_AEABI=y +CONFIG_OABI_COMPAT=y +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 +# CONFIG_RESOURCES_64BIT is not set +CONFIG_ZONE_DMA_FLAG=1 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_CMDLINE="console=ttyS0,115200n8 console=tty1 noinitrd root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw fbcon=rotate:1 dyntick=enable quiet" +# CONFIG_XIP_KERNEL is not set +CONFIG_KEXEC=y + +# +# CPU Frequency scaling +# +# CONFIG_CPU_FREQ is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +# CONFIG_PM_SYSFS_DEPRECATED is not set +CONFIG_APM_EMULATION=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +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 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=y +# 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=m +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +# CONFIG_IPV6_MIP6 is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set +CONFIG_IPV6_SIT=m +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NF_CONNTRACK_ENABLED is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_QUEUE=m +# CONFIG_IP_NF_IPTABLES is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE is not set +# CONFIG_IP6_NF_IPTABLES 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=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_PXA_FICP=m +# CONFIG_MCS_FIR is not set +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +# 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_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +CONFIG_MTD_COMPLEX_MAPPINGS=y +# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_SHARP_SL=y +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_ECC_SMC is not set +# CONFIG_MTD_NAND_H1900 is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +CONFIG_MTD_NAND_SHARPSL=y +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# +# 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_UB is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +CONFIG_IDE_GENERIC=y +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=m +# 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=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# 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_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 is not set + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +# CONFIG_BLK_DEV_MD is not set +CONFIG_BLK_DEV_DM=m +# CONFIG_DM_DEBUG is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set +# CONFIG_SMC911X is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# 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_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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE is not set +# CONFIG_SLIP is not set +CONFIG_SLHC=m +# 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 + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=m +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y + +# +# 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_KEYBOARD_CORGI is not set +CONFIG_KEYBOARD_SPITZ=y +# CONFIG_KEYBOARD_GPIO is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_CORGI=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_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=y +CONFIG_INPUT_UINPUT=m + +# +# 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=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +CONFIG_HW_RANDOM=m +# CONFIG_NVRAM 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=y +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP 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 is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# + +# +# Multifunction device drivers +# +# CONFIG_MFD_SM501 is not set + +# +# Multi-Function Devices +# + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +CONFIG_LEDS_SPITZ=y +# CONFIG_LEDS_TOSA is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +CONFIG_LEDS_TRIGGER_IDE_DISK=y +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set +CONFIG_USB_DABUSB=m + +# +# Graphics support +# +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_LCD_CLASS_DEVICE=y +CONFIG_BACKLIGHT_CORGI=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 + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_S1D13XXX is not set +CONFIG_FB_PXA=y +CONFIG_FB_PXA_LCD_QVGA=y +# CONFIG_FB_PXA_LCD_VGA is not set +CONFIG_FB_PXA_OVERLAY=y +# CONFIG_FB_PXA_PARAMETERS is not set +# CONFIG_FB_MBX is not set +# CONFIG_FB_W100 is not set +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_CONSOLE is not set +CONFIG_DUMMY_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FONTS=y +# CONFIG_FONT_8x8 is not set +CONFIG_FONT_8x16=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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=y +CONFIG_LOGO_LINUX_MONO=y +CONFIG_LOGO_LINUX_VGA16=y +# CONFIG_LOGO_LINUX_CLUT224 is not set +CONFIG_LOGO_OHAND_CLUT224=y +# CONFIG_LOGO_OZ240_CLUT224 is not set +# CONFIG_LOGO_OZ480_CLUT224 is not set +# CONFIG_LOGO_OZ640_CLUT224 is not set + +# +# Sound +# +CONFIG_SOUND=m + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=m +CONFIG_SND_TIMER=m +CONFIG_SND_PCM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQ_DUMMY is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +# CONFIG_SND_SEQUENCER_OSS is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +CONFIG_SND_DEBUG=y +# CONFIG_SND_DEBUG_DETECT is not set +# CONFIG_SND_PCM_XRUN_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_CODEC=m +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +CONFIG_SND_PXA2XX_PCM=m +CONFIG_SND_PXA2XX_AC97=m + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# PCMCIA devices +# +# CONFIG_SND_VXPOCKET is not set +# CONFIG_SND_PDAUDIOCF is not set + +# +# SoC audio support +# +CONFIG_SND_SOC=m + +# +# SoC Platforms +# + +# +# SoC Audio for the Atmel AT91 +# + +# +# SoC Audio for the Intel PXA2xx +# +CONFIG_SND_PXA2XX_SOC=m +CONFIG_SND_PXA2XX_SOC_I2S=m +CONFIG_SND_PXA2XX_SOC_SPITZ=m +CONFIG_SND_SOC_WM8750=m + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set +CONFIG_AC97_BUS=m + +# +# HID Devices +# +CONFIG_HID=y +# CONFIG_HID_DEBUG is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ARCH_HAS_EHCI is not set +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m +# CONFIG_USB_ACECAD is not set +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m +# CONFIG_USB_TOUCHSCREEN is not set +# CONFIG_USB_YEALINK is not set +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set +# CONFIG_USB_GTCO is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET_MII=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=m +# CONFIG_USB_NET_PLUSB is not set +# CONFIG_USB_NET_MCS7830 is not set +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +CONFIG_USB_NET_ZAURUS=m +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +# CONFIG_USB_SERIAL_CP2101 is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_FUNSOFT is not set +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set +CONFIG_USB_SERIAL_OMNINET=m +# CONFIG_USB_SERIAL_DEBUG is not set +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +# CONFIG_USB_ADUTUX is not set +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +# CONFIG_USB_BERRY_CHARGE is not set +CONFIG_USB_LED=m +# CONFIG_USB_CYPRESS_CY7C63 is not set +CONFIG_USB_CYTHERM=m +# CONFIG_USB_PHIDGET is not set +CONFIG_USB_IDMOUSE=m +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=m +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_PXA27X=y +CONFIG_USB_PXA27X=m +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m +# CONFIG_USB_MIDI_GADGET is not set + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y + +# +# 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_CMOS is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_M48T86 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# 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 is not set +# CONFIG_EXT4DEV_FS is not set +CONFIG_JBD=y +# CONFIG_JBD_DEBUG is not set +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +CONFIG_FS_POSIX_ACL=y +# 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 is not set +# 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_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL 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_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +# CONFIG_JFFS2_CMODE_FAVOURLZO is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC 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=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFSD=m +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFSD_TCP=y +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_EXPORTFS=m +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG2 is not set +# CONFIG_CIFS_EXPERIMENTAL 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="cp437" +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=y +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=y + +# +# Distributed Lock Manager +# +# CONFIG_DLM is not set + +# +# Profiling support +# +CONFIG_PROFILING=y +CONFIG_OPROFILE=m + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_HEADERS_CHECK is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_SHIRQ is not set +CONFIG_LOG_BUF_SHIFT=14 +# CONFIG_DETECT_SOFTLOCKUP is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_TIMER_STATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_RT_MUTEX_TESTER is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_LIST is not set +CONFIG_FRAME_POINTER=y +# CONFIG_FORCED_INLINING is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_DEBUG_USER is not set +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL 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=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_GF128MUL is not set +CONFIG_CRYPTO_ECB=m +CONFIG_CRYPTO_CBC=m +CONFIG_CRYPTO_PCBC=m +# CONFIG_CRYPTO_LRW is not set +CONFIG_CRYPTO_DES=m +# CONFIG_CRYPTO_FCRYPT is not set +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +# CONFIG_CRYPTO_LZO is not set +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +# CONFIG_CRYPTO_CAMELLIA is not set +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_CRC_CCITT=y +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_LZO=m +CONFIG_ZLIB_INFLATE=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_PLIST=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +CONFIG_SHARPSL_RC=m diff --git a/packages/linux/linux-rp-2.6.21/defconfig-tosa b/packages/linux/linux-rp-2.6.21/defconfig-tosa new file mode 100644 index 0000000000..4360f7a179 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/defconfig-tosa @@ -0,0 +1,1612 @@ +# +# Automatically generated make config: don't edit +# Linux kernel version: 2.6.16-rc5-git5 +# Tue Mar 14 09:05:26 2006 +# +CONFIG_ARM=y +CONFIG_MMU=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_MTD_XIP=y + +# +# Code maturity level options +# +CONFIG_EXPERIMENTAL=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_LOCK_KERNEL=y +CONFIG_INIT_ENV_ARG_LIMIT=32 + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +# CONFIG_POSIX_MQUEUE is not set +CONFIG_BSD_PROCESS_ACCT=y +# CONFIG_BSD_PROCESS_ACCT_V3 is not set +CONFIG_SYSCTL=y +# CONFIG_AUDIT is not set +# CONFIG_IKCONFIG is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_UID16=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_EMBEDDED=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# 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_CC_ALIGN_FUNCTIONS=0 +CONFIG_CC_ALIGN_LABELS=0 +CONFIG_CC_ALIGN_LOOPS=0 +CONFIG_CC_ALIGN_JUMPS=0 +CONFIG_SLAB=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_OBSOLETE_MODPARM=y +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +CONFIG_KMOD=y + +# +# Block layer +# + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_DEADLINE=m +CONFIG_IOSCHED_CFQ=m +CONFIG_DEFAULT_AS=y +# CONFIG_DEFAULT_DEADLINE is not set +# CONFIG_DEFAULT_CFQ is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="anticipatory" + +# +# System Type +# +# CONFIG_ARCH_CLPS7500 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_CO285 is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IOP3XX is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_IXP2000 is not set +# CONFIG_ARCH_L7200 is not set +CONFIG_ARCH_PXA=y +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C2410 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_LH7A40X is not set +# CONFIG_ARCH_OMAP is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_IMX is not set +# CONFIG_ARCH_H720X is not set +# CONFIG_ARCH_AAEC2000 is not set +# CONFIG_ARCH_AT91RM9200 is not set + +# +# Intel PXA2xx Implementations +# +# CONFIG_ARCH_LUBBOCK is not set +# CONFIG_MACH_MAINSTONE is not set +# CONFIG_ARCH_PXA_IDP is not set +CONFIG_PXA_SHARPSL=y +# CONFIG_MACH_HX2750 is not set +CONFIG_PXA_SHARPSL_25x=y +# CONFIG_PXA_SHARPSL_27x is not set +# CONFIG_MACH_POODLE is not set +# CONFIG_MACH_CORGI is not set +# CONFIG_MACH_SHEPHERD is not set +# CONFIG_MACH_HUSKY is not set +CONFIG_MACH_TOSA=y +CONFIG_PXA25x=y +# CONFIG_PXA_KEYS is not set + +# +# Processor Type +# +CONFIG_CPU_32=y +CONFIG_CPU_XSCALE=y +CONFIG_CPU_32v5=y +CONFIG_CPU_ABRT_EV5T=y +CONFIG_CPU_CACHE_VIVT=y +CONFIG_CPU_TLB_V4WBI=y + +# +# Processor Features +# +CONFIG_ARM_THUMB=y +CONFIG_XSCALE_PMU=y +CONFIG_KEXEC=y +CONFIG_SHARP_PARAM=y +CONFIG_SHARPSL_PM=y +CONFIG_SHARP_SCOOP=y +CONFIG_TOSHIBA_TC6393XB=y + +# +# Bus support +# + +# +# PCCARD (PCMCIA/CardBus) support +# +CONFIG_PCCARD=y +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_IOCTL=y + +# +# PC-card bridges +# +CONFIG_PCMCIA_PXA2XX=y + +# +# Kernel Features +# +CONFIG_PREEMPT=y +CONFIG_NO_IDLE_HZ=y +# CONFIG_AEABI is not set +# CONFIG_ARCH_DISCONTIGMEM_ENABLE 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=4096 +CONFIG_ALIGNMENT_TRAP=y + +# +# Boot options +# +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBOOT_ROM_BSS=0x0 +# CONFIG_XIP_KERNEL is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_TABLE=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_PXA25x=y + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +# CONFIG_FPE_FASTFPE is not set + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_MISC=m +# CONFIG_ARTHUR is not set + +# +# Power management options +# +CONFIG_PM=y +# CONFIG_PM_LEGACY is not set +# CONFIG_PM_DEBUG is not set +CONFIG_APM=y + +# +# Networking +# +CONFIG_NET=y + +# +# Networking options +# +# CONFIG_NETDEBUG is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +CONFIG_UNIX=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +# CONFIG_NET_KEY 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=y +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_TUNNEL is not set +CONFIG_INET_DIAG=m +CONFIG_INET_TCP_DIAG=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y + +# +# IP: Virtual Server Configuration +# +# CONFIG_IP_VS is not set +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_IPV6_TUNNEL=m +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set + +# +# Core Netfilter Configuration +# +# CONFIG_NETFILTER_NETLINK is not set +# CONFIG_NETFILTER_XTABLES is not set + +# +# IP: Netfilter Configuration +# +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CT_ACCT is not set +# CONFIG_IP_NF_CONNTRACK_MARK is not set +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_IRC=m +# CONFIG_IP_NF_NETBIOS_NS is not set +CONFIG_IP_NF_TFTP=m +CONFIG_IP_NF_AMANDA=m +# CONFIG_IP_NF_PPTP is not set +CONFIG_IP_NF_QUEUE=m + +# +# IPv6: Netfilter Configuration (EXPERIMENTAL) +# +# CONFIG_IP6_NF_QUEUE 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_NET_DIVERT 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=m + +# +# IrDA protocols +# +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRCOMM=m +# CONFIG_IRDA_ULTRA is not set + +# +# IrDA options +# +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set + +# +# Infrared-port device drivers +# + +# +# SIR device drivers +# +# CONFIG_IRTTY_SIR is not set + +# +# Dongle support +# + +# +# Old SIR device drivers +# +# CONFIG_IRPORT_SIR is not set + +# +# Old Serial dongle support +# + +# +# FIR device drivers +# +# CONFIG_USB_IRDA is not set +# CONFIG_SIGMATEL_FIR is not set +CONFIG_PXA_FICP=m +CONFIG_BT=m +CONFIG_BT_L2CAP=m +CONFIG_BT_SCO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m + +# +# Bluetooth device drivers +# +CONFIG_BT_HCIUSB=m +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIVHCI=m +CONFIG_IEEE80211=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_CRYPT_WEP=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +# CONFIG_DEBUG_DRIVER is not set + +# +# Connector - unified userspace <-> kernelspace linker +# +# CONFIG_CONNECTOR is not set + +# +# Memory Technology Devices (MTD) +# +CONFIG_MTD=y +# CONFIG_MTD_DEBUG is not set +# CONFIG_MTD_CONCAT is not set +CONFIG_MTD_PARTITIONS=y +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_CHAR=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +# CONFIG_MTD_ABSENT is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +CONFIG_MTD_SHARP_SL=y +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLKMTD is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOC2000 is not set +# CONFIG_MTD_DOC2001 is not set +# CONFIG_MTD_DOC2001PLUS is not set + +# +# NAND Flash Device Drivers +# +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_VERIFY_WRITE=y +# CONFIG_MTD_NAND_H1900 is not set +CONFIG_MTD_NAND_TMIO=y +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_SHARPSL is not set +# CONFIG_MTD_NAND_NANDSIM is not set + +# +# OneNAND Flash Device Drivers +# +# CONFIG_MTD_ONENAND is not set + +# +# Parallel port support +# +# CONFIG_PARPORT is not set + +# +# Plug and Play support +# + +# +# Block devices +# +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=m +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_RAM is not set +CONFIG_BLK_DEV_RAM_COUNT=16 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set + +# +# ATA/ATAPI/MFM/RLL support +# +CONFIG_IDE=y +CONFIG_BLK_DEV_IDE=y + +# +# Please see Documentation/ide.txt for help/info on IDE drives +# +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_IDEDISK=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_BLK_DEV_IDECS=y +# CONFIG_BLK_DEV_IDECD is not set +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDEFLOPPY is not set +# CONFIG_BLK_DEV_IDESCSI is not set +# CONFIG_IDE_TASK_IOCTL is not set + +# +# IDE chipset support/bugfixes +# +# CONFIG_IDE_GENERIC is not set +# CONFIG_IDE_ARM is not set +# CONFIG_BLK_DEV_IDEDMA is not set +# CONFIG_IDEDMA_AUTO is not set +# CONFIG_BLK_DEV_HD is not set + +# +# SCSI device support +# +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=m +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=m +CONFIG_CHR_DEV_ST=m +CONFIG_CHR_DEV_OSST=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=m +# CONFIG_CHR_DEV_SCH is not set + +# +# Some SCSI devices (e.g. CD jukebox) support multiple LUNs +# +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set + +# +# SCSI Transport Attributes +# +# 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 + +# +# SCSI low-level drivers +# +# CONFIG_ISCSI_TCP is not set +# CONFIG_SCSI_SATA 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 + +# +# Multi-device support (RAID and LVM) +# +CONFIG_MD=y +CONFIG_BLK_DEV_DM=m +CONFIG_DM_CRYPT=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_ZERO=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m + +# +# Fusion MPT device support +# +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# + +# +# I2O device support +# + +# +# Network device support +# +CONFIG_NETDEVICES=y +# CONFIG_DUMMY is not set +# CONFIG_BONDING is not set +# CONFIG_EQUALIZER is not set +CONFIG_TUN=m + +# +# PHY device support +# +# CONFIG_PHYLIB is not set + +# +# Ethernet (10 or 100Mbit) +# +CONFIG_NET_ETHERNET=y +CONFIG_MII=m +# CONFIG_SMC91X is not set +# CONFIG_DM9000 is not set + +# +# Ethernet (1000 Mbit) +# + +# +# Ethernet (10000 Mbit) +# + +# +# Token Ring devices +# + +# +# Wireless LAN (non-hamradio) +# +CONFIG_NET_RADIO=y + +# +# Obsolete Wireless cards support (pre-802.11) +# +# CONFIG_STRIP 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=m +# CONFIG_ATMEL is not set + +# +# Wireless 802.11b Pcmcia/Cardbus cards support +# +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_SPECTRUM=m +# CONFIG_AIRO_CS is not set +# CONFIG_PCMCIA_WL3501 is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +CONFIG_HOSTAP_CS=m +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=m +# 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_PPP=m +# CONFIG_PPP_MULTILINK is not set +# CONFIG_PPP_FILTER is not set +CONFIG_PPP_ASYNC=m +# CONFIG_PPP_SYNC_TTY is not set +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_BSDCOMP=m +# CONFIG_PPP_MPPE is not set +# CONFIG_PPPOE 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 + +# +# Input device support +# +CONFIG_INPUT=y + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=m +# CONFIG_INPUT_MOUSEDEV_PSAUX is not set +CONFIG_INPUT_MOUSEDEV_SCREEN_X=480 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=640 +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_TSDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_POWER=y + +# +# 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_CORGI is not set +# CONFIG_KEYBOARD_SPITZ is not set +CONFIG_KEYBOARD_TOSA=y +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_TOUCHSCREEN=y +# CONFIG_TOUCHSCREEN_CORGI is not set +# 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_WM97XX=y +# CONFIG_TOUCHSCREEN_WM9705 is not set +CONFIG_TOUCHSCREEN_WM9712=y +# CONFIG_TOUCHSCREEN_WM9713 is not set +# CONFIG_TOUCHSCREEN_WM97XX_PXA 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_SERIAL_NONSTANDARD is not set + +# +# Serial drivers +# +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set + +# +# Non-8250 serial port support +# +CONFIG_SERIAL_PXA=y +CONFIG_SERIAL_PXA_CONSOLE=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_UNIX98_PTYS=y +# CONFIG_LEGACY_PTYS is not set + +# +# IPMI +# +# CONFIG_IPMI_HANDLER is not set + +# +# Watchdog Cards +# +# CONFIG_WATCHDOG is not set +# CONFIG_NVRAM is not set +# CONFIG_DTLK is not set +# CONFIG_R3964 is not set + +# +# Ftape, the floppy tape device driver +# + +# +# 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 +# CONFIG_TELCLOCK is not set + +# +# I2C support +# +CONFIG_I2C=y +# CONFIG_I2C_CHARDEV is not set + +# +# I2C Algorithms +# +# CONFIG_I2C_ALGOBIT is not set +# CONFIG_I2C_ALGOPCF is not set +# CONFIG_I2C_ALGOPCA is not set + +# +# I2C Hardware Bus support +# +CONFIG_I2C_PXA=y +# CONFIG_I2C_PXA_SLAVE is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_PCA_ISA is not set + +# +# Miscellaneous I2C Chip support +# +# CONFIG_SENSORS_DS1337 is not set +# CONFIG_SENSORS_DS1374 is not set +# CONFIG_SENSORS_EEPROM is not set +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCA9539 is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_SENSORS_MAX6875 is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set + +# +# SPI support +# +# CONFIG_SPI is not set +# CONFIG_SPI_MASTER is not set + +# +# Hardware Monitoring support +# +# CONFIG_HWMON is not set +# CONFIG_HWMON_VID is not set + +# +# Misc devices +# + +# +# Multimedia Capabilities Port drivers +# + +# +# Multi-Function Devices +# + +# +# LED devices +# +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TOSA=y +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_IDE_DISK=y + +# +# Multimedia devices +# +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=y + +# +# Video For Linux +# + +# +# Video Adapters +# +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_CPIA is not set +# CONFIG_VIDEO_SAA5246A is not set +# CONFIG_VIDEO_SAA5249 is not set +# CONFIG_TUNER_3036 is not set +# CONFIG_VIDEO_EM28XX is not set +# CONFIG_VIDEO_OVCAMCHIP is not set +# CONFIG_VIDEO_AUDIO_DECODER is not set +# CONFIG_VIDEO_DECODER is not set + +# +# Radio Adapters +# +# CONFIG_RADIO_MAESTRO is not set + +# +# Digital Video Broadcasting Devices +# +# CONFIG_DVB is not set + +# +# Graphics support +# +CONFIG_FB=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_PXA is not set +# CONFIG_FB_W100 is not set +CONFIG_FB_TMIO=y +# CONFIG_FB_VIRTUAL is not set + +# +# Console display driver support +# +# CONFIG_VGA_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=y +# CONFIG_FONT_8x16 is not set +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_7x14 is not set +# CONFIG_FONT_PEARL_8x8 is not set +# 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=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DEVICE=y +# CONFIG_LCD_CLASS_DEVICE is not set +CONFIG_BACKLIGHT_CORGI=y +# CONFIG_BACKLIGHT_HP680 is not set + +# +# Sound +# +CONFIG_SOUND=y + +# +# Advanced Linux Sound Architecture +# +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=m +CONFIG_SND_RAWMIDI=m +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_PCM_OSS=m +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set + +# +# Generic devices +# +CONFIG_SND_AC97_BUS=y +CONFIG_SND_DUMMY=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# ALSA ARM devices +# +# CONFIG_SND_PXA2XX_AC97 is not set + +# +# USB devices +# +CONFIG_SND_USB_AUDIO=m + +# +# PCMCIA devices +# + +# +# SoC audio support +# +CONFIG_SND_SOC=y + +# +# Soc Platforms +# + +# +# SoC Audio for the Intel PXA2xx +# +CONFIG_SND_PXA2xx_SOC=y +CONFIG_SND_PXA2xx_SOC_AC97=y +# CONFIG_SND_PXA2xx_SOC_MAINSTONE is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM8753 is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9713 is not set +# CONFIG_SND_PXA2xx_SOC_MAINSTONE_WM9712 is not set +# CONFIG_SND_PXA2xx_SOC_CORGI is not set +# CONFIG_SND_PXA2xx_SOC_SPITZ is not set +CONFIG_SND_PXA2xx_SOC_TOSA=y + +# +# Soc Codecs +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8772 is not set +# CONFIG_SND_SOC_WM8971 is not set +# CONFIG_SND_SOC_WM9713 is not set +CONFIG_SND_SOC_WM9712=y +# CONFIG_SND_SOC_UDA1380 is not set +# CONFIG_SND_SOC_AK4535 is not set + +# +# Open Sound System +# +# CONFIG_SOUND_PRIME is not set + +# +# USB support +# +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB=m +# CONFIG_USB_DEBUG is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEVICEFS=y +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_SUSPEND is not set +# CONFIG_USB_OTG is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_OHCI_HCD=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_CS=m + +# +# USB Device Class drivers +# +# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set +CONFIG_USB_ACM=m +CONFIG_USB_PRINTER=m + +# +# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' +# + +# +# may also be needed; see USB_STORAGE Help for more information +# +CONFIG_USB_STORAGE=m +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_LIBUSUAL is not set + +# +# USB Input Devices +# +CONFIG_USB_HID=m +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_HID_FF is not set +# CONFIG_USB_HIDDEV is not set + +# +# USB HID Boot Protocol drivers +# +CONFIG_USB_KBD=m +CONFIG_USB_MOUSE=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_WACOM=m +# CONFIG_USB_ACECAD is not set +CONFIG_USB_KBTAB=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_MTOUCH=m +# CONFIG_USB_ITMTOUCH is not set +CONFIG_USB_EGALAX=m +# CONFIG_USB_YEALINK is not set +CONFIG_USB_XPAD=m +CONFIG_USB_ATI_REMOTE=m +# CONFIG_USB_ATI_REMOTE2 is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_APPLETOUCH is not set + +# +# USB Imaging devices +# +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m + +# +# USB Multimedia devices +# +CONFIG_USB_DABUSB=m +CONFIG_USB_VICAM=m +CONFIG_USB_DSBR=m +# CONFIG_USB_ET61X251 is not set +CONFIG_USB_IBMCAM=m +CONFIG_USB_KONICAWC=m +CONFIG_USB_OV511=m +CONFIG_USB_SE401=m +CONFIG_USB_SN9C102=m +CONFIG_USB_STV680=m +# CONFIG_USB_PWC is not set + +# +# USB Network Adapters +# +CONFIG_USB_CATC=m +CONFIG_USB_KAWETH=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_RTL8150=m +CONFIG_USB_USBNET=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_ZD1201 is not set +CONFIG_USB_MON=y + +# +# USB port drivers +# + +# +# USB Serial Converter support +# +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_AIRPRIME is not set +# CONFIG_USB_SERIAL_ANYDATA is not set +CONFIG_USB_SERIAL_BELKIN=m +# CONFIG_USB_SERIAL_WHITEHEAT is not set +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +# CONFIG_USB_SERIAL_CP2101 is not set +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_HP4X is not set +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_XIRCOM=m +# CONFIG_USB_SERIAL_OPTION is not set +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_EZUSB=y + +# +# USB Miscellaneous drivers +# +CONFIG_USB_EMI62=m +CONFIG_USB_EMI26=m +CONFIG_USB_AUERSWALD=m +CONFIG_USB_RIO500=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LCD=m +CONFIG_USB_LED=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_IDMOUSE=m +# CONFIG_USB_LD is not set +# CONFIG_USB_TEST is not set + +# +# USB DSL modem support +# + +# +# USB Gadget Support +# +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_SELECTED=y +# CONFIG_USB_GADGET_NET2280 is not set +CONFIG_USB_GADGET_PXA2XX=y +CONFIG_USB_PXA2XX=y +# CONFIG_USB_PXA2XX_SMALL is not set +# CONFIG_USB_GADGET_PXA27X is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_DUALSPEED is not set +CONFIG_USB_ZERO=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_GADGETFS=m +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_G_SERIAL=m + +# +# MMC/SD Card support +# +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_BLOCK=y +CONFIG_MMC_PXA=y + +# +# Real Time Clock +# +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y + +# +# RTC drivers +# +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +CONFIG_RTC_DRV_SA1100=y +# CONFIG_RTC_DRV_TEST is not set + +# +# File systems +# +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +# CONFIG_EXT3_FS is not set +# 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_OCFS2_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_ROMFS_FS is not set +CONFIG_INOTIFY=y +# CONFIG_QUOTA is not set +CONFIG_DNOTIFY=y +# CONFIG_AUTOFS_FS is not set +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=m + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=m +CONFIG_MSDOS_FS=m +CONFIG_VFAT_FS=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_RAMFS=y +# CONFIG_RELAYFS_FS is not set +# 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_JFFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_SUMMARY=y +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +CONFIG_JFFS2_CMODE_PRIORITY=y +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_CRAMFS=m +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC 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=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_DIRECTIO is not set +# CONFIG_NFSD is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_RPCSEC_GSS_SPKM3 is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_CIFS=m +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_EXPERIMENTAL 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="cp437" +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=y +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=y + +# +# Profiling support +# +# CONFIG_PROFILING is not set + +# +# Kernel hacking +# +# CONFIG_PRINTK_TIME is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_DEBUG_KERNEL=y +CONFIG_LOG_BUF_SHIFT=14 +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_PREEMPT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_INFO is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_VM is not set +CONFIG_FRAME_POINTER=y +# CONFIG_FORCED_INLINING is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_WAITQ is not set +CONFIG_DEBUG_ERRORS=y +# CONFIG_DEBUG_LL is not set + +# +# Security options +# +# CONFIG_KEYS is not set +# CONFIG_SECURITY is not set + +# +# Cryptographic options +# +CONFIG_CRYPTO=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_WP512=m +# CONFIG_CRYPTO_TGR192 is not set +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_TEST=m + +# +# Hardware crypto devices +# + +# +# Library routines +# +CONFIG_CRC_CCITT=m +# CONFIG_CRC16 is not set +CONFIG_CRC32=y +CONFIG_LIBCRC32C=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_GENERIC_ALLOCATOR=y +# CONFIG_SHARPSL_RC is not set diff --git a/packages/linux/linux-rp-2.6.21/hostap-monitor-mode.patch b/packages/linux/linux-rp-2.6.21/hostap-monitor-mode.patch new file mode 100644 index 0000000000..641fd19e50 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/hostap-monitor-mode.patch @@ -0,0 +1,209 @@ +This is a patch that I've been maintaining for a few years, and I'd +really like to see it added to the mainstream zaurus kernel so I can +finally stop distributing my own. + +This patch only effects the card while in monitor mode, and does not +cause any known stability issues. + +http://patches.aircrack-ng.org/hostap-kernel-2.6.18.patch + +Rick Farina (Zero_Chaos) + +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_80211_tx.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_80211_tx.c 2006-09-21 01:30:18.000000000 -0400 +@@ -69,6 +69,9 @@ + iface = netdev_priv(dev); + local = iface->local; + ++ if (local->iw_mode == IW_MODE_MONITOR) ++ goto xmit; ++ + if (skb->len < ETH_HLEN) { + printk(KERN_DEBUG "%s: hostap_data_start_xmit: short skb " + "(len=%d)\n", dev->name, skb->len); +@@ -234,6 +237,7 @@ + memcpy(skb_put(skb, ETH_ALEN), &hdr.addr4, ETH_ALEN); + } + ++xmit: + iface->stats.tx_packets++; + iface->stats.tx_bytes += skb->len; + +@@ -404,8 +408,6 @@ + } + + if (skb->len < 24) { +- printk(KERN_DEBUG "%s: hostap_master_start_xmit: short skb " +- "(len=%d)\n", dev->name, skb->len); + ret = 0; + iface->stats.tx_dropped++; + goto fail; +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_cs.c.orig +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_cs.c.rej +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_hw.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_hw.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_hw.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_hw.c 2006-09-21 01:30:18.000000000 -0400 +@@ -1005,6 +1005,35 @@ + return fid; + } + ++static int prism2_monitor_enable(struct net_device *dev) ++{ ++ if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE, 5)) { ++ printk(KERN_DEBUG "Port type setting for monitor mode " ++ "failed\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ if (hfa384x_cmd(dev, HFA384X_CMDCODE_TEST | (0x0a << 8), ++ 0, NULL, NULL)) { ++ printk(KERN_DEBUG "Could not enter testmode 0x0a\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS, ++ HFA384X_WEPFLAGS_PRIVACYINVOKED | ++ HFA384X_WEPFLAGS_HOSTENCRYPT | ++ HFA384X_WEPFLAGS_HOSTDECRYPT)) { ++ printk(KERN_DEBUG "WEP flags setting failed\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ if (hostap_set_word(dev, HFA384X_RID_PROMISCUOUSMODE, 1)) { ++ printk(KERN_DEBUG "Could not set promiscuous mode\n"); ++ return -EOPNOTSUPP; ++ } ++ ++ return 0; ++} + + static int prism2_reset_port(struct net_device *dev) + { +@@ -1031,6 +1060,10 @@ + "port\n", dev->name); + } + ++ if (local->iw_mode == IW_MODE_MONITOR) ++ /* force mode 0x0a after port 0 reset */ ++ return prism2_monitor_enable(dev); ++ + /* It looks like at least some STA firmware versions reset + * fragmentation threshold back to 2346 after enable command. Restore + * the configured value, if it differs from this default. */ +@@ -1466,6 +1499,10 @@ + return 1; + } + ++ if (local->iw_mode == IW_MODE_MONITOR) ++ /* force mode 0x0a after port 0 reset */ ++ prism2_monitor_enable(dev); ++ + local->hw_ready = 1; + local->hw_reset_tries = 0; + local->hw_resetting = 0; +@@ -3156,6 +3193,7 @@ + local->func->hw_config = prism2_hw_config; + local->func->hw_reset = prism2_hw_reset; + local->func->hw_shutdown = prism2_hw_shutdown; ++ local->func->monitor_enable = prism2_monitor_enable; + local->func->reset_port = prism2_reset_port; + local->func->schedule_reset = prism2_schedule_reset; + #ifdef PRISM2_DOWNLOAD_SUPPORT +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_hw.c.orig +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_ioctl.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_ioctl.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_ioctl.c 2006-09-21 01:30:18.000000000 -0400 +@@ -1104,33 +1104,7 @@ + + printk(KERN_DEBUG "Enabling monitor mode\n"); + hostap_monitor_set_type(local); +- +- if (hostap_set_word(dev, HFA384X_RID_CNFPORTTYPE, +- HFA384X_PORTTYPE_PSEUDO_IBSS)) { +- printk(KERN_DEBUG "Port type setting for monitor mode " +- "failed\n"); +- return -EOPNOTSUPP; +- } +- +- /* Host decrypt is needed to get the IV and ICV fields; +- * however, monitor mode seems to remove WEP flag from frame +- * control field */ +- if (hostap_set_word(dev, HFA384X_RID_CNFWEPFLAGS, +- HFA384X_WEPFLAGS_HOSTENCRYPT | +- HFA384X_WEPFLAGS_HOSTDECRYPT)) { +- printk(KERN_DEBUG "WEP flags setting failed\n"); +- return -EOPNOTSUPP; +- } +- +- if (local->func->reset_port(dev) || +- local->func->cmd(dev, HFA384X_CMDCODE_TEST | +- (HFA384X_TEST_MONITOR << 8), +- 0, NULL, NULL)) { +- printk(KERN_DEBUG "Setting monitor mode failed\n"); +- return -EOPNOTSUPP; +- } +- +- return 0; ++ return local->func->reset_port(dev); + } + + +@@ -1199,7 +1173,7 @@ + local->iw_mode = *mode; + + if (local->iw_mode == IW_MODE_MONITOR) +- hostap_monitor_mode_enable(local); ++ return hostap_monitor_mode_enable(local); + else if (local->iw_mode == IW_MODE_MASTER && !local->host_encrypt && + !local->fw_encrypt_ok) { + printk(KERN_DEBUG "%s: defaulting to host-based encryption as " +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_main.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_main.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_main.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_main.c 2006-09-21 01:30:18.000000000 -0400 +@@ -331,7 +331,7 @@ + if (local->iw_mode == IW_MODE_REPEAT) + return HFA384X_PORTTYPE_WDS; + if (local->iw_mode == IW_MODE_MONITOR) +- return HFA384X_PORTTYPE_PSEUDO_IBSS; ++ return 5; /*HFA384X_PORTTYPE_PSEUDO_IBSS;*/ + return HFA384X_PORTTYPE_HOSTAP; + } + +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_main.c.orig +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_pci.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_pci.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_pci.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_pci.c 2006-09-21 01:30:18.000000000 -0400 +@@ -48,6 +48,8 @@ + { 0x1260, 0x3873, PCI_ANY_ID, PCI_ANY_ID }, + /* Samsung MagicLAN SWL-2210P */ + { 0x167d, 0xa000, PCI_ANY_ID, PCI_ANY_ID }, ++ /* NETGEAR MA311 */ ++ { 0x1385, 0x3872, PCI_ANY_ID, PCI_ANY_ID }, + { 0 } + }; + +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_pci.c.orig +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_plx.c linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_plx.c +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_plx.c 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_plx.c 2006-09-21 01:30:18.000000000 -0400 +@@ -101,6 +101,7 @@ + { 0xc250, 0x0002 } /* EMTAC A2424i */, + { 0xd601, 0x0002 } /* Z-Com XI300 */, + { 0xd601, 0x0005 } /* Zcomax XI-325H 200mW */, ++ { 0xd601, 0x0010 } /* Zcomax XI-325H 100mW */, + { 0, 0} + }; + +Only in linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap: hostap_plx.c.orig +diff -ur linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_wlan.h linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_wlan.h +--- linux-2.6.18-gentoo/drivers/net/wireless/hostap/hostap_wlan.h 2006-09-21 01:26:27.000000000 -0400 ++++ linux-2.6.18-gentoo-rawtx/drivers/net/wireless/hostap/hostap_wlan.h 2006-09-21 01:30:18.000000000 -0400 +@@ -575,6 +575,7 @@ + int (*hw_config)(struct net_device *dev, int initial); + void (*hw_reset)(struct net_device *dev); + void (*hw_shutdown)(struct net_device *dev, int no_disable); ++ int (*monitor_enable)(struct net_device *dev); + int (*reset_port)(struct net_device *dev); + void (*schedule_reset)(local_info_t *local); + int (*download)(local_info_t *local, diff --git a/packages/linux/linux-rp-2.6.21/orinoco-remove-all-which-are-in-hostap-HACK.patch b/packages/linux/linux-rp-2.6.21/orinoco-remove-all-which-are-in-hostap-HACK.patch new file mode 100644 index 0000000000..380349f809 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/orinoco-remove-all-which-are-in-hostap-HACK.patch @@ -0,0 +1,88 @@ +This patch should resolve problem when people get eth0 (orinoco_cs) instead of wlan0 (hostap_cs) +with their WiFi cards. + +Patch will NEVER been accepted upstream. + +Signed-off-by: Marcin Juszkiewicz <openembedded@hrw.one.pl> + +Index: linux/drivers/net/wireless/orinoco_cs.c +=================================================================== +--- linux.orig/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:04:10.000000000 +0200 ++++ linux/drivers/net/wireless/orinoco_cs.c 2006-08-23 16:17:43.000000000 +0200 +@@ -453,33 +453,21 @@ + "Pavel Roskin <proski@gnu.org>, et al)"; + + static struct pcmcia_device_id orinoco_cs_ids[] = { +- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7100), /* SonicWALL Long Range Wireless Card */ +- PCMCIA_DEVICE_MANF_CARD(0x000b, 0x7300), /* Sohoware NCP110, Philips 802.11b */ + PCMCIA_DEVICE_MANF_CARD(0x0089, 0x0002), /* AnyPoint(TM) Wireless II PC Card */ +- PCMCIA_DEVICE_MANF_CARD(0x0101, 0x0777), /* 3Com AirConnect PCI 777A */ +- PCMCIA_DEVICE_MANF_CARD(0x0126, 0x8000), /* PROXIM RangeLAN-DS/LAN PC CARD */ + PCMCIA_DEVICE_MANF_CARD(0x0138, 0x0002), /* Compaq WL100 11 Mbps Wireless Adapter */ + PCMCIA_DEVICE_MANF_CARD(0x0156, 0x0002), /* Lucent Orinoco and old Intersil */ + PCMCIA_DEVICE_MANF_CARD(0x016b, 0x0001), /* Ericsson WLAN Card C11 */ + PCMCIA_DEVICE_MANF_CARD(0x01eb, 0x080a), /* Nortel Networks eMobility 802.11 Wireless Adapter */ + PCMCIA_DEVICE_MANF_CARD(0x01ff, 0x0008), /* Intermec MobileLAN 11Mbps 802.11b WLAN Card */ +- PCMCIA_DEVICE_MANF_CARD(0x0250, 0x0002), /* Samsung SWL2000-N 11Mb/s WLAN Card */ + PCMCIA_DEVICE_MANF_CARD(0x0261, 0x0002), /* AirWay 802.11 Adapter (PCMCIA) */ + PCMCIA_DEVICE_MANF_CARD(0x0268, 0x0001), /* ARtem Onair */ + PCMCIA_DEVICE_MANF_CARD(0x026f, 0x0305), /* Buffalo WLI-PCM-S11 */ +- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1612), /* Linksys WPC11 Version 2.5 */ +- PCMCIA_DEVICE_MANF_CARD(0x0274, 0x1613), /* Linksys WPC11 Version 3 */ +- PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0002), /* Compaq HNW-100 11 Mbps Wireless Adapter */ + PCMCIA_DEVICE_MANF_CARD(0x028a, 0x0673), /* Linksys WCF12 Wireless CompactFlash Card */ +- PCMCIA_DEVICE_MANF_CARD(0x02aa, 0x0002), /* ASUS SpaceLink WL-100 */ + PCMCIA_DEVICE_MANF_CARD(0x02ac, 0x0002), /* SpeedStream SS1021 Wireless Adapter */ + PCMCIA_DEVICE_MANF_CARD(0x14ea, 0xb001), /* PLANEX RoadLannerWave GW-NS11H */ +- PCMCIA_DEVICE_MANF_CARD(0x50c2, 0x7300), /* Airvast WN-100 */ + PCMCIA_DEVICE_MANF_CARD(0x9005, 0x0021), /* Adaptec Ultra Wireless ANW-8030 */ + PCMCIA_DEVICE_MANF_CARD(0xc001, 0x0008), /* CONTEC FLEXSCAN/FX-DDS110-PCC */ + PCMCIA_DEVICE_MANF_CARD(0xc250, 0x0002), /* Conceptronic CON11Cpro, EMTAC A2424i */ +- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0002), /* Safeway 802.11b, ZCOMAX AirRunner/XI-300 */ +- PCMCIA_DEVICE_MANF_CARD(0xd601, 0x0005), /* D-Link DCF660, Sandisk Connect SDWCFB-000 */ + PCMCIA_DEVICE_PROD_ID12(" ", "IEEE 802.11 Wireless LAN/PC Card", 0x3b6e20c8, 0xefccafe9), + PCMCIA_DEVICE_PROD_ID12("3Com", "3CRWE737A AirConnect Wireless LAN PC Card", 0x41240e5b, 0x56010af3), + PCMCIA_DEVICE_PROD_ID12("ACTIONTEC", "PRISM Wireless LAN PC Card", 0x393089da, 0xa71e69d5), +@@ -487,31 +475,25 @@ + PCMCIA_DEVICE_PROD_ID123("AIRVAST", "IEEE 802.11b Wireless PCMCIA Card", "HFA3863", 0xea569531, 0x4bcb9645, 0x355cb092), + PCMCIA_DEVICE_PROD_ID12("Allied Telesyn", "AT-WCL452 Wireless PCMCIA Radio", 0x5cd01705, 0x4271660f), + PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11b_PC_CARD_25", 0x78fc06ee, 0xdb9aa842), +- PCMCIA_DEVICE_PROD_ID12("ASUS", "802_11B_CF_CARD_25", 0x78fc06ee, 0x45a50c1e), + PCMCIA_DEVICE_PROD_ID12("Avaya Communication", "Avaya Wireless PC Card", 0xd8a43b78, 0x0d341169), + PCMCIA_DEVICE_PROD_ID12("BENQ", "AWL100 PCMCIA ADAPTER", 0x35dadc74, 0x01f7fedb), + PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-PCM-L11G", 0x2decece3, 0xf57ca4b3), +- PCMCIA_DEVICE_PROD_ID12("BUFFALO", "WLI-CF-S11G", 0x2decece3, 0x82067c18), + PCMCIA_DEVICE_PROD_ID12("Cabletron", "RoamAbout 802.11 DS", 0x32d445f5, 0xedeffd90), +- PCMCIA_DEVICE_PROD_ID12("Compaq", "WL200_11Mbps_Wireless_PCI_Card", 0x54f7c49c, 0x15a75e5b), + PCMCIA_DEVICE_PROD_ID123("corega", "WL PCCL-11", "ISL37300P", 0x0a21501a, 0x59868926, 0xc9049a39), + PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCC-11", 0x5261440f, 0xa6405584), + PCMCIA_DEVICE_PROD_ID12("corega K.K.", "Wireless LAN PCCA-11", 0x5261440f, 0xdf6115f9), + PCMCIA_DEVICE_PROD_ID12("corega_K.K.", "Wireless_LAN_PCCB-11", 0x29e33311, 0xee7a27ae), + PCMCIA_DEVICE_PROD_ID12("D", "Link DRC-650 11Mbps WLAN Card", 0x71b18589, 0xf144e3ac), +- PCMCIA_DEVICE_PROD_ID12("D", "Link DWL-650 11Mbps WLAN Card", 0x71b18589, 0xb6f1b0ab), + PCMCIA_DEVICE_PROD_ID12("D-Link Corporation", "D-Link DWL-650H 11Mbps WLAN Adapter", 0xef544d24, 0xcd8ea916), + PCMCIA_DEVICE_PROD_ID12("Digital Data Communications", "WPC-0100", 0xfdd73470, 0xe0b6f146), + PCMCIA_DEVICE_PROD_ID12("ELSA", "AirLancer MC-11", 0x4507a33a, 0xef54f0e3), + PCMCIA_DEVICE_PROD_ID12("HyperLink", "Wireless PC Card 11Mbps", 0x56cc3f1a, 0x0bcf220c), + PCMCIA_DEVICE_PROD_ID123("Instant Wireless ", " Network PC CARD", "Version 01.02", 0x11d901af, 0x6e9bd926, 0x4b74baa0), + PCMCIA_DEVICE_PROD_ID12("Intel", "PRO/Wireless 2011 LAN PC Card", 0x816cc815, 0x07f58077), +- PCMCIA_DEVICE_PROD_ID12("INTERSIL", "HFA384x/IEEE", 0x74c5e40d, 0xdb472a18), + PCMCIA_DEVICE_PROD_ID12("INTERSIL", "I-GATE 11M PC Card / PC Card plus", 0x74c5e40d, 0x8304ff77), + PCMCIA_DEVICE_PROD_ID12("Intersil", "PRISM 2_5 PCMCIA ADAPTER", 0x4b801a17, 0x6345a0bf), + PCMCIA_DEVICE_PROD_ID123("Intersil", "PRISM Freedom PCMCIA Adapter", "ISL37100P", 0x4b801a17, 0xf222ec2d, 0x630d52b2), + PCMCIA_DEVICE_PROD_ID12("LeArtery", "SYNCBYAIR 11Mbps Wireless LAN PC Card", 0x7e3b326a, 0x49893e92), +- PCMCIA_DEVICE_PROD_ID12("Linksys", "Wireless CompactFlash Card", 0x0733cc81, 0x0c52f395), + PCMCIA_DEVICE_PROD_ID12("Lucent Technologies", "WaveLAN/IEEE", 0x23eb9949, 0xc562e72a), + PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11", 0x481e0094, 0x7360e410), + PCMCIA_DEVICE_PROD_ID12("MELCO", "WLI-PCM-L11G", 0x481e0094, 0xf57ca4b3), +@@ -529,10 +511,8 @@ + PCMCIA_DEVICE_PROD_ID12("PROXIM", "LAN PCI CARD HARMONY 80211B", 0xc6536a5e, 0x9f494e26), + PCMCIA_DEVICE_PROD_ID12("SAMSUNG", "11Mbps WLAN Card", 0x43d74cb4, 0x579bd91b), + PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2532W-B EliteConnect Wireless Adapter", 0xc4f8b18b, 0x196bd757), +- PCMCIA_DEVICE_PROD_ID12("SMC", "SMC2632W", 0xc4f8b18b, 0x474a1f2a), + PCMCIA_DEVICE_PROD_ID12("Symbol Technologies", "LA4111 Spectrum24 Wireless LAN PC Card", 0x3f02b4d6, 0x3663cb0e), + PCMCIA_DEVICE_PROD_ID123("The Linksys Group, Inc.", "Instant Wireless Network PC Card", "ISL37300P", 0xa5f472c2, 0x590eb502, 0xc9049a39), +- PCMCIA_DEVICE_PROD_ID12("ZoomAir 11Mbps High", "Rate wireless Networking", 0x273fe3db, 0x32a1eaee), + PCMCIA_DEVICE_NULL, + }; + MODULE_DEVICE_TABLE(pcmcia, orinoco_cs_ids); diff --git a/packages/linux/linux-rp-2.6.21/pxa-serial-hack.patch b/packages/linux/linux-rp-2.6.21/pxa-serial-hack.patch new file mode 100644 index 0000000000..bf20f46a05 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/pxa-serial-hack.patch @@ -0,0 +1,90 @@ +--- + drivers/serial/8250.c | 5 +++++ + drivers/serial/serial_core.c | 1 + + drivers/serial/serial_cs.c | 12 +++++++++--- + include/linux/serial_core.h | 1 + + 4 files changed, 16 insertions(+), 3 deletions(-) + +Index: linux-2.6.20/drivers/serial/8250.c +=================================================================== +--- linux-2.6.20.orig/drivers/serial/8250.c 2007-04-27 13:37:26.000000000 +0100 ++++ linux-2.6.20/drivers/serial/8250.c 2007-04-27 13:38:16.000000000 +0100 +@@ -2429,7 +2429,12 @@ + .driver_name = "serial", + .dev_name = "ttyS", + .major = TTY_MAJOR, ++#ifdef CONFIG_SERIAL_PXA ++ .minor = 64 + 4, ++ .name_base = 4, ++#else + .minor = 64, ++#endif + .nr = UART_NR, + .cons = SERIAL8250_CONSOLE, + }; +Index: linux-2.6.20/drivers/serial/serial_core.c +=================================================================== +--- linux-2.6.20.orig/drivers/serial/serial_core.c 2007-02-04 18:44:54.000000000 +0000 ++++ linux-2.6.20/drivers/serial/serial_core.c 2007-04-27 13:39:39.000000000 +0100 +@@ -2068,7 +2068,8 @@ + printk(KERN_INFO "%s%s%s%d at %s (irq = %d) is a %s\n", + port->dev ? port->dev->bus_id : "", + port->dev ? ": " : "", +- drv->dev_name, port->line, address, port->irq, uart_type(port)); ++ drv->dev_name, port->line + drv->name_base, address, port->irq, ++ uart_type(port)); + } + + static void +@@ -2183,6 +2184,7 @@ + normal->owner = drv->owner; + normal->driver_name = drv->driver_name; + normal->name = drv->dev_name; ++ normal->name_base = drv->name_base; + normal->major = drv->major; + normal->minor_start = drv->minor; + normal->type = TTY_DRIVER_TYPE_SERIAL; +Index: linux-2.6.20/include/linux/serial_core.h +=================================================================== +--- linux-2.6.20.orig/include/linux/serial_core.h 2007-02-04 18:44:54.000000000 +0000 ++++ linux-2.6.20/include/linux/serial_core.h 2007-04-27 13:37:27.000000000 +0100 +@@ -341,6 +341,7 @@ + struct module *owner; + const char *driver_name; + const char *dev_name; ++ int name_base; + int major; + int minor; + int nr; +Index: linux-2.6.20/drivers/serial/serial_cs.c +=================================================================== +--- linux-2.6.20.orig/drivers/serial/serial_cs.c 2007-02-04 18:44:54.000000000 +0000 ++++ linux-2.6.20/drivers/serial/serial_cs.c 2007-04-27 13:40:34.000000000 +0100 +@@ -390,7 +390,7 @@ + kio_addr_t iobase, int irq) + { + struct uart_port port; +- int line; ++ int line, linestart; + + memset(&port, 0, sizeof (struct uart_port)); + port.iobase = iobase; +@@ -411,10 +411,16 @@ + return -EINVAL; + } + ++#if CONFIG_SERIAL_PXA ++ linestart = 4; ++#else ++ linestart = 0; ++#endif ++ + info->line[info->ndev] = line; +- sprintf(info->node[info->ndev].dev_name, "ttyS%d", line); ++ sprintf(info->node[info->ndev].dev_name, "ttyS%d", line+linestart); + info->node[info->ndev].major = TTY_MAJOR; +- info->node[info->ndev].minor = 0x40 + line; ++ info->node[info->ndev].minor = 0x40 + line + linestart; + if (info->ndev > 0) + info->node[info->ndev - 1].next = &info->node[info->ndev]; + info->ndev++; diff --git a/packages/linux/linux-rp-2.6.21/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch b/packages/linux/linux-rp-2.6.21/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch new file mode 100644 index 0000000000..18bf4268fc --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/serial-add-support-for-non-standard-xtals-to-16c950-driver.patch @@ -0,0 +1,155 @@ + +From: Petr Vandrovec <vandrove@vc.cvut.cz> + +Patch below adds support for using different prescaler than 16 for 16c950 +chips. This is needed for using Fujitsu-Siemens Connect2Air compact-flash +card, which comes (apparently) with 806kHz clocks, and so you have to +program prescaler for division by 7, and DLAB to 1, to get 115200Bd. + +To get card properly running you also have to add lines below to +/etc/pcmcia/serial.opts so kernel knows that base speed is not 115200 but +50400 (50400 * 16 = 806400; 806400 / 7 = 115200). As I've found no code +specifying baud_rate in serial_cs, I assume that specifying it in +serial.opts is right way to do this type of things. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER maximum possible +baud rate passed to uart code was uartclk / 16 while correct value for +these devices (and for 16c950) is uartclk / 4. + +Patch also fixes problem that for UPF_MAGIC_MULTIPLIER devices with +baud_rate 19200 or 9600 spd_cust did not work correctly. Not that such +devices exist, but we should not ignore spd_cust, user probably knows why +he asked for spd_cust. + +serial.opts: + +case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in +'0279,950b-2-GPRS Modem---') + SERIAL_OPTS="baud_base 50400" + ;; +esac + +Cc: David Woodhouse <dwmw2@infradead.org> +Signed-off-by: Andrew Morton <akpm@osdl.org> +--- + + drivers/serial/8250.c | 82 +++++++++++++++++++++++++++++++++++++++----------- + 1 files changed, 64 insertions(+), 18 deletions(-) + +diff -puN drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver drivers/serial/8250.c +--- devel/drivers/serial/8250.c~serial-add-support-for-non-standard-xtals-to-16c950-driver 2005-09-12 03:34:57.000000000 -0700 ++++ devel-akpm/drivers/serial/8250.c 2005-09-12 03:34:57.000000000 -0700 +@@ -1653,24 +1653,58 @@ static void serial8250_shutdown(struct u + serial_unlink_irq_chain(up); + } + +-static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud) ++static unsigned int serial8250_get_divisor(struct uart_port *port, unsigned int baud, ++ unsigned int *prescaler) + { +- unsigned int quot; +- +- /* +- * Handle magic divisors for baud rates above baud_base on +- * SMSC SuperIO chips. ++ /* ++ * Use special handling only if user did not supply its own divider. ++ * spd_cust is defined in terms of baud_base, so always use default ++ * prescaler when spd_cust is requested. + */ +- if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/4)) +- quot = 0x8001; +- else if ((port->flags & UPF_MAGIC_MULTIPLIER) && +- baud == (port->uartclk/8)) +- quot = 0x8002; +- else +- quot = uart_get_divisor(port, baud); + +- return quot; ++ *prescaler = 16; ++ if (baud != 38400 || (port->flags & UPF_SPD_MASK) != UPF_SPD_CUST) { ++ unsigned int quot = port->uartclk / baud; ++ ++ /* ++ * Handle magic divisors for baud rates above baud_base on ++ * SMSC SuperIO chips. ++ */ ++ if (port->flags & UPF_MAGIC_MULTIPLIER) { ++ if (quot == 4) { ++ return 0x8001; ++ } else if (quot == 8) { ++ return 0x8002; ++ } ++ } ++ if (port->type == PORT_16C950) { ++ /* ++ * This computes TCR value (4 to 16), not CPR value (which can ++ * be between 1.000 and 31.875) - chip I have uses XTAL of ++ * 806400Hz, and so a division by 7 is required to get 115200Bd. ++ * I'm leaving CPR disabled for now, until someone will ++ * hit even more exotic XTAL (it is needed to get 500kbps ++ * or 1000kbps from 18.432MHz XTAL, but I have no device ++ * which would benefit from doing that). ++ * ++ * If we can use divide by 16, use it. Otherwise look for ++ * better prescaler, from 15 to 4. If quotient cannot ++ * be divided by any integer value between 4 and 15, use 4. ++ */ ++ if (quot & 0x0F) { ++ unsigned int div; ++ ++ for (div = 15; div > 4; div--) { ++ if (quot % div == 0) { ++ break; ++ } ++ } ++ *prescaler = div; ++ return quot / div; ++ } ++ } ++ } ++ return uart_get_divisor(port, baud); + } + + static void +@@ -1680,7 +1714,7 @@ serial8250_set_termios(struct uart_port + struct uart_8250_port *up = (struct uart_8250_port *)port; + unsigned char cval, fcr = 0; + unsigned long flags; +- unsigned int baud, quot; ++ unsigned int baud, quot, prescaler; + + switch (termios->c_cflag & CSIZE) { + case CS5: +@@ -1712,8 +1746,13 @@ serial8250_set_termios(struct uart_port + /* + * Ask the core to calculate the divisor for us. + */ +- baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); +- quot = serial8250_get_divisor(port, baud); ++ ++ if (port->type == PORT_16C950 || (port->flags & UPF_MAGIC_MULTIPLIER)) { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/4); ++ } else { ++ baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16); ++ } ++ quot = serial8250_get_divisor(port, baud, &prescaler); + + /* + * Oxford Semi 952 rev B workaround +@@ -1817,6 +1856,13 @@ serial8250_set_termios(struct uart_port + serial_outp(up, UART_DLM, quot >> 8); /* MS of divisor */ + + /* ++ * Program prescaler for 16C950 chips. ++ */ ++ if (up->port.type == PORT_16C950) { ++ serial_icr_write(up, UART_TCR, prescaler == 16 ? 0 : prescaler); ++ } ++ ++ /* + * LCR DLAB must be set to enable 64-byte FIFO mode. If the FCR + * is written without DLAB set, this mode will be disabled. + */ +_ diff --git a/packages/linux/linux-rp-2.6.21/squashfs3.0-2.6.15.patch b/packages/linux/linux-rp-2.6.21/squashfs3.0-2.6.15.patch new file mode 100644 index 0000000000..405d4ec124 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/squashfs3.0-2.6.15.patch @@ -0,0 +1,4191 @@ + fs/Kconfig | 65 + + fs/Makefile | 1 + fs/squashfs/Makefile | 7 + fs/squashfs/inode.c | 2124 +++++++++++++++++++++++++++++++++++++++++ + fs/squashfs/squashfs.h | 86 + + fs/squashfs/squashfs2_0.c | 757 ++++++++++++++ + include/linux/squashfs_fs.h | 911 +++++++++++++++++ + include/linux/squashfs_fs_i.h | 45 + include/linux/squashfs_fs_sb.h | 74 + + init/do_mounts_rd.c | 13 + 10 files changed, 4083 insertions(+) + +Index: git/fs/Kconfig +=================================================================== +--- git.orig/fs/Kconfig 2006-10-31 16:09:22.000000000 +0000 ++++ git/fs/Kconfig 2006-10-31 21:26:45.000000000 +0000 +@@ -1407,6 +1407,71 @@ config CRAMFS + + If unsure, say N. + ++config SQUASHFS ++ tristate "SquashFS 3.0 - Squashed file system support" ++ select ZLIB_INFLATE ++ help ++ Saying Y here includes support for SquashFS 3.0 (a Compressed Read-Only File ++ System). Squashfs is a highly compressed read-only filesystem for Linux. ++ It uses zlib compression to compress both files, inodes and directories. ++ Inodes in the system are very small and all blocks are packed to minimise ++ data overhead. Block sizes greater than 4K are supported up to a maximum of 64K. ++ SquashFS 3.0 supports 64 bit filesystems and files (larger than 4GB), full ++ uid/gid information, hard links and timestamps. ++ ++ Squashfs is intended for general read-only filesystem use, for archival ++ use (i.e. in cases where a .tar.gz file may be used), and in embedded ++ systems where low overhead is needed. Further information and filesystem tools ++ are available from http://squashfs.sourceforge.net. ++ ++ If you want to compile this as a module ( = code which can be ++ inserted in and removed from the running kernel whenever you want), ++ say M here and read <file:Documentation/modules.txt>. The module ++ will be called squashfs. Note that the root file system (the one ++ containing the directory /) cannot be compiled as a module. ++ ++ If unsure, say N. ++ ++config SQUASHFS_EMBEDDED ++ ++ bool "Additional options for memory-constrained systems" ++ depends on SQUASHFS ++ default n ++ help ++ Saying Y here allows you to specify cache sizes and how Squashfs ++ allocates memory. This is only intended for memory constrained ++ systems. ++ ++ If unsure, say N. ++ ++config SQUASHFS_FRAGMENT_CACHE_SIZE ++ int "Number of fragments cached" if SQUASHFS_EMBEDDED ++ depends on SQUASHFS ++ default "3" ++ help ++ By default SquashFS caches the last 3 fragments read from ++ the filesystem. Increasing this amount may mean SquashFS ++ has to re-read fragments less often from disk, at the expense ++ of extra system memory. Decreasing this amount will mean ++ SquashFS uses less memory at the expense of extra reads from disk. ++ ++ Note there must be at least one cached fragment. Anything ++ much more than three will probably not make much difference. ++ ++config SQUASHFS_VMALLOC ++ bool "Use Vmalloc rather than Kmalloc" if SQUASHFS_EMBEDDED ++ depends on SQUASHFS ++ default n ++ help ++ By default SquashFS uses kmalloc to obtain fragment cache memory. ++ Kmalloc memory is the standard kernel allocator, but it can fail ++ on memory constrained systems. Because of the way Vmalloc works, ++ Vmalloc can succeed when kmalloc fails. Specifying this option ++ will make SquashFS always use Vmalloc to allocate the ++ fragment cache memory. ++ ++ If unsure, say N. ++ + config VXFS_FS + tristate "FreeVxFS file system support (VERITAS VxFS(TM) compatible)" + depends on BLOCK +Index: git/fs/Makefile +=================================================================== +--- git.orig/fs/Makefile 2006-10-31 16:09:22.000000000 +0000 ++++ git/fs/Makefile 2006-10-31 21:26:45.000000000 +0000 +@@ -67,6 +67,7 @@ obj-$(CONFIG_JBD) += jbd/ + obj-$(CONFIG_JBD2) += jbd2/ + obj-$(CONFIG_EXT2_FS) += ext2/ + obj-$(CONFIG_CRAMFS) += cramfs/ ++obj-$(CONFIG_SQUASHFS) += squashfs/ + obj-$(CONFIG_RAMFS) += ramfs/ + obj-$(CONFIG_HUGETLBFS) += hugetlbfs/ + obj-$(CONFIG_CODA_FS) += coda/ +Index: git/fs/squashfs/inode.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/fs/squashfs/inode.c 2006-11-01 18:01:32.000000000 +0000 +@@ -0,0 +1,2124 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * inode.c ++ */ ++ ++#include <linux/types.h> ++#include <linux/squashfs_fs.h> ++#include <linux/module.h> ++#include <linux/errno.h> ++#include <linux/slab.h> ++#include <linux/fs.h> ++#include <linux/smp_lock.h> ++#include <linux/slab.h> ++#include <linux/squashfs_fs_sb.h> ++#include <linux/squashfs_fs_i.h> ++#include <linux/buffer_head.h> ++#include <linux/vfs.h> ++#include <linux/init.h> ++#include <linux/dcache.h> ++#include <linux/wait.h> ++#include <linux/zlib.h> ++#include <linux/blkdev.h> ++#include <linux/vmalloc.h> ++#include <asm/uaccess.h> ++#include <asm/semaphore.h> ++ ++#include "squashfs.h" ++ ++static void squashfs_put_super(struct super_block *); ++static int squashfs_statfs(struct dentry *, struct kstatfs *); ++static int squashfs_symlink_readpage(struct file *file, struct page *page); ++static int squashfs_readpage(struct file *file, struct page *page); ++static int squashfs_readpage4K(struct file *file, struct page *page); ++static int squashfs_readdir(struct file *, void *, filldir_t); ++static struct inode *squashfs_alloc_inode(struct super_block *sb); ++static void squashfs_destroy_inode(struct inode *inode); ++static int init_inodecache(void); ++static void destroy_inodecache(void); ++static struct dentry *squashfs_lookup(struct inode *, struct dentry *, ++ struct nameidata *); ++static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode); ++static long long read_blocklist(struct inode *inode, int index, ++ int readahead_blks, char *block_list, ++ unsigned short **block_p, unsigned int *bsize); ++static int squashfs_get_sb(struct file_system_type *, int, ++ const char *, void *, struct vfsmount *); ++ ++ ++static z_stream stream; ++ ++static struct file_system_type squashfs_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "squashfs", ++ .get_sb = squashfs_get_sb, ++ .kill_sb = kill_block_super, ++ .fs_flags = FS_REQUIRES_DEV ++}; ++ ++static unsigned char squashfs_filetype_table[] = { ++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK ++}; ++ ++static struct super_operations squashfs_ops = { ++ .alloc_inode = squashfs_alloc_inode, ++ .destroy_inode = squashfs_destroy_inode, ++ .statfs = squashfs_statfs, ++ .put_super = squashfs_put_super, ++}; ++ ++SQSH_EXTERN struct address_space_operations squashfs_symlink_aops = { ++ .readpage = squashfs_symlink_readpage ++}; ++ ++SQSH_EXTERN struct address_space_operations squashfs_aops = { ++ .readpage = squashfs_readpage ++}; ++ ++SQSH_EXTERN struct address_space_operations squashfs_aops_4K = { ++ .readpage = squashfs_readpage4K ++}; ++ ++static struct file_operations squashfs_dir_ops = { ++ .read = generic_read_dir, ++ .readdir = squashfs_readdir ++}; ++ ++SQSH_EXTERN struct inode_operations squashfs_dir_inode_ops = { ++ .lookup = squashfs_lookup ++}; ++ ++ ++static struct buffer_head *get_block_length(struct super_block *s, ++ int *cur_index, int *offset, int *c_byte) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ unsigned short temp; ++ struct buffer_head *bh; ++ ++ if (!(bh = sb_bread(s, *cur_index))) ++ goto out; ++ ++ if (msblk->devblksize - *offset == 1) { ++ if (msblk->swap) ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ else ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ brelse(bh); ++ if (!(bh = sb_bread(s, ++(*cur_index)))) ++ goto out; ++ if (msblk->swap) ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ bh->b_data); ++ else ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ bh->b_data); ++ *c_byte = temp; ++ *offset = 1; ++ } else { ++ if (msblk->swap) { ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset + 1)); ++ } else { ++ ((unsigned char *) &temp)[0] = *((unsigned char *) ++ (bh->b_data + *offset)); ++ ((unsigned char *) &temp)[1] = *((unsigned char *) ++ (bh->b_data + *offset + 1)); ++ } ++ *c_byte = temp; ++ *offset += 2; ++ } ++ ++ if (SQUASHFS_CHECK_DATA(msblk->sblk.flags)) { ++ if (*offset == msblk->devblksize) { ++ brelse(bh); ++ if (!(bh = sb_bread(s, ++(*cur_index)))) ++ goto out; ++ *offset = 0; ++ } ++ if (*((unsigned char *) (bh->b_data + *offset)) != ++ SQUASHFS_MARKER_BYTE) { ++ ERROR("Metadata block marker corrupt @ %x\n", ++ *cur_index); ++ brelse(bh); ++ goto out; ++ } ++ (*offset)++; ++ } ++ return bh; ++ ++out: ++ return NULL; ++} ++ ++ ++SQSH_EXTERN unsigned int squashfs_read_data(struct super_block *s, char *buffer, ++ long long index, unsigned int length, ++ long long *next_index) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >> ++ msblk->devblksize_log2) + 2]; ++ unsigned int offset = index & ((1 << msblk->devblksize_log2) - 1); ++ unsigned int cur_index = index >> msblk->devblksize_log2; ++ int bytes, avail_bytes, b = 0, k; ++ char *c_buffer; ++ unsigned int compressed; ++ unsigned int c_byte = length; ++ ++ if (c_byte) { ++ bytes = msblk->devblksize - offset; ++ compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte); ++ c_buffer = compressed ? msblk->read_data : buffer; ++ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte); ++ ++ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed ++ ? "" : "un", (unsigned int) c_byte); ++ ++ if (!(bh[0] = sb_getblk(s, cur_index))) ++ goto block_release; ++ ++ for (b = 1; bytes < c_byte; b++) { ++ if (!(bh[b] = sb_getblk(s, ++cur_index))) ++ goto block_release; ++ bytes += msblk->devblksize; ++ } ++ ll_rw_block(READ, b, bh); ++ } else { ++ if (!(bh[0] = get_block_length(s, &cur_index, &offset, ++ &c_byte))) ++ goto read_failure; ++ ++ bytes = msblk->devblksize - offset; ++ compressed = SQUASHFS_COMPRESSED(c_byte); ++ c_buffer = compressed ? msblk->read_data : buffer; ++ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte); ++ ++ TRACE("Block @ 0x%llx, %scompressed size %d\n", index, compressed ++ ? "" : "un", (unsigned int) c_byte); ++ ++ for (b = 1; bytes < c_byte; b++) { ++ if (!(bh[b] = sb_getblk(s, ++cur_index))) ++ goto block_release; ++ bytes += msblk->devblksize; ++ } ++ ll_rw_block(READ, b - 1, bh + 1); ++ } ++ ++ if (compressed) ++ down(&msblk->read_data_mutex); ++ ++ for (bytes = 0, k = 0; k < b; k++) { ++ avail_bytes = (c_byte - bytes) > (msblk->devblksize - offset) ? ++ msblk->devblksize - offset : ++ c_byte - bytes; ++ wait_on_buffer(bh[k]); ++ if (!buffer_uptodate(bh[k])) ++ goto block_release; ++ memcpy(c_buffer + bytes, bh[k]->b_data + offset, avail_bytes); ++ bytes += avail_bytes; ++ offset = 0; ++ brelse(bh[k]); ++ } ++ ++ /* ++ * uncompress block ++ */ ++ if (compressed) { ++ int zlib_err; ++ ++ stream.next_in = c_buffer; ++ stream.avail_in = c_byte; ++ stream.next_out = buffer; ++ stream.avail_out = msblk->read_size; ++ ++ if (((zlib_err = zlib_inflateInit(&stream)) != Z_OK) || ++ ((zlib_err = zlib_inflate(&stream, Z_FINISH)) ++ != Z_STREAM_END) || ((zlib_err = ++ zlib_inflateEnd(&stream)) != Z_OK)) { ++ ERROR("zlib_fs returned unexpected result 0x%x\n", ++ zlib_err); ++ bytes = 0; ++ } else ++ bytes = stream.total_out; ++ ++ up(&msblk->read_data_mutex); ++ } ++ ++ if (next_index) ++ *next_index = index + c_byte + (length ? 0 : ++ (SQUASHFS_CHECK_DATA(msblk->sblk.flags) ++ ? 3 : 2)); ++ return bytes; ++ ++block_release: ++ while (--b >= 0) ++ brelse(bh[b]); ++ ++read_failure: ++ ERROR("sb_bread failed reading block 0x%x\n", cur_index); ++ return 0; ++} ++ ++ ++SQSH_EXTERN int squashfs_get_cached_block(struct super_block *s, char *buffer, ++ long long block, unsigned int offset, ++ int length, long long *next_block, ++ unsigned int *next_offset) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ int n, i, bytes, return_length = length; ++ long long next_index; ++ ++ TRACE("Entered squashfs_get_cached_block [%llx:%x]\n", block, offset); ++ ++ while ( 1 ) { ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ if (msblk->block_cache[i].block == block) ++ break; ++ ++ down(&msblk->block_cache_mutex); ++ ++ if (i == SQUASHFS_CACHED_BLKS) { ++ /* read inode header block */ ++ for (i = msblk->next_cache, n = SQUASHFS_CACHED_BLKS; ++ n ; n --, i = (i + 1) % ++ SQUASHFS_CACHED_BLKS) ++ if (msblk->block_cache[i].block != ++ SQUASHFS_USED_BLK) ++ break; ++ ++ if (n == 0) { ++ wait_queue_t wait; ++ ++ init_waitqueue_entry(&wait, current); ++ add_wait_queue(&msblk->waitq, &wait); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ up(&msblk->block_cache_mutex); ++ schedule(); ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&msblk->waitq, &wait); ++ continue; ++ } ++ msblk->next_cache = (i + 1) % SQUASHFS_CACHED_BLKS; ++ ++ if (msblk->block_cache[i].block == ++ SQUASHFS_INVALID_BLK) { ++ if (!(msblk->block_cache[i].data = ++ kmalloc(SQUASHFS_METADATA_SIZE, ++ GFP_KERNEL))) { ++ ERROR("Failed to allocate cache" ++ "block\n"); ++ up(&msblk->block_cache_mutex); ++ goto out; ++ } ++ } ++ ++ msblk->block_cache[i].block = SQUASHFS_USED_BLK; ++ up(&msblk->block_cache_mutex); ++ ++ if (!(msblk->block_cache[i].length = ++ squashfs_read_data(s, ++ msblk->block_cache[i].data, ++ block, 0, &next_index))) { ++ ERROR("Unable to read cache block [%llx:%x]\n", ++ block, offset); ++ goto out; ++ } ++ ++ down(&msblk->block_cache_mutex); ++ wake_up(&msblk->waitq); ++ msblk->block_cache[i].block = block; ++ msblk->block_cache[i].next_index = next_index; ++ TRACE("Read cache block [%llx:%x]\n", block, offset); ++ } ++ ++ if (msblk->block_cache[i].block != block) { ++ up(&msblk->block_cache_mutex); ++ continue; ++ } ++ ++ if ((bytes = msblk->block_cache[i].length - offset) >= length) { ++ if (buffer) ++ memcpy(buffer, msblk->block_cache[i].data + ++ offset, length); ++ if (msblk->block_cache[i].length - offset == length) { ++ *next_block = msblk->block_cache[i].next_index; ++ *next_offset = 0; ++ } else { ++ *next_block = block; ++ *next_offset = offset + length; ++ } ++ up(&msblk->block_cache_mutex); ++ goto finish; ++ } else { ++ if (buffer) { ++ memcpy(buffer, msblk->block_cache[i].data + ++ offset, bytes); ++ buffer += bytes; ++ } ++ block = msblk->block_cache[i].next_index; ++ up(&msblk->block_cache_mutex); ++ length -= bytes; ++ offset = 0; ++ } ++ } ++ ++finish: ++ return return_length; ++out: ++ return 0; ++} ++ ++ ++static int get_fragment_location(struct super_block *s, unsigned int fragment, ++ long long *fragment_start_block, ++ unsigned int *fragment_size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ long long start_block = ++ msblk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)]; ++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment); ++ struct squashfs_fragment_entry fragment_entry; ++ ++ if (msblk->swap) { ++ struct squashfs_fragment_entry sfragment_entry; ++ ++ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, ++ start_block, offset, ++ sizeof(sfragment_entry), &start_block, ++ &offset)) ++ goto out; ++ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, ++ start_block, offset, ++ sizeof(fragment_entry), &start_block, ++ &offset)) ++ goto out; ++ ++ *fragment_start_block = fragment_entry.start_block; ++ *fragment_size = fragment_entry.size; ++ ++ return 1; ++ ++out: ++ return 0; ++} ++ ++ ++SQSH_EXTERN void release_cached_fragment(struct squashfs_sb_info *msblk, struct ++ squashfs_fragment_cache *fragment) ++{ ++ down(&msblk->fragment_mutex); ++ fragment->locked --; ++ wake_up(&msblk->fragment_wait_queue); ++ up(&msblk->fragment_mutex); ++} ++ ++ ++SQSH_EXTERN struct squashfs_fragment_cache *get_cached_fragment(struct super_block ++ *s, long long start_block, ++ int length) ++{ ++ int i, n, nf; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ ++ while ( 1 ) { ++ down(&msblk->fragment_mutex); ++ ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS && ++ msblk->fragment[i].block != start_block; i++); ++ ++ if (i == SQUASHFS_CACHED_FRAGMENTS) { ++ nf = (msblk->next_fragment + 1) % ++ SQUASHFS_CACHED_FRAGMENTS; ++ for (i = msblk->next_fragment, n = ++ SQUASHFS_CACHED_FRAGMENTS; n && ++ msblk->fragment[i].locked; n--, i = (i + 1) % ++ SQUASHFS_CACHED_FRAGMENTS); ++ ++ if (n == 0) { ++ wait_queue_t wait; ++ ++ init_waitqueue_entry(&wait, current); ++ add_wait_queue(&msblk->fragment_wait_queue, ++ &wait); ++ set_current_state(TASK_UNINTERRUPTIBLE); ++ up(&msblk->fragment_mutex); ++ schedule(); ++ set_current_state(TASK_RUNNING); ++ remove_wait_queue(&msblk->fragment_wait_queue, ++ &wait); ++ continue; ++ } ++ msblk->next_fragment = nf; ++ ++ if (msblk->fragment[i].data == NULL) ++ if (!(msblk->fragment[i].data = SQUASHFS_ALLOC ++ (SQUASHFS_FILE_MAX_SIZE))) { ++ ERROR("Failed to allocate fragment " ++ "cache block\n"); ++ up(&msblk->fragment_mutex); ++ goto out; ++ } ++ ++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; ++ msblk->fragment[i].locked = 1; ++ up(&msblk->fragment_mutex); ++ ++ if (!(msblk->fragment[i].length = squashfs_read_data(s, ++ msblk->fragment[i].data, ++ start_block, length, NULL))) { ++ ERROR("Unable to read fragment cache block " ++ "[%llx]\n", start_block); ++ msblk->fragment[i].locked = 0; ++ goto out; ++ } ++ ++ msblk->fragment[i].block = start_block; ++ TRACE("New fragment %d, start block %lld, locked %d\n", ++ i, msblk->fragment[i].block, ++ msblk->fragment[i].locked); ++ break; ++ } ++ ++ msblk->fragment[i].locked++; ++ up(&msblk->fragment_mutex); ++ TRACE("Got fragment %d, start block %lld, locked %d\n", i, ++ msblk->fragment[i].block, ++ msblk->fragment[i].locked); ++ break; ++ } ++ ++ return &msblk->fragment[i]; ++ ++out: ++ return NULL; ++} ++ ++ ++static struct inode *squashfs_new_inode(struct super_block *s, ++ struct squashfs_base_inode_header *inodeb) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct inode *i = new_inode(s); ++ ++ if (i) { ++ i->i_ino = inodeb->inode_number; ++ i->i_mtime.tv_sec = inodeb->mtime; ++ i->i_atime.tv_sec = inodeb->mtime; ++ i->i_ctime.tv_sec = inodeb->mtime; ++ i->i_uid = msblk->uid[inodeb->uid]; ++ i->i_mode = inodeb->mode; ++ i->i_size = 0; ++ if (inodeb->guid == SQUASHFS_GUIDS) ++ i->i_gid = i->i_uid; ++ else ++ i->i_gid = msblk->guid[inodeb->guid]; ++ } ++ ++ return i; ++} ++ ++ ++static struct inode *squashfs_iget(struct super_block *s, squashfs_inode_t inode) ++{ ++ struct inode *i; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long block = SQUASHFS_INODE_BLK(inode) + ++ sblk->inode_table_start; ++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); ++ long long next_block; ++ unsigned int next_offset; ++ union squashfs_inode_header id, sid; ++ struct squashfs_base_inode_header *inodeb = &id.base, ++ *sinodeb = &sid.base; ++ ++ TRACE("Entered squashfs_iget\n"); ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, ++ offset, sizeof(*sinodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_BASE_INODE_HEADER(inodeb, sinodeb, ++ sizeof(*sinodeb)); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) inodeb, block, ++ offset, sizeof(*inodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ switch(inodeb->inode_type) { ++ case SQUASHFS_FILE_TYPE: { ++ unsigned int frag_size; ++ long long frag_blk; ++ struct squashfs_reg_inode_header *inodep = &id.reg; ++ struct squashfs_reg_inode_header *sinodep = &sid.reg; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_REG_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = 1; ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %llx, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_LREG_TYPE: { ++ unsigned int frag_size; ++ long long frag_blk; ++ struct squashfs_lreg_inode_header *inodep = &id.lreg; ++ struct squashfs_lreg_inode_header *sinodep = &sid.lreg; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LREG_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %llx, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_DIR_TYPE: { ++ struct squashfs_dir_inode_header *inodep = &id.dir; ++ struct squashfs_dir_inode_header *sinodep = &sid.dir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DIR_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops; ++ i->i_fop = &squashfs_dir_ops; ++ i->i_mode |= S_IFDIR; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = 0; ++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; ++ ++ TRACE("Directory inode %x:%x, start_block %x, offset " ++ "%x\n", SQUASHFS_INODE_BLK(inode), ++ offset, inodep->start_block, ++ inodep->offset); ++ break; ++ } ++ case SQUASHFS_LDIR_TYPE: { ++ struct squashfs_ldir_inode_header *inodep = &id.ldir; ++ struct squashfs_ldir_inode_header *sinodep = &sid.ldir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LDIR_INODE_HEADER(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops; ++ i->i_fop = &squashfs_dir_ops; ++ i->i_mode |= S_IFDIR; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; ++ SQUASHFS_I(i)->u.s2.directory_index_offset = ++ next_offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = ++ inodep->i_count; ++ SQUASHFS_I(i)->u.s2.parent_inode = inodep->parent_inode; ++ ++ TRACE("Long directory inode %x:%x, start_block %x, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, inodep->offset); ++ break; ++ } ++ case SQUASHFS_SYMLINK_TYPE: { ++ struct squashfs_symlink_inode_header *inodep = ++ &id.symlink; ++ struct squashfs_symlink_inode_header *sinodep = ++ &sid.symlink; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_size = inodep->symlink_size; ++ i->i_op = &page_symlink_inode_operations; ++ i->i_data.a_ops = &squashfs_symlink_aops; ++ i->i_mode |= S_IFLNK; ++ SQUASHFS_I(i)->start_block = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ ++ TRACE("Symbolic link inode %x:%x, start_block %llx, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ next_block, next_offset); ++ break; ++ } ++ case SQUASHFS_BLKDEV_TYPE: ++ case SQUASHFS_CHRDEV_TYPE: { ++ struct squashfs_dev_inode_header *inodep = &id.dev; ++ struct squashfs_dev_inode_header *sinodep = &sid.dev; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DEV_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if ((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_mode |= (inodeb->inode_type == ++ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : ++ S_IFBLK; ++ init_special_inode(i, i->i_mode, ++ old_decode_dev(inodep->rdev)); ++ ++ TRACE("Device inode %x:%x, rdev %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->rdev); ++ break; ++ } ++ case SQUASHFS_FIFO_TYPE: ++ case SQUASHFS_SOCKET_TYPE: { ++ struct squashfs_ipc_inode_header *inodep = &id.ipc; ++ struct squashfs_ipc_inode_header *sinodep = &sid.ipc; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_IPC_INODE_HEADER(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if ((i = squashfs_new_inode(s, inodeb)) == NULL) ++ goto failed_read1; ++ ++ i->i_nlink = inodep->nlink; ++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) ++ ? S_IFIFO : S_IFSOCK; ++ init_special_inode(i, i->i_mode, 0); ++ break; ++ } ++ default: ++ ERROR("Unknown inode type %d in squashfs_iget!\n", ++ inodeb->inode_type); ++ goto failed_read1; ++ } ++ ++ insert_inode_hash(i); ++ return i; ++ ++failed_read: ++ ERROR("Unable to read inode [%llx:%x]\n", block, offset); ++ ++failed_read1: ++ return NULL; ++} ++ ++ ++static int read_fragment_index_table(struct super_block *s) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ /* Allocate fragment index table */ ++ if (!(msblk->fragment_index = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES ++ (sblk->fragments), GFP_KERNEL))) { ++ ERROR("Failed to allocate uid/gid table\n"); ++ return 0; ++ } ++ ++ if (SQUASHFS_FRAGMENT_INDEX_BYTES(sblk->fragments) && ++ !squashfs_read_data(s, (char *) ++ msblk->fragment_index, ++ sblk->fragment_table_start, ++ SQUASHFS_FRAGMENT_INDEX_BYTES ++ (sblk->fragments) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { ++ ERROR("unable to read fragment index table\n"); ++ return 0; ++ } ++ ++ if (msblk->swap) { ++ int i; ++ long long fragment; ++ ++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sblk->fragments); ++ i++) { ++ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), ++ &msblk->fragment_index[i], 1); ++ msblk->fragment_index[i] = fragment; ++ } ++ } ++ ++ return 1; ++} ++ ++ ++static int supported_squashfs_filesystem(struct squashfs_sb_info *msblk, int silent) ++{ ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ msblk->iget = squashfs_iget; ++ msblk->read_blocklist = read_blocklist; ++ msblk->read_fragment_index_table = read_fragment_index_table; ++ ++ if (sblk->s_major == 1) { ++ if (!squashfs_1_0_supported(msblk)) { ++ SERROR("Major/Minor mismatch, Squashfs 1.0 filesystems " ++ "are unsupported\n"); ++ SERROR("Please recompile with " ++ "Squashfs 1.0 support enabled\n"); ++ return 0; ++ } ++ } else if (sblk->s_major == 2) { ++ if (!squashfs_2_0_supported(msblk)) { ++ SERROR("Major/Minor mismatch, Squashfs 2.0 filesystems " ++ "are unsupported\n"); ++ SERROR("Please recompile with " ++ "Squashfs 2.0 support enabled\n"); ++ return 0; ++ } ++ } else if(sblk->s_major != SQUASHFS_MAJOR || sblk->s_minor > ++ SQUASHFS_MINOR) { ++ SERROR("Major/Minor mismatch, trying to mount newer %d.%d " ++ "filesystem\n", sblk->s_major, sblk->s_minor); ++ SERROR("Please update your kernel\n"); ++ return 0; ++ } ++ ++ return 1; ++} ++ ++ ++static int squashfs_fill_super(struct super_block *s, void *data, int silent) ++{ ++ struct squashfs_sb_info *msblk; ++ struct squashfs_super_block *sblk; ++ int i; ++ char b[BDEVNAME_SIZE]; ++ struct inode *root; ++ ++ TRACE("Entered squashfs_read_superblock\n"); ++ ++ if (!(s->s_fs_info = kmalloc(sizeof(struct squashfs_sb_info), ++ GFP_KERNEL))) { ++ ERROR("Failed to allocate superblock\n"); ++ goto failure; ++ } ++ memset(s->s_fs_info, 0, sizeof(struct squashfs_sb_info)); ++ msblk = s->s_fs_info; ++ sblk = &msblk->sblk; ++ ++ msblk->devblksize = sb_min_blocksize(s, BLOCK_SIZE); ++ msblk->devblksize_log2 = ffz(~msblk->devblksize); ++ ++ init_MUTEX(&msblk->read_data_mutex); ++ init_MUTEX(&msblk->read_page_mutex); ++ init_MUTEX(&msblk->block_cache_mutex); ++ init_MUTEX(&msblk->fragment_mutex); ++ init_MUTEX(&msblk->meta_index_mutex); ++ ++ init_waitqueue_head(&msblk->waitq); ++ init_waitqueue_head(&msblk->fragment_wait_queue); ++ ++ if (!squashfs_read_data(s, (char *) sblk, SQUASHFS_START, ++ sizeof(struct squashfs_super_block) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { ++ SERROR("unable to read superblock\n"); ++ goto failed_mount; ++ } ++ ++ /* Check it is a SQUASHFS superblock */ ++ msblk->swap = 0; ++ if ((s->s_magic = sblk->s_magic) != SQUASHFS_MAGIC) { ++ if (sblk->s_magic == SQUASHFS_MAGIC_SWAP) { ++ struct squashfs_super_block ssblk; ++ ++ WARNING("Mounting a different endian SQUASHFS " ++ "filesystem on %s\n", bdevname(s->s_bdev, b)); ++ ++ SQUASHFS_SWAP_SUPER_BLOCK(&ssblk, sblk); ++ memcpy(sblk, &ssblk, sizeof(struct squashfs_super_block)); ++ msblk->swap = 1; ++ } else { ++ SERROR("Can't find a SQUASHFS superblock on %s\n", ++ bdevname(s->s_bdev, b)); ++ goto failed_mount; ++ } ++ } ++ ++ /* Check the MAJOR & MINOR versions */ ++ if(!supported_squashfs_filesystem(msblk, silent)) ++ goto failed_mount; ++ ++ TRACE("Found valid superblock on %s\n", bdevname(s->s_bdev, b)); ++ TRACE("Inodes are %scompressed\n", ++ SQUASHFS_UNCOMPRESSED_INODES ++ (sblk->flags) ? "un" : ""); ++ TRACE("Data is %scompressed\n", ++ SQUASHFS_UNCOMPRESSED_DATA(sblk->flags) ++ ? "un" : ""); ++ TRACE("Check data is %s present in the filesystem\n", ++ SQUASHFS_CHECK_DATA(sblk->flags) ? ++ "" : "not"); ++ TRACE("Filesystem size %lld bytes\n", sblk->bytes_used); ++ TRACE("Block size %d\n", sblk->block_size); ++ TRACE("Number of inodes %d\n", sblk->inodes); ++ if (sblk->s_major > 1) ++ TRACE("Number of fragments %d\n", sblk->fragments); ++ TRACE("Number of uids %d\n", sblk->no_uids); ++ TRACE("Number of gids %d\n", sblk->no_guids); ++ TRACE("sblk->inode_table_start %llx\n", sblk->inode_table_start); ++ TRACE("sblk->directory_table_start %llx\n", sblk->directory_table_start); ++ if (sblk->s_major > 1) ++ TRACE("sblk->fragment_table_start %llx\n", ++ sblk->fragment_table_start); ++ TRACE("sblk->uid_start %llx\n", sblk->uid_start); ++ ++ s->s_flags |= MS_RDONLY; ++ s->s_op = &squashfs_ops; ++ ++ /* Init inode_table block pointer array */ ++ if (!(msblk->block_cache = kmalloc(sizeof(struct squashfs_cache) * ++ SQUASHFS_CACHED_BLKS, GFP_KERNEL))) { ++ ERROR("Failed to allocate block cache\n"); ++ goto failed_mount; ++ } ++ ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ msblk->block_cache[i].block = SQUASHFS_INVALID_BLK; ++ ++ msblk->next_cache = 0; ++ ++ /* Allocate read_data block */ ++ msblk->read_size = (sblk->block_size < SQUASHFS_METADATA_SIZE) ? ++ SQUASHFS_METADATA_SIZE : ++ sblk->block_size; ++ ++ if (!(msblk->read_data = kmalloc(msblk->read_size, GFP_KERNEL))) { ++ ERROR("Failed to allocate read_data block\n"); ++ goto failed_mount; ++ } ++ ++ /* Allocate read_page block */ ++ if (!(msblk->read_page = kmalloc(sblk->block_size, GFP_KERNEL))) { ++ ERROR("Failed to allocate read_page block\n"); ++ goto failed_mount; ++ } ++ ++ /* Allocate uid and gid tables */ ++ if (!(msblk->uid = kmalloc((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int), GFP_KERNEL))) { ++ ERROR("Failed to allocate uid/gid table\n"); ++ goto failed_mount; ++ } ++ msblk->guid = msblk->uid + sblk->no_uids; ++ ++ if (msblk->swap) { ++ unsigned int suid[sblk->no_uids + sblk->no_guids]; ++ ++ if (!squashfs_read_data(s, (char *) &suid, sblk->uid_start, ++ ((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int)) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { ++ ERROR("unable to read uid/gid table\n"); ++ goto failed_mount; ++ } ++ ++ SQUASHFS_SWAP_DATA(msblk->uid, suid, (sblk->no_uids + ++ sblk->no_guids), (sizeof(unsigned int) * 8)); ++ } else ++ if (!squashfs_read_data(s, (char *) msblk->uid, sblk->uid_start, ++ ((sblk->no_uids + sblk->no_guids) * ++ sizeof(unsigned int)) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { ++ ERROR("unable to read uid/gid table\n"); ++ goto failed_mount; ++ } ++ ++ ++ if (sblk->s_major == 1 && squashfs_1_0_supported(msblk)) ++ goto allocate_root; ++ ++ if (!(msblk->fragment = kmalloc(sizeof(struct squashfs_fragment_cache) * ++ SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL))) { ++ ERROR("Failed to allocate fragment block cache\n"); ++ goto failed_mount; ++ } ++ ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) { ++ msblk->fragment[i].locked = 0; ++ msblk->fragment[i].block = SQUASHFS_INVALID_BLK; ++ msblk->fragment[i].data = NULL; ++ } ++ ++ msblk->next_fragment = 0; ++ ++ /* Allocate fragment index table */ ++ if (msblk->read_fragment_index_table(s) == 0) ++ goto failed_mount; ++ ++allocate_root: ++ if ((root = (msblk->iget)(s, sblk->root_inode)) == NULL) ++ goto failed_mount; ++ ++ if ((s->s_root = d_alloc_root(root)) == NULL) { ++ ERROR("Root inode create failed\n"); ++ iput(root); ++ goto failed_mount; ++ } ++ ++ TRACE("Leaving squashfs_read_super\n"); ++ return 0; ++ ++failed_mount: ++ kfree(msblk->fragment_index); ++ kfree(msblk->fragment); ++ kfree(msblk->uid); ++ kfree(msblk->read_page); ++ kfree(msblk->read_data); ++ kfree(msblk->block_cache); ++ kfree(msblk->fragment_index_2); ++ kfree(s->s_fs_info); ++ s->s_fs_info = NULL; ++ return -EINVAL; ++ ++failure: ++ return -ENOMEM; ++} ++ ++ ++static int squashfs_statfs(struct dentry *dentry, struct kstatfs *buf) ++{ ++ struct super_block *s = dentry->d_sb; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ TRACE("Entered squashfs_statfs\n"); ++ ++ buf->f_type = SQUASHFS_MAGIC; ++ buf->f_bsize = sblk->block_size; ++ buf->f_blocks = ((sblk->bytes_used - 1) >> sblk->block_log) + 1; ++ buf->f_bfree = buf->f_bavail = 0; ++ buf->f_files = sblk->inodes; ++ buf->f_ffree = 0; ++ buf->f_namelen = SQUASHFS_NAME_LEN; ++ ++ return 0; ++} ++ ++ ++static int squashfs_symlink_readpage(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ int index = page->index << PAGE_CACHE_SHIFT, length, bytes; ++ long long block = SQUASHFS_I(inode)->start_block; ++ int offset = SQUASHFS_I(inode)->offset; ++ void *pageaddr = kmap(page); ++ ++ TRACE("Entered squashfs_symlink_readpage, page index %ld, start block " ++ "%llx, offset %x\n", page->index, ++ SQUASHFS_I(inode)->start_block, ++ SQUASHFS_I(inode)->offset); ++ ++ for (length = 0; length < index; length += bytes) { ++ if (!(bytes = squashfs_get_cached_block(inode->i_sb, NULL, ++ block, offset, PAGE_CACHE_SIZE, &block, ++ &offset))) { ++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, ++ offset); ++ goto skip_read; ++ } ++ } ++ ++ if (length != index) { ++ ERROR("(squashfs_symlink_readpage) length != index\n"); ++ bytes = 0; ++ goto skip_read; ++ } ++ ++ bytes = (i_size_read(inode) - length) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : ++ i_size_read(inode) - length; ++ ++ if (!(bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, ++ offset, bytes, &block, &offset))) ++ ERROR("Unable to read symbolic link [%llx:%x]\n", block, offset); ++ ++skip_read: ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ return 0; ++} ++ ++ ++struct meta_index *locate_meta_index(struct inode *inode, int index, int offset) ++{ ++ struct meta_index *meta = NULL; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ int i; ++ ++ down(&msblk->meta_index_mutex); ++ ++ TRACE("locate_meta_index: index %d, offset %d\n", index, offset); ++ ++ if(msblk->meta_index == NULL) ++ goto not_allocated; ++ ++ for (i = 0; i < SQUASHFS_META_NUMBER; i ++) ++ if (msblk->meta_index[i].inode_number == inode->i_ino && ++ msblk->meta_index[i].offset >= offset && ++ msblk->meta_index[i].offset <= index && ++ msblk->meta_index[i].locked == 0) { ++ TRACE("locate_meta_index: entry %d, offset %d\n", i, ++ msblk->meta_index[i].offset); ++ meta = &msblk->meta_index[i]; ++ offset = meta->offset; ++ } ++ ++ if (meta) ++ meta->locked = 1; ++ ++not_allocated: ++ up(&msblk->meta_index_mutex); ++ ++ return meta; ++} ++ ++ ++struct meta_index *empty_meta_index(struct inode *inode, int offset, int skip) ++{ ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct meta_index *meta = NULL; ++ int i; ++ ++ down(&msblk->meta_index_mutex); ++ ++ TRACE("empty_meta_index: offset %d, skip %d\n", offset, skip); ++ ++ if(msblk->meta_index == NULL) { ++ if (!(msblk->meta_index = kmalloc(sizeof(struct meta_index) * ++ SQUASHFS_META_NUMBER, GFP_KERNEL))) { ++ ERROR("Failed to allocate meta_index\n"); ++ goto failed; ++ } ++ for(i = 0; i < SQUASHFS_META_NUMBER; i++) { ++ msblk->meta_index[i].inode_number = 0; ++ msblk->meta_index[i].locked = 0; ++ } ++ msblk->next_meta_index = 0; ++ } ++ ++ for(i = SQUASHFS_META_NUMBER; i && ++ msblk->meta_index[msblk->next_meta_index].locked; i --) ++ msblk->next_meta_index = (msblk->next_meta_index + 1) % ++ SQUASHFS_META_NUMBER; ++ ++ if(i == 0) { ++ TRACE("empty_meta_index: failed!\n"); ++ goto failed; ++ } ++ ++ TRACE("empty_meta_index: returned meta entry %d, %p\n", ++ msblk->next_meta_index, ++ &msblk->meta_index[msblk->next_meta_index]); ++ ++ meta = &msblk->meta_index[msblk->next_meta_index]; ++ msblk->next_meta_index = (msblk->next_meta_index + 1) % ++ SQUASHFS_META_NUMBER; ++ ++ meta->inode_number = inode->i_ino; ++ meta->offset = offset; ++ meta->skip = skip; ++ meta->entries = 0; ++ meta->locked = 1; ++ ++failed: ++ up(&msblk->meta_index_mutex); ++ return meta; ++} ++ ++ ++void release_meta_index(struct inode *inode, struct meta_index *meta) ++{ ++ meta->locked = 0; ++} ++ ++ ++static int read_block_index(struct super_block *s, int blocks, char *block_list, ++ long long *start_block, int *offset) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ unsigned int *block_listp; ++ int block = 0; ++ ++ if (msblk->swap) { ++ char sblock_list[blocks << 2]; ++ ++ if (!squashfs_get_cached_block(s, sblock_list, *start_block, ++ *offset, blocks << 2, start_block, offset)) { ++ ERROR("Unable to read block list [%llx:%x]\n", ++ *start_block, *offset); ++ goto failure; ++ } ++ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), ++ ((unsigned int *)sblock_list), blocks); ++ } else ++ if (!squashfs_get_cached_block(s, block_list, *start_block, ++ *offset, blocks << 2, start_block, offset)) { ++ ERROR("Unable to read block list [%llx:%x]\n", ++ *start_block, *offset); ++ goto failure; ++ } ++ ++ for (block_listp = (unsigned int *) block_list; blocks; ++ block_listp++, blocks --) ++ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp); ++ ++ return block; ++ ++failure: ++ return -1; ++} ++ ++ ++#define SIZE 256 ++ ++static inline int calculate_skip(int blocks) { ++ int skip = (blocks - 1) / ((SQUASHFS_SLOTS * SQUASHFS_META_ENTRIES + 1) * SQUASHFS_META_INDEXES); ++ return skip >= 7 ? 7 : skip + 1; ++} ++ ++ ++static int get_meta_index(struct inode *inode, int index, ++ long long *index_block, int *index_offset, ++ long long *data_block, char *block_list) ++{ ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int skip = calculate_skip(i_size_read(inode) >> sblk->block_log); ++ int offset = 0; ++ struct meta_index *meta; ++ struct meta_entry *meta_entry; ++ long long cur_index_block = SQUASHFS_I(inode)->u.s1.block_list_start; ++ int cur_offset = SQUASHFS_I(inode)->offset; ++ long long cur_data_block = SQUASHFS_I(inode)->start_block; ++ int i; ++ ++ index /= SQUASHFS_META_INDEXES * skip; ++ ++ while ( offset < index ) { ++ meta = locate_meta_index(inode, index, offset + 1); ++ ++ if (meta == NULL) { ++ if ((meta = empty_meta_index(inode, offset + 1, ++ skip)) == NULL) ++ goto all_done; ++ } else { ++ offset = index < meta->offset + meta->entries ? index : ++ meta->offset + meta->entries - 1; ++ meta_entry = &meta->meta_entry[offset - meta->offset]; ++ cur_index_block = meta_entry->index_block + sblk->inode_table_start; ++ cur_offset = meta_entry->offset; ++ cur_data_block = meta_entry->data_block; ++ TRACE("get_meta_index: offset %d, meta->offset %d, " ++ "meta->entries %d\n", offset, meta->offset, ++ meta->entries); ++ TRACE("get_meta_index: index_block 0x%llx, offset 0x%x" ++ " data_block 0x%llx\n", cur_index_block, ++ cur_offset, cur_data_block); ++ } ++ ++ for (i = meta->offset + meta->entries; i <= index && ++ i < meta->offset + SQUASHFS_META_ENTRIES; i++) { ++ int blocks = skip * SQUASHFS_META_INDEXES; ++ ++ while (blocks) { ++ int block = blocks > (SIZE >> 2) ? (SIZE >> 2) : ++ blocks; ++ int res = read_block_index(inode->i_sb, block, ++ block_list, &cur_index_block, ++ &cur_offset); ++ ++ if (res == -1) ++ goto failed; ++ ++ cur_data_block += res; ++ blocks -= block; ++ } ++ ++ meta_entry = &meta->meta_entry[i - meta->offset]; ++ meta_entry->index_block = cur_index_block - sblk->inode_table_start; ++ meta_entry->offset = cur_offset; ++ meta_entry->data_block = cur_data_block; ++ meta->entries ++; ++ offset ++; ++ } ++ ++ TRACE("get_meta_index: meta->offset %d, meta->entries %d\n", ++ meta->offset, meta->entries); ++ ++ release_meta_index(inode, meta); ++ } ++ ++all_done: ++ *index_block = cur_index_block; ++ *index_offset = cur_offset; ++ *data_block = cur_data_block; ++ ++ return offset * SQUASHFS_META_INDEXES * skip; ++ ++failed: ++ release_meta_index(inode, meta); ++ return -1; ++} ++ ++ ++static long long read_blocklist(struct inode *inode, int index, ++ int readahead_blks, char *block_list, ++ unsigned short **block_p, unsigned int *bsize) ++{ ++ long long block_ptr; ++ int offset; ++ long long block; ++ int res = get_meta_index(inode, index, &block_ptr, &offset, &block, ++ block_list); ++ ++ TRACE("read_blocklist: res %d, index %d, block_ptr 0x%llx, offset" ++ " 0x%x, block 0x%llx\n", res, index, block_ptr, offset, ++ block); ++ ++ if(res == -1) ++ goto failure; ++ ++ index -= res; ++ ++ while ( index ) { ++ int blocks = index > (SIZE >> 2) ? (SIZE >> 2) : index; ++ int res = read_block_index(inode->i_sb, blocks, block_list, ++ &block_ptr, &offset); ++ if (res == -1) ++ goto failure; ++ block += res; ++ index -= blocks; ++ } ++ ++ if (read_block_index(inode->i_sb, 1, block_list, ++ &block_ptr, &offset) == -1) ++ goto failure; ++ *bsize = *((unsigned int *) block_list); ++ ++ return block; ++ ++failure: ++ return 0; ++} ++ ++ ++static int squashfs_readpage(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned char block_list[SIZE]; ++ long long block; ++ unsigned int bsize, i = 0, bytes = 0, byte_offset = 0; ++ int index = page->index >> (sblk->block_log - PAGE_CACHE_SHIFT); ++ void *pageaddr; ++ struct squashfs_fragment_cache *fragment = NULL; ++ char *data_ptr = msblk->read_page; ++ ++ int mask = (1 << (sblk->block_log - PAGE_CACHE_SHIFT)) - 1; ++ int start_index = page->index & ~mask; ++ int end_index = start_index | mask; ++ ++ TRACE("Entered squashfs_readpage, page index %lx, start block %llx\n", ++ page->index, ++ SQUASHFS_I(inode)->start_block); ++ ++ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> ++ PAGE_CACHE_SHIFT)) ++ goto skip_read; ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || index < (i_size_read(inode) >> ++ sblk->block_log)) { ++ if ((block = (msblk->read_blocklist)(inode, index, 1, ++ block_list, NULL, &bsize)) == 0) ++ goto skip_read; ++ ++ down(&msblk->read_page_mutex); ++ ++ if (!(bytes = squashfs_read_data(inode->i_sb, msblk->read_page, ++ block, bsize, NULL))) { ++ ERROR("Unable to read page, block %llx, size %x\n", block, ++ bsize); ++ up(&msblk->read_page_mutex); ++ goto skip_read; ++ } ++ } else { ++ if ((fragment = get_cached_fragment(inode->i_sb, ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ SQUASHFS_I(inode)->u.s1.fragment_size)) ++ == NULL) { ++ ERROR("Unable to read page, block %llx, size %x\n", ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ (int) SQUASHFS_I(inode)-> ++ u.s1.fragment_size); ++ goto skip_read; ++ } ++ bytes = SQUASHFS_I(inode)->u.s1.fragment_offset + ++ (i_size_read(inode) & (sblk->block_size ++ - 1)); ++ byte_offset = SQUASHFS_I(inode)->u.s1.fragment_offset; ++ data_ptr = fragment->data; ++ } ++ ++ for (i = start_index; i <= end_index && byte_offset < bytes; ++ i++, byte_offset += PAGE_CACHE_SIZE) { ++ struct page *push_page; ++ int available_bytes = (bytes - byte_offset) > PAGE_CACHE_SIZE ? ++ PAGE_CACHE_SIZE : bytes - byte_offset; ++ ++ TRACE("bytes %d, i %d, byte_offset %d, available_bytes %d\n", ++ bytes, i, byte_offset, available_bytes); ++ ++ if (i == page->index) { ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memcpy(pageaddr, data_ptr + byte_offset, ++ available_bytes); ++ memset(pageaddr + available_bytes, 0, ++ PAGE_CACHE_SIZE - available_bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ } else if ((push_page = ++ grab_cache_page_nowait(page->mapping, i))) { ++ pageaddr = kmap_atomic(push_page, KM_USER0); ++ ++ memcpy(pageaddr, data_ptr + byte_offset, ++ available_bytes); ++ memset(pageaddr + available_bytes, 0, ++ PAGE_CACHE_SIZE - available_bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(push_page); ++ SetPageUptodate(push_page); ++ unlock_page(push_page); ++ page_cache_release(push_page); ++ } ++ } ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || index < (i_size_read(inode) >> ++ sblk->block_log)) ++ up(&msblk->read_page_mutex); ++ else ++ release_cached_fragment(msblk, fragment); ++ ++ return 0; ++ ++skip_read: ++ pageaddr = kmap_atomic(page, KM_USER0); ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ return 0; ++} ++ ++ ++static int squashfs_readpage4K(struct file *file, struct page *page) ++{ ++ struct inode *inode = page->mapping->host; ++ struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned char block_list[SIZE]; ++ long long block; ++ unsigned int bsize, bytes = 0; ++ void *pageaddr; ++ ++ TRACE("Entered squashfs_readpage4K, page index %lx, start block %llx\n", ++ page->index, ++ SQUASHFS_I(inode)->start_block); ++ ++ if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >> ++ PAGE_CACHE_SHIFT)) { ++ pageaddr = kmap_atomic(page, KM_USER0); ++ goto skip_read; ++ } ++ ++ if (SQUASHFS_I(inode)->u.s1.fragment_start_block == SQUASHFS_INVALID_BLK ++ || page->index < (i_size_read(inode) >> ++ sblk->block_log)) { ++ block = (msblk->read_blocklist)(inode, page->index, 1, ++ block_list, NULL, &bsize); ++ ++ down(&msblk->read_page_mutex); ++ bytes = squashfs_read_data(inode->i_sb, msblk->read_page, block, ++ bsize, NULL); ++ pageaddr = kmap_atomic(page, KM_USER0); ++ if (bytes) ++ memcpy(pageaddr, msblk->read_page, bytes); ++ else ++ ERROR("Unable to read page, block %llx, size %x\n", ++ block, bsize); ++ up(&msblk->read_page_mutex); ++ } else { ++ struct squashfs_fragment_cache *fragment = ++ get_cached_fragment(inode->i_sb, ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, ++ SQUASHFS_I(inode)-> u.s1.fragment_size); ++ pageaddr = kmap_atomic(page, KM_USER0); ++ if (fragment) { ++ bytes = i_size_read(inode) & (sblk->block_size - 1); ++ memcpy(pageaddr, fragment->data + SQUASHFS_I(inode)-> ++ u.s1.fragment_offset, bytes); ++ release_cached_fragment(msblk, fragment); ++ } else ++ ERROR("Unable to read page, block %llx, size %x\n", ++ SQUASHFS_I(inode)-> ++ u.s1.fragment_start_block, (int) ++ SQUASHFS_I(inode)-> u.s1.fragment_size); ++ } ++ ++skip_read: ++ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes); ++ kunmap_atomic(pageaddr, KM_USER0); ++ flush_dcache_page(page); ++ SetPageUptodate(page); ++ unlock_page(page); ++ ++ return 0; ++} ++ ++ ++static int get_dir_index_using_offset(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ long long f_pos) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index index; ++ ++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", ++ i_count, (unsigned int) f_pos); ++ ++ f_pos =- 3; ++ if (f_pos == 0) ++ goto finish; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX(&index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) &index, ++ index_start, index_offset, ++ sizeof(index), &index_start, ++ &index_offset); ++ ++ if (index.index > f_pos) ++ break; ++ ++ squashfs_get_cached_block(s, NULL, index_start, index_offset, ++ index.size + 1, &index_start, ++ &index_offset); ++ ++ length = index.index; ++ *next_block = index.start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ ++finish: ++ return length + 3; ++} ++ ++ ++static int get_dir_index_using_name(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ const char *name, int size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ char buffer[sizeof(struct squashfs_dir_index) + SQUASHFS_NAME_LEN + 1]; ++ struct squashfs_dir_index *index = (struct squashfs_dir_index *) buffer; ++ char str[SQUASHFS_NAME_LEN + 1]; ++ ++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); ++ ++ strncpy(str, name, size); ++ str[size] = '\0'; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX(index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) index, ++ index_start, index_offset, ++ sizeof(struct squashfs_dir_index), ++ &index_start, &index_offset); ++ ++ squashfs_get_cached_block(s, index->name, index_start, ++ index_offset, index->size + 1, ++ &index_start, &index_offset); ++ ++ index->name[index->size + 1] = '\0'; ++ ++ if (strcmp(index->name, str) > 0) ++ break; ++ ++ length = index->index; ++ *next_block = index->start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ return length + 3; ++} ++ ++ ++static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir) ++{ ++ struct inode *i = file->f_dentry->d_inode; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, dirs_read = 0, ++ dir_count; ++ struct squashfs_dir_header dirh; ++ char buffer[sizeof(struct squashfs_dir_entry) + SQUASHFS_NAME_LEN + 1]; ++ struct squashfs_dir_entry *dire = (struct squashfs_dir_entry *) buffer; ++ ++ TRACE("Entered squashfs_readdir [%llx:%x]\n", next_block, next_offset); ++ ++ while(file->f_pos < 3) { ++ char *name; ++ int size, i_ino; ++ ++ if(file->f_pos == 0) { ++ name = "."; ++ size = 1; ++ i_ino = i->i_ino; ++ } else { ++ name = ".."; ++ size = 2; ++ i_ino = SQUASHFS_I(i)->u.s2.parent_inode; ++ } ++ TRACE("Calling filldir(%x, %s, %d, %d, %d, %d)\n", ++ (unsigned int) dirent, name, size, (int) ++ file->f_pos, i_ino, ++ squashfs_filetype_table[1]); ++ ++ if (filldir(dirent, name, size, ++ file->f_pos, i_ino, ++ squashfs_filetype_table[1]) < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos += size; ++ dirs_read++; ++ } ++ ++ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, ++ file->f_pos); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header sdirh; ++ ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block, next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block, next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, ++ dire->size + 1, &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (file->f_pos >= length) ++ continue; ++ ++ dire->name[dire->size + 1] = '\0'; ++ ++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d, %d)\n", ++ (unsigned int) dirent, dire->name, ++ dire->size + 1, (int) file->f_pos, ++ dirh.start_block, dire->offset, ++ dirh.inode_number + dire->inode_number, ++ squashfs_filetype_table[dire->type]); ++ ++ if (filldir(dirent, dire->name, dire->size + 1, ++ file->f_pos, ++ dirh.inode_number + dire->inode_number, ++ squashfs_filetype_table[dire->type]) ++ < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos = length; ++ dirs_read++; ++ } ++ } ++ ++finish: ++ return dirs_read; ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ return 0; ++} ++ ++ ++static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ const unsigned char *name = dentry->d_name.name; ++ int len = dentry->d_name.len; ++ struct inode *inode = NULL; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header dirh; ++ char buffer[sizeof(struct squashfs_dir_entry) + SQUASHFS_NAME_LEN]; ++ struct squashfs_dir_entry *dire = (struct squashfs_dir_entry *) buffer; ++ ++ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); ++ ++ if (len > SQUASHFS_NAME_LEN) ++ goto exit_loop; ++ ++ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, name, ++ len); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header sdirh; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block,next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block,next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, dire->size + 1, ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (name[0] < dire->name[0]) ++ goto exit_loop; ++ ++ if ((len == dire->size + 1) && !strncmp(name, ++ dire->name, len)) { ++ squashfs_inode_t ino = ++ SQUASHFS_MKINODE(dirh.start_block, ++ dire->offset); ++ ++ TRACE("calling squashfs_iget for directory " ++ "entry %s, inode %x:%x, %d\n", name, ++ dirh.start_block, dire->offset, ++ dirh.inode_number + dire->inode_number); ++ ++ inode = (msblk->iget)(i->i_sb, ino); ++ ++ goto exit_loop; ++ } ++ } ++ } ++ ++exit_loop: ++ d_add(dentry, inode); ++ return ERR_PTR(0); ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ goto exit_loop; ++} ++ ++ ++static void squashfs_put_super(struct super_block *s) ++{ ++ int i; ++ ++ if (s->s_fs_info) { ++ struct squashfs_sb_info *sbi = s->s_fs_info; ++ if (sbi->block_cache) ++ for (i = 0; i < SQUASHFS_CACHED_BLKS; i++) ++ if (sbi->block_cache[i].block != ++ SQUASHFS_INVALID_BLK) ++ kfree(sbi->block_cache[i].data); ++ if (sbi->fragment) ++ for (i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) ++ SQUASHFS_FREE(sbi->fragment[i].data); ++ kfree(sbi->fragment); ++ kfree(sbi->block_cache); ++ kfree(sbi->read_data); ++ kfree(sbi->read_page); ++ kfree(sbi->uid); ++ kfree(sbi->fragment_index); ++ kfree(sbi->fragment_index_2); ++ kfree(sbi->meta_index); ++ kfree(s->s_fs_info); ++ s->s_fs_info = NULL; ++ } ++} ++ ++ ++static int squashfs_get_sb(struct file_system_type *fs_type, ++ int flags, const char *dev_name, void *data, struct vfsmount *mnt) ++{ ++ return get_sb_bdev(fs_type, flags, dev_name, data, squashfs_fill_super, mnt); ++} ++ ++ ++static int __init init_squashfs_fs(void) ++{ ++ int err = init_inodecache(); ++ if (err) ++ goto out; ++ ++ printk(KERN_INFO "squashfs: version 3.0 (2006/03/15) " ++ "Phillip Lougher\n"); ++ ++ if (!(stream.workspace = vmalloc(zlib_inflate_workspacesize()))) { ++ ERROR("Failed to allocate zlib workspace\n"); ++ destroy_inodecache(); ++ err = -ENOMEM; ++ goto out; ++ } ++ ++ if ((err = register_filesystem(&squashfs_fs_type))) { ++ vfree(stream.workspace); ++ destroy_inodecache(); ++ } ++ ++out: ++ return err; ++} ++ ++ ++static void __exit exit_squashfs_fs(void) ++{ ++ vfree(stream.workspace); ++ unregister_filesystem(&squashfs_fs_type); ++ destroy_inodecache(); ++} ++ ++ ++static kmem_cache_t * squashfs_inode_cachep; ++ ++ ++static struct inode *squashfs_alloc_inode(struct super_block *sb) ++{ ++ struct squashfs_inode_info *ei; ++ ei = kmem_cache_alloc(squashfs_inode_cachep, GFP_KERNEL); ++ if (!ei) ++ return NULL; ++ return &ei->vfs_inode; ++} ++ ++ ++static void squashfs_destroy_inode(struct inode *inode) ++{ ++ kmem_cache_free(squashfs_inode_cachep, SQUASHFS_I(inode)); ++} ++ ++ ++static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) ++{ ++ struct squashfs_inode_info *ei = foo; ++ ++ if ((flags & (SLAB_CTOR_VERIFY|SLAB_CTOR_CONSTRUCTOR)) == ++ SLAB_CTOR_CONSTRUCTOR) ++ inode_init_once(&ei->vfs_inode); ++} ++ ++ ++static int __init init_inodecache(void) ++{ ++ squashfs_inode_cachep = kmem_cache_create("squashfs_inode_cache", ++ sizeof(struct squashfs_inode_info), ++ 0, SLAB_HWCACHE_ALIGN|SLAB_RECLAIM_ACCOUNT, ++ init_once, NULL); ++ if (squashfs_inode_cachep == NULL) ++ return -ENOMEM; ++ return 0; ++} ++ ++ ++static void destroy_inodecache(void) ++{ ++ kmem_cache_destroy(squashfs_inode_cachep); ++} ++ ++ ++module_init(init_squashfs_fs); ++module_exit(exit_squashfs_fs); ++MODULE_DESCRIPTION("squashfs, a compressed read-only filesystem"); ++MODULE_AUTHOR("Phillip Lougher <phillip@lougher.org.uk>"); +Index: git/fs/squashfs/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/fs/squashfs/Makefile 2006-10-31 21:26:45.000000000 +0000 +@@ -0,0 +1,7 @@ ++# ++# Makefile for the linux squashfs routines. ++# ++ ++obj-$(CONFIG_SQUASHFS) += squashfs.o ++squashfs-y += inode.o ++squashfs-y += squashfs2_0.o +Index: git/fs/squashfs/squashfs2_0.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/fs/squashfs/squashfs2_0.c 2006-11-01 18:01:49.000000000 +0000 +@@ -0,0 +1,757 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs2_0.c ++ */ ++ ++#include <linux/types.h> ++#include <linux/squashfs_fs.h> ++#include <linux/module.h> ++#include <linux/errno.h> ++#include <linux/slab.h> ++#include <linux/fs.h> ++#include <linux/smp_lock.h> ++#include <linux/slab.h> ++#include <linux/squashfs_fs_sb.h> ++#include <linux/squashfs_fs_i.h> ++#include <linux/buffer_head.h> ++#include <linux/vfs.h> ++#include <linux/init.h> ++#include <linux/dcache.h> ++#include <linux/wait.h> ++#include <linux/zlib.h> ++#include <linux/blkdev.h> ++#include <linux/vmalloc.h> ++#include <asm/uaccess.h> ++#include <asm/semaphore.h> ++ ++#include "squashfs.h" ++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir); ++static struct dentry *squashfs_lookup_2(struct inode *, struct dentry *, ++ struct nameidata *); ++ ++static struct file_operations squashfs_dir_ops_2 = { ++ .read = generic_read_dir, ++ .readdir = squashfs_readdir_2 ++}; ++ ++static struct inode_operations squashfs_dir_inode_ops_2 = { ++ .lookup = squashfs_lookup_2 ++}; ++ ++static unsigned char squashfs_filetype_table[] = { ++ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK ++}; ++ ++static int read_fragment_index_table_2(struct super_block *s) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ if (!(msblk->fragment_index_2 = kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES_2 ++ (sblk->fragments), GFP_KERNEL))) { ++ ERROR("Failed to allocate uid/gid table\n"); ++ return 0; ++ } ++ ++ if (SQUASHFS_FRAGMENT_INDEX_BYTES_2(sblk->fragments) && ++ !squashfs_read_data(s, (char *) ++ msblk->fragment_index_2, ++ sblk->fragment_table_start, ++ SQUASHFS_FRAGMENT_INDEX_BYTES_2 ++ (sblk->fragments) | ++ SQUASHFS_COMPRESSED_BIT_BLOCK, NULL)) { ++ ERROR("unable to read fragment index table\n"); ++ return 0; ++ } ++ ++ if (msblk->swap) { ++ int i; ++ unsigned int fragment; ++ ++ for (i = 0; i < SQUASHFS_FRAGMENT_INDEXES_2(sblk->fragments); ++ i++) { ++ SQUASHFS_SWAP_FRAGMENT_INDEXES_2((&fragment), ++ &msblk->fragment_index_2[i], 1); ++ msblk->fragment_index_2[i] = fragment; ++ } ++ } ++ ++ return 1; ++} ++ ++ ++static int get_fragment_location_2(struct super_block *s, unsigned int fragment, ++ long long *fragment_start_block, ++ unsigned int *fragment_size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ long long start_block = ++ msblk->fragment_index_2[SQUASHFS_FRAGMENT_INDEX_2(fragment)]; ++ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET_2(fragment); ++ struct squashfs_fragment_entry_2 fragment_entry; ++ ++ if (msblk->swap) { ++ struct squashfs_fragment_entry_2 sfragment_entry; ++ ++ if (!squashfs_get_cached_block(s, (char *) &sfragment_entry, ++ start_block, offset, ++ sizeof(sfragment_entry), &start_block, ++ &offset)) ++ goto out; ++ SQUASHFS_SWAP_FRAGMENT_ENTRY_2(&fragment_entry, &sfragment_entry); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) &fragment_entry, ++ start_block, offset, ++ sizeof(fragment_entry), &start_block, ++ &offset)) ++ goto out; ++ ++ *fragment_start_block = fragment_entry.start_block; ++ *fragment_size = fragment_entry.size; ++ ++ return 1; ++ ++out: ++ return 0; ++} ++ ++ ++static struct inode *squashfs_new_inode(struct super_block *s, ++ struct squashfs_base_inode_header_2 *inodeb, unsigned int ino) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ struct inode *i = new_inode(s); ++ ++ if (i) { ++ i->i_ino = ino; ++ i->i_mtime.tv_sec = sblk->mkfs_time; ++ i->i_atime.tv_sec = sblk->mkfs_time; ++ i->i_ctime.tv_sec = sblk->mkfs_time; ++ i->i_uid = msblk->uid[inodeb->uid]; ++ i->i_mode = inodeb->mode; ++ i->i_nlink = 1; ++ i->i_size = 0; ++ if (inodeb->guid == SQUASHFS_GUIDS) ++ i->i_gid = i->i_uid; ++ else ++ i->i_gid = msblk->guid[inodeb->guid]; ++ } ++ ++ return i; ++} ++ ++ ++static struct inode *squashfs_iget_2(struct super_block *s, squashfs_inode_t inode) ++{ ++ struct inode *i; ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ unsigned int block = SQUASHFS_INODE_BLK(inode) + ++ sblk->inode_table_start; ++ unsigned int offset = SQUASHFS_INODE_OFFSET(inode); ++ unsigned int ino = SQUASHFS_MK_VFS_INODE(block ++ - sblk->inode_table_start, offset); ++ long long next_block; ++ unsigned int next_offset; ++ union squashfs_inode_header_2 id, sid; ++ struct squashfs_base_inode_header_2 *inodeb = &id.base, ++ *sinodeb = &sid.base; ++ ++ TRACE("Entered squashfs_iget\n"); ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) sinodeb, block, ++ offset, sizeof(*sinodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(inodeb, sinodeb, ++ sizeof(*sinodeb)); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) inodeb, block, ++ offset, sizeof(*inodeb), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ switch(inodeb->inode_type) { ++ case SQUASHFS_FILE_TYPE: { ++ struct squashfs_reg_inode_header_2 *inodep = &id.reg; ++ struct squashfs_reg_inode_header_2 *sinodep = &sid.reg; ++ long long frag_blk; ++ unsigned int frag_size; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_REG_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ frag_blk = SQUASHFS_INVALID_BLK; ++ if (inodep->fragment != SQUASHFS_INVALID_FRAG && ++ !get_fragment_location_2(s, ++ inodep->fragment, &frag_blk, &frag_size)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_size = inodep->file_size; ++ i->i_fop = &generic_ro_fops; ++ i->i_mode |= S_IFREG; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ i->i_blocks = ((i->i_size - 1) >> 9) + 1; ++ SQUASHFS_I(i)->u.s1.fragment_start_block = frag_blk; ++ SQUASHFS_I(i)->u.s1.fragment_size = frag_size; ++ SQUASHFS_I(i)->u.s1.fragment_offset = inodep->offset; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->u.s1.block_list_start = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ if (sblk->block_size > 4096) ++ i->i_data.a_ops = &squashfs_aops; ++ else ++ i->i_data.a_ops = &squashfs_aops_4K; ++ ++ TRACE("File inode %x:%x, start_block %x, " ++ "block_list_start %llx, offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, next_block, ++ next_offset); ++ break; ++ } ++ case SQUASHFS_DIR_TYPE: { ++ struct squashfs_dir_inode_header_2 *inodep = &id.dir; ++ struct squashfs_dir_inode_header_2 *sinodep = &sid.dir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DIR_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops_2; ++ i->i_fop = &squashfs_dir_ops_2; ++ i->i_mode |= S_IFDIR; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = 0; ++ SQUASHFS_I(i)->u.s2.parent_inode = 0; ++ ++ TRACE("Directory inode %x:%x, start_block %x, offset " ++ "%x\n", SQUASHFS_INODE_BLK(inode), ++ offset, inodep->start_block, ++ inodep->offset); ++ break; ++ } ++ case SQUASHFS_LDIR_TYPE: { ++ struct squashfs_ldir_inode_header_2 *inodep = &id.ldir; ++ struct squashfs_ldir_inode_header_2 *sinodep = &sid.ldir; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_LDIR_INODE_HEADER_2(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_size = inodep->file_size; ++ i->i_op = &squashfs_dir_inode_ops_2; ++ i->i_fop = &squashfs_dir_ops_2; ++ i->i_mode |= S_IFDIR; ++ i->i_mtime.tv_sec = inodep->mtime; ++ i->i_atime.tv_sec = inodep->mtime; ++ i->i_ctime.tv_sec = inodep->mtime; ++ SQUASHFS_I(i)->start_block = inodep->start_block; ++ SQUASHFS_I(i)->offset = inodep->offset; ++ SQUASHFS_I(i)->u.s2.directory_index_start = next_block; ++ SQUASHFS_I(i)->u.s2.directory_index_offset = ++ next_offset; ++ SQUASHFS_I(i)->u.s2.directory_index_count = ++ inodep->i_count; ++ SQUASHFS_I(i)->u.s2.parent_inode = 0; ++ ++ TRACE("Long directory inode %x:%x, start_block %x, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->start_block, inodep->offset); ++ break; ++ } ++ case SQUASHFS_SYMLINK_TYPE: { ++ struct squashfs_symlink_inode_header_2 *inodep = ++ &id.symlink; ++ struct squashfs_symlink_inode_header_2 *sinodep = ++ &sid.symlink; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(inodep, ++ sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_size = inodep->symlink_size; ++ i->i_op = &page_symlink_inode_operations; ++ i->i_data.a_ops = &squashfs_symlink_aops; ++ i->i_mode |= S_IFLNK; ++ SQUASHFS_I(i)->start_block = next_block; ++ SQUASHFS_I(i)->offset = next_offset; ++ ++ TRACE("Symbolic link inode %x:%x, start_block %llx, " ++ "offset %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ next_block, next_offset); ++ break; ++ } ++ case SQUASHFS_BLKDEV_TYPE: ++ case SQUASHFS_CHRDEV_TYPE: { ++ struct squashfs_dev_inode_header_2 *inodep = &id.dev; ++ struct squashfs_dev_inode_header_2 *sinodep = &sid.dev; ++ ++ if (msblk->swap) { ++ if (!squashfs_get_cached_block(s, (char *) ++ sinodep, block, offset, ++ sizeof(*sinodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ SQUASHFS_SWAP_DEV_INODE_HEADER_2(inodep, sinodep); ++ } else ++ if (!squashfs_get_cached_block(s, (char *) ++ inodep, block, offset, ++ sizeof(*inodep), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_mode |= (inodeb->inode_type == ++ SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : ++ S_IFBLK; ++ init_special_inode(i, i->i_mode, ++ old_decode_dev(inodep->rdev)); ++ ++ TRACE("Device inode %x:%x, rdev %x\n", ++ SQUASHFS_INODE_BLK(inode), offset, ++ inodep->rdev); ++ break; ++ } ++ case SQUASHFS_FIFO_TYPE: ++ case SQUASHFS_SOCKET_TYPE: { ++ if ((i = squashfs_new_inode(s, inodeb, ino)) == NULL) ++ goto failed_read1; ++ ++ i->i_mode |= (inodeb->inode_type == SQUASHFS_FIFO_TYPE) ++ ? S_IFIFO : S_IFSOCK; ++ init_special_inode(i, i->i_mode, 0); ++ break; ++ } ++ default: ++ ERROR("Unknown inode type %d in squashfs_iget!\n", ++ inodeb->inode_type); ++ goto failed_read1; ++ } ++ ++ insert_inode_hash(i); ++ return i; ++ ++failed_read: ++ ERROR("Unable to read inode [%x:%x]\n", block, offset); ++ ++failed_read1: ++ return NULL; ++} ++ ++ ++static int get_dir_index_using_offset(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ long long f_pos) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ struct squashfs_dir_index_2 index; ++ ++ TRACE("Entered get_dir_index_using_offset, i_count %d, f_pos %d\n", ++ i_count, (unsigned int) f_pos); ++ ++ if (f_pos == 0) ++ goto finish; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index_2 sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX_2(&index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) &index, ++ index_start, index_offset, ++ sizeof(index), &index_start, ++ &index_offset); ++ ++ if (index.index > f_pos) ++ break; ++ ++ squashfs_get_cached_block(s, NULL, index_start, index_offset, ++ index.size + 1, &index_start, ++ &index_offset); ++ ++ length = index.index; ++ *next_block = index.start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ ++finish: ++ return length; ++} ++ ++ ++static int get_dir_index_using_name(struct super_block *s, long long ++ *next_block, unsigned int *next_offset, ++ long long index_start, ++ unsigned int index_offset, int i_count, ++ const char *name, int size) ++{ ++ struct squashfs_sb_info *msblk = s->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ int i, length = 0; ++ char buffer[sizeof(struct squashfs_dir_index_2) + SQUASHFS_NAME_LEN + 1]; ++ struct squashfs_dir_index_2 *index = (struct squashfs_dir_index_2 *) buffer; ++ char str[SQUASHFS_NAME_LEN + 1]; ++ ++ TRACE("Entered get_dir_index_using_name, i_count %d\n", i_count); ++ ++ strncpy(str, name, size); ++ str[size] = '\0'; ++ ++ for (i = 0; i < i_count; i++) { ++ if (msblk->swap) { ++ struct squashfs_dir_index_2 sindex; ++ squashfs_get_cached_block(s, (char *) &sindex, ++ index_start, index_offset, ++ sizeof(sindex), &index_start, ++ &index_offset); ++ SQUASHFS_SWAP_DIR_INDEX_2(index, &sindex); ++ } else ++ squashfs_get_cached_block(s, (char *) index, ++ index_start, index_offset, ++ sizeof(struct squashfs_dir_index_2), ++ &index_start, &index_offset); ++ ++ squashfs_get_cached_block(s, index->name, index_start, ++ index_offset, index->size + 1, ++ &index_start, &index_offset); ++ ++ index->name[index->size + 1] = '\0'; ++ ++ if (strcmp(index->name, str) > 0) ++ break; ++ ++ length = index->index; ++ *next_block = index->start_block + sblk->directory_table_start; ++ } ++ ++ *next_offset = (length + *next_offset) % SQUASHFS_METADATA_SIZE; ++ return length; ++} ++ ++ ++static int squashfs_readdir_2(struct file *file, void *dirent, filldir_t filldir) ++{ ++ struct inode *i = file->f_dentry->d_inode; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, dirs_read = 0, ++ dir_count; ++ struct squashfs_dir_header_2 dirh; ++ char buffer[sizeof(struct squashfs_dir_entry_2) + SQUASHFS_NAME_LEN + 1]; ++ struct squashfs_dir_entry_2 *dire = (struct squashfs_dir_entry_2 *) buffer; ++ ++ TRACE("Entered squashfs_readdir_2 [%llx:%x]\n", next_block, next_offset); ++ ++ length = get_dir_index_using_offset(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, ++ file->f_pos); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header_2 sdirh; ++ ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry_2 sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block, next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block, next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, ++ dire->size + 1, &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (file->f_pos >= length) ++ continue; ++ ++ dire->name[dire->size + 1] = '\0'; ++ ++ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", ++ (unsigned int) dirent, dire->name, ++ dire->size + 1, (int) file->f_pos, ++ dirh.start_block, dire->offset, ++ squashfs_filetype_table[dire->type]); ++ ++ if (filldir(dirent, dire->name, dire->size + 1, ++ file->f_pos, SQUASHFS_MK_VFS_INODE( ++ dirh.start_block, dire->offset), ++ squashfs_filetype_table[dire->type]) ++ < 0) { ++ TRACE("Filldir returned less than 0\n"); ++ goto finish; ++ } ++ file->f_pos = length; ++ dirs_read++; ++ } ++ } ++ ++finish: ++ return dirs_read; ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ return 0; ++} ++ ++ ++static struct dentry *squashfs_lookup_2(struct inode *i, struct dentry *dentry, ++ struct nameidata *nd) ++{ ++ const unsigned char *name = dentry->d_name.name; ++ int len = dentry->d_name.len; ++ struct inode *inode = NULL; ++ struct squashfs_sb_info *msblk = i->i_sb->s_fs_info; ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ long long next_block = SQUASHFS_I(i)->start_block + ++ sblk->directory_table_start; ++ int next_offset = SQUASHFS_I(i)->offset, length = 0, ++ dir_count; ++ struct squashfs_dir_header_2 dirh; ++ char buffer[sizeof(struct squashfs_dir_entry_2) + SQUASHFS_NAME_LEN]; ++ struct squashfs_dir_entry_2 *dire = (struct squashfs_dir_entry_2 *) buffer; ++ int sorted = sblk->s_major == 2 && sblk->s_minor >= 1; ++ ++ TRACE("Entered squashfs_lookup [%llx:%x]\n", next_block, next_offset); ++ ++ if (len > SQUASHFS_NAME_LEN) ++ goto exit_loop; ++ ++ length = get_dir_index_using_name(i->i_sb, &next_block, &next_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_start, ++ SQUASHFS_I(i)->u.s2.directory_index_offset, ++ SQUASHFS_I(i)->u.s2.directory_index_count, name, ++ len); ++ ++ while (length < i_size_read(i)) { ++ /* read directory header */ ++ if (msblk->swap) { ++ struct squashfs_dir_header_2 sdirh; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, ++ next_block, next_offset, sizeof(sdirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdirh); ++ SQUASHFS_SWAP_DIR_HEADER_2(&dirh, &sdirh); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) &dirh, ++ next_block, next_offset, sizeof(dirh), ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(dirh); ++ } ++ ++ dir_count = dirh.count + 1; ++ while (dir_count--) { ++ if (msblk->swap) { ++ struct squashfs_dir_entry_2 sdire; ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ &sdire, next_block,next_offset, ++ sizeof(sdire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(sdire); ++ SQUASHFS_SWAP_DIR_ENTRY_2(dire, &sdire); ++ } else { ++ if (!squashfs_get_cached_block(i->i_sb, (char *) ++ dire, next_block,next_offset, ++ sizeof(*dire), &next_block, ++ &next_offset)) ++ goto failed_read; ++ ++ length += sizeof(*dire); ++ } ++ ++ if (!squashfs_get_cached_block(i->i_sb, dire->name, ++ next_block, next_offset, dire->size + 1, ++ &next_block, &next_offset)) ++ goto failed_read; ++ ++ length += dire->size + 1; ++ ++ if (sorted && name[0] < dire->name[0]) ++ goto exit_loop; ++ ++ if ((len == dire->size + 1) && !strncmp(name, ++ dire->name, len)) { ++ squashfs_inode_t ino = ++ SQUASHFS_MKINODE(dirh.start_block, ++ dire->offset); ++ ++ TRACE("calling squashfs_iget for directory " ++ "entry %s, inode %x:%x, %lld\n", name, ++ dirh.start_block, dire->offset, ino); ++ ++ inode = (msblk->iget)(i->i_sb, ino); ++ ++ goto exit_loop; ++ } ++ } ++ } ++ ++exit_loop: ++ d_add(dentry, inode); ++ return ERR_PTR(0); ++ ++failed_read: ++ ERROR("Unable to read directory block [%llx:%x]\n", next_block, ++ next_offset); ++ goto exit_loop; ++} ++ ++ ++int squashfs_2_0_supported(struct squashfs_sb_info *msblk) ++{ ++ struct squashfs_super_block *sblk = &msblk->sblk; ++ ++ msblk->iget = squashfs_iget_2; ++ msblk->read_fragment_index_table = read_fragment_index_table_2; ++ ++ sblk->bytes_used = sblk->bytes_used_2; ++ sblk->uid_start = sblk->uid_start_2; ++ sblk->guid_start = sblk->guid_start_2; ++ sblk->inode_table_start = sblk->inode_table_start_2; ++ sblk->directory_table_start = sblk->directory_table_start_2; ++ sblk->fragment_table_start = sblk->fragment_table_start_2; ++ ++ return 1; ++} +Index: git/fs/squashfs/squashfs.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/fs/squashfs/squashfs.h 2006-10-31 21:26:45.000000000 +0000 +@@ -0,0 +1,86 @@ ++/* ++ * Squashfs - a compressed read only filesystem for Linux ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs.h ++ */ ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++#undef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++#endif ++ ++#ifdef SQUASHFS_TRACE ++#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args) ++#else ++#define TRACE(s, args...) {} ++#endif ++ ++#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args) ++ ++#define SERROR(s, args...) do { \ ++ if (!silent) \ ++ printk(KERN_ERR "SQUASHFS error: "s, ## args);\ ++ } while(0) ++ ++#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args) ++ ++static inline struct squashfs_inode_info *SQUASHFS_I(struct inode *inode) ++{ ++ return list_entry(inode, struct squashfs_inode_info, vfs_inode); ++} ++ ++#if defined(CONFIG_SQUASHFS_1_0_COMPATIBILITY ) || defined(CONFIG_SQUASHFS_2_0_COMPATIBILITY) ++#define SQSH_EXTERN ++extern unsigned int squashfs_read_data(struct super_block *s, char *buffer, ++ long long index, unsigned int length, ++ long long *next_index); ++extern int squashfs_get_cached_block(struct super_block *s, char *buffer, ++ long long block, unsigned int offset, ++ int length, long long *next_block, ++ unsigned int *next_offset); ++extern void release_cached_fragment(struct squashfs_sb_info *msblk, struct ++ squashfs_fragment_cache *fragment); ++extern struct squashfs_fragment_cache *get_cached_fragment(struct super_block ++ *s, long long start_block, ++ int length); ++extern struct address_space_operations squashfs_symlink_aops; ++extern struct address_space_operations squashfs_aops; ++extern struct address_space_operations squashfs_aops_4K; ++extern struct inode_operations squashfs_dir_inode_ops; ++#else ++#define SQSH_EXTERN static ++#endif ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++extern int squashfs_1_0_supported(struct squashfs_sb_info *msblk); ++#else ++static inline int squashfs_1_0_supported(struct squashfs_sb_info *msblk) ++{ ++ return 0; ++} ++#endif ++ ++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++extern int squashfs_2_0_supported(struct squashfs_sb_info *msblk); ++#else ++static inline int squashfs_2_0_supported(struct squashfs_sb_info *msblk) ++{ ++ return 0; ++} ++#endif +Index: git/include/linux/squashfs_fs.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/include/linux/squashfs_fs.h 2006-10-31 21:26:45.000000000 +0000 +@@ -0,0 +1,911 @@ ++#ifndef SQUASHFS_FS ++#define SQUASHFS_FS ++ ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs.h ++ */ ++ ++#ifndef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++#define CONFIG_SQUASHFS_2_0_COMPATIBILITY ++#endif ++ ++#ifdef CONFIG_SQUASHFS_VMALLOC ++#define SQUASHFS_ALLOC(a) vmalloc(a) ++#define SQUASHFS_FREE(a) vfree(a) ++#else ++#define SQUASHFS_ALLOC(a) kmalloc(a, GFP_KERNEL) ++#define SQUASHFS_FREE(a) kfree(a) ++#endif ++#define SQUASHFS_CACHED_FRAGMENTS CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE ++#define SQUASHFS_MAJOR 3 ++#define SQUASHFS_MINOR 0 ++#define SQUASHFS_MAGIC 0x73717368 ++#define SQUASHFS_MAGIC_SWAP 0x68737173 ++#define SQUASHFS_START 0 ++ ++/* size of metadata (inode and directory) blocks */ ++#define SQUASHFS_METADATA_SIZE 8192 ++#define SQUASHFS_METADATA_LOG 13 ++ ++/* default size of data blocks */ ++#define SQUASHFS_FILE_SIZE 65536 ++#define SQUASHFS_FILE_LOG 16 ++ ++#define SQUASHFS_FILE_MAX_SIZE 65536 ++ ++/* Max number of uids and gids */ ++#define SQUASHFS_UIDS 256 ++#define SQUASHFS_GUIDS 255 ++ ++/* Max length of filename (not 255) */ ++#define SQUASHFS_NAME_LEN 256 ++ ++#define SQUASHFS_INVALID ((long long) 0xffffffffffff) ++#define SQUASHFS_INVALID_FRAG ((unsigned int) 0xffffffff) ++#define SQUASHFS_INVALID_BLK ((long long) -1) ++#define SQUASHFS_USED_BLK ((long long) -2) ++ ++/* Filesystem flags */ ++#define SQUASHFS_NOI 0 ++#define SQUASHFS_NOD 1 ++#define SQUASHFS_CHECK 2 ++#define SQUASHFS_NOF 3 ++#define SQUASHFS_NO_FRAG 4 ++#define SQUASHFS_ALWAYS_FRAG 5 ++#define SQUASHFS_DUPLICATE 6 ++ ++#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1) ++ ++#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOI) ++ ++#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOD) ++ ++#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NOF) ++ ++#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_NO_FRAG) ++ ++#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_ALWAYS_FRAG) ++ ++#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_DUPLICATE) ++ ++#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, \ ++ SQUASHFS_CHECK) ++ ++#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, \ ++ duplicate_checking) (noi | (nod << 1) | (check_data << 2) \ ++ | (nof << 3) | (no_frag << 4) | (always_frag << 5) | \ ++ (duplicate_checking << 6)) ++ ++/* Max number of types and file types */ ++#define SQUASHFS_DIR_TYPE 1 ++#define SQUASHFS_FILE_TYPE 2 ++#define SQUASHFS_SYMLINK_TYPE 3 ++#define SQUASHFS_BLKDEV_TYPE 4 ++#define SQUASHFS_CHRDEV_TYPE 5 ++#define SQUASHFS_FIFO_TYPE 6 ++#define SQUASHFS_SOCKET_TYPE 7 ++#define SQUASHFS_LDIR_TYPE 8 ++#define SQUASHFS_LREG_TYPE 9 ++ ++/* 1.0 filesystem type definitions */ ++#define SQUASHFS_TYPES 5 ++#define SQUASHFS_IPC_TYPE 0 ++ ++/* Flag whether block is compressed or uncompressed, bit is set if block is ++ * uncompressed */ ++#define SQUASHFS_COMPRESSED_BIT (1 << 15) ++ ++#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \ ++ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT) ++ ++#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT)) ++ ++#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24) ++ ++#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) (((B) & \ ++ ~SQUASHFS_COMPRESSED_BIT_BLOCK) ? (B) & \ ++ ~SQUASHFS_COMPRESSED_BIT_BLOCK : SQUASHFS_COMPRESSED_BIT_BLOCK) ++ ++#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK)) ++ ++/* ++ * Inode number ops. Inodes consist of a compressed block number, and an ++ * uncompressed offset within that block ++ */ ++#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16)) ++ ++#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff)) ++ ++#define SQUASHFS_MKINODE(A, B) ((squashfs_inode_t)(((squashfs_inode_t) (A)\ ++ << 16) + (B))) ++ ++/* Compute 32 bit VFS inode number from squashfs inode number */ ++#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + \ ++ ((b) >> 2) + 1)) ++/* XXX */ ++ ++/* Translate between VFS mode and squashfs mode */ ++#define SQUASHFS_MODE(a) ((a) & 0xfff) ++ ++/* fragment and fragment table defines */ ++#define SQUASHFS_FRAGMENT_BYTES(A) (A * sizeof(struct squashfs_fragment_entry)) ++ ++#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + \ ++ SQUASHFS_METADATA_SIZE - 1) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) *\ ++ sizeof(long long)) ++ ++/* cached data constants for filesystem */ ++#define SQUASHFS_CACHED_BLKS 8 ++ ++#define SQUASHFS_MAX_FILE_SIZE_LOG 64 ++ ++#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << \ ++ (SQUASHFS_MAX_FILE_SIZE_LOG - 2)) ++ ++#define SQUASHFS_MARKER_BYTE 0xff ++ ++/* meta index cache */ ++#define SQUASHFS_META_INDEXES (SQUASHFS_METADATA_SIZE / sizeof(unsigned int)) ++#define SQUASHFS_META_ENTRIES 31 ++#define SQUASHFS_META_NUMBER 8 ++#define SQUASHFS_SLOTS 4 ++ ++struct meta_entry { ++ long long data_block; ++ unsigned int index_block; ++ unsigned short offset; ++ unsigned short pad; ++}; ++ ++struct meta_index { ++ unsigned int inode_number; ++ unsigned int offset; ++ unsigned short entries; ++ unsigned short skip; ++ unsigned short locked; ++ unsigned short pad; ++ struct meta_entry meta_entry[SQUASHFS_META_ENTRIES]; ++}; ++ ++ ++/* ++ * definitions for structures on disk ++ */ ++ ++typedef long long squashfs_block_t; ++typedef long long squashfs_inode_t; ++ ++struct squashfs_super_block { ++ unsigned int s_magic; ++ unsigned int inodes; ++ unsigned int bytes_used_2; ++ unsigned int uid_start_2; ++ unsigned int guid_start_2; ++ unsigned int inode_table_start_2; ++ unsigned int directory_table_start_2; ++ unsigned int s_major:16; ++ unsigned int s_minor:16; ++ unsigned int block_size_1:16; ++ unsigned int block_log:16; ++ unsigned int flags:8; ++ unsigned int no_uids:8; ++ unsigned int no_guids:8; ++ unsigned int mkfs_time /* time of filesystem creation */; ++ squashfs_inode_t root_inode; ++ unsigned int block_size; ++ unsigned int fragments; ++ unsigned int fragment_table_start_2; ++ long long bytes_used; ++ long long uid_start; ++ long long guid_start; ++ long long inode_table_start; ++ long long directory_table_start; ++ long long fragment_table_start; ++ long long unused; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_index { ++ unsigned int index; ++ unsigned int start_block; ++ unsigned char size; ++ unsigned char name[0]; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_BASE_INODE_HEADER \ ++ unsigned int inode_type:4; \ ++ unsigned int mode:12; \ ++ unsigned int uid:8; \ ++ unsigned int guid:8; \ ++ unsigned int mtime; \ ++ unsigned int inode_number; ++ ++struct squashfs_base_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ squashfs_block_t start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ unsigned int file_size; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_lreg_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ squashfs_block_t start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ long long file_size; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int start_block; ++ unsigned int parent_inode; ++} __attribute__ ((packed)); ++ ++struct squashfs_ldir_inode_header { ++ SQUASHFS_BASE_INODE_HEADER; ++ unsigned int nlink; ++ unsigned int file_size:27; ++ unsigned int offset:13; ++ unsigned int start_block; ++ unsigned int i_count:16; ++ unsigned int parent_inode; ++ struct squashfs_dir_index index[0]; ++} __attribute__ ((packed)); ++ ++union squashfs_inode_header { ++ struct squashfs_base_inode_header base; ++ struct squashfs_dev_inode_header dev; ++ struct squashfs_symlink_inode_header symlink; ++ struct squashfs_reg_inode_header reg; ++ struct squashfs_lreg_inode_header lreg; ++ struct squashfs_dir_inode_header dir; ++ struct squashfs_ldir_inode_header ldir; ++ struct squashfs_ipc_inode_header ipc; ++}; ++ ++struct squashfs_dir_entry { ++ unsigned int offset:13; ++ unsigned int type:3; ++ unsigned int size:8; ++ int inode_number:16; ++ char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_header { ++ unsigned int count:8; ++ unsigned int start_block; ++ unsigned int inode_number; ++} __attribute__ ((packed)); ++ ++struct squashfs_fragment_entry { ++ long long start_block; ++ unsigned int size; ++ unsigned int unused; ++} __attribute__ ((packed)); ++ ++extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen); ++extern int squashfs_uncompress_init(void); ++extern int squashfs_uncompress_exit(void); ++ ++/* ++ * macros to convert each packed bitfield structure from little endian to big ++ * endian and vice versa. These are needed when creating or using a filesystem ++ * on a machine with different byte ordering to the target architecture. ++ * ++ */ ++ ++#define SQUASHFS_SWAP_START \ ++ int bits;\ ++ int b_pos;\ ++ unsigned long long val;\ ++ unsigned char *s;\ ++ unsigned char *d; ++ ++#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_super_block));\ ++ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->bytes_used_2, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->uid_start_2, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->guid_start_2, d, 128, 32);\ ++ SQUASHFS_SWAP((s)->inode_table_start_2, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->directory_table_start_2, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\ ++ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\ ++ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\ ++ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\ ++ SQUASHFS_SWAP((s)->flags, d, 288, 8);\ ++ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\ ++ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\ ++ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\ ++ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\ ++ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\ ++ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\ ++ SQUASHFS_SWAP((s)->fragment_table_start_2, d, 472, 32);\ ++ SQUASHFS_SWAP((s)->bytes_used, d, 504, 64);\ ++ SQUASHFS_SWAP((s)->uid_start, d, 568, 64);\ ++ SQUASHFS_SWAP((s)->guid_start, d, 632, 64);\ ++ SQUASHFS_SWAP((s)->inode_table_start, d, 696, 64);\ ++ SQUASHFS_SWAP((s)->directory_table_start, d, 760, 64);\ ++ SQUASHFS_SWAP((s)->fragment_table_start, d, 824, 64);\ ++ SQUASHFS_SWAP((s)->unused, d, 888, 64);\ ++} ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ ++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 64, 32); ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_ipc_inode_header))\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_dev_inode_header)); \ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->rdev, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_reg_inode_header));\ ++ SQUASHFS_SWAP((s)->start_block, d, 96, 64);\ ++ SQUASHFS_SWAP((s)->fragment, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 224, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LREG_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_lreg_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 128, 64);\ ++ SQUASHFS_SWAP((s)->fragment, d, 192, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 224, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 256, 64);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_dir_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 128, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 147, 13);\ ++ SQUASHFS_SWAP((s)->start_block, d, 160, 32);\ ++ SQUASHFS_SWAP((s)->parent_inode, d, 192, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LDIR_INODE_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE(s, d, \ ++ sizeof(struct squashfs_ldir_inode_header));\ ++ SQUASHFS_SWAP((s)->nlink, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 128, 27);\ ++ SQUASHFS_SWAP((s)->offset, d, 155, 13);\ ++ SQUASHFS_SWAP((s)->start_block, d, 168, 32);\ ++ SQUASHFS_SWAP((s)->i_count, d, 200, 16);\ ++ SQUASHFS_SWAP((s)->parent_inode, d, 216, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INDEX(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index));\ ++ SQUASHFS_SWAP((s)->index, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->size, d, 64, 8);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header));\ ++ SQUASHFS_SWAP((s)->count, d, 0, 8);\ ++ SQUASHFS_SWAP((s)->start_block, d, 8, 32);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 40, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry));\ ++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ ++ SQUASHFS_SWAP((s)->type, d, 13, 3);\ ++ SQUASHFS_SWAP((s)->size, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->inode_number, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry));\ ++ SQUASHFS_SWAP((s)->start_block, d, 0, 64);\ ++ SQUASHFS_SWAP((s)->size, d, 64, 32);\ ++} ++ ++#define SQUASHFS_SWAP_SHORTS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 2);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 16)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\ ++} ++ ++#define SQUASHFS_SWAP_INTS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 4);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 32)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\ ++} ++ ++#define SQUASHFS_SWAP_LONG_LONGS(s, d, n) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * 8);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ 64)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, 64);\ ++} ++ ++#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\ ++ int entry;\ ++ int bit_position;\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, n * bits / 8);\ ++ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += \ ++ bits)\ ++ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_LONG_LONGS(s, d, n) ++ ++#ifdef CONFIG_SQUASHFS_1_0_COMPATIBILITY ++ ++struct squashfs_base_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int type:4; ++ unsigned int offset:4; ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int mtime; ++ unsigned int start_block; ++ unsigned int file_size:32; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header_1 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:4; /* index into uid table */ ++ unsigned int guid:4; /* index into guid table */ ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n) \ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 4);\ ++ SQUASHFS_SWAP((s)->guid, d, 20, 4); ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_ipc_inode_header_1));\ ++ SQUASHFS_SWAP((s)->type, d, 24, 4);\ ++ SQUASHFS_SWAP((s)->offset, d, 28, 4);\ ++} ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_dev_inode_header_1));\ ++ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header_1));\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_reg_inode_header_1));\ ++ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 88, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_1(s, d, \ ++ sizeof(struct squashfs_dir_inode_header_1));\ ++ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 43, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\ ++} ++ ++#endif ++ ++#ifdef CONFIG_SQUASHFS_2_0_COMPATIBILITY ++ ++struct squashfs_dir_index_2 { ++ unsigned int index:27; ++ unsigned int start_block:29; ++ unsigned char size; ++ unsigned char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_base_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_ipc_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++} __attribute__ ((packed)); ++ ++struct squashfs_dev_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned short rdev; ++} __attribute__ ((packed)); ++ ++struct squashfs_symlink_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned short symlink_size; ++ char symlink[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_reg_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int mtime; ++ unsigned int start_block; ++ unsigned int fragment; ++ unsigned int offset; ++ unsigned int file_size:32; ++ unsigned short block_list[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int file_size:19; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++struct squashfs_ldir_inode_header_2 { ++ unsigned int inode_type:4; ++ unsigned int mode:12; /* protection */ ++ unsigned int uid:8; /* index into uid table */ ++ unsigned int guid:8; /* index into guid table */ ++ unsigned int file_size:27; ++ unsigned int offset:13; ++ unsigned int mtime; ++ unsigned int start_block:24; ++ unsigned int i_count:16; ++ struct squashfs_dir_index_2 index[0]; ++} __attribute__ ((packed)); ++ ++union squashfs_inode_header_2 { ++ struct squashfs_base_inode_header_2 base; ++ struct squashfs_dev_inode_header_2 dev; ++ struct squashfs_symlink_inode_header_2 symlink; ++ struct squashfs_reg_inode_header_2 reg; ++ struct squashfs_dir_inode_header_2 dir; ++ struct squashfs_ldir_inode_header_2 ldir; ++ struct squashfs_ipc_inode_header_2 ipc; ++}; ++ ++struct squashfs_dir_header_2 { ++ unsigned int count:8; ++ unsigned int start_block:24; ++} __attribute__ ((packed)); ++ ++struct squashfs_dir_entry_2 { ++ unsigned int offset:13; ++ unsigned int type:3; ++ unsigned int size:8; ++ char name[0]; ++} __attribute__ ((packed)); ++ ++struct squashfs_fragment_entry_2 { ++ unsigned int start_block; ++ unsigned int size; ++} __attribute__ ((packed)); ++ ++#define SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ ++ SQUASHFS_MEMSET(s, d, n);\ ++ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\ ++ SQUASHFS_SWAP((s)->mode, d, 4, 12);\ ++ SQUASHFS_SWAP((s)->uid, d, 16, 8);\ ++ SQUASHFS_SWAP((s)->guid, d, 24, 8);\ ++ ++#define SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, n) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, n)\ ++} ++ ++#define SQUASHFS_SWAP_IPC_INODE_HEADER_2(s, d) \ ++ SQUASHFS_SWAP_BASE_INODE_HEADER_2(s, d, sizeof(struct squashfs_ipc_inode_header_2)) ++ ++#define SQUASHFS_SWAP_DEV_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_dev_inode_header_2)); \ ++ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\ ++} ++ ++#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_symlink_inode_header_2));\ ++ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\ ++} ++ ++#define SQUASHFS_SWAP_REG_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_reg_inode_header_2));\ ++ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\ ++ SQUASHFS_SWAP((s)->offset, d, 128, 32);\ ++ SQUASHFS_SWAP((s)->file_size, d, 160, 32);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_dir_inode_header_2));\ ++ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\ ++ SQUASHFS_SWAP((s)->offset, d, 51, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\ ++} ++ ++#define SQUASHFS_SWAP_LDIR_INODE_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_SWAP_BASE_INODE_CORE_2(s, d, \ ++ sizeof(struct squashfs_ldir_inode_header_2));\ ++ SQUASHFS_SWAP((s)->file_size, d, 32, 27);\ ++ SQUASHFS_SWAP((s)->offset, d, 59, 13);\ ++ SQUASHFS_SWAP((s)->mtime, d, 72, 32);\ ++ SQUASHFS_SWAP((s)->start_block, d, 104, 24);\ ++ SQUASHFS_SWAP((s)->i_count, d, 128, 16);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_INDEX_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_index_2));\ ++ SQUASHFS_SWAP((s)->index, d, 0, 27);\ ++ SQUASHFS_SWAP((s)->start_block, d, 27, 29);\ ++ SQUASHFS_SWAP((s)->size, d, 56, 8);\ ++} ++#define SQUASHFS_SWAP_DIR_HEADER_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_header_2));\ ++ SQUASHFS_SWAP((s)->count, d, 0, 8);\ ++ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\ ++} ++ ++#define SQUASHFS_SWAP_DIR_ENTRY_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_dir_entry_2));\ ++ SQUASHFS_SWAP((s)->offset, d, 0, 13);\ ++ SQUASHFS_SWAP((s)->type, d, 13, 3);\ ++ SQUASHFS_SWAP((s)->size, d, 16, 8);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_ENTRY_2(s, d) {\ ++ SQUASHFS_SWAP_START\ ++ SQUASHFS_MEMSET(s, d, sizeof(struct squashfs_fragment_entry_2));\ ++ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\ ++ SQUASHFS_SWAP((s)->size, d, 32, 32);\ ++} ++ ++#define SQUASHFS_SWAP_FRAGMENT_INDEXES_2(s, d, n) SQUASHFS_SWAP_INTS(s, d, n) ++ ++/* fragment and fragment table defines */ ++#define SQUASHFS_FRAGMENT_BYTES_2(A) (A * sizeof(struct squashfs_fragment_entry_2)) ++ ++#define SQUASHFS_FRAGMENT_INDEX_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_OFFSET_2(A) (SQUASHFS_FRAGMENT_BYTES_2(A) % \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEXES_2(A) ((SQUASHFS_FRAGMENT_BYTES_2(A) + \ ++ SQUASHFS_METADATA_SIZE - 1) / \ ++ SQUASHFS_METADATA_SIZE) ++ ++#define SQUASHFS_FRAGMENT_INDEX_BYTES_2(A) (SQUASHFS_FRAGMENT_INDEXES_2(A) *\ ++ sizeof(int)) ++ ++#endif ++ ++#ifdef __KERNEL__ ++ ++/* ++ * macros used to swap each structure entry, taking into account ++ * bitfields and different bitfield placing conventions on differing ++ * architectures ++ */ ++ ++#include <asm/byteorder.h> ++ ++#ifdef __BIG_ENDIAN ++ /* convert from little endian to big endian */ ++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ ++ tbits, b_pos) ++#else ++ /* convert from big endian to little endian */ ++#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, \ ++ tbits, 64 - tbits - b_pos) ++#endif ++ ++#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\ ++ b_pos = pos % 8;\ ++ val = 0;\ ++ s = (unsigned char *)p + (pos / 8);\ ++ d = ((unsigned char *) &val) + 7;\ ++ for(bits = 0; bits < (tbits + b_pos); bits += 8) \ ++ *d-- = *s++;\ ++ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\ ++} ++ ++#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n); ++ ++#endif ++#endif +Index: git/include/linux/squashfs_fs_i.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/include/linux/squashfs_fs_i.h 2006-10-31 21:26:45.000000000 +0000 +@@ -0,0 +1,45 @@ ++#ifndef SQUASHFS_FS_I ++#define SQUASHFS_FS_I ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs_i.h ++ */ ++ ++struct squashfs_inode_info { ++ long long start_block; ++ unsigned int offset; ++ union { ++ struct { ++ long long fragment_start_block; ++ unsigned int fragment_size; ++ unsigned int fragment_offset; ++ long long block_list_start; ++ } s1; ++ struct { ++ long long directory_index_start; ++ unsigned int directory_index_offset; ++ unsigned int directory_index_count; ++ unsigned int parent_inode; ++ } s2; ++ } u; ++ struct inode vfs_inode; ++}; ++#endif +Index: git/include/linux/squashfs_fs_sb.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ git/include/linux/squashfs_fs_sb.h 2006-10-31 21:26:45.000000000 +0000 +@@ -0,0 +1,74 @@ ++#ifndef SQUASHFS_FS_SB ++#define SQUASHFS_FS_SB ++/* ++ * Squashfs ++ * ++ * Copyright (c) 2002, 2003, 2004, 2005, 2006 ++ * Phillip Lougher <phillip@lougher.org.uk> ++ * ++ * 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, ++ * 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ * ++ * squashfs_fs_sb.h ++ */ ++ ++#include <linux/squashfs_fs.h> ++ ++struct squashfs_cache { ++ long long block; ++ int length; ++ long long next_index; ++ char *data; ++}; ++ ++struct squashfs_fragment_cache { ++ long long block; ++ int length; ++ unsigned int locked; ++ char *data; ++}; ++ ++struct squashfs_sb_info { ++ struct squashfs_super_block sblk; ++ int devblksize; ++ int devblksize_log2; ++ int swap; ++ struct squashfs_cache *block_cache; ++ struct squashfs_fragment_cache *fragment; ++ int next_cache; ++ int next_fragment; ++ int next_meta_index; ++ unsigned int *uid; ++ unsigned int *guid; ++ long long *fragment_index; ++ unsigned int *fragment_index_2; ++ unsigned int read_size; ++ char *read_data; ++ char *read_page; ++ struct semaphore read_data_mutex; ++ struct semaphore read_page_mutex; ++ struct semaphore block_cache_mutex; ++ struct semaphore fragment_mutex; ++ struct semaphore meta_index_mutex; ++ wait_queue_head_t waitq; ++ wait_queue_head_t fragment_wait_queue; ++ struct meta_index *meta_index; ++ struct inode *(*iget)(struct super_block *s, squashfs_inode_t \ ++ inode); ++ long long (*read_blocklist)(struct inode *inode, int \ ++ index, int readahead_blks, char *block_list, \ ++ unsigned short **block_p, unsigned int *bsize); ++ int (*read_fragment_index_table)(struct super_block *s); ++}; ++#endif +Index: git/init/do_mounts_rd.c +=================================================================== +--- git.orig/init/do_mounts_rd.c 2006-10-31 16:09:47.000000000 +0000 ++++ git/init/do_mounts_rd.c 2006-10-31 21:26:45.000000000 +0000 +@@ -5,6 +5,7 @@ + #include <linux/ext2_fs.h> + #include <linux/romfs_fs.h> + #include <linux/cramfs_fs.h> ++#include <linux/squashfs_fs.h> + #include <linux/initrd.h> + #include <linux/string.h> + +@@ -39,6 +40,7 @@ static int __init crd_load(int in_fd, in + * numbers could not be found. + * + * We currently check for the following magic numbers: ++ * squashfs + * minix + * ext2 + * romfs +@@ -53,6 +55,7 @@ identify_ramdisk_image(int fd, int start + struct ext2_super_block *ext2sb; + struct romfs_super_block *romfsb; + struct cramfs_super *cramfsb; ++ struct squashfs_super_block *squashfsb; + int nblocks = -1; + unsigned char *buf; + +@@ -64,6 +67,7 @@ identify_ramdisk_image(int fd, int start + ext2sb = (struct ext2_super_block *) buf; + romfsb = (struct romfs_super_block *) buf; + cramfsb = (struct cramfs_super *) buf; ++ squashfsb = (struct squashfs_super_block *) buf; + memset(buf, 0xe5, size); + + /* +@@ -101,6 +105,15 @@ identify_ramdisk_image(int fd, int start + goto done; + } + ++ /* squashfs is at block zero too */ ++ if (squashfsb->s_magic == SQUASHFS_MAGIC) { ++ printk(KERN_NOTICE ++ "RAMDISK: squashfs filesystem found at block %d\n", ++ start_block); ++ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS; ++ goto done; ++ } ++ + /* + * Read block 1 to test for minix and ext2 superblock + */ diff --git a/packages/linux/linux-rp-2.6.21/vesafb-tng-1.0-rc2-2.6.20-rc2.patch b/packages/linux/linux-rp-2.6.21/vesafb-tng-1.0-rc2-2.6.20-rc2.patch new file mode 100644 index 0000000000..b1b0fc3549 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/vesafb-tng-1.0-rc2-2.6.20-rc2.patch @@ -0,0 +1,3141 @@ +diff --git a/Documentation/fb/vesafb.txt b/Documentation/fb/vesafb.txt +index ee277dd..93d6e6e 100644 +--- a/Documentation/fb/vesafb.txt ++++ b/Documentation/fb/vesafb.txt +@@ -2,16 +2,18 @@ + What is vesafb? + =============== + +-This is a generic driver for a graphic framebuffer on intel boxes. ++Vesafb is a generic framebuffer driver for x86 and x86_64 boxes. + +-The idea is simple: Turn on graphics mode at boot time with the help +-of the BIOS, and use this as framebuffer device /dev/fb0, like the m68k +-(and other) ports do. ++VESA BIOS Extensions Version 2.0 are required, because we need access to ++a linear frame buffer. VBE 3.0 is required if you want to use modes with a ++higher (than the standard 60 Hz) refresh rate. + +-This means we decide at boot time whenever we want to run in text or +-graphics mode. Switching mode later on (in protected mode) is +-impossible; BIOS calls work in real mode only. VESA BIOS Extensions +-Version 2.0 are required, because we need a linear frame buffer. ++The VESA framebuffer driver comes in two flavors - the standard 'vesafb' ++and 'vesafb-tng'. Vesafb-tng is available only on 32-bit x86 due to the ++technology it uses (vm86). Vesafb-tng has more features than vesafb ++(adjusting the refresh rate on VBE 3.0 compliant boards, switching the ++video mode without rebooting, selecting a mode by providing its ++modedb name, and more). + + Advantages: + +@@ -29,26 +31,35 @@ Disadvantages: + How to use it? + ============== + +-Switching modes is done using the vga=... boot parameter. Read +-Documentation/svga.txt for details. ++If you are running a 32-bit x86 system and you decide to use vesafb-tng, ++you can either compile the driver into the kernel or use it as a module. ++The graphics mode you want to use is in both cases specified using the ++standard modedb format. + +-You should compile in both vgacon (for text mode) and vesafb (for +-graphics mode). Which of them takes over the console depends on +-whenever the specified mode is text or graphics. ++If your system doesn't support vm86 calls, things get a little more tricky. ++Since on such systems you can't do BIOS calls from protected mode in which ++kernel runs, you have to decide at boot time whenever you want to run in text ++or in graphics mode. Switching mode later on is impossible. Switching modes ++is done using the vga=... boot parameter. Read Documentation/svga.txt for ++details. Below is a more detailed description of what to do on systems using ++the standard vesafb driver. + +-The graphic modes are NOT in the list which you get if you boot with +-vga=ask and hit return. The mode you wish to use is derived from the +-VESA mode number. Here are those VESA mode numbers: ++You should compile in both vgacon (for text mode) and vesafb (for graphics ++mode). Which of them takes over the console depends on whenever the ++specified mode is text or graphics. ++ ++The graphic modes are NOT in the list which you get if you boot with vga=ask ++and hit return. The mode you wish to use is derived from the VESA mode number. ++Here are those VESA mode numbers: + + | 640x480 800x600 1024x768 1280x1024 + ----+------------------------------------- +-256 | 0x101 0x103 0x105 0x107 +-32k | 0x110 0x113 0x116 0x119 +-64k | 0x111 0x114 0x117 0x11A +-16M | 0x112 0x115 0x118 0x11B ++256 | 0x101 0x103 0x105 0x107 ++32k | 0x110 0x113 0x116 0x119 ++64k | 0x111 0x114 0x117 0x11A ++16M | 0x112 0x115 0x118 0x11B + +-The video mode number of the Linux kernel is the VESA mode number plus +-0x200. ++The video mode number of the Linux kernel is the VESA mode number plus 0x200. + + Linux_kernel_mode_number = VESA_mode_number + 0x200 + +@@ -56,15 +67,15 @@ So the table for the Kernel mode numbers are: + + | 640x480 800x600 1024x768 1280x1024 + ----+------------------------------------- +-256 | 0x301 0x303 0x305 0x307 +-32k | 0x310 0x313 0x316 0x319 +-64k | 0x311 0x314 0x317 0x31A +-16M | 0x312 0x315 0x318 0x31B ++256 | 0x301 0x303 0x305 0x307 ++32k | 0x310 0x313 0x316 0x319 ++64k | 0x311 0x314 0x317 0x31A ++16M | 0x312 0x315 0x318 0x31B + +-To enable one of those modes you have to specify "vga=ask" in the +-lilo.conf file and rerun LILO. Then you can type in the desired +-mode at the "vga=ask" prompt. For example if you like to use +-1024x768x256 colors you have to say "305" at this prompt. ++To enable one of those modes you have to specify "vga=ask" in the lilo.conf ++file and rerun LILO. Then you can type in the desired mode at the "vga=ask" ++prompt. For example if you like to use 1024x768x256 colors you have to say ++"305" at this prompt. + + If this does not work, this might be because your BIOS does not support + linear framebuffers or because it does not support this mode at all. +@@ -72,11 +83,12 @@ Even if your board does, it might be the BIOS which does not. VESA BIOS + Extensions v2.0 are required, 1.2 is NOT sufficient. You will get a + "bad mode number" message if something goes wrong. + +-1. Note: LILO cannot handle hex, for booting directly with ++1. Note: LILO cannot handle hex, for booting directly with + "vga=mode-number" you have to transform the numbers to decimal. + 2. Note: Some newer versions of LILO appear to work with those hex values, + if you set the 0x in front of the numbers. + ++ + X11 + === + +@@ -84,98 +96,164 @@ XF68_FBDev should work just fine, but it is non-accelerated. Running + another (accelerated) X-Server like XF86_SVGA might or might not work. + It depends on X-Server and graphics board. + +-The X-Server must restore the video mode correctly, else you end up ++The X-Server must restore the video mode correctly, or else you end up + with a broken console (and vesafb cannot do anything about this). ++With vesafb-tng chances are that the console will be restored properly ++even if the X server messes up the video mode. + + + Refresh rates + ============= + +-There is no way to change the vesafb video mode and/or timings after +-booting linux. If you are not happy with the 60 Hz refresh rate, you +-have these options: ++With VBE 3.0 compatible BIOSes and vesafb-tng it is possible to change ++the refresh rate either at boot time (by specifying the @<rr> part of ++the mode name) or later, using the fbset utility. ++ ++If you want to use the default BIOS refresh rate while switching modes ++on a running system, set pixclock to 0. + +- * configure and load the DOS-Tools for your the graphics board (if +- available) and boot linux with loadlin. +- * use a native driver (matroxfb/atyfb) instead if vesafb. If none ++With VBE 2.0 there is no way to change the mode timings after booting ++Linux. If you are not happy with the 60 Hz refresh rate, you have ++the following options: ++ ++ * Configure and load the DOS tools for your the graphics board (if ++ available) and boot Linux with loadlin. ++ * Use a native driver (matroxfb/atyfb) instead of vesafb. If none + is available, write a new one! +- * VBE 3.0 might work too. I have neither a gfx board with VBE 3.0 +- support nor the specs, so I have not checked this yet. ++ * Use a BIOS editor to change the default refresh rate (such an ++ editor does exist at least for ATI Radeon BIOSes). ++ * If you're running a non-vm86 and VBE 3.0 compatible system, you can ++ use a kernel patch (vesafb-rrc) to hard-code some mode timings in ++ the kernel and use these while setting the video mode at boot time. ++ ++Note that there are some boards (nVidia 59**, 57** and newer models) ++claiming that their Video BIOS is VBE 3.0 compliant, while ignoring the ++CRTC values provided by software such as vesafb-tng. You'll not be able ++to adjust the refresh rate if you're using one of these boards. + + + Configuration + ============= + +-The VESA BIOS provides protected mode interface for changing +-some parameters. vesafb can use it for palette changes and +-to pan the display. It is turned off by default because it +-seems not to work with some BIOS versions, but there are options +-to turn it on. +- +-You can pass options to vesafb using "video=vesafb:option" on +-the kernel command line. Multiple options should be separated +-by comma, like this: "video=vesafb:ypan,invers" +- +-Accepted options: +- +-invers no comment... +- +-ypan enable display panning using the VESA protected mode +- interface. The visible screen is just a window of the +- video memory, console scrolling is done by changing the +- start of the window. +- pro: * scrolling (fullscreen) is fast, because there is +- no need to copy around data. +- * You'll get scrollback (the Shift-PgUp thing), +- the video memory can be used as scrollback buffer +- kontra: * scrolling only parts of the screen causes some +- ugly flicker effects (boot logo flickers for +- example). +- +-ywrap Same as ypan, but assumes your gfx board can wrap-around +- the video memory (i.e. starts reading from top if it +- reaches the end of video memory). Faster than ypan. +- +-redraw scroll by redrawing the affected part of the screen, this +- is the safe (and slow) default. +- +- +-vgapal Use the standard vga registers for palette changes. +- This is the default. +-pmipal Use the protected mode interface for palette changes. +- +-mtrr:n setup memory type range registers for the vesafb framebuffer +- where n: +- 0 - disabled (equivalent to nomtrr) (default) +- 1 - uncachable +- 2 - write-back +- 3 - write-combining +- 4 - write-through +- +- If you see the following in dmesg, choose the type that matches the +- old one. In this example, use "mtrr:2". ++The VESA BIOS provides protected mode interface for changing some parameters. ++vesafb can use it for palette changes and to pan the display. It is turned ++off by default because it seems not to work with some BIOS versions, but ++there are options to turn it on. ++ ++You can pass options to vesafb using "video=vesafb:option" on the kernel ++command line. Multiple options should be separated by a comma, like this: ++"video=vesafb:ypan,1024x768-32@85" ++ ++Note that vesafb-tng still uses the "video=vesafb:option" format of the ++kernel command line video parameter. "video=vesafb-tng:xxx" is incorrect. ++ ++Accepted options (both vesafb and vesafb-tng): ++ ++ypan Enable display panning using the VESA protected mode interface ++ The visible screen is just a window of the video memory, ++ console scrolling is done by changing the start of the window. ++ pro: * scrolling (fullscreen) is fast, because there is ++ no need to copy around data. ++ * you'll get scrollback (the Shift-PgUp thing), ++ the video memory can be used as scrollback buffer ++ con: * scrolling only parts of the screen causes some ++ ugly flicker effects (boot logo flickers for ++ example). ++ ++ywrap Same as ypan, but assumes your gfx board can wrap-around the video ++ memory (i.e. starts reading from top if it reaches the end of ++ video memory). Faster than ypan. ++ ++redraw Scroll by redrawing the affected part of the screen, this is the ++ safe (and slow) default. ++ ++vgapal Use the standard VGA registers for palette changes. ++ ++pmipal Use the protected mode interface for palette changes. ++ This is the default is the protected mode interface is available. ++ ++mtrr:n Setup memory type range registers for the vesafb framebuffer ++ where n: ++ 0 - disabled (equivalent to nomtrr) (default) ++ 1 - uncachable ++ 2 - write-back ++ 3 - write-combining ++ 4 - write-through ++ ++ If you see the following in dmesg, choose the type that matches ++ the old one. In this example, use "mtrr:2". + ... + mtrr: type mismatch for e0000000,8000000 old: write-back new: write-combining + ... + +-nomtrr disable mtrr ++nomtrr Do not use memory type range registers for vesafb. + + vremap:n + remap 'n' MiB of video RAM. If 0 or not specified, remap memory +- according to video mode. (2.5.66 patch/idea by Antonino Daplas +- reversed to give override possibility (allocate more fb memory +- than the kernel would) to 2.4 by tmb@iki.fi) ++ according to video mode. (2.5.66 patch/idea by Antonino Daplas ++ reversed to give override possibility (allocate more fb memory ++ than the kernel would) to 2.4 by tmb@iki.fi) + + vtotal:n + if the video BIOS of your card incorrectly determines the total + amount of video RAM, use this option to override the BIOS (in MiB). + +-Have fun! ++Options accepted only by vesafb-tng: ++ ++<mode> The mode you want to set, in the standard modedb format. Refer to ++ modedb.txt for a detailed description. If you specify a mode that is ++ not supported by your board's BIOS, vesafb-tng will attempt to set a ++ similar mode. The list of supported modes can be found in ++ /proc/fbx/modes, where x is the framebuffer number (usually 0). ++ When vesafb-tng is compiled as a module, the mode string should be ++ provided as a value of the parameter 'mode'. ++ ++vbemode:x ++ Force the use of VBE mode x. The mode will only be set if it's ++ found in the VBE-provided list of supported modes. ++ NOTE: The mode number 'x' should be specified in VESA mode number ++ notation, not the Linux kernel one (eg. 257 instead of 769). ++ HINT: If you use this option because normal <mode> parameter does ++ not work for you and you use a X server, you'll probably want to ++ set the 'nocrtc' option to ensure that the video mode is properly ++ restored after console <-> X switches. ++ ++nocrtc Do not use CRTC timings while setting the video mode. This option ++ makes sence only with VBE 3.0 compliant systems. Use it if you have ++ problems with modes set in the standard way. Note that using this ++ option means that any refresh rate adjustments will be ignored ++ and the refresh rate will stay at your BIOS default (60 Hz). ++ ++noedid Do not try to fetch and use EDID-provided modes. ++ ++noblank Disable hardware blanking. ++ ++gtf Force the use of VESA's GTF (Generalized Timing Formula). Specifying ++ this will cause vesafb to skip its internal modedb and EDID-modedb ++ and jump straight to the GTF part of the code (normally used only if ++ everything else failed). This can be useful if you want to get as ++ much as possible from your graphics board but your BIOS doesn't ++ support modes with the refresh rates you require. Note that you may ++ need to specify the maxhf, maxvf and maxclk parameters if they are not ++ provided by the EDID block. ++ ++Additionally, the following parameters may be provided. They all override the ++EDID-provided values and BIOS defaults. Refer to your monitor's specs to get ++the correct values for maxhf, maxvf and maxclk for your hardware. ++ ++maxhf:n Maximum horizontal frequency (in kHz). ++maxvf:n Maximum vertical frequency (in Hz). ++maxclk:n Maximum pixel clock (in MHz). + +- Gerd ++Have fun! + + -- ++Original document for the vesafb driver by + Gerd Knorr <kraxel@goldbach.in-berlin.de> + +-Minor (mostly typo) changes +-by Nico Schmoigl <schmoigl@rumms.uni-mannheim.de> ++Minor (mostly typo) changes by ++Nico Schmoigl <schmoigl@rumms.uni-mannheim.de> ++ ++Extended documentation for vm86, VBE 3.0 and vesafb-tng by ++Michal Januszewski <spock@gentoo.org> ++ +diff --git a/arch/i386/boot/video.S b/arch/i386/boot/video.S +index 2c5b5cc..2c2d4b5 100644 +--- a/arch/i386/boot/video.S ++++ b/arch/i386/boot/video.S +@@ -163,10 +163,12 @@ basret: ret + # parameters in the default 80x25 mode -- these are set directly, + # because some very obscure BIOSes supply insane values. + mode_params: ++#ifdef CONFIG_FB_VESA_STD + #ifdef CONFIG_VIDEO_SELECT + cmpb $0, graphic_mode + jnz mopar_gr + #endif ++#endif + movb $0x03, %ah # Read cursor position + xorb %bh, %bh + int $0x10 +@@ -199,6 +201,7 @@ mopar2: movb %al, %fs:(PARAM_VIDEO_LINES) + ret + + #ifdef CONFIG_VIDEO_SELECT ++#ifdef CONFIG_FB_VESA_STD + # Fetching of VESA frame buffer parameters + mopar_gr: + leaw modelist+1024, %di +@@ -281,6 +284,7 @@ dac_done: + movw %es, %fs:(PARAM_VESAPM_SEG) + movw %di, %fs:(PARAM_VESAPM_OFF) + no_pm: ret ++#endif + + # The video mode menu + mode_menu: +@@ -495,10 +499,12 @@ mode_set: + + cmpb $VIDEO_FIRST_V7>>8, %ah + jz setv7 +- ++ ++#ifdef CONFIG_FB_VESA_STD + cmpb $VIDEO_FIRST_VESA>>8, %ah + jnc check_vesa +- ++#endif ++ + orb %ah, %ah + jz setmenu + +@@ -570,6 +576,7 @@ setr1: lodsw + movw -4(%si), %ax # Fetch mode ID + jmp _m_s + ++#ifdef CONFIG_FB_VESA_STD + check_vesa: + leaw modelist+1024, %di + subb $VIDEO_FIRST_VESA>>8, %bh +@@ -603,6 +610,7 @@ check_vesa: + ret + + _setbad: jmp setbad # Ugly... ++#endif + + # Recalculate vertical display end registers -- this fixes various + # inconsistencies of extended modes on many adapters. Called when +diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c +index 1393523..8a05f95 100644 +--- a/drivers/char/sysrq.c ++++ b/drivers/char/sysrq.c +@@ -240,7 +240,7 @@ static void send_sig_all(int sig) + struct task_struct *p; + + for_each_process(p) { +- if (p->mm && !is_init(p)) ++ if (p->mm && !is_init(p) && !(p->flags & PF_BORROWED_MM)) + /* Not swapper, init nor kernel thread */ + force_sig(sig, p); + } +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 4e83f01..ae122fd 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -547,8 +547,22 @@ config FB_TGA + cards. Say Y if you have one of those. + + config FB_VESA +- bool "VESA VGA graphics support" +- depends on (FB = y) && X86 ++ tristate "VESA VGA graphics support" ++ depends on (FB = y) && (X86 || X86_64) ++ help ++ This is the frame buffer device driver for generic VESA 2.0 ++ compliant graphic cards. The older VESA 1.2 cards are not supported. ++ You will get a boot time penguin logo at no additional cost. Please ++ read <file:Documentation/fb/vesafb.txt>. If unsure, say Y. ++ ++choice ++ prompt "VESA driver type" ++ depends on FB_VESA ++ default FB_VESA_STD if X86_64 ++ default FB_VESA_TNG if X86 ++ ++config FB_VESA_STD ++ bool "vesafb" + select FB_CFB_FILLRECT + select FB_CFB_COPYAREA + select FB_CFB_IMAGEBLIT +@@ -557,7 +571,43 @@ config FB_VESA + This is the frame buffer device driver for generic VESA 2.0 + compliant graphic cards. The older VESA 1.2 cards are not supported. + You will get a boot time penguin logo at no additional cost. Please +- read <file:Documentation/fb/vesafb.txt>. If unsure, say Y. ++ read <file:Documentation/fb/vesafb.txt>. Choose this driver if you ++ are experiencing problems with vesafb-tng or if you own a 64-bit system. ++ ++ Note that this driver cannot be compiled as a module. ++ ++config FB_VESA_TNG ++ bool "vesafb-tng" ++ depends on !X86_64 ++ select FB_MODE_HELPERS ++ select FB_CFB_FILLRECT ++ select FB_CFB_COPYAREA ++ select FB_CFB_IMAGEBLIT ++ help ++ This is an enhanced generic frame buffer device driver for ++ VBE 2.0 compliant graphic cards. It can take advantage of VBE 3.0 ++ features (refresh rate adjustment) when these are available. ++ The driver also makes it possible to change the video mode ++ on the fly and to switch back to text mode when it's unloaded. ++ ++ If the driver is compiled as a module, the module will be called ++ vesafb-tng. ++ ++endchoice ++ ++config FB_VESA_DEFAULT_MODE ++ string "VESA default mode" ++ depends on FB_VESA_TNG ++ default "640x480@60" ++ help ++ This option is used to determine the default mode vesafb is ++ supposed to switch to in case no mode is provided as a kernel ++ command line parameter. ++ ++config VIDEO_SELECT ++ bool ++ depends on FB_VESA ++ default y + + config FB_IMAC + bool "Intel-based Macintosh Framebuffer Support" +diff --git a/drivers/video/Makefile b/drivers/video/Makefile +index 309a26d..e57b0e7 100644 +--- a/drivers/video/Makefile ++++ b/drivers/video/Makefile +@@ -102,7 +102,11 @@ obj-$(CONFIG_FB_PNX4008_DUM_RGB) += pnx4008/ + obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o + + # Platform or fallback drivers go here +-obj-$(CONFIG_FB_VESA) += vesafb.o ++ifeq ($(CONFIG_FB_VESA_STD),y) ++ obj-y += vesafb.o ++else ++ obj-$(CONFIG_FB_VESA) += vesafb-thread.o vesafb-tng.o ++endif + obj-$(CONFIG_FB_IMAC) += imacfb.o + obj-$(CONFIG_FB_VGA16) += vga16fb.o vgastate.o + obj-$(CONFIG_FB_OF) += offb.o +diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c +index 3cfea31..bfb39cc 100644 +--- a/drivers/video/fbmem.c ++++ b/drivers/video/fbmem.c +@@ -1408,6 +1408,7 @@ fbmem_init(void) + printk(KERN_WARNING "Unable to create fb class; errno = %ld\n", PTR_ERR(fb_class)); + fb_class = NULL; + } ++ + return 0; + } + +diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c +index 5df41f6..f838a53 100644 +--- a/drivers/video/modedb.c ++++ b/drivers/video/modedb.c +@@ -674,6 +674,7 @@ void fb_var_to_videomode(struct fb_videomode *mode, + { + u32 pixclock, hfreq, htotal, vtotal; + ++ mode->refresh = 0; + mode->name = NULL; + mode->xres = var->xres; + mode->yres = var->yres; +@@ -1025,3 +1026,4 @@ EXPORT_SYMBOL(fb_find_best_mode); + EXPORT_SYMBOL(fb_find_nearest_mode); + EXPORT_SYMBOL(fb_videomode_to_modelist); + EXPORT_SYMBOL(fb_find_mode); ++EXPORT_SYMBOL(fb_destroy_modelist); +diff --git a/drivers/video/vesafb-thread.c b/drivers/video/vesafb-thread.c +new file mode 100644 +index 0000000..543e202 +--- /dev/null ++++ b/drivers/video/vesafb-thread.c +@@ -0,0 +1,751 @@ ++/* ++ * Framebuffer driver for VBE 2.0+ compliant graphic boards. ++ * Kernel thread and vm86 routines. ++ * ++ * (c) 2004-2006 Michal Januszewski <spock@gentoo.org> ++ * ++ */ ++ ++#include <linux/workqueue.h> ++#include <linux/completion.h> ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/errno.h> ++#include <linux/mm.h> ++#include <linux/delay.h> ++#include <linux/signal.h> ++#include <linux/freezer.h> ++#include <linux/suspend.h> ++#include <linux/unistd.h> ++#include <video/vesa.h> ++#include <video/edid.h> ++#include <asm/mman.h> ++#include <asm/page.h> ++#include <asm/vm86.h> ++#include <asm/thread_info.h> ++#include <asm/uaccess.h> ++#include <asm/mmu_context.h> ++#include "edid.h" ++ ++static int errno; ++ ++static DECLARE_COMPLETION(vesafb_th_completion); ++static DECLARE_MUTEX(vesafb_task_list_sem); ++static LIST_HEAD(vesafb_task_list); ++static DECLARE_WAIT_QUEUE_HEAD(vesafb_wait); ++ ++static struct vm86_struct vm86; ++static int vesafb_pid = 0; ++ ++#define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) ++#define VM86_PUSHW(x) \ ++do { \ ++ vm86.regs.esp -= 2; \ ++ *(u16*)(STACK_ADDR + vm86.regs.esp) = x; \ ++} while(0); ++ ++/* Stack, the return code and buffers will be put into ++ * one contiguous memory chunk: ++ * ++ * [ STACK | RET_CODE | BUFFER ] ++ * ++ * Some video BIOSes (sis6326) try to store data somewhere ++ * in 0x7000-0x7fff, so we zeromap more memory to be safe. ++ */ ++#define IVTBDA_SIZE PAGE_SIZE ++#define RET_CODE_SIZE 0x0010 ++#define STACK_SIZE 0x0500 ++#define BUFFER_SIZE 0x10000 ++ ++/* The amount of memory that will be allocated should be a multiple ++ * of PAGE_SIZE. */ ++#define __MEM_SIZE (RET_CODE_SIZE + STACK_SIZE + BUFFER_SIZE) ++#define REAL_MEM_SIZE (((__MEM_SIZE / PAGE_SIZE) + 1) * PAGE_SIZE) ++ ++#define IVTBDA_ADDR 0x00000 ++#define STACK_ADDR (IVTBDA_ADDR + IVTBDA_SIZE) ++#define RET_CODE_ADDR (STACK_ADDR + STACK_SIZE) ++#define BUF_ADDR (RET_CODE_ADDR + RET_CODE_SIZE) ++ ++#define FLAG_D (1 << 10) ++ ++/* Syscalls used by the vesafb thread */ ++static int vm86old(struct vm86_struct __user* v86) ++{ ++ long res; ++ __asm__ volatile ("push %%ebx; movl %2, %%ebx ; int $0x80 ; pop %%ebx" ++ : "=a" (res) ++ : "0" (__NR_vm86old), "ri" ((long)(v86)) : "memory"); ++ ++ if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { ++ errno = -res; ++ res = -1; ++ } ++ return (int)res; ++} ++ ++static int ioperm(unsigned long a, unsigned long b, unsigned long c) ++{ ++ long res; ++ __asm__ volatile ("push %%ebx; movl %2, %%ebx ; int $0x80 ; pop %%ebx" ++ : "=a" (res) ++ : "0" (__NR_ioperm), "ri" ((long)(a)), "c" ((long)(b)), ++ "d" ((long)(c)) : "memory"); ++ ++ if ((unsigned long)(res) >= (unsigned long)(-MAX_ERRNO)) { ++ errno = -res; ++ res = -1; ++ } ++ return (int)res; ++} ++ ++/* Segment prefix opcodes */ ++enum { ++ P_CS = 0x2e, ++ P_SS = 0x36, ++ P_DS = 0x3e, ++ P_ES = 0x26, ++ P_FS = 0x64, ++ P_GS = 0x65 ++}; ++ ++/* Emulated vm86 ins instruction */ ++static void vm86_ins(int size) ++{ ++ u32 edx, edi; ++ edx = vm86.regs.edx & 0xffff; ++ edi = (vm86.regs.edi & 0xffff) + (u32)(vm86.regs.es << 4); ++ ++ if (vm86.regs.eflags & FLAG_D) ++ asm volatile ("std\n"); ++ else ++ asm volatile ("cld\n"); ++ ++ switch (size) { ++ case 4: ++ asm volatile ("insl\n" : "=D" (edi) : "d" (edx), "0" (edi)); ++ break; ++ case 2: ++ asm volatile ("insw\n" : "=D" (edi) : "d" (edx), "0" (edi)); ++ break; ++ case 1: ++ asm volatile ("insb\n" : "=D" (edi) : "d" (edx), "0" (edi)); ++ break; ++ } ++ ++ if (vm86.regs.eflags & FLAG_D) ++ asm volatile ("cld\n"); ++ ++ edi -= (u32)(vm86.regs.es << 4); ++ ++ vm86.regs.edi &= 0xffff0000; ++ vm86.regs.edi |= edi & 0xffff; ++} ++ ++static void vm86_rep_ins(int size) ++{ ++ u16 cx = vm86.regs.ecx; ++ while (cx--) ++ vm86_ins(size); ++ ++ vm86.regs.ecx &= 0xffff0000; ++} ++ ++/* Emulated vm86 outs instruction */ ++static void vm86_outs(int size, int segment) ++{ ++ u32 edx, esi, base; ++ ++ edx = vm86.regs.edx & 0xffff; ++ esi = vm86.regs.esi & 0xffff; ++ ++ switch (segment) { ++ case P_CS: base = vm86.regs.cs; break; ++ case P_SS: base = vm86.regs.ss; break; ++ case P_ES: base = vm86.regs.es; break; ++ case P_FS: base = vm86.regs.fs; break; ++ case P_GS: base = vm86.regs.gs; break; ++ default: base = vm86.regs.ds; break; ++ } ++ ++ esi += base << 4; ++ ++ if (vm86.regs.eflags & FLAG_D) ++ asm volatile ("std\n"); ++ else ++ asm volatile ("cld\n"); ++ ++ switch (size) { ++ case 4: ++ asm volatile ("outsl\n" : "=S" (esi) : "d" (edx), "0" (esi)); ++ break; ++ case 2: ++ asm volatile ("outsw\n" : "=S" (esi) : "d" (edx), "0" (esi)); ++ break; ++ case 1: ++ asm volatile ("outsb\n" : "=S" (esi) : "d" (edx), "0" (esi)); ++ break; ++ } ++ ++ if (vm86.regs.eflags & FLAG_D) ++ asm volatile ("cld"); ++ ++ esi -= base << 4; ++ vm86.regs.esi &= 0xffff0000; ++ vm86.regs.esi |= (esi & 0xffff); ++} ++ ++static void vm86_rep_outs(int size, int segment) ++{ ++ u16 cx = vm86.regs.ecx; ++ while (cx--) ++ vm86_outs(size, segment); ++ ++ vm86.regs.ecx &= 0xffff0000; ++} ++ ++static int vm86_do_unknown(void) ++{ ++ u8 data32 = 0, segment = P_DS, rep = 0; ++ u8 *instr; ++ int ret = 0, i = 0; ++ ++ instr = (u8*)((vm86.regs.cs << 4) + vm86.regs.eip); ++ ++ while (1) { ++ switch(instr[i]) { ++ case 0x66: /* operand size prefix */ ++ data32 = 1 - data32; ++ i++; ++ break; ++ case 0xf2: /* repnz */ ++ case 0xf3: /* rep */ ++ rep = 1; ++ i++; ++ break; ++ case P_CS: /* segment prefix */ ++ case P_SS: ++ case P_DS: ++ case P_ES: ++ case P_FS: ++ case P_GS: ++ segment = instr[i]; ++ i++; ++ break; ++ case 0xf0: /* LOCK - ignored */ ++ case 0x67: /* address size prefix - ignored */ ++ i++; ++ break; ++ case 0x6c: /* insb */ ++ if (rep) ++ vm86_rep_ins(1); ++ else ++ vm86_ins(1); ++ i++; ++ goto out; ++ case 0x6d: /* insw / insd */ ++ if (rep) { ++ if (data32) ++ vm86_rep_ins(4); ++ else ++ vm86_rep_ins(2); ++ } else { ++ if (data32) ++ vm86_ins(4); ++ else ++ vm86_ins(2); ++ } ++ i++; ++ goto out; ++ case 0x6e: /* outsb */ ++ if (rep) ++ vm86_rep_outs(1, segment); ++ else ++ vm86_outs(1, segment); ++ i++; ++ goto out; ++ case 0x6f: /* outsw / outsd */ ++ if (rep) { ++ if (data32) ++ vm86_rep_outs(4, segment); ++ else ++ vm86_rep_outs(2, segment); ++ } else { ++ if (data32) ++ vm86_outs(4, segment); ++ else ++ vm86_outs(2, segment); ++ } ++ i++; ++ goto out; ++ case 0xe4: /* inb xx */ ++ asm volatile ( ++ "inb %w1, %b0" ++ : "=a" (vm86.regs.eax) ++ : "d" (instr[i+1]), "0" (vm86.regs.eax)); ++ i += 2; ++ goto out; ++ case 0xe5: /* inw xx / ind xx */ ++ if (data32) { ++ asm volatile ( ++ "inl %w1, %0" ++ : "=a" (vm86.regs.eax) ++ : "d" (instr[i+1]), ++ "0" (vm86.regs.eax)); ++ } else { ++ asm volatile ( ++ "inw %w1, %w0" ++ : "=a" (vm86.regs.eax) ++ : "d" (instr[i+1]), ++ "0" (vm86.regs.eax)); ++ } ++ i += 2; ++ goto out; ++ ++ case 0xec: /* inb dx */ ++ asm volatile ( ++ "inb %w1, %b0" ++ : "=a" (vm86.regs.eax) ++ : "d" (vm86.regs.edx), "0" (vm86.regs.eax)); ++ i++; ++ goto out; ++ case 0xed: /* inw dx / ind dx */ ++ if (data32) { ++ asm volatile ( ++ "inl %w1, %0" ++ : "=a" (vm86.regs.eax) ++ : "d" (vm86.regs.edx)); ++ } else { ++ asm volatile ( ++ "inw %w1, %w0" ++ : "=a" (vm86.regs.eax) ++ : "d" (vm86.regs.edx)); ++ } ++ i++; ++ goto out; ++ case 0xe6: /* outb xx */ ++ asm volatile ( ++ "outb %b0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), "d" (instr[i+1])); ++ i += 2; ++ goto out; ++ case 0xe7: /* outw xx / outd xx */ ++ if (data32) { ++ asm volatile ( ++ "outl %0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), ++ "d" (instr[i+1])); ++ } else { ++ asm volatile ( ++ "outw %w0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), ++ "d" (instr[i+1])); ++ } ++ i += 2; ++ goto out; ++ case 0xee: /* outb dx */ ++ asm volatile ( ++ "outb %b0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), "d" (vm86.regs.edx)); ++ i++; ++ goto out; ++ case 0xef: /* outw dx / outd dx */ ++ if (data32) { ++ asm volatile ( ++ "outl %0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), ++ "d" (vm86.regs.edx)); ++ } else { ++ asm volatile ( ++ "outw %w0, %w1" ++ : /* no return value */ ++ : "a" (vm86.regs.eax), ++ "d" (vm86.regs.edx)); ++ } ++ i++; ++ goto out; ++ default: ++ printk(KERN_ERR "vesafb: BUG, opcode 0x%x emulation " ++ "not supported (EIP: 0x%lx)\n", ++ instr[i], (u32)(vm86.regs.cs << 4) + ++ vm86.regs.eip); ++ ret = 1; ++ goto out; ++ } ++ } ++out: vm86.regs.eip += i; ++ return ret; ++} ++ ++void vesafb_do_vm86(struct vm86_regs *regs) ++{ ++ unsigned int ret; ++ u8 *retcode = (void*)RET_CODE_ADDR; ++ ++ memset(&vm86,0,sizeof(vm86)); ++ memcpy(&vm86.regs, regs, sizeof(struct vm86_regs)); ++ ++ /* The return code */ ++ retcode[0] = 0xcd; /* int opcode */ ++ retcode[1] = 0xff; /* int number (255) */ ++ ++ /* We use int 0xff to get back to protected mode */ ++ memset(&vm86.int_revectored, 0, sizeof(vm86.int_revectored)); ++ ((unsigned char *)&vm86.int_revectored)[0xff / 8] |= (1 << (0xff % 8)); ++ ++ /* ++ * We want to call int 0x10, so we set: ++ * CS = 0x42 = 0x10 * 4 + 2 ++ * IP = 0x40 = 0x10 * 4 ++ * and SS:ESP. It's up to the caller to set the rest of the registers. ++ */ ++ vm86.regs.eflags = DEFAULT_VM86_FLAGS; ++ vm86.regs.cs = *(unsigned short *)0x42; ++ vm86.regs.eip = *(unsigned short *)0x40; ++ vm86.regs.ss = (STACK_ADDR >> 4); ++ vm86.regs.esp = ((STACK_ADDR & 0x0000f) + STACK_SIZE); ++ ++ /* These will be fetched off the stack when we come to an iret in the ++ * int's 0x10 code. */ ++ VM86_PUSHW(DEFAULT_VM86_FLAGS); ++ VM86_PUSHW((RET_CODE_ADDR >> 4)); /* return code segment */ ++ VM86_PUSHW((RET_CODE_ADDR & 0x0000f)); /* return code offset */ ++ ++ while(1) { ++ ret = vm86old(&vm86); ++ ++ if (VM86_TYPE(ret) == VM86_INTx) { ++ int vint = VM86_ARG(ret); ++ ++ /* If exit from vm86 was caused by int 0xff, then ++ * we're done.. */ ++ if (vint == 0xff) ++ goto out; ++ ++ /* .. otherwise, we have to call the int handler ++ * manually */ ++ VM86_PUSHW(vm86.regs.eflags); ++ VM86_PUSHW(vm86.regs.cs); ++ VM86_PUSHW(vm86.regs.eip); ++ ++ vm86.regs.cs = *(u16 *)((vint << 2) + 2); ++ vm86.regs.eip = *(u16 *)(vint << 2); ++ vm86.regs.eflags &= ~(VIF_MASK | TF_MASK); ++ } else if (VM86_TYPE(ret) == VM86_UNKNOWN) { ++ if (vm86_do_unknown()) ++ goto out; ++ } else { ++ printk(KERN_ERR "vesafb: BUG, returned from " ++ "vm86 with %x (EIP: 0x%lx)\n", ++ ret, (u32)(vm86.regs.cs << 4) + ++ vm86.regs.eip); ++ goto out; ++ } ++ } ++ ++out: /* copy the registers' state back to the caller's struct */ ++ memcpy(regs, &vm86.regs, sizeof(struct vm86_regs)); ++} ++ ++static int vesafb_remap_pfn_range(unsigned long start, unsigned long end, ++ unsigned long pgoff, unsigned long prot, ++ int type) ++{ ++ struct vm_area_struct *vma; ++ struct mm_struct *mm = current->mm; ++ int ret = 0; ++ ++ vma = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); ++ if (!vma) ++ return -ENOMEM; ++ memset(vma, 0, sizeof(*vma)); ++ down_write(&mm->mmap_sem); ++ vma->vm_mm = mm; ++ vma->vm_start = start; ++ vma->vm_end = end; ++ vma->vm_flags = VM_READ | VM_WRITE | VM_EXEC; ++ vma->vm_flags |= mm->def_flags; ++ vma->vm_page_prot.pgprot = prot; ++ vma->vm_pgoff = pgoff; ++ ++ if ((ret = insert_vm_struct(mm, vma))) { ++ up_write(&mm->mmap_sem); ++ kmem_cache_free(vm_area_cachep, vma); ++ return ret; ++ } ++ ++ if (type) { ++ ret = zeromap_page_range(vma, ++ vma->vm_start, ++ vma->vm_end - vma->vm_start, ++ vma->vm_page_prot); ++ } else { ++ vma->vm_flags |= VM_SHARED; ++ ret = remap_pfn_range(vma, ++ vma->vm_start, ++ vma->vm_pgoff, ++ vma->vm_end - vma->vm_start, ++ vma->vm_page_prot); ++ } ++ up_write(&mm->mmap_sem); ++ return ret; ++} ++ ++static inline int vesafb_init_mem(void) ++{ ++ int ret = 0; ++ ++ /* The memory chunks we're remapping here should be multiples ++ * of PAGE_SIZE. */ ++ ret += vesafb_remap_pfn_range(0x00000, IVTBDA_SIZE, 0, ++ PROT_READ | PROT_EXEC | PROT_WRITE, 0); ++ ret += vesafb_remap_pfn_range(IVTBDA_SIZE, REAL_MEM_SIZE, 0, ++ PROT_READ | PROT_EXEC | PROT_WRITE, 1); ++ ret += vesafb_remap_pfn_range(0x9f000, 0x100000, ++ 0x9f000 >> PAGE_SHIFT, ++ PROT_READ | PROT_EXEC | PROT_WRITE, 0); ++ if (ret) ++ printk(KERN_ERR "vesafb thread: memory remapping failed\n"); ++ ++ return ret; ++} ++ ++#define vesafb_get_string(str) \ ++{ \ ++ /* The address is in the form ssssoooo, where oooo = offset, \ ++ * ssss = segment */ \ ++ addr = ((p_vbe(tsk->buf)->str & 0xffff0000) >> 12) + \ ++ (p_vbe(tsk->buf)->str & 0x0000ffff); \ ++ \ ++ /* The data is in ROM which is shared between processes, so we \ ++ * just translate the real mode address into one visible from \ ++ * kernel space */ \ ++ if (addr >= 0xa0000) { \ ++ p_vbe(tsk->buf)->str = (u32) __va(addr); \ ++ \ ++ /* The data is in the buffer, we just have to convert the \ ++ * address so that it points into the buffer user provided. */ \ ++ } else if (addr > BUF_ADDR && addr < BUF_ADDR + \ ++ sizeof(struct vesafb_vbe_ib)) { \ ++ addr -= BUF_ADDR; \ ++ p_vbe(tsk->buf)->str = (u32) (tsk->buf + addr); \ ++ \ ++ /* This should never happen: someone was insane enough to put \ ++ * the data somewhere in RAM.. */ \ ++ } else { \ ++ p_vbe(tsk->buf)->str = (u32) ""; \ ++ } \ ++} ++ ++void vesafb_handle_getvbeib(struct vesafb_task *tsk) ++{ ++ int addr, res; ++ ++ tsk->regs.es = (BUF_ADDR >> 4); ++ tsk->regs.edi = (BUF_ADDR & 0x000f); ++ strncpy(p_vbe(BUF_ADDR)->vbe_signature, "VBE2", 4); ++ ++ vesafb_do_vm86(&tsk->regs); ++ memcpy(tsk->buf, (void*)(BUF_ADDR), sizeof(struct vesafb_vbe_ib)); ++ ++ /* The OEM fields were not defined prior to VBE 2.0 */ ++ if (p_vbe(tsk->buf)->vbe_version >= 0x200) { ++ vesafb_get_string(oem_string_ptr); ++ vesafb_get_string(oem_vendor_name_ptr); ++ vesafb_get_string(oem_product_name_ptr); ++ vesafb_get_string(oem_product_rev_ptr); ++ } ++ ++ /* This is basically the same as vesafb_get_string() */ ++ addr = ((p_vbe(tsk->buf)->mode_list_ptr & 0xffff0000) >> 12) + ++ (p_vbe(tsk->buf)->mode_list_ptr & 0x0000ffff); ++ ++ if (addr >= 0xa0000) { ++ p_vbe(tsk->buf)->mode_list_ptr = (u32) __va(addr); ++ } else if (addr > BUF_ADDR && addr < BUF_ADDR + ++ sizeof(struct vesafb_vbe_ib)) { ++ addr -= BUF_ADDR; ++ p_vbe(tsk->buf)->mode_list_ptr = (u32) (tsk->buf + addr); ++ } else { ++ res = 0; ++ printk(KERN_WARNING "vesafb: warning, copying modelist " ++ "from somewhere in RAM!\n"); ++ while (*(u16*)(addr+res) != 0xffff && ++ res < (sizeof(p_vbe(tsk->buf)->reserved) - 2)) { ++ *(u16*) ((u32)&(p_vbe(tsk->buf)->reserved) + res) = ++ *(u16*)(addr+res); ++ res += 2; ++ } ++ *(u16*) ((u32)&(p_vbe(tsk->buf)->reserved) + res) = 0xffff; ++ } ++} ++ ++int vesafb_handle_tasks(void) ++{ ++ struct vesafb_task *tsk; ++ struct list_head *curr, *next; ++ int ret = 0; ++ ++ down(&vesafb_task_list_sem); ++ list_for_each_safe(curr, next, &vesafb_task_list) { ++ tsk = list_entry(curr, struct vesafb_task, node); ++ ++ if (tsk->flags & TF_EXIT) { ++ ret = 1; ++ goto task_done; ++ } ++ if (tsk->flags & TF_GETVBEIB) { ++ vesafb_handle_getvbeib(tsk); ++ goto task_done; ++ } ++ /* Do we need to store a pointer to the buffer in ES:EDI? */ ++ if (tsk->flags & TF_BUF_DI) { ++ tsk->regs.es = (BUF_ADDR >> 4); ++ tsk->regs.edi = (BUF_ADDR & 0x000f); ++ } ++ /* Sometimes the pointer has to be in ES:EBX. */ ++ if (tsk->flags & TF_BUF_BX) { ++ tsk->regs.es = (BUF_ADDR >> 4); ++ tsk->regs.ebx = (BUF_ADDR & 0x000f); ++ } ++ if (tsk->flags & (TF_BUF_DI | TF_BUF_BX)) ++ memcpy((void*)BUF_ADDR, tsk->buf, tsk->buf_len); ++ ++ vesafb_do_vm86(&tsk->regs); ++ ++ if (tsk->flags & TF_RETURN_BUF) ++ memcpy(tsk->buf, (void*)BUF_ADDR, tsk->buf_len); ++ ++task_done: list_del(curr); ++ complete(&tsk->done); ++ } ++ ++ /* If we're going to kill this thread, don't allow any elements ++ * to be added to the task list. */ ++ if (!ret) ++ up(&vesafb_task_list_sem); ++ ++ return ret; ++} ++ ++/* ++ * This 'hybrid' thread serves as a backend for vesafb-tng, handling all vm86 ++ * calls. It is started as a kernel thread. It then creates its own mm struct, ++ * thus separating itself from any userspace processes. At this moment, it ++ * stops being a kernel thread (kernel threads have mm = NULL) and becomes ++ * a 'hybrid' thread -- one that has full access to kernel space, yet runs ++ * with its own address space. ++ * ++ * This is necessary because in order to make vm86 calls some parts of the ++ * first 1MB of RAM have to be setup to mimic the real mode. These are: ++ * - interrupt vector table [0x00000-0x003ff] ++ * - BIOS data area [0x00400-0x004ff] ++ * - Extended BIOS data area [0x9fc00-0x9ffff] ++ * - the video RAM [0xa0000-0xbffff] ++ * - video BIOS [0xc0000-0xcffff] ++ * - motherboard BIOS [0xf0000-0xfffff] ++ */ ++int vesafb_thread(void *unused) ++{ ++ int err = 0; ++ ++ set_fs(KERNEL_DS); ++ daemonize("vesafb"); ++ ++ if (set_new_mm()) { ++ err = -ENOMEM; ++ goto thr_end; ++ } ++ if (vesafb_init_mem()) { ++ err = -ENOMEM; ++ goto thr_end; ++ } ++ ++ DPRINTK("started vesafb thread\n"); ++ ++ /* Having an IO bitmap makes things faster as we avoid GPFs ++ * when running vm86 code. We can live if it fails, though, ++ * so don't bother checking for errors. */ ++ ioperm(0,1024,1); ++ set_user_nice(current, -10); ++ ++ complete(&vesafb_th_completion); ++ ++ while (1) { ++ if (vesafb_handle_tasks()) ++ break; ++ wait_event_interruptible(vesafb_wait, ++ !list_empty(&vesafb_task_list)); ++ try_to_freeze(); ++ } ++ ++out: DPRINTK("exiting the vesafb thread\n"); ++ vesafb_pid = -1; ++ ++ /* Now that all callers know this thread is no longer running ++ * (pid < 0), allow them to continue. */ ++ up(&vesafb_task_list_sem); ++ return err; ++thr_end: ++ down(&vesafb_task_list_sem); ++ complete(&vesafb_th_completion); ++ goto out; ++} ++ ++int vesafb_queue_task(struct vesafb_task *tsk) ++{ ++ down(&vesafb_task_list_sem); ++ if (vesafb_pid < 0) ++ return -1; ++ list_add_tail(&tsk->node, &vesafb_task_list); ++ up(&vesafb_task_list_sem); ++ wake_up(&vesafb_wait); ++ return 0; ++} ++ ++int vesafb_wait_for_thread(void) ++{ ++ /* PID 0 means that the thread is still initializing. */ ++ if (vesafb_pid < 0) ++ return -1; ++ wait_for_completion(&vesafb_th_completion); ++ return 0; ++} ++ ++int __init vesafb_init_thread(void) ++{ ++ vesafb_pid = kernel_thread(vesafb_thread,NULL,0); ++ return 0; ++} ++ ++#ifdef MODULE ++void __exit vesafb_kill_thread(void) ++{ ++ struct vesafb_task *tsk; ++ if (vesafb_pid <= 0) ++ return; ++ ++ vesafb_create_task(tsk); ++ if (!tsk) ++ return; ++ tsk->flags |= TF_EXIT; ++ vesafb_queue_task(tsk); ++ vesafb_wait_for_task(tsk); ++ kfree(tsk); ++ return; ++} ++module_exit(vesafb_kill_thread); ++#endif ++module_init(vesafb_init_thread); ++ ++EXPORT_SYMBOL_GPL(vesafb_queue_task); ++EXPORT_SYMBOL_GPL(vesafb_wait_for_thread); ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Michal Januszewski"); ++ +diff --git a/drivers/video/vesafb-tng.c b/drivers/video/vesafb-tng.c +new file mode 100644 +index 0000000..b4d4394 +--- /dev/null ++++ b/drivers/video/vesafb-tng.c +@@ -0,0 +1,1586 @@ ++/* ++ * Framebuffer driver for VBE 2.0+ compliant graphic boards ++ * ++ * (c) 2004-2006 Michal Januszewski <spock@gentoo.org> ++ * Based upon vesafb code by Gerd Knorr <kraxel@goldbach.in-berlin.de> ++ * ++ */ ++ ++#include <linux/module.h> ++#include <linux/kernel.h> ++#include <linux/errno.h> ++#include <linux/string.h> ++#include <linux/mm.h> ++#include <linux/tty.h> ++#include <linux/delay.h> ++#include <linux/fb.h> ++#include <linux/ioport.h> ++#include <linux/init.h> ++#include <linux/proc_fs.h> ++#include <linux/completion.h> ++#include <linux/platform_device.h> ++#include <video/edid.h> ++#include <video/vesa.h> ++#include <video/vga.h> ++#include <asm/io.h> ++#include <asm/mtrr.h> ++#include <asm/page.h> ++#include <asm/pgtable.h> ++#include "edid.h" ++ ++#define dac_reg (0x3c8) ++#define dac_val (0x3c9) ++ ++#define VESAFB_NEED_EXACT_RES 1 ++#define VESAFB_NEED_EXACT_DEPTH 2 ++ ++/* --------------------------------------------------------------------- */ ++ ++static struct fb_var_screeninfo vesafb_defined __initdata = { ++ .activate = FB_ACTIVATE_NOW, ++ .height = 0, ++ .width = 0, ++ .right_margin = 32, ++ .upper_margin = 16, ++ .lower_margin = 4, ++ .vsync_len = 4, ++ .vmode = FB_VMODE_NONINTERLACED, ++}; ++ ++static struct fb_fix_screeninfo vesafb_fix __initdata = { ++ .id = "VESA VGA", ++ .type = FB_TYPE_PACKED_PIXELS, ++ .accel = FB_ACCEL_NONE, ++}; ++ ++static int mtrr = 0; /* disable mtrr by default */ ++static int blank = 1; /* enable blanking by default */ ++static int ypan = 0; /* 0 - nothing, 1 - ypan, 2 - ywrap */ ++static int pmi_setpal = 1; /* pmi for palette changes */ ++static u16 *pmi_base = NULL; /* protected mode interface location */ ++static void (*pmi_start)(void) = NULL; ++static void (*pmi_pal)(void) = NULL; ++static struct vesafb_vbe_ib vbe_ib; ++static struct vesafb_mode_ib *vbe_modes; ++static int vbe_modes_cnt = 0; ++static struct fb_info *vesafb_info = NULL; ++static int nocrtc = 0; /* ignore CRTC settings */ ++static int noedid __initdata = 0; /* don't try DDC transfers */ ++static int vram_remap __initdata = 0; /* set amount of memory to be used */ ++static int vram_total __initdata = 0; /* set total amount of memory */ ++static u16 maxclk __initdata = 0; /* maximum pixel clock */ ++static u16 maxvf __initdata = 0; /* maximum vertical frequency */ ++static u16 maxhf __initdata = 0; /* maximum horizontal frequency */ ++static int gtf __initdata = 0; /* forces use of the GTF */ ++static char *mode_option __initdata = NULL; ++static u16 vbemode __initdata = 0; ++ ++/* --------------------------------------------------------------------- */ ++ ++static int vesafb_find_vbe_mode(int xres, int yres, int depth, ++ unsigned char flags) ++{ ++ int i, match = -1, h = 0, d = 0x7fffffff; ++ ++ for (i = 0; i < vbe_modes_cnt; i++) { ++ h = abs(vbe_modes[i].x_res - xres) + ++ abs(vbe_modes[i].y_res - yres) + ++ abs(depth - vbe_modes[i].depth); ++ if (h == 0) ++ return i; ++ if (h < d || (h == d && vbe_modes[i].depth > depth)) { ++ d = h; ++ match = i; ++ } ++ } ++ i = 1; ++ ++ if (flags & VESAFB_NEED_EXACT_DEPTH && vbe_modes[match].depth != depth) ++ i = 0; ++ if (flags & VESAFB_NEED_EXACT_RES && d > 24) ++ i = 0; ++ if (i != 0) ++ return match; ++ else ++ return -1; ++} ++ ++static int vesafb_pan_display(struct fb_var_screeninfo *var, ++ struct fb_info *info) ++{ ++ int offset; ++ ++ offset = (var->yoffset * info->fix.line_length + var->xoffset) / 4; ++ ++ /* It turns out it's not the best idea to do panning via vm86, ++ * so we only allow it if we have a PMI. */ ++ if (pmi_start) { ++ __asm__ __volatile__( ++ "call *(%%edi)" ++ : /* no return value */ ++ : "a" (0x4f07), /* EAX */ ++ "b" (0), /* EBX */ ++ "c" (offset), /* ECX */ ++ "d" (offset >> 16), /* EDX */ ++ "D" (&pmi_start)); /* EDI */ ++ } ++ return 0; ++} ++ ++static int vesafb_blank(int blank, struct fb_info *info) ++{ ++ struct vesafb_task *tsk; ++ int err = 1; ++ ++ if (vbe_ib.capabilities & VBE_CAP_VGACOMPAT) { ++ int loop = 10000; ++ u8 seq = 0, crtc17 = 0; ++ ++ if (blank == FB_BLANK_POWERDOWN) { ++ seq = 0x20; ++ crtc17 = 0x00; ++ err = 0; ++ } else { ++ seq = 0x00; ++ crtc17 = 0x80; ++ err = (blank == FB_BLANK_UNBLANK) ? 0 : -EINVAL; ++ } ++ ++ vga_wseq(NULL, 0x00, 0x01); ++ seq |= vga_rseq(NULL, 0x01) & ~0x20; ++ vga_wseq(NULL, 0x00, seq); ++ ++ crtc17 |= vga_rcrt(NULL, 0x17) & ~0x80; ++ while (loop--); ++ vga_wcrt(NULL, 0x17, crtc17); ++ vga_wseq(NULL, 0x00, 0x03); ++ } else { ++ vesafb_create_task (tsk); ++ if (!tsk) ++ return -ENOMEM; ++ tsk->regs.eax = 0x4f10; ++ switch (blank) { ++ case FB_BLANK_UNBLANK: ++ tsk->regs.ebx = 0x0001; ++ break; ++ case FB_BLANK_NORMAL: ++ tsk->regs.ebx = 0x0101; /* standby */ ++ break; ++ case FB_BLANK_POWERDOWN: ++ tsk->regs.ebx = 0x0401; /* powerdown */ ++ break; ++ default: ++ goto out; ++ } ++ tsk->flags = TF_CALL; ++ if (!vesafb_queue_task (tsk)) ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) == 0x004f) ++ err = 0; ++out: kfree(tsk); ++ } ++ return err; ++} ++ ++static int vesafb_setpalette(struct vesafb_pal_entry *entries, int count, ++ int start, struct fb_info *info) ++{ ++ struct vesafb_task *tsk; ++ int i = ((struct vesafb_par*)info->par)->mode_idx; ++ int ret = 0; ++ ++ /* We support palette modifications for 8 bpp modes only, so ++ * there can never be more than 256 entries. */ ++ if (start + count > 256) ++ return -EINVAL; ++ ++ /* Use VGA registers if mode is VGA-compatible. */ ++ if (i >= 0 && i < vbe_modes_cnt && ++ vbe_modes[i].mode_attr & VBE_MODE_VGACOMPAT) { ++ for (i = 0; i < count; i++) { ++ outb_p(start + i, dac_reg); ++ outb_p(entries[i].red, dac_val); ++ outb_p(entries[i].green, dac_val); ++ outb_p(entries[i].blue, dac_val); ++ } ++ } else if (pmi_setpal) { ++ __asm__ __volatile__( ++ "call *(%%esi)" ++ : /* no return value */ ++ : "a" (0x4f09), /* EAX */ ++ "b" (0), /* EBX */ ++ "c" (count), /* ECX */ ++ "d" (start), /* EDX */ ++ "D" (entries), /* EDI */ ++ "S" (&pmi_pal)); /* ESI */ ++ } else { ++ vesafb_create_task (tsk); ++ if (!tsk) ++ return -ENOMEM; ++ tsk->regs.eax = 0x4f09; ++ tsk->regs.ebx = 0x0; ++ tsk->regs.ecx = count; ++ tsk->regs.edx = start; ++ tsk->buf = entries; ++ tsk->buf_len = sizeof(struct vesafb_pal_entry) * count; ++ tsk->flags = TF_CALL | TF_BUF_DI; ++ ++ if (!vesafb_queue_task (tsk)) ++ vesafb_wait_for_task(tsk); ++ if ((tsk->regs.eax & 0xffff) != 0x004f) ++ ret = 1; ++ kfree(tsk); ++ } ++ return ret; ++} ++ ++static int vesafb_setcolreg(unsigned regno, unsigned red, unsigned green, ++ unsigned blue, unsigned transp, ++ struct fb_info *info) ++{ ++ struct vesafb_pal_entry entry; ++ int shift = 16 - info->var.green.length; ++ int ret = 0; ++ ++ if (regno >= info->cmap.len) ++ return -EINVAL; ++ ++ if (info->var.bits_per_pixel == 8) { ++ entry.red = red >> shift; ++ entry.green = green >> shift; ++ entry.blue = blue >> shift; ++ entry.pad = 0; ++ ++ ret = vesafb_setpalette(&entry, 1, regno, info); ++ } else if (regno < 16) { ++ switch (info->var.bits_per_pixel) { ++ case 16: ++ if (info->var.red.offset == 10) { ++ /* 1:5:5:5 */ ++ ((u32*) (info->pseudo_palette))[regno] = ++ ((red & 0xf800) >> 1) | ++ ((green & 0xf800) >> 6) | ++ ((blue & 0xf800) >> 11); ++ } else { ++ /* 0:5:6:5 */ ++ ((u32*) (info->pseudo_palette))[regno] = ++ ((red & 0xf800) ) | ++ ((green & 0xfc00) >> 5) | ++ ((blue & 0xf800) >> 11); ++ } ++ break; ++ ++ case 24: ++ case 32: ++ red >>= 8; ++ green >>= 8; ++ blue >>= 8; ++ ((u32 *)(info->pseudo_palette))[regno] = ++ (red << info->var.red.offset) | ++ (green << info->var.green.offset) | ++ (blue << info->var.blue.offset); ++ break; ++ } ++ } ++ return ret; ++} ++ ++static int vesafb_setcmap(struct fb_cmap *cmap, struct fb_info *info) ++{ ++ struct vesafb_pal_entry *entries; ++ int shift = 16 - info->var.green.length; ++ int i, ret = 0; ++ ++ if (info->var.bits_per_pixel == 8) { ++ if (cmap->start + cmap->len > info->cmap.start + ++ info->cmap.len || cmap->start < info->cmap.start) ++ return -EINVAL; ++ ++ entries = vmalloc(sizeof(struct vesafb_pal_entry) * cmap->len); ++ if (!entries) ++ return -ENOMEM; ++ for (i = 0; i < cmap->len; i++) { ++ entries[i].red = cmap->red[i] >> shift; ++ entries[i].green = cmap->green[i] >> shift; ++ entries[i].blue = cmap->blue[i] >> shift; ++ entries[i].pad = 0; ++ } ++ ret = vesafb_setpalette(entries, cmap->len, cmap->start, info); ++ vfree(entries); ++ } else { ++ /* For modes with bpp > 8, we only set the pseudo palette in ++ * the fb_info struct. We rely on vesafb_setcolreg to do all ++ * sanity checking. */ ++ for (i = 0; i < cmap->len; i++) { ++ ret += vesafb_setcolreg(cmap->start + i, cmap->red[i], ++ cmap->green[i], cmap->blue[i], ++ 0, info); ++ } ++ } ++ return ret; ++} ++ ++static int vesafb_set_par(struct fb_info *info) ++{ ++ struct vesafb_par *par = (struct vesafb_par *) info->par; ++ struct vesafb_task *tsk; ++ struct vesafb_crtc_ib *crtc = NULL; ++ struct vesafb_mode_ib *mode = NULL; ++ int i, err = 0, depth = info->var.bits_per_pixel; ++ ++ if (depth > 8 && depth != 32) ++ depth = info->var.red.length + info->var.green.length + ++ info->var.blue.length; ++ ++ i = vesafb_find_vbe_mode(info->var.xres, info->var.yres, depth, ++ VESAFB_NEED_EXACT_RES | ++ VESAFB_NEED_EXACT_DEPTH); ++ if (i >= 0) ++ mode = &vbe_modes[i]; ++ else ++ return -EINVAL; ++ ++ vesafb_create_task (tsk); ++ if (!tsk) ++ return -ENOMEM; ++ tsk->regs.eax = 0x4f02; ++ tsk->regs.ebx = mode->mode_id | 0x4000; /* use LFB */ ++ tsk->flags = TF_CALL; ++ ++ if (vbe_ib.vbe_version >= 0x0300 && !nocrtc && ++ info->var.pixclock != 0) { ++ tsk->regs.ebx |= 0x0800; /* use CRTC data */ ++ tsk->flags |= TF_BUF_DI; ++ crtc = kmalloc(sizeof(struct vesafb_crtc_ib), GFP_KERNEL); ++ if (!crtc) { ++ err = -ENOMEM; ++ goto out; ++ } ++ crtc->horiz_start = info->var.xres + info->var.right_margin; ++ crtc->horiz_end = crtc->horiz_start + info->var.hsync_len; ++ crtc->horiz_total = crtc->horiz_end + info->var.left_margin; ++ ++ crtc->vert_start = info->var.yres + info->var.lower_margin; ++ crtc->vert_end = crtc->vert_start + info->var.vsync_len; ++ crtc->vert_total = crtc->vert_end + info->var.upper_margin; ++ ++ crtc->pixel_clock = PICOS2KHZ(info->var.pixclock) * 1000; ++ crtc->refresh_rate = (u16)(100 * (crtc->pixel_clock / ++ (crtc->vert_total * crtc->horiz_total))); ++ crtc->flags = 0; ++ ++ if (info->var.vmode & FB_VMODE_DOUBLE) ++ crtc->flags |= 0x1; ++ if (info->var.vmode & FB_VMODE_INTERLACED) ++ crtc->flags |= 0x2; ++ if (!(info->var.sync & FB_SYNC_HOR_HIGH_ACT)) ++ crtc->flags |= 0x4; ++ if (!(info->var.sync & FB_SYNC_VERT_HIGH_ACT)) ++ crtc->flags |= 0x8; ++ memcpy(&par->crtc, crtc, sizeof(struct vesafb_crtc_ib)); ++ } else ++ memset(&par->crtc, 0, sizeof(struct vesafb_crtc_ib)); ++ ++ tsk->buf = (void*)crtc; ++ tsk->buf_len = sizeof(struct vesafb_crtc_ib); ++ ++ if (vesafb_queue_task (tsk)) { ++ err = -EINVAL; ++ goto out; ++ } ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) { ++ printk(KERN_ERR "vesafb: mode switch failed (eax: 0x%lx)\n", ++ tsk->regs.eax); ++ err = -EINVAL; ++ goto out; ++ } ++ par->mode_idx = i; ++ ++ /* For 8bpp modes, always try to set the DAC to 8 bits. */ ++ if (vbe_ib.capabilities & VBE_CAP_CAN_SWITCH_DAC && ++ mode->bits_per_pixel <= 8) { ++ vesafb_reset_task(tsk); ++ tsk->flags = TF_CALL; ++ tsk->regs.eax = 0x4f08; ++ tsk->regs.ebx = 0x0800; ++ ++ if (!vesafb_queue_task (tsk)) ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f || ++ ((tsk->regs.ebx & 0xff00) >> 8) != 8) { ++ /* We've failed to set the DAC palette format - ++ * time to correct var. */ ++ info->var.red.length = 6; ++ info->var.green.length = 6; ++ info->var.blue.length = 6; ++ } ++ } ++ ++ info->fix.visual = (info->var.bits_per_pixel == 8) ? ++ FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR; ++ info->fix.line_length = mode->bytes_per_scan_line; ++ ++ DPRINTK("set new mode %dx%d-%d (0x%x)\n", ++ info->var.xres, info->var.yres, info->var.bits_per_pixel, ++ mode->mode_id); ++ ++out: if (crtc != NULL) ++ kfree(crtc); ++ kfree(tsk); ++ ++ return err; ++} ++ ++static void vesafb_setup_var(struct fb_var_screeninfo *var, struct fb_info *info, ++ struct vesafb_mode_ib *mode) ++{ ++ var->xres = mode->x_res; ++ var->yres = mode->y_res; ++ var->xres_virtual = mode->x_res; ++ var->yres_virtual = (ypan) ? ++ info->fix.smem_len / mode->bytes_per_scan_line : ++ mode->y_res; ++ var->xoffset = 0; ++ var->yoffset = 0; ++ var->bits_per_pixel = mode->bits_per_pixel; ++ ++ if (var->bits_per_pixel == 15) ++ var->bits_per_pixel = 16; ++ ++ if (var->bits_per_pixel > 8) { ++ var->red.offset = mode->red_off; ++ var->red.length = mode->red_len; ++ var->green.offset = mode->green_off; ++ var->green.length = mode->green_len; ++ var->blue.offset = mode->blue_off; ++ var->blue.length = mode->blue_len; ++ var->transp.offset = mode->rsvd_off; ++ var->transp.length = mode->rsvd_len; ++ ++ DPRINTK("directcolor: size=%d:%d:%d:%d, shift=%d:%d:%d:%d\n", ++ mode->rsvd_len, ++ mode->red_len, ++ mode->green_len, ++ mode->blue_len, ++ mode->rsvd_off, ++ mode->red_off, ++ mode->green_off, ++ mode->blue_off); ++ } else { ++ var->red.offset = 0; ++ var->green.offset = 0; ++ var->blue.offset = 0; ++ var->transp.offset = 0; ++ ++ /* We're assuming that we can switch the DAC to 8 bits. If ++ * this proves to be incorrect, we'll update the fields ++ * later in set_par(). */ ++ if (vbe_ib.capabilities & VBE_CAP_CAN_SWITCH_DAC) { ++ var->red.length = 8; ++ var->green.length = 8; ++ var->blue.length = 8; ++ var->transp.length = 0; ++ } else { ++ var->red.length = 6; ++ var->green.length = 6; ++ var->blue.length = 6; ++ var->transp.length = 0; ++ } ++ } ++} ++ ++static void inline vesafb_check_limits(struct fb_var_screeninfo *var, ++ struct fb_info *info) ++{ ++ struct fb_videomode *mode; ++ ++ if (!var->pixclock) ++ return; ++ if (vbe_ib.vbe_version < 0x0300) { ++ fb_get_mode(FB_VSYNCTIMINGS | FB_IGNOREMON, 60, var, info); ++ return; ++ } ++ if (!fb_validate_mode(var, info)) ++ return; ++ mode = fb_find_best_mode(var, &info->modelist); ++ if (mode) { ++ DPRINTK("find_best_mode: %d %d @ %d (vmode: %d)\n", ++ mode->xres, mode->yres, mode->refresh, mode->vmode); ++ if (mode->xres == var->xres && mode->yres == var->yres && ++ !(mode->vmode & (FB_VMODE_INTERLACED | FB_VMODE_DOUBLE))) { ++ fb_videomode_to_var(var, mode); ++ return; ++ } ++ } ++ if (info->monspecs.gtf && !fb_get_mode(FB_MAXTIMINGS, 0, var, info)) ++ return; ++ /* Use default refresh rate */ ++ var->pixclock = 0; ++} ++ ++static int vesafb_check_var(struct fb_var_screeninfo *var, ++ struct fb_info *info) ++{ ++ int match = -1; ++ int depth = var->red.length + var->green.length + var->blue.length; ++ ++ /* Various apps will use bits_per_pixel to set the color depth, ++ * which is theoretically incorrect, but which we'll try to handle ++ * here. */ ++ if (depth == 0 || abs(depth - var->bits_per_pixel) >= 8) ++ depth = var->bits_per_pixel; ++ match = vesafb_find_vbe_mode(var->xres, var->yres, depth, ++ VESAFB_NEED_EXACT_RES); ++ ++ if (match == -1) { ++ DPRINTK("vesafb: mode %dx%d-%d not found\n", var->xres, ++ var->yres, depth); ++ return -EINVAL; ++ } ++ ++ vesafb_setup_var(var, info, &vbe_modes[match]); ++ DPRINTK("found mode 0x%x (%dx%d-%dbpp)\n", ++ vbe_modes[match].mode_id, vbe_modes[match].x_res, ++ vbe_modes[match].y_res, vbe_modes[match].depth); ++ ++ /* Check whether we have remapped enough memory for this mode. */ ++ if (var->yres * vbe_modes[match].bytes_per_scan_line > ++ info->fix.smem_len) { ++ return -EINVAL; ++ } ++ ++ if ((var->vmode & FB_VMODE_DOUBLE) && ++ !(vbe_modes[match].mode_attr & 0x100)) ++ var->vmode &= ~FB_VMODE_DOUBLE; ++ if ((var->vmode & FB_VMODE_INTERLACED) && ++ !(vbe_modes[match].mode_attr & 0x200)) ++ var->vmode &= ~FB_VMODE_INTERLACED; ++ vesafb_check_limits(var, info); ++ return 0; ++} ++ ++static int vesafb_open(struct fb_info *info, int user) ++{ ++ struct vesafb_task *tsk = NULL; ++ struct vesafb_par *par = info->par; ++ int cnt = atomic_read(&par->ref_count); ++ ++ if (!cnt) { ++ vesafb_create_task(tsk); ++ if (!tsk) ++ goto out; ++ ++ /* Get the VBE state buffer size. We want all available ++ * hardware state data (CL = 0x0f). */ ++ tsk->regs.eax = 0x4f04; ++ tsk->regs.ecx = 0x000f; ++ tsk->regs.edx = 0x0000; ++ tsk->flags = TF_CALL; ++ ++ if (vesafb_queue_task(tsk)) ++ goto out; ++ ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) { ++ printk(KERN_WARNING "vesafb: VBE state buffer size " ++ "cannot be determined (eax: 0x%lx)\n", ++ tsk->regs.eax); ++ goto out; ++ } ++ ++ par->vbe_state_size = 64 * (tsk->regs.ebx & 0xffff); ++ par->vbe_state = kzalloc(par->vbe_state_size, GFP_KERNEL); ++ if (!par->vbe_state) ++ goto out; ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f04; ++ tsk->regs.ecx = 0x000f; ++ tsk->regs.edx = 0x0001; ++ tsk->flags = TF_CALL | TF_BUF_BX | TF_RETURN_BUF; ++ tsk->buf = (void*)(par->vbe_state); ++ tsk->buf_len = par->vbe_state_size; ++ ++ if (vesafb_queue_task(tsk)) ++ goto getstate_failed; ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) { ++ printk(KERN_WARNING "vesafb: VBE get state call " ++ "failed (eax: 0x%lx)\n", tsk->regs.eax); ++ goto getstate_failed; ++ } ++ } ++out: ++ atomic_inc(&par->ref_count); ++ if (tsk) ++ kfree(tsk); ++ return 0; ++ ++getstate_failed: ++ kfree(par->vbe_state); ++ par->vbe_state = NULL; ++ par->vbe_state_size = 0; ++ goto out; ++} ++ ++static int vesafb_release(struct fb_info *info, int user) ++{ ++ struct vesafb_task *tsk = NULL; ++ struct vesafb_par *par = info->par; ++ int cnt = atomic_read(&par->ref_count); ++ ++ if (!cnt) ++ return -EINVAL; ++ ++ if (cnt == 1 && par->vbe_state && par->vbe_state_size) { ++ vesafb_create_task(tsk); ++ if (!tsk) ++ goto out; ++ ++ tsk->regs.eax = 0x0003; ++ tsk->regs.ebx = 0x0000; ++ tsk->flags = TF_CALL; ++ ++ if (vesafb_queue_task(tsk)) ++ goto out; ++ ++ vesafb_wait_for_task(tsk); ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f04; ++ tsk->regs.ecx = 0x000f; ++ tsk->regs.edx = 0x0002; ++ tsk->buf = (void*)(par->vbe_state); ++ tsk->buf_len = par->vbe_state_size; ++ tsk->flags = TF_CALL | TF_BUF_BX; ++ ++ if (vesafb_queue_task(tsk)) ++ goto out; ++ ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) ++ printk(KERN_WARNING "vesafb: VBE state restore call " ++ "failed (eax: 0x%lx)\n", ++ tsk->regs.eax); ++ } ++out: ++ atomic_dec(&par->ref_count); ++ if (tsk) ++ kfree(tsk); ++ return 0; ++} ++ ++static int __init vesafb_probe(struct platform_device *device); ++ ++static struct fb_ops vesafb_ops = { ++ .owner = THIS_MODULE, ++ .fb_open = vesafb_open, ++ .fb_release = vesafb_release, ++ .fb_setcolreg = vesafb_setcolreg, ++ .fb_setcmap = vesafb_setcmap, ++ .fb_pan_display = vesafb_pan_display, ++ .fb_blank = vesafb_blank, ++ .fb_fillrect = cfb_fillrect, ++ .fb_copyarea = cfb_copyarea, ++ .fb_imageblit = cfb_imageblit, ++ .fb_check_var = vesafb_check_var, ++ .fb_set_par = vesafb_set_par ++}; ++ ++static struct platform_driver vesafb_driver = { ++ .probe = vesafb_probe, ++ .driver = { ++ .name = "vesafb", ++ }, ++}; ++ ++static struct platform_device *vesafb_device; ++ ++#ifndef MODULE ++int __init vesafb_setup(char *options) ++{ ++ char *this_opt; ++ ++ if (!options || !*options) ++ return 0; ++ ++ DPRINTK("options %s\n",options); ++ ++ while ((this_opt = strsep(&options, ",")) != NULL) { ++ if (!*this_opt) continue; ++ ++ DPRINTK("this_opt: %s\n",this_opt); ++ ++ if (! strcmp(this_opt, "redraw")) ++ ypan=0; ++ else if (! strcmp(this_opt, "ypan")) ++ ypan=1; ++ else if (! strcmp(this_opt, "ywrap")) ++ ypan=2; ++ else if (! strcmp(this_opt, "vgapal")) ++ pmi_setpal=0; ++ else if (! strcmp(this_opt, "pmipal")) ++ pmi_setpal=1; ++ else if (! strncmp(this_opt, "mtrr:", 5)) ++ mtrr = simple_strtoul(this_opt+5, NULL, 0); ++ else if (! strcmp(this_opt, "nomtrr")) ++ mtrr=0; ++ else if (! strcmp(this_opt, "nocrtc")) ++ nocrtc=1; ++ else if (! strcmp(this_opt, "noedid")) ++ noedid=1; ++ else if (! strcmp(this_opt, "noblank")) ++ blank=0; ++ else if (! strcmp(this_opt, "gtf")) ++ gtf=1; ++ else if (! strncmp(this_opt, "vtotal:", 7)) ++ vram_total = simple_strtoul(this_opt + 7, NULL, 0); ++ else if (! strncmp(this_opt, "vremap:", 7)) ++ vram_remap = simple_strtoul(this_opt + 7, NULL, 0); ++ else if (! strncmp(this_opt, "maxhf:", 6)) ++ maxhf = simple_strtoul(this_opt + 6, NULL, 0); ++ else if (! strncmp(this_opt, "maxvf:", 6)) ++ maxvf = simple_strtoul(this_opt + 6, NULL, 0); ++ else if (! strncmp(this_opt, "maxclk:", 7)) ++ maxclk = simple_strtoul(this_opt + 7, NULL, 0); ++ else if (! strncmp(this_opt, "vbemode:", 8)) ++ vbemode = simple_strtoul(this_opt + 8, NULL,0); ++ else if (this_opt[0] >= '0' && this_opt[0] <= '9') { ++ DPRINTK("mode_option: %s\n",this_opt); ++ mode_option = this_opt; ++ } else { ++ printk(KERN_WARNING ++ "vesafb: unrecognized option %s\n", this_opt); ++ } ++ } ++ ++ return 0; ++} ++#endif /* !MODULE */ ++ ++static int vesafb_read_proc_modes(char *buf, char **start, off_t offset, ++ int len, int *eof, void *private) ++{ ++ int clen = 0, i; ++ ++ for (i = 0; i < vbe_modes_cnt; i++) { ++ clen += min(snprintf(buf + clen, len - clen, "%dx%d-%d\n", vbe_modes[i].x_res, ++ vbe_modes[i].y_res, vbe_modes[i].depth), len - clen); ++ } ++ *eof = 1; ++ return clen; ++} ++ ++static int vesafb_read_proc_vbe_info(char *buf, char **start, off_t offset, ++ int len, int *eof, void *private) ++{ ++ int clen = 0; ++ ++ clen += min(snprintf(buf + clen, len, "Version: %d.%d\n", ++ ((vbe_ib.vbe_version & 0xff00) >> 8), ++ vbe_ib.vbe_version & 0xff), len); ++ clen += min(snprintf(buf + clen, len - clen, "Vendor: %s\n", ++ (char*)vbe_ib.oem_vendor_name_ptr), len - clen); ++ clen += min(snprintf(buf + clen, len - clen, "Product: %s\n", ++ (char*)vbe_ib.oem_product_name_ptr), len - clen); ++ clen += min(snprintf(buf + clen, len - clen, "OEM rev: %s\n", ++ (char*)vbe_ib.oem_product_rev_ptr), len - clen); ++ clen += min(snprintf(buf + clen, len - clen, "OEM string: %s\n", ++ (char*)vbe_ib.oem_string_ptr), len - clen); ++ ++ *eof = 1; ++ return clen; ++} ++ ++static int __init inline vesafb_vbe_getinfo(struct vesafb_task *tsk) ++{ ++ tsk->regs.eax = 0x4f00; ++ tsk->flags = TF_CALL | TF_GETVBEIB; ++ tsk->buf = &vbe_ib; ++ tsk->buf_len = sizeof(vbe_ib); ++ if (vesafb_queue_task (tsk)) ++ return -EINVAL; ++ vesafb_wait_for_task(tsk); ++ ++ if (vbe_ib.vbe_version < 0x0200) { ++ printk(KERN_ERR "vesafb: Sorry, pre-VBE 2.0 cards are " ++ "not supported.\n"); ++ return -EINVAL; ++ } ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) { ++ printk(KERN_ERR "vesafb: Getting mode info block failed " ++ "(eax=0x%x)\n", (u32)tsk->regs.eax); ++ return -EINVAL; ++ } ++ ++ printk(KERN_INFO "vesafb: %s, %s, %s (OEM: %s)\n", ++ (char*)vbe_ib.oem_vendor_name_ptr, ++ (char*)vbe_ib.oem_product_name_ptr, ++ (char*)vbe_ib.oem_product_rev_ptr, ++ (char*)vbe_ib.oem_string_ptr); ++ ++ printk(KERN_INFO "vesafb: VBE version: %d.%d\n", ++ ((vbe_ib.vbe_version & 0xff00) >> 8), ++ vbe_ib.vbe_version & 0xff); ++ return 0; ++} ++ ++static int __init inline vesafb_vbe_getmodes(struct vesafb_task *tsk) ++{ ++ u16 *mode = 0; ++ int off = 0; ++ ++ /* Count available modes. */ ++ mode = (u16*)vbe_ib.mode_list_ptr; ++ while (*mode != 0xffff) { ++ vbe_modes_cnt++; ++ mode++; ++ } ++ ++ vbe_modes = kmalloc(sizeof(struct vesafb_mode_ib)* ++ vbe_modes_cnt, GFP_KERNEL); ++ if (!vbe_modes) ++ return -ENOMEM; ++ ++ /* Get mode info for all available modes. */ ++ mode = (u16*)vbe_ib.mode_list_ptr; ++ ++ while (*mode != 0xffff) { ++ struct vesafb_mode_ib *mib; ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f01; ++ tsk->regs.ecx = (u32) *mode; ++ tsk->flags = TF_CALL | TF_RETURN_BUF | TF_BUF_DI; ++ tsk->buf = vbe_modes+off; ++ tsk->buf_len = sizeof(struct vesafb_mode_ib); ++ if (vesafb_queue_task(tsk)) ++ return -EINVAL; ++ vesafb_wait_for_task(tsk); ++ mib = p_mode(tsk->buf); ++ mib->mode_id = *mode; ++ ++ /* We only want modes that are supported with the currennt ++ * hardware configuration (D0), color (D3), graphics (D4) ++ * and that have support for the LFB (D7). */ ++ if ((mib->mode_attr & 0x99) == 0x99 && ++ mib->bits_per_pixel >= 8) { ++ off++; ++ } else { ++ vbe_modes_cnt--; ++ } ++ mode++; ++ mib->depth = mib->red_len + mib->green_len + mib->blue_len; ++ /* Handle 8bpp modes and modes with broken color component ++ * lengths. */ ++ if (mib->depth == 0 || ++ (mib->depth == 24 && mib->bits_per_pixel == 32)) ++ mib->depth = mib->bits_per_pixel; ++ } ++ ++ return 0; ++} ++ ++static int __init inline vesafb_vbe_getpmi(struct vesafb_task *tsk) ++{ ++ int i; ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f0a; ++ tsk->regs.ebx = 0x0; ++ tsk->flags = TF_CALL; ++ if (vesafb_queue_task(tsk)) ++ return -EINVAL; ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f || tsk->regs.es < 0xc000) { ++ pmi_setpal = ypan = 0; ++ } else { ++ pmi_base = (u16*)phys_to_virt(((u32)tsk->regs.es << 4) + ++ tsk->regs.edi); ++ pmi_start = (void*)((char*)pmi_base + pmi_base[1]); ++ pmi_pal = (void*)((char*)pmi_base + pmi_base[2]); ++ printk(KERN_INFO "vesafb: protected mode interface info at " ++ "%04x:%04x\n", ++ (u16)tsk->regs.es, (u16)tsk->regs.edi); ++ printk(KERN_INFO "vesafb: pmi: set display start = %p, " ++ "set palette = %p\n", pmi_start, pmi_pal); ++ ++ if (pmi_base[3]) { ++ printk(KERN_INFO "vesafb: pmi: ports = "); ++ for (i = pmi_base[3]/2; pmi_base[i] != 0xffff; i++) ++ printk("%x ",pmi_base[i]); ++ printk("\n"); ++ ++ /* ++ * memory areas not supported (yet?) ++ * ++ * Rules are: we have to set up a descriptor for the ++ * requested memory area and pass it in the ES register ++ * to the BIOS function. ++ */ ++ if (pmi_base[i] != 0xffff) { ++ printk(KERN_INFO "vesafb: can't handle memory " ++ "requests, pmi disabled\n"); ++ ypan = pmi_setpal = 0; ++ } ++ } ++ } ++ return 0; ++} ++ ++static int __init inline vesafb_vbe_getedid(struct vesafb_task *tsk, ++ struct fb_info *info) ++{ ++ int res = 0; ++ ++ if (noedid || vbe_ib.vbe_version < 0x0300) ++ return -EINVAL; ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f15; ++ tsk->regs.ebx = 0; ++ tsk->regs.ecx = 0; ++ if (vesafb_queue_task(tsk)) ++ return -EINVAL; ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) != 0x004f) ++ return -EINVAL; ++ ++ if ((tsk->regs.ebx & 0x3) == 3) { ++ printk(KERN_INFO "vesafb: VBIOS/hardware supports both " ++ "DDC1 and DDC2 transfers\n"); ++ } else if ((tsk->regs.ebx & 0x3) == 2) { ++ printk(KERN_INFO "vesafb: VBIOS/hardware supports DDC2 " ++ "transfers\n"); ++ } else if ((tsk->regs.ebx & 0x3) == 1) { ++ printk(KERN_INFO "vesafb: VBIOS/hardware supports DDC1 " ++ "transfers\n"); ++ } else { ++ printk(KERN_INFO "vesafb: VBIOS/hardware doesn't support " ++ "DDC transfers\n"); ++ return -EINVAL; ++ } ++ ++ vesafb_reset_task(tsk); ++ tsk->regs.eax = 0x4f15; ++ tsk->regs.ebx = 1; ++ tsk->regs.ecx = tsk->regs.edx = 0; ++ tsk->flags = TF_CALL | TF_RETURN_BUF | TF_BUF_DI; ++ tsk->buf = kmalloc(EDID_LENGTH, GFP_KERNEL); ++ tsk->buf_len = EDID_LENGTH; ++ ++ if (vesafb_queue_task(tsk)) { ++ res = -EINVAL; ++ goto out; ++ } ++ vesafb_wait_for_task(tsk); ++ ++ if ((tsk->regs.eax & 0xffff) == 0x004f) { ++ fb_edid_to_monspecs(tsk->buf, &info->monspecs); ++ fb_videomode_to_modelist(info->monspecs.modedb, ++ info->monspecs.modedb_len, &info->modelist); ++ if (info->monspecs.vfmax && info->monspecs.hfmax) { ++ /* If the maximum pixel clock wasn't specified in ++ * the EDID block, set it to 300 MHz. */ ++ if (info->monspecs.dclkmax == 0) ++ info->monspecs.dclkmax = 300 * 1000000; ++ info->monspecs.gtf = 1; ++ } else { ++ res = -EINVAL; ++ } ++ } ++ ++out: kfree(tsk->buf); ++ return res; ++} ++ ++static void __init inline vesafb_vbe_getmonspecs(struct vesafb_task *tsk, ++ struct fb_info *info) ++{ ++ struct fb_var_screeninfo var; ++ int i; ++ memset(&info->monspecs, 0, sizeof(struct fb_monspecs)); ++ ++ /* If we didn't get all necessary data from the EDID block, ++ * mark it as incompatible with the GTF. */ ++ if (vesafb_vbe_getedid(tsk, info)) ++ info->monspecs.gtf = 0; ++ ++ /* Kernel command line overrides. */ ++ if (maxclk) ++ info->monspecs.dclkmax = maxclk * 1000000; ++ if (maxvf) ++ info->monspecs.vfmax = maxvf; ++ if (maxhf) ++ info->monspecs.hfmax = maxhf * 1000; ++ ++ /* In case DDC transfers are not supported the user can provide ++ * monitor limits manually. Lower limits are set to "safe" values. */ ++ if (info->monspecs.gtf == 0 && maxclk && maxvf && maxhf) { ++ info->monspecs.dclkmin = 0; ++ info->monspecs.vfmin = 60; ++ info->monspecs.hfmin = 29000; ++ info->monspecs.gtf = 1; ++ } ++ ++ if (info->monspecs.gtf) { ++ printk(KERN_INFO ++ "vesafb: monitor limits: vf = %d Hz, hf = %d kHz, " ++ "clk = %d MHz\n", info->monspecs.vfmax, ++ (int)(info->monspecs.hfmax / 1000), ++ (int)(info->monspecs.dclkmax / 1000000)); ++ /* Add valid VESA video modes to our modelist. */ ++ for (i = 0; i < VESA_MODEDB_SIZE; i++) { ++ fb_videomode_to_var(&var, (struct fb_videomode *) ++ &vesa_modes[i]); ++ if (!fb_validate_mode(&var, info)) ++ fb_add_videomode((struct fb_videomode *) ++ &vesa_modes[i], ++ &info->modelist); ++ } ++ } else { ++ /* Add all VESA video modes to our modelist. */ ++ fb_videomode_to_modelist((struct fb_videomode *)vesa_modes, ++ VESA_MODEDB_SIZE, &info->modelist); ++ printk(KERN_INFO "vesafb: no monitor limits have been set\n"); ++ } ++ return; ++} ++ ++static int __init inline vesafb_vbe_init(struct fb_info *info) ++{ ++ struct vesafb_task *tsk; ++ int res = 0; ++ ++ vesafb_create_task(tsk); ++ if (!tsk) ++ return -EINVAL; ++ if ((res = vesafb_vbe_getinfo(tsk)) != 0) ++ goto out; ++ if ((res = vesafb_vbe_getmodes(tsk)) != 0) ++ goto out; ++ if (pmi_setpal || ypan) ++ vesafb_vbe_getpmi(tsk); ++ ++ INIT_LIST_HEAD(&info->modelist); ++ vesafb_vbe_getmonspecs(tsk, info); ++ ++out: kfree(tsk); ++ return res; ++} ++ ++static int __init decode_mode(u32 *xres, u32 *yres, u32 *bpp, u32 *refresh) ++{ ++ int len = strlen(mode_option), i, err = 0; ++ u8 res_specified = 0, bpp_specified = 0, refresh_specified = 0, ++ yres_specified = 0; ++ ++ for (i = len-1; i >= 0; i--) { ++ switch (mode_option[i]) { ++ case '@': ++ len = i; ++ if (!refresh_specified && !bpp_specified && ++ !yres_specified) { ++ *refresh = simple_strtoul(&mode_option[i+1], ++ NULL, 0); ++ refresh_specified = 1; ++ } else ++ goto out; ++ break; ++ case '-': ++ len = i; ++ if (!bpp_specified && !yres_specified) { ++ *bpp = simple_strtoul(&mode_option[i+1], ++ NULL, 0); ++ bpp_specified = 1; ++ } else ++ goto out; ++ break; ++ case 'x': ++ if (!yres_specified) { ++ *yres = simple_strtoul(&mode_option[i+1], ++ NULL, 0); ++ yres_specified = 1; ++ } else ++ goto out; ++ break; ++ case '0'...'9': ++ break; ++ default: ++ goto out; ++ } ++ } ++ ++ if (i < 0 && yres_specified) { ++ *xres = simple_strtoul(mode_option, NULL, 0); ++ res_specified = 1; ++ } ++ ++out: if (!res_specified || !yres_specified) { ++ printk(KERN_ERR "vesafb: invalid resolution, " ++ "%s not specified\n", ++ (!res_specified) ? "width" : "height"); ++ err = -EINVAL; ++ } ++ ++ return err; ++} ++ ++static int __init vesafb_init_set_mode(struct fb_info *info) ++{ ++ struct fb_videomode *fbmode; ++ struct fb_videomode mode; ++ int i, modeid, refresh = 0; ++ u8 refresh_specified = 0; ++ ++ if (!mode_option) ++ mode_option = CONFIG_FB_VESA_DEFAULT_MODE; ++ ++ if (vbemode > 0) { ++ for (i = 0; i < vbe_modes_cnt; i++) { ++ if (vbe_modes[i].mode_id == vbemode) { ++ info->var.vmode = FB_VMODE_NONINTERLACED; ++ info->var.sync = FB_SYNC_VERT_HIGH_ACT; ++ vesafb_setup_var(&info->var, info, ++ &vbe_modes[i]); ++ fb_get_mode(FB_VSYNCTIMINGS | FB_IGNOREMON, ++ 60, &info->var, info); ++ /* With pixclock set to 0, the default BIOS ++ * timings will be used in set_par(). */ ++ info->var.pixclock = 0; ++ modeid = i; ++ goto out; ++ } ++ } ++ printk(KERN_INFO "specified VBE mode %d not found\n", ++ vbemode); ++ vbemode = 0; ++ } ++ ++ /* Decode the mode specified on the kernel command line. We save ++ * the depth into bits_per_pixel, which is wrong, but will work ++ * anyway. */ ++ if (decode_mode(&info->var.xres, &info->var.yres, ++ &info->var.bits_per_pixel, &refresh)) ++ return -EINVAL; ++ if (refresh) ++ refresh_specified = 1; ++ else ++ refresh = 60; ++ ++ /* Look for a matching VBE mode. We can live if an exact match ++ * cannot be found. */ ++ modeid = vesafb_find_vbe_mode(info->var.xres, info->var.yres, ++ info->var.bits_per_pixel, 0); ++ ++ if (modeid == -1) { ++ return -EINVAL; ++ } else { ++ info->var.vmode = FB_VMODE_NONINTERLACED; ++ info->var.sync = FB_SYNC_VERT_HIGH_ACT; ++ vesafb_setup_var(&info->var, info, &vbe_modes[modeid]); ++ } ++ if (vbe_ib.vbe_version < 0x0300) { ++ fb_get_mode(FB_VSYNCTIMINGS | FB_IGNOREMON, 60, ++ &info->var, info); ++ goto out; ++ } ++ if (!gtf) { ++ struct fb_videomode tmode; ++ ++ if (refresh_specified) { ++ fb_var_to_videomode(&tmode, &info->var); ++ tmode.refresh = refresh; ++ fbmode = fb_find_nearest_mode(&tmode, ++ &info->modelist); ++ } else ++ fbmode = fb_find_best_mode(&info->var, ++ &info->modelist); ++ ++ if (fbmode->xres == info->var.xres && ++ fbmode->yres == info->var.yres && ++ !(fbmode->vmode & (FB_VMODE_INTERLACED | FB_VMODE_DOUBLE)) ++ && (!refresh_specified || ++ abs(refresh - fbmode->refresh) <= 5)) { ++ fb_videomode_to_var(&info->var, fbmode); ++ return modeid; ++ } ++ } ++ i = FB_MAXTIMINGS; ++ if (!info->monspecs.gtf) ++ i = FB_IGNOREMON | FB_VSYNCTIMINGS; ++ else if (refresh_specified) ++ i = FB_VSYNCTIMINGS; ++ if (!fb_get_mode(i, refresh, &info->var, info)) ++ goto out; ++ if (info->monspecs.gtf && ++ !fb_get_mode(FB_MAXTIMINGS, 0, &info->var, info)) ++ goto out; ++ /* Use default refresh rate */ ++ printk(KERN_WARNING "vesafb: using default BIOS refresh rate\n"); ++ info->var.pixclock = 0; ++ ++out: ++ fb_var_to_videomode(&mode, &info->var); ++ fb_add_videomode(&mode, &info->modelist); ++ return modeid; ++} ++ ++static int __init vesafb_probe(struct platform_device *dev) ++{ ++ char entry[16]; ++ struct fb_info *info; ++ struct vesafb_mode_ib *mode = NULL; ++ int err = 0, i, h; ++ unsigned int size_vmode; ++ unsigned int size_remap; ++ unsigned int size_total; ++ ++ vesafb_info = info = framebuffer_alloc(sizeof(struct vesafb_par) + ++ sizeof(u32) * 256, &dev->dev); ++ if (!info) ++ return -ENOMEM; ++ ++ if (vesafb_wait_for_thread()) { ++ printk(KERN_ERR "vesafb: vesafb thread not running\n"); ++ framebuffer_release(info); ++ return -EINVAL; ++ } ++ ++ if (vesafb_vbe_init(info)) { ++ printk(KERN_ERR "vesafb: vbe_init failed\n"); ++ err = -EINVAL; ++ goto out; ++ } ++ ++ vesafb_fix.ypanstep = ypan ? 1 : 0; ++ vesafb_fix.ywrapstep = (ypan>1) ? 1 : 0; ++ ++ info->pseudo_palette = ((u8*)info->par + sizeof(struct vesafb_par)); ++ info->fbops = &vesafb_ops; ++ info->var = vesafb_defined; ++ info->fix = vesafb_fix; ++ ++ if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) { ++ err = -ENXIO; ++ goto out; ++ } ++ ++ i = vesafb_init_set_mode(info); ++ if (i < 0) { ++ err = -EINVAL; ++ goto out_cmap; ++ } else ++ mode = &vbe_modes[i]; ++ ++ /* Disable blanking if the user requested so. */ ++ if (!blank) { ++ info->fbops->fb_blank = NULL; ++ } ++ ++ /* Find out how much IO memory is required for the mode with ++ * the highest resolution. */ ++ size_remap = 0; ++ for (i = 0; i < vbe_modes_cnt; i++) { ++ h = vbe_modes[i].bytes_per_scan_line * vbe_modes[i].y_res; ++ if (h > size_remap) ++ size_remap = h; ++ } ++ size_remap *= 2; ++ ++ /* size_vmode -- that is the amount of memory needed for the ++ * used video mode, i.e. the minimum amount of ++ * memory we need. */ ++ if (mode != NULL) { ++ size_vmode = info->var.yres * mode->bytes_per_scan_line; ++ } else { ++ size_vmode = info->var.yres * info->var.xres * ++ ((info->var.bits_per_pixel + 7) >> 3); ++ } ++ ++ /* size_total -- all video memory we have. Used for mtrr ++ * entries, ressource allocation and bounds ++ * checking. */ ++ size_total = vbe_ib.total_memory * 65536; ++ if (vram_total) ++ size_total = vram_total * 1024 * 1024; ++ if (size_total < size_vmode) ++ size_total = size_vmode; ++ ((struct vesafb_par*)(info->par))->mem_total = size_total; ++ ++ /* size_remap -- the amount of video memory we are going to ++ * use for vesafb. With modern cards it is no ++ * option to simply use size_total as th ++ * wastes plenty of kernel address space. */ ++ if (vram_remap) ++ size_remap = vram_remap * 1024 * 1024; ++ if (size_remap < size_vmode) ++ size_remap = size_vmode; ++ if (size_remap > size_total) ++ size_remap = size_total; ++ ++ info->fix.smem_len = size_remap; ++ info->fix.smem_start = mode->phys_base_ptr; ++ ++ /* We have to set it here, because when setup_var() was called, ++ * smem_len wasn't defined yet. */ ++ info->var.yres_virtual = info->fix.smem_len / ++ mode->bytes_per_scan_line; ++ ++ if (ypan && info->var.yres_virtual > info->var.yres) { ++ printk(KERN_INFO "vesafb: scrolling: %s " ++ "using protected mode interface, " ++ "yres_virtual=%d\n", ++ (ypan > 1) ? "ywrap" : "ypan",info->var.yres_virtual); ++ } else { ++ printk(KERN_INFO "vesafb: scrolling: redraw\n"); ++ info->var.yres_virtual = info->var.yres; ++ ypan = 0; ++ } ++ ++ info->flags = FBINFO_FLAG_DEFAULT | ++ (ypan) ? FBINFO_HWACCEL_YPAN : 0; ++ ++ if (!ypan) ++ info->fbops->fb_pan_display = NULL; ++ ++ if (!request_mem_region(info->fix.smem_start, size_total, "vesafb")) { ++ printk(KERN_WARNING "vesafb: cannot reserve video memory at " ++ "0x%lx\n", info->fix.smem_start); ++ /* We cannot make this fatal. Sometimes this comes from magic ++ spaces our resource handlers simply don't know about. */ ++ } ++ ++ info->screen_base = ioremap(info->fix.smem_start, info->fix.smem_len); ++ ++ if (!info->screen_base) { ++ printk(KERN_ERR ++ "vesafb: abort, cannot ioremap video memory " ++ "0x%x @ 0x%lx\n", ++ info->fix.smem_len, info->fix.smem_start); ++ err = -EIO; ++ goto out_mem; ++ } ++ ++ /* Request failure does not faze us, as vgacon probably has this ++ region already (FIXME) */ ++ request_region(0x3c0, 32, "vesafb"); ++ ++#ifdef CONFIG_MTRR ++ if (mtrr && !(info->fix.smem_start & (PAGE_SIZE - 1))) { ++ int temp_size = size_total; ++ unsigned int type = 0; ++ ++ switch (mtrr) { ++ case 1: ++ type = MTRR_TYPE_UNCACHABLE; ++ break; ++ case 2: ++ type = MTRR_TYPE_WRBACK; ++ break; ++ case 3: ++ type = MTRR_TYPE_WRCOMB; ++ break; ++ case 4: ++ type = MTRR_TYPE_WRTHROUGH; ++ break; ++ default: ++ type = 0; ++ break; ++ } ++ ++ if (type) { ++ int rc; ++ ++ /* Find the largest power-of-two */ ++ while (temp_size & (temp_size - 1)) ++ temp_size &= (temp_size - 1); ++ ++ /* Try and find a power of two to add */ ++ do { ++ rc = mtrr_add(info->fix.smem_start, ++ temp_size, type, 1); ++ temp_size >>= 1; ++ } while (temp_size >= PAGE_SIZE && rc == -EINVAL); ++ } ++ } ++#endif /* CONFIG_MTRR */ ++ ++ if (register_framebuffer(info) < 0) { ++ printk(KERN_ERR ++ "vesafb: failed to register framebuffer device\n"); ++ err = -EINVAL; ++ goto out_mem; ++ } ++ ++ printk(KERN_INFO "vesafb: framebuffer at 0x%lx, mapped to 0x%p, " ++ "using %dk, total %dk\n", info->fix.smem_start, ++ info->screen_base, size_remap/1024, size_total/1024); ++ printk(KERN_INFO "fb%d: %s frame buffer device\n", info->node, ++ info->fix.id); ++ ++ sprintf(entry, "fb%d", info->node); ++ proc_mkdir(entry, 0); ++ ++ sprintf(entry, "fb%d/modes", info->node); ++ create_proc_read_entry(entry, 0, 0, vesafb_read_proc_modes, NULL); ++ ++ sprintf(entry, "fb%d/vbe_info", info->node); ++ create_proc_read_entry(entry, 0, 0, vesafb_read_proc_vbe_info, NULL); ++ return 0; ++ ++out_mem: ++ release_mem_region(info->fix.smem_start, size_total); ++ if (!list_empty(&info->modelist)) ++ fb_destroy_modelist(&info->modelist); ++ fb_destroy_modedb(info->monspecs.modedb); ++out_cmap: ++ fb_dealloc_cmap(&info->cmap); ++out: ++ framebuffer_release(info); ++ vesafb_info = NULL; ++ kfree(vbe_modes); ++ vbe_modes = NULL; ++ return err; ++} ++ ++int __init vesafb_init(void) ++{ ++ int ret; ++#ifndef MODULE ++ char *option = NULL; ++ ++ if (fb_get_options("vesafb", &option)) ++ return -ENODEV; ++ vesafb_setup(option); ++#endif ++ ret = platform_driver_register(&vesafb_driver); ++ ++ if (!ret) { ++ vesafb_device = platform_device_alloc("vesafb", 0); ++ ++ if (vesafb_device) ++ ret = platform_device_add(vesafb_device); ++ else ++ ret = -ENOMEM; ++ ++ if (ret) { ++ platform_device_put(vesafb_device); ++ platform_driver_unregister(&vesafb_driver); ++ } ++ } ++ return ret; ++} ++ ++module_init(vesafb_init); ++ ++#ifdef MODULE ++void __exit vesafb_exit(void) ++{ ++ char entry[16]; ++ ++ if (vesafb_info) ++ unregister_framebuffer(vesafb_info); ++ ++ platform_device_unregister(vesafb_device); ++ platform_driver_unregister(&vesafb_driver); ++ ++ if (vesafb_info) { ++ struct vesafb_par *par = (struct vesafb_par*)vesafb_info->par; ++ ++ sprintf(entry, "fb%d/modes", vesafb_info->node); ++ remove_proc_entry(entry, NULL); ++ ++ sprintf(entry, "fb%d/vbe_info", vesafb_info->node); ++ remove_proc_entry(entry, NULL); ++ ++ sprintf(entry, "fb%d", vesafb_info->node); ++ remove_proc_entry(entry, NULL); ++ ++ iounmap(vesafb_info->screen_base); ++ release_mem_region(vesafb_info->fix.smem_start, ++ par->mem_total); ++ fb_dealloc_cmap(&vesafb_info->cmap); ++ if (!list_empty(&vesafb_info->modelist)) ++ fb_destroy_modelist(&vesafb_info->modelist); ++ fb_destroy_modedb(vesafb_info->monspecs.modedb); ++ framebuffer_release(vesafb_info); ++ } ++ ++ if (vbe_modes != NULL) ++ kfree(vbe_modes); ++} ++ ++module_exit(vesafb_exit); ++ ++static inline int param_get_scroll(char *buffer, struct kernel_param *kp) ++{ ++ return 0; ++} ++static inline int param_set_scroll(const char *val, struct kernel_param *kp) ++{ ++ ypan = 0; ++ ++ if (! strcmp(val, "redraw")) ++ ypan = 0; ++ else if (! strcmp(val, "ypan")) ++ ypan = 1; ++ else if (! strcmp(val, "ywrap")) ++ ypan = 2; ++ ++ return 0; ++} ++ ++#define param_check_scroll(name, p) __param_check(name, p, void); ++ ++module_param_named(scroll, ypan, scroll, 0); ++MODULE_PARM_DESC(scroll,"Scrolling mode, set to 'redraw', 'ypan' or 'ywrap'"); ++module_param_named(vgapal, pmi_setpal, invbool, 0); ++MODULE_PARM_DESC(vgapal,"bool: set palette using VGA registers"); ++module_param_named(pmipal, pmi_setpal, bool, 0); ++MODULE_PARM_DESC(pmipal,"bool: set palette using PMI calls"); ++module_param(mtrr, uint, 0); ++MODULE_PARM_DESC(mtrr,"Memory Type Range Registers setting. Use 0 to disable."); ++module_param(blank, bool, 1); ++MODULE_PARM_DESC(blank,"bool: enable hardware blanking"); ++module_param(nocrtc, bool, 0); ++MODULE_PARM_DESC(nocrtc,"bool: ignore CRTC timings when setting modes"); ++module_param(noedid, bool, 0); ++MODULE_PARM_DESC(noedid,"bool: ignore EDID-provided monitor limits " ++ "when setting modes"); ++module_param(gtf, bool, 0); ++MODULE_PARM_DESC(gtf,"bool: force use of VESA GTF to calculate mode timings"); ++module_param(vram_remap, uint, 0); ++MODULE_PARM_DESC(vram_remap,"Set amount of video memory to be used [MiB]"); ++module_param(vram_total, uint, 0); ++MODULE_PARM_DESC(vram_total,"Set total amount of video memoery [MiB]"); ++module_param(maxclk, ushort, 0); ++MODULE_PARM_DESC(maxclk,"Maximum pixelclock [MHz], overrides EDID data"); ++module_param(maxhf, ushort, 0); ++MODULE_PARM_DESC(maxhf,"Maximum horizontal frequency [kHz], " ++ "overrides EDID data"); ++module_param(maxvf, ushort, 0); ++MODULE_PARM_DESC(maxvf,"Maximum vertical frequency [Hz], " ++ "overrides EDID data"); ++module_param_named(mode, mode_option, charp, 0); ++MODULE_PARM_DESC(mode, "Specify resolution as " ++ "\"<xres>x<yres>[-<bpp>][@<refresh>]\""); ++module_param(vbemode, ushort, 0); ++MODULE_PARM_DESC(vbemode,"VBE mode number to set, overrides 'mode' setting"); ++ ++#endif /* MODULE */ ++ ++MODULE_LICENSE("GPL"); ++MODULE_AUTHOR("Michal Januszewski"); ++MODULE_DESCRIPTION("Framebuffer driver for VBE2.0+ compliant graphics boards"); ++ +diff --git a/include/linux/sched.h b/include/linux/sched.h +index 4463735..7283e48 100644 +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -1390,6 +1390,8 @@ extern void mmput(struct mm_struct *); + extern struct mm_struct *get_task_mm(struct task_struct *task); + /* Remove the current tasks stale references to the old mm_struct */ + extern void mm_release(struct task_struct *, struct mm_struct *); ++/* Create a new mm for a kernel thread */ ++extern int set_new_mm(void); + + extern int copy_thread(int, unsigned long, unsigned long, unsigned long, struct task_struct *, struct pt_regs *); + extern void flush_thread(void); +diff --git a/include/video/vesa.h b/include/video/vesa.h +new file mode 100644 +index 0000000..bb5abcf +--- /dev/null ++++ b/include/video/vesa.h +@@ -0,0 +1,150 @@ ++#if 0 ++#define DPRINTK(fmt, args...) printk(KERN_DEBUG "%s: " fmt, __FUNCTION__ , \ ++ ## args) ++#else ++#define DPRINTK(fmt, args...) ++#endif ++ ++#define p_crtc(arg) ((struct vesafb_crtc_ib*)(arg)) ++#define p_vbe(arg) ((struct vesafb_vbe_ib*)(arg)) ++#define p_mode(arg) ((struct vesafb_mode_ib*)(arg)) ++ ++struct vesafb_task { ++ u8 flags; ++ void *buf; ++ int buf_len; ++ struct vm86_regs regs; ++ struct list_head node; ++ struct completion done; ++}; ++ ++/* Vesafb task flags and masks */ ++#define TF_CALL 0x00 ++#define TF_EXIT 0x01 ++#define TF_GETVBEIB 0x02 ++#define TF_BUF_DI 0x04 ++#define TF_BUF_BX 0x08 ++#define TF_RETURN_BUF 0x10 ++ ++/* Macros and functions for manipulating vesafb tasks */ ++#define vesafb_create_task(task) \ ++do { \ ++ task = kmalloc(sizeof(struct vesafb_task), GFP_ATOMIC); \ ++ if (task) \ ++ memset(task, 0, sizeof(struct vesafb_task)); \ ++ init_completion(&task->done); \ ++} while (0) ++ ++#define vesafb_wait_for_task(task) wait_for_completion(&task->done); ++#define vesafb_reset_task(task) init_completion(&task->done); ++int vesafb_queue_task(struct vesafb_task *task); ++ ++/* Functions for controlling the vesafb thread */ ++int vesafb_wait_for_thread(void); ++ ++#define VBE_CAP_CAN_SWITCH_DAC 0x01 ++#define VBE_CAP_VGACOMPAT 0x02 ++ ++/* This struct is 512 bytes long */ ++struct vesafb_vbe_ib { ++ char vbe_signature[4]; ++ u16 vbe_version; ++ u32 oem_string_ptr; ++ u32 capabilities; ++ u32 mode_list_ptr; ++ u16 total_memory; ++ u16 oem_software_rev; ++ u32 oem_vendor_name_ptr; ++ u32 oem_product_name_ptr; ++ u32 oem_product_rev_ptr; ++ u8 reserved[222]; ++ char oem_data[256]; ++} __attribute__ ((packed)); ++ ++struct vesafb_crtc_ib { ++ u16 horiz_total; ++ u16 horiz_start; ++ u16 horiz_end; ++ u16 vert_total; ++ u16 vert_start; ++ u16 vert_end; ++ u8 flags; ++ u32 pixel_clock; ++ u16 refresh_rate; ++ u8 reserved[40]; ++} __attribute__ ((packed)); ++ ++#define VBE_MODE_VGACOMPAT 0x20 ++ ++struct vesafb_mode_ib { ++ /* for all VBE revisions */ ++ u16 mode_attr; ++ u8 winA_attr; ++ u8 winB_attr; ++ u16 win_granularity; ++ u16 win_size; ++ u16 winA_seg; ++ u16 winB_seg; ++ u32 win_func_ptr; ++ u16 bytes_per_scan_line; ++ ++ /* for VBE 1.2+ */ ++ u16 x_res; ++ u16 y_res; ++ u8 x_char_size; ++ u8 y_char_size; ++ u8 planes; ++ u8 bits_per_pixel; ++ u8 banks; ++ u8 memory_model; ++ u8 bank_size; ++ u8 image_pages; ++ u8 reserved1; ++ ++ /* Direct color fields for direct/6 and YUV/7 memory models. */ ++ /* Offsets are bit positions of lsb in the mask. */ ++ u8 red_len; ++ u8 red_off; ++ u8 green_len; ++ u8 green_off; ++ u8 blue_len; ++ u8 blue_off; ++ u8 rsvd_len; ++ u8 rsvd_off; ++ u8 direct_color_info; /* direct color mode attributes */ ++ ++ /* for VBE 2.0+ */ ++ u32 phys_base_ptr; ++ u8 reserved2[6]; ++ ++ /* for VBE 3.0+ */ ++ u16 lin_bytes_per_scan_line; ++ u8 bnk_image_pages; ++ u8 lin_image_pages; ++ u8 lin_red_len; ++ u8 lin_red_off; ++ u8 lin_green_len; ++ u8 lin_green_off; ++ u8 lin_blue_len; ++ u8 lin_blue_off; ++ u8 lin_rsvd_len; ++ u8 lin_rsvd_off; ++ u32 max_pixel_clock; ++ u16 mode_id; ++ u8 depth; ++} __attribute__ ((packed)); ++ ++struct vesafb_pal_entry { ++ u_char blue, green, red, pad; ++} __attribute__ ((packed)); ++ ++struct vesafb_par { ++ u8 *vbe_state; ++ int vbe_state_size; ++ atomic_t ref_count; ++ ++ u32 mem_total; ++ int mode_idx; ++ struct vesafb_crtc_ib crtc; ++}; ++ +diff --git a/kernel/fork.c b/kernel/fork.c +index fc723e5..dc8f93b 100644 +--- a/kernel/fork.c ++++ b/kernel/fork.c +@@ -100,6 +100,7 @@ struct kmem_cache *fs_cachep; + + /* SLAB cache for vm_area_struct structures */ + struct kmem_cache *vm_area_cachep; ++EXPORT_SYMBOL_GPL(vm_area_cachep); + + /* SLAB cache for mm_struct structures (tsk->mm) */ + static struct kmem_cache *mm_cachep; +@@ -399,6 +400,40 @@ void mmput(struct mm_struct *mm) + EXPORT_SYMBOL_GPL(mmput); + + /** ++ * set_new_mm - allocate, init and activate a new mm for a kernel thread ++ */ ++int set_new_mm(void) ++{ ++ struct mm_struct *mm; ++ struct task_struct *tsk = current; ++ struct mm_struct *active_mm; ++ ++ mm = mm_alloc(); ++ if (!mm) ++ goto fail_nomem; ++ if (init_new_context(current,mm)) ++ goto fail_nocontext; ++ ++ task_lock(tsk); ++ tsk->flags |= PF_BORROWED_MM; ++ active_mm = tsk->active_mm; ++ current->mm = mm; ++ current->active_mm = mm; ++ activate_mm(active_mm, mm); ++ task_unlock(current); ++ ++ /* Drop the previous active_mm */ ++ mmdrop(active_mm); ++ return 0; ++ ++fail_nocontext: ++ mmdrop(mm); ++fail_nomem: ++ return -EINVAL; ++} ++EXPORT_SYMBOL_GPL(set_new_mm); ++ ++/** + * get_task_mm - acquire a reference to the task's mm + * + * Returns %NULL if the task has no mm. Checks PF_BORROWED_MM (meaning +diff --git a/mm/memory.c b/mm/memory.c +index 563792f..a9519ea 100644 +--- a/mm/memory.c ++++ b/mm/memory.c +@@ -1193,6 +1193,7 @@ int zeromap_page_range(struct vm_area_struct *vma, + } while (pgd++, addr = next, addr != end); + return err; + } ++EXPORT_SYMBOL_GPL(zeromap_page_range); + + pte_t * fastcall get_locked_pte(struct mm_struct *mm, unsigned long addr, spinlock_t **ptl) + { +diff --git a/mm/mmap.c b/mm/mmap.c +index 9717337..6fa5b1c 100644 +--- a/mm/mmap.c ++++ b/mm/mmap.c +@@ -2024,6 +2024,7 @@ int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma) + vma_link(mm, vma, prev, rb_link, rb_parent); + return 0; + } ++EXPORT_SYMBOL_GPL(insert_vm_struct); + + /* + * Copy the vma structure to a new location in the same mm, diff --git a/packages/linux/linux-rp-2.6.21/wm97xx-lcdnoise-r0.patch b/packages/linux/linux-rp-2.6.21/wm97xx-lcdnoise-r0.patch new file mode 100644 index 0000000000..191de3af22 --- /dev/null +++ b/packages/linux/linux-rp-2.6.21/wm97xx-lcdnoise-r0.patch @@ -0,0 +1,208 @@ +Index: linux-tosa/drivers/input/touchscreen/wm9712.c +=================================================================== +--- linux-tosa.orig/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:36.008543280 +0100 ++++ linux-tosa/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:50.923275896 +0100 +@@ -1,7 +1,7 @@ + /* + * wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs. + * +- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC. ++ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com + * Parts Copyright : Ian Molton <spyro@f2s.com> +@@ -13,6 +13,12 @@ + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * ++ * Revision history ++ * 4th Jul 2005 Initial version. ++ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk> ++ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing ++ * touchscreen interference. ++ * + */ + + #include <linux/module.h> +@@ -28,6 +34,10 @@ + #define WM9705_VERSION "0.60" + #define DEFAULT_PRESSURE 0xb0c0 + ++#define CCNT(a) asm volatile ("mrc p14, 0, %0, C1, C1, 0" : "=r"(a)) ++#define CCNT_ON() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1)) ++#define CCNT_OFF() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1)) ++ + /* + * Debug + */ +@@ -243,6 +253,36 @@ + return wm->dig[2] & WM9712_PDEN; + } + ++ ++#ifdef CONFIG_MACH_TOSA ++/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait ++ * before sampling the Y axis of the touchscreen */ ++static inline void wm9712_lcd_sync_on(struct wm97xx* wm, int adcsel) { ++ unsigned long timer1 = 0, timer2 = 0, wait_time = 0; ++ if (adcsel == WM97XX_ADCSEL_Y) { ++ wait_time = wm97xx_calc_lcd_waittime(wm); ++ ++ CCNT_ON(); ++ ++ if (wait_time) { ++ /* wait for LCD rising edge */ ++ wm_machinfo->wait_hsync(); ++ /* get clock */ ++ CCNT(timer1); ++ CCNT(timer2); ++ ++ while ((timer2 - timer1) < wait_time) { ++ CCNT(timer2); ++ } ++ } ++ } ++} ++ ++static inline void wm9712_lcd_sync_off(void) { ++ CCNT_OFF(); ++} ++#endif ++ + /* + * Read a sample from the WM9712 adc in polling mode. + */ +@@ -260,6 +300,9 @@ + /* set up digitiser */ + if (adcsel & 0x8000) + adcsel = ((adcsel & 0x7fff) + 3) << 12; ++ #ifdef CONFIG_MACH_TOSA ++ wm9712_lcd_sync_on(wm, adcsel); ++ #endif + wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay)); + + /* wait 3 AC97 time slots + delay for conversion */ +@@ -282,6 +325,10 @@ + + *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); + ++ #ifdef CONFIG_MACH_TOSA ++ wm9712_lcd_sync_off(); ++ #endif ++ + /* check we have correct sample */ + if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) { + dbg ("adc wrong sample, read %x got %x", adcsel, +@@ -303,11 +350,12 @@ + static int wm9712_poll_touch(struct wm97xx* wm, struct wm97xx_data *data) + { + int rc; +- + if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X, &data->x)) != RC_VALID) + return rc; ++ + if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y)) != RC_VALID) + return rc; ++ + if (pil && !five_wire) { + if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES, &data->p)) != RC_VALID) + return rc; +Index: linux-tosa/drivers/input/touchscreen/wm97xx-core.c +=================================================================== +--- linux-tosa.orig/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:36.008543280 +0100 ++++ linux-tosa/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:50.924275744 +0100 +@@ -2,7 +2,7 @@ + * wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712 + * and WM9713 AC97 Codecs. + * +- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC. ++ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC. + * Author: Liam Girdwood + * liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com + * Parts Copyright : Ian Molton <spyro@f2s.com> +@@ -67,6 +67,9 @@ + * GPIOs) and 2.6 power management. + * 29th Nov 2004 Added WM9713 support. + * 4th Jul 2005 Moved codec specific code out to seperate files. ++ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk> ++ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing ++ * touchscreen interference. + */ + + #include <linux/module.h> +@@ -94,6 +97,7 @@ + static DECLARE_MUTEX(gpio_sem); + static LIST_HEAD(wm97xx_misc_list); + static struct wm97xx* wm_codec = NULL; ++struct wm97xx_machinfo *wm_machinfo; + + /* + * WM97xx - enable/disable AUX ADC sysfs +@@ -832,6 +836,23 @@ + mdev->remove(wm_codec); + } + ++#ifdef CONFIG_MACH_TOSA ++/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait ++ * before sampling the Y axis of the touchscreen */ ++unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm) { ++ unsigned long hsync_time = wm_machinfo->get_hsync_time(); ++ return hsync_time; ++} ++ ++void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo) { ++ wm_machinfo = machinfo; ++} ++ ++void wm97xx_unset_machinfo() { ++ wm_machinfo = NULL; ++} ++#endif ++ + static struct device_driver wm97xx_driver = { + .name = "ac97", + .bus = &ac97_bus_type, +@@ -861,6 +882,9 @@ + EXPORT_SYMBOL_GPL(wm97xx_reg_write); + EXPORT_SYMBOL_GPL(wm97xx_register_misc_dev); + EXPORT_SYMBOL_GPL(wm97xx_unregister_misc_dev); ++EXPORT_SYMBOL_GPL(wm97xx_calc_lcd_waittime); ++EXPORT_SYMBOL_GPL(wm97xx_set_machinfo); ++EXPORT_SYMBOL_GPL(wm97xx_unset_machinfo); + + module_init(wm97xx_init); + module_exit(wm97xx_exit); +Index: linux-tosa/include/linux/wm97xx.h +=================================================================== +--- linux-tosa.orig/include/linux/wm97xx.h 2006-08-29 16:52:36.008543280 +0100 ++++ linux-tosa/include/linux/wm97xx.h 2006-08-29 16:52:50.924275744 +0100 +@@ -207,6 +207,7 @@ + + struct wm97xx; + extern struct wm97xx_codec_drv wm97xx_codec; ++extern struct wm97xx_machinfo *wm_machinfo; + + /* + * Codec driver interface - allows mapping to WM9705/12/13 and newer codecs +@@ -253,6 +254,11 @@ + struct list_head list; + }; + ++struct wm97xx_machinfo { ++ unsigned long (*get_hsync_time)(void); ++ void (*wait_hsync)(void); ++}; ++ + int wm97xx_register_misc_dev(struct wm97xx_misc_dev* mdev); + void wm97xx_unregister_misc_dev(struct wm97xx_misc_dev* mdev); + +@@ -281,4 +287,9 @@ + int wm97xx_acc_startup(struct wm97xx* wm); + void wm97xx_acc_shutdown(struct wm97xx* wm); + ++ ++unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm); ++void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo); ++void wm97xx_unset_machinfo(void); ++ + #endif diff --git a/packages/linux/linux-rp.inc b/packages/linux/linux-rp.inc index 04b95ec813..14890a2283 100644 --- a/packages/linux/linux-rp.inc +++ b/packages/linux/linux-rp.inc @@ -21,18 +21,19 @@ ALLOW_EMPTY = "1" EXTRA_OEMAKE = "OPENZAURUS_RELEASE=-${DISTRO_VERSION}" COMPATIBLE_HOST = "(arm|i.86).*-linux" -COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|hx2000|qemuarm|qemux86)' +COMPATIBLE_MACHINE = '(collie|poodle|c7x0|akita|spitz|tosa|hx2000|qemuarm|qemux86|bootcdx86)' KERNEL_IMAGETYPE_qemux86 = "bzImage" +KERNEL_IMAGETYPE_bootcdx86 = "bzImage" -KERNEL_CUSTOM_NAME = '${@bb.data.getVar("KERNEL_CUSTOM_NAME_OVERRIDE",d,1) or ""}' -KERNEL_DEPLOY_NAME = '${@bb.data.getVar("KERNEL_DEPLOY_NAME_OVERRIDE",d,1) or "${KERNEL_IMAGETYPE}-${PV}-${KERNEL_CUSTOM_NAME}${MACHINE}-${DATETIME}.bin"}' -KERNEL_SYMLINK_NAME = '${@bb.data.getVar("KERNEL_SYMLINK_NAME_OVERRIDE",d,1) or "${KERNEL_IMAGETYPE}-${KERNEL_CUSTOM_NAME}${MACHINE}.bin"}' -KERNEL_DEFCONFIG = '${@bb.data.getVar("KERNEL_DEFCONFIG_OVERRIDE",d,1) or "defconfig-${MACHINE}"}' +KERNEL_CUSTOM_NAME ?= "" +KERNEL_DEPLOY_NAME ?= "${KERNEL_IMAGETYPE}-${PV}-${KERNEL_CUSTOM_NAME}${MACHINE}-${DATETIME}.bin" +KERNEL_SYMLINK_NAME ?= "${KERNEL_IMAGETYPE}-${KERNEL_CUSTOM_NAME}${MACHINE}.bin" +KERNEL_DEFCONFIG ?= "defconfig-${MACHINE}" CMDLINE_CON = "console=ttyS0,115200n8 console=tty1 noinitrd" CMDLINE_CON_collie = "console=ttySA0,115200n8 console=tty1 noinitrd" -CMDLINE_ROOT = '${@bb.data.getVar("CMDLINE_ROOT_OVERRIDE",d,1) or "root=/dev/mtdblock2 rootfstype=jffs2"}' -CMDLINE_ROOT_spitz = '${@bb.data.getVar("CMDLINE_ROOT_OVERRIDE",d,1) or "root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw"}' +CMDLINE_ROOT ?= "root=/dev/mtdblock2 rootfstype=jffs2" +CMDLINE_ROOT_spitz ?= "root=/dev/hda1 rootfstype=ext3 rootdelay=1 rw" CMDLINE_OTHER = "dyntick=enable" CMDLINE_DEBUG = '${@base_conditional("DISTRO_TYPE", "release", "quiet", "debug",d)}' @@ -70,9 +71,9 @@ module_autoload_mmc_block_collie = "mmc_block" do_configure() { rm -f ${S}/.config - if [ "${MACHINE}" == "tosa" ]; then + if [ "${MACHINE}" = "tosa" ]; then gcc_version=`${KERNEL_CC} -dumpversion` - if [ "${gcc_version}" == "4.0.1" ] || [ "${gcc_version}" == "4.0.2" ]; then + if [ "${gcc_version}" = "4.0.1" ] || [ "${gcc_version}" = "4.0.2" ]; then die "tosa kernel wont work with gcc 4.0.x" fi fi @@ -81,12 +82,12 @@ do_configure() { die "No default configuration for ${MACHINE} available." fi - if [ "${MACHINE}" == "collie" ]; then + if [ "${MACHINE}" = "collie" ]; then mempos=`echo "obase=16; $mem * 1024 * 1024" | bc` rdsize=`echo "$rd * 1024" | bc` total=`expr $mem + $rd` addr=`echo "obase=16; ibase=16; C0000000 + $mempos" | bc` - if [ "$rd" == "0" ] + if [ "$rd" = "0" ] then echo "No RAMDISK" echo "# CONFIG_MTD_MTDRAM_SA1100 is not set" >> ${S}/.config @@ -101,7 +102,7 @@ do_configure() { echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config - #if [ "${ENABLE_ELPP}" == "yes" ]; then + #if [ "${ENABLE_ELPP}" = "yes" ]; then # echo "# Enhanced Linux Progress Patch" >> ${S}/.config # echo "CONFIG_FB_ELPP=y" >> ${S}/.config # echo "CONFIG_LOGO=y" >> ${S}/.config @@ -110,7 +111,7 @@ do_configure() { # echo "# CONFIG_FB_ELPP is not set" >> ${S}/.config #fi - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then + if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then echo "CONFIG_AEABI=y" >> ${S}/.config echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config else @@ -118,7 +119,7 @@ do_configure() { echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config fi - if [ "${DISTRO}" == "openzaurus" -a "${MACHINE}" != "collie" ]; then + if [ "${DISTRO}" = "openzaurus" -a "${MACHINE}" != "collie" ]; then case ${MACHINE} in c7x0 | akita | spitz ) echo "CONFIG_LOGO_OZ640_CLUT224=y" >> ${S}/.config @@ -139,7 +140,7 @@ do_configure() { echo "CONFIG_LOGO=y" >> ${S}/.config echo "# CONFIG_LOGO_LINUX_CLUT224 is not set" >> ${S}/.config echo "# CONFIG_LOGO_OHAND_CLUT224 is not set" >> ${S}/.config - elif [ "${DISTRO}" == "poky" -a "${MACHINE}" != "collie" ]; then + elif [ "${DISTRO}" = "poky" -a "${MACHINE}" != "collie" ]; then echo "CONFIG_LOGO=y" >> ${S}/.config echo "CONFIG_LOGO_OHAND_CLUT224=y" >> ${S}/.config echo "# CONFIG_LOGO_OZ240_CLUT224 is not set" >> ${S}/.config @@ -198,12 +199,12 @@ do_compile_append() { } do_deploy() { - - install -d ${DEPLOY_DIR_IMAGE} - install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOY_NAME} - rm -f ${DEPLOY_DIR_IMAGE}/${KERNEL_SYMLINK_NAME} - ln -s ${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOY_NAME} ${DEPLOY_DIR_IMAGE}/${KERNEL_SYMLINK_NAME} - tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib + install -d ${DEPLOY_DIR_IMAGE} + install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_DEPLOY_NAME} + cd ${DEPLOY_DIR_IMAGE} + rm -f ${KERNEL_SYMLINK_NAME} + ln -s ${KERNEL_DEPLOY_NAME} ${KERNEL_SYMLINK_NAME} + tar -cvzf ${DEPLOY_DIR_IMAGE}/modules-${KERNEL_VERSION}-${MACHINE}.tgz -C ${D} lib } do_deploy[dirs] = "${S}" diff --git a/packages/linux/linux-rp_2.6.17.bb b/packages/linux/linux-rp_2.6.17.bb index 717ef5a523..211c5a43cf 100644 --- a/packages/linux/linux-rp_2.6.17.bb +++ b/packages/linux/linux-rp_2.6.17.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r33" +PR = "r35" # Handy URLs # git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \ @@ -27,7 +27,7 @@ SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \ ${RPSRC}/spectrumcs_fix-r0.patch;patch=1 \ file://00-hostap.patch;patch=1;status=merged \ file://10-pcnet.patch;patch=1;status=merged \ - file://asoc-v0.12.4_2.6.17.patch;patch=1 \ + file://asoc-v0.12.4_2.6.17.patch;patch=1 \ ${RPSRC}/hx2750_base-r27.patch;patch=1 \ ${RPSRC}/hx2750_bl-r7.patch;patch=1 \ ${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \ diff --git a/packages/linux/linux-rp_2.6.20.bb b/packages/linux/linux-rp_2.6.20.bb index 95a87621d7..b818b0f3e8 100644 --- a/packages/linux/linux-rp_2.6.20.bb +++ b/packages/linux/linux-rp_2.6.20.bb @@ -1,6 +1,6 @@ require linux-rp.inc -PR = "r18" +PR = "r19" # Handy URLs # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 diff --git a/packages/linux/linux-rp_2.6.21.bb b/packages/linux/linux-rp_2.6.21.bb new file mode 100644 index 0000000000..07c7e386fe --- /dev/null +++ b/packages/linux/linux-rp_2.6.21.bb @@ -0,0 +1,111 @@ +require linux-rp.inc + +PR = "r5" + +# Handy URLs +# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 +# http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2 +# http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.20-rc4.tar.bz2 +# http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.18-rc6.bz2;patch=1 +# http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.18-rc2-git1.bz2;patch=1 +# http://www.kernel.org/pub/linux/kernel/people/alan/linux-2.6/2.6.10/patch-2.6.10-ac8.gz;patch=1 +# http://www.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1 + +# Patches submitted upstream are towards top of this list +# Hacks should clearly named and at the bottom +SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.21.tar.bz2 \ + ${RPSRC}/lzo_kernel-r0.patch;patch=1 \ + ${RPSRC}/lzo_jffs2-r0.patch;patch=1 \ + ${RPSRC}/lzo_crypto-r1.patch;patch=1 \ + ${RPSRC}/lzo_jffs2_lzomode-r0.patch;patch=1 \ + ${RPSRC}/lzo_jffs2_sysfs-r0.patch;patch=1 \ + ${RPSRC}/hx2750_base-r28.patch;patch=1 \ + ${RPSRC}/hx2750_bl-r9.patch;patch=1 \ + ${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \ + ${RPSRC}/pxa_keys-r7.patch;patch=1 \ + ${RPSRC}/tsc2101-r16.patch;patch=1 \ + ${RPSRC}/hx2750_test1-r6.patch;patch=1 \ + ${RPSRC}/pxa_timerfix-r0.patch;patch=1 \ + ${RPSRC}/input_power-r7.patch;patch=1 \ + ${RPSRC}/pxa25x_cpufreq-r2.patch;patch=1 \ + ${RPSRC}/sharpsl_pm_fixes1-r0.patch;patch=1 \ + ${RPSRC}/pm_changes-r1.patch;patch=1 \ + ${RPSRC}/usb_add_epalloc-r3.patch;patch=1 \ + ${RPSRC}/usb_pxa27x_udc-r4.patch;patch=1 \ + ${RPSRC}/locomo_kbd_tweak-r1.patch;patch=1 \ + ${RPSRC}/poodle_pm-r3.patch;patch=1 \ + ${RPSRC}/pxa27x_overlay-r5.patch;patch=1 \ + ${RPSRC}/w100_extaccel-r0.patch;patch=1 \ + ${RPSRC}/asoc_fix_typo-r0.patch;patch=1 \ + ${RPSRC}/qemuarm_scsi_fix-r0.patch;patch=1 \ + file://hostap-monitor-mode.patch;patch=1 \ + file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \ + ${RPSRC}/logo_oh-r0.patch.bz2;patch=1;status=unmergable \ + ${RPSRC}/logo_oz-r2.patch.bz2;patch=1;status=unmergable \ + ${RPSRC}/pxa-linking-bug.patch;patch=1;status=unmergable \ + ${RPSRC}/mmcsd_large_cards-r0.patch;patch=1;status=hack \ + ${RPSRC}/mmcsd_no_scr_check-r0.patch;patch=1;status=hack \ + ${RPSRC}/integrator_rgb-r1.patch;patch=1;status=hack \ + ${RPSRC}/pxa_cf_initorder_hack-r1.patch;patch=1;status=hack \ + file://pxa-serial-hack.patch;patch=1;status=hack \ + file://connectplus-remove-ide-HACK.patch;patch=1;status=hack \ + file://squashfs3.0-2.6.15.patch;patch=1;status=external \ + file://vesafb-tng-1.0-rc2-2.6.20-rc2.patch;patch=1;status=external \ + file://sharpsl-rc-r1.patch;patch=1 \ + file://defconfig-c7x0 \ + file://defconfig-hx2000 \ + file://defconfig-collie \ + file://defconfig-poodle \ + file://defconfig-akita \ + file://defconfig-spitz \ + file://defconfig-qemuarm \ + file://defconfig-qemux86 \ + file://defconfig-bootcdx86 \ + file://defconfig-tosa " + +# Add this to enable pm debug code (useful with a serial lead) +# ${RPSRC}/sharpsl_pm_debug-r0.patch;patch=1 + +# Disabled until I find the reason this gives issues with cdc_subset +# ${RPSRC}/usb_rndis_tweaks-r0.patch;patch=1 \ + +# Is anything out of this still needed? Parts were commited to mainline by rmk (drivers/mfd/) +# (Pavel Machek's git tree has updated versions of this?) +# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1 + +# These patches are extracted from Pavel Machek's git tree +# (diff against vanilla kernel) +SRC_URI_append_collie = "\ + ${DOSRC}/collie/mtd-sharp-flash-hack-r0.patch;patch=1 \ + ${DOSRC}/collie/collie-r0.patch;patch=1 \ + ${DOSRC}/collie/locomolcd-backlight-r0.patch;patch=1 \ + ${DOSRC}/collie/ucb1x00-touch-audio-r0.patch;patch=1 \ + file://collie-mcp-r1.patch;patch=1 \ + ${DOSRC}/collie/sa1100-udc-r0.patch;patch=1 \ +# ${DOSRC}/collie/collie-pm-r1.patch;patch=1 \ +" + +SRC_URI_append_tosa = "\ + ${CHSRC}/usb-ohci-hooks-r1.patch;patch=1 \ + ${CHSRC}/tmio-core-r4.patch;patch=1 \ + file://tmio-tc6393-r8.patch;patch=1 \ + file://tmio-nand-r7.patch;patch=1 \ + file://tmio-ohci-r6.patch;patch=1 \ + ${CHSRC}/tmio-fb-r6.patch;patch=1 \ + file://tosa-keyboard-r18.patch;patch=1 \ + ${DOSRC}/tosa-pxaac97-r6.patch;patch=1 \ + ${DOSRC}/tosa-tmio-r6.patch;patch=1 \ + ${DOSRC}/tosa-power-r17.patch;patch=1 \ + file://tosa-tmio-lcd-r10.patch;patch=1 \ + ${DOSRC}/tosa-bluetooth-r8.patch;patch=1 \ + ${DOSRC}/wm97xx-lg7-r0.patch;patch=1 \ + file://wm9712-suspend-cold-res-r2.patch;patch=1 \ + file://sharpsl-pm-postresume-r1.patch;patch=1 \ + ${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \ + ${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \ + file://wm9712-reset-loop-r2.patch;patch=1 \ + file://tosa-lcdnoise-r1.patch;patch=1 \ + file://wm97xx-lcdnoise-r0.patch;patch=1 " +# ${DOSRC}/tosa-asoc-r1.patch;patch=1 " + +S = "${WORKDIR}/linux-2.6.21" diff --git a/packages/linux/linux.inc b/packages/linux/linux.inc index d4f98f0978..3ee5e227f3 100644 --- a/packages/linux/linux.inc +++ b/packages/linux/linux.inc @@ -18,7 +18,11 @@ KERNEL_IMAGETYPE_at32stk1000 = "uImage" KERNEL_IMAGETYPE_at91sam9263ek = "uImage" # Specify the commandline for you device here: + +#boot from mmc CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=/dev/mmcblk0p1 rootfstype=ext2 rootdelay=5" +#boot from nfs +#CMDLINE_at91sam9263ek = "mem=64M console=ttyS0,115200 root=301 root=/dev/nfs nfsroot=172.20.3.1:/data/at91 ip=172.20.0.5:::255.255.0.0" do_configure_prepend() { echo "" > ${S}/.config @@ -43,11 +47,11 @@ do_configure_prepend() { do_install_prepend() { if test -e arch/${ARCH}/boot/Image ; then - ln -f arch/arm/boot/Image arch/arm/boot/uImage + ln -f arch/${ARCH}/boot/Image arch/${ARCH}/boot/uImage fi if test -e arch/${ARCH}/boot/images/uImage ; then - ln -f arch/arm/boot/images/uImage arch/arm/boot/uImage + ln -f arch/${ARCH}/boot/images/uImage arch/${ARCH}/boot/uImage fi } diff --git a/packages/lyx/lyx_1.4.4+1.5.0rc1.bb b/packages/lyx/lyx_1.4.4+1.5.0rc1.bb new file mode 100644 index 0000000000..e080c17b72 --- /dev/null +++ b/packages/lyx/lyx_1.4.4+1.5.0rc1.bb @@ -0,0 +1,27 @@ +DESCRIPTION = "LyX is an advanced type setting processor - a frontend for LaTeX" +SECTION = "x11/office" +LICENSE = "GPL" +HOMEPAGE = "http://www.lyx.org" +DEPENDS = "boost qt4-x11-free" +RRECOMMENDS = "tetex" +RDEPENDS = "python-shell" +PR = "r1" + +DEFAULT_PREFERENCE = "-1" + +# we're checking out from svn because the tarball doesn't contain the necessary stuff to run autoreconf +SRC_URI = "svn://svn.lyx.org/lyx/lyx-devel/tags;module=lyx_1_5_0rc1;rev=18613" +S = "${WORKDIR}/lyx_1_5_0rc1" + +inherit autotools qt4x11 + +EXTRA_OECONF = " --with-qt4-dir=${QTDIR} -enable-pch" +PARALLEL_MAKE = "" + +do_configure_prepend() { + echo "NOTE: touching missing files, please report to upstream" + touch lib/configure.ac lib/doc/LaTeXConfig.lyx lib/textclass.lst +} + +export UIC="${OE_QMAKE_UIC}" +export MOC="${OE_QMAKE_MOC}" diff --git a/packages/lyx/lyx_1.4.4.bb b/packages/lyx/lyx_1.4.4.bb new file mode 100644 index 0000000000..d9156cd779 --- /dev/null +++ b/packages/lyx/lyx_1.4.4.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "LyX is an advanced type setting processor - a frontend for LaTeX" +SECTION = "x11/office" +LICENSE = "GPL" +HOMEPAGE = "http://www.lyx.org" +DEPENDS = "boost" +RRECOMMENDS = "tetex" +PR = "r0" + +# we're checking out from svn because the tarball doesn't contain the necessary stuff to run autoreconf +SRC_URI = "svn://svn.lyx.org/lyx/lyx-devel/tags;module=lyx-1_4_4;rev=17185" +S = "${WORKDIR}/lyx-1_4_4" + +inherit autotools qt3x11 + +EXTRA_OECONF = "--with-frontend=qt --with-qt-dir=${QTDIR}" +PARALLEL_MAKE = "" + +do_configure_prepend() { + echo "NOTE: touching missing files, please report to upstream" + touch lib/configure.ac lib/doc/LaTeXConfig.lyx lib/textclass.lst +} + +export UIC="${OE_QMAKE_UIC}" +export MOC="${OE_QMAKE_MOC}" diff --git a/packages/madwifi/madwifi-ng_r2518-20070626.bb b/packages/madwifi/madwifi-ng_r2518-20070626.bb new file mode 100644 index 0000000000..9f042ac926 --- /dev/null +++ b/packages/madwifi/madwifi-ng_r2518-20070626.bb @@ -0,0 +1,7 @@ +PR = "r0" + +# Disable stripping of kernel modules, since this action strips too +# much out, and the resulting module won't load. +INHIBIT_PACKAGE_STRIP = "1" + +require madwifi-ng_r.inc diff --git a/packages/misc-binary-only/prism-firmware.bb b/packages/misc-binary-only/prism-firmware.bb new file mode 100644 index 0000000000..fefdb0ae22 --- /dev/null +++ b/packages/misc-binary-only/prism-firmware.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "Firmware for the Prism 2.x/3 cards" +SECTION = "base" +LICENSE = "closed" +RDEPENDS = "hostap-utils" +RREPLACES = "prism3-firmware prism3-support" +RCONFLICTS = "prism3-firmware prism3-support" +PACKAGE_ARCH = "all" +PR = "r2" + +SRC_URI = "http://www.red-bean.com/~proski/firmware/Latest-prism.tar.bz2 \ + file://prism-fw.sh \ + file://hostap.rules" + +S = "${WORKDIR}/Latest-prism/" + +do_install() { + install -d ${D}${base_libdir}/firmware/ + install -d ${D}${base_libdir}/udev/ + install -d ${D}${sysconfdir}/pcmcia/ + install -d ${D}${sysconfdir}/udev/rules.d/ + + install -m 0644 primary-RAM/*.hex ${D}${base_libdir}/firmware/ + install -m 0644 secondary-RAM/rf010804.hex ${D}${base_libdir}/firmware/ + + install -m 0755 ${WORKDIR}/prism-fw.sh ${D}${base_libdir}/udev/ + install -m 0644 ${WORKDIR}/hostap.rules ${D}${sysconfdir}/udev/rules.d/ +} + +PACKAGES = "${PN}" +FILES_${PN} += "${base_libdir}" diff --git a/packages/elitaire/files/.mtn2git_empty b/packages/misc-binary-only/prism-firmware/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/elitaire/files/.mtn2git_empty +++ b/packages/misc-binary-only/prism-firmware/.mtn2git_empty diff --git a/packages/misc-binary-only/prism-firmware/hostap.rules b/packages/misc-binary-only/prism-firmware/hostap.rules new file mode 100644 index 0000000000..dece98ae93 --- /dev/null +++ b/packages/misc-binary-only/prism-firmware/hostap.rules @@ -0,0 +1,4 @@ +# +# update firmware on Prism cards (load it to RAM, not to Flash) +# +SUBSYSTEM=="net", KERNEL=="wlan*" RUN="/lib/udev/prism-fw.sh" diff --git a/packages/misc-binary-only/prism-firmware/prism-fw.sh b/packages/misc-binary-only/prism-firmware/prism-fw.sh new file mode 100644 index 0000000000..96a2457f33 --- /dev/null +++ b/packages/misc-binary-only/prism-firmware/prism-fw.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +CARD_ID=`/usr/sbin/hostap_diag $INTERFACE|grep NICID|awk '{print $2}'|sed -e 's/id=0x//'` + +# 801d cards lack even Primary firmware so we cannot use hostap_diag +PRI=/lib/firmware/pm010102.hex +STA=/lib/firmware/rf010804.hex + +if [ $CARD_ID = '800c' ] || [ $CARD_ID = '8013' ] || [ $CARD_ID = '8017' ] || \ + [ $CARD_ID = '801b' ] || [ $CARD_ID = '8022' ] || [ $CARD_ID = '8023' ] ; then + PRI=/lib/firmware/ak010104.hex +elif [ $CARD_ID = '800b' ] || [ $CARD_ID = '8012' ] || [ $CARD_ID = '8016' ] || \ + [ $CARD_ID = '801a' ] ; then + PRI=/lib/firmware/af010104.hex +elif [ $CARD_ID = '800e' ] || [ $CARD_ID = '8015' ] || [ $CARD_ID = '8019' ] || \ + [ $CARD_ID = '801d' ] ; then + PRI=/lib/firmware/pm010102.hex +fi + +DIR=/proc/net/hostap/wlan0 + +if [ ! -d $DIR ]; then + exit 1 +fi + +if grep -q no_pri=1 $DIR/debug; then + /usr/sbin/prism2_srec -gs wlan0 $PRI + /usr/sbin/prism2_srec -gp wlan0 $PRI +fi + +/usr/sbin/prism2_srec -rp wlan0 $STA + diff --git a/packages/misc-binary-only/prism3-firmware_1.8.3.bb b/packages/misc-binary-only/prism3-firmware_1.8.3.bb deleted file mode 100644 index fb8f83afac..0000000000 --- a/packages/misc-binary-only/prism3-firmware_1.8.3.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "Firmware for the Prism3 cards" -SECTION = "base" -LICENSE = "Unknown" -PR = "r3" - -SRC_URI = "http://www.red-bean.com/~proski/firmware/${PV}.tar.bz2 \ - http://www.red-bean.com/~proski/firmware/primary.tar.bz2" -S = "${WORKDIR}" - -do_install() { - install -d ${D}${sysconfdir}/pcmcia/ - install -m 0644 primary/pm010102.hex ${D}${sysconfdir}/pcmcia/ - install -m 0644 ${PV}/rf010803.hex ${D}${sysconfdir}/pcmcia/ - cat >${D}${sysconfdir}/pcmcia/README.prism3-firmware <<EOF -To make a prism3 card w/ downloadable firmware work, do the following: - 0.) Install hostap-utils - 1.) Add "needs_reset yes" and "needs_firmware hostap_fw_load" to - the proper interface in /etc/network/interfaces - 2.) echo -e "#!/bin/sh\nifdown wlan0" >> /etc/apm/suspend.d/ifdown - 3.) chmod a+rx /etc/apm/suspend.d/ifdown - 4.) echo -e "#!/bin/sh\nifup wlan0" >> /etc/apm/resume.d/ifup - 5.) chmod a+rx /etc/apm/suspend.d/ifup -EOF -} - -PACKAGE_ARCH = "all" - diff --git a/packages/misc-binary-only/prism3-firmware_1.8.4.bb b/packages/misc-binary-only/prism3-firmware_1.8.4.bb deleted file mode 100644 index 2983ea7710..0000000000 --- a/packages/misc-binary-only/prism3-firmware_1.8.4.bb +++ /dev/null @@ -1,27 +0,0 @@ -DESCRIPTION = "Firmware for the Prism3 cards" -SECTION = "base" -LICENSE = "Unknown" -PR = "r0" - -SRC_URI = "http://www.red-bean.com/~proski/firmware/${PV}.tar.bz2 \ - http://www.red-bean.com/~proski/firmware/primary.tar.bz2" -S = "${WORKDIR}" - -do_install() { - install -d ${D}${sysconfdir}/pcmcia/ - install -m 0644 primary/pm010102.hex ${D}${sysconfdir}/pcmcia/ - install -m 0644 ${PV}/rf010804.hex ${D}${sysconfdir}/pcmcia/ - cat >${D}${sysconfdir}/pcmcia/README.prism3-firmware <<EOF -To make a prism3 card w/ downloadable firmware work, do the following: - 0.) Install hostap-utils - 1.) Add "needs_reset yes" and "needs_firmware hostap_fw_load" to - the proper interface in /etc/network/interfaces - 2.) echo -e "#!/bin/sh\nifdown wlan0" >> /etc/apm/suspend.d/ifdown - 3.) chmod a+rx /etc/apm/suspend.d/ifdown - 4.) echo -e "#!/bin/sh\nifup wlan0" >> /etc/apm/resume.d/ifup - 5.) chmod a+rx /etc/apm/suspend.d/ifup -EOF -} - -PACKAGE_ARCH = "all" - diff --git a/packages/mozilla/minimo/minimo-components-ssr-only.patch b/packages/mozilla/minimo/minimo-components-ssr-only.patch new file mode 100644 index 0000000000..6fbc4de25e --- /dev/null +++ b/packages/mozilla/minimo/minimo-components-ssr-only.patch @@ -0,0 +1,36 @@ +Index: mozilla/minimo/components/Makefile.in +=================================================================== +RCS file: /cvsroot/mozilla/minimo/components/Makefile.in,v +retrieving revision 1.1.2.2 +diff -u -r1.1.2.2 Makefile.in +--- mozilla/minimo/components/Makefile.in 14 Jul 2006 16:04:33 -0000 1.1.2.2 ++++ mozilla/minimo/components/Makefile.in 20 Sep 2006 12:55:08 -0000 +@@ -41,10 +41,10 @@ + + include $(DEPTH)/config/autoconf.mk + +-DIRS = phone softkb ssr device gps ++DIRS = ssr + + ifdef WINCE +-DIRS += ssl ++DIRS += ssl phone softkb device gps + endif + + include $(topsrcdir)/config/rules.mk +Index: mozilla/minimo/components/ssr/Makefile.in +=================================================================== +RCS file: /cvsroot/mozilla/minimo/components/ssr/Makefile.in,v +retrieving revision 1.1.2.1 +diff -u -r1.1.2.1 Makefile.in +--- mozilla/minimo/components/ssr/Makefile.in 30 Jan 2006 18:47:01 -0000 1.1.2.1 ++++ mozilla/minimo/components/ssr/Makefile.in 20 Sep 2006 14:52:46 -0000 +@@ -42,7 +42,7 @@ + + include $(DEPTH)/config/autoconf.mk + +-MODULE_NAME = ssr ++MODULE_NAME = SSRModule + MODULE = ssr + LIBRARY_NAME = ssr + diff --git a/packages/mozilla/minimo/minimo-disable-mode-switch.patch b/packages/mozilla/minimo/minimo-disable-mode-switch.patch new file mode 100644 index 0000000000..50691efe0f --- /dev/null +++ b/packages/mozilla/minimo/minimo-disable-mode-switch.patch @@ -0,0 +1,11 @@ +--- mozilla/widget/src/gtk2/nsWindow.cpp.orig 2007-06-12 22:19:35.000000000 +0900 ++++ mozilla/widget/src/gtk2/nsWindow.cpp 2007-06-12 22:19:02.000000000 +0900 +@@ -1859,6 +1859,7 @@ + || aEvent->keyval == GDK_Shift_R + || aEvent->keyval == GDK_Control_L + || aEvent->keyval == GDK_Control_R ++ || aEvent->keyval == GDK_Mode_switch + || aEvent->keyval == GDK_Alt_L + || aEvent->keyval == GDK_Alt_R + || aEvent->keyval == GDK_Meta_L + diff --git a/packages/mozilla/minimo_cvs.bb b/packages/mozilla/minimo_cvs.bb index c0e8edc747..990068b41e 100644 --- a/packages/mozilla/minimo_cvs.bb +++ b/packages/mozilla/minimo_cvs.bb @@ -8,7 +8,7 @@ DEPENDS = "libxrender xt xft fontconfig freetype libidl dbus-glib pango atk gtk+ CVSSVR="cvs-mirror.mozilla.org" BRTAG = "MOZILLA_1_8_BRANCH" -MOZDATE = "20070510" +MOZDATE = "20070626" PV = "0.02+cvs${MOZDATE}" PE = "1" @@ -20,6 +20,8 @@ SRC_URI = "cvs://anonymous@${CVSSVR}/cvsroot;module=mozilla;tag=${BRTAG};date=${ file://eabi-fix.patch;patch=1 \ file://eabi-fix2.patch;patch=1 \ file://eabi-fix3.patch;patch=1 \ + file://minimo-components-ssr-only.patch;patch=1 \ + file://minimo-disable-mode-switch.patch;patch=1 \ file://minimo.desktop file://minimo.png" inherit autotools diff --git a/packages/mplayer/mplayer_0.0+1.0rc1.bb b/packages/mplayer/mplayer_0.0+1.0rc1.bb index 23f52bcac0..6d9cd754d5 100644 --- a/packages/mplayer/mplayer_0.0+1.0rc1.bb +++ b/packages/mplayer/mplayer_0.0+1.0rc1.bb @@ -34,7 +34,7 @@ PACKAGE_ARCH_mencoder_collie = "collie" RCONFLICTS_${PN} = "mplayer-atty" RREPLACES_${PN} = "mplayer-atty" -PR = "r13" +PR = "r14" PARALLEL_MAKE = "" @@ -185,13 +185,17 @@ EXTRA_OECONF_append_hx4700 = " --enable-imageon " #enable pxa270 overlay support EXTRA_OECONF_append_spitz = " --enable-pxa " +EXTRA_OECONF_append_akita = " --enable-pxa " EXTRA_OECONF_append_a780 = " --enable-pxa " EXTRA_OECONF_append_magician = " --enable-pxa " EXTRA_OECONF_append_htcuniversal = " --enable-pxa " +EXTRA_OECONF_append_palmld = " --enable-pxa " #build with support for the iwmmxt instruction support (pxa270 and up) TARGET_CC_ARCH_spitz = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_spitz = "iwmmxt" +TARGET_CC_ARCH_akita = "-march=iwmmxt -mtune=iwmmxt" +PACKAGE_ARCH_akita = "iwmmxt" TARGET_CC_ARCH_a780 = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_a780 = "iwmmxt" TARGET_CC_ARCH_hx4700 = "-march=iwmmxt -mtune=iwmmxt" @@ -200,6 +204,8 @@ TARGET_CC_ARCH_magician = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_magician = "iwmmxt" TARGET_CC_ARCH_htcuniversal = "-march=iwmmxt -mtune=iwmmxt" PACKAGE_ARCH_htcuniversal = "iwmmxt" +TARGET_CC_ARCH_palmld = "-march=iwmmxt -mtune=iwmmxt" +PACKAGE_ARCH_palmld = "iwmmxt" do_configure() { cp ${WORKDIR}/vo_w100.c ${S}/libvo diff --git a/packages/esound/esound-gpe/.mtn2git_empty b/packages/nonworking/efl/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/esound/esound-gpe/.mtn2git_empty +++ b/packages/nonworking/efl/.mtn2git_empty diff --git a/packages/esound/old/.mtn2git_empty b/packages/nonworking/efl/e/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/esound/old/.mtn2git_empty +++ b/packages/nonworking/efl/e/.mtn2git_empty diff --git a/packages/efl/e/fix-configure.patch b/packages/nonworking/efl/e/fix-configure.patch index 02560fd7ab..02560fd7ab 100644 --- a/packages/efl/e/fix-configure.patch +++ b/packages/nonworking/efl/e/fix-configure.patch diff --git a/packages/efl/ecore-fb_0.9.9.038.bb b/packages/nonworking/efl/ecore-fb_0.9.9.038.bb index b856d38bd9..b856d38bd9 100644 --- a/packages/efl/ecore-fb_0.9.9.038.bb +++ b/packages/nonworking/efl/ecore-fb_0.9.9.038.bb diff --git a/packages/efl/ecore-native_0.9.9.038.bb b/packages/nonworking/efl/ecore-native_0.9.9.038.bb index 7d7ed2370a..7d7ed2370a 100644 --- a/packages/efl/ecore-native_0.9.9.038.bb +++ b/packages/nonworking/efl/ecore-native_0.9.9.038.bb diff --git a/packages/efl/ecore-x11_0.9.9.038.bb b/packages/nonworking/efl/ecore-x11_0.9.9.038.bb index 1deb641326..1deb641326 100644 --- a/packages/efl/ecore-x11_0.9.9.038.bb +++ b/packages/nonworking/efl/ecore-x11_0.9.9.038.bb diff --git a/packages/efl/ecore.inc b/packages/nonworking/efl/ecore.inc index 60c18cacc3..60c18cacc3 100644 --- a/packages/efl/ecore.inc +++ b/packages/nonworking/efl/ecore.inc diff --git a/packages/linux/linux-ezx-2.6.20.7/.mtn2git_empty b/packages/nonworking/efl/ecore/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/linux/linux-ezx-2.6.20.7/.mtn2git_empty +++ b/packages/nonworking/efl/ecore/.mtn2git_empty diff --git a/packages/nonworking/efl/ecore/add-tslib-support.patch b/packages/nonworking/efl/ecore/add-tslib-support.patch new file mode 100644 index 0000000000..c125122a91 --- /dev/null +++ b/packages/nonworking/efl/ecore/add-tslib-support.patch @@ -0,0 +1,104 @@ + +# +# tslib support for ecore, (C) Michael 'Mickey' Lauer <mickey@Vanille.de> +# + +--- ecore/src/lib/ecore_fb/ecore_fb.c~add-tslib-support.patch ++++ ecore/src/lib/ecore_fb/ecore_fb.c +@@ -4,6 +4,13 @@ + #include "Ecore_Fb.h" + #include "ecore_private.h" + ++ ++#ifdef HAVE_TSLIB ++#include <tslib.h> ++#include <errno.h> ++#endif ++ ++ + #include <fcntl.h> + #include <unistd.h> + #include <stdio.h> +@@ -77,6 +84,11 @@ + unsigned char z; + }; + ++#ifdef HAVE_TSLIB ++struct tsdev *_ecore_fb_tslib_tsdev = NULL; ++struct ts_sample _ecore_fb_tslib_event; ++#endif ++ + static void _ecore_fb_size_get(int *w, int *h); + static int _ecore_fb_ts_fd_handler(void *data, Ecore_Fd_Handler *fd_handler); + static int _ecore_fb_kbd_fd_handler(void *data, Ecore_Fd_Handler *fd_handler); +@@ -269,10 +281,39 @@ + ecore_fb_init(const char *name __UNUSED__) + { + int prev_flags; ++#ifdef HAVE_TSLIB ++ char *tslib_tsdevice = NULL; ++#endif + + _ecore_fb_init_count++; + if (_ecore_fb_init_count > 1) return _ecore_fb_init_count; ++#ifdef HAVE_TSLIB ++ if ( ( tslib_tsdevice = getenv("TSLIB_TSDEVICE") ) != NULL ) ++ { ++ printf( "ECORE_FB: TSLIB_TSDEVICE = '%s'\n", tslib_tsdevice ); ++ _ecore_fb_tslib_tsdev = ts_open( tslib_tsdevice, 1 ); /* 1 = nonblocking, 0 = blocking */ ++ ++ if ( !_ecore_fb_tslib_tsdev ) ++ { ++ printf( "ECORE_FB: Can't ts_open (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ ++ if ( ts_config( _ecore_fb_tslib_tsdev ) ) ++ { ++ printf( "ECORE_FB: Can't ts_config (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ _ecore_fb_ts_fd = ts_fd( _ecore_fb_tslib_tsdev ); ++ if ( _ecore_fb_ts_fd < 0 ) ++ { ++ printf( "ECORE_FB: Can't open touchscreen (%s)\n", strerror( errno ) ); ++ return 0; ++ } ++ } ++#else + _ecore_fb_ts_fd = open("/dev/touchscreen/0", O_RDONLY); ++#endif + if (_ecore_fb_ts_fd >= 0) + { + prev_flags = fcntl(_ecore_fb_ts_fd, F_GETFL); +@@ -790,7 +831,21 @@ + char *ptr; + double t; + int did_triple = 0; +- ++ ++#ifdef HAVE_TSLIB ++ if ( _ecore_fb_ts_apply_cal ) ++ num = ts_read_raw( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 ); ++ else ++ num = ts_read( _ecore_fb_tslib_tsdev, &_ecore_fb_tslib_event, 1 ); ++ if ( num != 1 ) ++ { ++ return 1; /* no more samples at this time */ ++ } ++ x = _ecore_fb_tslib_event.x; ++ y = _ecore_fb_tslib_event.y; ++ pressure = _ecore_fb_tslib_event.pressure; ++ v = 1; /* loop, there might be more samples */ ++#else + ptr = (char *)&(_ecore_fb_ts_event); + ptr += _ecore_fb_ts_event_byte_count; + num = sizeof(Ecore_Fb_Ts_Event) - _ecore_fb_ts_event_byte_count; +@@ -811,6 +866,7 @@ + y = _ecore_fb_ts_event.y; + } + pressure = _ecore_fb_ts_event.pressure; ++#endif + /* add event to queue */ + /* always add a move event */ + if ((pressure) || (prev_pressure)) diff --git a/packages/nonworking/efl/ecore/configure-abstract-sockets.patch b/packages/nonworking/efl/ecore/configure-abstract-sockets.patch new file mode 100644 index 0000000000..359203b163 --- /dev/null +++ b/packages/nonworking/efl/ecore/configure-abstract-sockets.patch @@ -0,0 +1,16 @@ +Index: ecore-0.9.9.038/configure.in +=================================================================== +--- ecore-0.9.9.038.orig/configure.in ++++ ecore-0.9.9.038/configure.in +@@ -541,10 +541,7 @@ AC_ARG_ENABLE(abstract-sockets, + [ want_abstract_sockets="yes"] + ) + if test "x$want_abstract_sockets" = "xyes"; then +- AC_ABSTRACT_SOCKET_TEST( +- [AC_DEFINE(HAVE_ABSTRACT_SOCKETS, 1, [Have abstract sockets namespace])], +- [] +- ) ++ HAVE_ABSTRACT_SOCKETS = 1 + fi + + ECORE_CHECK_MODULE([Con], [yes]) diff --git a/packages/nonworking/efl/ecore/configure.patch b/packages/nonworking/efl/ecore/configure.patch new file mode 100644 index 0000000000..23d8193b44 --- /dev/null +++ b/packages/nonworking/efl/ecore/configure.patch @@ -0,0 +1,21 @@ +--- ecore-0.9.9.036/configure.in.bak 2006-11-13 14:01:10.000000000 -0800 ++++ ecore-0.9.9.036/configure.in 2006-11-13 14:02:15.000000000 -0800 +@@ -16,7 +16,6 @@ + AC_CHECK_SIZEOF(long, 4) + AM_ENABLE_SHARED + AM_PROG_LIBTOOL +-AC_C___ATTRIBUTE__ + + if test "x${bindir}" = 'xNONE'; then + if test "x${prefix}" = "xNONE"; then +@@ -200,9 +199,7 @@ + AM_CONDITIONAL(BUILD_ECORE_X, true) + AC_DEFINE(BUILD_ECORE_X, 1, [Build Ecore_X Module]) + have_ecore_x="yes" +- x_dir=${x_dir:-/usr/X11R6} +- x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}} +- x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext" ++ x_libs="-lX11 -lXext" + ecore_x_libs="-lecore_x $x_libs"; + ],[ + AM_CONDITIONAL(BUILD_ECORE_X, false) diff --git a/packages/nonworking/efl/ecore/ecore_kernel_input_header.patch b/packages/nonworking/efl/ecore/ecore_kernel_input_header.patch new file mode 100644 index 0000000000..99f57ddcff --- /dev/null +++ b/packages/nonworking/efl/ecore/ecore_kernel_input_header.patch @@ -0,0 +1,23 @@ +Index: ecore-0.9.9.036/src/lib/ecore_fb/ecore_fb_li.c +=================================================================== +--- ecore-0.9.9.036.orig/src/lib/ecore_fb/ecore_fb_li.c 2006-09-05 01:36:43.000000000 +0100 ++++ ecore-0.9.9.036/src/lib/ecore_fb/ecore_fb_li.c 2006-12-02 21:55:54.000000000 +0000 +@@ -1,6 +1,18 @@ + #include "Ecore_Fb.h" + #include "ecore_fb_private.h" + ++struct input_absinfo { ++ __s32 value; ++ __s32 minimum; ++ __s32 maximum; ++ __s32 fuzz; ++ __s32 flat; ++}; ++ ++ ++#define EV_SYN 0x00 ++#define EV_PWR 0x16 ++#define EV_FF_STATUS 0x17 + + /* Copyright (C) Brad Hards (1999-2002). + * this macro is used to tell if "bit" is set in "array" diff --git a/packages/efl/ecore/fix-tslib-configure.patch b/packages/nonworking/efl/ecore/fix-tslib-configure.patch index 2c82b2741e..2c82b2741e 100644 --- a/packages/efl/ecore/fix-tslib-configure.patch +++ b/packages/nonworking/efl/ecore/fix-tslib-configure.patch diff --git a/packages/nonworking/efl/ecore/remove-bad-code.patch b/packages/nonworking/efl/ecore/remove-bad-code.patch new file mode 100644 index 0000000000..87a8d16bd6 --- /dev/null +++ b/packages/nonworking/efl/ecore/remove-bad-code.patch @@ -0,0 +1,36 @@ +Index: ecore-0.9.9.037/src/lib/ecore_fb/ecore_fb_private.h +=================================================================== +--- ecore-0.9.9.037.orig/src/lib/ecore_fb/ecore_fb_private.h ++++ ecore-0.9.9.037/src/lib/ecore_fb/ecore_fb_private.h +@@ -19,8 +19,8 @@ + #define kernel_ulong_t unsigned long + #define BITS_PER_LONG 32 + #include <linux/input.h> +- #undef kernel_ulong_t <-added +- #undef BITS_PER_LONG <-added ++ #undef kernel_ulong_t ++ #undef BITS_PER_LONG + #else + #include <linux/input.h> + #endif +Index: ecore-0.9.9.037/src/lib/ecore_fb/ecore_fb_li.c +=================================================================== +--- ecore-0.9.9.037.orig/src/lib/ecore_fb/ecore_fb_li.c ++++ ecore-0.9.9.037/src/lib/ecore_fb/ecore_fb_li.c +@@ -1,6 +1,6 @@ + #include "Ecore_Fb.h" + #include "ecore_fb_private.h" +- ++/* + struct input_absinfo { + __s32 value; + __s32 minimum; +@@ -8,7 +8,7 @@ struct input_absinfo { + __s32 fuzz; + __s32 flat; + }; +- ++*/ + + #define EV_SYN 0x00 + #define EV_PWR 0x16 diff --git a/packages/efl/ecore/remove-tslib-configure.patch b/packages/nonworking/efl/ecore/remove-tslib-configure.patch index 40ed1c2c33..40ed1c2c33 100644 --- a/packages/efl/ecore/remove-tslib-configure.patch +++ b/packages/nonworking/efl/ecore/remove-tslib-configure.patch diff --git a/packages/prism3-support/.mtn2git_empty b/packages/nonworking/efl/edb-native/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/prism3-support/.mtn2git_empty +++ b/packages/nonworking/efl/edb-native/.mtn2git_empty diff --git a/packages/efl/edb-native/no-gtk-forkbomb.patch b/packages/nonworking/efl/edb-native/no-gtk-forkbomb.patch index 8fe226846e..8fe226846e 100644 --- a/packages/efl/edb-native/no-gtk-forkbomb.patch +++ b/packages/nonworking/efl/edb-native/no-gtk-forkbomb.patch diff --git a/packages/efl/edb-native_1.0.5.007.bb b/packages/nonworking/efl/edb-native_1.0.5.007.bb index f3f94086ce..f3f94086ce 100644 --- a/packages/efl/edb-native_1.0.5.007.bb +++ b/packages/nonworking/efl/edb-native_1.0.5.007.bb diff --git a/packages/efl/edb-utils_1.0.5.007.bb b/packages/nonworking/efl/edb-utils_1.0.5.007.bb index 8d47e068a7..8d47e068a7 100644 --- a/packages/efl/edb-utils_1.0.5.007.bb +++ b/packages/nonworking/efl/edb-utils_1.0.5.007.bb diff --git a/packages/efl/edb_1.0.5.007.bb b/packages/nonworking/efl/edb_1.0.5.007.bb index 9632fc4acc..9632fc4acc 100644 --- a/packages/efl/edb_1.0.5.007.bb +++ b/packages/nonworking/efl/edb_1.0.5.007.bb diff --git a/packages/efl/edje-native_0.5.0.038.bb b/packages/nonworking/efl/edje-native_0.5.0.038.bb index 4e878ab204..4e878ab204 100644 --- a/packages/efl/edje-native_0.5.0.038.bb +++ b/packages/nonworking/efl/edje-native_0.5.0.038.bb diff --git a/packages/efl/edje-utils_0.5.0.038.bb b/packages/nonworking/efl/edje-utils_0.5.0.038.bb index f8eb917e4d..f8eb917e4d 100644 --- a/packages/efl/edje-utils_0.5.0.038.bb +++ b/packages/nonworking/efl/edje-utils_0.5.0.038.bb diff --git a/packages/efl/edje_0.5.0.038.bb b/packages/nonworking/efl/edje_0.5.0.038.bb index d51dd119e4..d51dd119e4 100644 --- a/packages/efl/edje_0.5.0.038.bb +++ b/packages/nonworking/efl/edje_0.5.0.038.bb diff --git a/packages/nonworking/efl/eet-native_0.9.10.038.bb b/packages/nonworking/efl/eet-native_0.9.10.038.bb new file mode 100644 index 0000000000..9e2426ca9f --- /dev/null +++ b/packages/nonworking/efl/eet-native_0.9.10.038.bb @@ -0,0 +1,4 @@ +require eet_${PV}.bb +inherit native +DEPENDS = "zlib-native jpeg-native" + diff --git a/packages/efl/eet_0.9.10.038.bb b/packages/nonworking/efl/eet_0.9.10.038.bb index 6e6032e098..6e6032e098 100644 --- a/packages/efl/eet_0.9.10.038.bb +++ b/packages/nonworking/efl/eet_0.9.10.038.bb diff --git a/packages/nonworking/efl/efl.bbclass b/packages/nonworking/efl/efl.bbclass new file mode 100644 index 0000000000..808bf2eaae --- /dev/null +++ b/packages/nonworking/efl/efl.bbclass @@ -0,0 +1,52 @@ +inherit e + +SECTION = "e/libs" + +SRCNAME = "${@bb.data.getVar('PN', d, 1).replace('-native', '')}" +SRC_URI = "${E_URI}/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +INHIBIT_AUTO_STAGE_INCLUDES = "1" +INHIBIT_NATIVE_STAGE_INSTALL = "1" + +libdirectory = "src/lib" +libraries = "lib${SRCNAME}" +headers = "${@bb.data.getVar('SRCNAME',d,1).capitalize()}.h" + +def efl_is_native(d): + import bb + return ["","-native"][bb.data.inherits_class('native', d)] + +do_stage_append () { + for i in ${libraries} + do + oe_libinstall -C ${libdirectory} $i ${STAGING_LIBDIR} + done + for i in ${headers} + do + install -m 0644 ${libdirectory}/$i ${STAGING_INCDIR} + done + + # Install binaries automatically for native builds + if [ "${@efl_is_native(d)}" = "-native" ] + then + + # Most EFL binaries start with the package name + for i in src/bin/${SRCNAME}* + do + if [ -x $i -a -f $i ] + then + + # Don't install anything with an extension (.so, etc) + if echo $i | grep -v \\. + then + ${HOST_SYS}-libtool --mode=install install -m 0755 $i ${STAGING_BINDIR} + fi + fi + done + fi +} + +PACKAGES = "${PN}-dbg ${PN} ${PN}-themes ${PN}-dev ${PN}-examples" +FILES_${PN}-dev += "${bindir}/${PN}-config ${libdir}/pkgconfig ${libdir}/lib*.?a ${libdir}/lib*.a" +FILES_${PN}-examples = "${bindir} ${datadir}" diff --git a/packages/efl/efreet-native_0.0.3.002.bb b/packages/nonworking/efl/efreet-native_0.0.3.002.bb index 470d9e2dab..470d9e2dab 100644 --- a/packages/efl/efreet-native_0.0.3.002.bb +++ b/packages/nonworking/efl/efreet-native_0.0.3.002.bb diff --git a/packages/efl/efreet_0.0.3.002.bb b/packages/nonworking/efl/efreet_0.0.3.002.bb index 2ef049eed7..2ef049eed7 100644 --- a/packages/efl/efreet_0.0.3.002.bb +++ b/packages/nonworking/efl/efreet_0.0.3.002.bb diff --git a/packages/efl/embryo-native_0.9.1.038.bb b/packages/nonworking/efl/embryo-native_0.9.1.038.bb index 76fe80fe3d..76fe80fe3d 100644 --- a/packages/efl/embryo-native_0.9.1.038.bb +++ b/packages/nonworking/efl/embryo-native_0.9.1.038.bb diff --git a/packages/efl/embryo-utils_0.9.1.038.bb b/packages/nonworking/efl/embryo-utils_0.9.1.038.bb index d507c53cce..d507c53cce 100644 --- a/packages/efl/embryo-utils_0.9.1.038.bb +++ b/packages/nonworking/efl/embryo-utils_0.9.1.038.bb diff --git a/packages/efl/embryo_0.9.1.038.bb b/packages/nonworking/efl/embryo_0.9.1.038.bb index 0009c0a149..0009c0a149 100644 --- a/packages/efl/embryo_0.9.1.038.bb +++ b/packages/nonworking/efl/embryo_0.9.1.038.bb diff --git a/packages/efl/emotion_20061116.bb b/packages/nonworking/efl/emotion_20061116.bb index 59a3fa7269..59a3fa7269 100644 --- a/packages/efl/emotion_20061116.bb +++ b/packages/nonworking/efl/emotion_20061116.bb diff --git a/packages/efl/engrave_20060128.bb b/packages/nonworking/efl/engrave_20060128.bb index 63eb24eb1f..63eb24eb1f 100644 --- a/packages/efl/engrave_20060128.bb +++ b/packages/nonworking/efl/engrave_20060128.bb diff --git a/packages/efl/epdf_20060418.bb b/packages/nonworking/efl/epdf_20060418.bb index 9f7bd0a255..9f7bd0a255 100644 --- a/packages/efl/epdf_20060418.bb +++ b/packages/nonworking/efl/epdf_20060418.bb diff --git a/packages/efl/epeg_0.9.0.008.bb b/packages/nonworking/efl/epeg_0.9.0.008.bb index c35ec63606..c35ec63606 100644 --- a/packages/efl/epeg_0.9.0.008.bb +++ b/packages/nonworking/efl/epeg_0.9.0.008.bb diff --git a/packages/prism3-support/files/.mtn2git_empty b/packages/nonworking/efl/epsilon/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/prism3-support/files/.mtn2git_empty +++ b/packages/nonworking/efl/epsilon/.mtn2git_empty diff --git a/packages/nonworking/efl/epsilon/compile-fix.patch b/packages/nonworking/efl/epsilon/compile-fix.patch new file mode 100644 index 0000000000..1c42cc59c4 --- /dev/null +++ b/packages/nonworking/efl/epsilon/compile-fix.patch @@ -0,0 +1,15 @@ + +# +# Patch managed by http://www.holgerschurig.de/patcher.html +# + +--- epsilon-0.3.0.004/src/lib/exiftags/exif.c~compile-fix ++++ epsilon-0.3.0.004/src/lib/exiftags/exif.c +@@ -48,7 +48,6 @@ + #include <stdlib.h> + #include <string.h> + #include <errno.h> +-#include <math.h> + #include <float.h> + #include <ctype.h> + diff --git a/packages/nonworking/efl/epsilon/server-is-not-client.patch b/packages/nonworking/efl/epsilon/server-is-not-client.patch new file mode 100644 index 0000000000..e96e528b9e --- /dev/null +++ b/packages/nonworking/efl/epsilon/server-is-not-client.patch @@ -0,0 +1,11 @@ +--- /tmp/epsilon_private.h 2006-12-01 12:06:30.000000000 +0100 ++++ epsilon-0.3.0.007/src/include/epsilon_private.h 2006-12-01 12:07:10.928254000 +0100 +@@ -41,7 +41,7 @@ + Epsilon_Message *epsilon_message_new(int clientid, char *path, char *dst, int status); + + int epsilon_ipc_client_send(Ecore_Con_Client *cl, Epsilon_Message *msg); +-int epsilon_ipc_server_send(Ecore_Con_Client *cl, Epsilon_Message *msg); ++int epsilon_ipc_server_send(Ecore_Con_Server *srv, Epsilon_Message *msg); + + Epsilon_Message *epsilon_ipc_consume(Epsilon_Ipc_End *end); + diff --git a/packages/nonworking/efl/epsilon_0.3.0.008.bb b/packages/nonworking/efl/epsilon_0.3.0.008.bb new file mode 100644 index 0000000000..d3c1cba1e4 --- /dev/null +++ b/packages/nonworking/efl/epsilon_0.3.0.008.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "Epsilon is a flexable and powerful image thumbnailing library \ +that is complient with the freedesktop.org Thumbnail Managing Standard." +LICENSE = "GPL" +DEPENDS = "imlib2 epeg libpng evas ecore edje perl-native" +PR = "r0" + +inherit efl1 + +#SRC_URI += "file://compile-fix.patch;patch=1 \ +# ${E_CVS};module=e17/libs/epsilon/m4;date=20060101" +# file://server-is-not-client.patch;patch=1 \ + +#do_configure_prepend() { +# install -d "${S}/m4" +# install "${WORKDIR}/m4/"*.m4 "${S}/m4" +# aclocal -I m4 +#} diff --git a/packages/efl/esmart-fb_0.9.0.008.bb b/packages/nonworking/efl/esmart-fb_0.9.0.008.bb index a2fab3ca09..a2fab3ca09 100644 --- a/packages/efl/esmart-fb_0.9.0.008.bb +++ b/packages/nonworking/efl/esmart-fb_0.9.0.008.bb diff --git a/packages/efl/esmart-x11_0.9.0.008.bb b/packages/nonworking/efl/esmart-x11_0.9.0.008.bb index 7b80b581a1..7b80b581a1 100644 --- a/packages/efl/esmart-x11_0.9.0.008.bb +++ b/packages/nonworking/efl/esmart-x11_0.9.0.008.bb diff --git a/packages/efl/esmart.inc b/packages/nonworking/efl/esmart.inc index 9b8114de53..9b8114de53 100644 --- a/packages/efl/esmart.inc +++ b/packages/nonworking/efl/esmart.inc diff --git a/packages/s3c2410-utils/files/.mtn2git_empty b/packages/nonworking/efl/esmart/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/s3c2410-utils/files/.mtn2git_empty +++ b/packages/nonworking/efl/esmart/.mtn2git_empty diff --git a/packages/efl/esmart/compile-fix.patch b/packages/nonworking/efl/esmart/compile-fix.patch index 08ca835aa7..08ca835aa7 100644 --- a/packages/efl/esmart/compile-fix.patch +++ b/packages/nonworking/efl/esmart/compile-fix.patch diff --git a/packages/efl/esmart/disable-x-only-features.patch b/packages/nonworking/efl/esmart/disable-x-only-features.patch index 68dd363f74..68dd363f74 100644 --- a/packages/efl/esmart/disable-x-only-features.patch +++ b/packages/nonworking/efl/esmart/disable-x-only-features.patch diff --git a/packages/efl/esmart/ecore-fix.patch b/packages/nonworking/efl/esmart/ecore-fix.patch index 94deff0b95..94deff0b95 100644 --- a/packages/efl/esmart/ecore-fix.patch +++ b/packages/nonworking/efl/esmart/ecore-fix.patch diff --git a/packages/efl/esmart/include-stdio.patch b/packages/nonworking/efl/esmart/include-stdio.patch index 20a490f421..20a490f421 100644 --- a/packages/efl/esmart/include-stdio.patch +++ b/packages/nonworking/efl/esmart/include-stdio.patch diff --git a/packages/efl/etk_0.1.0.003.bb b/packages/nonworking/efl/etk_0.1.0.003.bb index e283adef23..e283adef23 100644 --- a/packages/efl/etk_0.1.0.003.bb +++ b/packages/nonworking/efl/etk_0.1.0.003.bb diff --git a/packages/efl/evas-fb_0.9.9.038.bb b/packages/nonworking/efl/evas-fb_0.9.9.038.bb index 4acc857982..4acc857982 100644 --- a/packages/efl/evas-fb_0.9.9.038.bb +++ b/packages/nonworking/efl/evas-fb_0.9.9.038.bb diff --git a/packages/efl/evas-native_0.9.9.038.bb b/packages/nonworking/efl/evas-native_0.9.9.038.bb index 68dacbc809..68dacbc809 100644 --- a/packages/efl/evas-native_0.9.9.038.bb +++ b/packages/nonworking/efl/evas-native_0.9.9.038.bb diff --git a/packages/efl/evas-x11_0.9.9.038.bb b/packages/nonworking/efl/evas-x11_0.9.9.038.bb index 4c5ef29515..4c5ef29515 100644 --- a/packages/efl/evas-x11_0.9.9.038.bb +++ b/packages/nonworking/efl/evas-x11_0.9.9.038.bb diff --git a/packages/efl/evas.inc b/packages/nonworking/efl/evas.inc index a175099c31..a175099c31 100644 --- a/packages/efl/evas.inc +++ b/packages/nonworking/efl/evas.inc diff --git a/packages/nonworking/efl/evas/.mtn2git_empty b/packages/nonworking/efl/evas/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nonworking/efl/evas/.mtn2git_empty diff --git a/packages/nonworking/efl/evas/fix-configure.patch b/packages/nonworking/efl/evas/fix-configure.patch new file mode 100644 index 0000000000..abf9b94bdf --- /dev/null +++ b/packages/nonworking/efl/evas/fix-configure.patch @@ -0,0 +1,36 @@ +diff -Nur evas-0.9.9.037~/configure.in evas-0.9.9.037/configure.in +--- evas-0.9.9.037~/configure.in 2007-01-14 20:09:57.000000000 -0800 ++++ evas-0.9.9.037/configure.in 2007-01-14 20:11:09.000000000 -0800 +@@ -161,9 +161,7 @@ + AC_CHECK_HEADER(X11/X.h, + [ + AC_DEFINE(BUILD_ENGINE_SOFTWARE_X11, 1, [Software X11 Rendering Backend]) +- x_dir=${x_dir:-/usr/X11R6} +- x_cflags=${x_cflags:--I${x_includes:-$x_dir/include}} +- x_libs="${x_libs:--L${x_libraries:-$x_dir/lib}} -lX11 -lXext" ++ x_libs="-lX11 -lXext" + ], + [ + AC_MSG_RESULT(disabling software X11 engine) +@@ -407,10 +405,10 @@ + AC_DEFINE(BUILD_ENGINE_GL_X11, 1, [OpenGL X11 Rendering Backend]) + AM_CONDITIONAL(BUILD_ENGINE_GL_COMMON, true) + AC_DEFINE(BUILD_ENGINE_GL_COMMON, 1, [Generic OpenGL Rendering Support]) +- x_dir=${x_dir:-/usr/X11R6}; ++ x_dir=${x_dir:-}; + x_cflags=${x_cflags:--I$x_dir/include} + x_libs="${x_libs:--L$x_dir/lib -lX11 -lXext}" +- gl_cflags="-I/usr/include" ++ gl_cflags="" + gl_libs="-lGL -lGLU -lpthread" + gl_dir="" + ], [ +@@ -471,7 +469,7 @@ + AC_DEFINE(BUILD_ENGINE_CAIRO_X11, 1, [Cairo X11 Rendering Backend]) + AM_CONDITIONAL(BUILD_ENGINE_CAIRO_COMMON, true) + AC_DEFINE(BUILD_ENGINE_CAIRO_COMMON, 1, [Generic Cairo Rendering Support]) +- x_dir="/usr/X11R6"; ++ x_dir=""; + x_cflags="-I"$x_dir"/include" + x_libs="-L"$x_dir"/lib -lX11 -lXext" + ], [ diff --git a/packages/nonworking/efl/evas/pagesize.patch b/packages/nonworking/efl/evas/pagesize.patch new file mode 100644 index 0000000000..5efd16a96e --- /dev/null +++ b/packages/nonworking/efl/evas/pagesize.patch @@ -0,0 +1,13 @@ +diff --git a/src/modules/engines/fb/evas_fb_main.c b/src/modules/engines/fb/evas_fb_main.c +index e26c171..75e0743 100644 +--- a/src/modules/engines/fb/evas_fb_main.c ++++ b/src/modules/engines/fb/evas_fb_main.c +@@ -530,7 +530,7 @@ fb_postinit(FB_Mode *mode) + fb_cleanup(); + exit(1); + } +- mode->mem_offset = (unsigned)(fb_fix.smem_start) & (~PAGE_MASK); ++ mode->mem_offset = (unsigned)(fb_fix.smem_start) & (getpagesize()-1); + mode->mem = (unsigned char *)mmap(NULL, fb_fix.smem_len + mode->mem_offset, + PROT_WRITE | PROT_READ, MAP_SHARED, fb, 0); + if ((int)mode->mem == -1) diff --git a/packages/nonworking/efl/ewl/.mtn2git_empty b/packages/nonworking/efl/ewl/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nonworking/efl/ewl/.mtn2git_empty diff --git a/packages/efl/ewl/ewl-configure.patch b/packages/nonworking/efl/ewl/ewl-configure.patch index a754e0f819..a754e0f819 100644 --- a/packages/efl/ewl/ewl-configure.patch +++ b/packages/nonworking/efl/ewl/ewl-configure.patch diff --git a/packages/efl/ewl/minmax.patch b/packages/nonworking/efl/ewl/minmax.patch index cd8723e9a3..cd8723e9a3 100644 --- a/packages/efl/ewl/minmax.patch +++ b/packages/nonworking/efl/ewl/minmax.patch diff --git a/packages/efl/ewl/no-examples.patch b/packages/nonworking/efl/ewl/no-examples.patch index 402c50894c..402c50894c 100644 --- a/packages/efl/ewl/no-examples.patch +++ b/packages/nonworking/efl/ewl/no-examples.patch diff --git a/packages/efl/ewl_0.5.1.008.bb b/packages/nonworking/efl/ewl_0.5.1.008.bb index 3a9313cb59..3a9313cb59 100644 --- a/packages/efl/ewl_0.5.1.008.bb +++ b/packages/nonworking/efl/ewl_0.5.1.008.bb diff --git a/packages/nonworking/efl/files/.mtn2git_empty b/packages/nonworking/efl/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/nonworking/efl/files/.mtn2git_empty diff --git a/packages/efl/files/pkg.m4 b/packages/nonworking/efl/files/pkg.m4 index c80e0acfc4..c80e0acfc4 100644 --- a/packages/efl/files/pkg.m4 +++ b/packages/nonworking/efl/files/pkg.m4 diff --git a/packages/efl/imlib2-fb_1.3.0.001.bb b/packages/nonworking/efl/imlib2-fb_1.3.0.001.bb index f2ee48f5d9..f2ee48f5d9 100644 --- a/packages/efl/imlib2-fb_1.3.0.001.bb +++ b/packages/nonworking/efl/imlib2-fb_1.3.0.001.bb diff --git a/packages/efl/imlib2-native_1.3.0.001.bb b/packages/nonworking/efl/imlib2-native_1.3.0.001.bb index 65c5b672b2..65c5b672b2 100644 --- a/packages/efl/imlib2-native_1.3.0.001.bb +++ b/packages/nonworking/efl/imlib2-native_1.3.0.001.bb diff --git a/packages/efl/imlib2-x11_1.3.0.001.bb b/packages/nonworking/efl/imlib2-x11_1.3.0.001.bb index 67ed947e08..67ed947e08 100644 --- a/packages/efl/imlib2-x11_1.3.0.001.bb +++ b/packages/nonworking/efl/imlib2-x11_1.3.0.001.bb diff --git a/packages/efl/imlib2.inc b/packages/nonworking/efl/imlib2.inc index 6a040c5386..6a040c5386 100644 --- a/packages/efl/imlib2.inc +++ b/packages/nonworking/efl/imlib2.inc diff --git a/packages/openocd/files/.mtn2git_empty b/packages/openocd/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/openocd/files/.mtn2git_empty diff --git a/packages/openocd/files/openocd-link-static.patch b/packages/openocd/files/openocd-link-static.patch new file mode 100644 index 0000000000..8a686efe5d --- /dev/null +++ b/packages/openocd/files/openocd-link-static.patch @@ -0,0 +1,20 @@ +--- openocd/src/Makefile.am.orig 2007-03-01 11:51:41.000000000 -0300 ++++ openocd/src/Makefile.am 2007-03-01 11:58:08.000000000 -0300 +@@ -7,7 +7,7 @@ + -I$(top_srcdir)/src/flash -I$(top_srcdir)/src/pld $(all_includes) + + # the library search path. +-openocd_LDFLAGS = $(all_libraries) ++openocd_LDFLAGS = -static $(all_libraries) + SUBDIRS = helper jtag xsvf target server flash pld + + if IS_MINGW +@@ -17,7 +17,7 @@ + endif + + if FT2232_LIBFTDI +-FTDI2232LIB = -lftdi ++FTDI2232LIB = -lftdi -lusb + else + FTDI2232LIB = + endif diff --git a/packages/openocd/openocd-native_svn.bb b/packages/openocd/openocd-native_svn.bb index 5e77400671..4ab1d37fe2 100644 --- a/packages/openocd/openocd-native_svn.bb +++ b/packages/openocd/openocd-native_svn.bb @@ -3,8 +3,15 @@ require openocd_${PV}.bb inherit native DEPENDS = "libftdi-native" +EXTRA_OECONF = "--enable-ft2232_libftdi --enable-parport-ppdev" do_stage() { - install -m 0755 src/openocd ${STAGING_BINDIR} + install -m 0755 src/openocd ${STAGING_BINDIR_NATIVE} } +do_deploy() { + install -d ${DEPLOY_DIR_IMAGE} + install -m 0755 src/openocd ${DEPLOY_DIR_IMAGE}/openocd +} + +addtask deploy before do_package after do_install diff --git a/packages/openocd/openocd_svn.bb b/packages/openocd/openocd_svn.bb index ccbf8951fb..ebe234aca5 100644 --- a/packages/openocd/openocd_svn.bb +++ b/packages/openocd/openocd_svn.bb @@ -3,12 +3,10 @@ HOMEPAGE = "http://openocd.berlios.de/" LICENSE = "GPL" PV = "0.0+svn${SRCDATE}" -DEPENDS = "libftdi" - -SRC_URI = "svn://svn.berlios.de/;module=openocd" - -S = "${WORKDIR}/openocd/trunk" - inherit autotools -EXTRA_OECONF = "--enable-ft2232_libftdi --enable-parport-ppdev" +SRC_URI = "svn://svn.berlios.de/openocd;module=trunk \ + file://openocd-link-static.patch;patch=1" +S = "${WORKDIR}/trunk" + +EXTRA_OECONF = " --disable-ftdi2232 --disable-ftd2xx" diff --git a/packages/pcmciautils/pcmciautils/.mtn2git_empty b/packages/pcmciautils/pcmciautils/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/pcmciautils/pcmciautils/.mtn2git_empty diff --git a/packages/pcmciautils/pcmciautils/modalias_update.patch b/packages/pcmciautils/pcmciautils/modalias_update.patch new file mode 100644 index 0000000000..5727442b59 --- /dev/null +++ b/packages/pcmciautils/pcmciautils/modalias_update.patch @@ -0,0 +1,56 @@ +From: Miklos Vajna <vmiklos@frugalware.org> +Date: Fri, 3 Nov 2006 16:33:38 +0000 (-0500) +Subject: [PATCH] fix for udev-094 +X-Git-Url: http://git.kernel.org/?p=linux%2Fpcmcia%2Fpcmciautils.git;a=commitdiff_plain;h=3a5217492c1f95711b30f4e27c51563dff6ceb3e + +[PATCH] fix for udev-094 + +from udev's release notes: + +"udev 094 +======== +The built-in MODALIAS key and substitution is removed. +(...) +udev 080 +======== +(...) +MODALIAS and $modalias is not needed and will be removed from one of +the next udev versions, replace it in all rules with ENV{MODALIAS} or +the sysfs "modalias" value." + +here is a patch to fix this issue + +Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> +Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> +--- + +diff --git a/udev/rules-base b/udev/rules-base +index c6d14de..6ed3a27 100644 +--- a/udev/rules-base ++++ b/udev/rules-base +@@ -3,12 +3,12 @@ + # are so broken that we need to read out random bytes of it + # instead of the manufactor, card or product ID. Then the + # matching is done in userspace. +-ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="?*", \ ++ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/sbin/pcmcia-check-broken-cis" + + # However, the "weak" matching by func_id is only allowed _after_ modprobe + # returns, so that "strong" matches have a higher priority. +-ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="?*", \ ++ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ + RUN+="/bin/sh -c 'echo 1 > /sys/$devpath/allow_func_id_match'" + + # PCMCIA sockets: +diff --git a/udev/rules-modprobe b/udev/rules-modprobe +index ea1f44a..a13b2ad 100644 +--- a/udev/rules-modprobe ++++ b/udev/rules-modprobe +@@ -1,3 +1,3 @@ +-# modprobe $modalias loads all possibly appropriate modules +-ACTION=="add", SUBSYSTEM=="pcmcia", MODALIAS=="?*", \ +- RUN+="/sbin/modprobe $modalias" ++# modprobe $env{MODALIAS} loads all possibly appropriate modules ++ACTION=="add", SUBSYSTEM=="pcmcia", ENV{MODALIAS}=="?*", \ ++ RUN+="/sbin/modprobe $env{MODALIAS}" diff --git a/packages/pcmciautils/pcmciautils_013.bb b/packages/pcmciautils/pcmciautils_013.bb index 17abe5dc9b..72a78b0780 100644 --- a/packages/pcmciautils/pcmciautils_013.bb +++ b/packages/pcmciautils/pcmciautils_013.bb @@ -1,6 +1,7 @@ require pcmciautils.inc -PR = "r0" +PR = "r1" SRC_URI += "file://makefile_fix.patch;patch=1 \ - file://version_workaround.patch;patch=1" + file://version_workaround.patch;patch=1 \ + file://modalias_update.patch;patch=1" diff --git a/packages/pcmciautils/pcmciautils_014.bb b/packages/pcmciautils/pcmciautils_014.bb index 17abe5dc9b..72a78b0780 100644 --- a/packages/pcmciautils/pcmciautils_014.bb +++ b/packages/pcmciautils/pcmciautils_014.bb @@ -1,6 +1,7 @@ require pcmciautils.inc -PR = "r0" +PR = "r1" SRC_URI += "file://makefile_fix.patch;patch=1 \ - file://version_workaround.patch;patch=1" + file://version_workaround.patch;patch=1 \ + file://modalias_update.patch;patch=1" diff --git a/packages/pimlico/dates_0.4.2.bb b/packages/pimlico/dates_0.4.3.bb index 51d3acc9ed..86f548916e 100644 --- a/packages/pimlico/dates_0.4.2.bb +++ b/packages/pimlico/dates_0.4.3.bb @@ -1,5 +1,5 @@ require dates.inc -PR = "r1" +PR = "r0" SRC_URI = "http://projects.o-hand.com/sources/dates/dates-${PV}.tar.gz" diff --git a/packages/pimlico/tasks_0.4.bb b/packages/pimlico/tasks_0.4.bb deleted file mode 100644 index 391828430a..0000000000 --- a/packages/pimlico/tasks_0.4.bb +++ /dev/null @@ -1,6 +0,0 @@ -require tasks.inc - -PR = "r2" - -SRC_URI = "http://pimlico-project.org/sources/${PN}/${PN}-${PV}.tar.gz \ - file://tasks-single.diff;patch=1" diff --git a/packages/pimlico/tasks_0.5.bb b/packages/pimlico/tasks_0.9.bb index d3e1b695e9..d3e1b695e9 100644 --- a/packages/pimlico/tasks_0.5.bb +++ b/packages/pimlico/tasks_0.9.bb diff --git a/packages/prism3-support/files/hostap-fw-load b/packages/prism3-support/files/hostap-fw-load deleted file mode 100644 index 1f37aaf744..0000000000 --- a/packages/prism3-support/files/hostap-fw-load +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh - -# dont handle non-wireless interfaces -if [ -z "`grep $IFACE /proc/net/wireless`" ]; then - exit 0 -fi - -if test -e /sbin/cardctl; then - CARDCTL=/sbin/cardctl -elif test -e /sbin/pccardctl; then - CARDCTL=/sbin/pccardctl -else - exit 0 -fi - -# Special case for prism3 cards needing firmware upload -# Add more known manfids, if necessary - -if [ `$CARDCTL info|grep "d601,0010\|d601,0101"` ]; then - iwpriv "$IFACE" reset 1 - hostap_fw_load "$IFACE" -fi - -# lets hope that run-parts obeys the order :D - -exit 0 diff --git a/packages/prism3-support/prism3-support_1.0.0.bb b/packages/prism3-support/prism3-support_1.0.0.bb deleted file mode 100644 index bcf571e093..0000000000 --- a/packages/prism3-support/prism3-support_1.0.0.bb +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "meta-package for prism3 support through ifupdown and hostap_fw_load" -SECTION = "base" -LICENSE = "GPL" -DEPENDS = "prism3-firmware hostap-utils" -RDEPENDS = "prism3-firmware hostap-utils" -PACKAGE_ARCH = "all" -PR = "r5" - -SRC_URI = "file://hostap-fw-load" - -do_install() { - install -d ${D}${sysconfdir}/network/if-pre-up.d/ - install -m 0755 ${WORKDIR}/hostap-fw-load ${D}${sysconfdir}/network/if-pre-up.d/ -} - diff --git a/packages/proj4/proj-4_4.9.bb b/packages/proj4/proj-4_4.9.bb index 1f7ea8c0b9..da78a384bd 100644 --- a/packages/proj4/proj-4_4.9.bb +++ b/packages/proj4/proj-4_4.9.bb @@ -2,12 +2,16 @@ DESCRIPTION = "PROJ.4 - Cartographic Projections Library" HOMEPAGE = "http://www.remotesensing.org/proj/" LICENSE = "MIT" +PR = "r1" + inherit autotools pkgconfig SRC_URI = "ftp://ftp.remotesensing.org/proj/proj-4.${PV}.tar.gz" S = "${WORKDIR}/proj-4.${PV}" +FILES_${PN} += "${datadir}/proj" + do_stage() { autotools_stage_all } diff --git a/packages/psplash/files/angstrom/.mtn2git_empty b/packages/psplash/files/angstrom/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/psplash/files/angstrom/.mtn2git_empty diff --git a/packages/psplash/files/angstrom/angstrom-psplash-qvga-img.h b/packages/psplash/files/angstrom/angstrom-psplash-qvga-img.h new file mode 100644 index 0000000000..a03d16e57a --- /dev/null +++ b/packages/psplash/files/angstrom/angstrom-psplash-qvga-img.h @@ -0,0 +1,1336 @@ +/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ + +#define HAND_IMG_ROWSTRIDE (1016) +#define HAND_IMG_WIDTH (254) +#define HAND_IMG_HEIGHT (264) +#define HAND_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */ +#define HAND_IMG_RLE_PIXEL_DATA ((uint8*) \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\331\333\343\342\377\5\327" \ + "\340\337\377\314\327\325\377\306\323\320\377\321\333\331\377\332\342" \ + "\341\377\377\333\343\342\377\206\333\343\342\377\1\276\311\307\377\202" \ + "g~y\377\357\333\343\342\377\2\253\276\272\377\233\262\255\377\204\223" \ + "\254\247\377\3\225\255\250\377\240\266\262\377\303\321\316\377\377\333" \ + "\343\342\377\204\333\343\342\377\1\270\305\303\377\202Slg\377\357\333" \ + "\343\342\377\11\231\260\254\377\223\254\247\377\243\271\264\377\267\307" \ + "\304\377\277\316\313\377\256\301\275\377\232\261\255\377\223\254\247" \ + "\377\271\311\306\377\377\333\343\342\377\204\333\343\342\377\1\270\305" \ + "\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377" \ + "\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\364\333\343" \ + "\342\377\4\332\342\341\377\316\330\326\377\277\312\310\377\260\275\273" \ + "\377\213\254\271\267\377\1\225\246\243\377\202Slg\377\357\333\343\342" \ + "\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254" \ + "\247\377\271\311\306\377\362\333\343\342\377\3\266\302\300\377v\212\206" \ + "\377Vni\377\221Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\360\333" \ + "\343\342\377\2\320\331\330\377n\204\200\377\224Slg\377\357\333\343\342" \ + "\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254" \ + "\247\377\271\311\306\377\357\333\343\342\377\2\332\342\341\377x\215\211" \ + "\377\225Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377\377" \ + "\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333\343\342" \ + "\377\1\240\260\255\377\204Slg\377\4Uni\377s\210\203\377\177\222\217\377" \ + "\213\235\231\377\213\222\243\240\377\1\202\225\221\377\202Slg\377\357" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\1{\217\213\377" \ + "\203Slg\377\2\230\250\245\377\317\330\327\377\216\333\343\342\377\1\270" \ + "\305\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1byt\377\202Slg\377\1\230\250\245\377\220\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377" \ + "\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377" \ + "\356\333\343\342\377\1\324\335\334\377\203Slg\377\1\324\334\333\377\220" \ + "\333\343\342\377\1\274\307\306\377\202_vr\377\357\333\343\342\377\202" \ + "\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377" \ + "\271\311\306\377\356\333\343\342\377\4\332\342\341\377Xql\377Slg\377" \ + "f|x\377\377\333\343\342\377\204\333\343\342\377\202\231\260\254\377\204" \ + "\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357" \ + "\333\343\342\377\3n\204\200\377Slg\377_vr\377\377\333\343\342\377\204" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\1\243\262\257" \ + "\377\202Slg\377\1\311\324\322\377\220\333\343\342\377\1\325\336\335\377" \ + "\202\305\320\316\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\4\327\337\336\377dzv\377Slg\377\220\242\236\377\220\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\360\333\343\342\377\4\307\321\320\377`ws\377Slg\377\240" \ + "\260\255\377\217\333\343\342\377\1\270\305\303\377\202Slg\377\357\333" \ + "\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377" \ + "\223\254\247\377\271\311\306\377\361\333\343\342\377\6\307\322\320\377" \ + "u\211\205\377Slg\377m\202~\377\246\265\262\377\321\333\331\377\214\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\362\333\343\342\377\2\332\342\341\377\213\235\231\377\203" \ + "Slg\377\3Xpk\377f}x\377s\210\203\377\211t\211\205\377\1l\201}\377\202" \ + "Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3" \ + "\326\337\335\377\223\254\247\377\271\311\306\377\361\333\343\342\377" \ + "\2\265\302\300\377i\177{\377\223Slg\377\357\333\343\342\377\202\231\260" \ + "\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311" \ + "\306\377\360\333\343\342\377\2\255\272\270\377Uni\377\224Slg\377\357" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\2\316\327\326" \ + "\377Wpk\377\225Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1\220\241\236\377\203Slg\377\5Woj\377\205\227\224\377\254" \ + "\271\267\377\270\304\302\377\304\316\315\377\213\311\324\322\377\1\254" \ + "\271\267\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1i\177{\377\202Slg\377\2dzv\377\316\327\326\377\217\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\356\333\343\342\377\2\331\342\341\377Voj\377\202Slg\377" \ + "\1\273\307\305\377\220\333\343\342\377\1\270\305\303\377\202Slg\377\357" \ + "\333\343\342\377\3\241\267\262\377\223\254\247\377\363\366\365\377\203" \ + "\377\377\377\377\3\304\321\317\377\223\254\247\377\301\317\314\377\356" \ + "\333\343\342\377\1\324\335\334\377\202Slg\377\2Xpk\377\331\342\341\377" \ + "\220\333\343\342\377\1\311\324\322\377\202\226\247\244\377\357\333\343" \ + "\342\377\3\264\305\302\377\223\254\247\377\326\337\335\377\203\377\377" \ + "\377\377\3\246\273\267\377\223\254\247\377\324\335\334\377\357\333\343" \ + "\342\377\3_vr\377Slg\377i\177{\377\377\333\343\342\377\202\333\343\342" \ + "\377\5\317\332\331\377\257\301\276\377\217\251\244\377\223\254\247\377" \ + "\270\310\305\377\202\377\377\377\377\6\365\367\367\377\223\254\247\377" \ + "\217\251\244\377\234\263\257\377\275\314\312\377\330\341\340\377\355" \ + "\333\343\342\377\4\177\222\217\377Slg\377Vni\377\327\337\336\377\376" \ + "\333\343\342\377\2\277\316\313\377\207\243\236\377\203o\221\212\377\7" \ + "\221\253\246\377\233\262\256\377\376\376\376\377\377\377\377\377\330" \ + "\341\337\377\223\254\247\377\202\237\231\377\202o\221\212\377\3t\225" \ + "\216\377\234\263\257\377\322\334\333\377\353\333\343\342\377\1\277\313" \ + "\311\377\202Slg\377\1\273\307\305\377\220\333\343\342\377\1\307\322\320" \ + "\377\202\216\237\234\377\351\333\343\342\377\2\310\325\323\377\216\251" \ + "\243\377\204o\221\212\377\10v\226\220\377\221\252\245\377\223\254\247" \ + "\377\324\336\334\377\340\347\346\377\262\304\300\377\223\254\247\377" \ + "\210\244\237\377\204o\221\212\377\3u\225\217\377\250\274\270\377\327" \ + "\340\337\377\352\333\343\342\377\4\226\246\243\377Slg\377h\177z\377\321" \ + "\333\331\377\217\333\343\342\377\1\270\305\303\377\202Slg\377\350\333" \ + "\343\342\377\2\264\305\302\377q\223\214\377\202o\221\212\377\5q\223\214" \ + "\377\233\263\256\377\300\317\314\377\331\342\340\377\273\312\307\377" \ + "\204\223\254\247\377\5\225\255\250\377\330\341\337\377\321\333\332\377" \ + "\261\303\277\377\206\243\235\377\203o\221\212\377\2\205\242\234\377\317" \ + "\332\331\377\352\333\343\342\377\4\230\250\245\377Tmh\377q\206\202\377" \ + "\276\311\307\377\216\333\343\342\377\1\270\305\303\377\202Slg\377\346" \ + "\333\343\342\377\2\332\342\341\377\241\267\263\377\203o\221\212\377\2" \ + "\227\257\253\377\315\331\327\377\203\333\343\342\377\1\321\333\332\377" \ + "\204\262\303\300\377\1\272\312\307\377\204\333\343\342\377\2\270\310" \ + "\306\377\177\235\227\377\202o\221\212\377\2z\231\222\377\304\322\320" \ + "\377\347\333\343\342\377\1\317\330\327\377\202\301\314\312\377\10\247" \ + "\266\263\377^vq\377Slg\377o\204\200\377\232\252\247\377\247\266\263\377" \ + "\264\301\277\377\277\313\311\377\211\301\314\312\377\1\245\264\261\377" \ + "\202Slg\377\346\333\343\342\377\1\236\265\260\377\202o\221\212\377\2" \ + "t\225\216\377\273\313\310\377\220\333\343\342\377\2\327\340\337\377\225" \ + "\256\251\377\202o\221\212\377\2t\225\216\377\310\325\323\377\346\333" \ + "\343\342\377\1\233\253\250\377\226Slg\377\345\333\343\342\377\1\261\303" \ + "\277\377\202o\221\212\377\2|\233\225\377\311\325\323\377\223\333\343" \ + "\342\377\1\247\273\267\377\202o\221\212\377\2|\233\225\377\322\334\333" \ + "\377\345\333\343\342\377\1\233\253\250\377\226Slg\377\344\333\343\342" \ + "\377\5\304\321\317\377q\222\213\377o\221\212\377u\226\217\377\312\326" \ + "\324\377\225\333\343\342\377\1\242\270\264\377\202o\221\212\377\2\211" \ + "\244\237\377\332\342\341\377\344\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\344\333\343\342\377\4\207\243\236\377o\221\212\377p\222\213\377" \ + "\275\314\312\377\226\333\343\342\377\2\332\342\341\377\220\252\245\377" \ + "\202o\221\212\377\1\264\305\302\377\344\333\343\342\377\3\233\253\250" \ + "\377Slg\377\\so\377\221x\215\211\377\1o\204\200\377\202Slg\377\343\333" \ + "\343\342\377\1\267\310\305\377\202o\221\212\377\1\237\265\261\377\230" \ + "\333\343\342\377\5\324\336\334\377v\226\220\377o\221\212\377|\233\225" \ + "\377\330\341\337\377\343\333\343\342\377\3\233\253\250\377Slg\377t\211" \ + "\205\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\342\333\343" \ + "\342\377\5\332\342\341\377~\234\226\377o\221\212\377t\225\216\377\322" \ + "\334\333\377\231\333\343\342\377\1\251\275\271\377\202o\221\212\377\1" \ + "\255\300\275\377\343\333\343\342\377\3\233\253\250\377Slg\377t\211\205" \ + "\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\342\333\343\342" \ + "\377\1\304\321\317\377\202o\221\212\377\1\245\272\266\377\232\333\343" \ + "\342\377\4\327\340\337\377y\231\222\377o\221\212\377\207\243\236\377" \ + "\343\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343" \ + "\342\377\1\270\305\303\377\202Slg\377\342\333\343\342\377\1\243\270\264" \ + "\377\202o\221\212\377\1\314\327\325\377\233\333\343\342\377\1\234\263" \ + "\257\377\202o\221\212\377\1\321\333\332\377\342\333\343\342\377\3\277" \ + "\312\310\377\237\256\253\377\256\273\271\377\221\333\343\342\377\1\323" \ + "\334\333\377\202\275\310\306\377\342\333\343\342\377\3\202\237\231\377" \ + "o\221\212\377\201\236\230\377\234\333\343\342\377\1\276\315\312\377\202" \ + "o\221\212\377\1\261\303\300\377\377\333\343\342\377\333\333\343\342\377" \ + "\1\330\341\340\377\202o\221\212\377\1\234\263\256\377\234\333\343\342" \ + "\377\1\330\341\337\377\202o\221\212\377\1\234\263\257\377\377\333\343" \ + "\342\377\333\333\343\342\377\1\317\332\330\377\202o\221\212\377\1\250" \ + "\274\270\377\235\333\343\342\377\3y\230\222\377o\221\212\377\222\254" \ + "\246\377\377\333\343\342\377\333\333\343\342\377\1\304\322\320\377\202" \ + "o\221\212\377\1\264\306\302\377\235\333\343\342\377\3\205\242\234\377" \ + "o\221\212\377\207\243\236\377\350\333\343\342\377\13\327\340\337\377" \ + "\267\303\301\377\225\246\243\377{\217\213\377p\205\201\377f}x\377k\201" \ + "}\377u\211\205\377\205\227\224\377\245\263\261\377\310\323\321\377\347" \ + "\333\343\342\377\1\275\314\312\377\202o\221\212\377\1\274\314\311\377" \ + "\235\333\343\342\377\3\215\250\242\377o\221\212\377\200\236\230\377\346" \ + "\333\343\342\377\3\324\334\333\377\231\251\246\377_wr\377\212Slg\377" \ + "\2x\215\211\377\270\304\302\377\345\333\343\342\377\1\306\323\321\377" \ + "\202o\221\212\377\1\263\304\301\377\235\333\343\342\377\3\203\240\232" \ + "\377o\221\212\377\211\244\237\377\345\333\343\342\377\2\300\314\312\377" \ + "f|x\377\216Slg\377\2\216\240\235\377\330\340\337\377\343\333\343\342" \ + "\377\1\320\333\331\377\202o\221\212\377\1\247\273\267\377\235\333\343" \ + "\342\377\3w\227\221\377o\221\212\377\223\254\250\377\344\333\343\342" \ + "\377\2\273\307\305\377Woj\377\220Slg\377\2y\216\212\377\330\341\340\377" \ + "\342\333\343\342\377\4\331\342\340\377p\221\213\377o\221\212\377\231" \ + "\261\254\377\234\333\343\342\377\1\326\337\336\377\202o\221\212\377\1" \ + "\236\265\260\377\331\333\343\342\377\3\272\306\304\377\231\251\246\377" \ + "\310\322\321\377\207\333\343\342\377\2\310\322\321\377\\to\377\205Sl" \ + "g\377\7Woj\377dzv\377q\206\202\377}\221\215\377w\214\210\377k\201|\377" \ + "]up\377\206Slg\377\1\211\233\230\377\343\333\343\342\377\3\206\242\234" \ + "\377o\221\212\377|\233\225\377\234\333\343\342\377\1\271\311\306\377" \ + "\202o\221\212\377\1\265\306\303\377\330\333\343\342\377\1\222\243\240" \ + "\377\203Slg\377\1\271\306\304\377\206\333\343\342\377\1|\217\214\377" \ + "\203Slg\377\3dzv\377\231\252\247\377\314\326\324\377\207\333\343\342" \ + "\377\4\330\340\337\377\267\304\302\377\201\224\220\377Vni\377\203Slg" \ + "\377\1\274\307\306\377\342\333\343\342\377\1\247\274\270\377\202o\221" \ + "\212\377\1\307\323\321\377\233\333\343\342\377\4\227\257\253\377o\221" \ + "\212\377q\222\213\377\324\336\334\377\327\333\343\342\377\2\325\335\334" \ + "\377Zrm\377\203Slg\377\1\205\227\224\377\205\333\343\342\377\1\275\310" \ + "\306\377\202Slg\377\3Umh\377\251\270\265\377\331\342\341\377\214\333" \ + "\343\342\377\2\317\331\327\377y\216\212\377\202Slg\377\1t\211\205\377" \ + "\342\333\343\342\377\1\310\325\323\377\202o\221\212\377\1\237\265\261" \ + "\377\232\333\343\342\377\4\325\336\335\377v\226\217\377o\221\212\377" \ + "\213\246\241\377\330\333\343\342\377\2\331\341\340\377czu\377\203Slg" \ + "\377\1\221\243\237\377\205\333\343\342\377\4\220\241\236\377Slg\377T" \ + "lg\377\253\271\267\377\217\333\343\342\377\2\326\336\335\377s\210\204" \ + "\377\202Slg\377\1\317\331\327\377\342\333\343\342\377\4\203\240\232\377" \ + "o\221\212\377r\223\214\377\317\331\330\377\205\333\343\342\377\2\305" \ + "\322\320\377\322\334\332\377\212\333\343\342\377\3\332\342\341\377\305" \ + "\322\320\377\322\334\333\377\205\333\343\342\377\1\243\270\264\377\202" \ + "o\221\212\377\1\262\304\301\377\331\333\343\342\377\5\250\266\264\377" \ + "Yql\377Slg\377f|x\377\310\322\321\377\205\333\343\342\377\3k\201}\377" \ + "Slg\377\212\234\231\377\221\333\343\342\377\4\321\332\331\377Tmh\377" \ + "Slg\377\253\271\267\377\342\333\343\342\377\1\276\315\312\377\202o\221" \ + "\212\377\1\227\257\253\377\204\333\343\342\377\6\327\340\337\377\227" \ + "\257\252\377\223\254\247\377\251\275\271\377\307\324\322\377\332\342" \ + "\341\377\205\333\343\342\377\5\325\337\335\377\272\311\307\377\234\263" \ + "\256\377\223\254\247\377\263\304\301\377\204\333\343\342\377\5\317\332" \ + "\331\377s\224\215\377o\221\212\377\201\236\230\377\331\342\340\377\332" \ + "\333\343\342\377\3\324\334\333\377\274\307\306\377\332\342\341\377\206" \ + "\333\343\342\377\3Xql\377Slg\377\255\272\270\377\222\333\343\342\377" \ + "\3m\202~\377Slg\377\230\251\246\377\343\333\343\342\377\1\216\250\243" \ + "\377\202o\221\212\377\1\264\305\302\377\203\333\343\342\377\3\275\314" \ + "\312\377\223\254\247\377\225\255\250\377\202\223\254\247\377\7\236\264" \ + "\260\377\273\313\310\377\327\337\336\377\333\343\342\377\315\330\326" \ + "\377\256\301\275\377\225\255\251\377\202\223\254\247\377\3\224\254\250" \ + "\377\227\257\252\377\330\341\337\377\202\333\343\342\377\2\330\341\337" \ + "\377\207\243\236\377\202o\221\212\377\1\273\312\310\377\343\333\343\342" \ + "\377\1\324\335\334\377\202Slg\377\1\314\326\324\377\222\333\343\342\377" \ + "\3\214\236\233\377Slg\377\214\235\232\377\343\333\343\342\377\5\312\326" \ + "\324\377t\225\216\377o\221\212\377q\223\214\377\303\320\316\377\202\333" \ + "\343\342\377\5\237\265\261\377\223\254\247\377\347\355\354\377\335\344" \ + "\343\377\257\301\276\377\202\223\254\247\377\2\250\274\270\377\321\334" \ + "\332\377\202\223\254\247\377\6\231\261\254\377\303\321\316\377\360\363" \ + "\363\377\271\311\306\377\223\254\247\377\277\315\313\377\202\333\343" \ + "\342\377\1\227\257\252\377\202o\221\212\377\1\222\254\246\377\344\333" \ + "\343\342\377\1\325\335\334\377\202Slg\377\1\313\325\323\377\222\333\343" \ + "\342\377\3\213\235\231\377Slg\377\214\236\233\377\344\333\343\342\377" \ + "\1\273\312\310\377\202o\221\212\377\5v\226\220\377\277\316\313\377\311" \ + "\325\323\377\223\254\247\377\251\275\271\377\203\377\377\377\377\7\355" \ + "\361\360\377\227\257\253\377\226\256\251\377\273\312\307\377\223\254" \ + "\247\377\271\311\306\377\372\373\373\377\202\377\377\377\377\5\346\354" \ + "\353\377\223\254\247\377\240\266\262\377\330\341\340\377\232\261\255" \ + "\377\202o\221\212\377\2\203\240\232\377\326\337\336\377\334\333\343\342" \ + "\377\3\322\333\332\377\267\303\301\377\331\341\340\377\206\333\343\342" \ + "\377\3Yql\377Slg\377\253\271\267\377\222\333\343\342\377\3k\201}\377" \ + "Slg\377\231\251\246\377\345\333\343\342\377\1\252\276\272\377\202o\221" \ + "\212\377\4p\222\213\377\234\263\256\377\223\254\247\377\327\340\336\377" \ + "\203\377\377\377\377\2\344\352\351\377\232\261\254\377\202\223\254\247" \ + "\377\3\224\255\250\377\262\303\300\377\371\372\372\377\203\377\377\377" \ + "\377\3\250\274\270\377\223\254\247\377\214\246\241\377\202o\221\212\377" \ + "\2y\231\222\377\317\331\330\377\334\333\343\342\377\5\247\266\263\377" \ + "Xql\377Slg\377`ws\377\305\320\316\377\205\333\343\342\377\3l\201}\377" \ + "Slg\377\210\233\227\377\221\333\343\342\377\4\317\331\327\377Tlg\377" \ + "Slg\377\254\271\267\377\346\333\343\342\377\6\257\301\276\377p\222\213" \ + "\377r\223\214\377\222\253\246\377\233\262\256\377\374\374\374\377\202" \ + "\377\377\377\377\11\316\331\327\377\223\254\247\377\252\275\272\377\320" \ + "\333\331\377\332\343\341\377\305\323\320\377\227\257\253\377\237\265" \ + "\261\377\362\365\364\377\202\377\377\377\377\6\325\337\335\377\223\254" \ + "\247\377\206\242\234\377o\221\212\377\202\237\231\377\315\330\326\377" \ + "\334\333\343\342\377\2\331\341\340\377czu\377\203Slg\377\1\217\241\235" \ + "\377\205\333\343\342\377\1\221\243\237\377\202Slg\377\1\251\267\265\377" \ + "\217\333\343\342\377\5\325\335\334\377p\206\202\377Slg\377Tlg\377\320" \ + "\331\330\377\347\333\343\342\377\4\277\316\313\377\204\241\233\377\223" \ + "\254\247\377\306\323\320\377\202\377\377\377\377\4\352\357\356\377\225" \ + "\255\250\377\300\317\314\377\376\376\376\377\203\377\377\377\377\12\361" \ + "\364\363\377\236\264\260\377\257\302\276\377\376\376\376\377\377\377" \ + "\377\377\373\374\373\377\232\261\254\377\222\253\246\377\217\251\244" \ + "\377\325\337\335\377\335\333\343\342\377\2\325\336\335\377[sn\377\203" \ + "Slg\377\1\206\231\225\377\205\333\343\342\377\1\276\312\310\377\202S" \ + "lg\377\3Umh\377\251\267\265\377\331\342\341\377\214\333\343\342\377\2" \ + "\315\326\325\377v\213\207\377\202Slg\377\1v\213\207\377\350\333\343\342" \ + "\377\4\331\341\340\377\230\260\253\377\224\254\247\377\362\365\364\377" \ + "\202\377\377\377\377\3\272\312\307\377\243\270\264\377\374\375\375\377" \ + "\205\377\377\377\377\3\335\345\343\377\223\254\247\377\352\357\356\377" \ + "\202\377\377\377\377\3\304\321\317\377\223\254\247\377\267\307\304\377" \ + "\337\333\343\342\377\1\223\244\240\377\202Slg\377\2Umh\377\275\310\306" \ + "\377\206\333\343\342\377\1~\222\216\377\203Slg\377\4czu\377\227\247\244" \ + "\377\310\322\321\377\331\341\340\377\206\333\343\342\377\4\325\335\334" \ + "\377\263\300\276\377}\220\215\377Tmh\377\203Slg\377\1\277\312\310\377" \ + "\350\333\343\342\377\3\302\320\315\377\223\254\247\377\264\305\302\377" \ + "\203\377\377\377\377\2\243\271\264\377\277\316\313\377\206\377\377\377" \ + "\377\3\373\374\373\377\224\255\250\377\322\335\333\377\202\377\377\377" \ + "\377\4\360\363\363\377\223\254\247\377\232\262\255\377\332\342\341\377" \ + "\337\333\343\342\377\3\274\310\306\377\236\255\253\377\315\327\325\377" \ + "\207\333\343\342\377\2\311\324\322\377^uq\377\205Slg\377\7Tmh\377_wr" \ + "\377m\202~\377y\215\211\377s\210\204\377f}x\377Yql\377\206Slg\377\1\217" \ + "\240\235\377\351\333\343\342\377\3\244\271\265\377\223\254\247\377\342" \ + "\350\347\377\203\377\377\377\377\2\240\266\262\377\302\320\315\377\206" \ + "\377\377\377\377\3\374\375\375\377\225\255\251\377\317\332\330\377\203" \ + "\377\377\377\377\3\262\304\300\377\223\254\247\377\303\321\317\377\352" \ + "\333\343\342\377\2\275\311\307\377Xql\377\220Slg\377\2}\221\215\377\331" \ + "\342\341\377\350\333\343\342\377\4\316\331\327\377\223\254\247\377\243" \ + "\270\264\377\376\376\376\377\203\377\377\377\377\2\267\307\304\377\250" \ + "\274\270\377\206\377\377\377\377\3\345\353\351\377\223\254\247\377\346" \ + "\354\353\377\203\377\377\377\377\3\340\347\345\377\223\254\247\377\245" \ + "\272\266\377\353\333\343\342\377\2\303\316\314\377h\177z\377\215Slg\377" \ + "\3Tlg\377\225\245\242\377\331\341\340\377\351\333\343\342\377\3\257\302" \ + "\276\377\223\254\247\377\320\333\331\377\204\377\377\377\377\3\340\347" \ + "\346\377\223\254\247\377\317\332\330\377\204\377\377\377\377\4\371\372" \ + "\372\377\245\272\266\377\246\272\266\377\374\375\375\377\203\377\377" \ + "\377\377\4\376\376\376\377\242\267\263\377\223\254\247\377\317\331\330" \ + "\377\353\333\343\342\377\3\325\335\334\377\235\255\252\377czu\377\211" \ + "Slg\377\3Tlg\377\177\222\217\377\277\312\310\377\352\333\343\342\377" \ + "\4\326\337\336\377\225\256\251\377\227\257\253\377\371\372\372\377\205" \ + "\377\377\377\377\11\277\316\313\377\223\254\247\377\272\312\307\377\341" \ + "\350\346\377\353\360\357\377\326\340\336\377\240\266\261\377\227\257" \ + "\252\377\352\357\356\377\205\377\377\377\377\3\316\331\327\377\223\254" \ + "\247\377\260\302\277\377\355\333\343\342\377\13\330\341\340\377\273\307" \ + "\305\377\231\252\247\377\177\222\217\377t\211\205\377k\201|\377o\205" \ + "\201\377y\215\211\377\211\233\230\377\251\267\265\377\314\326\324\377" \ + "\354\333\343\342\377\3\273\312\310\377\223\254\247\377\277\316\313\377" \ + "\207\377\377\377\377\2\315\330\327\377\224\255\250\377\203\223\254\247" \ + "\377\2\235\263\257\377\360\363\362\377\206\377\377\377\377\4\370\371" \ + "\371\377\227\257\252\377\226\256\252\377\327\340\336\377\377\333\343" \ + "\342\377\343\333\343\342\377\4\332\342\341\377\235\263\257\377\223\254" \ + "\247\377\354\361\360\377\207\377\377\377\377\7\310\325\322\377\223\254" \ + "\247\377\262\303\300\377\307\323\321\377\231\260\253\377\225\255\251" \ + "\377\365\367\367\377\207\377\377\377\377\3\275\314\311\377\223\254\247" \ + "\377\274\313\311\377\346\333\343\342\377\1\316\327\326\377\205\301\314" \ + "\312\377\1\327\340\337\377\365\333\343\342\377\3\306\323\321\377\223" \ + "\254\247\377\256\300\275\377\207\377\377\377\377\10\374\375\375\377\235" \ + "\264\257\377\224\255\250\377\324\336\334\377\333\343\342\377\266\307" \ + "\304\377\223\254\247\377\312\326\324\377\207\377\377\377\377\3\353\357" \ + "\356\377\223\254\247\377\236\264\260\377\346\333\343\342\377\1\204\227" \ + "\223\377\205Slg\377\1\311\324\322\377\365\333\343\342\377\3\250\274\270" \ + "\377\223\254\247\377\335\345\344\377\207\377\377\377\377\3\332\342\340" \ + "\377\223\254\247\377\254\277\274\377\202\333\343\342\377\4\323\335\334" \ + "\377\224\255\250\377\236\265\260\377\375\376\375\377\207\377\377\377" \ + "\377\3\256\301\275\377\223\254\247\377\310\324\322\377\345\333\343\342" \ + "\377\1i\177{\377\205Slg\377\1\311\324\322\377\364\333\343\342\377\4\321" \ + "\334\332\377\223\254\247\377\240\265\261\377\376\376\376\377\207\377" \ + "\377\377\377\3\254\277\274\377\223\254\247\377\312\326\324\377\203\333" \ + "\343\342\377\3\253\276\272\377\223\254\247\377\334\344\342\377\207\377" \ + "\377\377\377\3\333\343\342\377\223\254\247\377\251\275\271\377\345\333" \ + "\343\342\377\1Vni\377\202Slg\377\4Yrm\377\234\253\251\377\302\315\313" \ + "\377\331\342\341\377\364\333\343\342\377\3\264\305\302\377\223\254\247" \ + "\377\314\330\325\377\207\377\377\377\377\3\353\360\357\377\223\254\247" \ + "\377\241\266\262\377\204\333\343\342\377\3\311\325\323\377\223\254\247" \ + "\377\256\301\275\377\207\377\377\377\377\4\375\375\375\377\236\265\260" \ + "\377\223\254\247\377\322\334\333\377\343\333\343\342\377\1\324\334\333" \ + "\377\203Slg\377\1\261\277\274\377\366\333\343\342\377\4\330\341\340\377" \ + "\230\260\253\377\225\256\251\377\366\370\370\377\207\377\377\377\377" \ + "\3\276\315\312\377\223\254\247\377\277\315\313\377\205\333\343\342\377" \ + "\3\237\265\261\377\223\254\247\377\355\361\360\377\207\377\377\377\377" \ + "\3\312\326\324\377\223\254\247\377\265\306\303\377\343\333\343\342\377" \ + "\1\326\337\336\377\202Slg\377\1]up\377\367\333\343\342\377\3\277\316" \ + "\313\377\223\254\247\377\272\312\307\377\207\377\377\377\377\4\370\371" \ + "\371\377\227\257\252\377\230\257\253\377\330\341\337\377\205\333\343" \ + "\342\377\3\275\314\312\377\223\254\247\377\277\316\313\377\207\377\377" \ + "\377\377\4\365\367\367\377\225\255\251\377\231\260\254\377\331\341\340" \ + "\377\343\333\343\342\377\3`ws\377Slg\377i\200{\377\367\333\343\342\377" \ + "\3\241\267\263\377\223\254\247\377\350\355\354\377\207\377\377\377\377" \ + "\3\317\332\330\377\223\254\247\377\263\305\301\377\206\333\343\342\377" \ + "\4\327\340\337\377\227\257\252\377\230\260\253\377\371\372\372\377\207" \ + "\377\377\377\377\3\271\311\306\377\223\254\247\377\301\317\314\377\343" \ + "\333\343\342\377\4y\215\211\377Slg\377Vni\377\327\340\337\377\220\333" \ + "\343\342\377\1\324\335\334\377\202\301\314\312\377\342\333\343\342\377" \ + "\3\313\327\325\377\223\254\247\377\251\275\271\377\207\377\377\377\377" \ + "\4\376\376\376\377\242\267\263\377\223\254\247\377\321\333\332\377\207" \ + "\333\343\342\377\3\262\303\300\377\223\254\247\377\321\334\332\377\207" \ + "\377\377\377\377\3\346\354\352\377\223\254\247\377\242\270\263\377\343" \ + "\333\343\342\377\1\260\276\273\377\202Slg\377\1\300\313\311\377\220\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\342\333\343\342\377\3\255\300" \ + "\274\377\223\254\247\377\327\340\336\377\207\377\377\377\377\3\340\347" \ + "\346\377\223\254\247\377\247\273\270\377\210\333\343\342\377\3\320\332" \ + "\331\377\223\254\247\377\244\271\265\377\210\377\377\377\377\3\247\273" \ + "\267\377\223\254\247\377\314\330\326\377\342\333\343\342\377\5\331\342" \ + "\341\377o\205\201\377Slg\377x\215\211\377\331\342\341\377\217\333\343" \ + "\342\377\1\270\305\303\377\202Slg\377\341\333\343\342\377\4\325\336\335" \ + "\377\225\255\250\377\233\262\255\377\374\374\374\377\207\377\377\377" \ + "\377\3\263\305\301\377\223\254\247\377\306\323\321\377\211\333\343\342" \ + "\377\3\246\273\267\377\223\254\247\377\343\351\350\377\207\377\377\377" \ + "\377\3\325\336\334\377\223\254\247\377\256\300\275\377\343\333\343\342" \ + "\377\5\316\330\326\377dzv\377Slg\377\220\241\236\377\332\342\341\377" \ + "\216\333\343\342\377\1\270\305\303\377\202Slg\377\341\333\343\342\377" \ + "\3\270\310\306\377\223\254\247\377\305\323\320\377\207\377\377\377\377" \ + "\4\361\364\363\377\223\254\247\377\234\263\257\377\332\342\341\377\211" \ + "\333\343\342\377\3\304\322\317\377\223\254\247\377\265\306\302\377\207" \ + "\377\377\377\377\4\373\374\373\377\232\261\254\377\225\255\251\377\325" \ + "\337\335\377\343\333\343\342\377\6\316\327\326\377\200\224\220\377Sl" \ + "g\377h~z\377\246\265\262\377\326\336\335\377\214\333\343\342\377\1\270" \ + "\305\303\377\202Slg\377\340\333\343\342\377\4\332\342\341\377\233\262" \ + "\255\377\223\254\247\377\361\364\364\377\207\377\377\377\377\3\304\322" \ + "\317\377\223\254\247\377\272\312\307\377\212\333\343\342\377\4\332\342" \ + "\341\377\233\262\256\377\224\254\247\377\362\365\364\377\207\377\377" \ + "\377\377\3\303\321\316\377\223\254\247\377\272\311\307\377\341\333\343" \ + "\342\377\1\257\274\272\377\203}\220\215\377\1^vq\377\203Slg\377\3^vq" \ + "\377n\203\177\377{\217\213\377\211}\220\215\377\1r\207\203\377\202Sl" \ + "g\377\340\333\343\342\377\3\304\321\317\377\223\254\247\377\264\305\301" \ + "\377\207\377\377\377\377\4\373\374\374\377\232\262\255\377\225\256\251" \ + "\377\326\337\336\377\213\333\343\342\377\3\271\311\306\377\223\254\247" \ + "\377\307\324\321\377\207\377\377\377\377\4\360\363\362\377\223\254\247" \ + "\377\234\263\256\377\332\342\341\377\340\333\343\342\377\1\233\253\250" \ + "\377\226Slg\377\340\333\343\342\377\3\246\272\266\377\223\254\247\377" \ + "\341\350\347\377\207\377\377\377\377\3\326\337\335\377\223\254\247\377" \ + "\256\301\275\377\214\333\343\342\377\4\325\336\335\377\225\255\250\377" \ + "\234\263\256\377\374\375\374\377\207\377\377\377\377\3\262\304\300\377" \ + "\223\254\247\377\305\322\320\377\340\333\343\342\377\1\233\253\250\377" \ + "\226Slg\377\337\333\343\342\377\4\317\332\330\377\223\254\247\377\242" \ + "\270\263\377\376\376\376\377\207\377\377\377\377\3\251\274\270\377\223" \ + "\254\247\377\315\330\326\377\215\333\343\342\377\3\255\300\274\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\337\346\345\377\223" \ + "\254\247\377\247\273\267\377\340\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\337\333\343\342\377\3\261\303\300\377\223\254\247\377\320\333" \ + "\331\377\207\377\377\377\377\3\347\355\354\377\223\254\247\377\243\270" \ + "\264\377\216\333\343\342\377\3\314\327\325\377\223\254\247\377\252\276" \ + "\272\377\207\377\377\377\377\4\376\376\376\377\241\267\262\377\223\254" \ + "\247\377\320\333\331\377\337\333\343\342\377\3\233\253\250\377Slg\377" \ + "m\202~\377\221\275\310\306\377\1\242\261\256\377\202Slg\377\336\333\343" \ + "\342\377\1\327\340\337\377\202\227\257\252\377\1\370\372\371\377\207" \ + "\377\377\377\377\3\272\312\307\377\223\254\247\377\301\317\315\377\217" \ + "\333\343\342\377\3\241\267\263\377\223\254\247\377\351\356\355\377\207" \ + "\377\377\377\377\3\316\331\327\377\223\254\247\377\263\304\301\377\337" \ + "\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\336\333\343\342\377\3\275\314\311\377" \ + "\223\254\247\377\277\315\312\377\207\377\377\377\377\4\366\370\367\377" \ + "\225\256\251\377\231\260\254\377\331\341\340\377\217\333\343\342\377" \ + "\3\300\316\314\377\223\254\247\377\274\313\310\377\207\377\377\377\377" \ + "\4\367\371\371\377\226\256\252\377\227\257\252\377\330\340\337\377\336" \ + "\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\336\333\343\342\377\3\237\265\260\377" \ + "\223\254\247\377\354\360\357\377\207\377\377\377\377\3\313\327\325\377" \ + "\223\254\247\377\266\306\303\377\220\333\343\342\377\4\331\341\340\377" \ + "\230\260\253\377\226\256\252\377\367\371\370\377\207\377\377\377\377" \ + "\3\274\314\311\377\223\254\247\377\276\315\312\377\336\333\343\342\377" \ + "\3\237\256\253\377[sn\377{\217\213\377\221\333\343\342\377\1\302\315" \ + "\313\377\202x\215\211\377\335\333\343\342\377\3\310\325\323\377\223\254" \ + "\247\377\255\300\274\377\207\377\377\377\377\4\375\376\375\377\237\265" \ + "\261\377\224\254\247\377\323\334\333\377\221\333\343\342\377\3\264\305" \ + "\302\377\223\254\247\377\315\331\326\377\207\377\377\377\377\3\352\357" \ + "\356\377\223\254\247\377\240\266\261\377\377\333\343\342\377\323\333" \ + "\343\342\377\3\252\276\272\377\223\254\247\377\333\343\341\377\207\377" \ + "\377\377\377\3\335\344\343\377\223\254\247\377\252\275\272\377\222\333" \ + "\343\342\377\4\322\334\332\377\223\254\247\377\241\266\262\377\376\376" \ + "\376\377\207\377\377\377\377\3\253\276\273\377\223\254\247\377\312\326" \ + "\324\377\356\333\343\342\377\1\331\342\341\377\341\333\343\342\377\4" \ + "\323\335\333\377\224\254\247\377\235\264\257\377\375\375\375\377\207" \ + "\377\377\377\377\3\257\302\276\377\223\254\247\377\310\324\322\377\207" \ + "\333\343\342\377\4\327\340\337\377\264\305\302\377\260\302\277\377\305" \ + "\321\317\377\210\333\343\342\377\3\251\274\271\377\223\254\247\377\337" \ + "\346\345\377\207\377\377\377\377\3\330\341\337\377\223\254\247\377\253" \ + "\276\273\377\356\333\343\342\377\5\264\301\277\377^uq\377w\214\210\377" \ + "\236\255\253\377\330\341\340\377\335\333\343\342\377\3\266\306\303\377" \ + "\223\254\247\377\311\325\323\377\207\377\377\377\377\3\356\362\361\377" \ + "\223\254\247\377\236\265\260\377\210\333\343\342\377\5\251\275\272\377" \ + "\226\256\251\377\240\266\261\377\222\253\246\377\316\331\330\377\207" \ + "\333\343\342\377\3\307\323\321\377\223\254\247\377\261\303\300\377\207" \ + "\377\377\377\377\4\374\375\374\377\234\263\256\377\224\255\250\377\324" \ + "\335\334\377\334\333\343\342\377\3\241\260\255\377_vr\377z\216\212\377" \ + "\216\333\343\342\377\1\264\301\277\377\203Slg\377\2m\202~\377\312\324" \ + "\323\377\333\333\343\342\377\4\331\341\340\377\231\261\254\377\225\255" \ + "\250\377\364\367\366\377\207\377\377\377\377\3\301\317\314\377\223\254" \ + "\247\377\275\314\311\377\207\333\343\342\377\6\331\342\341\377\225\255" \ + "\250\377\320\333\331\377\374\375\375\377\234\263\256\377\261\303\300" \ + "\377\207\333\343\342\377\4\332\342\341\377\235\264\257\377\223\254\247" \ + "\377\360\363\362\377\207\377\377\377\377\3\307\324\321\377\223\254\247" \ + "\377\267\310\305\377\334\333\343\342\377\3\233\253\250\377Slg\377p\205" \ + "\201\377\216\333\343\342\377\2\270\305\303\377Woj\377\203Slg\377\1~\221" \ + "\216\377\333\333\343\342\377\3\301\317\315\377\223\254\247\377\270\310" \ + "\305\377\207\377\377\377\377\4\371\373\372\377\230\260\253\377\226\256" \ + "\252\377\327\340\336\377\207\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\210\333\343\342\377\3\273\313\310\377\223\254\247\377\303\321\316" \ + "\377\207\377\377\377\377\4\363\365\365\377\224\255\250\377\232\261\255" \ + "\377\331\342\341\377\333\333\343\342\377\3\233\253\250\377Slg\377p\205" \ + "\201\377\217\333\343\342\377\3\332\342\341\377\306\321\317\377\206\230" \ + "\225\377\202Slg\377\1\300\313\311\377\332\333\343\342\377\3\243\270\264" \ + "\377\223\254\247\377\345\353\352\377\207\377\377\377\377\3\322\335\333" \ + "\377\223\254\247\377\261\303\277\377\210\333\343\342\377\6\331\340\337" \ + "\377\223\254\247\377\332\342\341\377\377\377\377\377\251\275\271\377" \ + "\255\300\275\377\210\333\343\342\377\4\326\337\336\377\226\256\251\377" \ + "\232\261\254\377\372\373\373\377\207\377\377\377\377\3\266\307\303\377" \ + "\223\254\247\377\303\320\316\377\333\333\343\342\377\3\233\253\250\377" \ + "Slg\377p\205\201\377\221\333\343\342\377\4\332\342\341\377q\207\202\377" \ + "Slg\377\246\264\262\377\331\333\343\342\377\3\315\330\326\377\223\254" \ + "\247\377\246\273\267\377\210\377\377\377\377\3\245\272\266\377\223\254" \ + "\247\377\317\332\330\377\210\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\211\333\343\342\377\3\260\302\276\377\223\254\247\377\324\336\334" \ + "\377\207\377\377\377\377\3\343\351\350\377\223\254\247\377\244\271\265" \ + "\377\333\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\222\333" \ + "\343\342\377\3\223\244\240\377Slg\377\223\244\240\377\331\333\343\342" \ + "\377\3\257\301\276\377\223\254\247\377\324\336\334\377\207\377\377\377" \ + "\377\3\344\352\351\377\223\254\247\377\245\272\266\377\211\333\343\342" \ + "\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377\377\377" \ + "\251\275\271\377\255\300\275\377\211\333\343\342\377\3\316\331\327\377" \ + "\223\254\247\377\247\273\267\377\210\377\377\377\377\3\244\271\265\377" \ + "\223\254\247\377\316\331\327\377\332\333\343\342\377\3\233\253\250\377" \ + "Slg\377p\205\201\377\222\333\343\342\377\3\213\235\232\377Slg\377\214" \ + "\235\232\377\330\333\343\342\377\10\326\337\336\377\225\256\251\377\231" \ + "\261\254\377\372\373\373\377\354\360\357\377\301\317\315\377\325\337" \ + "\335\377\373\374\374\377\203\377\377\377\377\3\266\307\303\377\223\254" \ + "\247\377\303\321\317\377\211\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\212\333\343\342\377\3\244\271\265\377\223\254\247\377\346\353\352" \ + "\377\203\377\377\377\377\7\356\362\362\377\303\321\316\377\322\334\332" \ + "\377\372\373\373\377\322\334\332\377\223\254\247\377\260\302\277\377" \ + "\332\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221\333\343" \ + "\342\377\4\314\325\324\377_wr\377Slg\377\235\254\252\377\306\333\343" \ + "\342\377\1\203\240\232\377\205r\223\214\377\1w\227\221\377\213\253\276" \ + "\273\377\16\240\265\262\377\223\254\247\377\302\320\315\377\266\307\304" \ + "\377\223\254\247\377\233\262\256\377\223\254\247\377\233\262\255\377" \ + "\346\353\352\377\377\377\377\377\363\366\365\377\224\255\250\377\225" \ + "\256\251\377\252\275\272\377\211\253\276\273\377\6\252\275\272\377\223" \ + "\254\247\377\332\342\341\377\377\377\377\377\250\274\270\377\233\262" \ + "\256\377\212\253\276\273\377\3\242\267\264\377\223\254\247\377\270\310" \ + "\305\377\202\377\377\377\377\11\275\315\312\377\223\254\247\377\232\262" \ + "\255\377\224\255\250\377\231\261\254\377\332\344\341\377\230\260\253" \ + "\377\224\254\250\377\251\275\271\377\212\253\276\273\377\1\227\257\253" \ + "\377\205r\223\214\377\2s\224\215\377\261\303\300\377\300\333\343\342" \ + "\377\1\267\304\302\377\206\211\234\230\377\3p\205\201\377Slg\377^vq\377" \ + "\216\211\234\230\377\4\206\231\225\377\177\223\217\377r\207\203\377T" \ + "mh\377\202Slg\377\1\257\274\272\377\306\333\343\342\377\1|\233\224\377" \ + "\221o\221\212\377\15\215\250\242\377\223\254\247\377\335\345\343\377" \ + "\223\254\247\377\317\332\330\377\375\375\375\377\360\363\363\377\243" \ + "\270\264\377\265\306\303\377\377\377\377\377\310\325\322\377\223\254" \ + "\247\377\200\236\227\377\212o\221\212\377\6p\221\212\377\223\254\247" \ + "\377\332\342\341\377\377\377\377\377\247\273\267\377\205\242\234\377" \ + "\213o\221\212\377\15\217\251\244\377\224\255\250\377\365\367\367\377" \ + "\361\364\364\377\224\255\250\377\306\323\321\377\374\375\375\377\363" \ + "\366\365\377\252\276\272\377\255\300\274\377\300\317\314\377\223\254" \ + "\247\377~\234\226\377\221o\221\212\377\1\256\301\276\377\300\333\343" \ + "\342\377\1\237\256\253\377\234Slg\377\2]up\377\321\333\331\377\306\333" \ + "\343\342\377\1|\233\224\377\220o\221\212\377\6y\230\222\377\223\254\247" \ + "\377\261\303\277\377\277\316\313\377\235\264\257\377\376\376\376\377" \ + "\202\377\377\377\377\6\317\332\330\377\224\255\250\377\362\366\365\377" \ + "\234\263\257\377\222\253\246\377r\223\214\377\212o\221\212\377\6p\221" \ + "\212\377\223\254\247\377\332\342\341\377\377\377\377\377\247\273\267" \ + "\377\205\242\234\377\213o\221\212\377\6\201\236\230\377\223\254\247\377" \ + "\312\326\323\377\310\324\322\377\227\257\252\377\372\373\373\377\202" \ + "\377\377\377\377\5\331\342\340\377\223\254\247\377\337\346\345\377\223" \ + "\254\247\377\215\247\242\377\221o\221\212\377\1\256\301\276\377\300\333" \ + "\343\342\377\1\237\256\253\377\234Slg\377\1\246\265\262\377\307\333\343" \ + "\342\377\1|\233\224\377\220o\221\212\377\6\210\244\236\377\223\254\247" \ + "\377\336\346\344\377\320\333\330\377\225\256\251\377\365\367\367\377" \ + "\202\377\377\377\377\5\275\315\312\377\236\264\260\377\327\341\337\377" \ + "\223\254\247\377\206\242\234\377\213o\221\212\377\6p\221\212\377\223" \ + "\254\247\377\332\342\341\377\377\377\377\377\247\273\267\377\205\242" \ + "\234\377\213o\221\212\377\6r\223\214\377\222\253\246\377\236\264\260" \ + "\377\327\340\336\377\223\254\247\377\354\360\357\377\202\377\377\377" \ + "\377\6\310\324\322\377\231\260\253\377\371\373\373\377\257\301\276\377" \ + "\223\254\247\377x\230\221\377\220o\221\212\377\1\256\301\276\377\300" \ + "\333\343\342\377\1\237\256\253\377\232Slg\377\2q\207\202\377\267\304" \ + "\302\377\310\333\343\342\377\1|\233\224\377\217o\221\212\377\16s\224" \ + "\215\377\222\253\246\377\240\266\262\377\376\376\376\377\371\372\372" \ + "\377\230\260\253\377\250\274\270\377\326\337\336\377\301\317\315\377" \ + "\226\256\251\377\310\325\322\377\253\277\273\377\223\254\247\377w\227" \ + "\220\377\213o\221\212\377\6p\221\212\377\223\254\247\377\332\342\341" \ + "\377\377\377\377\377\247\273\267\377\205\242\234\377\214o\221\212\377" \ + "\15\206\242\235\377\223\254\247\377\330\341\340\377\234\263\256\377\245" \ + "\272\265\377\324\336\334\377\305\322\317\377\230\260\253\377\301\317" \ + "\314\377\377\377\377\377\334\344\343\377\223\254\247\377\207\243\236" \ + "\377\220o\221\212\377\1\256\301\276\377\300\333\343\342\377\1\306\321" \ + "\317\377\206\254\271\267\377\3\202\225\221\377Slg\377f|x\377\216\254" \ + "\271\267\377\3\263\300\276\377\304\317\315\377\325\335\334\377\312\333" \ + "\343\342\377\1\255\300\274\377\205\244\271\265\377\1\251\275\271\377" \ + "\211\333\343\342\377\3\263\305\301\377\223\254\247\377\315\330\326\377" \ + "\202\377\377\377\377\10\341\350\346\377\257\301\275\377\223\254\247\377" \ + "\234\263\256\377\306\323\321\377\345\352\351\377\223\254\247\377\241" \ + "\266\262\377\214\333\343\342\377\6\331\340\337\377\223\254\247\377\332" \ + "\342\341\377\377\377\377\377\251\275\271\377\255\300\275\377\214\333" \ + "\343\342\377\16\311\325\323\377\223\254\247\377\256\300\275\377\344\352" \ + "\351\377\262\304\301\377\223\254\247\377\231\261\254\377\303\321\316" \ + "\377\365\367\367\377\377\377\377\377\375\376\375\377\237\265\260\377" \ + "\223\254\247\377\322\334\333\377\210\333\343\342\377\1\310\324\322\377" \ + "\206\244\271\265\377\1\304\322\320\377\307\333\343\342\377\3\233\253" \ + "\250\377Slg\377p\205\201\377\352\333\343\342\377\4\330\341\337\377\230" \ + "\257\253\377\226\256\251\377\366\370\370\377\204\377\377\377\377\6\361" \ + "\364\363\377\374\375\375\377\377\377\377\377\275\314\311\377\223\254" \ + "\247\377\277\315\313\377\214\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\215\333\343\342\377\6\237\265\261\377\223\254\247\377\354\361\360" \ + "\377\377\377\377\377\362\365\365\377\372\373\373\377\204\377\377\377" \ + "\377\3\313\327\324\377\223\254\247\377\265\306\302\377\327\333\343\342" \ + "\377\3\233\253\250\377Slg\377p\205\201\377\352\333\343\342\377\3\277" \ + "\315\313\377\223\254\247\377\274\313\310\377\207\377\377\377\377\4\370" \ + "\371\371\377\227\257\252\377\230\257\253\377\330\341\337\377\214\333" \ + "\343\342\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377" \ + "\377\377\251\275\271\377\255\300\275\377\215\333\343\342\377\3\275\314" \ + "\312\377\223\254\247\377\277\316\313\377\207\377\377\377\377\4\366\370" \ + "\367\377\225\256\251\377\230\260\253\377\331\341\340\377\326\333\343" \ + "\342\377\3\253\271\266\377t\211\205\377\213\235\231\377\352\333\343\342" \ + "\377\3\241\266\262\377\223\254\247\377\351\356\355\377\207\377\377\377" \ + "\377\3\317\332\330\377\223\254\247\377\263\305\301\377\215\333\343\342" \ + "\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377\377\377" \ + "\251\275\271\377\255\300\275\377\215\333\343\342\377\4\327\340\337\377" \ + "\227\257\252\377\227\257\253\377\371\372\372\377\207\377\377\377\377" \ + "\3\271\311\306\377\223\254\247\377\300\316\314\377\377\333\343\342\377" \ + "\303\333\343\342\377\3\312\326\324\377\223\254\247\377\252\275\271\377" \ + "\207\377\377\377\377\4\376\376\376\377\242\267\263\377\223\254\247\377" \ + "\321\333\332\377\215\333\343\342\377\6\331\340\337\377\223\254\247\377" \ + "\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275\377\216" \ + "\333\343\342\377\3\262\303\300\377\223\254\247\377\320\333\331\377\207" \ + "\377\377\377\377\3\347\354\353\377\223\254\247\377\242\267\263\377\377" \ + "\333\343\342\377\303\333\343\342\377\3\254\277\274\377\223\254\247\377" \ + "\330\341\337\377\207\377\377\377\377\3\340\347\346\377\223\254\247\377" \ + "\247\273\270\377\216\333\343\342\377\6\331\340\337\377\223\254\247\377" \ + "\330\341\337\377\377\377\377\377\250\274\270\377\255\300\275\377\216" \ + "\333\343\342\377\3\320\332\331\377\223\254\247\377\243\271\264\377\210" \ + "\377\377\377\377\3\250\274\270\377\223\254\247\377\314\327\325\377\377" \ + "\333\343\342\377\301\333\343\342\377\4\324\336\334\377\224\255\250\377" \ + "\233\262\256\377\374\374\374\377\207\377\377\377\377\3\263\304\301\377" \ + "\223\254\247\377\306\323\321\377\217\333\343\342\377\5\237\265\261\377" \ + "\252\275\271\377\322\334\332\377\223\254\247\377\275\314\311\377\217" \ + "\333\343\342\377\3\246\273\267\377\223\254\247\377\342\351\347\377\207" \ + "\377\377\377\377\3\325\337\335\377\223\254\247\377\256\300\275\377\343" \ + "\333\343\342\377\6\267\303\301\377\223\244\240\377|\220\214\377\213\235" \ + "\231\377\250\267\264\377\311\323\322\377\327\333\343\342\377\3\270\310" \ + "\305\377\223\254\247\377\306\323\321\377\207\377\377\377\377\4\361\364" \ + "\363\377\223\254\247\377\234\263\257\377\332\342\341\377\217\333\343" \ + "\342\377\1\307\323\321\377\202\223\254\247\377\2\240\265\261\377\332" \ + "\342\341\377\217\333\343\342\377\3\304\322\317\377\223\254\247\377\264" \ + "\306\302\377\207\377\377\377\377\4\373\374\374\377\232\262\255\377\225" \ + "\255\250\377\325\336\335\377\325\333\343\342\377\1\302\315\313\377\204" \ + "\222\243\240\377\1\253\271\267\377\205\333\343\342\377\2\323\334\333" \ + "\377\200\223\220\377\205Slg\377\2Uni\377\247\266\263\377\325\333\343" \ + "\342\377\4\332\342\341\377\233\262\255\377\224\254\247\377\362\365\364" \ + "\377\207\377\377\377\377\3\304\322\317\377\223\254\247\377\272\312\307" \ + "\377\221\333\343\342\377\3\327\337\336\377\326\337\335\377\331\340\337" \ + "\377\220\333\343\342\377\4\332\342\341\377\233\262\256\377\224\254\247" \ + "\377\362\365\364\377\207\377\377\377\377\3\304\322\317\377\223\254\247" \ + "\377\271\311\306\377\325\333\343\342\377\1\211\233\230\377\204Slg\377" \ + "\1\201\224\220\377\205\333\343\342\377\1\200\223\220\377\210Slg\377\1" \ + "\227\247\244\377\324\333\343\342\377\3\303\321\317\377\223\254\247\377" \ + "\265\306\302\377\207\377\377\377\377\4\373\374\374\377\232\261\255\377" \ + "\225\256\251\377\326\337\336\377\245\333\343\342\377\3\271\311\306\377" \ + "\223\254\247\377\306\323\320\377\207\377\377\377\377\4\361\364\363\377" \ + "\223\254\247\377\234\262\256\377\332\342\341\377\323\333\343\342\377" \ + "\2\330\341\340\377]up\377\203Slg\377\2[sn\377\227\247\244\377\204\333" \ + "\343\342\377\1\247\266\263\377\212Slg\377\1\305\317\316\377\323\333\343" \ + "\342\377\3\245\272\266\377\223\254\247\377\342\351\347\377\207\377\377" \ + "\377\377\3\325\337\335\377\223\254\247\377\256\301\275\377\246\333\343" \ + "\342\377\4\325\336\335\377\225\255\250\377\233\262\256\377\374\374\374" \ + "\377\207\377\377\377\377\3\263\304\301\377\223\254\247\377\305\322\320" \ + "\377\323\333\343\342\377\1\265\302\300\377\202Slg\377\3]up\377\263\300" \ + "\275\377\332\342\341\377\205\333\343\342\377\1i\177{\377\203Slg\377\5" \ + "Yrm\377\233\253\250\377\266\302\300\377\246\264\262\377x\214\210\377" \ + "\202Slg\377\1\204\227\223\377\322\333\343\342\377\3\317\332\330\377\223" \ + "\254\247\377\243\270\264\377\210\377\377\377\377\3\250\274\270\377\223" \ + "\254\247\377\315\330\326\377\247\333\343\342\377\3\255\300\274\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\340\347\346\377\223" \ + "\254\247\377\247\273\267\377\323\333\343\342\377\4\212\234\231\377Sl" \ + "g\377Voj\377\307\322\320\377\206\333\343\342\377\1\270\305\303\377\203" \ + "Slg\377\2Vni\377\303\316\314\377\203\333\343\342\377\5\331\342\341\377" \ + "\210\233\227\377Slg\377Umh\377\315\327\325\377\321\333\343\342\377\3" \ + "\261\303\277\377\223\254\247\377\321\333\331\377\207\377\377\377\377" \ + "\3\347\354\353\377\223\254\247\377\243\270\264\377\250\333\343\342\377" \ + "\3\314\327\325\377\223\254\247\377\252\275\271\377\207\377\377\377\377" \ + "\4\376\376\376\377\242\267\263\377\223\254\247\377\320\333\331\377\322" \ + "\333\343\342\377\3u\211\205\377Slg\377\221\242\237\377\207\333\343\342" \ + "\377\1\204\227\223\377\203Slg\377\1\221\243\237\377\205\333\343\342\377" \ + "\4\317\331\327\377Voj\377Slg\377\266\303\301\377\320\333\343\342\377" \ + "\4\327\340\336\377\226\256\252\377\227\257\253\377\371\372\372\377\207" \ + "\377\377\377\377\3\271\311\306\377\223\254\247\377\301\317\315\377\251" \ + "\333\343\342\377\3\241\267\263\377\223\254\247\377\351\356\355\377\207" \ + "\377\377\377\377\3\317\332\330\377\223\254\247\377\262\304\300\377\322" \ + "\333\343\342\377\3dzv\377Slg\377\274\307\306\377\206\333\343\342\377" \ + "\2\331\341\340\377\\to\377\202Slg\377\2Tmh\377\315\327\325\377\206\333" \ + "\343\342\377\3z\216\212\377Slg\377\246\264\262\377\320\333\343\342\377" \ + "\3\274\313\311\377\223\254\247\377\277\316\313\377\207\377\377\377\377" \ + "\4\365\367\367\377\225\255\251\377\231\260\254\377\331\341\340\377\251" \ + "\333\343\342\377\3\300\316\314\377\223\254\247\377\273\313\310\377\207" \ + "\377\377\377\377\1\370\371\371\377\202\227\257\252\377\1\327\340\337" \ + "\377\320\333\343\342\377\4\331\341\340\377Umh\377Slg\377\317\330\327" \ + "\377\206\333\343\342\377\1\271\306\304\377\203Slg\377\1z\216\212\377" \ + "\207\333\343\342\377\3\213\235\231\377Slg\377\225\246\243\377\320\333" \ + "\343\342\377\3\236\265\260\377\223\254\247\377\355\361\360\377\207\377" \ + "\377\377\377\3\313\327\324\377\223\254\247\377\266\306\303\377\252\333" \ + "\343\342\377\4\331\341\340\377\230\260\253\377\226\256\251\377\366\370" \ + "\370\377\207\377\377\377\377\3\275\314\311\377\223\254\247\377\276\315" \ + "\312\377\320\333\343\342\377\1\324\334\333\377\202Slg\377\1\325\336\335" \ + "\377\206\333\343\342\377\1\216\240\235\377\203Slg\377\1\255\272\270\377" \ + "\207\333\343\342\377\3\227\247\244\377Slg\377\210\233\227\377\317\333" \ + "\343\342\377\3\310\324\322\377\223\254\247\377\256\301\275\377\207\377" \ + "\377\377\377\4\375\376\375\377\237\265\260\377\224\254\247\377\323\334" \ + "\333\377\253\333\343\342\377\3\264\305\302\377\223\254\247\377\315\330" \ + "\326\377\207\377\377\377\377\3\353\357\356\377\223\254\247\377\237\265" \ + "\261\377\321\333\343\342\377\3\\to\377Slg\377\310\322\321\377\205\333" \ + "\343\342\377\2\330\341\340\377_vr\377\202Slg\377\2Xpk\377\325\336\335" \ + "\377\207\333\343\342\377\3\214\235\232\377Slg\377\216\237\234\377\317" \ + "\333\343\342\377\3\252\275\271\377\223\254\247\377\333\343\342\377\207" \ + "\377\377\377\377\3\334\344\343\377\223\254\247\377\252\275\272\377\254" \ + "\333\343\342\377\4\322\334\332\377\223\254\247\377\240\266\262\377\376" \ + "\376\376\377\207\377\377\377\377\3\254\277\273\377\223\254\247\377\311" \ + "\325\323\377\320\333\343\342\377\3n\203\177\377Slg\377\257\274\272\377" \ + "\205\333\343\342\377\1\261\277\274\377\203Slg\377\1\200\223\220\377\210" \ + "\333\343\342\377\3{\217\213\377Slg\377\227\247\244\377\316\333\343\342" \ + "\377\4\323\334\333\377\223\254\247\377\236\265\260\377\375\375\375\377" \ + "\207\377\377\377\377\3\257\301\276\377\223\254\247\377\310\324\322\377" \ + "\255\333\343\342\377\3\251\274\271\377\223\254\247\377\336\346\344\377" \ + "\207\377\377\377\377\3\331\342\340\377\223\254\247\377\253\276\273\377" \ + "\320\333\343\342\377\3\201\224\220\377Slg\377v\212\206\377\204\333\343" \ + "\342\377\2\330\340\337\377i\200{\377\203Slg\377\1\260\276\273\377\207" \ + "\333\343\342\377\4\325\335\334\377^uq\377Slg\377\253\271\267\377\316" \ + "\333\343\342\377\3\265\306\303\377\223\254\247\377\312\326\324\377\207" \ + "\377\377\377\377\3\356\361\361\377\223\254\247\377\236\265\260\377\256" \ + "\333\343\342\377\3\307\323\321\377\223\254\247\377\261\303\277\377\207" \ + "\377\377\377\377\4\374\375\375\377\235\263\257\377\224\255\250\377\323" \ + "\335\334\377\317\333\343\342\377\1\263\300\275\377\202Slg\377\5\206\231" \ + "\225\377\314\326\324\377\333\343\342\377\315\327\325\377\177\222\217" \ + "\377\203Slg\377\2czu\377\331\341\340\377\207\333\343\342\377\1\234\253" \ + "\251\377\202Slg\377\1\303\316\314\377\315\333\343\342\377\4\331\341\340" \ + "\377\231\260\254\377\225\255\251\377\365\367\367\377\207\377\377\377" \ + "\377\3\300\317\314\377\223\254\247\377\275\314\311\377\256\333\343\342" \ + "\377\4\332\342\341\377\235\264\257\377\223\254\247\377\357\362\362\377" \ + "\207\377\377\377\377\3\310\325\322\377\223\254\247\377\267\307\304\377" \ + "\320\333\343\342\377\1m\202~\377\203Slg\377\1Xql\377\205Slg\377\1\235" \ + "\254\252\377\207\333\343\342\377\4\241\261\256\377Voj\377Slg\377czu\377" \ + "\316\333\343\342\377\3\301\317\314\377\223\254\247\377\271\311\306\377" \ + "\207\377\377\377\377\4\371\373\372\377\230\260\253\377\226\256\252\377" \ + "\327\340\336\377\257\333\343\342\377\3\273\313\310\377\223\254\247\377" \ + "\302\320\315\377\207\377\377\377\377\4\363\366\366\377\224\255\250\377" \ + "\232\261\254\377\331\341\340\377\317\333\343\342\377\2\265\302\300\377" \ + "Voj\377\207Slg\377\2o\205\201\377\330\340\337\377\204\333\343\342\377" \ + "\3\274\307\306\377\210\233\227\377k\201}\377\203Slg\377\1\221\243\237" \ + "\377\316\333\343\342\377\3\243\270\264\377\223\254\247\377\346\354\352" \ + "\377\207\377\377\377\377\3\322\334\332\377\223\254\247\377\261\303\277" \ + "\377\260\333\343\342\377\4\326\337\336\377\226\256\251\377\231\261\254" \ + "\377\372\373\373\377\207\377\377\377\377\3\267\307\304\377\223\254\247" \ + "\377\302\320\316\377\320\333\343\342\377\2\274\310\306\377_wr\377\205" \ + "Slg\377\2j\200|\377\311\324\322\377\205\333\343\342\377\1\226\247\244" \ + "\377\205Slg\377\1\300\313\311\377\315\333\343\342\377\3\314\330\326\377" \ + "\223\254\247\377\247\273\267\377\210\377\377\377\377\3\244\271\265\377" \ + "\223\254\247\377\317\332\330\377\261\333\343\342\377\3\260\302\276\377" \ + "\223\254\247\377\324\336\334\377\207\377\377\377\377\3\344\352\351\377" \ + "\223\254\247\377\244\271\265\377\321\333\343\342\377\7\316\330\326\377" \ + "\250\266\264\377\214\236\233\377v\213\207\377\206\230\225\377\244\263" \ + "\260\377\330\341\340\377\206\333\343\342\377\1\243\262\257\377\204l\201" \ + "}\377\1x\215\211\377\316\333\343\342\377\3\256\301\275\377\223\254\247" \ + "\377\325\336\334\377\207\377\377\377\377\3\343\351\350\377\223\254\247" \ + "\377\245\272\266\377\262\333\343\342\377\3\316\331\327\377\223\254\247" \ + "\377\246\273\267\377\210\377\377\377\377\3\245\272\266\377\223\254\247" \ + "\377\316\331\327\377\377\333\343\342\377\261\333\343\342\377\4\325\337" \ + "\335\377\225\255\251\377\232\261\254\377\373\374\373\377\207\377\377" \ + "\377\377\3\266\307\303\377\223\254\247\377\303\321\317\377\263\333\343" \ + "\342\377\3\244\271\265\377\223\254\247\377\345\353\352\377\207\377\377" \ + "\377\377\3\322\335\333\377\223\254\247\377\260\302\276\377\377\333\343" \ + "\342\377\261\333\343\342\377\3\272\311\307\377\223\254\247\377\303\321" \ + "\316\377\207\377\377\377\377\4\363\366\365\377\224\255\250\377\232\262" \ + "\255\377\332\342\341\377\263\333\343\342\377\3\302\320\316\377\223\254" \ + "\247\377\270\310\305\377\207\377\377\377\377\4\372\373\373\377\231\260" \ + "\254\377\226\256\251\377\326\337\336\377\377\333\343\342\377\257\333" \ + "\343\342\377\4\332\342\341\377\234\263\256\377\223\254\247\377\360\363" \ + "\362\377\207\377\377\377\377\3\307\324\321\377\223\254\247\377\270\310" \ + "\305\377\264\333\343\342\377\4\331\341\340\377\232\261\254\377\225\255" \ + "\250\377\364\367\366\377\207\377\377\377\377\3\301\317\314\377\223\254" \ + "\247\377\273\313\310\377\314\333\343\342\377\3\277\312\310\377\237\256" \ + "\253\377\254\272\270\377\337\333\343\342\377\3\305\322\320\377\223\254" \ + "\247\377\262\304\300\377\207\377\377\377\377\4\374\375\374\377\234\263" \ + "\256\377\224\255\250\377\324\336\334\377\265\333\343\342\377\3\266\307" \ + "\304\377\223\254\247\377\311\325\323\377\207\377\377\377\377\4\356\362" \ + "\361\377\223\254\247\377\235\264\257\377\332\342\341\377\313\333\343" \ + "\342\377\3\233\253\250\377Slg\377p\205\201\377\337\333\343\342\377\3" \ + "\247\273\267\377\223\254\247\377\337\346\345\377\207\377\377\377\377" \ + "\3\330\341\337\377\223\254\247\377\254\277\274\377\266\333\343\342\377" \ + "\4\323\335\334\377\224\255\250\377\235\264\257\377\375\375\375\377\207" \ + "\377\377\377\377\3\260\302\276\377\223\254\247\377\307\323\321\377\313" \ + "\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\336\333\343\342" \ + "\377\4\321\333\331\377\223\254\247\377\241\266\262\377\376\376\376\377" \ + "\207\377\377\377\377\3\253\276\273\377\223\254\247\377\312\326\324\377" \ + "\267\333\343\342\377\3\253\276\272\377\223\254\247\377\333\343\341\377" \ + "\207\377\377\377\377\3\335\345\343\377\223\254\247\377\251\274\271\377" \ + "\313\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\336\333\343" \ + "\342\377\3\263\304\301\377\223\254\247\377\315\331\326\377\207\377\377" \ + "\377\377\3\351\356\355\377\223\254\247\377\241\266\262\377\270\333\343" \ + "\342\377\3\311\325\323\377\223\254\247\377\254\277\273\377\207\377\377" \ + "\377\377\4\375\376\375\377\240\265\261\377\223\254\247\377\321\334\332" \ + "\377\312\333\343\342\377\3\233\253\250\377Slg\377[sn\377\223x\215\211" \ + "\377\5z\216\212\377\202\225\221\377\214\236\233\377\246\265\262\377\310" \ + "\323\321\377\305\333\343\342\377\4\330\340\337\377\227\257\252\377\226" \ + "\256\252\377\367\371\370\377\207\377\377\377\377\3\274\313\310\377\223" \ + "\254\247\377\277\315\313\377\271\333\343\342\377\3\237\265\261\377\223" \ + "\254\247\377\353\360\357\377\207\377\377\377\377\3\314\327\325\377\223" \ + "\254\247\377\264\305\302\377\312\333\343\342\377\1\233\253\250\377\232" \ + "Slg\377\2x\214\210\377\275\311\307\377\303\333\343\342\377\3\276\315" \ + "\312\377\223\254\247\377\274\313\310\377\207\377\377\377\377\4\367\371" \ + "\370\377\226\256\251\377\230\257\253\377\330\341\337\377\271\333\343" \ + "\342\377\3\275\314\312\377\223\254\247\377\276\315\312\377\207\377\377" \ + "\377\377\4\366\370\370\377\225\256\251\377\230\260\253\377\330\341\340" \ + "\377\311\333\343\342\377\1\233\253\250\377\233Slg\377\2Tmh\377\237\256" \ + "\253\377\302\333\343\342\377\3\240\266\262\377\223\254\247\377\351\356" \ + "\355\377\207\377\377\377\377\3\315\330\326\377\223\254\247\377\263\305" \ + "\301\377\272\333\343\342\377\1\327\340\337\377\202\227\257\252\377\1" \ + "\370\371\371\377\207\377\377\377\377\3\272\312\307\377\223\254\247\377" \ + "\300\316\314\377\311\333\343\342\377\1\233\253\250\377\235Slg\377\1\243" \ + "\262\257\377\300\333\343\342\377\3\312\326\324\377\223\254\247\377\252" \ + "\276\272\377\207\377\377\377\377\4\376\376\376\377\240\266\262\377\223" \ + "\254\247\377\321\333\332\377\273\333\343\342\377\3\262\303\300\377\223" \ + "\254\247\377\317\332\330\377\207\377\377\377\377\3\350\355\354\377\223" \ + "\254\247\377\241\267\263\377\311\333\343\342\377\4\321\332\331\377\305" \ + "\320\316\377\305\317\316\377\207\231\226\377\202Slg\377\5j\200|\377\224" \ + "\245\242\377\244\263\260\377\264\300\276\377\302\315\313\377\202\305" \ + "\320\316\377\16\274\307\306\377\254\272\270\377\235\255\252\377\207\232" \ + "\226\377Xql\377Slg\377^vq\377\257\274\272\377\305\320\316\377\304\316" \ + "\315\377\266\303\301\377\247\265\263\377\227\250\245\377s\210\203\377" \ + "\203Slg\377\2Vni\377\304\317\315\377\277\333\343\342\377\3\254\277\273" \ + "\377\223\254\247\377\330\341\337\377\207\377\377\377\377\3\336\346\344" \ + "\377\223\254\247\377\247\273\270\377\274\333\343\342\377\4\320\332\331" \ + "\377\223\254\247\377\242\270\263\377\376\376\376\377\207\377\377\377" \ + "\377\3\251\275\271\377\223\254\247\377\313\327\325\377\311\333\343\342" \ + "\377\5\327\340\337\377y\215\211\377Slg\377q\207\202\377\266\302\300\377" \ + "\213\333\343\342\377\5\321\333\331\377\233\253\250\377Yrm\377Wpk\377" \ + "\255\273\271\377\205\333\343\342\377\2\271\305\303\377r\207\203\377\202" \ + "Slg\377\1\203\226\222\377\276\333\343\342\377\4\324\336\334\377\224\255" \ + "\250\377\234\263\256\377\374\375\374\377\207\377\377\377\377\3\261\303" \ + "\277\377\223\254\247\377\306\323\321\377\275\333\343\342\377\3\246\273" \ + "\267\377\223\254\247\377\340\347\346\377\207\377\377\377\377\3\326\340" \ + "\336\377\223\254\247\377\255\300\274\377\311\333\343\342\377\4\211\234" \ + "\230\377Slg\377n\204\200\377\325\336\335\377\216\333\343\342\377\4\263" \ + "\300\275\377Tlg\377Wpk\377\300\314\312\377\205\333\343\342\377\5\325" \ + "\335\334\377f}x\377Slg\377Umh\377\324\334\333\377\275\333\343\342\377" \ + "\3\267\310\305\377\223\254\247\377\307\324\321\377\207\377\377\377\377" \ + "\4\357\363\362\377\223\254\247\377\234\263\257\377\332\342\341\377\275" \ + "\333\343\342\377\3\304\322\317\377\223\254\247\377\263\304\301\377\207" \ + "\377\377\377\377\4\373\374\374\377\233\262\255\377\225\255\250\377\325" \ + "\336\335\377\307\333\343\342\377\4\275\311\307\377Slg\377\\so\377\316" \ + "\327\326\377\220\333\343\342\377\3\227\250\245\377Slg\377p\206\202\377" \ + "\206\333\343\342\377\4\276\312\310\377Tlg\377Slg\377\266\302\300\377" \ + "\274\333\343\342\377\4\331\342\341\377\232\261\255\377\224\254\247\377" \ + "\362\365\364\377\207\377\377\377\377\3\302\320\315\377\223\254\247\377" \ + "\272\312\307\377\276\333\343\342\377\4\332\342\341\377\233\262\256\377" \ + "\223\254\247\377\361\364\363\377\207\377\377\377\377\3\305\322\320\377" \ + "\223\254\247\377\271\311\306\377\307\333\343\342\377\3\211\233\230\377" \ + "Slg\377|\217\214\377\221\333\343\342\377\1\304\317\315\377\202Slg\377" \ + "\1\305\317\316\377\206\333\343\342\377\3f}x\377Slg\377\235\254\252\377" \ + "\274\333\343\342\377\3\303\320\316\377\223\254\247\377\265\306\302\377" \ + "\207\377\377\377\377\4\372\373\373\377\231\261\254\377\225\255\251\377" \ + "\326\337\336\377\277\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\304\322\317\377\207\377\377\377\377\4\361\364\363\377\223\254\247\377" \ + "\233\262\256\377\332\342\341\377\306\333\343\342\377\3e{w\377Slg\377" \ + "\227\250\245\377\221\333\343\342\377\4\331\342\341\377Xql\377Slg\377" \ + "\241\261\256\377\206\333\343\342\377\3}\221\215\377Slg\377\221\242\237" \ + "\377\274\333\343\342\377\3\245\271\265\377\223\254\247\377\343\351\350" \ + "\377\207\377\377\377\377\3\324\336\334\377\223\254\247\377\256\301\275" \ + "\377\300\333\343\342\377\4\325\336\335\377\225\255\250\377\232\262\255" \ + "\377\373\374\374\377\207\377\377\377\377\3\264\305\301\377\223\254\247" \ + "\377\304\321\317\377\305\333\343\342\377\4\332\342\341\377Vni\377Slg" \ + "\377\243\262\257\377\222\333\343\342\377\3czu\377Slg\377\223\244\241" \ + "\377\206\333\343\342\377\3\224\244\241\377Slg\377\210\233\227\377\273" \ + "\333\343\342\377\3\316\331\330\377\223\254\247\377\244\271\264\377\210" \ + "\377\377\377\377\3\246\273\267\377\223\254\247\377\315\330\326\377\301" \ + "\333\343\342\377\4\255\300\274\377\222\253\246\377\315\330\326\377\376" \ + "\376\376\377\206\377\377\377\377\3\341\350\346\377\223\254\247\377\246" \ + "\272\266\377\305\333\343\342\377\1\322\333\332\377\202Slg\377\1\205\230" \ + "\224\377\221\333\343\342\377\1\316\327\326\377\202Slg\377\1\211\234\230" \ + "\377\206\333\343\342\377\3\220\242\236\377Slg\377\222\243\240\377\273" \ + "\333\343\342\377\3\260\302\277\377\223\254\247\377\321\334\332\377\207" \ + "\377\377\377\377\3\345\353\352\377\223\254\247\377\243\270\264\377\302" \ + "\333\343\342\377\16\314\327\325\377\223\254\246\377\223\254\247\377\226" \ + "\256\251\377\244\271\265\377\264\305\302\377\303\321\316\377\323\335" \ + "\333\377\342\351\350\377\361\365\364\377\375\375\375\377\242\270\263" \ + "\377\223\254\247\377\317\332\330\377\304\333\343\342\377\4\332\342\341" \ + "\377Vni\377Slg\377f|x\377\221\333\343\342\377\1\256\274\271\377\202S" \ + "lg\377\1\226\246\243\377\206\333\343\342\377\3\202\225\221\377Slg\377" \ + "\237\257\254\377\272\333\343\342\377\4\327\337\336\377\226\256\251\377" \ + "\230\260\253\377\371\372\372\377\207\377\377\377\377\3\270\310\305\377" \ + "\223\254\247\377\301\317\315\377\303\333\343\342\377\15\232\262\255\377" \ + "\223\254\246\377\325\336\335\377\331\342\340\377\312\326\324\377\273" \ + "\313\310\377\254\277\273\377\235\263\257\377\223\254\247\377\226\256" \ + "\251\377\234\263\256\377\222\254\246\377\256\300\274\377\305\333\343" \ + "\342\377\1i\200{\377\202Slg\377\1\224\244\241\377\217\333\343\342\377" \ + "\2\313\325\323\377czu\377\202Slg\377\1\253\271\266\377\205\333\343\342" \ + "\377\4\331\341\340\377czu\377Slg\377\254\272\270\377\272\333\343\342" \ + "\377\3\274\313\310\377\223\254\247\377\277\316\313\377\207\377\377\377" \ + "\377\4\364\367\366\377\225\255\250\377\231\260\254\377\331\341\340\377" \ + "\303\333\343\342\377\3\275\313\311\377\222\254\246\377\257\301\276\377" \ + "\205\377\377\377\377\3\372\373\373\377\353\360\357\377\327\340\335\377" \ + "\202\224\255\250\377\3\327\340\337\377\331\342\341\377\322\334\333\377" \ + "\302\333\343\342\377\1\226\247\244\377\203Slg\377\2\231\252\247\377\330" \ + "\341\340\377\214\333\343\342\377\2\310\323\321\377f|x\377\202Slg\377" \ + "\2Voj\377\323\334\332\377\205\333\343\342\377\1\253\271\266\377\202S" \ + "lg\377\1\272\306\304\377\272\333\343\342\377\3\236\264\260\377\223\254" \ + "\247\377\355\361\360\377\207\377\377\377\377\3\311\325\323\377\223\254" \ + "\247\377\266\306\303\377\304\333\343\342\377\4\331\341\340\377\224\255" \ + "\250\377\224\254\247\377\366\370\367\377\207\377\377\377\377\5\263\305" \ + "\301\377\222\254\246\377\266\306\302\377\232\262\254\377\240\266\262" \ + "\377\302\333\343\342\377\2\314\325\324\377Xql\377\203Slg\377\4_wr\377" \ + "\221\243\237\377\304\316\315\377\330\341\340\377\206\333\343\342\377" \ + "\4\322\333\332\377\254\271\267\377w\214\210\377Tlg\377\203Slg\377\1\211" \ + "\233\230\377\205\333\343\342\377\5\263\300\276\377Xql\377Slg\377Xql\377" \ + "\326\336\335\377\271\333\343\342\377\3\310\324\322\377\223\254\247\377" \ + "\256\301\275\377\207\377\377\377\377\4\375\375\375\377\235\264\257\377" \ + "\223\254\247\377\323\334\333\377\305\333\343\342\377\3\256\300\276\377" \ + "\223\253\246\377\305\322\320\377\207\377\377\377\377\6\353\360\357\377" \ + "\222\254\247\377\231\261\255\377\241\267\262\377\223\254\247\377\312" \ + "\326\324\377\302\333\343\342\377\1\237\256\253\377\206Slg\377\7Tlg\377" \ + "^vq\377l\202~\377y\215\211\377s\210\203\377e|w\377Xpk\377\206Slg\377" \ + "\2_wr\377\321\333\331\377\203\333\343\342\377\2\255\272\270\377q\207" \ + "\202\377\203Slg\377\1~\222\216\377\272\333\343\342\377\3\251\275\271" \ + "\377\223\254\247\377\334\344\342\377\207\377\377\377\377\3\333\343\341" \ + "\377\223\254\247\377\252\275\271\377\306\333\343\342\377\4\322\334\332" \ + "\377\223\253\246\377\231\260\253\377\375\376\375\377\207\377\377\377" \ + "\377\5\242\267\263\377\222\253\246\377\265\305\302\377\223\254\247\377" \ + "\254\277\273\377\303\333\343\342\377\1\220\242\236\377\221Slg\377\2_" \ + "vr\377\304\316\315\377\204\333\343\342\377\1}\220\215\377\204Slg\377" \ + "\1\251\267\265\377\271\333\343\342\377\4\322\334\333\377\223\254\247" \ + "\377\236\265\260\377\375\376\375\377\207\377\377\377\377\3\255\300\274" \ + "\377\223\254\247\377\310\324\322\377\307\333\343\342\377\3\241\266\263" \ + "\377\223\253\247\377\332\342\341\377\203\377\377\377\377\2\371\372\372" \ + "\377\364\367\366\377\202\377\377\377\377\6\326\340\336\377\222\254\246" \ + "\377\243\270\263\377\230\260\253\377\225\255\250\377\324\336\334\377" \ + "\303\333\343\342\377\2\242\261\256\377Yql\377\216Slg\377\2s\210\204\377" \ + "\310\322\321\377\205\333\343\342\377\1\235\255\252\377\204\201\224\220" \ + "\377\1\321\333\331\377\271\333\343\342\377\3\265\306\302\377\223\254" \ + "\247\377\312\326\324\377\207\377\377\377\377\3\354\360\357\377\223\254" \ + "\247\377\236\265\260\377\310\333\343\342\377\3\306\322\320\377\222\253" \ + "\246\377\244\271\266\377\203\377\377\377\377\2\244\271\264\377\272\312" \ + "\307\377\202\377\377\377\377\6\374\375\375\377\227\257\252\377\223\254" \ + "\246\377\260\303\277\377\223\254\247\377\267\310\305\377\304\333\343" \ + "\342\377\3\313\325\323\377\212\234\231\377Yrm\377\212Slg\377\3n\203\177" \ + "\377\247\266\263\377\332\342\341\377\304\333\343\342\377\4\331\341\340" \ + "\377\230\260\253\377\225\255\251\377\365\367\367\377\207\377\377\377" \ + "\377\3\277\315\312\377\223\254\247\377\275\314\311\377\310\333\343\342" \ + "\377\4\332\342\341\377\227\257\253\377\223\253\246\377\356\361\361\377" \ + "\202\377\377\377\377\3\312\326\324\377\226\256\251\377\367\370\370\377" \ + "\202\377\377\377\377\6\300\316\314\377\223\253\246\377\226\256\250\377" \ + "\223\254\247\377\233\261\255\377\332\342\341\377\305\333\343\342\377" \ + "\13\324\335\334\377\261\277\274\377\224\244\241\377|\217\214\377r\207" \ + "\203\377j\200|\377n\203\177\377v\213\207\377\205\227\224\377\242\261" \ + "\256\377\303\316\314\377\307\333\343\342\377\3\301\317\314\377\223\254" \ + "\247\377\271\311\306\377\207\377\377\377\377\4\370\372\371\377\227\257" \ + "\252\377\226\256\252\377\327\340\336\377\311\333\343\342\377\3\267\310" \ + "\305\377\223\253\246\377\266\307\304\377\202\377\377\377\377\3\365\367" \ + "\367\377\225\256\251\377\315\330\326\377\202\377\377\377\377\6\364\366" \ + "\366\377\223\254\246\377\223\253\247\377\235\263\260\377\223\254\247" \ + "\377\303\321\317\377\377\333\343\342\377\230\333\343\342\377\3\242\267" \ + "\263\377\223\254\247\377\346\354\353\377\207\377\377\377\377\3\320\333" \ + "\331\377\223\254\247\377\261\303\277\377\312\333\343\342\377\4\326\337" \ + "\336\377\223\254\247\377\224\255\250\377\371\373\372\377\202\377\377" \ + "\377\377\3\271\311\306\377\241\266\262\377\376\376\376\377\202\377\377" \ + "\377\377\5\253\277\273\377\223\253\247\377\263\305\302\377\223\254\247" \ + "\377\245\271\265\377\377\333\343\342\377\227\333\343\342\377\3\314\330" \ + "\326\377\223\254\247\377\247\273\267\377\207\377\377\377\377\4\376\376" \ + "\376\377\243\270\264\377\223\254\247\377\317\332\330\377\313\333\343" \ + "\342\377\3\251\274\270\377\222\254\247\377\315\330\325\377\202\377\377" \ + "\377\377\3\346\354\353\377\223\254\247\377\337\346\345\377\202\377\377" \ + "\377\377\2\344\352\350\377\223\254\246\377\202\235\263\257\377\2\223" \ + "\254\247\377\316\331\330\377\377\333\343\342\377\226\333\343\342\377" \ + "\3\256\300\275\377\223\254\247\377\325\337\335\377\207\377\377\377\377" \ + "\3\341\350\347\377\223\254\247\377\245\272\266\377\314\333\343\342\377" \ + "\3\316\331\327\377\222\253\246\377\234\263\256\377\203\377\377\377\377" \ + "\2\247\274\270\377\261\303\300\377\203\377\377\377\377\5\234\263\256" \ + "\377\223\253\246\377\263\305\301\377\223\254\247\377\260\303\277\377" \ + "\322\333\343\342\377\1\304\317\315\377\202\201\224\220\377\277\333\343" \ + "\342\377\4\325\336\335\377\225\255\250\377\232\261\255\377\373\374\373" \ + "\377\207\377\377\377\377\3\264\305\302\377\223\254\247\377\303\321\317" \ + "\377\315\333\343\342\377\3\235\263\260\377\223\253\246\377\342\351\347" \ + "\377\202\377\377\377\377\3\325\336\334\377\223\254\247\377\360\363\363" \ + "\377\202\377\377\377\377\5\315\330\326\377\223\253\246\377\247\274\267" \ + "\377\227\256\251\377\253\276\273\377\322\333\343\342\377\1\270\305\303" \ + "\377\202Slg\377\277\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\303\321\316\377\207\377\377\377\377\4\361\364\364\377\224\254\247\377" \ + "\232\262\255\377\332\342\341\377\315\333\343\342\377\3\300\317\315\377" \ + "\223\254\246\377\253\277\272\377\202\377\377\377\377\3\373\374\374\377" \ + "\232\262\255\377\303\321\316\377\202\377\377\377\377\4\372\373\373\377" \ + "\225\255\251\377\224\254\247\377\321\333\332\377\323\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\276\333\343\342\377\4\332\342\341\377\234" \ + "\263\256\377\223\254\247\377\360\363\363\377\207\377\377\377\377\3\305" \ + "\323\320\377\223\254\247\377\270\310\305\377\316\333\343\342\377\4\331" \ + "\341\340\377\226\255\251\377\223\253\247\377\363\366\365\377\202\377" \ + "\377\377\377\3\304\321\317\377\232\262\255\377\373\374\374\377\202\377" \ + "\377\377\377\3\267\310\304\377\222\253\246\377\270\310\304\377\306\333" \ + "\343\342\377\2\317\331\327\377\301\314\312\377\213\275\310\306\377\1" \ + "\242\261\256\377\202Slg\377\276\333\343\342\377\3\305\322\320\377\223" \ + "\254\247\377\262\304\300\377\207\377\377\377\377\4\374\374\374\377\233" \ + "\262\255\377\224\255\250\377\324\336\334\377\317\333\343\342\377\3\261" \ + "\303\300\377\223\253\246\377\276\315\313\377\202\377\377\377\377\3\360" \ + "\364\363\377\223\254\247\377\325\337\335\377\202\377\377\377\377\4\357" \ + "\362\362\377\222\253\246\377\231\260\253\377\332\342\341\377\301\333" \ + "\343\342\377\4\305\320\316\377\204\227\223\377e|w\377Voj\377\220Slg\377" \ + "\276\333\343\342\377\3\247\273\267\377\223\254\247\377\340\347\345\377" \ + "\207\377\377\377\377\3\327\340\336\377\223\254\247\377\254\277\274\377" \ + "\320\333\343\342\377\4\323\335\334\377\223\253\247\377\226\256\252\377" \ + "\374\375\374\377\202\377\377\377\377\2\262\304\301\377\250\274\270\377" \ + "\202\377\377\377\377\4\354\360\357\377\232\262\255\377\223\253\247\377" \ + "\306\323\321\377\277\333\343\342\377\3\325\335\334\377\202\225\221\377" \ + "Tlg\377\223Slg\377\275\333\343\342\377\4\320\333\331\377\223\254\247" \ + "\377\241\267\262\377\376\376\376\377\207\377\377\377\377\3\251\275\271" \ + "\377\223\254\247\377\312\326\324\377\321\333\343\342\377\3\244\271\264" \ + "\377\223\254\247\377\325\337\335\377\202\377\377\377\377\10\340\347\346" \ + "\377\223\254\247\377\312\327\324\377\255\300\274\377\226\256\251\377" \ + "\255\277\274\377\222\254\247\377\250\274\270\377\277\333\343\342\377" \ + "\1\207\232\226\377\225Slg\377\275\333\343\342\377\3\262\304\300\377\223" \ + "\254\247\377\316\331\327\377\207\377\377\377\377\3\350\355\354\377\223" \ + "\254\247\377\240\266\262\377\322\333\343\342\377\16\311\325\323\377\223" \ + "\254\246\377\241\266\263\377\377\377\377\377\364\367\366\377\310\325" \ + "\322\377\227\257\252\377\234\263\256\377\312\327\324\377\365\370\367" \ + "\377\376\376\376\377\240\266\261\377\223\254\247\377\321\333\332\377" \ + "\275\333\343\342\377\1\257\275\272\377\205Slg\377\4Voj\377axt\377k\201" \ + "|\377t\211\205\377\212x\215\211\377\1o\204\200\377\202Slg\377\274\333" \ + "\343\342\377\4\330\340\337\377\227\257\252\377\226\256\252\377\367\371" \ + "\371\377\207\377\377\377\377\3\273\312\307\377\223\254\247\377\277\315" \ + "\313\377\323\333\343\342\377\7\231\260\254\377\223\253\247\377\260\302" \ + "\276\377\225\256\251\377\257\301\276\377\334\344\343\377\376\376\376" \ + "\377\203\377\377\377\377\3\315\330\326\377\223\254\247\377\264\305\302" \ + "\377\275\333\343\342\377\1\201\225\221\377\203Slg\377\3~\222\216\377" \ + "\261\277\274\377\327\340\337\377\215\333\343\342\377\1\270\305\303\377" \ + "\202Slg\377\274\333\343\342\377\3\276\315\312\377\223\254\247\377\274" \ + "\314\311\377\207\377\377\377\377\4\366\370\370\377\225\256\251\377\230" \ + "\257\253\377\330\341\337\377\323\333\343\342\377\4\273\312\310\377\222" \ + "\254\246\377\244\271\265\377\356\362\361\377\206\377\377\377\377\4\366" \ + "\370\370\377\226\256\251\377\230\257\253\377\330\341\340\377\274\333" \ + "\343\342\377\1i\200{\377\202Slg\377\1\204\226\223\377\220\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\274\333\343\342\377\3\237\265\261\377" \ + "\223\254\247\377\352\357\356\377\207\377\377\377\377\3\314\330\325\377" \ + "\223\254\247\377\263\304\301\377\324\333\343\342\377\4\327\340\337\377" \ + "\227\257\252\377\226\256\252\377\367\371\371\377\207\377\377\377\377" \ + "\3\273\313\310\377\223\254\247\377\277\316\313\377\273\333\343\342\377" \ + "\2\330\340\337\377Uni\377\202Slg\377\1\321\333\331\377\220\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\273\333\343\342\377\3\312\326\324\377" \ + "\223\254\247\377\253\276\273\377\207\377\377\377\377\4\376\376\376\377" \ + "\240\265\261\377\223\254\247\377\321\333\332\377\325\333\343\342\377" \ + "\3\262\303\300\377\223\254\247\377\316\331\327\377\207\377\377\377\377" \ + "\3\350\356\355\377\223\254\247\377\241\267\262\377\273\333\343\342\377" \ + "\4\326\337\336\377Tlg\377Slg\377byt\377\221\333\343\342\377\1\330\341" \ + "\340\377\202\322\333\332\377\273\333\343\342\377\3\253\276\273\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\335\345\344\377\223" \ + "\254\247\377\247\273\270\377\326\333\343\342\377\4\320\332\331\377\223" \ + "\254\247\377\241\267\262\377\376\376\376\377\207\377\377\377\377\3\252" \ + "\275\271\377\223\254\247\377\313\326\325\377\273\333\343\342\377\3cz" \ + "u\377Slg\377l\202~\377\316\333\343\342\377\4\323\335\334\377\224\255" \ + "\250\377\234\263\256\377\374\375\374\377\207\377\377\377\377\3\260\302" \ + "\276\377\223\254\247\377\306\323\321\377\327\333\343\342\377\3\246\273" \ + "\267\377\223\254\247\377\340\347\345\377\207\377\377\377\377\3\327\340" \ + "\336\377\223\254\247\377\254\277\274\377\273\333\343\342\377\4\207\231" \ + "\226\377Slg\377Vni\377\327\337\336\377\315\333\343\342\377\3\267\307" \ + "\304\377\223\254\247\377\307\324\321\377\207\377\377\377\377\4\356\362" \ + "\361\377\223\254\247\377\234\263\257\377\332\342\341\377\327\333\343" \ + "\342\377\3\304\322\317\377\223\254\247\377\262\304\300\377\207\377\377" \ + "\377\377\4\374\374\374\377\233\262\256\377\224\255\250\377\325\336\335" \ + "\377\272\333\343\342\377\1\305\317\316\377\202Slg\377\1\271\306\304\377" \ + "\220\333\343\342\377\1\307\322\320\377\202\216\237\234\377\271\333\343" \ + "\342\377\4\331\342\341\377\232\261\255\377\224\255\250\377\363\366\365" \ + "\377\207\377\377\377\377\3\302\320\315\377\223\254\247\377\272\312\307" \ + "\377\330\333\343\342\377\4\332\342\341\377\233\262\256\377\223\254\247" \ + "\377\360\363\363\377\207\377\377\377\377\3\306\323\320\377\223\254\247" \ + "\377\270\310\305\377\273\333\343\342\377\4\232\252\247\377Slg\377d{v" \ + "\377\317\330\327\377\217\333\343\342\377\1\270\305\303\377\202Slg\377" \ + "\271\333\343\342\377\3\303\320\316\377\223\254\247\377\266\307\303\377" \ + "\207\377\377\377\377\4\372\373\373\377\231\260\254\377\225\255\251\377" \ + "\326\337\336\377\331\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\303\321\316\377\207\377\377\377\377\4\362\365\364\377\224\254\247\377" \ + "\233\262\255\377\332\342\341\377\273\333\343\342\377\4\226\246\243\377" \ + "Tmh\377l\201}\377\267\303\301\377\216\333\343\342\377\1\270\305\303\377" \ + "\202Slg\377\271\333\343\342\377\3\244\271\265\377\223\254\247\377\343" \ + "\352\350\377\207\377\377\377\377\3\323\335\333\377\223\254\247\377\256" \ + "\301\275\377\332\333\343\342\377\4\325\336\335\377\225\255\250\377\232" \ + "\261\254\377\373\374\373\377\207\377\377\377\377\3\264\306\302\377\223" \ + "\254\247\377\304\321\317\377\271\333\343\342\377\1\317\330\327\377\202" \ + "\301\314\312\377\10\246\265\262\377^vq\377Slg\377k\201}\377\226\247\244" \ + "\377\245\264\261\377\263\300\276\377\277\313\311\377\211\301\314\312" \ + "\377\1\245\264\261\377\202Slg\377\270\333\343\342\377\3\316\331\327\377" \ + "\223\254\247\377\245\271\265\377\210\377\377\377\377\3\246\272\266\377" \ + "\223\254\247\377\315\330\326\377\333\333\343\342\377\3\255\300\274\377" \ + "\223\254\247\377\325\336\334\377\207\377\377\377\377\3\342\350\347\377" \ + "\223\254\247\377\245\272\266\377\271\333\343\342\377\1\233\253\250\377" \ + "\226Slg\377\270\333\343\342\377\3\260\302\276\377\223\254\247\377\322" \ + "\334\332\377\207\377\377\377\377\3\344\352\351\377\223\254\247\377\243" \ + "\270\264\377\334\333\343\342\377\3\314\327\325\377\223\254\247\377\247" \ + "\273\267\377\207\377\377\377\377\4\376\376\376\377\243\270\264\377\223" \ + "\254\247\377\317\332\330\377\270\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\267\333\343\342\377\4\326\337\336\377\226\256\251\377\230\260" \ + "\253\377\371\373\372\377\207\377\377\377\377\3\267\307\304\377\223\254" \ + "\247\377\301\317\315\377\335\333\343\342\377\3\241\267\263\377\223\254" \ + "\247\377\346\354\353\377\207\377\377\377\377\3\320\333\331\377\223\254" \ + "\247\377\261\303\277\377\270\333\343\342\377\1\233\253\250\377\226Sl" \ + "g\377\267\333\343\342\377\3\273\313\310\377\223\254\247\377\300\317\314" \ + "\377\207\377\377\377\377\4\363\366\366\377\224\255\250\377\231\260\254" \ + "\377\331\341\340\377\335\333\343\342\377\3\300\316\314\377\223\254\247" \ + "\377\271\311\306\377\207\377\377\377\377\4\371\372\372\377\227\257\253" \ + "\377\226\256\252\377\327\340\337\377\267\333\343\342\377\3\233\253\250" \ + "\377Slg\377[sn\377\221x\215\211\377\1o\204\200\377\202Slg\377\266\333" \ + "\343\342\377\4\332\342\341\377\235\264\257\377\223\254\247\377\356\361" \ + "\361\377\207\377\377\377\377\3\310\325\322\377\223\254\247\377\266\306" \ + "\303\377\336\333\343\342\377\4\330\341\340\377\230\260\253\377\225\255" \ + "\251\377\365\367\367\377\207\377\377\377\377\3\277\316\313\377\223\254" \ + "\247\377\275\314\311\377\267\333\343\342\377\3\233\253\250\377Slg\377" \ + "p\205\201\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\266\333" \ + "\343\342\377\3\307\324\322\377\223\254\247\377\257\301\276\377\207\377" \ + "\377\377\377\4\374\375\375\377\235\264\257\377\223\254\247\377\323\334" \ + "\333\377\337\333\343\342\377\3\264\305\302\377\223\254\247\377\312\326" \ + "\324\377\207\377\377\377\377\3\354\361\360\377\223\254\247\377\236\265" \ + "\260\377\267\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221" \ + "\333\343\342\377\1\270\305\303\377\202Slg\377\266\333\343\342\377\3\251" \ + "\274\271\377\223\254\247\377\334\344\343\377\207\377\377\377\377\3\332" \ + "\342\340\377\223\254\247\377\252\275\271\377\340\333\343\342\377\4\322" \ + "\334\332\377\223\254\247\377\236\265\260\377\375\375\375\377\207\377" \ + "\377\377\377\3\256\300\275\377\223\254\247\377\310\324\322\377\266\333" \ + "\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\265\333\343\342\377\4\322\334\332\377\223" \ + "\254\247\377\237\265\260\377\375\376\375\377\207\377\377\377\377\3\254" \ + "\277\273\377\223\254\247\377\310\324\322\377\341\333\343\342\377\3\251" \ + "\274\271\377\223\254\247\377\333\343\342\377\207\377\377\377\377\3\333" \ + "\343\342\377\223\254\247\377\252\275\272\377\266\333\343\342\377\3\277" \ + "\312\310\377\237\256\253\377\254\272\270\377\221\333\343\342\377\1\323" \ + "\334\333\377\202\275\310\306\377\265\333\343\342\377\3\264\305\302\377" \ + "\223\254\247\377\313\327\324\377\207\377\377\377\377\3\353\360\357\377" \ + "\223\254\247\377\236\265\260\377\342\333\343\342\377\3\307\323\321\377" \ + "\223\254\247\377\256\301\275\377\207\377\377\377\377\4\375\375\375\377" \ + "\236\264\260\377\224\254\247\377\323\334\333\377\377\333\343\342\377" \ + "\5\333\343\342\377\331\341\340\377\230\260\253\377\225\256\251\377\366" \ + "\370\367\377\207\377\377\377\377\3\275\314\311\377\223\254\247\377\274" \ + "\313\311\377\342\333\343\342\377\4\332\342\341\377\235\264\257\377\223" \ + "\254\247\377\355\361\360\377\207\377\377\377\377\3\312\326\323\377\223" \ + "\254\247\377\266\306\303\377\377\333\343\342\377\4\333\343\342\377\300" \ + "\316\314\377\223\254\247\377\271\311\306\377\207\377\377\377\377\4\370" \ + "\371\371\377\227\257\252\377\226\256\252\377\327\340\336\377\343\333" \ + "\343\342\377\3\273\313\310\377\223\254\247\377\277\316\313\377\207\377" \ + "\377\377\377\4\364\367\366\377\225\255\250\377\231\260\254\377\331\341" \ + "\340\377\310\333\343\342\377\3\307\322\320\377\305\320\316\377\324\334" \ + "\333\377\264\333\343\342\377\3\241\267\263\377\223\254\247\377\347\354" \ + "\353\377\207\377\377\377\377\3\317\332\330\377\223\254\247\377\261\303" \ + "\277\377\344\333\343\342\377\4\326\337\336\377\226\256\251\377\227\257" \ + "\253\377\371\372\372\377\207\377\377\377\377\3\270\310\305\377\223\254" \ + "\247\377\301\317\315\377\310\333\343\342\377\3_vr\377Slg\377\254\271" \ + "\267\377\263\333\343\342\377\3\314\327\325\377\223\254\247\377\250\274" \ + "\270\377\207\377\377\377\377\4\376\376\376\377\242\270\263\377\223\254" \ + "\247\377\317\332\330\377\345\333\343\342\377\3\260\302\276\377\223\254" \ + "\247\377\321\333\331\377\207\377\377\377\377\3\346\353\352\377\223\254" \ + "\247\377\243\270\264\377\310\333\343\342\377\3_vr\377Slg\377\254\271" \ + "\267\377\263\333\343\342\377\3\255\300\274\377\223\254\247\377\325\337" \ + "\335\377\207\377\377\377\377\3\340\347\346\377\223\254\247\377\245\272" \ + "\266\377\346\333\343\342\377\3\316\331\327\377\223\254\247\377\244\271" \ + "\265\377\210\377\377\377\377\3\247\273\267\377\223\254\247\377\315\330" \ + "\326\377\307\333\343\342\377\3^vq\377Slg\377\254\271\267\377\262\333" \ + "\343\342\377\4\325\336\335\377\225\255\250\377\232\261\255\377\373\374" \ + "\374\377\207\377\377\377\377\3\263\304\301\377\223\254\247\377\303\321" \ + "\317\377\347\333\343\342\377\3\244\271\265\377\223\254\247\377\342\351" \ + "\347\377\207\377\377\377\377\3\324\336\334\377\223\254\247\377\256\301" \ + "\275\377\304\333\343\342\377\3\317\331\327\377\236\255\253\377i\177{" \ + "\377\202Slg\377\1\254\271\267\377\262\333\343\342\377\3\271\311\306\377" \ + "\223\254\247\377\304\322\317\377\207\377\377\377\377\4\361\364\363\377" \ + "\223\254\247\377\226\256\251\377\332\342\341\377\347\333\343\342\377" \ + "\3\302\320\316\377\223\254\247\377\265\306\302\377\202\377\377\377\377" \ + "\3\371\373\372\377\356\361\361\377\375\375\375\377\202\377\377\377\377" \ + "\4\372\373\373\377\232\261\254\377\225\255\251\377\326\337\336\377\300" \ + "\333\343\342\377\4\331\341\340\377\263\300\276\377~\222\216\377Uni\377" \ + "\204Slg\377\1\254\271\267\377\261\333\343\342\377\4\332\342\341\377\233" \ + "\262\256\377\223\254\247\377\361\364\363\377\207\377\377\377\377\1\304" \ + "\322\317\377\202\223\254\247\377\1\312\326\324\377\347\333\343\342\377" \ + "\5\331\341\340\377\232\261\254\377\223\254\247\377\302\320\315\377\244" \ + "\271\265\377\202\223\254\247\377\7\226\256\251\377\251\275\271\377\331" \ + "\342\340\377\377\377\377\377\303\321\316\377\223\254\247\377\272\312" \ + "\307\377\276\333\343\342\377\3\310\322\321\377\224\244\241\377axt\377" \ + "\207Slg\377\1\254\271\267\377\261\333\343\342\377\3\304\322\317\377\223" \ + "\254\247\377\263\304\301\377\207\377\377\377\377\5\373\374\374\377\233" \ + "\262\255\377\225\255\251\377\233\262\256\377\264\305\302\377\350\333" \ + "\343\342\377\1\260\303\277\377\202\224\255\250\377\13\277\315\312\377" \ + "\330\341\337\377\345\353\351\377\322\334\332\377\263\304\301\377\223" \ + "\254\247\377\267\307\304\377\353\357\356\377\223\254\247\377\234\263" \ + "\257\377\332\342\341\377\272\333\343\342\377\3\326\336\335\377\251\267" \ + "\265\377t\211\205\377\212Slg\377\1\254\271\267\377\261\333\343\342\377" \ + "\3\246\272\266\377\223\254\247\377\340\347\346\377\207\377\377\377\377" \ + "\5\326\337\335\377\223\254\247\377\271\311\306\377\262\304\300\377\246" \ + "\272\266\377\347\333\343\342\377\4\331\341\340\377\236\264\260\377\240" \ + "\266\261\377\351\356\355\377\205\377\377\377\377\6\330\341\337\377\226" \ + "\256\252\377\275\314\311\377\261\303\300\377\223\254\247\377\306\323" \ + "\320\377\270\333\343\342\377\3\276\312\310\377\211\234\230\377[sn\377" \ + "\211Slg\377\4Voj\377Umh\377Slg\377\254\271\267\377\260\333\343\342\377" \ + "\4\320\332\331\377\223\254\247\377\242\267\263\377\376\376\376\377\207" \ + "\377\377\377\377\5\250\274\270\377\223\254\247\377\346\354\353\377\272" \ + "\312\307\377\242\267\263\377\347\333\343\342\377\3\265\306\302\377\225" \ + "\255\250\377\352\357\356\377\207\377\377\377\377\5\322\334\332\377\223" \ + "\254\247\377\311\325\323\377\223\254\247\377\247\273\270\377\265\333" \ + "\343\342\377\3\320\332\330\377\237\256\253\377k\201|\377\212Slg\377\6" \ + "n\204\200\377\242\261\256\377\321\333\331\377_vr\377Slg\377\254\271\267" \ + "\377\260\333\343\342\377\3\262\303\300\377\223\254\247\377\317\332\330" \ + "\377\204\377\377\377\377\11\367\371\370\377\352\357\356\377\377\377\377" \ + "\377\347\355\354\377\223\254\247\377\247\273\267\377\377\377\377\377" \ + "\244\271\265\377\257\301\276\377\347\333\343\342\377\2\234\263\256\377" \ + "\303\321\316\377\211\377\377\377\377\5\250\274\270\377\267\307\304\377" \ + "\241\266\262\377\223\254\247\377\321\333\332\377\261\333\343\342\377" \ + "\4\331\342\341\377\264\301\277\377\200\223\220\377Vni\377\211Slg\377" \ + "\3^vq\377\220\241\236\377\303\316\314\377\203\333\343\342\377\3_vr\377" \ + "Slg\377\254\271\267\377\257\333\343\342\377\1\327\340\337\377\202\227" \ + "\257\252\377\1\370\371\371\377\203\377\377\377\377\12\352\357\356\377" \ + "\226\256\252\377\223\254\247\377\277\316\313\377\271\311\306\377\223" \ + "\254\247\377\325\337\335\377\351\356\355\377\223\254\247\377\277\316" \ + "\313\377\346\333\343\342\377\3\325\336\335\377\223\254\247\377\335\344" \ + "\343\377\211\377\377\377\377\5\302\320\315\377\241\267\262\377\315\331" \ + "\326\377\223\254\247\377\263\304\301\377\241\333\343\342\377\6\274\307" \ + "\306\377\217\241\235\377t\211\205\377|\217\214\377\242\261\256\377\310" \ + "\322\321\377\210\333\343\342\377\3\311\323\322\377\225\246\243\377by" \ + "t\377\213Slg\377\2\245\264\261\377\330\341\340\377\205\333\343\342\377" \ + "\3_vr\377Slg\377\254\271\267\377\257\333\343\342\377\3\314\327\325\377" \ + "\223\254\247\377\264\305\301\377\204\377\377\377\377\12\307\324\322\377" \ + "\226\256\252\377\261\303\300\377\230\260\253\377\224\255\250\377\232" \ + "\261\255\377\367\371\370\377\244\271\265\377\241\266\262\377\331\341" \ + "\340\377\346\333\343\342\377\3\312\326\324\377\223\254\247\377\353\360" \ + "\357\377\211\377\377\377\377\5\320\333\331\377\223\254\247\377\361\364" \ + "\364\377\223\254\247\377\243\270\264\377\237\333\343\342\377\3\327\340" \ + "\337\377\217\241\235\377Tlg\377\205Slg\377\1\236\255\253\377\204\333" \ + "\343\342\377\3\326\337\336\377\253\271\266\377v\212\206\377\212Slg\377" \ + "\2g}y\377\222\243\240\377\202Slg\377\1\305\320\316\377\206\333\343\342" \ + "\377\3\264\301\277\377\260\275\273\377\314\326\324\377\257\333\343\342" \ + "\377\3\316\331\330\377\223\254\247\377\263\304\301\377\204\377\377\377" \ + "\377\11\351\356\355\377\226\256\251\377\223\254\247\377\251\275\271\377" \ + "\223\254\247\377\272\312\307\377\244\271\265\377\225\255\251\377\316" \ + "\331\327\377\347\333\343\342\377\3\326\337\336\377\223\254\247\377\332" \ + "\343\341\377\211\377\377\377\377\5\277\316\313\377\243\270\264\377\363" \ + "\365\365\377\223\254\247\377\246\272\266\377\237\333\343\342\377\1\217" \ + "\241\235\377\203Slg\377\2e{w\377czu\377\203Slg\377\5\254\271\267\377" \ + "\333\343\342\377\300\313\311\377\213\235\232\377[sn\377\211Slg\377\5" \ + "Yql\377\206\231\225\377\273\307\305\377\333\343\342\377\316\327\326\377" \ + "\202Slg\377\1\305\320\316\377\270\333\343\342\377\3\321\334\332\377\223" \ + "\254\247\377\256\301\275\377\205\377\377\377\377\3\366\370\367\377\346" \ + "\354\352\377\237\265\260\377\202\223\254\247\377\2\240\266\262\377\315" \ + "\330\327\377\351\333\343\342\377\2\235\264\257\377\275\314\311\377\210" \ + "\377\377\377\377\6\375\375\375\377\243\271\264\377\271\311\306\377\356" \ + "\362\361\377\223\254\247\377\251\275\271\377\236\333\343\342\377\5\274" \ + "\307\306\377Tlg\377Slg\377e{w\377\300\313\311\377\202\333\343\342\377" \ + "\5\274\307\306\377axt\377Slg\377Vni\377k\201}\377\212Slg\377\3r\207\203" \ + "\377\246\265\262\377\324\335\334\377\203\333\343\342\377\1\316\327\326" \ + "\377\202Slg\377\1\305\320\316\377\270\333\343\342\377\3\324\336\334\377" \ + "\223\254\247\377\251\275\271\377\206\377\377\377\377\5\335\344\343\377" \ + "\223\254\247\377\233\262\255\377\300\316\314\377\331\341\340\377\352" \ + "\333\343\342\377\3\272\312\307\377\223\254\247\377\343\351\350\377\207" \ + "\377\377\377\377\6\310\325\322\377\224\254\250\377\350\355\354\377\351" \ + "\356\355\377\223\254\247\377\254\277\273\377\236\333\343\342\377\1\217" \ + "\241\235\377\202Slg\377\1\300\313\311\377\204\333\343\342\377\1\270\305" \ + "\303\377\212Slg\377\3_wr\377\222\243\240\377\306\320\317\377\206\333" \ + "\343\342\377\1\316\327\326\377\202Slg\377\1\305\320\316\377\270\333\343" \ + "\342\377\3\327\340\337\377\223\254\247\377\245\272\266\377\206\377\377" \ + "\377\377\3\257\301\276\377\223\254\247\377\306\323\320\377\354\333\343" \ + "\342\377\4\332\342\341\377\244\271\265\377\233\262\255\377\335\345\343" \ + "\377\204\377\377\377\377\10\375\376\375\377\312\326\324\377\224\254\250" \ + "\377\307\324\321\377\377\377\377\377\344\352\351\377\223\254\247\377" \ + "\257\301\276\377\236\333\343\342\377\3t\211\205\377Slg\377g~y\377\206" \ + "\333\343\342\377\1\\to\377\206Slg\377\4Uni\377}\221\215\377\261\277\274" \ + "\377\330\341\340\377\210\333\343\342\377\1\316\327\326\377\202Slg\377" \ + "\1\305\320\316\377\270\333\343\342\377\3\332\342\341\377\223\254\247" \ + "\377\240\266\262\377\205\377\377\377\377\4\356\361\361\377\223\254\247" \ + "\377\234\263\257\377\332\342\341\377\355\333\343\342\377\17\324\336\334" \ + "\377\250\273\270\377\223\254\247\377\261\303\277\377\312\326\324\377" \ + "\327\340\336\377\304\322\317\377\246\273\267\377\223\254\247\377\304" \ + "\322\317\377\375\375\375\377\377\377\377\377\340\347\345\377\223\254" \ + "\247\377\262\303\300\377\236\333\343\342\377\3v\212\206\377Slg\377f|" \ + "x\377\206\333\343\342\377\1[sn\377\204Slg\377\3i\177{\377\235\255\252" \ + "\377\317\330\327\377\213\333\343\342\377\1\316\327\326\377\202Slg\377" \ + "\1\305\320\316\377\271\333\343\342\377\2\225\255\251\377\234\263\256" \ + "\377\205\377\377\377\377\3\300\317\314\377\223\254\247\377\272\312\307" \ + "\377\360\333\343\342\377\7\277\316\313\377\245\272\266\377\227\257\252" \ + "\377\223\254\247\377\225\255\250\377\257\301\276\377\346\353\352\377" \ + "\203\377\377\377\377\3\333\343\342\377\223\254\247\377\265\306\302\377" \ + "\236\333\343\342\377\1\220\242\236\377\202Slg\377\1\277\312\310\377\204" \ + "\333\343\342\377\1\266\302\300\377\205Slg\377\3z\216\212\377\257\274" \ + "\272\377\330\340\337\377\213\333\343\342\377\1\316\327\326\377\202Sl" \ + "g\377\1\305\320\316\377\271\333\343\342\377\2\230\260\253\377\230\257" \ + "\253\377\204\377\377\377\377\4\371\373\372\377\230\260\253\377\225\255" \ + "\251\377\326\337\336\377\362\333\343\342\377\4\332\342\341\377\266\307" \ + "\304\377\223\254\247\377\302\320\315\377\204\377\377\377\377\3\326\337" \ + "\335\377\223\254\247\377\267\310\305\377\236\333\343\342\377\14\276\311" \ + "\307\377Tmh\377Slg\377d{v\377\274\307\306\377\333\343\342\377\321\332" \ + "\331\377\235\255\252\377^vq\377Slg\377Vni\377k\201}\377\204Slg\377\3" \ + "^uq\377\217\241\235\377\304\317\315\377\211\333\343\342\377\1\316\327" \ + "\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\2\233\262\255" \ + "\377\223\254\247\377\204\377\377\377\377\3\322\334\332\377\223\254\247" \ + "\377\256\301\275\377\364\333\343\342\377\4\325\336\335\377\225\255\250" \ + "\377\231\261\254\377\372\373\373\377\203\377\377\377\377\3\321\334\332" \ + "\377\223\254\247\377\272\312\307\377\237\333\343\342\377\1\223\244\240" \ + "\377\203Slg\377\2_vr\377Wpk\377\203Slg\377\5\254\271\267\377\333\343" \ + "\342\377\300\314\312\377\214\236\233\377\\so\377\204Slg\377\3p\205\201" \ + "\377\245\263\261\377\324\334\333\377\206\333\343\342\377\1\316\327\326" \ + "\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\3\236\264\260\377" \ + "\223\254\247\377\373\374\374\377\203\377\377\377\377\3\245\271\265\377" \ + "\223\254\247\377\315\330\326\377\365\333\343\342\377\3\255\300\274\377" \ + "\223\254\247\377\324\336\334\377\203\377\377\377\377\3\315\330\326\377" \ + "\223\254\247\377\275\314\312\377\237\333\343\342\377\3\330\340\337\377" \ + "\225\246\243\377Umh\377\205Slg\377\1\236\255\253\377\204\333\343\342" \ + "\377\4\327\337\336\377\254\271\267\377w\214\210\377Tlg\377\203Slg\377" \ + "\3Xpk\377\205\230\224\377\272\306\304\377\204\333\343\342\377\1\316\327" \ + "\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\3\241\266\262" \ + "\377\223\254\247\377\366\370\370\377\202\377\377\377\377\3\343\352\350" \ + "\377\223\254\247\377\243\270\264\377\366\333\343\342\377\3\314\327\325" \ + "\377\223\254\247\377\246\273\267\377\203\377\377\377\377\3\307\324\322" \ + "\377\223\254\247\377\300\316\314\377\241\333\343\342\377\6\302\315\313" \ + "\377\230\250\245\377}\220\215\377\203\226\222\377\246\265\262\377\311" \ + "\324\322\377\210\333\343\342\377\3\313\325\323\377\227\250\245\377d{" \ + "v\377\204Slg\377\5f}x\377\233\253\250\377\315\327\325\377\333\343\342" \ + "\377\316\327\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377" \ + "\3\244\271\265\377\223\254\247\377\362\365\364\377\202\377\377\377\377" \ + "\3\266\307\303\377\223\254\247\377\301\317\315\377\367\333\343\342\377" \ + "\3\241\267\263\377\223\254\247\377\345\353\352\377\202\377\377\377\377" \ + "\3\303\321\316\377\223\254\247\377\303\321\317\377\261\333\343\342\377" \ + "\4\332\342\341\377\267\304\302\377\203\226\222\377Wpk\377\203Slg\377" \ + "\3Tmh\377|\217\214\377\245\264\261\377\202Slg\377\1\305\320\316\377\206" \ + "\333\343\342\377\3\317\331\327\377\316\327\326\377\326\337\336\377\260" \ + "\333\343\342\377\10\247\273\267\377\223\254\247\377\301\317\314\377\333" \ + "\343\341\377\344\352\351\377\224\255\250\377\231\260\254\377\331\341" \ + "\340\377\367\333\343\342\377\10\300\316\314\377\223\254\247\377\265\306" \ + "\303\377\345\353\351\377\322\335\333\377\250\274\270\377\223\254\247" \ + "\377\306\323\321\377\264\333\343\342\377\3\323\334\332\377\243\262\257" \ + "\377o\204\200\377\206Slg\377\1\267\304\302\377\206\333\343\342\377\3" \ + "_vr\377Slg\377\254\271\267\377\260\333\343\342\377\1\252\275\271\377" \ + "\205\223\254\247\377\1\266\306\303\377\370\333\343\342\377\2\330\341" \ + "\340\377\230\260\253\377\205\223\254\247\377\1\311\325\323\377\267\333" \ + "\343\342\377\3\303\316\314\377\217\240\235\377]up\377\204Slg\377\3r\207" \ + "\203\377\246\265\262\377\324\335\334\377\203\333\343\342\377\3_vr\377" \ + "Slg\377\254\271\267\377\260\333\343\342\377\7\327\337\336\377\220\243" \ + "\237\377k\204\177\377u\216\211\377\205\235\230\377\235\263\257\377\323" \ + "\334\333\377\371\333\343\342\377\7\267\307\304\377\233\261\255\377~\227" \ + "\222\377q\212\205\377m\206\201\377\273\310\306\377\332\342\341\377\271" \ + "\333\343\342\377\4\330\340\337\377\256\274\271\377z\216\212\377Tmh\377" \ + "\203Slg\377\7Yql\377\206\231\225\377\273\307\305\377\333\343\342\377" \ + "_vr\377Slg\377\254\271\267\377\261\333\343\342\377\1x\214\210\377\202" \ + "Slg\377\1~\221\216\377\374\333\343\342\377\5\325\335\334\377axt\377S" \ + "lg\377Tmh\377\251\270\265\377\275\333\343\342\377\3\315\326\325\377\232" \ + "\252\247\377f}x\377\204Slg\377\4g}y\377Woj\377Slg\377\254\271\267\377" \ + "\261\333\343\342\377\1}\220\215\377\202Slg\377\1\240\257\254\377\375" \ + "\333\343\342\377\1f}x\377\202Slg\377\1\222\243\240\377\300\333\343\342" \ + "\377\3\272\306\304\377\206\230\225\377Xql\377\204Slg\377\1\254\271\267" \ + "\377\261\333\343\342\377\4\216\237\234\377Slg\377_wr\377\326\336\335" \ + "\377\375\333\343\342\377\4r\207\203\377Slg\377axt\377\317\330\327\377" \ + "\302\333\343\342\377\3\324\334\333\377\246\264\262\377q\207\202\377\202" \ + "Slg\377\1\254\271\267\377\261\333\343\342\377\3\237\257\254\377Slg\377" \ + "\240\257\254\377\376\333\343\342\377\3\216\240\235\377Wpk\377\246\264" \ + "\262\377\306\333\343\342\377\3_vr\377Slg\377\254\271\267\377\261\333" \ + "\343\342\377\3\260\276\273\377axt\377\326\337\336\377\376\333\343\342" \ + "\377\2\265\302\277\377v\213\207\377\307\333\343\342\377\3_vr\377Slg\377" \ + "\254\271\267\377\261\333\343\342\377\2\302\315\313\377\242\261\256\377" \ + "\377\333\343\342\377\311\333\343\342\377\3z\216\212\377p\205\201\377" \ + "\266\303\301\377\261\333\343\342\377\2\326\336\335\377\327\340\337\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\344\333\343\342\377") + + diff --git a/packages/psplash/files/angstrom/angstrom-psplash-vga-img.h b/packages/psplash/files/angstrom/angstrom-psplash-vga-img.h new file mode 100644 index 0000000000..5eeef94919 --- /dev/null +++ b/packages/psplash/files/angstrom/angstrom-psplash-vga-img.h @@ -0,0 +1,2109 @@ +/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ + +#define HAND_IMG_ROWSTRIDE (1428) +#define HAND_IMG_WIDTH (357) +#define HAND_IMG_HEIGHT (376) +#define HAND_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */ +#define HAND_IMG_RLE_PIXEL_DATA ((uint8*) \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\202\333" \ + "\343\342\377\1\320\331\330\377\202\311\324\322\377\1\324\334\333\377" \ + "\377\333\343\342\377\251\333\343\342\377\4\323\335\333\377\311\325\323" \ + "\377\322\334\332\377\332\342\341\377\377\333\343\342\377\266\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342" \ + "\377\244\333\343\342\377\5\326\337\336\377\273\313\310\377\257\301\276" \ + "\377\243\270\264\377\227\257\252\377\203\223\254\247\377\5\226\256\251" \ + "\377\242\267\263\377\256\300\275\377\272\312\307\377\323\335\333\377" \ + "\377\333\343\342\377\262\333\343\342\377\1\202\225\221\377\202Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315\330" \ + "\326\377\213\223\254\247\377\1\304\321\317\377\377\333\343\342\377\262" \ + "\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333" \ + "\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223\254\247\377" \ + "\7\241\267\263\377\270\310\305\377\312\326\324\377\330\341\337\377\314" \ + "\327\325\377\272\312\307\377\244\271\265\377\202\223\254\247\377\1\304" \ + "\321\317\377\377\333\343\342\377\262\333\343\342\377\1\202\225\221\377" \ + "\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377" \ + "\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377" \ + "\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377" \ + "\333\343\342\377\236\333\343\342\377\4\316\327\326\377\275\311\307\377" \ + "\266\302\300\377\256\274\271\377\220\254\271\267\377\1q\207\202\377\202" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315" \ + "\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377" \ + "\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343" \ + "\342\377\232\333\343\342\377\4\324\335\334\377\250\266\264\377y\215\211" \ + "\377]up\377\227Slg\377\1\243\262\257\377\377\333\343\342\377\244\333" \ + "\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377" \ + "\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321" \ + "\317\377\377\333\343\342\377\230\333\343\342\377\3\332\342\341\377\246" \ + "\265\262\377\\to\377\232Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\244\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342" \ + "\340\377\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1" \ + "\304\321\317\377\377\333\343\342\377\227\333\343\342\377\2\331\342\341" \ + "\377\204\227\223\377\234Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\244\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342" \ + "\340\377\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1" \ + "\304\321\317\377\377\333\343\342\377\227\333\343\342\377\1\216\237\234" \ + "\377\235Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342" \ + "\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377" \ + "\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377" \ + "\377\333\343\342\377\226\333\343\342\377\2\303\316\314\377Tmh\377\235" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315" \ + "\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377" \ + "\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343" \ + "\342\377\226\333\343\342\377\1\211\234\230\377\205Slg\377\7Tmh\377|\217" \ + "\214\377\252\270\266\377\271\305\303\377\304\317\315\377\320\331\330" \ + "\377\331\342\341\377\217\333\343\342\377\1\202\225\221\377\202Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315\330" \ + "\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377\1" \ + "\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342" \ + "\377\226\333\343\342\377\1czu\377\204Slg\377\2~\222\216\377\314\325\324" \ + "\377\225\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223\254" \ + "\247\377\1\331\342\340\377\205\377\377\377\377\1\343\352\350\377\202" \ + "\223\254\247\377\1\304\321\317\377\377\333\343\342\377\225\333\343\342" \ + "\377\1\322\333\332\377\204Slg\377\2n\203\177\377\326\336\335\377\226" \ + "\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333" \ + "\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223\254\247\377" \ + "\1\331\342\340\377\205\377\377\377\377\1\343\352\350\377\202\223\254" \ + "\247\377\1\304\321\317\377\377\333\343\342\377\225\333\343\342\377\1" \ + "\306\321\317\377\204Slg\377\1\277\313\311\377\227\333\343\342\377\1\202" \ + "\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333" \ + "\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377" \ + "\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321" \ + "\317\377\377\333\343\342\377\225\333\343\342\377\1\304\317\315\377\203" \ + "Slg\377\2Uni\377\330\340\337\377\227\333\343\342\377\1\244\262\260\377" \ + "\202\205\230\224\377\1\267\304\302\377\377\333\343\342\377\244\333\343" \ + "\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205" \ + "\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317" \ + "\377\377\333\343\342\377\225\333\343\342\377\1\326\336\335\377\203Sl" \ + "g\377\1k\201}\377\377\333\343\342\377\300\333\343\342\377\1\315\330\326" \ + "\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377\1\343" \ + "\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342\377" \ + "\226\333\343\342\377\1byt\377\202Slg\377\1q\207\202\377\377\333\343\342" \ + "\377\300\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331" \ + "\342\340\377\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377" \ + "\1\304\321\317\377\377\333\343\342\377\226\333\343\342\377\1\204\226" \ + "\223\377\202Slg\377\1czu\377\377\333\343\342\377\300\333\343\342\377" \ + "\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377" \ + "\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377" \ + "\333\343\342\377\226\333\343\342\377\2\304\317\315\377Tlg\377\202Slg" \ + "\377\1\305\320\316\377\227\333\343\342\377\1\274\310\306\377\202\254" \ + "\271\267\377\1\307\322\320\377\377\333\343\342\377\244\333\343\342\377" \ + "\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377" \ + "\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377" \ + "\333\343\342\377\227\333\343\342\377\1\201\224\220\377\202Slg\377\1\206" \ + "\231\225\377\227\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262" \ + "\257\377\377\333\343\342\377\244\333\343\342\377\1\315\330\326\377\202" \ + "\223\254\247\377\1\331\342\340\377\205\377\377\377\377\1\343\352\350" \ + "\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342\377\227\333" \ + "\343\342\377\2\323\334\332\377n\204\200\377\202Slg\377\1\247\266\263" \ + "\377\226\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223\254" \ + "\247\377\1\331\342\340\377\205\377\377\377\377\1\343\352\350\377\202" \ + "\223\254\247\377\1\304\321\317\377\377\333\343\342\377\230\333\343\342" \ + "\377\2\321\333\331\377l\201}\377\202Slg\377\2\220\242\236\377\323\334" \ + "\333\377\224\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257" \ + "\377\377\333\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223" \ + "\254\247\377\1\331\342\340\377\205\377\377\377\377\1\343\352\350\377" \ + "\202\223\254\247\377\1\304\321\317\377\377\333\343\342\377\231\333\343" \ + "\342\377\10\324\334\333\377\222\243\240\377Vni\377Slg\377]up\377\217" \ + "\240\235\377\273\307\305\377\326\336\335\377\221\333\343\342\377\1\202" \ + "\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333" \ + "\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377" \ + "\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321" \ + "\317\377\377\333\343\342\377\233\333\343\342\377\2\310\322\321\377k\201" \ + "}\377\204Slg\377\3d{v\377p\206\202\377w\214\210\377\216}\220\215\377" \ + "\1ayt\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343" \ + "\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205" \ + "\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317" \ + "\377\377\333\343\342\377\231\333\343\342\377\3\327\340\337\377\252\270" \ + "\266\377p\205\201\377\231Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\244\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342" \ + "\340\377\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1" \ + "\304\321\317\377\377\333\343\342\377\230\333\343\342\377\2\321\333\331" \ + "\377p\206\202\377\233Slg\377\1\243\262\257\377\377\333\343\342\377\244" \ + "\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340" \ + "\377\205\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304" \ + "\321\317\377\377\333\343\342\377\227\333\343\342\377\2\315\327\325\377" \ + "j\200|\377\234Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343" \ + "\342\377\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205" \ + "\377\377\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317" \ + "\377\377\333\343\342\377\227\333\343\342\377\1|\220\214\377\235Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315\330" \ + "\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377\1" \ + "\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342" \ + "\377\226\333\343\342\377\1\301\314\312\377\207Slg\377\4Xql\377e|w\377" \ + "q\206\202\377}\220\215\377\220\205\230\224\377\1d{v\377\202Slg\377\1" \ + "\243\262\257\377\377\333\343\342\377\244\333\343\342\377\1\315\330\326" \ + "\377\202\223\254\247\377\1\331\342\340\377\205\377\377\377\377\1\343" \ + "\352\350\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342\377" \ + "\226\333\343\342\377\1\200\224\220\377\204Slg\377\4Tlg\377{\217\213\377" \ + "\263\300\276\377\331\342\341\377\223\333\343\342\377\1\202\225\221\377" \ + "\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342\377" \ + "\1\315\330\326\377\202\223\254\247\377\1\331\342\340\377\205\377\377" \ + "\377\377\1\343\352\350\377\202\223\254\247\377\1\304\321\317\377\377" \ + "\333\343\342\377\226\333\343\342\377\1czu\377\204Slg\377\1\256\274\271" \ + "\377\226\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\244\333\343\342\377\1\315\330\326\377\202\223\254" \ + "\247\377\1\331\342\340\377\205\377\377\377\377\1\343\352\350\377\202" \ + "\223\254\247\377\1\304\321\317\377\377\333\343\342\377\225\333\343\342" \ + "\377\2\327\340\337\377Tlg\377\203Slg\377\1\223\244\240\377\227\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342" \ + "\377\244\333\343\342\377\1\315\330\327\377\202\223\254\247\377\1\326" \ + "\337\335\377\205\377\377\377\377\1\340\347\346\377\202\223\254\247\377" \ + "\1\304\321\317\377\377\333\343\342\377\225\333\343\342\377\1\306\321" \ + "\317\377\204Slg\377\1\314\325\324\377\227\333\343\342\377\1\202\225\221" \ + "\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\244\333\343\342" \ + "\377\4\327\340\337\377\224\255\250\377\223\254\247\377\274\313\310\377" \ + "\205\377\377\377\377\1\307\324\321\377\202\223\254\247\377\1\322\334" \ + "\332\377\377\333\343\342\377\225\333\343\342\377\1\310\323\321\377\203" \ + "Slg\377\1\\to\377\230\333\343\342\377\1\305\317\316\377\202\270\305\303" \ + "\377\1\315\326\325\377\377\333\343\342\377\245\333\343\342\377\3\244" \ + "\271\265\377\223\254\247\377\237\265\261\377\205\377\377\377\377\3\252" \ + "\275\271\377\223\254\247\377\235\263\257\377\377\333\343\342\377\226" \ + "\333\343\342\377\2\331\341\340\377Vni\377\202Slg\377\1r\207\203\377\377" \ + "\333\343\342\377\301\333\343\342\377\1\256\300\275\377\202\223\254\247" \ + "\377\1\356\361\361\377\203\377\377\377\377\5\370\372\371\377\224\254" \ + "\250\377\223\254\247\377\250\274\270\377\332\342\341\377\377\333\343" \ + "\342\377\226\333\343\342\377\1k\201|\377\202Slg\377\1m\202~\377\377\333" \ + "\343\342\377\275\333\343\342\377\5\332\342\341\377\301\317\315\377\237" \ + "\265\261\377}\233\225\377v\226\220\377\202\223\254\247\377\1\320\333" \ + "\331\377\203\377\377\377\377\1\335\344\343\377\202\223\254\247\377\202" \ + "z\231\223\377\3\233\263\256\377\275\314\311\377\330\341\340\377\377\333" \ + "\343\342\377\223\333\343\342\377\1\242\261\256\377\202Slg\377\2[sn\377" \ + "\330\340\337\377\377\333\343\342\377\272\333\343\342\377\3\327\340\337" \ + "\377\251\275\271\377x\230\221\377\204o\221\212\377\3\220\252\245\377" \ + "\223\254\247\377\263\305\301\377\203\377\377\377\377\4\300\316\313\377" \ + "\223\254\247\377\222\253\246\377p\222\213\377\203o\221\212\377\3t\225" \ + "\216\377\241\267\263\377\324\336\334\377\377\333\343\342\377\221\333" \ + "\343\342\377\2\327\340\337\377ayt\377\202Slg\377\1\263\300\275\377\227" \ + "\333\343\342\377\1\233\253\250\377\202x\215\211\377\1\262\277\275\377" \ + "\377\333\343\342\377\235\333\343\342\377\3\332\342\341\377\261\303\300" \ + "\377z\232\223\377\206o\221\212\377\4\207\243\235\377\223\254\247\377" \ + "\230\257\253\377\374\375\375\377\202\377\377\377\377\3\243\270\264\377" \ + "\223\254\247\377\212\245\240\377\206o\221\212\377\3w\227\220\377\253" \ + "\277\273\377\330\341\337\377\377\333\343\342\377\220\333\343\342\377" \ + "\5\265\301\277\377Uni\377Slg\377h\177z\377\327\337\336\377\226\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342" \ + "\377\234\333\343\342\377\2\307\323\321\377\201\236\230\377\206o\221\212" \ + "\377\3\205\241\233\377\246\273\267\377\260\302\277\377\202\223\254\247" \ + "\377\1\244\271\265\377\202\246\273\267\377\202\223\254\247\377\3\254" \ + "\277\273\377\252\276\272\377\210\244\236\377\206o\221\212\377\2|\233" \ + "\225\377\300\317\314\377\377\333\343\342\377\220\333\343\342\377\5\255" \ + "\273\271\377Tlg\377Slg\377y\215\211\377\324\335\334\377\225\333\343\342" \ + "\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\233\333\343\342\377\2\267\310\305\377s\224\215\377\204o\221\212\377" \ + "\3y\230\222\377\253\276\273\377\317\331\330\377\202\333\343\342\377\1" \ + "\321\333\331\377\207\223\254\247\377\1\312\326\324\377\202\333\343\342" \ + "\377\3\321\333\332\377\257\302\276\377|\233\225\377\204o\221\212\377" \ + "\2q\222\213\377\260\302\277\377\377\333\343\342\377\220\333\343\342\377" \ + "\6\261\277\274\377axt\377Slg\377d{v\377\253\271\267\377\331\341\340\377" \ + "\223\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377" \ + "\333\343\342\377\231\333\343\342\377\2\332\342\341\377\245\272\266\377" \ + "\204o\221\212\377\3t\224\216\377\245\272\266\377\326\337\336\377\205" \ + "\333\343\342\377\1\253\276\273\377\205\247\273\267\377\2\250\274\270" \ + "\377\331\342\341\377\204\333\343\342\377\3\330\341\337\377\253\277\273" \ + "\377w\227\220\377\204o\221\212\377\2\234\263\257\377\331\341\340\377" \ + "\377\333\343\342\377\213\333\343\342\377\1\330\340\337\377\203\322\333" \ + "\332\377\2\313\325\324\377\205\230\224\377\202Slg\377\6]up\377\207\232" \ + "\226\377\244\262\260\377\271\306\304\377\306\320\317\377\315\326\325" \ + "\377\216\322\333\332\377\1\177\223\217\377\202Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\231\333\343\342\377\1\231\261\254\377\204o\221\212" \ + "\377\2\213\246\241\377\321\333\332\377\225\333\343\342\377\2\325\336" \ + "\335\377\225\255\251\377\204o\221\212\377\2\216\251\243\377\331\342\340" \ + "\377\377\333\343\342\377\212\333\343\342\377\1\250\267\264\377\236Sl" \ + "g\377\1\243\262\257\377\377\333\343\342\377\230\333\343\342\377\1\253" \ + "\276\273\377\204o\221\212\377\2\234\263\256\377\331\341\340\377\230\333" \ + "\343\342\377\1\246\273\267\377\204o\221\212\377\1\236\264\260\377\377" \ + "\333\343\342\377\212\333\343\342\377\1\250\267\264\377\236Slg\377\1\243" \ + "\262\257\377\377\333\343\342\377\227\333\343\342\377\2\275\314\311\377" \ + "p\221\213\377\202o\221\212\377\2p\222\213\377\256\301\275\377\233\333" \ + "\343\342\377\2\270\310\305\377r\223\215\377\203o\221\212\377\1\261\303" \ + "\300\377\377\333\343\342\377\211\333\343\342\377\1\250\267\264\377\236" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\226\333\343\342\377\2\312" \ + "\326\324\377u\226\217\377\203o\221\212\377\1\256\300\275\377\235\333" \ + "\343\342\377\1\266\307\303\377\203o\221\212\377\2q\222\214\377\302\320" \ + "\315\377\377\333\343\342\377\210\333\343\342\377\1\250\267\264\377\236" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\226\333\343\342\377\1\210" \ + "\244\236\377\203o\221\212\377\1\232\262\255\377\237\333\343\342\377\1" \ + "\243\271\265\377\203o\221\212\377\2\177\235\227\377\331\341\340\377\377" \ + "\333\343\342\377\207\333\343\342\377\1\250\267\264\377\236Slg\377\1\243" \ + "\262\257\377\377\333\343\342\377\225\333\343\342\377\1\272\312\307\377" \ + "\203o\221\212\377\2\211\244\237\377\330\341\340\377\237\333\343\342\377" \ + "\2\332\342\341\377\221\253\245\377\203o\221\212\377\1\256\301\276\377" \ + "\377\333\343\342\377\207\333\343\342\377\1\250\267\264\377\202Slg\377" \ + "\1u\211\205\377\230\270\305\303\377\1v\213\207\377\202Slg\377\1\243\262" \ + "\257\377\377\333\343\342\377\224\333\343\342\377\2\332\342\341\377\201" \ + "\236\230\377\202o\221\212\377\2p\222\213\377\312\326\324\377\241\333" \ + "\343\342\377\2\321\333\332\377t\225\216\377\202o\221\212\377\2x\230\221" \ + "\377\325\337\335\377\377\333\343\342\377\206\333\343\342\377\1\250\267" \ + "\264\377\202Slg\377\1\200\224\220\377\230\333\343\342\377\1\202\225\221" \ + "\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\224\333\343\342" \ + "\377\1\262\304\300\377\203o\221\212\377\1\232\261\255\377\243\333\343" \ + "\342\377\1\246\272\266\377\203o\221\212\377\1\244\271\265\377\377\333" \ + "\343\342\377\206\333\343\342\377\1\250\267\264\377\202Slg\377\1\200\224" \ + "\220\377\230\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257" \ + "\377\377\333\343\342\377\224\333\343\342\377\1\202\237\231\377\202o\221" \ + "\212\377\2r\223\215\377\317\332\331\377\243\333\343\342\377\2\326\337" \ + "\336\377y\230\222\377\202o\221\212\377\2x\230\221\377\332\342\341\377" \ + "\377\333\343\342\377\205\333\343\342\377\1\250\267\264\377\202Slg\377" \ + "\1\200\224\220\377\230\333\343\342\377\1\202\225\221\377\202Slg\377\1" \ + "\243\262\257\377\377\333\343\342\377\223\333\343\342\377\1\315\330\326" \ + "\377\203o\221\212\377\1\236\264\260\377\245\333\343\342\377\1\253\276" \ + "\273\377\203o\221\212\377\1\302\320\315\377\377\333\343\342\377\205\333" \ + "\343\342\377\1\250\267\264\377\202Slg\377\1\200\224\220\377\230\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342" \ + "\377\223\333\343\342\377\1\253\277\273\377\203o\221\212\377\1\302\320" \ + "\315\377\245\333\343\342\377\1\317\331\330\377\203o\221\212\377\1\237" \ + "\265\261\377\377\333\343\342\377\205\333\343\342\377\1\311\324\322\377" \ + "\202\254\271\267\377\1\274\307\306\377\230\333\343\342\377\1\325\336" \ + "\335\377\202\322\333\332\377\1\327\340\337\377\377\333\343\342\377\223" \ + "\333\343\342\377\1\212\246\240\377\202o\221\212\377\2w\227\221\377\332" \ + "\342\341\377\246\333\343\342\377\1\205\241\233\377\202o\221\212\377\1" \ + "}\234\226\377\377\333\343\342\377\377\333\343\342\377\267\333\343\342" \ + "\377\2\325\336\335\377p\222\213\377\202o\221\212\377\1\230\260\253\377" \ + "\247\333\343\342\377\1\246\273\267\377\203o\221\212\377\1\313\327\325" \ + "\377\377\333\343\342\377\377\333\343\342\377\266\333\343\342\377\1\310" \ + "\324\322\377\203o\221\212\377\1\264\305\302\377\247\333\343\342\377\1" \ + "\275\314\311\377\203o\221\212\377\1\275\314\312\377\377\333\343\342\377" \ + "\377\333\343\342\377\266\333\343\342\377\1\275\314\312\377\203o\221\212" \ + "\377\1\277\316\313\377\247\333\343\342\377\1\310\325\323\377\203o\221" \ + "\212\377\1\262\304\300\377\377\333\343\342\377\377\333\343\342\377\266" \ + "\333\343\342\377\1\263\305\301\377\203o\221\212\377\1\312\326\324\377" \ + "\247\333\343\342\377\1\323\335\334\377\203o\221\212\377\1\247\273\267" \ + "\377\377\333\343\342\377\217\333\343\342\377\4\330\340\337\377\300\313" \ + "\311\377\262\277\275\377\247\266\263\377\202\234\254\251\377\4\247\265" \ + "\263\377\262\277\275\377\277\313\311\377\330\340\337\377\377\333\343" \ + "\342\377\235\333\343\342\377\1\251\275\271\377\203o\221\212\377\1\325" \ + "\336\335\377\250\333\343\342\377\1r\223\215\377\202o\221\212\377\1\233" \ + "\263\256\377\377\333\343\342\377\214\333\343\342\377\4\316\330\326\377" \ + "\231\251\246\377v\213\207\377Xpk\377\210Slg\377\4Xpk\377v\212\206\377" \ + "\230\251\246\377\316\327\326\377\377\333\343\342\377\232\333\343\342" \ + "\377\1\242\267\263\377\203o\221\212\377\1\332\342\341\377\250\333\343" \ + "\342\377\1y\231\222\377\202o\221\212\377\1\225\256\251\377\377\333\343" \ + "\342\377\212\333\343\342\377\3\310\323\321\377\210\233\227\377Voj\377" \ + "\216Slg\377\3Voj\377\210\232\227\377\307\322\320\377\377\333\343\342" \ + "\377\230\333\343\342\377\1\253\276\273\377\203o\221\212\377\1\322\334" \ + "\333\377\247\333\343\342\377\2\332\342\341\377p\222\213\377\202o\221" \ + "\212\377\1\236\265\260\377\377\333\343\342\377\211\333\343\342\377\2" \ + "\251\270\265\377Xql\377\222Slg\377\2Xpk\377\246\265\262\377\377\333\343" \ + "\342\377\227\333\343\342\377\1\266\307\303\377\203o\221\212\377\1\307" \ + "\324\322\377\247\333\343\342\377\1\320\333\331\377\203o\221\212\377\1" \ + "\251\275\271\377\377\333\343\342\377\207\333\343\342\377\2\331\342\341" \ + "\377\210\233\227\377\226Slg\377\2\204\227\223\377\330\341\340\377\377" \ + "\333\343\342\377\225\333\343\342\377\1\300\317\314\377\203o\221\212\377" \ + "\1\274\314\311\377\247\333\343\342\377\1\305\322\320\377\203o\221\212" \ + "\377\1\265\306\303\377\377\333\343\342\377\207\333\343\342\377\1\213" \ + "\235\231\377\230Slg\377\1\206\231\225\377\377\333\343\342\377\225\333" \ + "\343\342\377\1\313\327\325\377\203o\221\212\377\1\256\301\276\377\247" \ + "\333\343\342\377\1\271\311\307\377\203o\221\212\377\1\300\317\314\377" \ + "\366\333\343\342\377\5\322\333\332\377\240\260\255\377\220\241\236\377" \ + "\246\265\262\377\330\340\337\377\212\333\343\342\377\1\231\251\246\377" \ + "\211Slg\377\3[sn\377g}y\377l\202~\377\202q\207\202\377\3l\202~\377g}" \ + "y\377[sn\377\211Slg\377\1\227\247\244\377\377\333\343\342\377\224\333" \ + "\343\342\377\2\330\341\337\377t\225\216\377\202o\221\212\377\1\220\252" \ + "\245\377\247\333\343\342\377\1\235\264\257\377\203o\221\212\377\1\320" \ + "\333\331\377\365\333\343\342\377\2\310\323\321\377ayt\377\203Slg\377" \ + "\2m\203\177\377\326\336\335\377\210\333\343\342\377\2\306\321\317\377" \ + "Umh\377\205Slg\377\4o\204\200\377\230\250\245\377\272\306\304\377\317" \ + "\330\327\377\210\333\343\342\377\4\317\330\327\377\272\306\304\377\227" \ + "\250\245\377o\204\200\377\205Slg\377\2Tmh\377\305\317\316\377\377\333" \ + "\343\342\377\224\333\343\342\377\1\223\254\247\377\202o\221\212\377\2" \ + "s\224\215\377\327\340\337\377\246\333\343\342\377\1|\232\224\377\202" \ + "o\221\212\377\1\206\242\234\377\366\333\343\342\377\1y\215\211\377\205" \ + "Slg\377\1\233\253\250\377\210\333\343\342\377\1~\222\216\377\204Slg\377" \ + "\2{\217\213\377\301\314\312\377\220\333\343\342\377\2\303\316\314\377" \ + "~\222\216\377\204Slg\377\1}\220\215\377\377\333\343\342\377\224\333\343" \ + "\342\377\1\264\305\302\377\203o\221\212\377\1\273\312\310\377\245\333" \ + "\343\342\377\1\306\323\321\377\203o\221\212\377\1\250\274\270\377\365" \ + "\333\343\342\377\2\331\341\340\377Voj\377\205Slg\377\1\177\222\217\377" \ + "\207\333\343\342\377\1\305\317\316\377\203Slg\377\2Voj\377\247\266\263" \ + "\377\224\333\343\342\377\2\253\271\267\377Woj\377\203Slg\377\1\303\316" \ + "\314\377\377\333\343\342\377\223\333\343\342\377\2\323\335\334\377p\222" \ + "\213\377\202o\221\212\377\1\225\255\251\377\245\333\343\342\377\1\237" \ + "\265\261\377\203o\221\212\377\1\312\326\324\377\366\333\343\342\377\1" \ + "axt\377\205Slg\377\1\210\233\227\377\207\333\343\342\377\1\235\254\252" \ + "\377\203Slg\377\1\260\276\273\377\226\333\343\342\377\1\263\300\276\377" \ + "\203Slg\377\1\231\251\246\377\377\333\343\342\377\224\333\343\342\377" \ + "\1\213\246\241\377\203o\221\212\377\1\307\323\321\377\243\333\343\342" \ + "\377\2\316\331\327\377r\223\214\377\202o\221\212\377\1\200\236\230\377" \ + "\367\333\343\342\377\1\232\252\247\377\205Slg\377\1\271\306\304\377\207" \ + "\333\343\342\377\1v\213\207\377\202Slg\377\1\204\227\223\377\230\333" \ + "\343\342\377\1\212\234\231\377\202Slg\377\1q\206\202\377\377\333\343" \ + "\342\377\224\333\343\342\377\1\300\316\314\377\203o\221\212\377\1\215" \ + "\247\242\377\207\333\343\342\377\4\327\337\336\377\236\264\260\377\270" \ + "\310\305\377\324\336\334\377\215\333\343\342\377\4\326\337\336\377\273" \ + "\312\310\377\236\264\260\377\322\334\332\377\207\333\343\342\377\1\227" \ + "\257\252\377\203o\221\212\377\1\263\305\301\377\367\333\343\342\377\6" \ + "\331\341\340\377\225\245\242\377Voj\377Slg\377^uq\377\251\267\265\377" \ + "\210\333\343\342\377\1Xql\377\202Slg\377\1\301\314\312\377\230\333\343" \ + "\342\377\1\305\317\316\377\202Slg\377\2Tmh\377\331\341\340\377\377\333" \ + "\343\342\377\224\333\343\342\377\1\215\250\243\377\203o\221\212\377\1" \ + "\276\315\312\377\206\333\343\342\377\1\274\313\311\377\202\223\254\247" \ + "\377\3\224\255\250\377\254\277\274\377\313\326\325\377\211\333\343\342" \ + "\377\3\316\331\327\377\257\302\276\377\226\256\251\377\202\223\254\247" \ + "\377\1\265\306\303\377\206\333\343\342\377\1\307\324\322\377\203o\221" \ + "\212\377\2\202\237\231\377\332\342\341\377\371\333\343\342\377\2\330" \ + "\340\337\377\315\326\325\377\211\333\343\342\377\1\325\335\334\377\202" \ + "Slg\377\1e|w\377\232\333\343\342\377\1g~y\377\202Slg\377\1\316\330\326" \ + "\377\377\333\343\342\377\224\333\343\342\377\1\306\323\321\377\203o\221" \ + "\212\377\2z\232\223\377\321\333\332\377\205\333\343\342\377\1\236\264" \ + "\260\377\205\223\254\247\377\3\241\267\262\377\277\316\313\377\330\341" \ + "\340\377\203\333\343\342\377\3\331\341\340\377\302\320\315\377\244\271" \ + "\265\377\205\223\254\247\377\2\231\260\254\377\331\341\340\377\204\333" \ + "\343\342\377\2\325\336\335\377\200\236\230\377\203o\221\212\377\1\274" \ + "\313\311\377\377\333\343\342\377\206\333\343\342\377\1\311\323\322\377" \ + "\202Slg\377\1w\213\207\377\232\333\343\342\377\1y\215\211\377\202Slg" \ + "\377\1\303\316\314\377\377\333\343\342\377\225\333\343\342\377\1\226" \ + "\256\252\377\203o\221\212\377\2\207\243\236\377\330\341\337\377\203\333" \ + "\343\342\377\1\310\324\322\377\202\223\254\247\377\2\271\311\306\377" \ + "\262\304\300\377\204\223\254\247\377\5\230\260\253\377\275\314\312\377" \ + "\333\343\342\377\304\321\317\377\232\261\254\377\204\223\254\247\377" \ + "\2\255\300\274\377\276\315\312\377\202\223\254\247\377\1\301\317\314" \ + "\377\203\333\343\342\377\2\332\342\341\377\216\250\243\377\203o\221\212" \ + "\377\1\213\246\241\377\377\333\343\342\377\207\333\343\342\377\1\301" \ + "\314\312\377\202Slg\377\1\200\224\220\377\232\333\343\342\377\1\203\226" \ + "\222\377\202Slg\377\1\273\307\305\377\377\333\343\342\377\225\333\343" \ + "\342\377\2\325\337\335\377\201\237\231\377\203o\221\212\377\1\230\260" \ + "\253\377\203\333\343\342\377\10\251\275\271\377\223\254\247\377\225\255" \ + "\251\377\365\367\367\377\377\377\377\377\360\363\362\377\302\320\315" \ + "\377\231\261\254\377\202\223\254\247\377\3\236\264\260\377\333\343\342" \ + "\377\247\273\267\377\202\223\254\247\377\10\227\257\252\377\275\314\311" \ + "\377\353\360\357\377\377\377\377\377\373\374\373\377\232\261\254\377" \ + "\223\254\247\377\242\270\263\377\203\333\343\342\377\1\240\266\262\377" \ + "\203o\221\212\377\2z\231\222\377\317\332\331\377\377\333\343\342\377" \ + "\207\333\343\342\377\1\313\325\324\377\202Slg\377\1t\211\205\377\232" \ + "\333\343\342\377\1v\213\207\377\202Slg\377\1\305\317\316\377\377\333" \ + "\343\342\377\226\333\343\342\377\2\315\330\326\377w\227\220\377\203o" \ + "\221\212\377\3\223\254\250\377\327\340\336\377\322\334\333\377\202\223" \ + "\254\247\377\1\271\311\306\377\204\377\377\377\377\2\372\373\373\377" \ + "\271\311\306\377\202\223\254\247\377\5\323\335\333\377\226\256\251\377" \ + "\223\254\247\377\257\301\276\377\367\371\371\377\204\377\377\377\377" \ + "\1\303\321\316\377\202\223\254\247\377\3\314\330\326\377\331\342\340" \ + "\377\235\264\257\377\203o\221\212\377\2r\223\214\377\304\321\317\377" \ + "\374\333\343\342\377\3\303\316\314\377\263\300\276\377\313\325\324\377" \ + "\210\333\343\342\377\1\327\337\336\377\202Slg\377\2`ws\377\332\342\341" \ + "\377\231\333\343\342\377\1ayt\377\202Slg\377\1\321\332\331\377\377\333" \ + "\343\342\377\227\333\343\342\377\2\277\316\313\377p\222\213\377\203o" \ + "\221\212\377\2\205\241\233\377\257\301\276\377\202\223\254\247\377\1" \ + "\346\354\353\377\205\377\377\377\377\1\315\330\326\377\202\223\253\246" \ + "\377\4\225\255\250\377\222\253\246\377\223\254\247\377\300\316\313\377" \ + "\205\377\377\377\377\1\360\363\362\377\202\223\254\247\377\2\253\277" \ + "\273\377\215\250\242\377\204o\221\212\377\1\264\305\302\377\373\333\343" \ + "\342\377\2\325\336\335\377}\221\215\377\202Slg\377\2Tlg\377\220\242\236" \ + "\377\210\333\343\342\377\1\\to\377\202Slg\377\1\267\304\302\377\230\333" \ + "\343\342\377\1\274\307\306\377\202Slg\377\2Wpk\377\332\342\341\377\377" \ + "\333\343\342\377\230\333\343\342\377\2\261\303\300\377p\222\213\377\203" \ + "o\221\212\377\3\220\252\245\377\223\254\247\377\247\273\267\377\204\377" \ + "\377\377\377\3\372\373\373\377\300\317\314\377\222\253\246\377\206\223" \ + "\254\247\377\2\271\311\306\377\367\371\371\377\204\377\377\377\377\4" \ + "\261\303\300\377\223\254\247\377\222\253\246\377q\222\214\377\203o\221" \ + "\212\377\1\247\274\270\377\374\333\343\342\377\1\213\235\232\377\205" \ + "Slg\377\1\254\271\267\377\207\333\343\342\377\1~\221\216\377\202Slg\377" \ + "\2v\212\206\377\332\342\341\377\227\333\343\342\377\1y\216\212\377\202" \ + "Slg\377\1z\216\212\377\377\333\343\342\377\232\333\343\342\377\4\276" \ + "\315\312\377v\226\220\377o\221\212\377{\232\224\377\202\223\254\247\377" \ + "\1\325\337\335\377\203\377\377\377\377\15\376\376\376\377\255\300\274" \ + "\377\223\254\247\377\230\260\253\377\315\331\326\377\353\360\357\377" \ + "\374\375\375\377\356\362\361\377\323\335\333\377\234\263\256\377\223" \ + "\254\247\377\245\272\265\377\374\374\374\377\203\377\377\377\377\1\337" \ + "\346\345\377\202\223\254\247\377\4\177\235\227\377o\221\212\377s\224" \ + "\215\377\267\307\305\377\374\333\343\342\377\2\332\342\341\377\\so\377" \ + "\205Slg\377\1\204\227\223\377\207\333\343\342\377\1\244\263\260\377\203" \ + "Slg\377\1\234\253\251\377\226\333\343\342\377\1\233\253\250\377\203S" \ + "lg\377\1\242\261\256\377\377\333\343\342\377\233\333\343\342\377\6\313" \ + "\327\325\377\200\236\230\377\213\246\240\377\223\254\247\377\232\261" \ + "\255\377\373\374\373\377\203\377\377\377\377\4\320\333\330\377\223\254" \ + "\247\377\244\271\264\377\361\364\364\377\205\377\377\377\377\4\366\370" \ + "\370\377\254\277\273\377\223\254\247\377\304\321\317\377\203\377\377" \ + "\377\377\6\376\376\376\377\241\267\262\377\223\254\247\377\216\250\243" \ + "\377{\232\224\377\306\323\321\377\375\333\343\342\377\2\331\342\341\377" \ + "Yrm\377\205Slg\377\1\201\225\221\377\207\333\343\342\377\2\314\326\324" \ + "\377Uni\377\203Slg\377\2\221\242\237\377\331\341\340\377\222\333\343" \ + "\342\377\2\331\341\340\377\220\242\236\377\203Slg\377\2Uni\377\314\325" \ + "\324\377\377\333\343\342\377\234\333\343\342\377\1\307\324\322\377\202" \ + "\223\254\247\377\1\303\321\316\377\203\377\377\377\377\4\367\371\371" \ + "\377\227\257\252\377\225\255\250\377\351\356\355\377\207\377\377\377" \ + "\377\4\361\365\364\377\230\260\253\377\224\255\250\377\357\363\362\377" \ + "\203\377\377\377\377\1\315\331\326\377\202\223\254\247\377\1\276\315" \ + "\313\377\377\333\343\342\377\1\204\226\223\377\205Slg\377\1\245\264\261" \ + "\377\210\333\343\342\377\1\214\236\233\377\204Slg\377\3g}y\377\251\267" \ + "\265\377\327\337\336\377\216\333\343\342\377\3\325\336\335\377\246\265" \ + "\262\377e|w\377\204Slg\377\1\215\236\233\377\377\333\343\342\377\235" \ + "\333\343\342\377\1\256\300\275\377\202\223\254\247\377\1\360\363\363" \ + "\377\203\377\377\377\377\3\341\350\346\377\223\254\247\377\266\307\304" \ + "\377\211\377\377\377\377\3\300\317\314\377\223\254\247\377\326\340\336" \ + "\377\203\377\377\377\377\4\367\371\370\377\226\256\252\377\223\254\247" \ + "\377\247\273\267\377\377\333\343\342\377\2\320\332\330\377q\207\202\377" \ + "\203Slg\377\2\204\226\223\377\332\342\341\377\210\333\343\342\377\2\317" \ + "\331\327\377Yrm\377\205Slg\377\7Yql\377~\222\216\377\240\260\255\377" \ + "\265\302\300\377\312\324\323\377\326\336\335\377\332\342\341\377\202" \ + "\333\343\342\377\7\332\342\341\377\326\336\335\377\312\324\323\377\265" \ + "\302\300\377\240\260\255\377}\220\215\377Wpk\377\205Slg\377\2Yrm\377" \ + "\317\331\327\377\377\333\343\342\377\234\333\343\342\377\4\325\336\335" \ + "\377\225\255\250\377\223\254\247\377\262\304\300\377\204\377\377\377" \ + "\377\3\312\326\324\377\223\254\247\377\315\331\327\377\211\377\377\377" \ + "\377\3\330\341\337\377\223\254\247\377\300\317\314\377\204\377\377\377" \ + "\377\1\274\313\310\377\202\223\254\247\377\1\320\333\331\377\377\333" \ + "\343\342\377\4\331\342\341\377\272\306\304\377\251\270\265\377\300\313" \ + "\311\377\213\333\343\342\377\1\255\273\271\377\214Slg\377\202Xpk\377" \ + "\214Slg\377\1\256\273\271\377\377\333\343\342\377\235\333\343\342\377" \ + "\1\271\311\306\377\202\223\254\247\377\1\340\347\345\377\204\377\377" \ + "\377\377\3\302\320\316\377\223\254\247\377\325\337\335\377\211\377\377" \ + "\377\377\3\340\347\345\377\223\254\247\377\270\311\305\377\204\377\377" \ + "\377\377\1\352\357\356\377\202\223\254\247\377\1\263\304\301\377\377" \ + "\333\343\342\377\220\333\343\342\377\1\237\256\253\377\230Slg\377\1\236" \ + "\255\253\377\377\333\343\342\377\235\333\343\342\377\5\332\342\341\377" \ + "\234\263\256\377\223\254\247\377\241\267\263\377\376\376\376\377\204" \ + "\377\377\377\377\3\330\341\337\377\223\254\247\377\277\316\313\377\211" \ + "\377\377\377\377\3\311\326\323\377\223\254\247\377\316\331\327\377\205" \ + "\377\377\377\377\4\253\276\272\377\223\254\247\377\227\257\252\377\330" \ + "\340\337\377\377\333\343\342\377\220\333\343\342\377\2\236\256\253\377" \ + "Uni\377\224Slg\377\2Uni\377\236\255\253\377\377\333\343\342\377\236\333" \ + "\343\342\377\1\305\322\320\377\202\223\254\247\377\1\316\331\327\377" \ + "\205\377\377\377\377\4\356\362\362\377\223\254\247\377\237\265\261\377" \ + "\371\373\373\377\207\377\377\377\377\4\375\376\376\377\246\273\267\377" \ + "\223\254\247\377\344\352\351\377\205\377\377\377\377\1\330\341\337\377" \ + "\202\223\254\247\377\1\276\315\312\377\377\333\343\342\377\221\333\343" \ + "\342\377\2\276\312\310\377e{w\377\222Slg\377\2dzv\377\275\311\307\377" \ + "\377\333\343\342\377\237\333\343\342\377\4\247\273\267\377\223\254\247" \ + "\377\226\256\252\377\367\371\371\377\206\377\377\377\377\3\264\306\302" \ + "\377\223\254\247\377\274\314\310\377\207\377\377\377\377\4\310\325\322" \ + "\377\223\254\247\377\251\275\271\377\376\376\376\377\205\377\377\377" \ + "\377\4\374\375\374\377\234\263\256\377\223\254\247\377\240\266\262\377" \ + "\377\333\343\342\377\222\333\343\342\377\3\326\336\335\377\242\261\256" \ + "\377e|w\377\216Slg\377\3d{v\377\241\261\256\377\325\336\335\377\377\333" \ + "\343\342\377\237\333\343\342\377\1\320\333\331\377\202\223\254\247\377" \ + "\1\274\314\311\377\207\377\377\377\377\5\365\367\367\377\233\262\255" \ + "\377\223\254\247\377\262\304\301\377\364\367\366\377\203\377\377\377" \ + "\377\5\370\372\371\377\273\313\310\377\223\254\247\377\226\257\252\377" \ + "\356\362\361\377\207\377\377\377\377\1\307\324\321\377\202\223\254\247" \ + "\377\1\312\326\324\377\377\333\343\342\377\223\333\343\342\377\5\331" \ + "\341\340\377\263\300\275\377\220\241\236\377o\204\200\377Umh\377\206" \ + "Slg\377\5Umh\377n\204\200\377\217\241\235\377\262\277\275\377\331\341" \ + "\340\377\377\333\343\342\377\241\333\343\342\377\1\262\304\301\377\202" \ + "\223\254\247\377\1\352\357\356\377\210\377\377\377\377\13\345\353\352" \ + "\377\240\266\261\377\223\254\247\377\225\255\250\377\247\274\270\377" \ + "\271\311\306\377\252\276\272\377\226\257\252\377\223\254\247\377\234" \ + "\263\256\377\336\346\344\377\210\377\377\377\377\4\363\365\365\377\224" \ + "\254\250\377\223\254\247\377\254\277\273\377\377\333\343\342\377\227" \ + "\333\343\342\377\3\327\340\337\377\315\326\325\377\303\316\314\377\202" \ + "\271\306\304\377\3\303\316\314\377\315\326\325\377\327\340\337\377\377" \ + "\333\343\342\377\244\333\343\342\377\4\330\340\337\377\227\257\252\377" \ + "\223\254\247\377\253\276\273\377\212\377\377\377\377\3\371\372\372\377" \ + "\232\262\255\377\223\253\246\377\203\223\254\247\377\3\222\253\246\377" \ + "\226\256\252\377\364\366\365\377\212\377\377\377\377\4\265\306\303\377" \ + "\223\254\247\377\224\255\250\377\324\335\334\377\377\333\343\342\377" \ + "\377\333\343\342\377\302\333\343\342\377\1\276\315\312\377\202\223\254" \ + "\247\377\1\331\342\340\377\212\377\377\377\377\1\346\353\352\377\202" \ + "\223\254\247\377\6\260\302\276\377\305\322\320\377\266\307\304\377\223" \ + "\253\247\377\223\254\247\377\333\343\342\377\212\377\377\377\377\1\343" \ + "\351\350\377\202\223\254\247\377\1\267\310\305\377\377\333\343\342\377" \ + "\377\333\343\342\377\302\333\343\342\377\4\237\265\261\377\223\254\247" \ + "\377\234\263\256\377\374\375\374\377\212\377\377\377\377\1\270\310\305" \ + "\377\202\223\254\247\377\6\322\334\333\377\333\343\342\377\327\340\337" \ + "\377\227\257\252\377\223\254\247\377\256\300\275\377\213\377\377\377" \ + "\377\4\244\271\265\377\223\254\247\377\232\261\255\377\331\342\341\377" \ + "\377\333\343\342\377\211\333\343\342\377\1\235\255\252\377\207czu\377" \ + "\1\274\310\306\377\377\333\343\342\377\256\333\343\342\377\1\312\326" \ + "\324\377\202\223\254\247\377\1\307\324\321\377\212\377\377\377\377\4" \ + "\364\367\366\377\225\255\250\377\223\254\247\377\251\275\271\377\203" \ + "\333\343\342\377\1\262\303\300\377\202\223\254\247\377\1\354\361\360" \ + "\377\212\377\377\377\377\1\321\334\332\377\202\223\254\247\377\1\303" \ + "\320\316\377\377\333\343\342\377\211\333\343\342\377\1|\217\214\377\207" \ + "Slg\377\1\270\304\302\377\377\333\343\342\377\256\333\343\342\377\4\253" \ + "\276\273\377\223\254\247\377\224\255\250\377\363\366\365\377\212\377" \ + "\377\377\377\1\312\326\323\377\202\223\254\247\377\1\307\324\322\377" \ + "\203\333\343\342\377\1\320\332\331\377\202\223\254\247\377\1\277\316" \ + "\313\377\212\377\377\377\377\4\371\372\372\377\230\260\253\377\223\254" \ + "\247\377\244\271\265\377\377\333\343\342\377\211\333\343\342\377\1ax" \ + "t\377\207Slg\377\1\270\304\302\377\377\333\343\342\377\255\333\343\342" \ + "\377\4\324\335\334\377\224\255\250\377\223\254\247\377\266\307\303\377" \ + "\212\377\377\377\377\5\375\375\375\377\236\264\260\377\223\254\247\377" \ + "\236\264\260\377\332\342\341\377\204\333\343\342\377\4\246\273\267\377" \ + "\223\254\247\377\230\257\253\377\371\372\372\377\212\377\377\377\377" \ + "\1\300\316\313\377\202\223\254\247\377\1\316\331\330\377\377\333\343" \ + "\342\377\207\333\343\342\377\1\325\335\334\377\205Slg\377\4Yql\377\216" \ + "\237\234\377\251\270\265\377\323\334\332\377\377\333\343\342\377\255" \ + "\333\343\342\377\1\267\307\304\377\202\223\254\247\377\1\343\352\350" \ + "\377\212\377\377\377\377\1\333\343\342\377\202\223\254\247\377\1\274" \ + "\313\310\377\205\333\343\342\377\1\305\322\320\377\202\223\254\247\377" \ + "\1\320\333\331\377\212\377\377\377\377\1\355\361\360\377\202\223\254" \ + "\247\377\1\260\302\277\377\377\333\343\342\377\207\333\343\342\377\1" \ + "\313\325\324\377\204Slg\377\2i\200{\377\313\325\324\377\377\333\343\342" \ + "\377\257\333\343\342\377\4\331\342\341\377\232\261\255\377\223\254\247" \ + "\377\245\271\265\377\213\377\377\377\377\4\256\300\275\377\223\254\247" \ + "\377\226\256\251\377\327\337\336\377\205\333\343\342\377\4\332\342\341" \ + "\377\234\262\256\377\223\254\247\377\243\271\264\377\213\377\377\377" \ + "\377\4\256\301\275\377\223\254\247\377\226\256\251\377\327\337\336\377" \ + "\377\333\343\342\377\206\333\343\342\377\1\302\315\313\377\204Slg\377" \ + "\1\273\307\305\377\377\333\343\342\377\260\333\343\342\377\1\303\320" \ + "\316\377\202\223\254\247\377\1\322\334\332\377\212\377\377\377\377\1" \ + "\354\361\360\377\202\223\254\247\377\1\260\302\277\377\207\333\343\342" \ + "\377\1\271\311\306\377\202\223\254\247\377\1\342\350\347\377\212\377" \ + "\377\377\377\1\334\344\342\377\202\223\254\247\377\1\274\313\310\377" \ + "\377\333\343\342\377\206\333\343\342\377\1\307\322\320\377\203Slg\377" \ + "\1^uq\377\377\333\343\342\377\261\333\343\342\377\4\244\271\265\377\223" \ + "\254\247\377\230\260\253\377\371\373\372\377\212\377\377\377\377\1\277" \ + "\316\313\377\202\223\254\247\377\1\316\331\327\377\207\333\343\342\377" \ + "\4\325\336\335\377\225\255\250\377\223\254\247\377\264\306\302\377\212" \ + "\377\377\377\377\5\375\376\375\377\237\265\261\377\223\254\247\377\236" \ + "\264\260\377\332\342\341\377\377\333\343\342\377\205\333\343\342\377" \ + "\1\326\337\336\377\203Slg\377\1q\207\202\377\377\333\343\342\377\260" \ + "\333\343\342\377\1\316\331\327\377\202\223\254\247\377\1\300\317\314" \ + "\377\212\377\377\377\377\4\371\372\372\377\230\257\253\377\223\254\247" \ + "\377\244\271\265\377\211\333\343\342\377\4\255\300\274\377\223\254\247" \ + "\377\224\254\250\377\362\365\364\377\212\377\377\377\377\1\312\326\324" \ + "\377\202\223\254\247\377\1\307\324\322\377\377\333\343\342\377\206\333" \ + "\343\342\377\1^vq\377\202Slg\377\1o\205\201\377\377\333\343\342\377\260" \ + "\333\343\342\377\1\260\302\277\377\202\223\254\247\377\1\356\361\361" \ + "\377\212\377\377\377\377\1\320\333\331\377\202\223\254\247\377\1\303" \ + "\320\316\377\211\333\343\342\377\1\314\327\325\377\202\223\254\247\377" \ + "\1\306\323\320\377\212\377\377\377\377\4\365\367\367\377\225\255\251" \ + "\377\223\254\247\377\251\275\271\377\377\333\343\342\377\206\333\343" \ + "\342\377\1}\221\215\377\202Slg\377\1byt\377\230\333\343\342\377\1\305" \ + "\317\316\377\202\270\305\303\377\1\315\326\325\377\377\333\343\342\377" \ + "\223\333\343\342\377\4\326\337\336\377\226\256\251\377\223\254\247\377" \ + "\257\301\276\377\213\377\377\377\377\4\243\271\264\377\223\254\247\377" \ + "\232\261\255\377\331\342\341\377\212\333\343\342\377\4\242\267\263\377" \ + "\223\254\247\377\233\262\256\377\374\374\374\377\212\377\377\377\377" \ + "\1\271\311\306\377\202\223\254\247\377\1\322\334\333\377\377\333\343" \ + "\342\377\205\333\343\342\377\1\270\304\302\377\203Slg\377\1\305\320\316" \ + "\377\227\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\223\333\343\342\377\1\273\313\310\377\202\223\254" \ + "\247\377\1\334\344\343\377\212\377\377\377\377\1\342\351\347\377\202" \ + "\223\254\247\377\1\267\307\304\377\213\333\343\342\377\1\300\316\314" \ + "\377\202\223\254\247\377\1\327\340\336\377\212\377\377\377\377\1\346" \ + "\354\353\377\202\223\254\247\377\1\265\306\302\377\377\333\343\342\377" \ + "\206\333\343\342\377\1k\201|\377\202Slg\377\1\216\240\235\377\227\333" \ + "\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343" \ + "\342\377\222\333\343\342\377\5\332\342\341\377\235\264\257\377\223\254" \ + "\247\377\237\265\261\377\375\376\375\377\212\377\377\377\377\4\264\306" \ + "\302\377\223\254\247\377\224\255\250\377\324\335\334\377\213\333\343" \ + "\342\377\4\331\341\340\377\230\260\253\377\223\254\247\377\252\275\271" \ + "\377\213\377\377\377\377\4\250\274\270\377\223\254\247\377\230\260\253" \ + "\377\331\341\340\377\377\333\343\342\377\205\333\343\342\377\5\301\315" \ + "\313\377Yrm\377Slg\377Umh\377\277\313\311\377\226\333\343\342\377\1\202" \ + "\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\222\333" \ + "\343\342\377\1\307\324\322\377\202\223\254\247\377\1\313\327\324\377" \ + "\212\377\377\377\377\4\362\365\364\377\224\254\250\377\223\254\247\377" \ + "\253\276\273\377\215\333\343\342\377\1\264\305\302\377\202\223\254\247" \ + "\377\1\350\356\355\377\212\377\377\377\377\1\325\337\335\377\202\223" \ + "\254\247\377\1\300\316\314\377\377\333\343\342\377\206\333\343\342\377" \ + "\5\265\302\300\377Umh\377Slg\377]up\377\301\314\312\377\225\333\343\342" \ + "\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\222\333\343\342\377\4\251\274\271\377\223\254\247\377\225\256\251\377" \ + "\366\370\367\377\212\377\377\377\377\1\306\323\321\377\202\223\254\247" \ + "\377\1\312\326\324\377\215\333\343\342\377\1\322\334\332\377\202\223" \ + "\254\247\377\1\273\313\310\377\212\377\377\377\377\4\373\374\373\377" \ + "\232\261\255\377\223\254\247\377\242\267\263\377\377\333\343\342\377" \ + "\207\333\343\342\377\6\267\304\302\377e{w\377Slg\377Vni\377\224\245\242" \ + "\377\321\332\331\377\223\333\343\342\377\1\202\225\221\377\202Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\221\333\343\342\377\1\322\334" \ + "\332\377\202\223\254\247\377\1\271\311\306\377\212\377\377\377\377\4" \ + "\374\374\374\377\233\262\256\377\223\254\247\377\240\266\261\377\217" \ + "\333\343\342\377\4\251\275\271\377\223\254\247\377\226\256\251\377\366" \ + "\370\370\377\212\377\377\377\377\1\304\321\317\377\202\223\254\247\377" \ + "\1\314\327\325\377\377\333\343\342\377\203\333\343\342\377\1\330\340" \ + "\337\377\203\322\333\332\377\2\315\326\325\377\207\232\226\377\202Sl" \ + "g\377\6Vni\377|\220\214\377\234\254\251\377\264\301\277\377\303\316\314" \ + "\377\314\325\324\377\216\322\333\332\377\1\177\223\217\377\202Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\221\333\343\342\377\1\264\305" \ + "\302\377\202\223\254\247\377\1\346\353\352\377\212\377\377\377\377\1" \ + "\330\341\337\377\202\223\254\247\377\1\276\315\312\377\217\333\343\342" \ + "\377\1\307\324\322\377\202\223\254\247\377\1\315\330\326\377\212\377" \ + "\377\377\377\1\357\362\362\377\202\223\254\247\377\1\256\300\275\377" \ + "\377\333\343\342\377\203\333\343\342\377\1\250\267\264\377\236Slg\377" \ + "\1\243\262\257\377\377\333\343\342\377\220\333\343\342\377\4\331\341" \ + "\340\377\230\260\253\377\223\254\247\377\247\273\267\377\213\377\377" \ + "\377\377\4\252\276\272\377\223\254\247\377\227\257\252\377\330\340\337" \ + "\377\217\333\343\342\377\5\332\342\341\377\236\264\260\377\223\254\247" \ + "\377\240\266\262\377\376\376\376\377\212\377\377\377\377\4\261\303\277" \ + "\377\223\254\247\377\225\255\250\377\325\336\335\377\377\333\343\342" \ + "\377\202\333\343\342\377\1\250\267\264\377\236Slg\377\1\243\262\257\377" \ + "\377\333\343\342\377\220\333\343\342\377\1\300\316\314\377\202\223\254" \ + "\247\377\1\324\336\334\377\212\377\377\377\377\1\351\356\355\377\202" \ + "\223\254\247\377\1\262\304\301\377\221\333\343\342\377\1\273\313\310" \ + "\377\202\223\254\247\377\1\336\345\344\377\212\377\377\377\377\1\336" \ + "\346\344\377\202\223\254\247\377\1\271\311\306\377\377\333\343\342\377" \ + "\202\333\343\342\377\1\250\267\264\377\236Slg\377\1\243\262\257\377\377" \ + "\333\343\342\377\220\333\343\342\377\4\241\267\263\377\223\254\247\377" \ + "\231\261\254\377\372\373\373\377\212\377\377\377\377\1\274\313\310\377" \ + "\202\223\254\247\377\1\320\333\331\377\221\333\343\342\377\4\326\337" \ + "\336\377\226\256\251\377\223\254\247\377\261\303\277\377\212\377\377" \ + "\377\377\5\376\376\376\377\240\266\262\377\223\254\247\377\234\262\256" \ + "\377\332\342\341\377\377\333\343\342\377\2\333\343\342\377\250\267\264" \ + "\377\236Slg\377\1\243\262\257\377\377\333\343\342\377\217\333\343\342" \ + "\377\1\314\327\325\377\202\223\254\247\377\1\303\321\316\377\212\377" \ + "\377\377\377\4\367\371\370\377\226\256\251\377\223\254\247\377\247\273" \ + "\267\377\223\333\343\342\377\1\260\302\277\377\202\223\254\247\377\1" \ + "\357\362\362\377\212\377\377\377\377\1\315\330\326\377\202\223\254\247" \ + "\377\1\305\322\320\377\377\333\343\342\377\2\333\343\342\377\250\267" \ + "\264\377\236Slg\377\1\243\262\257\377\377\333\343\342\377\217\333\343" \ + "\342\377\1\255\300\274\377\202\223\254\247\377\1\357\363\362\377\212" \ + "\377\377\377\377\1\315\330\326\377\202\223\254\247\377\1\305\322\320" \ + "\377\223\333\343\342\377\1\316\331\327\377\202\223\254\247\377\1\302" \ + "\320\315\377\212\377\377\377\377\4\366\370\370\377\226\256\251\377\223" \ + "\254\247\377\247\273\267\377\377\333\343\342\377\2\333\343\342\377\250" \ + "\267\264\377\202Slg\377\1u\211\205\377\230\270\305\303\377\1v\213\207" \ + "\377\202Slg\377\1\243\262\257\377\377\333\343\342\377\216\333\343\342" \ + "\377\4\325\336\335\377\224\255\250\377\223\254\247\377\261\303\277\377" \ + "\212\377\377\377\377\5\376\376\376\377\240\266\262\377\223\254\247\377" \ + "\234\263\256\377\332\342\341\377\224\333\343\342\377\4\244\271\265\377" \ + "\223\254\247\377\231\261\254\377\372\373\373\377\212\377\377\377\377" \ + "\1\273\313\310\377\202\223\254\247\377\1\320\333\331\377\377\333\343" \ + "\342\377\1\250\267\264\377\202Slg\377\1\200\224\220\377\230\333\343\342" \ + "\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\216\333\343\342\377\1\271\311\306\377\202\223\254\247\377\1\337\346" \ + "\345\377\212\377\377\377\377\1\336\346\344\377\202\223\254\247\377\1" \ + "\271\311\306\377\225\333\343\342\377\1\303\320\316\377\202\223\254\247" \ + "\377\1\323\335\333\377\212\377\377\377\377\1\351\356\355\377\202\223" \ + "\254\247\377\1\262\304\300\377\377\333\343\342\377\1\250\267\264\377" \ + "\202Slg\377\1\200\224\220\377\230\333\343\342\377\1\202\225\221\377\202" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\215\333\343\342\377\5\332" \ + "\342\341\377\233\262\256\377\223\254\247\377\241\267\262\377\376\376" \ + "\376\377\212\377\377\377\377\4\261\303\277\377\223\254\247\377\225\255" \ + "\250\377\325\336\335\377\225\333\343\342\377\4\331\342\341\377\232\261" \ + "\255\377\223\254\247\377\246\272\266\377\213\377\377\377\377\4\252\275" \ + "\271\377\223\254\247\377\227\257\252\377\327\340\337\377\376\333\343" \ + "\342\377\1\250\267\264\377\202Slg\377\1\200\224\220\377\230\333\343\342" \ + "\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\377\333\343\342\377" \ + "\215\333\343\342\377\1\304\322\317\377\202\223\254\247\377\1\315\331" \ + "\326\377\212\377\377\377\377\1\357\363\362\377\202\223\254\247\377\1" \ + "\256\300\275\377\227\333\343\342\377\1\267\307\304\377\202\223\254\247" \ + "\377\1\345\353\351\377\212\377\377\377\377\1\330\341\337\377\202\223" \ + "\254\247\377\1\276\315\312\377\376\333\343\342\377\1\250\267\264\377" \ + "\202Slg\377\1\200\224\220\377\230\333\343\342\377\1\202\225\221\377\202" \ + "Slg\377\1\243\262\257\377\377\333\343\342\377\215\333\343\342\377\4\246" \ + "\272\266\377\223\254\247\377\226\256\252\377\367\371\370\377\212\377" \ + "\377\377\377\1\302\320\315\377\202\223\254\247\377\1\314\330\326\377" \ + "\227\333\343\342\377\4\324\335\334\377\224\255\250\377\223\254\247\377" \ + "\267\310\305\377\212\377\377\377\377\4\374\374\374\377\233\262\256\377" \ + "\223\254\247\377\237\265\261\377\376\333\343\342\377\1\311\324\322\377" \ + "\202\254\271\267\377\1\274\307\306\377\230\333\343\342\377\1\325\336" \ + "\335\377\202\322\333\332\377\1\327\340\337\377\377\333\343\342\377\214" \ + "\333\343\342\377\1\320\332\331\377\202\223\254\247\377\1\274\313\310" \ + "\377\212\377\377\377\377\4\372\373\373\377\231\261\254\377\223\254\247" \ + "\377\242\267\263\377\231\333\343\342\377\4\253\276\273\377\223\254\247" \ + "\377\225\255\250\377\364\366\366\377\212\377\377\377\377\1\306\323\321" \ + "\377\202\223\254\247\377\1\311\325\323\377\377\333\343\342\377\377\333" \ + "\343\342\377\252\333\343\342\377\1\262\303\300\377\202\223\254\247\377" \ + "\1\351\356\355\377\212\377\377\377\377\1\324\336\334\377\202\223\254" \ + "\247\377\1\301\317\314\377\231\333\343\342\377\1\312\326\324\377\202" \ + "\223\254\247\377\1\311\325\323\377\212\377\377\377\377\4\362\365\364" \ + "\377\224\254\250\377\223\254\247\377\253\276\273\377\377\333\343\342" \ + "\377\377\333\343\342\377\251\333\343\342\377\4\327\340\337\377\227\257" \ + "\252\377\223\254\247\377\253\276\272\377\213\377\377\377\377\4\246\273" \ + "\267\377\223\254\247\377\230\260\253\377\331\341\340\377\213\333\343" \ + "\342\377\3\306\323\320\377\274\313\311\377\316\330\327\377\214\333\343" \ + "\342\377\4\237\265\261\377\223\254\247\377\236\264\257\377\375\375\375" \ + "\377\212\377\377\377\377\4\264\306\302\377\223\254\247\377\224\255\250" \ + "\377\323\335\334\377\377\333\343\342\377\225\333\343\342\377\5|\220\214" \ + "\377x\214\210\377\217\241\235\377\266\302\300\377\331\342\341\377\377" \ + "\333\343\342\377\216\333\343\342\377\1\275\314\312\377\202\223\254\247" \ + "\377\1\330\341\337\377\212\377\377\377\377\1\346\353\352\377\202\223" \ + "\254\247\377\1\265\306\303\377\212\333\343\342\377\2\331\341\340\377" \ + "\250\275\271\377\203\223\254\247\377\1\240\266\262\377\213\333\343\342" \ + "\377\1\276\315\312\377\202\223\254\247\377\1\332\343\341\377\212\377" \ + "\377\377\377\1\342\351\347\377\202\223\254\247\377\1\267\307\304\377" \ + "\374\333\343\342\377\1\315\326\325\377\202\264\301\277\377\1\277\312" \ + "\310\377\224\333\343\342\377\1h\177z\377\203Slg\377\2h\177z\377\267\303" \ + "\301\377\377\333\343\342\377\215\333\343\342\377\4\237\265\261\377\223" \ + "\254\247\377\234\263\256\377\374\375\374\377\212\377\377\377\377\1\270" \ + "\310\305\377\202\223\254\247\377\1\322\334\333\377\212\333\343\342\377" \ + "\7\306\323\320\377\223\254\247\377\236\264\260\377\303\321\316\377\236" \ + "\265\260\377\223\254\247\377\305\323\320\377\212\333\343\342\377\4\330" \ + "\340\337\377\227\257\252\377\223\254\247\377\255\300\274\377\213\377" \ + "\377\377\377\4\243\271\264\377\223\254\247\377\232\261\254\377\331\341" \ + "\340\377\373\333\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210" \ + "\377\224\333\343\342\377\1h\177z\377\204Slg\377\2Tmh\377\251\270\265" \ + "\377\377\333\343\342\377\213\333\343\342\377\1\311\325\323\377\202\223" \ + "\254\247\377\1\307\324\321\377\212\377\377\377\377\4\364\367\366\377" \ + "\225\255\250\377\223\254\247\377\251\275\271\377\213\333\343\342\377" \ + "\7\260\302\277\377\223\254\247\377\325\336\334\377\377\377\377\377\327" \ + "\340\337\377\223\254\247\377\250\274\271\377\213\333\343\342\377\1\262" \ + "\304\300\377\202\223\254\247\377\1\353\360\357\377\212\377\377\377\377" \ + "\1\321\333\331\377\202\223\254\247\377\1\302\320\316\377\373\333\343" \ + "\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\224\333\343\342" \ + "\377\1h\177z\377\205Slg\377\2Xpk\377\311\323\322\377\377\333\343\342" \ + "\377\212\333\343\342\377\4\253\276\272\377\223\254\247\377\224\254\250" \ + "\377\362\365\364\377\212\377\377\377\377\1\312\326\323\377\202\223\254" \ + "\247\377\1\310\324\322\377\213\333\343\342\377\7\255\300\275\377\223" \ + "\254\247\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254" \ + "\247\377\245\272\265\377\213\333\343\342\377\1\320\333\331\377\202\223" \ + "\254\247\377\1\276\315\312\377\212\377\377\377\377\4\371\372\372\377" \ + "\230\257\253\377\223\254\247\377\244\271\265\377\373\333\343\342\377" \ + "\1\250\267\264\377\202Slg\377\1x\214\210\377\224\333\343\342\377\4\303" \ + "\316\314\377\260\275\273\377\233\253\250\377f}x\377\203Slg\377\1\217" \ + "\241\235\377\377\333\343\342\377\211\333\343\342\377\4\323\335\333\377" \ + "\224\254\247\377\223\254\247\377\265\306\303\377\212\377\377\377\377" \ + "\4\375\375\375\377\236\264\260\377\223\254\247\377\236\264\260\377\214" \ + "\333\343\342\377\7\255\300\275\377\223\254\247\377\341\350\346\377\377" \ + "\377\377\377\356\362\361\377\223\254\247\377\245\272\265\377\214\333" \ + "\343\342\377\4\247\273\267\377\223\254\247\377\227\257\252\377\370\372" \ + "\371\377\212\377\377\377\377\1\277\316\313\377\202\223\254\247\377\1" \ + "\316\331\327\377\372\333\343\342\377\1\250\267\264\377\202Slg\377\1x" \ + "\214\210\377\227\333\343\342\377\2\331\342\341\377\211\233\230\377\202" \ + "Slg\377\1d{v\377\377\333\343\342\377\211\333\343\342\377\1\266\307\304" \ + "\377\202\223\254\247\377\1\343\351\350\377\212\377\377\377\377\1\333" \ + "\343\342\377\202\223\254\247\377\1\274\313\310\377\214\333\343\342\377" \ + "\7\255\300\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356" \ + "\362\361\377\223\254\247\377\245\272\265\377\214\333\343\342\377\1\305" \ + "\322\320\377\202\223\254\247\377\1\317\332\330\377\212\377\377\377\377" \ + "\1\354\361\360\377\202\223\254\247\377\1\260\302\276\377\372\333\343" \ + "\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\230\333\343\342" \ + "\377\2\326\337\336\377]tp\377\202Slg\377\1\317\331\327\377\377\333\343" \ + "\342\377\207\333\343\342\377\4\331\341\340\377\232\261\254\377\223\254" \ + "\247\377\244\271\265\377\213\377\377\377\377\4\256\300\275\377\223\254" \ + "\247\377\226\256\251\377\327\337\336\377\214\333\343\342\377\7\255\300" \ + "\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356\362\361" \ + "\377\223\254\247\377\245\272\265\377\214\333\343\342\377\5\332\342\341" \ + "\377\234\262\256\377\223\254\247\377\243\270\264\377\376\376\376\377" \ + "\212\377\377\377\377\4\256\300\275\377\223\254\247\377\226\256\251\377" \ + "\326\337\336\377\371\333\343\342\377\1\250\267\264\377\202Slg\377\1x" \ + "\214\210\377\231\333\343\342\377\1v\212\206\377\202Slg\377\1\301\315" \ + "\313\377\377\333\343\342\377\207\333\343\342\377\1\302\320\315\377\202" \ + "\223\254\247\377\1\321\334\332\377\212\377\377\377\377\1\354\361\360" \ + "\377\202\223\254\247\377\1\260\302\277\377\215\333\343\342\377\7\255" \ + "\300\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356\362" \ + "\361\377\223\254\247\377\245\272\265\377\215\333\343\342\377\1\271\311" \ + "\306\377\202\223\254\247\377\1\341\350\346\377\212\377\377\377\377\1" \ + "\333\343\342\377\202\223\254\247\377\1\273\313\310\377\371\333\343\342" \ + "\377\1\250\267\264\377\202Slg\377\1x\214\210\377\231\333\343\342\377" \ + "\1\177\222\217\377\202Slg\377\1\272\306\304\377\377\333\343\342\377\207" \ + "\333\343\342\377\4\243\270\264\377\223\254\247\377\230\260\253\377\371" \ + "\372\372\377\212\377\377\377\377\1\277\316\313\377\202\223\254\247\377" \ + "\1\316\331\330\377\215\333\343\342\377\7\255\300\275\377\223\254\247" \ + "\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247\377" \ + "\245\272\265\377\215\333\343\342\377\4\325\336\335\377\225\255\250\377" \ + "\223\254\247\377\264\305\301\377\212\377\377\377\377\5\375\375\375\377" \ + "\236\265\260\377\223\254\247\377\235\264\257\377\332\342\341\377\370" \ + "\333\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\231\333" \ + "\343\342\377\1i\177{\377\202Slg\377\1\276\312\310\377\377\333\343\342" \ + "\377\206\333\343\342\377\1\316\331\327\377\202\223\254\247\377\7\300" \ + "\316\313\377\377\377\377\377\327\340\337\377\272\312\306\377\254\277" \ + "\273\377\276\315\312\377\343\352\350\377\204\377\377\377\377\4\371\372" \ + "\372\377\230\257\253\377\223\254\247\377\245\271\265\377\216\333\343" \ + "\342\377\7\255\300\275\377\223\254\247\377\341\350\346\377\377\377\377" \ + "\377\356\362\361\377\223\254\247\377\245\272\265\377\216\333\343\342" \ + "\377\1\256\300\275\377\202\223\254\247\377\1\361\364\364\377\204\377" \ + "\377\377\377\7\350\355\354\377\300\317\314\377\254\300\274\377\267\310" \ + "\304\377\323\335\333\377\376\376\376\377\312\326\324\377\202\223\254" \ + "\247\377\1\307\323\321\377\370\333\343\342\377\1\250\267\264\377\202" \ + "Slg\377\1x\214\210\377\230\333\343\342\377\1\254\272\270\377\203Slg\377" \ + "\1\307\321\320\377\354\333\343\342\377\1\205\241\234\377\210|\233\225" \ + "\377\1\262\303\300\377\217\312\326\324\377\1\251\274\271\377\202\223" \ + "\254\247\377\2\350\355\354\377\257\301\275\377\205\223\254\247\377\1" \ + "\301\317\315\377\203\377\377\377\377\1\320\333\331\377\202\223\254\247" \ + "\377\1\267\310\305\377\216\312\326\324\377\7\247\273\267\377\223\254" \ + "\247\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247" \ + "\377\240\266\262\377\216\312\326\324\377\1\276\315\312\377\202\223\254" \ + "\247\377\1\305\322\320\377\203\377\377\377\377\2\312\327\324\377\224" \ + "\255\250\377\204\223\254\247\377\5\251\275\271\377\354\360\360\377\225" \ + "\255\251\377\223\254\247\377\243\270\264\377\217\312\326\324\377\1\273" \ + "\313\310\377\210|\233\225\377\2\177\235\227\377\330\341\337\377\325\333" \ + "\343\342\377\1\273\307\305\377\210\270\305\303\377\1\223\244\241\377" \ + "\202Slg\377\1n\204\200\377\223\270\305\303\377\6\267\303\301\377\257" \ + "\274\272\377\247\265\263\377\232\252\247\377t\210\204\377Tmh\377\202" \ + "Slg\377\2Woj\377\330\340\337\377\354\333\343\342\377\1u\225\217\377\227" \ + "o\221\212\377\15q\222\213\377\221\252\245\377\223\254\247\377\256\301" \ + "\275\377\277\316\313\377\223\254\247\377\242\267\263\377\334\344\343" \ + "\377\354\360\357\377\323\335\333\377\232\261\255\377\223\254\247\377" \ + "\327\340\337\377\202\377\377\377\377\3\243\271\264\377\223\254\247\377" \ + "\217\251\243\377\217o\221\212\377\7\205\242\234\377\223\254\247\377\341" \ + "\350\346\377\377\377\377\377\356\362\361\377\223\254\247\377\212\245" \ + "\240\377\217o\221\212\377\22\213\246\240\377\223\254\247\377\233\262" \ + "\255\377\373\374\374\377\377\377\377\377\343\352\350\377\223\254\247" \ + "\377\226\257\252\377\316\331\327\377\354\360\357\377\340\347\345\377" \ + "\250\274\270\377\223\254\247\377\265\306\303\377\271\311\306\377\223" \ + "\254\247\377\222\253\246\377s\224\215\377\230o\221\212\377\1\327\340" \ + "\337\377\325\333\343\342\377\1\\so\377\247Slg\377\1t\210\204\377\355" \ + "\333\343\342\377\1u\225\217\377\227o\221\212\377\1~\234\226\377\202\223" \ + "\254\247\377\4\331\342\340\377\224\255\250\377\230\260\253\377\361\365" \ + "\364\377\203\377\377\377\377\5\341\350\346\377\223\254\247\377\247\274" \ + "\270\377\377\377\377\377\342\351\347\377\202\223\254\247\377\1\200\236" \ + "\230\377\217o\221\212\377\7\205\242\234\377\223\254\247\377\341\350\346" \ + "\377\377\377\377\377\356\362\361\377\223\254\247\377\212\245\240\377" \ + "\217o\221\212\377\1|\232\224\377\202\223\254\247\377\5\326\340\336\377" \ + "\377\377\377\377\262\304\301\377\223\254\247\377\325\337\335\377\203" \ + "\377\377\377\377\4\370\371\371\377\235\264\257\377\223\254\247\377\332" \ + "\342\340\377\202\223\254\247\377\1\202\237\231\377\230o\221\212\377\1" \ + "\327\340\337\377\325\333\343\342\377\1\\so\377\247Slg\377\1\253\271\266" \ + "\377\355\333\343\342\377\1u\225\217\377\227o\221\212\377\6\215\250\242" \ + "\377\223\254\247\377\236\265\260\377\344\352\350\377\223\254\247\377" \ + "\262\304\300\377\205\377\377\377\377\7\233\262\255\377\225\255\250\377" \ + "\374\374\374\377\264\306\302\377\223\254\247\377\222\253\246\377r\223" \ + "\214\377\217o\221\212\377\7\205\242\234\377\223\254\247\377\341\350\346" \ + "\377\377\377\377\377\356\362\361\377\223\254\247\377\212\245\240\377" \ + "\220o\221\212\377\7\220\251\244\377\223\254\247\377\251\275\271\377\377" \ + "\377\377\377\235\264\257\377\223\254\247\377\372\373\373\377\204\377" \ + "\377\377\377\7\275\314\311\377\223\254\247\377\333\343\342\377\247\273" \ + "\267\377\223\254\247\377\220\251\244\377p\221\212\377\227o\221\212\377" \ + "\1\327\340\337\377\325\333\343\342\377\1\\so\377\246Slg\377\2u\211\205" \ + "\377\331\341\340\377\355\333\343\342\377\1u\225\217\377\226o\221\212" \ + "\377\1y\230\222\377\202\223\254\247\377\4\312\326\324\377\353\360\357" \ + "\377\223\254\247\377\254\277\273\377\204\377\377\377\377\7\375\375\375" \ + "\377\227\257\252\377\230\260\253\377\361\364\363\377\224\254\250\377" \ + "\223\254\247\377\206\242\234\377\220o\221\212\377\7\205\242\234\377\223" \ + "\254\247\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254" \ + "\247\377\212\245\240\377\220o\221\212\377\1\201\237\231\377\202\223\254" \ + "\247\377\4\350\355\354\377\243\270\264\377\223\254\247\377\365\367\367" \ + "\377\204\377\377\377\377\4\267\310\304\377\223\254\247\377\340\347\345" \ + "\377\325\336\334\377\202\223\254\247\377\1|\233\224\377\227o\221\212" \ + "\377\1\327\340\337\377\325\333\343\342\377\1\\so\377\245Slg\377\2}\220" \ + "\215\377\321\332\331\377\356\333\343\342\377\1u\225\217\377\226o\221" \ + "\212\377\10\210\243\236\377\223\254\247\377\225\255\251\377\365\367\367" \ + "\377\376\376\376\377\231\261\254\377\223\254\247\377\342\351\347\377" \ + "\203\377\377\377\377\4\315\331\326\377\223\254\247\377\260\302\276\377" \ + "\306\323\321\377\202\223\254\247\377\1w\227\220\377\220o\221\212\377" \ + "\7\205\242\234\377\223\254\247\377\341\350\346\377\377\377\377\377\356" \ + "\362\361\377\223\254\247\377\212\245\240\377\220o\221\212\377\7s\224" \ + "\215\377\222\253\246\377\223\254\247\377\272\312\307\377\273\313\307" \ + "\377\223\254\247\377\301\317\315\377\203\377\377\377\377\10\354\360\357" \ + "\377\226\256\251\377\225\256\251\377\366\370\370\377\373\374\373\377" \ + "\232\261\254\377\223\254\247\377\213\246\240\377\227o\221\212\377\1\327" \ + "\340\337\377\325\333\343\342\377\1\\so\377\241Slg\377\4Xpk\377n\204\200" \ + "\377\213\235\232\377\274\310\306\377\360\333\343\342\377\1u\225\217\377" \ + "\210o\221\212\377\1u\225\216\377\214x\230\221\377\4{\232\223\377\222" \ + "\253\246\377\223\254\247\377\271\311\306\377\202\377\377\377\377\14\324" \ + "\336\334\377\223\254\247\377\225\256\251\377\277\316\313\377\321\334" \ + "\331\377\266\307\303\377\223\254\247\377\225\256\251\377\347\354\353" \ + "\377\233\262\256\377\223\254\247\377\215\250\242\377\221x\230\221\377" \ + "\7\210\244\237\377\223\254\247\377\341\350\346\377\377\377\377\377\356" \ + "\362\361\377\223\254\247\377\214\247\241\377\221x\230\221\377\14\212" \ + "\245\240\377\223\254\247\377\225\256\251\377\352\356\356\377\231\260" \ + "\253\377\223\254\247\377\260\302\277\377\320\333\331\377\303\321\316" \ + "\377\230\260\253\377\223\254\247\377\312\326\324\377\202\377\377\377" \ + "\377\1\303\321\316\377\202\223\254\247\377\1}\234\225\377\214x\230\221" \ + "\377\1v\226\217\377\211o\221\212\377\1\327\340\337\377\325\333\343\342" \ + "\377\1\317\330\327\377\210\316\327\326\377\1\240\260\255\377\202Slg\377" \ + "\1t\211\205\377\223\316\327\326\377\2\320\331\330\377\327\340\337\377" \ + "\364\333\343\342\377\1\236\265\260\377\210\232\262\255\377\1\307\323" \ + "\321\377\214\333\343\342\377\1\264\305\302\377\202\223\254\247\377\1" \ + "\346\354\353\377\203\377\377\377\377\2\314\330\325\377\226\256\251\377" \ + "\203\223\254\247\377\3\233\263\256\377\335\345\343\377\330\341\337\377" \ + "\202\223\254\247\377\1\276\315\312\377\221\333\343\342\377\7\255\300" \ + "\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356\362\361" \ + "\377\223\254\247\377\245\272\265\377\221\333\343\342\377\1\307\324\322" \ + "\377\202\223\254\247\377\3\314\327\325\377\343\352\351\377\237\265\261" \ + "\377\203\223\254\247\377\3\224\255\250\377\305\322\320\377\375\376\376" \ + "\377\202\377\377\377\377\1\360\363\362\377\202\223\254\247\377\1\255" \ + "\300\274\377\214\333\343\342\377\1\317\331\330\377\211\232\262\255\377" \ + "\1\331\341\340\377\336\333\343\342\377\1\250\267\264\377\202Slg\377\1" \ + "x\214\210\377\377\333\343\342\377\237\333\343\342\377\4\330\341\340\377" \ + "\230\260\253\377\223\254\247\377\250\274\270\377\205\377\377\377\377" \ + "\12\360\364\363\377\325\336\334\377\307\324\321\377\331\342\340\377\367" \ + "\371\370\377\377\377\377\377\252\276\272\377\223\254\247\377\227\257" \ + "\252\377\330\340\337\377\221\333\343\342\377\7\255\300\275\377\223\254" \ + "\247\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247" \ + "\377\245\272\265\377\221\333\343\342\377\12\332\342\341\377\236\264\260" \ + "\377\223\254\247\377\240\266\261\377\375\376\375\377\371\373\373\377" \ + "\333\343\342\377\310\325\322\377\322\334\332\377\355\361\361\377\205" \ + "\377\377\377\377\4\262\304\300\377\223\254\247\377\224\255\250\377\325" \ + "\336\335\377\364\333\343\342\377\1\250\267\264\377\202Slg\377\1x\214" \ + "\210\377\377\333\343\342\377\237\333\343\342\377\1\277\316\313\377\202" \ + "\223\254\247\377\1\325\337\335\377\212\377\377\377\377\1\351\356\355" \ + "\377\202\223\254\247\377\1\263\304\301\377\222\333\343\342\377\7\255" \ + "\300\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356\362" \ + "\361\377\223\254\247\377\245\272\265\377\222\333\343\342\377\1\274\313" \ + "\310\377\202\223\254\247\377\1\335\345\343\377\212\377\377\377\377\1" \ + "\337\346\345\377\202\223\254\247\377\1\271\311\306\377\364\333\343\342" \ + "\377\1\250\267\264\377\202Slg\377\1x\214\210\377\377\333\343\342\377" \ + "\237\333\343\342\377\4\241\267\263\377\223\254\247\377\232\261\255\377" \ + "\373\374\373\377\212\377\377\377\377\1\274\313\310\377\202\223\254\247" \ + "\377\1\320\333\331\377\222\333\343\342\377\7\255\300\275\377\223\254" \ + "\247\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247" \ + "\377\245\272\265\377\222\333\343\342\377\4\327\337\336\377\226\256\251" \ + "\377\223\254\247\377\260\302\276\377\212\377\377\377\377\5\376\376\376" \ + "\377\241\267\263\377\223\254\247\377\233\262\256\377\332\342\341\377" \ + "\363\333\343\342\377\1\264\300\276\377\202p\205\201\377\1\215\237\234" \ + "\377\377\333\343\342\377\236\333\343\342\377\1\313\327\325\377\202\223" \ + "\254\247\377\1\304\321\317\377\212\377\377\377\377\4\367\371\370\377" \ + "\226\256\251\377\223\254\247\377\247\273\267\377\223\333\343\342\377" \ + "\7\255\300\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356" \ + "\362\361\377\223\254\247\377\245\272\265\377\223\333\343\342\377\1\260" \ + "\302\277\377\202\223\254\247\377\1\356\362\361\377\212\377\377\377\377" \ + "\1\316\331\327\377\202\223\254\247\377\1\304\321\317\377\377\333\343" \ + "\342\377\377\333\343\342\377\226\333\343\342\377\1\255\300\274\377\202" \ + "\223\254\247\377\1\360\363\363\377\212\377\377\377\377\1\315\330\326" \ + "\377\202\223\254\247\377\1\305\322\320\377\223\333\343\342\377\7\255" \ + "\300\275\377\223\254\247\377\341\350\346\377\377\377\377\377\356\362" \ + "\361\377\223\254\247\377\245\272\265\377\223\333\343\342\377\1\316\331" \ + "\327\377\202\223\254\247\377\1\301\317\314\377\212\377\377\377\377\4" \ + "\367\371\371\377\226\256\252\377\223\254\247\377\246\272\266\377\377" \ + "\333\343\342\377\377\333\343\342\377\225\333\343\342\377\4\325\336\335" \ + "\377\224\255\250\377\223\254\247\377\262\304\300\377\212\377\377\377" \ + "\377\5\376\376\376\377\240\266\262\377\223\254\247\377\234\263\256\377" \ + "\332\342\341\377\223\333\343\342\377\7\255\300\275\377\223\254\247\377" \ + "\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247\377\245" \ + "\272\265\377\224\333\343\342\377\4\244\271\265\377\223\254\247\377\230" \ + "\260\253\377\372\373\373\377\212\377\377\377\377\1\274\314\311\377\202" \ + "\223\254\247\377\1\317\332\330\377\377\333\343\342\377\377\333\343\342" \ + "\377\224\333\343\342\377\1\270\310\306\377\202\223\254\247\377\1\340" \ + "\347\345\377\212\377\377\377\377\1\337\346\345\377\202\223\254\247\377" \ + "\1\272\311\307\377\224\333\343\342\377\7\255\300\275\377\223\254\247" \ + "\377\341\350\346\377\377\377\377\377\356\362\361\377\223\254\247\377" \ + "\245\272\265\377\224\333\343\342\377\1\303\320\316\377\202\223\254\247" \ + "\377\1\322\335\333\377\212\377\377\377\377\1\352\357\356\377\202\223" \ + "\254\247\377\1\262\303\300\377\377\333\343\342\377\377\333\343\342\377" \ + "\223\333\343\342\377\5\332\342\341\377\233\262\255\377\223\254\247\377" \ + "\241\267\263\377\376\376\376\377\212\377\377\377\377\4\261\303\277\377" \ + "\223\254\247\377\225\255\251\377\325\337\335\377\224\333\343\342\377" \ + "\7\264\305\302\377\223\254\247\377\316\331\327\377\377\377\377\377\331" \ + "\342\340\377\223\254\247\377\252\276\273\377\224\333\343\342\377\4\331" \ + "\342\341\377\232\261\255\377\223\254\247\377\245\272\266\377\213\377" \ + "\377\377\377\4\253\276\273\377\223\254\247\377\226\257\252\377\327\340" \ + "\337\377\377\333\343\342\377\206\333\343\342\377\6\330\340\337\377\304" \ + "\316\315\377\255\272\270\377\254\272\270\377\273\307\305\377\325\336" \ + "\335\377\377\333\343\342\377\206\333\343\342\377\1\304\321\317\377\202" \ + "\223\254\247\377\1\316\331\327\377\212\377\377\377\377\1\357\363\362" \ + "\377\202\223\254\247\377\1\256\301\275\377\225\333\343\342\377\7\310" \ + "\324\323\377\222\253\246\377\225\255\250\377\256\301\275\377\227\257" \ + "\252\377\223\254\247\377\300\316\314\377\225\333\343\342\377\1\267\310" \ + "\305\377\202\223\254\247\377\1\344\352\351\377\212\377\377\377\377\1" \ + "\330\341\337\377\202\223\254\247\377\1\275\314\311\377\377\333\343\342" \ + "\377\204\333\343\342\377\3\320\331\330\377\205\227\224\377Uni\377\204" \ + "Slg\377\3Xpk\377\201\225\221\377\310\323\321\377\377\333\343\342\377" \ + "\204\333\343\342\377\4\246\272\266\377\223\254\247\377\227\257\252\377" \ + "\367\371\371\377\212\377\377\377\377\1\302\320\315\377\202\223\254\247" \ + "\377\1\314\330\326\377\226\333\343\342\377\2\274\313\311\377\225\255" \ + "\250\377\202\223\254\247\377\1\264\305\302\377\226\333\343\342\377\4" \ + "\324\335\334\377\224\255\250\377\223\254\247\377\267\307\304\377\212" \ + "\377\377\377\377\4\374\375\374\377\234\263\256\377\223\254\247\377\237" \ + "\265\261\377\363\333\343\342\377\1\200\224\220\377\205t\211\205\377\1" \ + "w\213\207\377\210\333\343\342\377\2\262\277\275\377\\to\377\210Slg\377" \ + "\2Xql\377\252\270\266\377\377\333\343\342\377\202\333\343\342\377\1\317" \ + "\332\330\377\202\223\254\247\377\1\275\314\311\377\212\377\377\377\377" \ + "\4\372\373\373\377\231\261\254\377\223\254\247\377\242\270\263\377\230" \ + "\333\343\342\377\3\330\341\340\377\313\326\324\377\327\337\336\377\230" \ + "\333\343\342\377\4\253\276\273\377\223\254\247\377\224\255\250\377\363" \ + "\366\366\377\212\377\377\377\377\1\307\324\321\377\202\223\254\247\377" \ + "\1\311\325\323\377\361\333\343\342\377\1\275\311\307\377\206Slg\377\1" \ + "Vni\377\207\333\343\342\377\2\306\321\317\377Yrm\377\212Slg\377\2Tmh" \ + "\377\256\273\271\377\377\333\343\342\377\2\333\343\342\377\261\303\300" \ + "\377\202\223\254\247\377\1\352\357\356\377\212\377\377\377\377\1\324" \ + "\336\334\377\202\223\254\247\377\1\301\317\314\377\263\333\343\342\377" \ + "\1\312\326\324\377\202\223\254\247\377\1\310\325\322\377\212\377\377" \ + "\377\377\4\363\365\365\377\224\255\250\377\223\254\247\377\253\276\272" \ + "\377\361\333\343\342\377\1\212\234\231\377\206Slg\377\1Vni\377\206\333" \ + "\343\342\377\2\326\337\336\377l\201}\377\214Slg\377\2Xpk\377\313\325" \ + "\323\377\376\333\343\342\377\4\327\340\337\377\226\257\252\377\223\254" \ + "\247\377\253\277\273\377\213\377\377\377\377\4\247\273\267\377\223\254" \ + "\247\377\231\260\254\377\331\341\340\377\264\333\343\342\377\4\240\266" \ + "\261\377\223\254\247\377\235\263\257\377\374\375\375\377\212\377\377" \ + "\377\377\4\266\307\303\377\223\254\247\377\224\254\247\377\323\335\333" \ + "\377\357\333\343\342\377\2\331\342\341\377]up\377\204Slg\377\3czu\377" \ + "\203\226\222\377\243\262\257\377\206\333\343\342\377\1\235\255\252\377" \ + "\216Slg\377\1\177\222\217\377\376\333\343\342\377\1\275\314\311\377\202" \ + "\223\254\247\377\1\331\342\340\377\212\377\377\377\377\1\346\353\352" \ + "\377\202\223\254\247\377\1\265\306\303\377\265\333\343\342\377\1\276" \ + "\315\312\377\202\223\254\247\377\1\331\342\340\377\212\377\377\377\377" \ + "\1\343\351\350\377\202\223\254\247\377\1\266\307\304\377\357\333\343" \ + "\342\377\1\276\311\307\377\204Slg\377\2\224\244\241\377\331\341\340\377" \ + "\207\333\343\342\377\2\332\342\341\377f|x\377\205Slg\377\6byt\377\252" \ + "\270\266\377\307\321\320\377\313\325\324\377\257\275\272\377\202\225" \ + "\221\377\204Slg\377\1\313\325\323\377\375\333\343\342\377\4\237\265\260" \ + "\377\223\254\247\377\235\263\257\377\374\375\375\377\212\377\377\377" \ + "\377\1\270\310\305\377\202\223\254\247\377\1\322\334\333\377\265\333" \ + "\343\342\377\4\330\340\337\377\227\257\252\377\223\254\247\377\254\277" \ + "\273\377\213\377\377\377\377\4\244\271\265\377\223\254\247\377\231\261" \ + "\254\377\331\341\340\377\356\333\343\342\377\1\227\250\245\377\203Sl" \ + "g\377\1\255\273\271\377\211\333\343\342\377\1\266\303\301\377\205Slg" \ + "\377\2l\202~\377\321\332\331\377\205\333\343\342\377\1\233\253\250\377" \ + "\203Slg\377\1\232\252\247\377\374\333\343\342\377\1\310\325\323\377\202" \ + "\223\254\247\377\1\307\324\322\377\212\377\377\377\377\4\364\367\366" \ + "\377\225\255\250\377\223\254\247\377\251\275\271\377\267\333\343\342" \ + "\377\1\262\304\301\377\202\223\254\247\377\1\353\357\356\377\212\377" \ + "\377\377\377\1\322\334\332\377\202\223\254\247\377\1\302\320\315\377" \ + "\356\333\343\342\377\1z\216\212\377\202Slg\377\1w\214\210\377\212\333" \ + "\343\342\377\1\177\222\217\377\204Slg\377\2Tlg\377\277\312\310\377\207" \ + "\333\343\342\377\1y\215\211\377\202Slg\377\1v\212\206\377\374\333\343" \ + "\342\377\4\252\276\272\377\223\254\247\377\224\255\250\377\363\366\365" \ + "\377\212\377\377\377\377\1\312\326\323\377\202\223\254\247\377\1\310" \ + "\324\322\377\267\333\343\342\377\1\320\333\331\377\202\223\254\247\377" \ + "\1\275\314\311\377\212\377\377\377\377\4\371\373\372\377\230\260\253" \ + "\377\223\254\247\377\243\270\264\377\356\333\343\342\377\1ayt\377\202" \ + "Slg\377\1\277\312\310\377\211\333\343\342\377\2\325\335\334\377Woj\377" \ + "\204Slg\377\1\211\233\230\377\210\333\343\342\377\1\265\302\300\377\202" \ + "Slg\377\1\\so\377\373\333\343\342\377\4\323\335\333\377\224\254\247\377" \ + "\223\254\247\377\266\307\303\377\212\377\377\377\377\4\375\375\375\377" \ + "\236\264\260\377\223\254\247\377\236\264\260\377\271\333\343\342\377" \ + "\4\247\273\267\377\223\254\247\377\227\257\252\377\370\371\371\377\212" \ + "\377\377\377\377\1\300\317\314\377\202\223\254\247\377\1\315\330\327" \ + "\377\354\333\343\342\377\1\324\335\334\377\202Slg\377\1Xql\377\212\333" \ + "\343\342\377\1\260\275\273\377\205Slg\377\1\301\315\313\377\211\333\343" \ + "\342\377\1[sn\377\202Slg\377\1\315\327\325\377\372\333\343\342\377\1" \ + "\266\306\303\377\202\223\254\247\377\1\343\352\350\377\212\377\377\377" \ + "\377\1\333\343\342\377\202\223\254\247\377\1\274\313\311\377\271\333" \ + "\343\342\377\1\305\322\320\377\202\223\254\247\377\1\317\332\330\377" \ + "\212\377\377\377\377\1\356\361\361\377\202\223\254\247\377\1\257\301" \ + "\276\377\354\333\343\342\377\1\312\324\323\377\202Slg\377\1l\201}\377" \ + "\212\333\343\342\377\1\207\231\226\377\204Slg\377\1l\202~\377\212\333" \ + "\343\342\377\1k\201|\377\202Slg\377\1\304\317\315\377\371\333\343\342" \ + "\377\4\331\341\340\377\231\260\254\377\223\254\247\377\245\271\265\377" \ + "\213\377\377\377\377\4\256\300\275\377\223\254\247\377\226\256\252\377" \ + "\327\340\336\377\271\333\343\342\377\5\332\342\341\377\234\263\256\377" \ + "\223\254\247\377\242\267\263\377\376\376\376\377\212\377\377\377\377" \ + "\4\257\301\276\377\223\254\247\377\225\256\251\377\326\337\336\377\353" \ + "\333\343\342\377\1\301\315\313\377\202Slg\377\1~\222\216\377\211\333" \ + "\343\342\377\2\332\342\341\377_vr\377\204Slg\377\1\237\257\254\377\212" \ + "\333\343\342\377\1y\215\211\377\202Slg\377\1\275\310\306\377\371\333" \ + "\343\342\377\1\301\317\315\377\202\223\254\247\377\1\322\334\332\377" \ + "\212\377\377\377\377\1\354\361\360\377\202\223\254\247\377\1\260\302" \ + "\277\377\273\333\343\342\377\1\271\311\306\377\202\223\254\247\377\1" \ + "\340\347\346\377\212\377\377\377\377\1\334\344\343\377\202\223\254\247" \ + "\377\1\273\312\307\377\353\333\343\342\377\1\301\315\313\377\202Slg\377" \ + "\1y\216\212\377\211\333\343\342\377\1\270\305\303\377\204Slg\377\2Tm" \ + "h\377\317\331\327\377\212\333\343\342\377\1\202\225\221\377\202Slg\377" \ + "\1\273\307\305\377\371\333\343\342\377\4\243\270\264\377\223\254\247" \ + "\377\230\260\253\377\371\373\372\377\212\377\377\377\377\1\277\316\313" \ + "\377\202\223\254\247\377\1\317\331\330\377\273\333\343\342\377\4\325" \ + "\337\335\377\225\255\250\377\223\254\247\377\263\304\301\377\212\377" \ + "\377\377\377\5\375\376\375\377\237\265\261\377\223\254\247\377\235\263" \ + "\257\377\332\342\341\377\352\333\343\342\377\1\310\323\321\377\202Sl" \ + "g\377\1k\201}\377\211\333\343\342\377\1\205\230\224\377\204Slg\377\1" \ + "v\212\206\377\213\333\343\342\377\1t\210\204\377\202Slg\377\1\301\315" \ + "\313\377\370\333\343\342\377\1\315\330\326\377\202\223\254\247\377\1" \ + "\301\317\314\377\212\377\377\377\377\4\371\372\372\377\230\257\253\377" \ + "\223\254\247\377\245\272\266\377\275\333\343\342\377\1\256\300\275\377" \ + "\202\223\254\247\377\1\361\364\363\377\212\377\377\377\377\1\313\327" \ + "\324\377\202\223\254\247\377\1\306\323\321\377\352\333\343\342\377\1" \ + "\321\332\331\377\202Slg\377\2\\to\377\332\342\341\377\207\333\343\342" \ + "\377\2\324\335\334\377Xql\377\204Slg\377\1\243\262\257\377\213\333\343" \ + "\342\377\1czu\377\202Slg\377\1\310\323\321\377\370\333\343\342\377\1" \ + "\257\301\276\377\202\223\254\247\377\1\356\362\361\377\212\377\377\377" \ + "\377\1\321\333\331\377\202\223\254\247\377\1\303\321\316\377\275\333" \ + "\343\342\377\1\314\330\326\377\202\223\254\247\377\1\304\322\317\377" \ + "\212\377\377\377\377\4\366\370\367\377\225\255\251\377\223\254\247\377" \ + "\250\274\270\377\353\333\343\342\377\1ayt\377\202Slg\377\1\267\303\301" \ + "\377\207\333\343\342\377\1\241\260\255\377\204Slg\377\2Tlg\377\316\330" \ + "\326\377\212\333\343\342\377\2\330\340\337\377Tmh\377\202Slg\377\1\325" \ + "\336\335\377\367\333\343\342\377\4\326\337\336\377\225\256\251\377\223" \ + "\254\247\377\257\302\276\377\213\377\377\377\377\4\243\271\264\377\223" \ + "\254\247\377\232\262\255\377\331\342\341\377\276\333\343\342\377\4\242" \ + "\270\263\377\223\254\247\377\232\261\255\377\373\374\374\377\212\377" \ + "\377\377\377\1\271\311\306\377\202\223\254\247\377\1\321\333\332\377" \ + "\352\333\343\342\377\1~\222\216\377\202Slg\377\1\177\222\217\377\206" \ + "\333\343\342\377\2\320\332\330\377\\to\377\204Slg\377\1z\216\212\377" \ + "\213\333\343\342\377\1\253\271\266\377\202Slg\377\1e|w\377\370\333\343" \ + "\342\377\1\272\312\307\377\202\223\254\247\377\1\335\344\343\377\212" \ + "\377\377\377\377\1\342\351\347\377\202\223\254\247\377\1\267\310\305" \ + "\377\277\333\343\342\377\1\301\317\314\377\202\223\254\247\377\1\325" \ + "\337\335\377\212\377\377\377\377\1\347\354\353\377\202\223\254\247\377" \ + "\1\264\305\302\377\352\333\343\342\377\1\251\270\265\377\203Slg\377\2" \ + "\220\242\236\377\331\342\341\377\203\333\343\342\377\2\320\331\330\377" \ + "x\214\210\377\205Slg\377\1\264\300\276\377\212\333\343\342\377\2\331" \ + "\342\341\377h~z\377\202Slg\377\1}\220\215\377\367\333\343\342\377\5\332" \ + "\342\341\377\234\263\257\377\223\254\247\377\237\265\261\377\375\376" \ + "\375\377\212\377\377\377\377\4\264\306\302\377\223\254\247\377\224\255" \ + "\250\377\324\336\334\377\277\333\343\342\377\4\331\341\340\377\230\260" \ + "\253\377\223\254\247\377\250\274\270\377\213\377\377\377\377\4\250\274" \ + "\270\377\223\254\247\377\230\257\253\377\330\341\340\377\351\333\343" \ + "\342\377\2\325\336\335\377[sn\377\203Slg\377\5i\177{\377\207\232\226" \ + "\377\230\251\246\377\204\227\223\377^vq\377\205Slg\377\2e|w\377\332\342" \ + "\341\377\212\333\343\342\377\1\232\252\247\377\203Slg\377\1\234\253\251" \ + "\377\367\333\343\342\377\1\306\323\321\377\202\223\254\247\377\1\313" \ + "\327\325\377\212\377\377\377\377\4\362\365\364\377\224\254\250\377\223" \ + "\254\247\377\254\277\273\377\301\333\343\342\377\1\265\306\303\377\202" \ + "\223\254\247\377\1\347\354\353\377\212\377\377\377\377\1\325\337\335" \ + "\377\202\223\254\247\377\1\277\316\313\377\352\333\343\342\377\1\237" \ + "\257\254\377\215Slg\377\1\244\262\260\377\211\333\343\342\377\2\320\332" \ + "\330\377}\220\215\377\204Slg\377\1\301\314\312\377\367\333\343\342\377" \ + "\4\250\274\270\377\223\254\247\377\225\256\251\377\366\370\367\377\212" \ + "\377\377\377\377\1\306\323\321\377\202\223\254\247\377\1\312\326\324" \ + "\377\301\333\343\342\377\1\322\334\333\377\202\223\254\247\377\1\271" \ + "\311\306\377\212\377\377\377\377\4\373\374\374\377\233\262\255\377\223" \ + "\254\247\377\241\267\262\377\352\333\343\342\377\2\331\342\341\377t\211" \ + "\205\377\213Slg\377\1|\220\214\377\207\333\343\342\377\4\274\310\306" \ + "\377\211\233\230\377n\204\200\377Voj\377\204Slg\377\2_vr\377\332\342" \ + "\341\377\366\333\343\342\377\1\321\333\332\377\202\223\254\247\377\1" \ + "\272\312\307\377\212\377\377\377\377\4\374\375\374\377\233\262\256\377" \ + "\223\254\247\377\240\266\262\377\303\333\343\342\377\4\251\275\271\377" \ + "\223\254\247\377\225\255\251\377\365\367\367\377\212\377\377\377\377" \ + "\1\304\322\317\377\202\223\254\247\377\1\313\326\325\377\352\333\343" \ + "\342\377\2\323\334\333\377o\204\200\377\211Slg\377\2d{v\377\321\332\331" \ + "\377\207\333\343\342\377\1\227\250\245\377\207Slg\377\1\217\240\235\377" \ + "\367\333\343\342\377\1\263\305\301\377\202\223\254\247\377\1\350\355" \ + "\354\377\212\377\377\377\377\1\330\341\337\377\202\223\254\247\377\1" \ + "\277\315\313\377\303\333\343\342\377\1\310\324\322\377\202\223\254\247" \ + "\377\1\313\327\324\377\212\377\377\377\377\1\361\364\363\377\202\223" \ + "\254\247\377\1\254\277\274\377\353\333\343\342\377\3\327\337\336\377" \ + "\226\247\244\377Xql\377\205Slg\377\3Umh\377\216\240\235\377\323\334\333" \ + "\377\210\333\343\342\377\1\227\250\245\377\207Slg\377\1\305\320\316\377" \ + "\366\333\343\342\377\4\330\341\337\377\230\257\253\377\223\254\247\377" \ + "\251\274\270\377\213\377\377\377\377\4\252\276\272\377\223\254\247\377" \ + "\227\257\252\377\330\341\337\377\304\333\343\342\377\4\236\264\260\377" \ + "\223\254\247\377\237\265\261\377\375\376\375\377\212\377\377\377\377" \ + "\4\263\304\301\377\223\254\247\377\224\255\250\377\325\336\335\377\354" \ + "\333\343\342\377\7\326\337\336\377\261\277\274\377\231\251\246\377\213" \ + "\235\232\377\226\246\243\377\256\273\271\377\312\324\323\377\212\333" \ + "\343\342\377\1\257\274\272\377\206\201\224\220\377\1\221\242\237\377" \ + "\367\333\343\342\377\1\277\315\313\377\202\223\254\247\377\1\326\337" \ + "\335\377\212\377\377\377\377\1\351\356\355\377\202\223\254\247\377\1" \ + "\263\304\301\377\305\333\343\342\377\1\274\313\311\377\202\223\254\247" \ + "\377\1\334\344\343\377\212\377\377\377\377\1\340\347\346\377\202\223" \ + "\254\247\377\1\270\310\305\377\377\333\343\342\377\375\333\343\342\377" \ + "\4\241\266\262\377\223\254\247\377\233\262\255\377\373\374\374\377\212" \ + "\377\377\377\377\1\274\313\310\377\202\223\254\247\377\1\321\333\331" \ + "\377\305\333\343\342\377\4\327\337\336\377\226\256\251\377\223\254\247" \ + "\377\257\301\276\377\212\377\377\377\377\5\376\376\376\377\242\267\263" \ + "\377\223\254\247\377\233\262\255\377\332\342\341\377\377\333\343\342" \ + "\377\373\333\343\342\377\1\312\326\324\377\202\223\254\247\377\1\304" \ + "\322\317\377\212\377\377\377\377\4\367\371\370\377\226\256\251\377\223" \ + "\254\247\377\247\273\270\377\307\333\343\342\377\1\260\302\277\377\202" \ + "\223\254\247\377\1\355\361\360\377\212\377\377\377\377\1\317\332\330" \ + "\377\202\223\254\247\377\1\304\321\317\377\377\333\343\342\377\373\333" \ + "\343\342\377\1\254\277\274\377\202\223\254\247\377\1\361\364\363\377" \ + "\212\377\377\377\377\1\315\330\326\377\202\223\254\247\377\1\306\323" \ + "\320\377\307\333\343\342\377\1\316\331\330\377\202\223\254\247\377\1" \ + "\300\317\314\377\212\377\377\377\377\4\370\371\371\377\227\257\252\377" \ + "\223\254\247\377\245\272\266\377\377\333\343\342\377\372\333\343\342" \ + "\377\4\324\336\334\377\224\255\250\377\223\254\247\377\263\305\301\377" \ + "\212\377\377\377\377\5\376\376\376\377\240\266\262\377\223\254\247\377" \ + "\234\263\256\377\332\342\341\377\310\333\343\342\377\4\245\271\265\377" \ + "\223\254\247\377\230\260\253\377\371\372\372\377\212\377\377\377\377" \ + "\1\275\314\311\377\202\223\254\247\377\1\317\332\330\377\345\333\343" \ + "\342\377\1\316\330\326\377\202\270\305\303\377\1\302\315\313\377\377" \ + "\333\343\342\377\220\333\343\342\377\1\270\310\305\377\202\223\254\247" \ + "\377\1\341\350\346\377\212\377\377\377\377\1\337\346\345\377\202\223" \ + "\254\247\377\1\272\312\307\377\311\333\343\342\377\1\303\321\316\377" \ + "\202\223\254\247\377\1\322\334\332\377\212\377\377\377\377\1\353\357" \ + "\356\377\202\223\254\247\377\1\261\303\277\377\345\333\343\342\377\1" \ + "\250\267\264\377\202Slg\377\1x\214\210\377\377\333\343\342\377\217\333" \ + "\343\342\377\5\332\342\341\377\232\262\255\377\223\254\247\377\242\270" \ + "\263\377\376\376\376\377\212\377\377\377\377\4\261\303\277\377\223\254" \ + "\247\377\225\255\251\377\326\337\336\377\311\333\343\342\377\4\331\342" \ + "\341\377\232\261\255\377\223\254\247\377\244\271\265\377\213\377\377" \ + "\377\377\4\254\277\273\377\223\254\247\377\226\256\252\377\327\340\337" \ + "\377\344\333\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377" \ + "\377\333\343\342\377\217\333\343\342\377\1\303\321\317\377\202\223\254" \ + "\247\377\1\317\332\330\377\212\377\377\377\377\1\357\363\362\377\202" \ + "\223\254\247\377\1\256\301\275\377\313\333\343\342\377\1\267\310\305" \ + "\377\202\223\254\247\377\1\343\351\350\377\212\377\377\377\377\1\331" \ + "\342\340\377\202\223\254\247\377\1\275\314\311\377\344\333\343\342\377" \ + "\1\250\267\264\377\202Slg\377\1x\214\210\377\377\333\343\342\377\217" \ + "\333\343\342\377\4\245\272\266\377\223\254\247\377\227\257\252\377\370" \ + "\372\371\377\212\377\377\377\377\1\303\321\316\377\202\223\254\247\377" \ + "\1\315\330\326\377\313\333\343\342\377\4\324\336\334\377\224\255\250" \ + "\377\223\254\247\377\266\307\303\377\212\377\377\377\377\4\374\375\375" \ + "\377\235\263\257\377\223\254\247\377\236\265\260\377\344\333\343\342" \ + "\377\1\250\267\264\377\202Slg\377\1x\214\210\377\377\333\343\342\377" \ + "\216\333\343\342\377\1\317\332\330\377\202\223\254\247\377\1\276\315" \ + "\312\377\212\377\377\377\377\4\372\373\373\377\231\261\254\377\223\254" \ + "\247\377\243\270\264\377\315\333\343\342\377\4\254\277\273\377\223\254" \ + "\247\377\224\254\250\377\363\365\365\377\212\377\377\377\377\1\310\325" \ + "\322\377\202\223\254\247\377\1\310\324\322\377\343\333\343\342\377\1" \ + "\250\267\264\377\202Slg\377\1r\207\203\377\232\305\320\316\377\3\306" \ + "\320\317\377\316\327\326\377\330\340\337\377\360\333\343\342\377\1\261" \ + "\303\277\377\202\223\254\247\377\1\353\360\357\377\212\377\377\377\377" \ + "\1\324\336\334\377\202\223\254\247\377\1\301\317\315\377\315\333\343" \ + "\342\377\1\312\326\324\377\202\223\254\247\377\1\307\324\321\377\212" \ + "\377\377\377\377\4\363\366\366\377\224\255\250\377\223\254\247\377\252" \ + "\275\272\377\343\333\343\342\377\1\250\267\264\377\240Slg\377\4[sn\377" \ + "t\211\205\377\226\247\244\377\273\307\305\377\353\333\343\342\377\4\327" \ + "\340\336\377\226\256\252\377\223\254\247\377\254\277\274\377\213\377" \ + "\377\377\377\4\247\273\267\377\223\254\247\377\231\260\254\377\331\341" \ + "\340\377\316\333\343\342\377\4\240\266\262\377\223\254\247\377\234\263" \ + "\256\377\374\375\374\377\212\377\377\377\377\4\267\307\304\377\223\254" \ + "\247\377\224\254\247\377\323\334\333\377\342\333\343\342\377\1\250\267" \ + "\264\377\244Slg\377\2n\203\177\377\257\274\272\377\351\333\343\342\377" \ + "\1\274\313\311\377\202\223\254\247\377\1\332\343\341\377\212\377\377" \ + "\377\377\1\346\353\352\377\202\223\254\247\377\1\265\306\303\377\317" \ + "\333\343\342\377\1\276\315\312\377\202\223\254\247\377\1\330\341\337" \ + "\377\212\377\377\377\377\1\344\352\351\377\202\223\254\247\377\1\266" \ + "\306\303\377\342\333\343\342\377\1\250\267\264\377\246Slg\377\2\177\222" \ + "\217\377\324\335\334\377\347\333\343\342\377\4\236\264\260\377\223\254" \ + "\247\377\235\264\257\377\374\375\375\377\212\377\377\377\377\1\270\310" \ + "\305\377\202\223\254\247\377\1\323\334\333\377\317\333\343\342\377\4" \ + "\330\340\337\377\227\257\252\377\223\254\247\377\253\276\272\377\213" \ + "\377\377\377\377\4\245\272\266\377\223\254\247\377\231\260\254\377\331" \ + "\341\340\377\341\333\343\342\377\1\250\267\264\377\247Slg\377\2i\200" \ + "{\377\317\330\327\377\345\333\343\342\377\1\310\324\322\377\202\223\254" \ + "\247\377\1\310\325\322\377\212\377\377\377\377\4\365\367\367\377\225" \ + "\255\250\377\223\254\247\377\252\275\271\377\321\333\343\342\377\1\263" \ + "\304\301\377\202\223\254\247\377\1\352\357\356\377\212\377\377\377\377" \ + "\1\322\335\333\377\202\223\254\247\377\1\301\317\315\377\341\333\343" \ + "\342\377\1\250\267\264\377\250Slg\377\2u\212\206\377\331\341\340\377" \ + "\344\333\343\342\377\4\252\275\271\377\223\254\247\377\225\255\250\377" \ + "\364\366\366\377\212\377\377\377\377\1\312\326\323\377\202\223\254\247" \ + "\377\1\310\324\322\377\321\333\343\342\377\1\321\333\331\377\202\223" \ + "\254\247\377\1\274\314\311\377\212\377\377\377\377\4\372\373\373\377" \ + "\231\260\254\377\223\254\247\377\243\270\264\377\341\333\343\342\377" \ + "\1\321\333\331\377\203\301\314\312\377\2\247\266\263\377[sn\377\203S" \ + "lg\377\6r\207\203\377\216\240\235\377\247\265\263\377\264\301\277\377" \ + "\273\307\305\377\300\314\312\377\202\301\314\312\377\7\300\314\312\377" \ + "\273\307\305\377\265\301\277\377\250\266\264\377\220\241\236\377t\210" \ + "\204\377Tlg\377\202Slg\377\2Zrm\377\246\264\262\377\203\301\314\312\377" \ + "\6\274\310\306\377\266\302\300\377\254\271\267\377\223\244\241\377w\214" \ + "\210\377Uni\377\205Slg\377\1\225\246\243\377\343\333\343\342\377\1\323" \ + "\334\333\377\202\223\254\247\377\1\267\307\304\377\212\377\377\377\377" \ + "\4\375\375\375\377\236\264\260\377\223\254\247\377\236\265\260\377\323" \ + "\333\343\342\377\4\247\273\267\377\223\254\247\377\226\256\252\377\367" \ + "\371\371\377\212\377\377\377\377\1\301\317\314\377\202\223\254\247\377" \ + "\1\315\330\326\377\342\333\343\342\377\7\332\342\341\377\236\255\253" \ + "\377Vni\377Slg\377Wpk\377\225\245\242\377\313\325\324\377\216\333\343" \ + "\342\377\7\315\326\325\377\230\250\245\377Yrm\377Slg\377Uni\377\232\252" \ + "\247\377\331\342\341\377\206\333\343\342\377\3\320\331\330\377\235\255" \ + "\252\377[sn\377\203Slg\377\2Yql\377\321\332\331\377\342\333\343\342\377" \ + "\1\265\306\303\377\202\223\254\247\377\1\345\353\351\377\212\377\377" \ + "\377\377\1\333\343\342\377\202\223\254\247\377\1\274\313\311\377\323" \ + "\333\343\342\377\1\305\322\320\377\202\223\254\247\377\1\316\331\327" \ + "\377\212\377\377\377\377\1\356\362\361\377\202\223\254\247\377\1\256" \ + "\301\275\377\342\333\343\342\377\1\226\246\243\377\202Slg\377\2o\205" \ + "\201\377\313\325\324\377\222\333\343\342\377\2\316\330\326\377v\212\206" \ + "\377\202Slg\377\1\217\241\235\377\210\333\343\342\377\2\316\330\326\377" \ + "q\206\202\377\203Slg\377\1\230\250\245\377\341\333\343\342\377\4\331" \ + "\341\340\377\231\260\254\377\223\254\247\377\246\272\266\377\213\377" \ + "\377\377\377\4\256\300\275\377\223\254\247\377\226\256\252\377\327\340" \ + "\336\377\323\333\343\342\377\5\332\342\341\377\234\263\256\377\223\254" \ + "\247\377\241\267\262\377\376\376\376\377\212\377\377\377\377\4\260\302" \ + "\276\377\223\254\247\377\225\255\251\377\326\337\336\377\340\333\343" \ + "\342\377\1\262\277\275\377\202Slg\377\2q\207\202\377\325\335\334\377" \ + "\224\333\343\342\377\2\327\337\336\377v\212\206\377\202Slg\377\1\254" \ + "\272\270\377\210\333\343\342\377\2\321\333\331\377g}y\377\202Slg\377" \ + "\1i\177{\377\341\333\343\342\377\1\301\317\314\377\202\223\254\247\377" \ + "\1\323\335\333\377\212\377\377\377\377\1\354\361\360\377\202\223\254" \ + "\247\377\1\261\303\277\377\325\333\343\342\377\1\272\311\307\377\202" \ + "\223\254\247\377\1\337\346\345\377\212\377\377\377\377\1\335\345\344" \ + "\377\202\223\254\247\377\1\272\312\307\377\337\333\343\342\377\5\327" \ + "\337\336\377]up\377Slg\377Voj\377\306\320\317\377\226\333\343\342\377" \ + "\5\312\324\323\377Xpk\377Slg\377Yrm\377\324\335\334\377\210\333\343\342" \ + "\377\1\261\277\274\377\203Slg\377\1\317\331\327\377\340\333\343\342\377" \ + "\4\243\270\264\377\223\254\247\377\231\260\254\377\372\373\373\377\212" \ + "\377\377\377\377\1\277\316\313\377\202\223\254\247\377\1\317\332\330" \ + "\377\325\333\343\342\377\4\325\337\335\377\225\255\251\377\223\254\247" \ + "\377\261\303\300\377\212\377\377\377\377\5\376\376\376\377\240\266\261" \ + "\377\223\254\247\377\234\263\257\377\332\342\341\377\336\333\343\342" \ + "\377\1\254\272\270\377\202Slg\377\1\201\224\220\377\230\333\343\342\377" \ + "\1\206\230\225\377\202Slg\377\1\246\265\262\377\211\333\343\342\377\1" \ + "g}y\377\202Slg\377\1\257\274\272\377\337\333\343\342\377\1\314\330\326" \ + "\377\202\223\254\247\377\1\302\320\315\377\212\377\377\377\377\4\371" \ + "\372\372\377\230\257\253\377\223\254\247\377\245\272\266\377\327\333" \ + "\343\342\377\1\256\301\275\377\202\223\254\247\377\1\360\363\362\377" \ + "\212\377\377\377\377\1\314\327\325\377\202\223\254\247\377\1\306\323" \ + "\320\377\336\333\343\342\377\1x\215\211\377\202Slg\377\1\254\272\270" \ + "\377\230\333\343\342\377\1\257\274\272\377\202Slg\377\1r\207\203\377" \ + "\211\333\343\342\377\1\214\235\232\377\202Slg\377\1\237\257\254\377\337" \ + "\333\343\342\377\1\256\301\275\377\202\223\254\247\377\1\357\362\362" \ + "\377\212\377\377\377\377\1\321\333\331\377\202\223\254\247\377\1\303" \ + "\321\317\377\327\333\343\342\377\1\314\330\326\377\202\223\254\247\377" \ + "\1\303\321\316\377\212\377\377\377\377\4\366\370\370\377\225\256\251" \ + "\377\223\254\247\377\247\273\270\377\336\333\343\342\377\1\\so\377\202" \ + "Slg\377\1\277\313\311\377\230\333\343\342\377\1\301\315\313\377\202S" \ + "lg\377\2Vni\377\332\342\341\377\210\333\343\342\377\1\244\263\260\377" \ + "\202Slg\377\1\226\246\243\377\336\333\343\342\377\4\325\337\335\377\225" \ + "\255\251\377\223\254\247\377\260\302\277\377\213\377\377\377\377\4\243" \ + "\271\264\377\223\254\247\377\232\262\255\377\332\342\341\377\330\333" \ + "\343\342\377\4\243\270\264\377\223\254\247\377\232\261\254\377\373\374" \ + "\373\377\212\377\377\377\377\1\272\312\307\377\202\223\254\247\377\1" \ + "\321\333\332\377\334\333\343\342\377\1\326\336\335\377\203Slg\377\1\311" \ + "\324\322\377\230\333\343\342\377\1\314\325\324\377\203Slg\377\1\317\331" \ + "\327\377\210\333\343\342\377\1\256\274\271\377\202Slg\377\1\215\236\233" \ + "\377\336\333\343\342\377\1\272\311\307\377\202\223\254\247\377\1\336" \ + "\345\344\377\212\377\377\377\377\1\342\351\347\377\202\223\254\247\377" \ + "\1\270\310\305\377\331\333\343\342\377\1\301\317\314\377\202\223\254" \ + "\247\377\1\325\336\334\377\212\377\377\377\377\1\350\355\354\377\202" \ + "\223\254\247\377\1\263\304\301\377\334\333\343\342\377\1\307\322\320" \ + "\377\203Slg\377\1\276\311\307\377\230\333\343\342\377\1\302\315\313\377" \ + "\203Slg\377\1\301\314\312\377\210\333\343\342\377\1\261\276\274\377\202" \ + "Slg\377\1\215\237\234\377\335\333\343\342\377\5\332\342\341\377\234\263" \ + "\256\377\223\254\247\377\240\266\262\377\376\376\376\377\212\377\377" \ + "\377\377\4\265\306\302\377\223\254\247\377\224\255\250\377\324\336\334" \ + "\377\331\333\343\342\377\6\331\341\340\377\231\260\254\377\222\253\247" \ + "\377\237\265\261\377\351\356\355\377\370\371\371\377\211\377\377\377" \ + "\377\4\251\275\271\377\223\254\247\377\227\257\252\377\330\341\337\377" \ + "\333\333\343\342\377\1\303\316\314\377\203Slg\377\1\251\267\265\377\230" \ + "\333\343\342\377\1\257\274\272\377\203Slg\377\1\275\310\306\377\210\333" \ + "\343\342\377\1\243\262\257\377\202Slg\377\1\224\245\242\377\335\333\343" \ + "\342\377\1\305\322\320\377\202\223\254\247\377\1\315\330\326\377\212" \ + "\377\377\377\377\4\362\365\364\377\224\254\250\377\223\254\247\377\254" \ + "\277\274\377\333\333\343\342\377\2\265\306\303\377\222\254\246\377\203" \ + "\223\254\247\377\7\233\262\255\377\252\276\272\377\271\311\306\377\310" \ + "\325\322\377\330\341\337\377\347\354\353\377\366\370\370\377\202\377" \ + "\377\377\377\1\327\340\336\377\202\223\254\247\377\1\277\315\313\377" \ + "\333\333\343\342\377\1\321\332\331\377\203Slg\377\1|\220\214\377\230" \ + "\333\343\342\377\1\200\223\220\377\203Slg\377\1\313\325\323\377\210\333" \ + "\343\342\377\1\225\245\242\377\202Slg\377\1\234\253\251\377\335\333\343" \ + "\342\377\4\247\273\267\377\223\254\247\377\226\256\251\377\366\370\370" \ + "\377\212\377\377\377\377\1\306\323\321\377\202\223\254\247\377\1\312" \ + "\326\324\377\333\333\343\342\377\1\322\334\333\377\202\223\254\247\377" \ + "\5\245\271\266\377\307\324\321\377\267\310\304\377\247\274\270\377\230" \ + "\260\253\377\204\223\254\247\377\6\231\261\254\377\250\274\270\377\266" \ + "\306\303\377\226\256\251\377\222\254\247\377\236\265\261\377\334\333" \ + "\343\342\377\1Woj\377\202Slg\377\2Umh\377\277\312\310\377\226\333\343" \ + "\342\377\2\300\314\312\377Uni\377\202Slg\377\2Tlg\377\330\340\337\377" \ + "\210\333\343\342\377\1\177\223\217\377\202Slg\377\1\252\270\266\377\334" \ + "\333\343\342\377\1\321\333\331\377\202\223\254\247\377\1\273\312\307" \ + "\377\212\377\377\377\377\4\374\375\374\377\233\262\256\377\223\254\247" \ + "\377\241\266\262\377\335\333\343\342\377\4\245\271\265\377\223\254\247" \ + "\377\224\254\247\377\365\367\367\377\203\377\377\377\377\7\365\367\367" \ + "\377\345\353\352\377\325\337\335\377\306\323\320\377\267\307\304\377" \ + "\247\273\267\377\230\260\253\377\202\223\254\247\377\2\222\253\247\377" \ + "\312\326\324\377\333\333\343\342\377\1y\215\211\377\203Slg\377\2f}x\377" \ + "\316\330\326\377\224\333\343\342\377\2\317\330\327\377g~y\377\203Slg" \ + "\377\1s\210\204\377\210\333\343\342\377\2\316\327\326\377Vni\377\202" \ + "Slg\377\1\276\311\307\377\334\333\343\342\377\1\263\304\301\377\202\223" \ + "\254\247\377\1\350\356\355\377\212\377\377\377\377\1\330\341\337\377" \ + "\202\223\254\247\377\1\277\315\313\377\335\333\343\342\377\1\310\324" \ + "\322\377\202\222\254\247\377\1\310\325\323\377\212\377\377\377\377\4" \ + "\347\355\354\377\223\253\246\377\222\253\246\377\250\274\267\377\202" \ + "\333\343\342\377\2\306\323\321\377\331\340\337\377\327\333\343\342\377" \ + "\1\250\266\264\377\204Slg\377\2ayt\377\274\310\306\377\222\333\343\342" \ + "\377\2\275\310\306\377czu\377\204Slg\377\1\243\262\257\377\210\333\343" \ + "\342\377\1\223\244\241\377\203Slg\377\1\321\333\331\377\333\333\343\342" \ + "\377\4\330\340\337\377\227\257\252\377\223\254\247\377\251\275\271\377" \ + "\213\377\377\377\377\4\252\276\272\377\223\254\247\377\230\257\253\377" \ + "\330\341\337\377\336\333\343\342\377\4\232\261\254\377\223\254\247\377" \ + "\232\260\254\377\375\375\375\377\212\377\377\377\377\7\256\301\274\377" \ + "\223\254\247\377\223\253\247\377\311\325\323\377\234\264\256\377\223" \ + "\254\247\377\277\316\313\377\327\333\343\342\377\2\323\334\333\377^u" \ + "q\377\205Slg\377\3}\221\215\377\270\305\303\377\330\340\337\377\214\333" \ + "\343\342\377\3\330\340\337\377\270\304\302\377}\220\215\377\205Slg\377" \ + "\2]tp\377\321\332\331\377\207\333\343\342\377\2\237\256\253\377Tlg\377" \ + "\202Slg\377\1h~z\377\334\333\343\342\377\1\276\315\312\377\202\223\254" \ + "\247\377\1\327\340\336\377\212\377\377\377\377\1\351\356\355\377\202" \ + "\223\254\247\377\1\263\305\301\377\337\333\343\342\377\4\272\312\310" \ + "\377\223\253\247\377\222\253\246\377\333\343\342\377\212\377\377\377" \ + "\377\7\341\350\347\377\222\254\246\377\223\253\247\377\264\305\302\377" \ + "\230\257\253\377\223\254\247\377\241\267\263\377\330\333\343\342\377" \ + "\1\251\270\265\377\207Slg\377\6Yrm\377z\216\212\377\220\242\236\377\245" \ + "\264\261\377\263\300\276\377\270\305\303\377\202\276\312\310\377\6\271" \ + "\305\303\377\263\300\276\377\246\264\262\377\220\242\236\377y\216\212" \ + "\377Yql\377\207Slg\377\1\250\267\264\377\205\333\343\342\377\3\331\342" \ + "\341\377\271\306\304\377\204\226\223\377\204Slg\377\1\212\234\231\377" \ + "\334\333\343\342\377\4\240\266\262\377\223\254\247\377\233\262\256\377" \ + "\374\374\374\377\212\377\377\377\377\1\274\313\310\377\202\223\254\247" \ + "\377\1\321\333\332\377\337\333\343\342\377\4\327\340\336\377\224\254" \ + "\250\377\223\254\247\377\250\273\267\377\212\377\377\377\377\5\376\376" \ + "\376\377\236\264\257\377\223\254\247\377\227\257\252\377\263\304\302" \ + "\377\202\223\254\247\377\1\313\327\325\377\330\333\343\342\377\1}\221" \ + "\215\377\232Slg\377\1~\222\216\377\205\333\343\342\377\2\325\336\335" \ + "\377`xs\377\206Slg\377\1\256\274\271\377\333\333\343\342\377\1\312\326" \ + "\324\377\202\223\254\247\377\1\306\323\320\377\212\377\377\377\377\4" \ + "\367\371\370\377\226\256\251\377\223\254\247\377\247\273\270\377\341" \ + "\333\343\342\377\4\255\277\274\377\223\253\246\377\222\253\246\377\354" \ + "\361\360\377\212\377\377\377\377\4\317\332\330\377\222\253\246\377\223" \ + "\253\246\377\274\314\311\377\202\223\254\247\377\1\254\277\274\377\330" \ + "\333\343\342\377\2\327\340\337\377}\221\215\377\230Slg\377\2}\221\215" \ + "\377\330\340\337\377\205\333\343\342\377\1\323\334\333\377\206Slg\377" \ + "\2[sn\377\327\337\336\377\333\333\343\342\377\4\254\277\273\377\223\254" \ + "\247\377\224\254\250\377\362\365\364\377\212\377\377\377\377\1\315\330" \ + "\326\377\202\223\254\247\377\1\306\323\321\377\341\333\343\342\377\4" \ + "\317\331\330\377\222\253\247\377\223\253\246\377\273\313\310\377\212" \ + "\377\377\377\377\10\370\372\371\377\225\255\251\377\223\254\247\377\240" \ + "\266\262\377\251\274\271\377\223\254\247\377\225\255\250\377\324\336" \ + "\335\377\330\333\343\342\377\2\330\341\340\377\213\235\232\377\226Sl" \ + "g\377\2\211\234\230\377\330\340\337\377\206\333\343\342\377\1\323\334" \ + "\333\377\206Slg\377\1\212\234\231\377\333\333\343\342\377\4\324\336\334" \ + "\377\224\255\250\377\223\254\247\377\264\305\302\377\212\377\377\377" \ + "\377\5\376\376\376\377\240\266\262\377\223\254\247\377\234\263\257\377" \ + "\332\342\341\377\342\333\343\342\377\4\240\266\262\377\223\254\247\377" \ + "\225\255\250\377\371\372\372\377\203\377\377\377\377\3\367\371\371\377" \ + "\300\317\314\377\273\313\307\377\204\377\377\377\377\4\271\312\306\377" \ + "\223\254\246\377\223\254\247\377\276\314\311\377\202\223\254\247\377" \ + "\1\271\311\305\377\332\333\343\342\377\2\270\304\302\377e|w\377\222S" \ + "lg\377\2d{v\377\267\303\301\377\211\333\343\342\377\206\322\333\332\377" \ + "\1\327\340\337\377\333\333\343\342\377\1\267\310\305\377\202\223\254" \ + "\247\377\1\342\350\347\377\212\377\377\377\377\1\337\346\345\377\202" \ + "\223\254\247\377\1\272\312\307\377\343\333\343\342\377\4\303\321\317" \ + "\377\222\254\247\377\223\254\246\377\320\332\330\377\203\377\377\377" \ + "\377\4\373\374\374\377\233\262\255\377\224\255\250\377\363\366\365\377" \ + "\203\377\377\377\377\10\354\360\357\377\222\253\246\377\222\254\247\377" \ + "\255\300\274\377\233\262\255\377\223\254\247\377\233\262\255\377\332" \ + "\342\341\377\332\333\343\342\377\3\327\337\336\377\251\270\265\377q\207" \ + "\202\377\216Slg\377\3q\206\202\377\251\267\265\377\326\337\336\377\353" \ + "\333\343\342\377\5\331\342\341\377\232\261\255\377\223\254\247\377\243" \ + "\270\264\377\376\376\376\377\212\377\377\377\377\4\261\303\277\377\223" \ + "\254\247\377\225\255\251\377\326\337\336\377\343\333\343\342\377\4\332" \ + "\342\341\377\227\257\252\377\223\254\247\377\235\264\257\377\204\377" \ + "\377\377\377\3\304\321\317\377\223\254\247\377\307\324\321\377\204\377" \ + "\377\377\377\4\246\273\267\377\223\254\247\377\222\253\247\377\222\253" \ + "\246\377\202\223\254\247\377\1\304\321\317\377\335\333\343\342\377\6" \ + "\306\321\317\377\247\265\263\377\212\234\231\377o\205\201\377dzv\377" \ + "[sn\377\202Tlg\377\6[sn\377dzv\377o\205\201\377\212\234\231\377\247\265" \ + "\263\377\306\320\317\377\356\333\343\342\377\1\303\320\316\377\202\223" \ + "\254\247\377\1\320\333\331\377\212\377\377\377\377\1\357\363\362\377" \ + "\202\223\254\247\377\1\256\301\275\377\345\333\343\342\377\4\265\306" \ + "\303\377\223\254\247\377\222\254\246\377\342\351\347\377\203\377\377" \ + "\377\377\4\361\364\363\377\224\255\250\377\234\263\257\377\374\375\375" \ + "\377\203\377\377\377\377\4\333\343\341\377\223\253\246\377\222\254\246" \ + "\377\221\254\246\377\202\223\254\247\377\1\246\272\266\377\343\333\343" \ + "\342\377\2\332\342\341\377\331\342\341\377\364\333\343\342\377\4\245" \ + "\271\265\377\223\254\247\377\230\257\253\377\371\372\372\377\212\377" \ + "\377\377\377\1\303\321\316\377\202\223\254\247\377\1\315\330\326\377" \ + "\345\333\343\342\377\4\324\336\334\377\223\253\247\377\223\254\247\377" \ + "\257\302\275\377\204\377\377\377\377\3\262\304\301\377\223\254\247\377" \ + "\330\341\337\377\203\377\377\377\377\5\375\375\375\377\231\260\253\377" \ + "\223\254\247\377\230\260\253\377\257\301\276\377\202\223\254\247\377" \ + "\1\317\332\330\377\377\333\343\342\377\330\333\343\342\377\1\316\331" \ + "\330\377\202\223\254\247\377\1\277\316\313\377\212\377\377\377\377\4" \ + "\372\373\373\377\232\261\254\377\223\254\247\377\243\270\264\377\347" \ + "\333\343\342\377\4\247\273\270\377\222\253\246\377\223\253\247\377\362" \ + "\365\364\377\203\377\377\377\377\3\340\347\345\377\223\254\247\377\253" \ + "\276\272\377\204\377\377\377\377\4\307\323\321\377\223\253\247\377\223" \ + "\253\246\377\276\314\312\377\202\223\254\247\377\1\261\303\300\377\377" \ + "\333\343\342\377\330\333\343\342\377\1\260\302\277\377\202\223\254\247" \ + "\377\1\354\361\360\377\212\377\377\377\377\1\324\336\334\377\202\223" \ + "\254\247\377\1\301\317\315\377\347\333\343\342\377\1\312\326\324\377" \ + "\202\223\253\246\377\1\302\321\316\377\204\377\377\377\377\3\242\267" \ + "\263\377\223\254\247\377\351\356\355\377\203\377\377\377\377\10\364\367" \ + "\366\377\223\253\247\377\223\254\247\377\245\271\266\377\243\270\264" \ + "\377\223\254\247\377\227\257\252\377\327\340\337\377\377\333\343\342" \ + "\377\326\333\343\342\377\4\327\337\336\377\226\256\251\377\223\254\247" \ + "\377\256\300\275\377\213\377\377\377\377\4\247\273\267\377\223\254\247" \ + "\377\231\260\254\377\331\341\340\377\350\333\343\342\377\4\234\262\256" \ + "\377\223\254\247\377\227\257\252\377\374\374\374\377\203\377\377\377" \ + "\377\3\316\332\327\377\223\254\247\377\274\314\310\377\204\377\377\377" \ + "\377\4\261\304\300\377\222\253\246\377\222\254\247\377\274\313\311\377" \ + "\202\223\254\247\377\1\275\314\311\377\356\333\343\342\377\1\277\313" \ + "\311\377\202\260\275\273\377\1\311\323\322\377\343\333\343\342\377\1" \ + "\274\313\310\377\202\223\254\247\377\1\333\343\342\377\212\377\377\377" \ + "\377\1\346\353\352\377\202\223\254\247\377\1\266\306\303\377\351\333" \ + "\343\342\377\4\276\314\312\377\223\254\246\377\222\253\246\377\330\341" \ + "\337\377\203\377\377\377\377\4\370\371\371\377\227\257\252\377\226\257" \ + "\252\377\367\371\370\377\203\377\377\377\377\7\345\353\352\377\223\254" \ + "\246\377\223\253\246\377\261\303\301\377\231\261\254\377\223\254\247" \ + "\377\236\265\261\377\356\333\343\342\377\1\202\225\221\377\202Slg\377" \ + "\1\243\262\257\377\343\333\343\342\377\4\236\264\260\377\223\254\247" \ + "\377\236\264\260\377\375\375\375\377\212\377\377\377\377\4\270\310\305" \ + "\377\223\254\247\377\224\254\247\377\323\335\333\377\351\333\343\342" \ + "\377\4\330\341\337\377\224\255\251\377\223\254\247\377\244\271\264\377" \ + "\204\377\377\377\377\3\275\314\311\377\223\254\247\377\315\331\326\377" \ + "\204\377\377\377\377\7\240\266\262\377\223\254\247\377\226\255\251\377" \ + "\265\306\302\377\225\255\250\377\255\277\274\377\327\340\337\377\355" \ + "\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\342\333" \ + "\343\342\377\1\307\324\322\377\202\223\254\247\377\1\312\326\323\377" \ + "\212\377\377\377\377\4\365\367\367\377\225\255\250\377\223\254\247\377" \ + "\252\275\272\377\353\333\343\342\377\4\260\301\276\377\223\253\246\377" \ + "\222\253\247\377\351\356\355\377\203\377\377\377\377\4\352\357\356\377" \ + "\223\254\247\377\241\266\262\377\376\376\376\377\203\377\377\377\377" \ + "\1\323\335\333\377\202\223\254\246\377\2\275\314\311\377\324\336\334" \ + "\377\357\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\342\333\343\342\377\4\251\275\271\377\223\254\247\377\225\255\250\377" \ + "\364\367\366\377\212\377\377\377\377\1\312\326\323\377\202\223\254\247" \ + "\377\1\310\324\322\377\353\333\343\342\377\4\321\333\331\377\223\254" \ + "\246\377\222\254\246\377\266\307\304\377\204\377\377\377\377\3\253\277" \ + "\273\377\223\254\247\377\336\346\344\377\203\377\377\377\377\4\372\373" \ + "\373\377\226\257\251\377\223\254\247\377\236\264\260\377\360\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\341\333\343\342" \ + "\377\1\322\334\333\377\202\223\254\247\377\1\270\310\305\377\212\377" \ + "\377\377\377\4\375\375\375\377\236\264\260\377\223\254\247\377\236\265" \ + "\260\377\355\333\343\342\377\4\243\270\264\377\223\254\247\377\224\255" \ + "\247\377\366\370\370\377\203\377\377\377\377\3\331\342\340\377\223\254" \ + "\247\377\261\303\300\377\204\377\377\377\377\4\276\314\312\377\223\253" \ + "\246\377\223\253\247\377\314\330\326\377\331\333\343\342\377\6\331\341" \ + "\340\377\306\320\317\377\256\273\271\377\237\257\254\377\230\250\245" \ + "\377\220\242\236\377\220\216\237\234\377\1g~y\377\202Slg\377\1\243\262" \ + "\257\377\341\333\343\342\377\1\265\306\302\377\202\223\254\247\377\1" \ + "\346\353\352\377\212\377\377\377\377\1\333\343\342\377\202\223\254\247" \ + "\377\1\275\314\311\377\355\333\343\342\377\4\306\323\320\377\222\253" \ + "\246\377\223\254\246\377\313\327\325\377\203\377\377\377\377\4\374\375" \ + "\375\377\234\263\257\377\223\254\247\377\357\363\362\377\203\377\377" \ + "\377\377\4\357\363\362\377\223\254\247\377\223\253\246\377\253\275\272" \ + "\377\327\333\343\342\377\3\271\306\304\377\205\230\224\377Yrm\377\230" \ + "Slg\377\1\243\262\257\377\340\333\343\342\377\4\331\341\340\377\230\260" \ + "\253\377\223\254\247\377\247\273\267\377\213\377\377\377\377\4\256\300" \ + "\275\377\223\254\247\377\226\256\252\377\327\340\337\377\355\333\343" \ + "\342\377\5\332\342\341\377\230\260\254\377\223\254\247\377\233\262\255" \ + "\377\376\376\376\377\203\377\377\377\377\3\307\324\321\377\223\254\247" \ + "\377\302\320\315\377\204\377\377\377\377\1\245\272\265\377\202\223\254" \ + "\247\377\1\325\337\335\377\324\333\343\342\377\2\317\330\327\377\200" \ + "\224\220\377\233Slg\377\1\243\262\257\377\340\333\343\342\377\1\300\316" \ + "\314\377\202\223\254\247\377\1\324\336\334\377\212\377\377\377\377\1" \ + "\354\361\360\377\202\223\254\247\377\1\261\303\277\377\357\333\343\342" \ + "\377\1\270\311\306\377\202\222\254\247\377\1\336\346\344\377\203\377" \ + "\377\377\377\13\363\366\365\377\224\255\250\377\231\261\254\377\372\373" \ + "\373\377\374\375\375\377\330\341\337\377\252\276\272\377\223\254\247" \ + "\377\222\254\246\377\223\253\247\377\271\311\306\377\323\333\343\342" \ + "\377\2\320\331\330\377h\177z\377\234Slg\377\1\243\262\257\377\340\333" \ + "\343\342\377\4\242\267\263\377\223\254\247\377\232\261\254\377\372\373" \ + "\373\377\212\377\377\377\377\1\277\316\313\377\202\223\254\247\377\1" \ + "\317\332\330\377\357\333\343\342\377\4\326\337\336\377\224\254\247\377" \ + "\223\254\247\377\252\276\272\377\204\377\377\377\377\13\266\307\303\377" \ + "\223\254\247\377\260\302\276\377\233\263\256\377\223\254\247\377\234" \ + "\263\257\377\306\323\320\377\236\265\260\377\223\254\247\377\234\263" \ + "\256\377\332\342\341\377\322\333\343\342\377\1x\214\210\377\235Slg\377" \ + "\1\243\262\257\377\337\333\343\342\377\1\314\327\325\377\202\223\254" \ + "\247\377\1\303\321\316\377\212\377\377\377\377\4\371\372\372\377\230" \ + "\257\253\377\223\254\247\377\245\272\266\377\361\333\343\342\377\4\252" \ + "\276\272\377\222\254\246\377\223\253\246\377\357\362\362\377\202\377" \ + "\377\377\377\11\341\350\346\377\253\276\273\377\223\253\247\377\223\254" \ + "\246\377\253\276\272\377\330\341\340\377\374\375\375\377\377\377\377" \ + "\377\315\330\326\377\202\223\254\247\377\1\305\322\320\377\321\333\343" \ + "\342\377\1\267\304\302\377\212Slg\377\3Xpk\377byt\377k\201|\377\216l" \ + "\201}\377\1[sn\377\202Slg\377\1\243\262\257\377\337\333\343\342\377\1" \ + "\256\300\275\377\202\223\254\247\377\1\357\363\362\377\212\377\377\377" \ + "\377\1\321\333\331\377\202\223\254\247\377\1\304\321\317\377\361\333" \ + "\343\342\377\12\315\330\326\377\222\254\246\377\222\254\247\377\272\312" \ + "\307\377\317\332\330\377\242\270\263\377\223\254\247\377\227\257\252" \ + "\377\275\314\311\377\352\357\356\377\204\377\377\377\377\4\366\370\370" \ + "\377\226\256\251\377\223\254\247\377\247\273\267\377\321\333\343\342" \ + "\377\1\204\226\223\377\205Slg\377\5]up\377\212\234\231\377\270\305\303" \ + "\377\315\326\325\377\327\337\336\377\221\333\343\342\377\1\202\225\221" \ + "\377\202Slg\377\1\243\262\257\377\336\333\343\342\377\4\325\336\335\377" \ + "\225\255\250\377\223\254\247\377\261\303\300\377\213\377\377\377\377" \ + "\4\243\271\264\377\223\254\247\377\233\262\255\377\332\342\341\377\362" \ + "\333\343\342\377\7\236\264\261\377\223\254\247\377\222\253\246\377\223" \ + "\254\247\377\241\267\263\377\316\331\327\377\367\371\371\377\207\377" \ + "\377\377\377\1\274\313\310\377\202\223\254\247\377\1\320\333\331\377" \ + "\320\333\343\342\377\1`ws\377\204Slg\377\2\220\241\236\377\330\341\340" \ + "\377\225\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\336\333\343\342\377\1\271\311\306\377\202\223\254\247\377\1\337\346" \ + "\345\377\212\377\377\377\377\1\342\351\347\377\202\223\254\247\377\1" \ + "\270\310\305\377\363\333\343\342\377\5\301\317\315\377\222\253\246\377" \ + "\223\253\247\377\300\317\314\377\376\376\376\377\211\377\377\377\377" \ + "\1\351\356\355\377\202\223\254\247\377\1\262\304\301\377\317\333\343" \ + "\342\377\1\322\333\332\377\204Slg\377\2{\217\213\377\331\342\341\377" \ + "\226\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\335" \ + "\333\343\342\377\5\332\342\341\377\234\262\256\377\223\254\247\377\241" \ + "\267\262\377\376\376\376\377\212\377\377\377\377\4\265\306\302\377\223" \ + "\254\247\377\224\255\250\377\324\336\334\377\363\333\343\342\377\4\331" \ + "\341\340\377\231\260\254\377\223\254\247\377\246\272\266\377\213\377" \ + "\377\377\377\4\252\275\271\377\223\254\247\377\227\257\252\377\330\340" \ + "\337\377\316\333\343\342\377\1\307\321\320\377\204Slg\377\1\311\323\322" \ + "\377\227\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377" \ + "\335\333\343\342\377\1\305\322\320\377\202\223\254\247\377\1\315\331" \ + "\326\377\212\377\377\377\377\4\362\365\364\377\224\254\250\377\223\254" \ + "\247\377\254\277\274\377\365\333\343\342\377\1\266\306\303\377\202\223" \ + "\254\247\377\1\345\353\352\377\212\377\377\377\377\1\330\341\337\377" \ + "\202\223\254\247\377\1\276\315\312\377\316\333\343\342\377\1\303\316" \ + "\314\377\203Slg\377\2Zrm\377\332\342\341\377\227\333\343\342\377\1\267" \ + "\303\301\377\202\243\262\257\377\1\304\316\315\377\335\333\343\342\377" \ + "\4\247\273\267\377\223\254\247\377\226\256\252\377\367\371\370\377\212" \ + "\377\377\377\377\1\306\323\321\377\202\223\254\247\377\1\313\326\325" \ + "\377\365\333\343\342\377\1\323\334\333\377\202\223\254\247\377\1\267" \ + "\310\305\377\212\377\377\377\377\4\374\374\374\377\233\262\256\377\223" \ + "\254\247\377\240\266\261\377\316\333\343\342\377\1\322\333\332\377\203" \ + "Slg\377\1q\207\202\377\370\333\343\342\377\1\320\333\331\377\202\223" \ + "\254\247\377\1\274\313\310\377\212\377\377\377\377\4\374\375\374\377" \ + "\234\263\256\377\223\254\247\377\241\266\262\377\367\333\343\342\377" \ + "\4\252\275\271\377\223\254\247\377\225\255\250\377\364\366\366\377\212" \ + "\377\377\377\377\1\306\323\321\377\202\223\254\247\377\1\312\326\324" \ + "\377\316\333\343\342\377\1[sn\377\202Slg\377\1{\217\213\377\370\333\343" \ + "\342\377\1\262\304\300\377\202\223\254\247\377\1\351\356\355\377\212" \ + "\377\377\377\377\1\330\341\337\377\202\223\254\247\377\1\277\316\313" \ + "\377\367\333\343\342\377\1\310\324\322\377\202\223\254\247\377\1\311" \ + "\325\323\377\212\377\377\377\377\4\362\365\364\377\224\254\250\377\223" \ + "\254\247\377\253\276\273\377\316\333\343\342\377\1y\215\211\377\202S" \ + "lg\377\1o\204\200\377\367\333\343\342\377\4\330\340\337\377\227\257\252" \ + "\377\223\254\247\377\253\276\272\377\213\377\377\377\377\4\252\276\272" \ + "\377\223\254\247\377\230\257\253\377\330\341\337\377\370\333\343\342" \ + "\377\4\236\265\260\377\223\254\247\377\236\264\257\377\375\375\375\377" \ + "\212\377\377\377\377\4\265\306\302\377\223\254\247\377\224\255\250\377" \ + "\324\335\334\377\315\333\343\342\377\1\270\304\302\377\202Slg\377\2U" \ + "ni\377\320\332\330\377\366\333\343\342\377\1\276\315\312\377\202\223" \ + "\254\247\377\1\330\341\337\377\212\377\377\377\377\1\351\356\355\377" \ + "\202\223\254\247\377\1\264\305\302\377\371\333\343\342\377\1\275\314" \ + "\311\377\202\223\254\247\377\1\333\343\341\377\212\377\377\377\377\1" \ + "\342\351\347\377\202\223\254\247\377\1\267\307\304\377\316\333\343\342" \ + "\377\1q\206\202\377\202Slg\377\1\233\253\250\377\227\333\343\342\377" \ + "\1\205\230\224\377\202Voj\377\1\244\263\260\377\333\333\343\342\377\4" \ + "\237\265\261\377\223\254\247\377\234\263\256\377\374\375\374\377\212" \ + "\377\377\377\377\1\274\313\310\377\202\223\254\247\377\1\321\333\332" \ + "\377\371\333\343\342\377\4\327\340\336\377\226\256\252\377\223\254\247" \ + "\377\255\300\274\377\213\377\377\377\377\4\243\271\264\377\223\254\247" \ + "\377\232\261\255\377\331\342\341\377\315\333\343\342\377\5\313\325\323" \ + "\377ayt\377Slg\377Xpk\377\305\317\316\377\226\333\343\342\377\1\202\225" \ + "\221\377\202Slg\377\1\243\262\257\377\332\333\343\342\377\1\311\325\323" \ + "\377\202\223\254\247\377\1\310\325\322\377\212\377\377\377\377\4\367" \ + "\371\370\377\226\256\251\377\223\254\247\377\250\274\270\377\373\333" \ + "\343\342\377\1\261\303\277\377\202\223\254\247\377\1\356\361\361\377" \ + "\212\377\377\377\377\1\322\334\332\377\202\223\254\247\377\1\303\320" \ + "\316\377\316\333\343\342\377\5\305\317\316\377]up\377Slg\377^vq\377\275" \ + "\311\307\377\225\333\343\342\377\1\202\225\221\377\202Slg\377\1\243\262" \ + "\257\377\332\333\343\342\377\4\253\276\273\377\223\254\247\377\224\255" \ + "\250\377\363\366\366\377\212\377\377\377\377\1\315\330\326\377\202\223" \ + "\254\247\377\1\306\323\321\377\373\333\343\342\377\1\317\332\330\377" \ + "\202\223\254\247\377\1\300\317\314\377\212\377\377\377\377\4\371\373" \ + "\372\377\230\260\253\377\223\254\247\377\244\271\265\377\317\333\343" \ + "\342\377\6\314\325\324\377}\221\215\377Slg\377Tlg\377\206\230\225\377" \ + "\277\312\310\377\223\333\343\342\377\1\202\225\221\377\202Slg\377\1\243" \ + "\262\257\377\331\333\343\342\377\4\323\335\334\377\224\255\250\377\223" \ + "\254\247\377\267\307\304\377\212\377\377\377\377\5\376\376\376\377\240" \ + "\266\262\377\223\254\247\377\235\263\257\377\332\342\341\377\374\333" \ + "\343\342\377\4\245\272\266\377\223\254\247\377\230\260\253\377\371\373" \ + "\372\377\212\377\377\377\377\1\301\317\314\377\202\223\254\247\377\1" \ + "\316\331\327\377\313\333\343\342\377\1\313\325\324\377\204\260\275\273" \ + "\377\1\206\230\225\377\203Slg\377\5czu\377\177\223\217\377\227\250\245" \ + "\377\244\262\260\377\253\271\267\377\216\260\275\273\377\1s\210\204\377" \ + "\202Slg\377\1\243\262\257\377\331\333\343\342\377\1\267\307\304\377\202" \ + "\223\254\247\377\1\344\352\351\377\212\377\377\377\377\1\336\346\344" \ + "\377\202\223\254\247\377\1\273\312\307\377\375\333\343\342\377\1\304" \ + "\321\317\377\202\223\254\247\377\1\322\334\332\377\212\377\377\377\377" \ + "\1\356\361\361\377\202\223\254\247\377\1\260\302\277\377\313\333\343" \ + "\342\377\1\250\267\264\377\236Slg\377\1\243\262\257\377\330\333\343\342" \ + "\377\4\331\342\341\377\232\261\255\377\223\254\247\377\245\272\266\377" \ + "\213\377\377\377\377\4\261\303\277\377\223\254\247\377\225\256\251\377" \ + "\326\337\336\377\375\333\343\342\377\4\332\342\341\377\233\262\255\377" \ + "\223\254\247\377\244\271\265\377\213\377\377\377\377\4\257\302\276\377" \ + "\223\254\247\377\226\256\251\377\327\337\336\377\312\333\343\342\377" \ + "\1\250\267\264\377\236Slg\377\1\243\262\257\377\330\333\343\342\377\1" \ + "\302\320\316\377\202\223\254\247\377\1\322\335\333\377\212\377\377\377" \ + "\377\1\357\363\362\377\202\223\254\247\377\1\257\301\276\377\377\333" \ + "\343\342\377\1\270\310\305\377\202\223\254\247\377\1\343\351\350\377" \ + "\212\377\377\377\377\1\335\344\343\377\202\223\254\247\377\1\273\313" \ + "\310\377\312\333\343\342\377\1\250\267\264\377\236Slg\377\1\243\262\257" \ + "\377\330\333\343\342\377\4\244\271\265\377\223\254\247\377\231\260\254" \ + "\377\372\373\373\377\212\377\377\377\377\1\302\320\315\377\202\223\254" \ + "\247\377\1\315\330\327\377\377\333\343\342\377\4\324\336\334\377\224" \ + "\255\250\377\223\254\247\377\266\307\303\377\212\377\377\377\377\5\375" \ + "\376\375\377\237\265\261\377\223\254\247\377\236\264\260\377\332\342" \ + "\341\377\311\333\343\342\377\1\250\267\264\377\236Slg\377\1\243\262\257" \ + "\377\327\333\343\342\377\1\316\331\327\377\202\223\254\247\377\1\301" \ + "\317\314\377\212\377\377\377\377\4\372\373\373\377\231\261\254\377\223" \ + "\254\247\377\243\270\264\377\377\333\343\342\377\202\333\343\342\377" \ + "\4\254\277\274\377\223\254\247\377\224\255\250\377\363\366\365\377\212" \ + "\377\377\377\377\1\313\327\325\377\202\223\254\247\377\1\307\324\322" \ + "\377\311\333\343\342\377\1\250\267\264\377\236Slg\377\1\243\262\257\377" \ + "\327\333\343\342\377\1\260\302\276\377\202\223\254\247\377\1\356\362" \ + "\361\377\212\377\377\377\377\1\324\336\334\377\202\223\254\247\377\1" \ + "\301\317\315\377\377\333\343\342\377\202\333\343\342\377\1\312\326\324" \ + "\377\202\223\254\247\377\1\307\324\321\377\212\377\377\377\377\4\366" \ + "\370\367\377\225\256\251\377\223\254\247\377\251\275\271\377\311\333" \ + "\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\230\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\326\333\343\342" \ + "\377\4\326\337\336\377\226\256\251\377\223\254\247\377\260\302\276\377" \ + "\213\377\377\377\377\4\246\273\267\377\223\254\247\377\231\261\254\377" \ + "\331\341\340\377\377\333\343\342\377\203\333\343\342\377\4\241\266\262" \ + "\377\223\254\247\377\234\263\256\377\374\375\374\377\212\377\377\377" \ + "\377\1\272\312\307\377\202\223\254\247\377\1\322\334\333\377\310\333" \ + "\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\230\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\326\333\343\342" \ + "\377\1\273\313\310\377\202\223\254\247\377\1\335\345\344\377\212\377" \ + "\377\377\377\1\346\353\352\377\202\223\254\247\377\1\266\306\303\377" \ + "\377\333\343\342\377\204\333\343\342\377\1\277\315\313\377\202\223\254" \ + "\247\377\1\330\341\337\377\212\377\377\377\377\1\350\355\354\377\202" \ + "\223\254\247\377\1\264\305\302\377\310\333\343\342\377\1\250\267\264" \ + "\377\202Slg\377\1x\214\210\377\230\333\343\342\377\1\202\225\221\377" \ + "\202Slg\377\1\243\262\257\377\325\333\343\342\377\5\332\342\341\377\235" \ + "\264\257\377\223\254\247\377\240\266\261\377\376\376\376\377\212\377" \ + "\377\377\377\4\270\310\305\377\223\254\247\377\224\254\247\377\323\335" \ + "\333\377\377\333\343\342\377\204\333\343\342\377\4\330\341\337\377\230" \ + "\257\253\377\223\254\247\377\253\276\273\377\213\377\377\377\377\4\251" \ + "\274\270\377\223\254\247\377\230\260\253\377\331\341\340\377\307\333" \ + "\343\342\377\1\250\267\264\377\202Slg\377\1x\214\210\377\230\333\343" \ + "\342\377\1\202\225\221\377\202Slg\377\1\243\262\257\377\325\333\343\342" \ + "\377\1\307\324\322\377\202\223\254\247\377\1\314\330\325\377\212\377" \ + "\377\377\377\4\364\367\366\377\225\255\250\377\223\254\247\377\252\276" \ + "\272\377\377\333\343\342\377\206\333\343\342\377\1\263\305\301\377\202" \ + "\223\254\247\377\1\352\357\356\377\212\377\377\377\377\1\326\340\336" \ + "\377\202\223\254\247\377\1\300\316\314\377\307\333\343\342\377\1\250" \ + "\267\264\377\202Slg\377\1x\214\210\377\230\333\343\342\377\1\223\244" \ + "\241\377\202l\201}\377\1\255\272\270\377\325\333\343\342\377\4\251\274" \ + "\271\377\223\254\247\377\225\256\251\377\366\370\370\377\212\377\377" \ + "\377\377\1\312\326\323\377\202\223\254\247\377\1\310\325\323\377\377" \ + "\333\343\342\377\206\333\343\342\377\1\321\333\332\377\202\223\254\247" \ + "\377\1\274\314\311\377\212\377\377\377\377\4\373\374\374\377\233\262" \ + "\255\377\223\254\247\377\242\267\263\377\377\333\343\342\377\274\333" \ + "\343\342\377\1\322\334\332\377\202\223\254\247\377\1\272\312\307\377" \ + "\212\377\377\377\377\4\375\375\375\377\236\264\260\377\223\254\247\377" \ + "\237\265\260\377\377\333\343\342\377\210\333\343\342\377\4\250\274\270" \ + "\377\223\254\247\377\226\256\252\377\367\371\371\377\212\377\377\377" \ + "\377\1\304\322\317\377\202\223\254\247\377\1\314\327\325\377\377\333" \ + "\343\342\377\273\333\343\342\377\1\264\305\302\377\202\223\254\247\377" \ + "\1\350\355\354\377\212\377\377\377\377\1\333\343\342\377\202\223\254" \ + "\247\377\1\275\314\311\377\377\333\343\342\377\210\333\343\342\377\1" \ + "\306\323\321\377\202\223\254\247\377\1\316\331\327\377\212\377\377\377" \ + "\377\1\361\364\363\377\202\223\254\247\377\1\255\300\274\377\377\333" \ + "\343\342\377\272\333\343\342\377\4\331\341\340\377\230\260\253\377\223" \ + "\254\247\377\251\275\271\377\213\377\377\377\377\4\256\300\275\377\223" \ + "\254\247\377\226\257\252\377\327\340\337\377\377\333\343\342\377\210" \ + "\333\343\342\377\5\332\342\341\377\234\263\257\377\223\254\247\377\241" \ + "\267\263\377\376\376\376\377\212\377\377\377\377\4\263\305\301\377\223" \ + "\254\247\377\225\255\250\377\325\336\335\377\377\333\343\342\377\271" \ + "\333\343\342\377\1\300\316\314\377\202\223\254\247\377\1\327\340\336" \ + "\377\212\377\377\377\377\1\354\361\360\377\202\223\254\247\377\1\261" \ + "\303\300\377\377\333\343\342\377\212\333\343\342\377\1\272\312\307\377" \ + "\202\223\254\247\377\1\340\347\345\377\212\377\377\377\377\1\341\350" \ + "\346\377\202\223\254\247\377\1\271\311\306\377\340\333\343\342\377\1" \ + "\317\330\327\377\202\305\320\316\377\1\320\331\330\377\324\333\343\342" \ + "\377\4\241\267\263\377\223\254\247\377\233\262\255\377\374\374\374\377" \ + "\212\377\377\377\377\1\277\316\313\377\202\223\254\247\377\1\317\332" \ + "\330\377\377\333\343\342\377\212\333\343\342\377\4\326\337\336\377\225" \ + "\256\251\377\223\254\247\377\262\304\300\377\212\377\377\377\377\5\376" \ + "\376\376\377\243\270\264\377\223\254\247\377\234\262\256\377\332\342" \ + "\341\377\337\333\343\342\377\1\216\237\234\377\202Slg\377\1\227\247\244" \ + "\377\323\333\343\342\377\1\314\327\325\377\202\223\254\247\377\1\305" \ + "\323\320\377\212\377\377\377\377\4\371\372\372\377\230\257\253\377\223" \ + "\254\247\377\246\272\266\377\377\333\343\342\377\214\333\343\342\377" \ + "\1\257\301\276\377\202\223\254\247\377\1\360\363\363\377\212\377\377" \ + "\377\377\1\317\332\330\377\202\223\254\247\377\1\305\322\320\377\337" \ + "\333\343\342\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\323\333" \ + "\343\342\377\1\255\300\274\377\202\223\254\247\377\1\361\364\364\377" \ + "\212\377\377\377\377\1\320\333\331\377\202\223\254\247\377\1\304\321" \ + "\317\377\377\333\343\342\377\214\333\343\342\377\1\315\330\326\377\202" \ + "\223\254\247\377\1\304\321\317\377\212\377\377\377\377\4\370\372\371" \ + "\377\227\257\252\377\223\254\247\377\246\273\267\377\337\333\343\342" \ + "\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\322\333\343\342\377" \ + "\4\325\336\335\377\224\255\250\377\223\254\247\377\264\305\302\377\213" \ + "\377\377\377\377\4\243\271\264\377\223\254\247\377\233\262\255\377\332" \ + "\342\341\377\377\333\343\342\377\215\333\343\342\377\4\243\270\264\377" \ + "\223\254\247\377\232\261\255\377\373\374\373\377\212\377\377\377\377" \ + "\1\276\315\312\377\202\223\254\247\377\1\320\332\331\377\336\333\343" \ + "\342\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\322\333\343\342" \ + "\377\1\271\311\306\377\202\223\254\247\377\1\341\350\347\377\212\377" \ + "\377\377\377\1\342\351\347\377\202\223\254\247\377\1\270\310\306\377" \ + "\377\333\343\342\377\216\333\343\342\377\1\301\317\315\377\202\223\254" \ + "\247\377\1\325\337\335\377\212\377\377\377\377\1\353\360\357\377\202" \ + "\223\254\247\377\1\262\303\300\377\334\333\343\342\377\3\304\317\316" \ + "\377\220\242\236\377]to\377\202Slg\377\1\227\247\244\377\321\333\343" \ + "\342\377\5\332\342\341\377\233\262\256\377\223\254\247\377\243\270\264" \ + "\377\376\376\376\377\212\377\377\377\377\4\264\306\302\377\223\254\247" \ + "\377\224\255\250\377\325\336\335\377\377\333\343\342\377\216\333\343" \ + "\342\377\4\331\341\340\377\231\260\254\377\223\254\247\377\247\273\267" \ + "\377\213\377\377\377\377\4\255\300\274\377\223\254\247\377\227\257\252" \ + "\377\327\340\337\377\330\333\343\342\377\3\323\335\333\377\246\263\261" \ + "\377p\206\202\377\205Slg\377\1\227\247\244\377\321\333\343\342\377\1" \ + "\304\322\317\377\202\223\254\247\377\1\320\333\331\377\212\377\377\377" \ + "\377\4\362\365\364\377\224\254\250\377\223\254\247\377\236\264\260\377" \ + "\377\333\343\342\377\220\333\343\342\377\1\266\306\303\377\202\223\254" \ + "\247\377\1\346\354\353\377\202\377\377\377\377\4\370\371\371\377\342" \ + "\351\347\377\333\343\342\377\360\363\363\377\204\377\377\377\377\1\332" \ + "\343\341\377\202\223\254\247\377\1\276\315\312\377\326\333\343\342\377" \ + "\3\273\306\304\377\206\230\225\377Xpl\377\207Slg\377\1\227\247\244\377" \ + "\321\333\343\342\377\4\246\272\266\377\223\254\247\377\227\257\252\377" \ + "\370\372\371\377\212\377\377\377\377\1\306\323\321\377\203\223\254\247" \ + "\377\1\314\327\325\377\377\333\343\342\377\217\333\343\342\377\6\323" \ + "\335\333\377\224\254\247\377\223\254\247\377\267\307\304\377\304\321" \ + "\317\377\242\267\263\377\204\223\254\247\377\10\232\262\255\377\263\304" \ + "\301\377\353\360\357\377\377\377\377\377\374\375\375\377\235\264\257" \ + "\377\223\254\247\377\237\265\261\377\323\333\343\342\377\3\315\327\325" \ + "\377\233\253\250\377g}y\377\212Slg\377\1\227\247\244\377\320\333\343" \ + "\342\377\1\320\332\331\377\202\223\254\247\377\1\277\315\312\377\212" \ + "\377\377\377\377\6\374\374\374\377\233\262\256\377\223\254\247\377\235" \ + "\264\257\377\223\254\247\377\266\307\304\377\377\333\343\342\377\220" \ + "\333\343\342\377\3\252\275\272\377\222\253\247\377\222\254\247\377\202" \ + "\223\254\247\377\12\237\265\261\377\266\307\304\377\276\315\312\377\250" \ + "\274\270\377\225\256\251\377\223\254\247\377\225\256\251\377\312\327" \ + "\324\377\375\376\376\377\311\325\323\377\202\223\254\247\377\1\311\325" \ + "\323\377\317\333\343\342\377\4\330\341\340\377\260\275\273\377|\217\214" \ + "\377Umh\377\214Slg\377\1\227\247\244\377\320\333\343\342\377\1\262\303" \ + "\300\377\202\223\254\247\377\1\354\360\357\377\212\377\377\377\377\1" \ + "\330\341\337\377\202\223\254\247\377\3\306\323\320\377\223\254\247\377" \ + "\250\273\270\377\377\333\343\342\377\220\333\343\342\377\1\263\305\301" \ + "\377\202\223\254\247\377\2\263\305\301\377\362\365\365\377\204\377\377" \ + "\377\377\11\374\374\374\377\317\332\330\377\226\257\252\377\223\254\247" \ + "\377\257\301\276\377\363\365\365\377\225\255\250\377\223\254\247\377" \ + "\253\276\272\377\315\333\343\342\377\3\305\320\316\377\220\242\236\377" \ + "_vr\377\217Slg\377\1\227\247\244\377\317\333\343\342\377\4\327\340\337" \ + "\377\227\257\252\377\223\254\247\377\255\300\274\377\213\377\377\377" \ + "\377\6\252\275\271\377\223\254\247\377\233\262\255\377\366\370\370\377" \ + "\224\255\250\377\230\260\254\377\377\333\343\342\377\217\333\343\342" \ + "\377\4\321\333\331\377\226\256\251\377\223\254\247\377\324\336\334\377" \ + "\210\377\377\377\377\10\355\361\361\377\243\270\264\377\223\254\247\377" \ + "\315\330\326\377\267\310\305\377\223\254\247\377\224\255\250\377\323" \ + "\335\334\377\311\333\343\342\377\3\324\335\334\377\245\264\262\377q\206" \ + "\203\377\217Slg\377\1\\to\377\202Slg\377\1\227\247\244\377\317\333\343" \ + "\342\377\1\275\314\311\377\202\223\254\247\377\1\333\343\341\377\212" \ + "\377\377\377\377\1\351\356\355\377\202\223\254\247\377\5\304\322\317" \ + "\377\377\377\377\377\231\261\254\377\224\254\247\377\331\342\341\377" \ + "\377\333\343\342\377\215\333\343\342\377\4\332\342\341\377\244\271\265" \ + "\377\223\254\247\377\302\320\316\377\212\377\377\377\377\4\351\356\355" \ + "\377\225\255\250\377\226\256\251\377\327\340\335\377\202\223\254\247" \ + "\377\1\266\307\304\377\307\333\343\342\377\3\273\307\305\377\206\231" \ + "\225\377Xpl\377\216Slg\377\4d{w\377\230\250\245\377\313\325\323\377\216" \ + "\237\234\377\202Slg\377\1\227\247\244\377\317\333\343\342\377\4\237\265" \ + "\261\377\223\254\247\377\236\264\257\377\375\375\375\377\212\377\377" \ + "\377\377\1\274\313\310\377\202\223\254\247\377\202\361\364\363\377\2" \ + "\223\254\247\377\240\265\261\377\377\333\343\342\377\216\333\343\342" \ + "\377\4\306\323\321\377\223\254\247\377\244\271\264\377\373\374\374\377" \ + "\213\377\377\377\377\7\310\325\322\377\223\254\247\377\267\310\305\377" \ + "\246\272\266\377\223\254\247\377\232\261\254\377\331\341\340\377\303" \ + "\333\343\342\377\3\316\327\326\377\233\253\251\377g}y\377\216Slg\377" \ + "\4Wpj\377\204\226\223\377\270\305\302\377\332\342\341\377\202\333\343" \ + "\342\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\316\333\343\342" \ + "\377\1\311\325\323\377\202\223\254\247\377\1\311\325\323\377\206\377" \ + "\377\377\377\14\346\353\352\377\301\317\314\377\337\346\345\377\376\376" \ + "\376\377\367\371\370\377\226\256\251\377\223\254\247\377\263\304\301" \ + "\377\377\377\377\377\332\342\341\377\223\254\247\377\256\302\276\377" \ + "\377\333\343\342\377\216\333\343\342\377\3\267\307\304\377\223\254\247" \ + "\377\316\331\327\377\214\377\377\377\377\4\367\370\370\377\223\254\247" \ + "\377\240\266\262\377\323\335\333\377\202\223\254\247\377\1\302\320\316" \ + "\377\300\333\343\342\377\4\330\341\340\377\261\275\273\377|\220\214\377" \ + "Umh\377\216Slg\377\3p\205\201\377\244\263\260\377\323\334\333\377\205" \ + "\333\343\342\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\316\333" \ + "\343\342\377\4\253\276\272\377\223\254\247\377\225\255\250\377\364\367" \ + "\366\377\205\377\377\377\377\1\326\337\336\377\203\223\254\247\377\2" \ + "\302\320\315\377\315\330\326\377\202\223\254\247\377\5\340\347\346\377" \ + "\377\377\377\377\257\301\276\377\223\254\247\377\276\315\313\377\377" \ + "\333\343\342\377\216\333\343\342\377\3\251\274\271\377\223\254\247\377" \ + "\344\352\351\377\215\377\377\377\377\6\240\266\262\377\223\254\247\377" \ + "\362\365\364\377\231\261\254\377\223\254\247\377\244\271\265\377\252" \ + "\333\343\342\377\11\330\340\337\377\243\262\257\377\204\227\224\377j" \ + "\200{\377Wpj\377f|x\377{\216\213\377\255\274\271\377\330\341\340\377" \ + "\213\333\343\342\377\3\305\320\316\377\221\242\237\377_vr\377\216Slg" \ + "\377\3^vq\377\220\241\236\377\304\317\315\377\210\333\343\342\377\1\216" \ + "\237\234\377\202Slg\377\1\227\247\244\377\316\333\343\342\377\3\226\256" \ + "\251\377\223\254\247\377\266\307\303\377\206\377\377\377\377\15\252\276" \ + "\272\377\223\254\247\377\302\320\316\377\223\254\247\377\232\261\255" \ + "\377\237\265\261\377\223\254\247\377\242\270\263\377\376\376\376\377" \ + "\321\334\331\377\223\254\247\377\235\263\257\377\330\340\340\377\377" \ + "\333\343\342\377\216\333\343\342\377\3\234\262\256\377\223\254\247\377" \ + "\370\372\371\377\215\377\377\377\377\4\264\306\302\377\223\254\247\377" \ + "\344\352\351\377\300\316\313\377\202\223\254\247\377\1\325\336\335\377" \ + "\250\333\343\342\377\2\303\316\315\377m\202~\377\207Slg\377\2g}y\377" \ + "\306\321\317\377\207\333\343\342\377\3\324\335\334\377\246\265\263\377" \ + "q\206\203\377\216Slg\377\4Umh\377|\217\214\377\260\275\273\377\330\340" \ + "\337\377\212\333\343\342\377\1\257\274\273\377\202\216\237\234\377\1" \ + "\264\300\277\377\316\333\343\342\377\3\230\257\253\377\223\254\247\377" \ + "\276\315\312\377\206\377\377\377\377\5\270\311\305\377\223\254\247\377" \ + "\244\271\264\377\223\254\247\377\240\266\262\377\202\223\254\247\377" \ + "\5\317\332\330\377\335\345\343\377\226\256\251\377\223\254\247\377\312" \ + "\326\324\377\377\333\343\342\377\217\333\343\342\377\3\241\267\263\377" \ + "\223\254\247\377\356\362\362\377\215\377\377\377\377\4\253\276\272\377" \ + "\223\254\247\377\355\361\360\377\310\325\322\377\202\223\254\247\377" \ + "\1\327\340\336\377\247\333\343\342\377\2\261\275\273\377Woj\377\211S" \ + "lg\377\2[to\377\301\314\312\377\204\333\343\342\377\3\273\307\305\377" \ + "\207\231\225\377Yql\377\206Slg\377\4Rkg\377Skf\377Slf\377Rkg\377\204" \ + "Slg\377\3h~z\377\234\254\251\377\316\327\326\377\337\333\343\342\377" \ + "\3\233\262\255\377\223\254\247\377\271\311\306\377\206\377\377\377\377" \ + "\10\351\356\355\377\240\266\261\377\223\254\247\377\233\262\256\377\247" \ + "\273\266\377\223\254\247\377\226\256\252\377\267\310\304\377\202\223" \ + "\254\247\377\1\267\307\305\377\377\333\343\342\377\220\333\343\342\377" \ + "\3\260\302\277\377\223\254\247\377\330\341\340\377\214\377\377\377\377" \ + "\5\375\376\376\377\226\257\252\377\227\257\252\377\376\376\376\377\304" \ + "\321\317\377\202\223\254\247\377\1\332\342\341\377\246\333\343\342\377" \ + "\2\315\327\325\377]to\377\203Slg\377\5Zqm\377x\214\210\377\210\232\226" \ + "\377r\210\204\377Vnj\377\203Slg\377\5j\200{\377\327\340\336\377\316\327" \ + "\326\377\233\253\251\377g}y\377\211Slg\377\10Skf\377Rkg\377Slg\377Rl" \ + "f\377Slg\377Zqm\377\207\233\227\377\275\310\306\377\342\333\343\342\377" \ + "\3\236\264\260\377\223\254\247\377\264\306\302\377\207\377\377\377\377" \ + "\3\376\376\376\377\346\354\353\377\354\360\357\377\204\223\254\247\377" \ + "\2\232\261\255\377\305\322\320\377\377\333\343\342\377\221\333\343\342" \ + "\377\3\276\315\312\377\223\254\247\377\274\313\310\377\214\377\377\377" \ + "\377\7\344\352\351\377\223\254\247\377\253\277\273\377\377\377\377\377" \ + "\277\315\312\377\223\254\247\377\225\255\250\377\247\333\343\342\377" \ + "\1y\215\212\377\203Slg\377\2x\214\211\377\315\327\325\377\203\333\343" \ + "\342\377\2\301\314\312\377h~z\377\203Slg\377\2j\200{\377Umh\377\213S" \ + "lg\377\6Skf\377Rkg\377Slg\377Xqk\377\250\266\263\377\325\336\335\377" \ + "\344\333\343\342\377\3\241\266\262\377\223\254\247\377\260\302\276\377" \ + "\211\377\377\377\377\1\302\320\315\377\202\223\254\247\377\3\231\260" \ + "\253\377\260\302\277\377\325\336\336\377\377\333\343\342\377\222\333" \ + "\343\342\377\4\323\334\334\377\226\256\251\377\223\254\247\377\344\352" \ + "\351\377\212\377\377\377\377\10\374\374\374\377\245\272\265\377\223\254" \ + "\247\377\320\333\331\377\377\377\377\377\272\312\307\377\223\254\247" \ + "\377\230\257\253\377\246\333\343\342\377\1\314\325\325\377\203Slg\377" \ + "\2j\201|\377\326\337\336\377\205\333\343\342\377\2\311\323\321\377Yq" \ + "l\377\217Slg\377\4_uq\377Slh\377Slg\377i\200{\377\346\333\343\342\377" \ + "\3\244\271\265\377\223\254\247\377\253\276\273\377\210\377\377\377\377" \ + "\4\372\373\373\377\231\261\254\377\223\254\247\377\242\267\263\377\377" \ + "\333\343\342\377\226\333\343\342\377\4\275\314\311\377\223\254\247\377" \ + "\241\266\262\377\371\372\372\377\211\377\377\377\377\10\303\321\316\377" \ + "\223\254\247\377\254\277\273\377\376\376\376\377\377\377\377\377\265" \ + "\306\303\377\223\254\247\377\233\262\255\377\246\333\343\342\377\1\263" \ + "\300\276\377\203Slg\377\1\263\300\276\377\207\333\343\342\377\1\222\243" \ + "\237\377\214Slg\377\7Vnj\377\200\223\220\377\264\300\277\377\300\313" \ + "\311\377Umi\377Slg\377i\200{\377\346\333\343\342\377\3\247\273\267\377" \ + "\223\254\247\377\246\273\267\377\210\377\377\377\377\1\324\336\334\377" \ + "\202\223\254\247\377\1\302\320\315\377\377\333\343\342\377\227\333\343" \ + "\342\377\4\246\272\267\377\223\254\247\377\241\267\262\377\345\353\352" \ + "\377\206\377\377\377\377\5\367\371\370\377\267\310\305\377\223\254\247" \ + "\377\227\257\252\377\357\363\362\377\202\377\377\377\377\3\261\303\277" \ + "\377\223\254\247\377\236\264\260\377\246\333\343\342\377\1\232\252\247" \ + "\377\203Slg\377\1\317\330\327\377\207\333\343\342\377\1\260\275\273\377" \ + "\212Slg\377\3l\201}\377\240\260\254\377\320\332\331\377\202\333\343\342" \ + "\377\4\301\314\312\377Umi\377Slg\377i\200{\377\346\333\343\342\377\3" \ + "\252\275\272\377\223\254\247\377\242\267\263\377\210\377\377\377\377" \ + "\4\246\273\267\377\223\254\247\377\231\261\254\377\331\341\340\377\377" \ + "\333\343\342\377\227\333\343\342\377\16\325\336\334\377\246\272\267\377" \ + "\223\254\247\377\224\255\250\377\271\311\306\377\322\334\332\377\351" \ + "\356\355\377\361\364\363\377\333\343\341\377\304\322\317\377\235\264" \ + "\257\377\223\254\247\377\235\263\257\377\341\350\346\377\203\377\377" \ + "\377\377\3\254\277\273\377\223\254\247\377\241\267\262\377\246\333\343" \ + "\342\377\1\233\253\250\377\203Slg\377\1\315\327\325\377\207\333\343\342" \ + "\377\1\256\274\272\377\207Slg\377\3[to\377\214\236\232\377\300\314\312" \ + "\377\205\333\343\342\377\4\301\314\312\377Umi\377Slg\377i\200{\377\346" \ + "\333\343\342\377\3\255\300\274\377\223\254\247\377\235\263\257\377\207" \ + "\377\377\377\377\1\346\353\352\377\202\223\254\247\377\1\266\307\304" \ + "\377\377\333\343\342\377\232\333\343\342\377\2\275\314\311\377\226\256" \ + "\251\377\207\223\254\247\377\2\267\310\305\377\367\371\370\377\204\377" \ + "\377\377\377\3\247\273\267\377\223\254\247\377\244\271\265\377\246\333" \ + "\343\342\377\1\265\301\300\377\203Slg\377\1\261\275\273\377\207\333\343" \ + "\342\377\1\217\240\235\377\206Slg\377\2p\205\201\377\311\324\322\377" \ + "\207\333\343\342\377\4\301\314\312\377Umi\377Slg\377i\200{\377\346\333" \ + "\343\342\377\3\260\302\277\377\223\254\247\377\230\260\253\377\207\377" \ + "\377\377\377\4\270\310\305\377\223\254\247\377\224\254\247\377\323\335" \ + "\333\377\377\333\343\342\377\233\333\343\342\377\10\324\336\335\377\302" \ + "\321\316\377\264\305\302\377\244\271\265\377\223\254\247\377\223\253" \ + "\246\377\241\266\262\377\353\360\357\377\206\377\377\377\377\3\242\270" \ + "\263\377\223\254\247\377\247\273\267\377\246\333\343\342\377\1\316\327" \ + "\326\377\203Slg\377\2i\177{\377\326\337\336\377\205\333\343\342\377\2" \ + "\307\322\320\377Vpk\377\207Slg\377\4Umh\377|\217\214\377\260\275\273" \ + "\377\330\341\340\377\204\333\343\342\377\4\301\314\312\377Umi\377Slg" \ + "\377i\200{\377\346\333\343\342\377\1\263\304\301\377\202\223\254\247" \ + "\377\206\377\377\377\377\4\364\367\366\377\225\255\250\377\223\254\247" \ + "\377\253\276\272\377\377\333\343\342\377\240\333\343\342\377\1\264\305" \ + "\302\377\202\223\254\247\377\1\351\356\355\377\206\377\377\377\377\3" \ + "\236\264\257\377\223\254\247\377\252\275\272\377\247\333\343\342\377" \ + "\1\177\222\216\377\203Slg\377\2v\212\206\377\312\324\323\377\203\333" \ + "\343\342\377\2\271\305\303\377e|w\377\203Slg\377\2j\201|\377Umh\377\206" \ + "Slg\377\3^vq\377\220\242\236\377\304\317\316\377\202\333\343\342\377" \ + "\4\301\314\312\377Umi\377Slg\377i\200{\377\346\333\343\342\377\1\266" \ + "\307\304\377\202\223\254\247\377\1\373\374\374\377\205\377\377\377\377" \ + "\1\312\326\323\377\202\223\254\247\377\1\311\325\323\377\377\333\343" \ + "\342\377\240\333\343\342\377\1\321\333\332\377\202\223\254\247\377\1" \ + "\274\313\310\377\206\377\377\377\377\3\231\260\254\377\223\254\247\377" \ + "\255\300\274\377\247\333\343\342\377\2\320\332\331\377_wr\377\203Slg" \ + "\377\4Uni\377k\201|\377{\216\213\377e}w\377\204Slg\377\5m\203\177\377" \ + "\330\340\337\377\316\330\326\377\235\254\252\377i\177z\377\207Slg\377" \ + "\6p\206\202\377\246\263\261\377\273\307\304\377Umi\377Slg\377i\200{\377" \ + "\346\333\343\342\377\1\271\311\306\377\202\223\254\247\377\1\366\370" \ + "\370\377\204\377\377\377\377\4\375\375\375\377\236\264\260\377\223\254" \ + "\247\377\237\265\261\377\377\333\343\342\377\242\333\343\342\377\4\250" \ + "\274\270\377\223\254\247\377\226\256\252\377\367\371\370\377\205\377" \ + "\377\377\377\3\224\255\250\377\223\254\247\377\260\302\277\377\250\333" \ + "\343\342\377\2\266\303\300\377Yql\377\211Slg\377\2_vr\377\305\320\316" \ + "\377\204\333\343\342\377\3\274\311\307\377\210\232\227\377Zrm\377\206" \ + "Slg\377\4Wnj\377Skg\377Slg\377i\200{\377\346\333\343\342\377\1\274\313" \ + "\311\377\202\223\254\247\377\1\361\364\364\377\204\377\377\377\377\1" \ + "\333\343\342\377\202\223\254\247\377\1\275\314\311\377\377\333\343\342" \ + "\377\242\333\343\342\377\1\306\323\321\377\202\223\254\247\377\1\315" \ + "\331\326\377\204\377\377\377\377\1\374\374\374\377\202\223\254\247\377" \ + "\1\263\305\301\377\251\333\343\342\377\2\311\324\322\377v\212\206\377" \ + "\207Slg\377\2k\201|\377\311\324\322\377\207\333\343\342\377\3\325\336" \ + "\335\377\251\267\264\377t\211\205\377\204Slg\377\6Skf\377Rkg\377Slg\377" \ + "Uoi\377\232\253\247\377\314\326\325\377\344\333\343\342\377\1\277\316" \ + "\313\377\202\223\254\247\377\1\355\361\360\377\204\377\377\377\377\4" \ + "\256\300\275\377\223\254\247\377\226\257\252\377\327\340\337\377\377" \ + "\333\343\342\377\242\333\343\342\377\5\332\342\341\377\235\263\257\377" \ + "\223\254\247\377\241\267\262\377\376\376\376\377\203\377\377\377\377" \ + "\1\367\371\370\377\202\223\254\247\377\1\266\307\304\377\252\333\343" \ + "\342\377\11\332\342\341\377\260\275\273\377\222\243\237\377w\213\210" \ + "\377d{w\377r\207\203\377\206\230\225\377\265\302\300\377\332\342\341" \ + "\377\213\333\343\342\377\5\307\322\320\377\225\245\242\377bxt\377Slg" \ + "\377Skf\377\203Slf\377\5Slg\377Tmh\377{\216\213\377\257\274\273\377\330" \ + "\340\337\377\341\333\343\342\377\1\302\320\316\377\202\223\254\247\377" \ + "\1\350\355\354\377\203\377\377\377\377\1\354\361\360\377\202\223\254" \ + "\247\377\1\262\303\300\377\377\333\343\342\377\244\333\343\342\377\1" \ + "\273\312\307\377\202\223\254\247\377\1\337\346\345\377\203\377\377\377" \ + "\377\1\362\365\364\377\202\223\254\247\377\1\271\311\306\377\300\333" \ + "\343\342\377\6\332\342\341\377\265\301\300\377~\223\217\377Vnj\377Sk" \ + "g\377Slf\377\204Slg\377\3^uq\377\217\241\236\377\304\317\315\377\337" \ + "\333\343\342\377\1\305\322\320\377\202\223\254\247\377\1\343\352\350" \ + "\377\203\377\377\377\377\1\277\316\313\377\202\223\254\247\377\1\317" \ + "\332\330\377\377\333\343\342\377\244\333\343\342\377\4\326\337\336\377" \ + "\225\256\251\377\223\254\247\377\261\303\300\377\203\377\377\377\377" \ + "\1\356\361\361\377\202\223\254\247\377\1\274\313\311\377\303\333\343" \ + "\342\377\3\321\332\331\377\240\257\255\377m\202~\377\207Slg\377\3p\205" \ + "\201\377\244\263\260\377\323\334\333\377\212\333\343\342\377\1\257\274" \ + "\273\377\202\216\237\234\377\1\264\300\277\377\316\333\343\342\377\1" \ + "\310\325\323\377\202\223\254\247\377\7\243\271\264\377\272\312\307\377" \ + "\315\330\326\377\336\345\344\377\230\257\253\377\223\254\247\377\246" \ + "\272\266\377\377\333\343\342\377\246\333\343\342\377\1\257\301\276\377" \ + "\202\223\254\247\377\4\332\342\340\377\317\332\330\377\274\313\310\377" \ + "\246\273\267\377\202\223\254\247\377\1\277\316\313\377\306\333\343\342" \ + "\377\3\301\314\312\377\215\237\233\377\\to\377\206Slg\377\3Xpk\377\204" \ + "\227\224\377\271\305\303\377\210\333\343\342\377\1\216\237\234\377\202" \ + "Slg\377\1\227\247\244\377\316\333\343\342\377\1\313\327\325\377\210\223" \ + "\254\247\377\1\304\321\317\377\377\333\343\342\377\246\333\343\342\377" \ + "\1\315\330\327\377\210\223\254\247\377\1\303\320\316\377\310\333\343" \ + "\342\377\3\326\337\336\377\255\272\270\377x\215\210\377\207Slg\377\3" \ + "e}w\377\232\252\246\377\314\325\325\377\205\333\343\342\377\1\216\237" \ + "\234\377\202Slg\377\1\227\247\244\377\316\333\343\342\377\5\326\337\336" \ + "\377\271\311\306\377\217\245\241\377\206\237\232\377\220\251\244\377" \ + "\203\223\254\247\377\2\233\262\256\377\332\342\341\377\377\333\343\342" \ + "\377\247\333\343\342\377\1\243\270\264\377\203\223\254\247\377\5\221" \ + "\252\245\377\210\241\234\377\203\233\226\377\267\310\305\377\323\335" \ + "\333\377\313\333\343\342\377\3\313\326\324\377\230\251\246\377f|x\377" \ + "\206Slg\377\4Tmh\377z\216\212\377\256\274\272\377\330\340\337\377\202" \ + "\333\343\342\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\320\333" \ + "\343\342\377\1p\206\202\377\202Slg\377\4\\up\377o\207\203\377\270\310" \ + "\305\377\303\321\316\377\377\333\343\342\377\250\333\343\342\377\10\307" \ + "\324\322\377\267\307\304\377\200\226\221\377]vq\377Tmh\377Slg\377Woj" \ + "\377\331\342\341\377\316\333\343\342\377\4\332\342\341\377\271\305\303" \ + "\377\204\227\224\377Xpk\377\206Slg\377\4]up\377\217\240\235\377\303\316" \ + "\315\377\216\237\234\377\202Slg\377\1\227\247\244\377\320\333\343\342" \ + "\377\1Zrm\377\203Slg\377\1y\216\211\377\377\333\343\342\377\254\333\343" \ + "\342\377\2\226\247\244\377Tmh\377\202Slg\377\2[sn\377\307\322\320\377" \ + "\321\333\343\342\377\3\323\334\333\377\245\264\261\377q\205\201\377\207" \ + "Slg\377\1Xpl\377\202Slg\377\1\227\247\244\377\320\333\343\342\377\1_" \ + "wr\377\203Slg\377\1\227\247\244\377\377\333\343\342\377\254\333\343\342" \ + "\377\2\261\276\274\377[sn\377\202Slg\377\2Zrm\377\260\276\273\377\324" \ + "\333\343\342\377\3\304\317\316\377\221\242\237\377_vr\377\207Slg\377" \ + "\1\227\247\244\377\320\333\343\342\377\1p\206\202\377\202Slg\377\2Xp" \ + "l\377\317\330\327\377\377\333\343\342\377\254\333\343\342\377\2\311\324" \ + "\322\377Zrn\377\202Slg\377\2Yrm\377\313\325\324\377\326\333\343\342\377" \ + "\4\330\341\340\377\261\276\274\377|\221\215\377Umh\377\204Slg\377\1\227" \ + "\247\244\377\320\333\343\342\377\1\203\226\222\377\202Slg\377\1\222\243" \ + "\237\377\377\333\343\342\377\256\333\343\342\377\4Xpk\377Slg\377Yql\377" \ + "\241\261\256\377\332\333\343\342\377\3\316\330\326\377\235\254\252\377" \ + "byu\377\202Slg\377\1\227\247\244\377\320\333\343\342\377\4\224\245\242" \ + "\377Slg\377Yql\377\320\331\330\377\377\333\343\342\377\256\333\343\342" \ + "\377\4j\200{\377Slg\377o\204\200\377\332\342\341\377\334\333\343\342" \ + "\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\320\333\343\342\377" \ + "\3\245\264\262\377Slg\377\223\243\241\377\377\333\343\342\377\257\333" \ + "\343\342\377\3\205\230\224\377Vnj\377\312\324\323\377\335\333\343\342" \ + "\377\1\216\237\234\377\202Slg\377\1\227\247\244\377\320\333\343\342\377" \ + "\3\267\304\302\377Zqm\377\320\332\331\377\377\333\343\342\377\257\333" \ + "\343\342\377\2\304\317\315\377\264\301\277\377\336\333\343\342\377\1" \ + "\216\237\234\377\202Slg\377\1\227\247\244\377\320\333\343\342\377\2\311" \ + "\323\321\377\223\244\242\377\377\333\343\342\377\377\333\343\342\377" \ + "\221\333\343\342\377\1\256\273\270\377\202\211\233\230\377\1\262\277" \ + "\275\377\320\333\343\342\377\2\330\341\340\377\321\332\331\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\231\333\343" \ + "\342\377") + + diff --git a/packages/psplash/files/angstrom/psplash-hand-img.h b/packages/psplash/files/angstrom/psplash-hand-img.h new file mode 100644 index 0000000000..a03d16e57a --- /dev/null +++ b/packages/psplash/files/angstrom/psplash-hand-img.h @@ -0,0 +1,1336 @@ +/* GdkPixbuf RGBA C-Source image dump 1-byte-run-length-encoded */ + +#define HAND_IMG_ROWSTRIDE (1016) +#define HAND_IMG_WIDTH (254) +#define HAND_IMG_HEIGHT (264) +#define HAND_IMG_BYTES_PER_PIXEL (4) /* 3:RGB, 4:RGBA */ +#define HAND_IMG_RLE_PIXEL_DATA ((uint8*) \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\331\333\343\342\377\5\327" \ + "\340\337\377\314\327\325\377\306\323\320\377\321\333\331\377\332\342" \ + "\341\377\377\333\343\342\377\206\333\343\342\377\1\276\311\307\377\202" \ + "g~y\377\357\333\343\342\377\2\253\276\272\377\233\262\255\377\204\223" \ + "\254\247\377\3\225\255\250\377\240\266\262\377\303\321\316\377\377\333" \ + "\343\342\377\204\333\343\342\377\1\270\305\303\377\202Slg\377\357\333" \ + "\343\342\377\11\231\260\254\377\223\254\247\377\243\271\264\377\267\307" \ + "\304\377\277\316\313\377\256\301\275\377\232\261\255\377\223\254\247" \ + "\377\271\311\306\377\377\333\343\342\377\204\333\343\342\377\1\270\305" \ + "\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377" \ + "\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\364\333\343" \ + "\342\377\4\332\342\341\377\316\330\326\377\277\312\310\377\260\275\273" \ + "\377\213\254\271\267\377\1\225\246\243\377\202Slg\377\357\333\343\342" \ + "\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254" \ + "\247\377\271\311\306\377\362\333\343\342\377\3\266\302\300\377v\212\206" \ + "\377Vni\377\221Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\360\333" \ + "\343\342\377\2\320\331\330\377n\204\200\377\224Slg\377\357\333\343\342" \ + "\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254" \ + "\247\377\271\311\306\377\357\333\343\342\377\2\332\342\341\377x\215\211" \ + "\377\225Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377\377" \ + "\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333\343\342" \ + "\377\1\240\260\255\377\204Slg\377\4Uni\377s\210\203\377\177\222\217\377" \ + "\213\235\231\377\213\222\243\240\377\1\202\225\221\377\202Slg\377\357" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\1{\217\213\377" \ + "\203Slg\377\2\230\250\245\377\317\330\327\377\216\333\343\342\377\1\270" \ + "\305\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1byt\377\202Slg\377\1\230\250\245\377\220\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231\260\254\377" \ + "\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377" \ + "\356\333\343\342\377\1\324\335\334\377\203Slg\377\1\324\334\333\377\220" \ + "\333\343\342\377\1\274\307\306\377\202_vr\377\357\333\343\342\377\202" \ + "\231\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377" \ + "\271\311\306\377\356\333\343\342\377\4\332\342\341\377Xql\377Slg\377" \ + "f|x\377\377\333\343\342\377\204\333\343\342\377\202\231\260\254\377\204" \ + "\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357" \ + "\333\343\342\377\3n\204\200\377Slg\377_vr\377\377\333\343\342\377\204" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\1\243\262\257" \ + "\377\202Slg\377\1\311\324\322\377\220\333\343\342\377\1\325\336\335\377" \ + "\202\305\320\316\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\4\327\337\336\377dzv\377Slg\377\220\242\236\377\220\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\360\333\343\342\377\4\307\321\320\377`ws\377Slg\377\240" \ + "\260\255\377\217\333\343\342\377\1\270\305\303\377\202Slg\377\357\333" \ + "\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335\377" \ + "\223\254\247\377\271\311\306\377\361\333\343\342\377\6\307\322\320\377" \ + "u\211\205\377Slg\377m\202~\377\246\265\262\377\321\333\331\377\214\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\362\333\343\342\377\2\332\342\341\377\213\235\231\377\203" \ + "Slg\377\3Xpk\377f}x\377s\210\203\377\211t\211\205\377\1l\201}\377\202" \ + "Slg\377\357\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3" \ + "\326\337\335\377\223\254\247\377\271\311\306\377\361\333\343\342\377" \ + "\2\265\302\300\377i\177{\377\223Slg\377\357\333\343\342\377\202\231\260" \ + "\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271\311" \ + "\306\377\360\333\343\342\377\2\255\272\270\377Uni\377\224Slg\377\357" \ + "\333\343\342\377\202\231\260\254\377\204\377\377\377\377\3\326\337\335" \ + "\377\223\254\247\377\271\311\306\377\357\333\343\342\377\2\316\327\326" \ + "\377Wpk\377\225Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1\220\241\236\377\203Slg\377\5Woj\377\205\227\224\377\254" \ + "\271\267\377\270\304\302\377\304\316\315\377\213\311\324\322\377\1\254" \ + "\271\267\377\202Slg\377\357\333\343\342\377\202\231\260\254\377\204\377" \ + "\377\377\377\3\326\337\335\377\223\254\247\377\271\311\306\377\357\333" \ + "\343\342\377\1i\177{\377\202Slg\377\2dzv\377\316\327\326\377\217\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\357\333\343\342\377\202\231" \ + "\260\254\377\204\377\377\377\377\3\326\337\335\377\223\254\247\377\271" \ + "\311\306\377\356\333\343\342\377\2\331\342\341\377Voj\377\202Slg\377" \ + "\1\273\307\305\377\220\333\343\342\377\1\270\305\303\377\202Slg\377\357" \ + "\333\343\342\377\3\241\267\262\377\223\254\247\377\363\366\365\377\203" \ + "\377\377\377\377\3\304\321\317\377\223\254\247\377\301\317\314\377\356" \ + "\333\343\342\377\1\324\335\334\377\202Slg\377\2Xpk\377\331\342\341\377" \ + "\220\333\343\342\377\1\311\324\322\377\202\226\247\244\377\357\333\343" \ + "\342\377\3\264\305\302\377\223\254\247\377\326\337\335\377\203\377\377" \ + "\377\377\3\246\273\267\377\223\254\247\377\324\335\334\377\357\333\343" \ + "\342\377\3_vr\377Slg\377i\177{\377\377\333\343\342\377\202\333\343\342" \ + "\377\5\317\332\331\377\257\301\276\377\217\251\244\377\223\254\247\377" \ + "\270\310\305\377\202\377\377\377\377\6\365\367\367\377\223\254\247\377" \ + "\217\251\244\377\234\263\257\377\275\314\312\377\330\341\340\377\355" \ + "\333\343\342\377\4\177\222\217\377Slg\377Vni\377\327\337\336\377\376" \ + "\333\343\342\377\2\277\316\313\377\207\243\236\377\203o\221\212\377\7" \ + "\221\253\246\377\233\262\256\377\376\376\376\377\377\377\377\377\330" \ + "\341\337\377\223\254\247\377\202\237\231\377\202o\221\212\377\3t\225" \ + "\216\377\234\263\257\377\322\334\333\377\353\333\343\342\377\1\277\313" \ + "\311\377\202Slg\377\1\273\307\305\377\220\333\343\342\377\1\307\322\320" \ + "\377\202\216\237\234\377\351\333\343\342\377\2\310\325\323\377\216\251" \ + "\243\377\204o\221\212\377\10v\226\220\377\221\252\245\377\223\254\247" \ + "\377\324\336\334\377\340\347\346\377\262\304\300\377\223\254\247\377" \ + "\210\244\237\377\204o\221\212\377\3u\225\217\377\250\274\270\377\327" \ + "\340\337\377\352\333\343\342\377\4\226\246\243\377Slg\377h\177z\377\321" \ + "\333\331\377\217\333\343\342\377\1\270\305\303\377\202Slg\377\350\333" \ + "\343\342\377\2\264\305\302\377q\223\214\377\202o\221\212\377\5q\223\214" \ + "\377\233\263\256\377\300\317\314\377\331\342\340\377\273\312\307\377" \ + "\204\223\254\247\377\5\225\255\250\377\330\341\337\377\321\333\332\377" \ + "\261\303\277\377\206\243\235\377\203o\221\212\377\2\205\242\234\377\317" \ + "\332\331\377\352\333\343\342\377\4\230\250\245\377Tmh\377q\206\202\377" \ + "\276\311\307\377\216\333\343\342\377\1\270\305\303\377\202Slg\377\346" \ + "\333\343\342\377\2\332\342\341\377\241\267\263\377\203o\221\212\377\2" \ + "\227\257\253\377\315\331\327\377\203\333\343\342\377\1\321\333\332\377" \ + "\204\262\303\300\377\1\272\312\307\377\204\333\343\342\377\2\270\310" \ + "\306\377\177\235\227\377\202o\221\212\377\2z\231\222\377\304\322\320" \ + "\377\347\333\343\342\377\1\317\330\327\377\202\301\314\312\377\10\247" \ + "\266\263\377^vq\377Slg\377o\204\200\377\232\252\247\377\247\266\263\377" \ + "\264\301\277\377\277\313\311\377\211\301\314\312\377\1\245\264\261\377" \ + "\202Slg\377\346\333\343\342\377\1\236\265\260\377\202o\221\212\377\2" \ + "t\225\216\377\273\313\310\377\220\333\343\342\377\2\327\340\337\377\225" \ + "\256\251\377\202o\221\212\377\2t\225\216\377\310\325\323\377\346\333" \ + "\343\342\377\1\233\253\250\377\226Slg\377\345\333\343\342\377\1\261\303" \ + "\277\377\202o\221\212\377\2|\233\225\377\311\325\323\377\223\333\343" \ + "\342\377\1\247\273\267\377\202o\221\212\377\2|\233\225\377\322\334\333" \ + "\377\345\333\343\342\377\1\233\253\250\377\226Slg\377\344\333\343\342" \ + "\377\5\304\321\317\377q\222\213\377o\221\212\377u\226\217\377\312\326" \ + "\324\377\225\333\343\342\377\1\242\270\264\377\202o\221\212\377\2\211" \ + "\244\237\377\332\342\341\377\344\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\344\333\343\342\377\4\207\243\236\377o\221\212\377p\222\213\377" \ + "\275\314\312\377\226\333\343\342\377\2\332\342\341\377\220\252\245\377" \ + "\202o\221\212\377\1\264\305\302\377\344\333\343\342\377\3\233\253\250" \ + "\377Slg\377\\so\377\221x\215\211\377\1o\204\200\377\202Slg\377\343\333" \ + "\343\342\377\1\267\310\305\377\202o\221\212\377\1\237\265\261\377\230" \ + "\333\343\342\377\5\324\336\334\377v\226\220\377o\221\212\377|\233\225" \ + "\377\330\341\337\377\343\333\343\342\377\3\233\253\250\377Slg\377t\211" \ + "\205\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\342\333\343" \ + "\342\377\5\332\342\341\377~\234\226\377o\221\212\377t\225\216\377\322" \ + "\334\333\377\231\333\343\342\377\1\251\275\271\377\202o\221\212\377\1" \ + "\255\300\275\377\343\333\343\342\377\3\233\253\250\377Slg\377t\211\205" \ + "\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\342\333\343\342" \ + "\377\1\304\321\317\377\202o\221\212\377\1\245\272\266\377\232\333\343" \ + "\342\377\4\327\340\337\377y\231\222\377o\221\212\377\207\243\236\377" \ + "\343\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343" \ + "\342\377\1\270\305\303\377\202Slg\377\342\333\343\342\377\1\243\270\264" \ + "\377\202o\221\212\377\1\314\327\325\377\233\333\343\342\377\1\234\263" \ + "\257\377\202o\221\212\377\1\321\333\332\377\342\333\343\342\377\3\277" \ + "\312\310\377\237\256\253\377\256\273\271\377\221\333\343\342\377\1\323" \ + "\334\333\377\202\275\310\306\377\342\333\343\342\377\3\202\237\231\377" \ + "o\221\212\377\201\236\230\377\234\333\343\342\377\1\276\315\312\377\202" \ + "o\221\212\377\1\261\303\300\377\377\333\343\342\377\333\333\343\342\377" \ + "\1\330\341\340\377\202o\221\212\377\1\234\263\256\377\234\333\343\342" \ + "\377\1\330\341\337\377\202o\221\212\377\1\234\263\257\377\377\333\343" \ + "\342\377\333\333\343\342\377\1\317\332\330\377\202o\221\212\377\1\250" \ + "\274\270\377\235\333\343\342\377\3y\230\222\377o\221\212\377\222\254" \ + "\246\377\377\333\343\342\377\333\333\343\342\377\1\304\322\320\377\202" \ + "o\221\212\377\1\264\306\302\377\235\333\343\342\377\3\205\242\234\377" \ + "o\221\212\377\207\243\236\377\350\333\343\342\377\13\327\340\337\377" \ + "\267\303\301\377\225\246\243\377{\217\213\377p\205\201\377f}x\377k\201" \ + "}\377u\211\205\377\205\227\224\377\245\263\261\377\310\323\321\377\347" \ + "\333\343\342\377\1\275\314\312\377\202o\221\212\377\1\274\314\311\377" \ + "\235\333\343\342\377\3\215\250\242\377o\221\212\377\200\236\230\377\346" \ + "\333\343\342\377\3\324\334\333\377\231\251\246\377_wr\377\212Slg\377" \ + "\2x\215\211\377\270\304\302\377\345\333\343\342\377\1\306\323\321\377" \ + "\202o\221\212\377\1\263\304\301\377\235\333\343\342\377\3\203\240\232" \ + "\377o\221\212\377\211\244\237\377\345\333\343\342\377\2\300\314\312\377" \ + "f|x\377\216Slg\377\2\216\240\235\377\330\340\337\377\343\333\343\342" \ + "\377\1\320\333\331\377\202o\221\212\377\1\247\273\267\377\235\333\343" \ + "\342\377\3w\227\221\377o\221\212\377\223\254\250\377\344\333\343\342" \ + "\377\2\273\307\305\377Woj\377\220Slg\377\2y\216\212\377\330\341\340\377" \ + "\342\333\343\342\377\4\331\342\340\377p\221\213\377o\221\212\377\231" \ + "\261\254\377\234\333\343\342\377\1\326\337\336\377\202o\221\212\377\1" \ + "\236\265\260\377\331\333\343\342\377\3\272\306\304\377\231\251\246\377" \ + "\310\322\321\377\207\333\343\342\377\2\310\322\321\377\\to\377\205Sl" \ + "g\377\7Woj\377dzv\377q\206\202\377}\221\215\377w\214\210\377k\201|\377" \ + "]up\377\206Slg\377\1\211\233\230\377\343\333\343\342\377\3\206\242\234" \ + "\377o\221\212\377|\233\225\377\234\333\343\342\377\1\271\311\306\377" \ + "\202o\221\212\377\1\265\306\303\377\330\333\343\342\377\1\222\243\240" \ + "\377\203Slg\377\1\271\306\304\377\206\333\343\342\377\1|\217\214\377" \ + "\203Slg\377\3dzv\377\231\252\247\377\314\326\324\377\207\333\343\342" \ + "\377\4\330\340\337\377\267\304\302\377\201\224\220\377Vni\377\203Slg" \ + "\377\1\274\307\306\377\342\333\343\342\377\1\247\274\270\377\202o\221" \ + "\212\377\1\307\323\321\377\233\333\343\342\377\4\227\257\253\377o\221" \ + "\212\377q\222\213\377\324\336\334\377\327\333\343\342\377\2\325\335\334" \ + "\377Zrm\377\203Slg\377\1\205\227\224\377\205\333\343\342\377\1\275\310" \ + "\306\377\202Slg\377\3Umh\377\251\270\265\377\331\342\341\377\214\333" \ + "\343\342\377\2\317\331\327\377y\216\212\377\202Slg\377\1t\211\205\377" \ + "\342\333\343\342\377\1\310\325\323\377\202o\221\212\377\1\237\265\261" \ + "\377\232\333\343\342\377\4\325\336\335\377v\226\217\377o\221\212\377" \ + "\213\246\241\377\330\333\343\342\377\2\331\341\340\377czu\377\203Slg" \ + "\377\1\221\243\237\377\205\333\343\342\377\4\220\241\236\377Slg\377T" \ + "lg\377\253\271\267\377\217\333\343\342\377\2\326\336\335\377s\210\204" \ + "\377\202Slg\377\1\317\331\327\377\342\333\343\342\377\4\203\240\232\377" \ + "o\221\212\377r\223\214\377\317\331\330\377\205\333\343\342\377\2\305" \ + "\322\320\377\322\334\332\377\212\333\343\342\377\3\332\342\341\377\305" \ + "\322\320\377\322\334\333\377\205\333\343\342\377\1\243\270\264\377\202" \ + "o\221\212\377\1\262\304\301\377\331\333\343\342\377\5\250\266\264\377" \ + "Yql\377Slg\377f|x\377\310\322\321\377\205\333\343\342\377\3k\201}\377" \ + "Slg\377\212\234\231\377\221\333\343\342\377\4\321\332\331\377Tmh\377" \ + "Slg\377\253\271\267\377\342\333\343\342\377\1\276\315\312\377\202o\221" \ + "\212\377\1\227\257\253\377\204\333\343\342\377\6\327\340\337\377\227" \ + "\257\252\377\223\254\247\377\251\275\271\377\307\324\322\377\332\342" \ + "\341\377\205\333\343\342\377\5\325\337\335\377\272\311\307\377\234\263" \ + "\256\377\223\254\247\377\263\304\301\377\204\333\343\342\377\5\317\332" \ + "\331\377s\224\215\377o\221\212\377\201\236\230\377\331\342\340\377\332" \ + "\333\343\342\377\3\324\334\333\377\274\307\306\377\332\342\341\377\206" \ + "\333\343\342\377\3Xql\377Slg\377\255\272\270\377\222\333\343\342\377" \ + "\3m\202~\377Slg\377\230\251\246\377\343\333\343\342\377\1\216\250\243" \ + "\377\202o\221\212\377\1\264\305\302\377\203\333\343\342\377\3\275\314" \ + "\312\377\223\254\247\377\225\255\250\377\202\223\254\247\377\7\236\264" \ + "\260\377\273\313\310\377\327\337\336\377\333\343\342\377\315\330\326" \ + "\377\256\301\275\377\225\255\251\377\202\223\254\247\377\3\224\254\250" \ + "\377\227\257\252\377\330\341\337\377\202\333\343\342\377\2\330\341\337" \ + "\377\207\243\236\377\202o\221\212\377\1\273\312\310\377\343\333\343\342" \ + "\377\1\324\335\334\377\202Slg\377\1\314\326\324\377\222\333\343\342\377" \ + "\3\214\236\233\377Slg\377\214\235\232\377\343\333\343\342\377\5\312\326" \ + "\324\377t\225\216\377o\221\212\377q\223\214\377\303\320\316\377\202\333" \ + "\343\342\377\5\237\265\261\377\223\254\247\377\347\355\354\377\335\344" \ + "\343\377\257\301\276\377\202\223\254\247\377\2\250\274\270\377\321\334" \ + "\332\377\202\223\254\247\377\6\231\261\254\377\303\321\316\377\360\363" \ + "\363\377\271\311\306\377\223\254\247\377\277\315\313\377\202\333\343" \ + "\342\377\1\227\257\252\377\202o\221\212\377\1\222\254\246\377\344\333" \ + "\343\342\377\1\325\335\334\377\202Slg\377\1\313\325\323\377\222\333\343" \ + "\342\377\3\213\235\231\377Slg\377\214\236\233\377\344\333\343\342\377" \ + "\1\273\312\310\377\202o\221\212\377\5v\226\220\377\277\316\313\377\311" \ + "\325\323\377\223\254\247\377\251\275\271\377\203\377\377\377\377\7\355" \ + "\361\360\377\227\257\253\377\226\256\251\377\273\312\307\377\223\254" \ + "\247\377\271\311\306\377\372\373\373\377\202\377\377\377\377\5\346\354" \ + "\353\377\223\254\247\377\240\266\262\377\330\341\340\377\232\261\255" \ + "\377\202o\221\212\377\2\203\240\232\377\326\337\336\377\334\333\343\342" \ + "\377\3\322\333\332\377\267\303\301\377\331\341\340\377\206\333\343\342" \ + "\377\3Yql\377Slg\377\253\271\267\377\222\333\343\342\377\3k\201}\377" \ + "Slg\377\231\251\246\377\345\333\343\342\377\1\252\276\272\377\202o\221" \ + "\212\377\4p\222\213\377\234\263\256\377\223\254\247\377\327\340\336\377" \ + "\203\377\377\377\377\2\344\352\351\377\232\261\254\377\202\223\254\247" \ + "\377\3\224\255\250\377\262\303\300\377\371\372\372\377\203\377\377\377" \ + "\377\3\250\274\270\377\223\254\247\377\214\246\241\377\202o\221\212\377" \ + "\2y\231\222\377\317\331\330\377\334\333\343\342\377\5\247\266\263\377" \ + "Xql\377Slg\377`ws\377\305\320\316\377\205\333\343\342\377\3l\201}\377" \ + "Slg\377\210\233\227\377\221\333\343\342\377\4\317\331\327\377Tlg\377" \ + "Slg\377\254\271\267\377\346\333\343\342\377\6\257\301\276\377p\222\213" \ + "\377r\223\214\377\222\253\246\377\233\262\256\377\374\374\374\377\202" \ + "\377\377\377\377\11\316\331\327\377\223\254\247\377\252\275\272\377\320" \ + "\333\331\377\332\343\341\377\305\323\320\377\227\257\253\377\237\265" \ + "\261\377\362\365\364\377\202\377\377\377\377\6\325\337\335\377\223\254" \ + "\247\377\206\242\234\377o\221\212\377\202\237\231\377\315\330\326\377" \ + "\334\333\343\342\377\2\331\341\340\377czu\377\203Slg\377\1\217\241\235" \ + "\377\205\333\343\342\377\1\221\243\237\377\202Slg\377\1\251\267\265\377" \ + "\217\333\343\342\377\5\325\335\334\377p\206\202\377Slg\377Tlg\377\320" \ + "\331\330\377\347\333\343\342\377\4\277\316\313\377\204\241\233\377\223" \ + "\254\247\377\306\323\320\377\202\377\377\377\377\4\352\357\356\377\225" \ + "\255\250\377\300\317\314\377\376\376\376\377\203\377\377\377\377\12\361" \ + "\364\363\377\236\264\260\377\257\302\276\377\376\376\376\377\377\377" \ + "\377\377\373\374\373\377\232\261\254\377\222\253\246\377\217\251\244" \ + "\377\325\337\335\377\335\333\343\342\377\2\325\336\335\377[sn\377\203" \ + "Slg\377\1\206\231\225\377\205\333\343\342\377\1\276\312\310\377\202S" \ + "lg\377\3Umh\377\251\267\265\377\331\342\341\377\214\333\343\342\377\2" \ + "\315\326\325\377v\213\207\377\202Slg\377\1v\213\207\377\350\333\343\342" \ + "\377\4\331\341\340\377\230\260\253\377\224\254\247\377\362\365\364\377" \ + "\202\377\377\377\377\3\272\312\307\377\243\270\264\377\374\375\375\377" \ + "\205\377\377\377\377\3\335\345\343\377\223\254\247\377\352\357\356\377" \ + "\202\377\377\377\377\3\304\321\317\377\223\254\247\377\267\307\304\377" \ + "\337\333\343\342\377\1\223\244\240\377\202Slg\377\2Umh\377\275\310\306" \ + "\377\206\333\343\342\377\1~\222\216\377\203Slg\377\4czu\377\227\247\244" \ + "\377\310\322\321\377\331\341\340\377\206\333\343\342\377\4\325\335\334" \ + "\377\263\300\276\377}\220\215\377Tmh\377\203Slg\377\1\277\312\310\377" \ + "\350\333\343\342\377\3\302\320\315\377\223\254\247\377\264\305\302\377" \ + "\203\377\377\377\377\2\243\271\264\377\277\316\313\377\206\377\377\377" \ + "\377\3\373\374\373\377\224\255\250\377\322\335\333\377\202\377\377\377" \ + "\377\4\360\363\363\377\223\254\247\377\232\262\255\377\332\342\341\377" \ + "\337\333\343\342\377\3\274\310\306\377\236\255\253\377\315\327\325\377" \ + "\207\333\343\342\377\2\311\324\322\377^uq\377\205Slg\377\7Tmh\377_wr" \ + "\377m\202~\377y\215\211\377s\210\204\377f}x\377Yql\377\206Slg\377\1\217" \ + "\240\235\377\351\333\343\342\377\3\244\271\265\377\223\254\247\377\342" \ + "\350\347\377\203\377\377\377\377\2\240\266\262\377\302\320\315\377\206" \ + "\377\377\377\377\3\374\375\375\377\225\255\251\377\317\332\330\377\203" \ + "\377\377\377\377\3\262\304\300\377\223\254\247\377\303\321\317\377\352" \ + "\333\343\342\377\2\275\311\307\377Xql\377\220Slg\377\2}\221\215\377\331" \ + "\342\341\377\350\333\343\342\377\4\316\331\327\377\223\254\247\377\243" \ + "\270\264\377\376\376\376\377\203\377\377\377\377\2\267\307\304\377\250" \ + "\274\270\377\206\377\377\377\377\3\345\353\351\377\223\254\247\377\346" \ + "\354\353\377\203\377\377\377\377\3\340\347\345\377\223\254\247\377\245" \ + "\272\266\377\353\333\343\342\377\2\303\316\314\377h\177z\377\215Slg\377" \ + "\3Tlg\377\225\245\242\377\331\341\340\377\351\333\343\342\377\3\257\302" \ + "\276\377\223\254\247\377\320\333\331\377\204\377\377\377\377\3\340\347" \ + "\346\377\223\254\247\377\317\332\330\377\204\377\377\377\377\4\371\372" \ + "\372\377\245\272\266\377\246\272\266\377\374\375\375\377\203\377\377" \ + "\377\377\4\376\376\376\377\242\267\263\377\223\254\247\377\317\331\330" \ + "\377\353\333\343\342\377\3\325\335\334\377\235\255\252\377czu\377\211" \ + "Slg\377\3Tlg\377\177\222\217\377\277\312\310\377\352\333\343\342\377" \ + "\4\326\337\336\377\225\256\251\377\227\257\253\377\371\372\372\377\205" \ + "\377\377\377\377\11\277\316\313\377\223\254\247\377\272\312\307\377\341" \ + "\350\346\377\353\360\357\377\326\340\336\377\240\266\261\377\227\257" \ + "\252\377\352\357\356\377\205\377\377\377\377\3\316\331\327\377\223\254" \ + "\247\377\260\302\277\377\355\333\343\342\377\13\330\341\340\377\273\307" \ + "\305\377\231\252\247\377\177\222\217\377t\211\205\377k\201|\377o\205" \ + "\201\377y\215\211\377\211\233\230\377\251\267\265\377\314\326\324\377" \ + "\354\333\343\342\377\3\273\312\310\377\223\254\247\377\277\316\313\377" \ + "\207\377\377\377\377\2\315\330\327\377\224\255\250\377\203\223\254\247" \ + "\377\2\235\263\257\377\360\363\362\377\206\377\377\377\377\4\370\371" \ + "\371\377\227\257\252\377\226\256\252\377\327\340\336\377\377\333\343" \ + "\342\377\343\333\343\342\377\4\332\342\341\377\235\263\257\377\223\254" \ + "\247\377\354\361\360\377\207\377\377\377\377\7\310\325\322\377\223\254" \ + "\247\377\262\303\300\377\307\323\321\377\231\260\253\377\225\255\251" \ + "\377\365\367\367\377\207\377\377\377\377\3\275\314\311\377\223\254\247" \ + "\377\274\313\311\377\346\333\343\342\377\1\316\327\326\377\205\301\314" \ + "\312\377\1\327\340\337\377\365\333\343\342\377\3\306\323\321\377\223" \ + "\254\247\377\256\300\275\377\207\377\377\377\377\10\374\375\375\377\235" \ + "\264\257\377\224\255\250\377\324\336\334\377\333\343\342\377\266\307" \ + "\304\377\223\254\247\377\312\326\324\377\207\377\377\377\377\3\353\357" \ + "\356\377\223\254\247\377\236\264\260\377\346\333\343\342\377\1\204\227" \ + "\223\377\205Slg\377\1\311\324\322\377\365\333\343\342\377\3\250\274\270" \ + "\377\223\254\247\377\335\345\344\377\207\377\377\377\377\3\332\342\340" \ + "\377\223\254\247\377\254\277\274\377\202\333\343\342\377\4\323\335\334" \ + "\377\224\255\250\377\236\265\260\377\375\376\375\377\207\377\377\377" \ + "\377\3\256\301\275\377\223\254\247\377\310\324\322\377\345\333\343\342" \ + "\377\1i\177{\377\205Slg\377\1\311\324\322\377\364\333\343\342\377\4\321" \ + "\334\332\377\223\254\247\377\240\265\261\377\376\376\376\377\207\377" \ + "\377\377\377\3\254\277\274\377\223\254\247\377\312\326\324\377\203\333" \ + "\343\342\377\3\253\276\272\377\223\254\247\377\334\344\342\377\207\377" \ + "\377\377\377\3\333\343\342\377\223\254\247\377\251\275\271\377\345\333" \ + "\343\342\377\1Vni\377\202Slg\377\4Yrm\377\234\253\251\377\302\315\313" \ + "\377\331\342\341\377\364\333\343\342\377\3\264\305\302\377\223\254\247" \ + "\377\314\330\325\377\207\377\377\377\377\3\353\360\357\377\223\254\247" \ + "\377\241\266\262\377\204\333\343\342\377\3\311\325\323\377\223\254\247" \ + "\377\256\301\275\377\207\377\377\377\377\4\375\375\375\377\236\265\260" \ + "\377\223\254\247\377\322\334\333\377\343\333\343\342\377\1\324\334\333" \ + "\377\203Slg\377\1\261\277\274\377\366\333\343\342\377\4\330\341\340\377" \ + "\230\260\253\377\225\256\251\377\366\370\370\377\207\377\377\377\377" \ + "\3\276\315\312\377\223\254\247\377\277\315\313\377\205\333\343\342\377" \ + "\3\237\265\261\377\223\254\247\377\355\361\360\377\207\377\377\377\377" \ + "\3\312\326\324\377\223\254\247\377\265\306\303\377\343\333\343\342\377" \ + "\1\326\337\336\377\202Slg\377\1]up\377\367\333\343\342\377\3\277\316" \ + "\313\377\223\254\247\377\272\312\307\377\207\377\377\377\377\4\370\371" \ + "\371\377\227\257\252\377\230\257\253\377\330\341\337\377\205\333\343" \ + "\342\377\3\275\314\312\377\223\254\247\377\277\316\313\377\207\377\377" \ + "\377\377\4\365\367\367\377\225\255\251\377\231\260\254\377\331\341\340" \ + "\377\343\333\343\342\377\3`ws\377Slg\377i\200{\377\367\333\343\342\377" \ + "\3\241\267\263\377\223\254\247\377\350\355\354\377\207\377\377\377\377" \ + "\3\317\332\330\377\223\254\247\377\263\305\301\377\206\333\343\342\377" \ + "\4\327\340\337\377\227\257\252\377\230\260\253\377\371\372\372\377\207" \ + "\377\377\377\377\3\271\311\306\377\223\254\247\377\301\317\314\377\343" \ + "\333\343\342\377\4y\215\211\377Slg\377Vni\377\327\340\337\377\220\333" \ + "\343\342\377\1\324\335\334\377\202\301\314\312\377\342\333\343\342\377" \ + "\3\313\327\325\377\223\254\247\377\251\275\271\377\207\377\377\377\377" \ + "\4\376\376\376\377\242\267\263\377\223\254\247\377\321\333\332\377\207" \ + "\333\343\342\377\3\262\303\300\377\223\254\247\377\321\334\332\377\207" \ + "\377\377\377\377\3\346\354\352\377\223\254\247\377\242\270\263\377\343" \ + "\333\343\342\377\1\260\276\273\377\202Slg\377\1\300\313\311\377\220\333" \ + "\343\342\377\1\270\305\303\377\202Slg\377\342\333\343\342\377\3\255\300" \ + "\274\377\223\254\247\377\327\340\336\377\207\377\377\377\377\3\340\347" \ + "\346\377\223\254\247\377\247\273\270\377\210\333\343\342\377\3\320\332" \ + "\331\377\223\254\247\377\244\271\265\377\210\377\377\377\377\3\247\273" \ + "\267\377\223\254\247\377\314\330\326\377\342\333\343\342\377\5\331\342" \ + "\341\377o\205\201\377Slg\377x\215\211\377\331\342\341\377\217\333\343" \ + "\342\377\1\270\305\303\377\202Slg\377\341\333\343\342\377\4\325\336\335" \ + "\377\225\255\250\377\233\262\255\377\374\374\374\377\207\377\377\377" \ + "\377\3\263\305\301\377\223\254\247\377\306\323\321\377\211\333\343\342" \ + "\377\3\246\273\267\377\223\254\247\377\343\351\350\377\207\377\377\377" \ + "\377\3\325\336\334\377\223\254\247\377\256\300\275\377\343\333\343\342" \ + "\377\5\316\330\326\377dzv\377Slg\377\220\241\236\377\332\342\341\377" \ + "\216\333\343\342\377\1\270\305\303\377\202Slg\377\341\333\343\342\377" \ + "\3\270\310\306\377\223\254\247\377\305\323\320\377\207\377\377\377\377" \ + "\4\361\364\363\377\223\254\247\377\234\263\257\377\332\342\341\377\211" \ + "\333\343\342\377\3\304\322\317\377\223\254\247\377\265\306\302\377\207" \ + "\377\377\377\377\4\373\374\373\377\232\261\254\377\225\255\251\377\325" \ + "\337\335\377\343\333\343\342\377\6\316\327\326\377\200\224\220\377Sl" \ + "g\377h~z\377\246\265\262\377\326\336\335\377\214\333\343\342\377\1\270" \ + "\305\303\377\202Slg\377\340\333\343\342\377\4\332\342\341\377\233\262" \ + "\255\377\223\254\247\377\361\364\364\377\207\377\377\377\377\3\304\322" \ + "\317\377\223\254\247\377\272\312\307\377\212\333\343\342\377\4\332\342" \ + "\341\377\233\262\256\377\224\254\247\377\362\365\364\377\207\377\377" \ + "\377\377\3\303\321\316\377\223\254\247\377\272\311\307\377\341\333\343" \ + "\342\377\1\257\274\272\377\203}\220\215\377\1^vq\377\203Slg\377\3^vq" \ + "\377n\203\177\377{\217\213\377\211}\220\215\377\1r\207\203\377\202Sl" \ + "g\377\340\333\343\342\377\3\304\321\317\377\223\254\247\377\264\305\301" \ + "\377\207\377\377\377\377\4\373\374\374\377\232\262\255\377\225\256\251" \ + "\377\326\337\336\377\213\333\343\342\377\3\271\311\306\377\223\254\247" \ + "\377\307\324\321\377\207\377\377\377\377\4\360\363\362\377\223\254\247" \ + "\377\234\263\256\377\332\342\341\377\340\333\343\342\377\1\233\253\250" \ + "\377\226Slg\377\340\333\343\342\377\3\246\272\266\377\223\254\247\377" \ + "\341\350\347\377\207\377\377\377\377\3\326\337\335\377\223\254\247\377" \ + "\256\301\275\377\214\333\343\342\377\4\325\336\335\377\225\255\250\377" \ + "\234\263\256\377\374\375\374\377\207\377\377\377\377\3\262\304\300\377" \ + "\223\254\247\377\305\322\320\377\340\333\343\342\377\1\233\253\250\377" \ + "\226Slg\377\337\333\343\342\377\4\317\332\330\377\223\254\247\377\242" \ + "\270\263\377\376\376\376\377\207\377\377\377\377\3\251\274\270\377\223" \ + "\254\247\377\315\330\326\377\215\333\343\342\377\3\255\300\274\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\337\346\345\377\223" \ + "\254\247\377\247\273\267\377\340\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\337\333\343\342\377\3\261\303\300\377\223\254\247\377\320\333" \ + "\331\377\207\377\377\377\377\3\347\355\354\377\223\254\247\377\243\270" \ + "\264\377\216\333\343\342\377\3\314\327\325\377\223\254\247\377\252\276" \ + "\272\377\207\377\377\377\377\4\376\376\376\377\241\267\262\377\223\254" \ + "\247\377\320\333\331\377\337\333\343\342\377\3\233\253\250\377Slg\377" \ + "m\202~\377\221\275\310\306\377\1\242\261\256\377\202Slg\377\336\333\343" \ + "\342\377\1\327\340\337\377\202\227\257\252\377\1\370\372\371\377\207" \ + "\377\377\377\377\3\272\312\307\377\223\254\247\377\301\317\315\377\217" \ + "\333\343\342\377\3\241\267\263\377\223\254\247\377\351\356\355\377\207" \ + "\377\377\377\377\3\316\331\327\377\223\254\247\377\263\304\301\377\337" \ + "\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\336\333\343\342\377\3\275\314\311\377" \ + "\223\254\247\377\277\315\312\377\207\377\377\377\377\4\366\370\367\377" \ + "\225\256\251\377\231\260\254\377\331\341\340\377\217\333\343\342\377" \ + "\3\300\316\314\377\223\254\247\377\274\313\310\377\207\377\377\377\377" \ + "\4\367\371\371\377\226\256\252\377\227\257\252\377\330\340\337\377\336" \ + "\333\343\342\377\3\233\253\250\377Slg\377t\211\205\377\221\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\336\333\343\342\377\3\237\265\260\377" \ + "\223\254\247\377\354\360\357\377\207\377\377\377\377\3\313\327\325\377" \ + "\223\254\247\377\266\306\303\377\220\333\343\342\377\4\331\341\340\377" \ + "\230\260\253\377\226\256\252\377\367\371\370\377\207\377\377\377\377" \ + "\3\274\314\311\377\223\254\247\377\276\315\312\377\336\333\343\342\377" \ + "\3\237\256\253\377[sn\377{\217\213\377\221\333\343\342\377\1\302\315" \ + "\313\377\202x\215\211\377\335\333\343\342\377\3\310\325\323\377\223\254" \ + "\247\377\255\300\274\377\207\377\377\377\377\4\375\376\375\377\237\265" \ + "\261\377\224\254\247\377\323\334\333\377\221\333\343\342\377\3\264\305" \ + "\302\377\223\254\247\377\315\331\326\377\207\377\377\377\377\3\352\357" \ + "\356\377\223\254\247\377\240\266\261\377\377\333\343\342\377\323\333" \ + "\343\342\377\3\252\276\272\377\223\254\247\377\333\343\341\377\207\377" \ + "\377\377\377\3\335\344\343\377\223\254\247\377\252\275\272\377\222\333" \ + "\343\342\377\4\322\334\332\377\223\254\247\377\241\266\262\377\376\376" \ + "\376\377\207\377\377\377\377\3\253\276\273\377\223\254\247\377\312\326" \ + "\324\377\356\333\343\342\377\1\331\342\341\377\341\333\343\342\377\4" \ + "\323\335\333\377\224\254\247\377\235\264\257\377\375\375\375\377\207" \ + "\377\377\377\377\3\257\302\276\377\223\254\247\377\310\324\322\377\207" \ + "\333\343\342\377\4\327\340\337\377\264\305\302\377\260\302\277\377\305" \ + "\321\317\377\210\333\343\342\377\3\251\274\271\377\223\254\247\377\337" \ + "\346\345\377\207\377\377\377\377\3\330\341\337\377\223\254\247\377\253" \ + "\276\273\377\356\333\343\342\377\5\264\301\277\377^uq\377w\214\210\377" \ + "\236\255\253\377\330\341\340\377\335\333\343\342\377\3\266\306\303\377" \ + "\223\254\247\377\311\325\323\377\207\377\377\377\377\3\356\362\361\377" \ + "\223\254\247\377\236\265\260\377\210\333\343\342\377\5\251\275\272\377" \ + "\226\256\251\377\240\266\261\377\222\253\246\377\316\331\330\377\207" \ + "\333\343\342\377\3\307\323\321\377\223\254\247\377\261\303\300\377\207" \ + "\377\377\377\377\4\374\375\374\377\234\263\256\377\224\255\250\377\324" \ + "\335\334\377\334\333\343\342\377\3\241\260\255\377_vr\377z\216\212\377" \ + "\216\333\343\342\377\1\264\301\277\377\203Slg\377\2m\202~\377\312\324" \ + "\323\377\333\333\343\342\377\4\331\341\340\377\231\261\254\377\225\255" \ + "\250\377\364\367\366\377\207\377\377\377\377\3\301\317\314\377\223\254" \ + "\247\377\275\314\311\377\207\333\343\342\377\6\331\342\341\377\225\255" \ + "\250\377\320\333\331\377\374\375\375\377\234\263\256\377\261\303\300" \ + "\377\207\333\343\342\377\4\332\342\341\377\235\264\257\377\223\254\247" \ + "\377\360\363\362\377\207\377\377\377\377\3\307\324\321\377\223\254\247" \ + "\377\267\310\305\377\334\333\343\342\377\3\233\253\250\377Slg\377p\205" \ + "\201\377\216\333\343\342\377\2\270\305\303\377Woj\377\203Slg\377\1~\221" \ + "\216\377\333\333\343\342\377\3\301\317\315\377\223\254\247\377\270\310" \ + "\305\377\207\377\377\377\377\4\371\373\372\377\230\260\253\377\226\256" \ + "\252\377\327\340\336\377\207\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\210\333\343\342\377\3\273\313\310\377\223\254\247\377\303\321\316" \ + "\377\207\377\377\377\377\4\363\365\365\377\224\255\250\377\232\261\255" \ + "\377\331\342\341\377\333\333\343\342\377\3\233\253\250\377Slg\377p\205" \ + "\201\377\217\333\343\342\377\3\332\342\341\377\306\321\317\377\206\230" \ + "\225\377\202Slg\377\1\300\313\311\377\332\333\343\342\377\3\243\270\264" \ + "\377\223\254\247\377\345\353\352\377\207\377\377\377\377\3\322\335\333" \ + "\377\223\254\247\377\261\303\277\377\210\333\343\342\377\6\331\340\337" \ + "\377\223\254\247\377\332\342\341\377\377\377\377\377\251\275\271\377" \ + "\255\300\275\377\210\333\343\342\377\4\326\337\336\377\226\256\251\377" \ + "\232\261\254\377\372\373\373\377\207\377\377\377\377\3\266\307\303\377" \ + "\223\254\247\377\303\320\316\377\333\333\343\342\377\3\233\253\250\377" \ + "Slg\377p\205\201\377\221\333\343\342\377\4\332\342\341\377q\207\202\377" \ + "Slg\377\246\264\262\377\331\333\343\342\377\3\315\330\326\377\223\254" \ + "\247\377\246\273\267\377\210\377\377\377\377\3\245\272\266\377\223\254" \ + "\247\377\317\332\330\377\210\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\211\333\343\342\377\3\260\302\276\377\223\254\247\377\324\336\334" \ + "\377\207\377\377\377\377\3\343\351\350\377\223\254\247\377\244\271\265" \ + "\377\333\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\222\333" \ + "\343\342\377\3\223\244\240\377Slg\377\223\244\240\377\331\333\343\342" \ + "\377\3\257\301\276\377\223\254\247\377\324\336\334\377\207\377\377\377" \ + "\377\3\344\352\351\377\223\254\247\377\245\272\266\377\211\333\343\342" \ + "\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377\377\377" \ + "\251\275\271\377\255\300\275\377\211\333\343\342\377\3\316\331\327\377" \ + "\223\254\247\377\247\273\267\377\210\377\377\377\377\3\244\271\265\377" \ + "\223\254\247\377\316\331\327\377\332\333\343\342\377\3\233\253\250\377" \ + "Slg\377p\205\201\377\222\333\343\342\377\3\213\235\232\377Slg\377\214" \ + "\235\232\377\330\333\343\342\377\10\326\337\336\377\225\256\251\377\231" \ + "\261\254\377\372\373\373\377\354\360\357\377\301\317\315\377\325\337" \ + "\335\377\373\374\374\377\203\377\377\377\377\3\266\307\303\377\223\254" \ + "\247\377\303\321\317\377\211\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\212\333\343\342\377\3\244\271\265\377\223\254\247\377\346\353\352" \ + "\377\203\377\377\377\377\7\356\362\362\377\303\321\316\377\322\334\332" \ + "\377\372\373\373\377\322\334\332\377\223\254\247\377\260\302\277\377" \ + "\332\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221\333\343" \ + "\342\377\4\314\325\324\377_wr\377Slg\377\235\254\252\377\306\333\343" \ + "\342\377\1\203\240\232\377\205r\223\214\377\1w\227\221\377\213\253\276" \ + "\273\377\16\240\265\262\377\223\254\247\377\302\320\315\377\266\307\304" \ + "\377\223\254\247\377\233\262\256\377\223\254\247\377\233\262\255\377" \ + "\346\353\352\377\377\377\377\377\363\366\365\377\224\255\250\377\225" \ + "\256\251\377\252\275\272\377\211\253\276\273\377\6\252\275\272\377\223" \ + "\254\247\377\332\342\341\377\377\377\377\377\250\274\270\377\233\262" \ + "\256\377\212\253\276\273\377\3\242\267\264\377\223\254\247\377\270\310" \ + "\305\377\202\377\377\377\377\11\275\315\312\377\223\254\247\377\232\262" \ + "\255\377\224\255\250\377\231\261\254\377\332\344\341\377\230\260\253" \ + "\377\224\254\250\377\251\275\271\377\212\253\276\273\377\1\227\257\253" \ + "\377\205r\223\214\377\2s\224\215\377\261\303\300\377\300\333\343\342" \ + "\377\1\267\304\302\377\206\211\234\230\377\3p\205\201\377Slg\377^vq\377" \ + "\216\211\234\230\377\4\206\231\225\377\177\223\217\377r\207\203\377T" \ + "mh\377\202Slg\377\1\257\274\272\377\306\333\343\342\377\1|\233\224\377" \ + "\221o\221\212\377\15\215\250\242\377\223\254\247\377\335\345\343\377" \ + "\223\254\247\377\317\332\330\377\375\375\375\377\360\363\363\377\243" \ + "\270\264\377\265\306\303\377\377\377\377\377\310\325\322\377\223\254" \ + "\247\377\200\236\227\377\212o\221\212\377\6p\221\212\377\223\254\247" \ + "\377\332\342\341\377\377\377\377\377\247\273\267\377\205\242\234\377" \ + "\213o\221\212\377\15\217\251\244\377\224\255\250\377\365\367\367\377" \ + "\361\364\364\377\224\255\250\377\306\323\321\377\374\375\375\377\363" \ + "\366\365\377\252\276\272\377\255\300\274\377\300\317\314\377\223\254" \ + "\247\377~\234\226\377\221o\221\212\377\1\256\301\276\377\300\333\343" \ + "\342\377\1\237\256\253\377\234Slg\377\2]up\377\321\333\331\377\306\333" \ + "\343\342\377\1|\233\224\377\220o\221\212\377\6y\230\222\377\223\254\247" \ + "\377\261\303\277\377\277\316\313\377\235\264\257\377\376\376\376\377" \ + "\202\377\377\377\377\6\317\332\330\377\224\255\250\377\362\366\365\377" \ + "\234\263\257\377\222\253\246\377r\223\214\377\212o\221\212\377\6p\221" \ + "\212\377\223\254\247\377\332\342\341\377\377\377\377\377\247\273\267" \ + "\377\205\242\234\377\213o\221\212\377\6\201\236\230\377\223\254\247\377" \ + "\312\326\323\377\310\324\322\377\227\257\252\377\372\373\373\377\202" \ + "\377\377\377\377\5\331\342\340\377\223\254\247\377\337\346\345\377\223" \ + "\254\247\377\215\247\242\377\221o\221\212\377\1\256\301\276\377\300\333" \ + "\343\342\377\1\237\256\253\377\234Slg\377\1\246\265\262\377\307\333\343" \ + "\342\377\1|\233\224\377\220o\221\212\377\6\210\244\236\377\223\254\247" \ + "\377\336\346\344\377\320\333\330\377\225\256\251\377\365\367\367\377" \ + "\202\377\377\377\377\5\275\315\312\377\236\264\260\377\327\341\337\377" \ + "\223\254\247\377\206\242\234\377\213o\221\212\377\6p\221\212\377\223" \ + "\254\247\377\332\342\341\377\377\377\377\377\247\273\267\377\205\242" \ + "\234\377\213o\221\212\377\6r\223\214\377\222\253\246\377\236\264\260" \ + "\377\327\340\336\377\223\254\247\377\354\360\357\377\202\377\377\377" \ + "\377\6\310\324\322\377\231\260\253\377\371\373\373\377\257\301\276\377" \ + "\223\254\247\377x\230\221\377\220o\221\212\377\1\256\301\276\377\300" \ + "\333\343\342\377\1\237\256\253\377\232Slg\377\2q\207\202\377\267\304" \ + "\302\377\310\333\343\342\377\1|\233\224\377\217o\221\212\377\16s\224" \ + "\215\377\222\253\246\377\240\266\262\377\376\376\376\377\371\372\372" \ + "\377\230\260\253\377\250\274\270\377\326\337\336\377\301\317\315\377" \ + "\226\256\251\377\310\325\322\377\253\277\273\377\223\254\247\377w\227" \ + "\220\377\213o\221\212\377\6p\221\212\377\223\254\247\377\332\342\341" \ + "\377\377\377\377\377\247\273\267\377\205\242\234\377\214o\221\212\377" \ + "\15\206\242\235\377\223\254\247\377\330\341\340\377\234\263\256\377\245" \ + "\272\265\377\324\336\334\377\305\322\317\377\230\260\253\377\301\317" \ + "\314\377\377\377\377\377\334\344\343\377\223\254\247\377\207\243\236" \ + "\377\220o\221\212\377\1\256\301\276\377\300\333\343\342\377\1\306\321" \ + "\317\377\206\254\271\267\377\3\202\225\221\377Slg\377f|x\377\216\254" \ + "\271\267\377\3\263\300\276\377\304\317\315\377\325\335\334\377\312\333" \ + "\343\342\377\1\255\300\274\377\205\244\271\265\377\1\251\275\271\377" \ + "\211\333\343\342\377\3\263\305\301\377\223\254\247\377\315\330\326\377" \ + "\202\377\377\377\377\10\341\350\346\377\257\301\275\377\223\254\247\377" \ + "\234\263\256\377\306\323\321\377\345\352\351\377\223\254\247\377\241" \ + "\266\262\377\214\333\343\342\377\6\331\340\337\377\223\254\247\377\332" \ + "\342\341\377\377\377\377\377\251\275\271\377\255\300\275\377\214\333" \ + "\343\342\377\16\311\325\323\377\223\254\247\377\256\300\275\377\344\352" \ + "\351\377\262\304\301\377\223\254\247\377\231\261\254\377\303\321\316" \ + "\377\365\367\367\377\377\377\377\377\375\376\375\377\237\265\260\377" \ + "\223\254\247\377\322\334\333\377\210\333\343\342\377\1\310\324\322\377" \ + "\206\244\271\265\377\1\304\322\320\377\307\333\343\342\377\3\233\253" \ + "\250\377Slg\377p\205\201\377\352\333\343\342\377\4\330\341\337\377\230" \ + "\257\253\377\226\256\251\377\366\370\370\377\204\377\377\377\377\6\361" \ + "\364\363\377\374\375\375\377\377\377\377\377\275\314\311\377\223\254" \ + "\247\377\277\315\313\377\214\333\343\342\377\6\331\340\337\377\223\254" \ + "\247\377\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275" \ + "\377\215\333\343\342\377\6\237\265\261\377\223\254\247\377\354\361\360" \ + "\377\377\377\377\377\362\365\365\377\372\373\373\377\204\377\377\377" \ + "\377\3\313\327\324\377\223\254\247\377\265\306\302\377\327\333\343\342" \ + "\377\3\233\253\250\377Slg\377p\205\201\377\352\333\343\342\377\3\277" \ + "\315\313\377\223\254\247\377\274\313\310\377\207\377\377\377\377\4\370" \ + "\371\371\377\227\257\252\377\230\257\253\377\330\341\337\377\214\333" \ + "\343\342\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377" \ + "\377\377\251\275\271\377\255\300\275\377\215\333\343\342\377\3\275\314" \ + "\312\377\223\254\247\377\277\316\313\377\207\377\377\377\377\4\366\370" \ + "\367\377\225\256\251\377\230\260\253\377\331\341\340\377\326\333\343" \ + "\342\377\3\253\271\266\377t\211\205\377\213\235\231\377\352\333\343\342" \ + "\377\3\241\266\262\377\223\254\247\377\351\356\355\377\207\377\377\377" \ + "\377\3\317\332\330\377\223\254\247\377\263\305\301\377\215\333\343\342" \ + "\377\6\331\340\337\377\223\254\247\377\332\342\341\377\377\377\377\377" \ + "\251\275\271\377\255\300\275\377\215\333\343\342\377\4\327\340\337\377" \ + "\227\257\252\377\227\257\253\377\371\372\372\377\207\377\377\377\377" \ + "\3\271\311\306\377\223\254\247\377\300\316\314\377\377\333\343\342\377" \ + "\303\333\343\342\377\3\312\326\324\377\223\254\247\377\252\275\271\377" \ + "\207\377\377\377\377\4\376\376\376\377\242\267\263\377\223\254\247\377" \ + "\321\333\332\377\215\333\343\342\377\6\331\340\337\377\223\254\247\377" \ + "\332\342\341\377\377\377\377\377\251\275\271\377\255\300\275\377\216" \ + "\333\343\342\377\3\262\303\300\377\223\254\247\377\320\333\331\377\207" \ + "\377\377\377\377\3\347\354\353\377\223\254\247\377\242\267\263\377\377" \ + "\333\343\342\377\303\333\343\342\377\3\254\277\274\377\223\254\247\377" \ + "\330\341\337\377\207\377\377\377\377\3\340\347\346\377\223\254\247\377" \ + "\247\273\270\377\216\333\343\342\377\6\331\340\337\377\223\254\247\377" \ + "\330\341\337\377\377\377\377\377\250\274\270\377\255\300\275\377\216" \ + "\333\343\342\377\3\320\332\331\377\223\254\247\377\243\271\264\377\210" \ + "\377\377\377\377\3\250\274\270\377\223\254\247\377\314\327\325\377\377" \ + "\333\343\342\377\301\333\343\342\377\4\324\336\334\377\224\255\250\377" \ + "\233\262\256\377\374\374\374\377\207\377\377\377\377\3\263\304\301\377" \ + "\223\254\247\377\306\323\321\377\217\333\343\342\377\5\237\265\261\377" \ + "\252\275\271\377\322\334\332\377\223\254\247\377\275\314\311\377\217" \ + "\333\343\342\377\3\246\273\267\377\223\254\247\377\342\351\347\377\207" \ + "\377\377\377\377\3\325\337\335\377\223\254\247\377\256\300\275\377\343" \ + "\333\343\342\377\6\267\303\301\377\223\244\240\377|\220\214\377\213\235" \ + "\231\377\250\267\264\377\311\323\322\377\327\333\343\342\377\3\270\310" \ + "\305\377\223\254\247\377\306\323\321\377\207\377\377\377\377\4\361\364" \ + "\363\377\223\254\247\377\234\263\257\377\332\342\341\377\217\333\343" \ + "\342\377\1\307\323\321\377\202\223\254\247\377\2\240\265\261\377\332" \ + "\342\341\377\217\333\343\342\377\3\304\322\317\377\223\254\247\377\264" \ + "\306\302\377\207\377\377\377\377\4\373\374\374\377\232\262\255\377\225" \ + "\255\250\377\325\336\335\377\325\333\343\342\377\1\302\315\313\377\204" \ + "\222\243\240\377\1\253\271\267\377\205\333\343\342\377\2\323\334\333" \ + "\377\200\223\220\377\205Slg\377\2Uni\377\247\266\263\377\325\333\343" \ + "\342\377\4\332\342\341\377\233\262\255\377\224\254\247\377\362\365\364" \ + "\377\207\377\377\377\377\3\304\322\317\377\223\254\247\377\272\312\307" \ + "\377\221\333\343\342\377\3\327\337\336\377\326\337\335\377\331\340\337" \ + "\377\220\333\343\342\377\4\332\342\341\377\233\262\256\377\224\254\247" \ + "\377\362\365\364\377\207\377\377\377\377\3\304\322\317\377\223\254\247" \ + "\377\271\311\306\377\325\333\343\342\377\1\211\233\230\377\204Slg\377" \ + "\1\201\224\220\377\205\333\343\342\377\1\200\223\220\377\210Slg\377\1" \ + "\227\247\244\377\324\333\343\342\377\3\303\321\317\377\223\254\247\377" \ + "\265\306\302\377\207\377\377\377\377\4\373\374\374\377\232\261\255\377" \ + "\225\256\251\377\326\337\336\377\245\333\343\342\377\3\271\311\306\377" \ + "\223\254\247\377\306\323\320\377\207\377\377\377\377\4\361\364\363\377" \ + "\223\254\247\377\234\262\256\377\332\342\341\377\323\333\343\342\377" \ + "\2\330\341\340\377]up\377\203Slg\377\2[sn\377\227\247\244\377\204\333" \ + "\343\342\377\1\247\266\263\377\212Slg\377\1\305\317\316\377\323\333\343" \ + "\342\377\3\245\272\266\377\223\254\247\377\342\351\347\377\207\377\377" \ + "\377\377\3\325\337\335\377\223\254\247\377\256\301\275\377\246\333\343" \ + "\342\377\4\325\336\335\377\225\255\250\377\233\262\256\377\374\374\374" \ + "\377\207\377\377\377\377\3\263\304\301\377\223\254\247\377\305\322\320" \ + "\377\323\333\343\342\377\1\265\302\300\377\202Slg\377\3]up\377\263\300" \ + "\275\377\332\342\341\377\205\333\343\342\377\1i\177{\377\203Slg\377\5" \ + "Yrm\377\233\253\250\377\266\302\300\377\246\264\262\377x\214\210\377" \ + "\202Slg\377\1\204\227\223\377\322\333\343\342\377\3\317\332\330\377\223" \ + "\254\247\377\243\270\264\377\210\377\377\377\377\3\250\274\270\377\223" \ + "\254\247\377\315\330\326\377\247\333\343\342\377\3\255\300\274\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\340\347\346\377\223" \ + "\254\247\377\247\273\267\377\323\333\343\342\377\4\212\234\231\377Sl" \ + "g\377Voj\377\307\322\320\377\206\333\343\342\377\1\270\305\303\377\203" \ + "Slg\377\2Vni\377\303\316\314\377\203\333\343\342\377\5\331\342\341\377" \ + "\210\233\227\377Slg\377Umh\377\315\327\325\377\321\333\343\342\377\3" \ + "\261\303\277\377\223\254\247\377\321\333\331\377\207\377\377\377\377" \ + "\3\347\354\353\377\223\254\247\377\243\270\264\377\250\333\343\342\377" \ + "\3\314\327\325\377\223\254\247\377\252\275\271\377\207\377\377\377\377" \ + "\4\376\376\376\377\242\267\263\377\223\254\247\377\320\333\331\377\322" \ + "\333\343\342\377\3u\211\205\377Slg\377\221\242\237\377\207\333\343\342" \ + "\377\1\204\227\223\377\203Slg\377\1\221\243\237\377\205\333\343\342\377" \ + "\4\317\331\327\377Voj\377Slg\377\266\303\301\377\320\333\343\342\377" \ + "\4\327\340\336\377\226\256\252\377\227\257\253\377\371\372\372\377\207" \ + "\377\377\377\377\3\271\311\306\377\223\254\247\377\301\317\315\377\251" \ + "\333\343\342\377\3\241\267\263\377\223\254\247\377\351\356\355\377\207" \ + "\377\377\377\377\3\317\332\330\377\223\254\247\377\262\304\300\377\322" \ + "\333\343\342\377\3dzv\377Slg\377\274\307\306\377\206\333\343\342\377" \ + "\2\331\341\340\377\\to\377\202Slg\377\2Tmh\377\315\327\325\377\206\333" \ + "\343\342\377\3z\216\212\377Slg\377\246\264\262\377\320\333\343\342\377" \ + "\3\274\313\311\377\223\254\247\377\277\316\313\377\207\377\377\377\377" \ + "\4\365\367\367\377\225\255\251\377\231\260\254\377\331\341\340\377\251" \ + "\333\343\342\377\3\300\316\314\377\223\254\247\377\273\313\310\377\207" \ + "\377\377\377\377\1\370\371\371\377\202\227\257\252\377\1\327\340\337" \ + "\377\320\333\343\342\377\4\331\341\340\377Umh\377Slg\377\317\330\327" \ + "\377\206\333\343\342\377\1\271\306\304\377\203Slg\377\1z\216\212\377" \ + "\207\333\343\342\377\3\213\235\231\377Slg\377\225\246\243\377\320\333" \ + "\343\342\377\3\236\265\260\377\223\254\247\377\355\361\360\377\207\377" \ + "\377\377\377\3\313\327\324\377\223\254\247\377\266\306\303\377\252\333" \ + "\343\342\377\4\331\341\340\377\230\260\253\377\226\256\251\377\366\370" \ + "\370\377\207\377\377\377\377\3\275\314\311\377\223\254\247\377\276\315" \ + "\312\377\320\333\343\342\377\1\324\334\333\377\202Slg\377\1\325\336\335" \ + "\377\206\333\343\342\377\1\216\240\235\377\203Slg\377\1\255\272\270\377" \ + "\207\333\343\342\377\3\227\247\244\377Slg\377\210\233\227\377\317\333" \ + "\343\342\377\3\310\324\322\377\223\254\247\377\256\301\275\377\207\377" \ + "\377\377\377\4\375\376\375\377\237\265\260\377\224\254\247\377\323\334" \ + "\333\377\253\333\343\342\377\3\264\305\302\377\223\254\247\377\315\330" \ + "\326\377\207\377\377\377\377\3\353\357\356\377\223\254\247\377\237\265" \ + "\261\377\321\333\343\342\377\3\\to\377Slg\377\310\322\321\377\205\333" \ + "\343\342\377\2\330\341\340\377_vr\377\202Slg\377\2Xpk\377\325\336\335" \ + "\377\207\333\343\342\377\3\214\235\232\377Slg\377\216\237\234\377\317" \ + "\333\343\342\377\3\252\275\271\377\223\254\247\377\333\343\342\377\207" \ + "\377\377\377\377\3\334\344\343\377\223\254\247\377\252\275\272\377\254" \ + "\333\343\342\377\4\322\334\332\377\223\254\247\377\240\266\262\377\376" \ + "\376\376\377\207\377\377\377\377\3\254\277\273\377\223\254\247\377\311" \ + "\325\323\377\320\333\343\342\377\3n\203\177\377Slg\377\257\274\272\377" \ + "\205\333\343\342\377\1\261\277\274\377\203Slg\377\1\200\223\220\377\210" \ + "\333\343\342\377\3{\217\213\377Slg\377\227\247\244\377\316\333\343\342" \ + "\377\4\323\334\333\377\223\254\247\377\236\265\260\377\375\375\375\377" \ + "\207\377\377\377\377\3\257\301\276\377\223\254\247\377\310\324\322\377" \ + "\255\333\343\342\377\3\251\274\271\377\223\254\247\377\336\346\344\377" \ + "\207\377\377\377\377\3\331\342\340\377\223\254\247\377\253\276\273\377" \ + "\320\333\343\342\377\3\201\224\220\377Slg\377v\212\206\377\204\333\343" \ + "\342\377\2\330\340\337\377i\200{\377\203Slg\377\1\260\276\273\377\207" \ + "\333\343\342\377\4\325\335\334\377^uq\377Slg\377\253\271\267\377\316" \ + "\333\343\342\377\3\265\306\303\377\223\254\247\377\312\326\324\377\207" \ + "\377\377\377\377\3\356\361\361\377\223\254\247\377\236\265\260\377\256" \ + "\333\343\342\377\3\307\323\321\377\223\254\247\377\261\303\277\377\207" \ + "\377\377\377\377\4\374\375\375\377\235\263\257\377\224\255\250\377\323" \ + "\335\334\377\317\333\343\342\377\1\263\300\275\377\202Slg\377\5\206\231" \ + "\225\377\314\326\324\377\333\343\342\377\315\327\325\377\177\222\217" \ + "\377\203Slg\377\2czu\377\331\341\340\377\207\333\343\342\377\1\234\253" \ + "\251\377\202Slg\377\1\303\316\314\377\315\333\343\342\377\4\331\341\340" \ + "\377\231\260\254\377\225\255\251\377\365\367\367\377\207\377\377\377" \ + "\377\3\300\317\314\377\223\254\247\377\275\314\311\377\256\333\343\342" \ + "\377\4\332\342\341\377\235\264\257\377\223\254\247\377\357\362\362\377" \ + "\207\377\377\377\377\3\310\325\322\377\223\254\247\377\267\307\304\377" \ + "\320\333\343\342\377\1m\202~\377\203Slg\377\1Xql\377\205Slg\377\1\235" \ + "\254\252\377\207\333\343\342\377\4\241\261\256\377Voj\377Slg\377czu\377" \ + "\316\333\343\342\377\3\301\317\314\377\223\254\247\377\271\311\306\377" \ + "\207\377\377\377\377\4\371\373\372\377\230\260\253\377\226\256\252\377" \ + "\327\340\336\377\257\333\343\342\377\3\273\313\310\377\223\254\247\377" \ + "\302\320\315\377\207\377\377\377\377\4\363\366\366\377\224\255\250\377" \ + "\232\261\254\377\331\341\340\377\317\333\343\342\377\2\265\302\300\377" \ + "Voj\377\207Slg\377\2o\205\201\377\330\340\337\377\204\333\343\342\377" \ + "\3\274\307\306\377\210\233\227\377k\201}\377\203Slg\377\1\221\243\237" \ + "\377\316\333\343\342\377\3\243\270\264\377\223\254\247\377\346\354\352" \ + "\377\207\377\377\377\377\3\322\334\332\377\223\254\247\377\261\303\277" \ + "\377\260\333\343\342\377\4\326\337\336\377\226\256\251\377\231\261\254" \ + "\377\372\373\373\377\207\377\377\377\377\3\267\307\304\377\223\254\247" \ + "\377\302\320\316\377\320\333\343\342\377\2\274\310\306\377_wr\377\205" \ + "Slg\377\2j\200|\377\311\324\322\377\205\333\343\342\377\1\226\247\244" \ + "\377\205Slg\377\1\300\313\311\377\315\333\343\342\377\3\314\330\326\377" \ + "\223\254\247\377\247\273\267\377\210\377\377\377\377\3\244\271\265\377" \ + "\223\254\247\377\317\332\330\377\261\333\343\342\377\3\260\302\276\377" \ + "\223\254\247\377\324\336\334\377\207\377\377\377\377\3\344\352\351\377" \ + "\223\254\247\377\244\271\265\377\321\333\343\342\377\7\316\330\326\377" \ + "\250\266\264\377\214\236\233\377v\213\207\377\206\230\225\377\244\263" \ + "\260\377\330\341\340\377\206\333\343\342\377\1\243\262\257\377\204l\201" \ + "}\377\1x\215\211\377\316\333\343\342\377\3\256\301\275\377\223\254\247" \ + "\377\325\336\334\377\207\377\377\377\377\3\343\351\350\377\223\254\247" \ + "\377\245\272\266\377\262\333\343\342\377\3\316\331\327\377\223\254\247" \ + "\377\246\273\267\377\210\377\377\377\377\3\245\272\266\377\223\254\247" \ + "\377\316\331\327\377\377\333\343\342\377\261\333\343\342\377\4\325\337" \ + "\335\377\225\255\251\377\232\261\254\377\373\374\373\377\207\377\377" \ + "\377\377\3\266\307\303\377\223\254\247\377\303\321\317\377\263\333\343" \ + "\342\377\3\244\271\265\377\223\254\247\377\345\353\352\377\207\377\377" \ + "\377\377\3\322\335\333\377\223\254\247\377\260\302\276\377\377\333\343" \ + "\342\377\261\333\343\342\377\3\272\311\307\377\223\254\247\377\303\321" \ + "\316\377\207\377\377\377\377\4\363\366\365\377\224\255\250\377\232\262" \ + "\255\377\332\342\341\377\263\333\343\342\377\3\302\320\316\377\223\254" \ + "\247\377\270\310\305\377\207\377\377\377\377\4\372\373\373\377\231\260" \ + "\254\377\226\256\251\377\326\337\336\377\377\333\343\342\377\257\333" \ + "\343\342\377\4\332\342\341\377\234\263\256\377\223\254\247\377\360\363" \ + "\362\377\207\377\377\377\377\3\307\324\321\377\223\254\247\377\270\310" \ + "\305\377\264\333\343\342\377\4\331\341\340\377\232\261\254\377\225\255" \ + "\250\377\364\367\366\377\207\377\377\377\377\3\301\317\314\377\223\254" \ + "\247\377\273\313\310\377\314\333\343\342\377\3\277\312\310\377\237\256" \ + "\253\377\254\272\270\377\337\333\343\342\377\3\305\322\320\377\223\254" \ + "\247\377\262\304\300\377\207\377\377\377\377\4\374\375\374\377\234\263" \ + "\256\377\224\255\250\377\324\336\334\377\265\333\343\342\377\3\266\307" \ + "\304\377\223\254\247\377\311\325\323\377\207\377\377\377\377\4\356\362" \ + "\361\377\223\254\247\377\235\264\257\377\332\342\341\377\313\333\343" \ + "\342\377\3\233\253\250\377Slg\377p\205\201\377\337\333\343\342\377\3" \ + "\247\273\267\377\223\254\247\377\337\346\345\377\207\377\377\377\377" \ + "\3\330\341\337\377\223\254\247\377\254\277\274\377\266\333\343\342\377" \ + "\4\323\335\334\377\224\255\250\377\235\264\257\377\375\375\375\377\207" \ + "\377\377\377\377\3\260\302\276\377\223\254\247\377\307\323\321\377\313" \ + "\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\336\333\343\342" \ + "\377\4\321\333\331\377\223\254\247\377\241\266\262\377\376\376\376\377" \ + "\207\377\377\377\377\3\253\276\273\377\223\254\247\377\312\326\324\377" \ + "\267\333\343\342\377\3\253\276\272\377\223\254\247\377\333\343\341\377" \ + "\207\377\377\377\377\3\335\345\343\377\223\254\247\377\251\274\271\377" \ + "\313\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\336\333\343" \ + "\342\377\3\263\304\301\377\223\254\247\377\315\331\326\377\207\377\377" \ + "\377\377\3\351\356\355\377\223\254\247\377\241\266\262\377\270\333\343" \ + "\342\377\3\311\325\323\377\223\254\247\377\254\277\273\377\207\377\377" \ + "\377\377\4\375\376\375\377\240\265\261\377\223\254\247\377\321\334\332" \ + "\377\312\333\343\342\377\3\233\253\250\377Slg\377[sn\377\223x\215\211" \ + "\377\5z\216\212\377\202\225\221\377\214\236\233\377\246\265\262\377\310" \ + "\323\321\377\305\333\343\342\377\4\330\340\337\377\227\257\252\377\226" \ + "\256\252\377\367\371\370\377\207\377\377\377\377\3\274\313\310\377\223" \ + "\254\247\377\277\315\313\377\271\333\343\342\377\3\237\265\261\377\223" \ + "\254\247\377\353\360\357\377\207\377\377\377\377\3\314\327\325\377\223" \ + "\254\247\377\264\305\302\377\312\333\343\342\377\1\233\253\250\377\232" \ + "Slg\377\2x\214\210\377\275\311\307\377\303\333\343\342\377\3\276\315" \ + "\312\377\223\254\247\377\274\313\310\377\207\377\377\377\377\4\367\371" \ + "\370\377\226\256\251\377\230\257\253\377\330\341\337\377\271\333\343" \ + "\342\377\3\275\314\312\377\223\254\247\377\276\315\312\377\207\377\377" \ + "\377\377\4\366\370\370\377\225\256\251\377\230\260\253\377\330\341\340" \ + "\377\311\333\343\342\377\1\233\253\250\377\233Slg\377\2Tmh\377\237\256" \ + "\253\377\302\333\343\342\377\3\240\266\262\377\223\254\247\377\351\356" \ + "\355\377\207\377\377\377\377\3\315\330\326\377\223\254\247\377\263\305" \ + "\301\377\272\333\343\342\377\1\327\340\337\377\202\227\257\252\377\1" \ + "\370\371\371\377\207\377\377\377\377\3\272\312\307\377\223\254\247\377" \ + "\300\316\314\377\311\333\343\342\377\1\233\253\250\377\235Slg\377\1\243" \ + "\262\257\377\300\333\343\342\377\3\312\326\324\377\223\254\247\377\252" \ + "\276\272\377\207\377\377\377\377\4\376\376\376\377\240\266\262\377\223" \ + "\254\247\377\321\333\332\377\273\333\343\342\377\3\262\303\300\377\223" \ + "\254\247\377\317\332\330\377\207\377\377\377\377\3\350\355\354\377\223" \ + "\254\247\377\241\267\263\377\311\333\343\342\377\4\321\332\331\377\305" \ + "\320\316\377\305\317\316\377\207\231\226\377\202Slg\377\5j\200|\377\224" \ + "\245\242\377\244\263\260\377\264\300\276\377\302\315\313\377\202\305" \ + "\320\316\377\16\274\307\306\377\254\272\270\377\235\255\252\377\207\232" \ + "\226\377Xql\377Slg\377^vq\377\257\274\272\377\305\320\316\377\304\316" \ + "\315\377\266\303\301\377\247\265\263\377\227\250\245\377s\210\203\377" \ + "\203Slg\377\2Vni\377\304\317\315\377\277\333\343\342\377\3\254\277\273" \ + "\377\223\254\247\377\330\341\337\377\207\377\377\377\377\3\336\346\344" \ + "\377\223\254\247\377\247\273\270\377\274\333\343\342\377\4\320\332\331" \ + "\377\223\254\247\377\242\270\263\377\376\376\376\377\207\377\377\377" \ + "\377\3\251\275\271\377\223\254\247\377\313\327\325\377\311\333\343\342" \ + "\377\5\327\340\337\377y\215\211\377Slg\377q\207\202\377\266\302\300\377" \ + "\213\333\343\342\377\5\321\333\331\377\233\253\250\377Yrm\377Wpk\377" \ + "\255\273\271\377\205\333\343\342\377\2\271\305\303\377r\207\203\377\202" \ + "Slg\377\1\203\226\222\377\276\333\343\342\377\4\324\336\334\377\224\255" \ + "\250\377\234\263\256\377\374\375\374\377\207\377\377\377\377\3\261\303" \ + "\277\377\223\254\247\377\306\323\321\377\275\333\343\342\377\3\246\273" \ + "\267\377\223\254\247\377\340\347\346\377\207\377\377\377\377\3\326\340" \ + "\336\377\223\254\247\377\255\300\274\377\311\333\343\342\377\4\211\234" \ + "\230\377Slg\377n\204\200\377\325\336\335\377\216\333\343\342\377\4\263" \ + "\300\275\377Tlg\377Wpk\377\300\314\312\377\205\333\343\342\377\5\325" \ + "\335\334\377f}x\377Slg\377Umh\377\324\334\333\377\275\333\343\342\377" \ + "\3\267\310\305\377\223\254\247\377\307\324\321\377\207\377\377\377\377" \ + "\4\357\363\362\377\223\254\247\377\234\263\257\377\332\342\341\377\275" \ + "\333\343\342\377\3\304\322\317\377\223\254\247\377\263\304\301\377\207" \ + "\377\377\377\377\4\373\374\374\377\233\262\255\377\225\255\250\377\325" \ + "\336\335\377\307\333\343\342\377\4\275\311\307\377Slg\377\\so\377\316" \ + "\327\326\377\220\333\343\342\377\3\227\250\245\377Slg\377p\206\202\377" \ + "\206\333\343\342\377\4\276\312\310\377Tlg\377Slg\377\266\302\300\377" \ + "\274\333\343\342\377\4\331\342\341\377\232\261\255\377\224\254\247\377" \ + "\362\365\364\377\207\377\377\377\377\3\302\320\315\377\223\254\247\377" \ + "\272\312\307\377\276\333\343\342\377\4\332\342\341\377\233\262\256\377" \ + "\223\254\247\377\361\364\363\377\207\377\377\377\377\3\305\322\320\377" \ + "\223\254\247\377\271\311\306\377\307\333\343\342\377\3\211\233\230\377" \ + "Slg\377|\217\214\377\221\333\343\342\377\1\304\317\315\377\202Slg\377" \ + "\1\305\317\316\377\206\333\343\342\377\3f}x\377Slg\377\235\254\252\377" \ + "\274\333\343\342\377\3\303\320\316\377\223\254\247\377\265\306\302\377" \ + "\207\377\377\377\377\4\372\373\373\377\231\261\254\377\225\255\251\377" \ + "\326\337\336\377\277\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\304\322\317\377\207\377\377\377\377\4\361\364\363\377\223\254\247\377" \ + "\233\262\256\377\332\342\341\377\306\333\343\342\377\3e{w\377Slg\377" \ + "\227\250\245\377\221\333\343\342\377\4\331\342\341\377Xql\377Slg\377" \ + "\241\261\256\377\206\333\343\342\377\3}\221\215\377Slg\377\221\242\237" \ + "\377\274\333\343\342\377\3\245\271\265\377\223\254\247\377\343\351\350" \ + "\377\207\377\377\377\377\3\324\336\334\377\223\254\247\377\256\301\275" \ + "\377\300\333\343\342\377\4\325\336\335\377\225\255\250\377\232\262\255" \ + "\377\373\374\374\377\207\377\377\377\377\3\264\305\301\377\223\254\247" \ + "\377\304\321\317\377\305\333\343\342\377\4\332\342\341\377Vni\377Slg" \ + "\377\243\262\257\377\222\333\343\342\377\3czu\377Slg\377\223\244\241" \ + "\377\206\333\343\342\377\3\224\244\241\377Slg\377\210\233\227\377\273" \ + "\333\343\342\377\3\316\331\330\377\223\254\247\377\244\271\264\377\210" \ + "\377\377\377\377\3\246\273\267\377\223\254\247\377\315\330\326\377\301" \ + "\333\343\342\377\4\255\300\274\377\222\253\246\377\315\330\326\377\376" \ + "\376\376\377\206\377\377\377\377\3\341\350\346\377\223\254\247\377\246" \ + "\272\266\377\305\333\343\342\377\1\322\333\332\377\202Slg\377\1\205\230" \ + "\224\377\221\333\343\342\377\1\316\327\326\377\202Slg\377\1\211\234\230" \ + "\377\206\333\343\342\377\3\220\242\236\377Slg\377\222\243\240\377\273" \ + "\333\343\342\377\3\260\302\277\377\223\254\247\377\321\334\332\377\207" \ + "\377\377\377\377\3\345\353\352\377\223\254\247\377\243\270\264\377\302" \ + "\333\343\342\377\16\314\327\325\377\223\254\246\377\223\254\247\377\226" \ + "\256\251\377\244\271\265\377\264\305\302\377\303\321\316\377\323\335" \ + "\333\377\342\351\350\377\361\365\364\377\375\375\375\377\242\270\263" \ + "\377\223\254\247\377\317\332\330\377\304\333\343\342\377\4\332\342\341" \ + "\377Vni\377Slg\377f|x\377\221\333\343\342\377\1\256\274\271\377\202S" \ + "lg\377\1\226\246\243\377\206\333\343\342\377\3\202\225\221\377Slg\377" \ + "\237\257\254\377\272\333\343\342\377\4\327\337\336\377\226\256\251\377" \ + "\230\260\253\377\371\372\372\377\207\377\377\377\377\3\270\310\305\377" \ + "\223\254\247\377\301\317\315\377\303\333\343\342\377\15\232\262\255\377" \ + "\223\254\246\377\325\336\335\377\331\342\340\377\312\326\324\377\273" \ + "\313\310\377\254\277\273\377\235\263\257\377\223\254\247\377\226\256" \ + "\251\377\234\263\256\377\222\254\246\377\256\300\274\377\305\333\343" \ + "\342\377\1i\200{\377\202Slg\377\1\224\244\241\377\217\333\343\342\377" \ + "\2\313\325\323\377czu\377\202Slg\377\1\253\271\266\377\205\333\343\342" \ + "\377\4\331\341\340\377czu\377Slg\377\254\272\270\377\272\333\343\342" \ + "\377\3\274\313\310\377\223\254\247\377\277\316\313\377\207\377\377\377" \ + "\377\4\364\367\366\377\225\255\250\377\231\260\254\377\331\341\340\377" \ + "\303\333\343\342\377\3\275\313\311\377\222\254\246\377\257\301\276\377" \ + "\205\377\377\377\377\3\372\373\373\377\353\360\357\377\327\340\335\377" \ + "\202\224\255\250\377\3\327\340\337\377\331\342\341\377\322\334\333\377" \ + "\302\333\343\342\377\1\226\247\244\377\203Slg\377\2\231\252\247\377\330" \ + "\341\340\377\214\333\343\342\377\2\310\323\321\377f|x\377\202Slg\377" \ + "\2Voj\377\323\334\332\377\205\333\343\342\377\1\253\271\266\377\202S" \ + "lg\377\1\272\306\304\377\272\333\343\342\377\3\236\264\260\377\223\254" \ + "\247\377\355\361\360\377\207\377\377\377\377\3\311\325\323\377\223\254" \ + "\247\377\266\306\303\377\304\333\343\342\377\4\331\341\340\377\224\255" \ + "\250\377\224\254\247\377\366\370\367\377\207\377\377\377\377\5\263\305" \ + "\301\377\222\254\246\377\266\306\302\377\232\262\254\377\240\266\262" \ + "\377\302\333\343\342\377\2\314\325\324\377Xql\377\203Slg\377\4_wr\377" \ + "\221\243\237\377\304\316\315\377\330\341\340\377\206\333\343\342\377" \ + "\4\322\333\332\377\254\271\267\377w\214\210\377Tlg\377\203Slg\377\1\211" \ + "\233\230\377\205\333\343\342\377\5\263\300\276\377Xql\377Slg\377Xql\377" \ + "\326\336\335\377\271\333\343\342\377\3\310\324\322\377\223\254\247\377" \ + "\256\301\275\377\207\377\377\377\377\4\375\375\375\377\235\264\257\377" \ + "\223\254\247\377\323\334\333\377\305\333\343\342\377\3\256\300\276\377" \ + "\223\253\246\377\305\322\320\377\207\377\377\377\377\6\353\360\357\377" \ + "\222\254\247\377\231\261\255\377\241\267\262\377\223\254\247\377\312" \ + "\326\324\377\302\333\343\342\377\1\237\256\253\377\206Slg\377\7Tlg\377" \ + "^vq\377l\202~\377y\215\211\377s\210\203\377e|w\377Xpk\377\206Slg\377" \ + "\2_wr\377\321\333\331\377\203\333\343\342\377\2\255\272\270\377q\207" \ + "\202\377\203Slg\377\1~\222\216\377\272\333\343\342\377\3\251\275\271" \ + "\377\223\254\247\377\334\344\342\377\207\377\377\377\377\3\333\343\341" \ + "\377\223\254\247\377\252\275\271\377\306\333\343\342\377\4\322\334\332" \ + "\377\223\253\246\377\231\260\253\377\375\376\375\377\207\377\377\377" \ + "\377\5\242\267\263\377\222\253\246\377\265\305\302\377\223\254\247\377" \ + "\254\277\273\377\303\333\343\342\377\1\220\242\236\377\221Slg\377\2_" \ + "vr\377\304\316\315\377\204\333\343\342\377\1}\220\215\377\204Slg\377" \ + "\1\251\267\265\377\271\333\343\342\377\4\322\334\333\377\223\254\247" \ + "\377\236\265\260\377\375\376\375\377\207\377\377\377\377\3\255\300\274" \ + "\377\223\254\247\377\310\324\322\377\307\333\343\342\377\3\241\266\263" \ + "\377\223\253\247\377\332\342\341\377\203\377\377\377\377\2\371\372\372" \ + "\377\364\367\366\377\202\377\377\377\377\6\326\340\336\377\222\254\246" \ + "\377\243\270\263\377\230\260\253\377\225\255\250\377\324\336\334\377" \ + "\303\333\343\342\377\2\242\261\256\377Yql\377\216Slg\377\2s\210\204\377" \ + "\310\322\321\377\205\333\343\342\377\1\235\255\252\377\204\201\224\220" \ + "\377\1\321\333\331\377\271\333\343\342\377\3\265\306\302\377\223\254" \ + "\247\377\312\326\324\377\207\377\377\377\377\3\354\360\357\377\223\254" \ + "\247\377\236\265\260\377\310\333\343\342\377\3\306\322\320\377\222\253" \ + "\246\377\244\271\266\377\203\377\377\377\377\2\244\271\264\377\272\312" \ + "\307\377\202\377\377\377\377\6\374\375\375\377\227\257\252\377\223\254" \ + "\246\377\260\303\277\377\223\254\247\377\267\310\305\377\304\333\343" \ + "\342\377\3\313\325\323\377\212\234\231\377Yrm\377\212Slg\377\3n\203\177" \ + "\377\247\266\263\377\332\342\341\377\304\333\343\342\377\4\331\341\340" \ + "\377\230\260\253\377\225\255\251\377\365\367\367\377\207\377\377\377" \ + "\377\3\277\315\312\377\223\254\247\377\275\314\311\377\310\333\343\342" \ + "\377\4\332\342\341\377\227\257\253\377\223\253\246\377\356\361\361\377" \ + "\202\377\377\377\377\3\312\326\324\377\226\256\251\377\367\370\370\377" \ + "\202\377\377\377\377\6\300\316\314\377\223\253\246\377\226\256\250\377" \ + "\223\254\247\377\233\261\255\377\332\342\341\377\305\333\343\342\377" \ + "\13\324\335\334\377\261\277\274\377\224\244\241\377|\217\214\377r\207" \ + "\203\377j\200|\377n\203\177\377v\213\207\377\205\227\224\377\242\261" \ + "\256\377\303\316\314\377\307\333\343\342\377\3\301\317\314\377\223\254" \ + "\247\377\271\311\306\377\207\377\377\377\377\4\370\372\371\377\227\257" \ + "\252\377\226\256\252\377\327\340\336\377\311\333\343\342\377\3\267\310" \ + "\305\377\223\253\246\377\266\307\304\377\202\377\377\377\377\3\365\367" \ + "\367\377\225\256\251\377\315\330\326\377\202\377\377\377\377\6\364\366" \ + "\366\377\223\254\246\377\223\253\247\377\235\263\260\377\223\254\247" \ + "\377\303\321\317\377\377\333\343\342\377\230\333\343\342\377\3\242\267" \ + "\263\377\223\254\247\377\346\354\353\377\207\377\377\377\377\3\320\333" \ + "\331\377\223\254\247\377\261\303\277\377\312\333\343\342\377\4\326\337" \ + "\336\377\223\254\247\377\224\255\250\377\371\373\372\377\202\377\377" \ + "\377\377\3\271\311\306\377\241\266\262\377\376\376\376\377\202\377\377" \ + "\377\377\5\253\277\273\377\223\253\247\377\263\305\302\377\223\254\247" \ + "\377\245\271\265\377\377\333\343\342\377\227\333\343\342\377\3\314\330" \ + "\326\377\223\254\247\377\247\273\267\377\207\377\377\377\377\4\376\376" \ + "\376\377\243\270\264\377\223\254\247\377\317\332\330\377\313\333\343" \ + "\342\377\3\251\274\270\377\222\254\247\377\315\330\325\377\202\377\377" \ + "\377\377\3\346\354\353\377\223\254\247\377\337\346\345\377\202\377\377" \ + "\377\377\2\344\352\350\377\223\254\246\377\202\235\263\257\377\2\223" \ + "\254\247\377\316\331\330\377\377\333\343\342\377\226\333\343\342\377" \ + "\3\256\300\275\377\223\254\247\377\325\337\335\377\207\377\377\377\377" \ + "\3\341\350\347\377\223\254\247\377\245\272\266\377\314\333\343\342\377" \ + "\3\316\331\327\377\222\253\246\377\234\263\256\377\203\377\377\377\377" \ + "\2\247\274\270\377\261\303\300\377\203\377\377\377\377\5\234\263\256" \ + "\377\223\253\246\377\263\305\301\377\223\254\247\377\260\303\277\377" \ + "\322\333\343\342\377\1\304\317\315\377\202\201\224\220\377\277\333\343" \ + "\342\377\4\325\336\335\377\225\255\250\377\232\261\255\377\373\374\373" \ + "\377\207\377\377\377\377\3\264\305\302\377\223\254\247\377\303\321\317" \ + "\377\315\333\343\342\377\3\235\263\260\377\223\253\246\377\342\351\347" \ + "\377\202\377\377\377\377\3\325\336\334\377\223\254\247\377\360\363\363" \ + "\377\202\377\377\377\377\5\315\330\326\377\223\253\246\377\247\274\267" \ + "\377\227\256\251\377\253\276\273\377\322\333\343\342\377\1\270\305\303" \ + "\377\202Slg\377\277\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\303\321\316\377\207\377\377\377\377\4\361\364\364\377\224\254\247\377" \ + "\232\262\255\377\332\342\341\377\315\333\343\342\377\3\300\317\315\377" \ + "\223\254\246\377\253\277\272\377\202\377\377\377\377\3\373\374\374\377" \ + "\232\262\255\377\303\321\316\377\202\377\377\377\377\4\372\373\373\377" \ + "\225\255\251\377\224\254\247\377\321\333\332\377\323\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\276\333\343\342\377\4\332\342\341\377\234" \ + "\263\256\377\223\254\247\377\360\363\363\377\207\377\377\377\377\3\305" \ + "\323\320\377\223\254\247\377\270\310\305\377\316\333\343\342\377\4\331" \ + "\341\340\377\226\255\251\377\223\253\247\377\363\366\365\377\202\377" \ + "\377\377\377\3\304\321\317\377\232\262\255\377\373\374\374\377\202\377" \ + "\377\377\377\3\267\310\304\377\222\253\246\377\270\310\304\377\306\333" \ + "\343\342\377\2\317\331\327\377\301\314\312\377\213\275\310\306\377\1" \ + "\242\261\256\377\202Slg\377\276\333\343\342\377\3\305\322\320\377\223" \ + "\254\247\377\262\304\300\377\207\377\377\377\377\4\374\374\374\377\233" \ + "\262\255\377\224\255\250\377\324\336\334\377\317\333\343\342\377\3\261" \ + "\303\300\377\223\253\246\377\276\315\313\377\202\377\377\377\377\3\360" \ + "\364\363\377\223\254\247\377\325\337\335\377\202\377\377\377\377\4\357" \ + "\362\362\377\222\253\246\377\231\260\253\377\332\342\341\377\301\333" \ + "\343\342\377\4\305\320\316\377\204\227\223\377e|w\377Voj\377\220Slg\377" \ + "\276\333\343\342\377\3\247\273\267\377\223\254\247\377\340\347\345\377" \ + "\207\377\377\377\377\3\327\340\336\377\223\254\247\377\254\277\274\377" \ + "\320\333\343\342\377\4\323\335\334\377\223\253\247\377\226\256\252\377" \ + "\374\375\374\377\202\377\377\377\377\2\262\304\301\377\250\274\270\377" \ + "\202\377\377\377\377\4\354\360\357\377\232\262\255\377\223\253\247\377" \ + "\306\323\321\377\277\333\343\342\377\3\325\335\334\377\202\225\221\377" \ + "Tlg\377\223Slg\377\275\333\343\342\377\4\320\333\331\377\223\254\247" \ + "\377\241\267\262\377\376\376\376\377\207\377\377\377\377\3\251\275\271" \ + "\377\223\254\247\377\312\326\324\377\321\333\343\342\377\3\244\271\264" \ + "\377\223\254\247\377\325\337\335\377\202\377\377\377\377\10\340\347\346" \ + "\377\223\254\247\377\312\327\324\377\255\300\274\377\226\256\251\377" \ + "\255\277\274\377\222\254\247\377\250\274\270\377\277\333\343\342\377" \ + "\1\207\232\226\377\225Slg\377\275\333\343\342\377\3\262\304\300\377\223" \ + "\254\247\377\316\331\327\377\207\377\377\377\377\3\350\355\354\377\223" \ + "\254\247\377\240\266\262\377\322\333\343\342\377\16\311\325\323\377\223" \ + "\254\246\377\241\266\263\377\377\377\377\377\364\367\366\377\310\325" \ + "\322\377\227\257\252\377\234\263\256\377\312\327\324\377\365\370\367" \ + "\377\376\376\376\377\240\266\261\377\223\254\247\377\321\333\332\377" \ + "\275\333\343\342\377\1\257\275\272\377\205Slg\377\4Voj\377axt\377k\201" \ + "|\377t\211\205\377\212x\215\211\377\1o\204\200\377\202Slg\377\274\333" \ + "\343\342\377\4\330\340\337\377\227\257\252\377\226\256\252\377\367\371" \ + "\371\377\207\377\377\377\377\3\273\312\307\377\223\254\247\377\277\315" \ + "\313\377\323\333\343\342\377\7\231\260\254\377\223\253\247\377\260\302" \ + "\276\377\225\256\251\377\257\301\276\377\334\344\343\377\376\376\376" \ + "\377\203\377\377\377\377\3\315\330\326\377\223\254\247\377\264\305\302" \ + "\377\275\333\343\342\377\1\201\225\221\377\203Slg\377\3~\222\216\377" \ + "\261\277\274\377\327\340\337\377\215\333\343\342\377\1\270\305\303\377" \ + "\202Slg\377\274\333\343\342\377\3\276\315\312\377\223\254\247\377\274" \ + "\314\311\377\207\377\377\377\377\4\366\370\370\377\225\256\251\377\230" \ + "\257\253\377\330\341\337\377\323\333\343\342\377\4\273\312\310\377\222" \ + "\254\246\377\244\271\265\377\356\362\361\377\206\377\377\377\377\4\366" \ + "\370\370\377\226\256\251\377\230\257\253\377\330\341\340\377\274\333" \ + "\343\342\377\1i\200{\377\202Slg\377\1\204\226\223\377\220\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\274\333\343\342\377\3\237\265\261\377" \ + "\223\254\247\377\352\357\356\377\207\377\377\377\377\3\314\330\325\377" \ + "\223\254\247\377\263\304\301\377\324\333\343\342\377\4\327\340\337\377" \ + "\227\257\252\377\226\256\252\377\367\371\371\377\207\377\377\377\377" \ + "\3\273\313\310\377\223\254\247\377\277\316\313\377\273\333\343\342\377" \ + "\2\330\340\337\377Uni\377\202Slg\377\1\321\333\331\377\220\333\343\342" \ + "\377\1\270\305\303\377\202Slg\377\273\333\343\342\377\3\312\326\324\377" \ + "\223\254\247\377\253\276\273\377\207\377\377\377\377\4\376\376\376\377" \ + "\240\265\261\377\223\254\247\377\321\333\332\377\325\333\343\342\377" \ + "\3\262\303\300\377\223\254\247\377\316\331\327\377\207\377\377\377\377" \ + "\3\350\356\355\377\223\254\247\377\241\267\262\377\273\333\343\342\377" \ + "\4\326\337\336\377Tlg\377Slg\377byt\377\221\333\343\342\377\1\330\341" \ + "\340\377\202\322\333\332\377\273\333\343\342\377\3\253\276\273\377\223" \ + "\254\247\377\330\341\337\377\207\377\377\377\377\3\335\345\344\377\223" \ + "\254\247\377\247\273\270\377\326\333\343\342\377\4\320\332\331\377\223" \ + "\254\247\377\241\267\262\377\376\376\376\377\207\377\377\377\377\3\252" \ + "\275\271\377\223\254\247\377\313\326\325\377\273\333\343\342\377\3cz" \ + "u\377Slg\377l\202~\377\316\333\343\342\377\4\323\335\334\377\224\255" \ + "\250\377\234\263\256\377\374\375\374\377\207\377\377\377\377\3\260\302" \ + "\276\377\223\254\247\377\306\323\321\377\327\333\343\342\377\3\246\273" \ + "\267\377\223\254\247\377\340\347\345\377\207\377\377\377\377\3\327\340" \ + "\336\377\223\254\247\377\254\277\274\377\273\333\343\342\377\4\207\231" \ + "\226\377Slg\377Vni\377\327\337\336\377\315\333\343\342\377\3\267\307" \ + "\304\377\223\254\247\377\307\324\321\377\207\377\377\377\377\4\356\362" \ + "\361\377\223\254\247\377\234\263\257\377\332\342\341\377\327\333\343" \ + "\342\377\3\304\322\317\377\223\254\247\377\262\304\300\377\207\377\377" \ + "\377\377\4\374\374\374\377\233\262\256\377\224\255\250\377\325\336\335" \ + "\377\272\333\343\342\377\1\305\317\316\377\202Slg\377\1\271\306\304\377" \ + "\220\333\343\342\377\1\307\322\320\377\202\216\237\234\377\271\333\343" \ + "\342\377\4\331\342\341\377\232\261\255\377\224\255\250\377\363\366\365" \ + "\377\207\377\377\377\377\3\302\320\315\377\223\254\247\377\272\312\307" \ + "\377\330\333\343\342\377\4\332\342\341\377\233\262\256\377\223\254\247" \ + "\377\360\363\363\377\207\377\377\377\377\3\306\323\320\377\223\254\247" \ + "\377\270\310\305\377\273\333\343\342\377\4\232\252\247\377Slg\377d{v" \ + "\377\317\330\327\377\217\333\343\342\377\1\270\305\303\377\202Slg\377" \ + "\271\333\343\342\377\3\303\320\316\377\223\254\247\377\266\307\303\377" \ + "\207\377\377\377\377\4\372\373\373\377\231\260\254\377\225\255\251\377" \ + "\326\337\336\377\331\333\343\342\377\3\271\311\306\377\223\254\247\377" \ + "\303\321\316\377\207\377\377\377\377\4\362\365\364\377\224\254\247\377" \ + "\233\262\255\377\332\342\341\377\273\333\343\342\377\4\226\246\243\377" \ + "Tmh\377l\201}\377\267\303\301\377\216\333\343\342\377\1\270\305\303\377" \ + "\202Slg\377\271\333\343\342\377\3\244\271\265\377\223\254\247\377\343" \ + "\352\350\377\207\377\377\377\377\3\323\335\333\377\223\254\247\377\256" \ + "\301\275\377\332\333\343\342\377\4\325\336\335\377\225\255\250\377\232" \ + "\261\254\377\373\374\373\377\207\377\377\377\377\3\264\306\302\377\223" \ + "\254\247\377\304\321\317\377\271\333\343\342\377\1\317\330\327\377\202" \ + "\301\314\312\377\10\246\265\262\377^vq\377Slg\377k\201}\377\226\247\244" \ + "\377\245\264\261\377\263\300\276\377\277\313\311\377\211\301\314\312" \ + "\377\1\245\264\261\377\202Slg\377\270\333\343\342\377\3\316\331\327\377" \ + "\223\254\247\377\245\271\265\377\210\377\377\377\377\3\246\272\266\377" \ + "\223\254\247\377\315\330\326\377\333\333\343\342\377\3\255\300\274\377" \ + "\223\254\247\377\325\336\334\377\207\377\377\377\377\3\342\350\347\377" \ + "\223\254\247\377\245\272\266\377\271\333\343\342\377\1\233\253\250\377" \ + "\226Slg\377\270\333\343\342\377\3\260\302\276\377\223\254\247\377\322" \ + "\334\332\377\207\377\377\377\377\3\344\352\351\377\223\254\247\377\243" \ + "\270\264\377\334\333\343\342\377\3\314\327\325\377\223\254\247\377\247" \ + "\273\267\377\207\377\377\377\377\4\376\376\376\377\243\270\264\377\223" \ + "\254\247\377\317\332\330\377\270\333\343\342\377\1\233\253\250\377\226" \ + "Slg\377\267\333\343\342\377\4\326\337\336\377\226\256\251\377\230\260" \ + "\253\377\371\373\372\377\207\377\377\377\377\3\267\307\304\377\223\254" \ + "\247\377\301\317\315\377\335\333\343\342\377\3\241\267\263\377\223\254" \ + "\247\377\346\354\353\377\207\377\377\377\377\3\320\333\331\377\223\254" \ + "\247\377\261\303\277\377\270\333\343\342\377\1\233\253\250\377\226Sl" \ + "g\377\267\333\343\342\377\3\273\313\310\377\223\254\247\377\300\317\314" \ + "\377\207\377\377\377\377\4\363\366\366\377\224\255\250\377\231\260\254" \ + "\377\331\341\340\377\335\333\343\342\377\3\300\316\314\377\223\254\247" \ + "\377\271\311\306\377\207\377\377\377\377\4\371\372\372\377\227\257\253" \ + "\377\226\256\252\377\327\340\337\377\267\333\343\342\377\3\233\253\250" \ + "\377Slg\377[sn\377\221x\215\211\377\1o\204\200\377\202Slg\377\266\333" \ + "\343\342\377\4\332\342\341\377\235\264\257\377\223\254\247\377\356\361" \ + "\361\377\207\377\377\377\377\3\310\325\322\377\223\254\247\377\266\306" \ + "\303\377\336\333\343\342\377\4\330\341\340\377\230\260\253\377\225\255" \ + "\251\377\365\367\367\377\207\377\377\377\377\3\277\316\313\377\223\254" \ + "\247\377\275\314\311\377\267\333\343\342\377\3\233\253\250\377Slg\377" \ + "p\205\201\377\221\333\343\342\377\1\270\305\303\377\202Slg\377\266\333" \ + "\343\342\377\3\307\324\322\377\223\254\247\377\257\301\276\377\207\377" \ + "\377\377\377\4\374\375\375\377\235\264\257\377\223\254\247\377\323\334" \ + "\333\377\337\333\343\342\377\3\264\305\302\377\223\254\247\377\312\326" \ + "\324\377\207\377\377\377\377\3\354\361\360\377\223\254\247\377\236\265" \ + "\260\377\267\333\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221" \ + "\333\343\342\377\1\270\305\303\377\202Slg\377\266\333\343\342\377\3\251" \ + "\274\271\377\223\254\247\377\334\344\343\377\207\377\377\377\377\3\332" \ + "\342\340\377\223\254\247\377\252\275\271\377\340\333\343\342\377\4\322" \ + "\334\332\377\223\254\247\377\236\265\260\377\375\375\375\377\207\377" \ + "\377\377\377\3\256\300\275\377\223\254\247\377\310\324\322\377\266\333" \ + "\343\342\377\3\233\253\250\377Slg\377p\205\201\377\221\333\343\342\377" \ + "\1\270\305\303\377\202Slg\377\265\333\343\342\377\4\322\334\332\377\223" \ + "\254\247\377\237\265\260\377\375\376\375\377\207\377\377\377\377\3\254" \ + "\277\273\377\223\254\247\377\310\324\322\377\341\333\343\342\377\3\251" \ + "\274\271\377\223\254\247\377\333\343\342\377\207\377\377\377\377\3\333" \ + "\343\342\377\223\254\247\377\252\275\272\377\266\333\343\342\377\3\277" \ + "\312\310\377\237\256\253\377\254\272\270\377\221\333\343\342\377\1\323" \ + "\334\333\377\202\275\310\306\377\265\333\343\342\377\3\264\305\302\377" \ + "\223\254\247\377\313\327\324\377\207\377\377\377\377\3\353\360\357\377" \ + "\223\254\247\377\236\265\260\377\342\333\343\342\377\3\307\323\321\377" \ + "\223\254\247\377\256\301\275\377\207\377\377\377\377\4\375\375\375\377" \ + "\236\264\260\377\224\254\247\377\323\334\333\377\377\333\343\342\377" \ + "\5\333\343\342\377\331\341\340\377\230\260\253\377\225\256\251\377\366" \ + "\370\367\377\207\377\377\377\377\3\275\314\311\377\223\254\247\377\274" \ + "\313\311\377\342\333\343\342\377\4\332\342\341\377\235\264\257\377\223" \ + "\254\247\377\355\361\360\377\207\377\377\377\377\3\312\326\323\377\223" \ + "\254\247\377\266\306\303\377\377\333\343\342\377\4\333\343\342\377\300" \ + "\316\314\377\223\254\247\377\271\311\306\377\207\377\377\377\377\4\370" \ + "\371\371\377\227\257\252\377\226\256\252\377\327\340\336\377\343\333" \ + "\343\342\377\3\273\313\310\377\223\254\247\377\277\316\313\377\207\377" \ + "\377\377\377\4\364\367\366\377\225\255\250\377\231\260\254\377\331\341" \ + "\340\377\310\333\343\342\377\3\307\322\320\377\305\320\316\377\324\334" \ + "\333\377\264\333\343\342\377\3\241\267\263\377\223\254\247\377\347\354" \ + "\353\377\207\377\377\377\377\3\317\332\330\377\223\254\247\377\261\303" \ + "\277\377\344\333\343\342\377\4\326\337\336\377\226\256\251\377\227\257" \ + "\253\377\371\372\372\377\207\377\377\377\377\3\270\310\305\377\223\254" \ + "\247\377\301\317\315\377\310\333\343\342\377\3_vr\377Slg\377\254\271" \ + "\267\377\263\333\343\342\377\3\314\327\325\377\223\254\247\377\250\274" \ + "\270\377\207\377\377\377\377\4\376\376\376\377\242\270\263\377\223\254" \ + "\247\377\317\332\330\377\345\333\343\342\377\3\260\302\276\377\223\254" \ + "\247\377\321\333\331\377\207\377\377\377\377\3\346\353\352\377\223\254" \ + "\247\377\243\270\264\377\310\333\343\342\377\3_vr\377Slg\377\254\271" \ + "\267\377\263\333\343\342\377\3\255\300\274\377\223\254\247\377\325\337" \ + "\335\377\207\377\377\377\377\3\340\347\346\377\223\254\247\377\245\272" \ + "\266\377\346\333\343\342\377\3\316\331\327\377\223\254\247\377\244\271" \ + "\265\377\210\377\377\377\377\3\247\273\267\377\223\254\247\377\315\330" \ + "\326\377\307\333\343\342\377\3^vq\377Slg\377\254\271\267\377\262\333" \ + "\343\342\377\4\325\336\335\377\225\255\250\377\232\261\255\377\373\374" \ + "\374\377\207\377\377\377\377\3\263\304\301\377\223\254\247\377\303\321" \ + "\317\377\347\333\343\342\377\3\244\271\265\377\223\254\247\377\342\351" \ + "\347\377\207\377\377\377\377\3\324\336\334\377\223\254\247\377\256\301" \ + "\275\377\304\333\343\342\377\3\317\331\327\377\236\255\253\377i\177{" \ + "\377\202Slg\377\1\254\271\267\377\262\333\343\342\377\3\271\311\306\377" \ + "\223\254\247\377\304\322\317\377\207\377\377\377\377\4\361\364\363\377" \ + "\223\254\247\377\226\256\251\377\332\342\341\377\347\333\343\342\377" \ + "\3\302\320\316\377\223\254\247\377\265\306\302\377\202\377\377\377\377" \ + "\3\371\373\372\377\356\361\361\377\375\375\375\377\202\377\377\377\377" \ + "\4\372\373\373\377\232\261\254\377\225\255\251\377\326\337\336\377\300" \ + "\333\343\342\377\4\331\341\340\377\263\300\276\377~\222\216\377Uni\377" \ + "\204Slg\377\1\254\271\267\377\261\333\343\342\377\4\332\342\341\377\233" \ + "\262\256\377\223\254\247\377\361\364\363\377\207\377\377\377\377\1\304" \ + "\322\317\377\202\223\254\247\377\1\312\326\324\377\347\333\343\342\377" \ + "\5\331\341\340\377\232\261\254\377\223\254\247\377\302\320\315\377\244" \ + "\271\265\377\202\223\254\247\377\7\226\256\251\377\251\275\271\377\331" \ + "\342\340\377\377\377\377\377\303\321\316\377\223\254\247\377\272\312" \ + "\307\377\276\333\343\342\377\3\310\322\321\377\224\244\241\377axt\377" \ + "\207Slg\377\1\254\271\267\377\261\333\343\342\377\3\304\322\317\377\223" \ + "\254\247\377\263\304\301\377\207\377\377\377\377\5\373\374\374\377\233" \ + "\262\255\377\225\255\251\377\233\262\256\377\264\305\302\377\350\333" \ + "\343\342\377\1\260\303\277\377\202\224\255\250\377\13\277\315\312\377" \ + "\330\341\337\377\345\353\351\377\322\334\332\377\263\304\301\377\223" \ + "\254\247\377\267\307\304\377\353\357\356\377\223\254\247\377\234\263" \ + "\257\377\332\342\341\377\272\333\343\342\377\3\326\336\335\377\251\267" \ + "\265\377t\211\205\377\212Slg\377\1\254\271\267\377\261\333\343\342\377" \ + "\3\246\272\266\377\223\254\247\377\340\347\346\377\207\377\377\377\377" \ + "\5\326\337\335\377\223\254\247\377\271\311\306\377\262\304\300\377\246" \ + "\272\266\377\347\333\343\342\377\4\331\341\340\377\236\264\260\377\240" \ + "\266\261\377\351\356\355\377\205\377\377\377\377\6\330\341\337\377\226" \ + "\256\252\377\275\314\311\377\261\303\300\377\223\254\247\377\306\323" \ + "\320\377\270\333\343\342\377\3\276\312\310\377\211\234\230\377[sn\377" \ + "\211Slg\377\4Voj\377Umh\377Slg\377\254\271\267\377\260\333\343\342\377" \ + "\4\320\332\331\377\223\254\247\377\242\267\263\377\376\376\376\377\207" \ + "\377\377\377\377\5\250\274\270\377\223\254\247\377\346\354\353\377\272" \ + "\312\307\377\242\267\263\377\347\333\343\342\377\3\265\306\302\377\225" \ + "\255\250\377\352\357\356\377\207\377\377\377\377\5\322\334\332\377\223" \ + "\254\247\377\311\325\323\377\223\254\247\377\247\273\270\377\265\333" \ + "\343\342\377\3\320\332\330\377\237\256\253\377k\201|\377\212Slg\377\6" \ + "n\204\200\377\242\261\256\377\321\333\331\377_vr\377Slg\377\254\271\267" \ + "\377\260\333\343\342\377\3\262\303\300\377\223\254\247\377\317\332\330" \ + "\377\204\377\377\377\377\11\367\371\370\377\352\357\356\377\377\377\377" \ + "\377\347\355\354\377\223\254\247\377\247\273\267\377\377\377\377\377" \ + "\244\271\265\377\257\301\276\377\347\333\343\342\377\2\234\263\256\377" \ + "\303\321\316\377\211\377\377\377\377\5\250\274\270\377\267\307\304\377" \ + "\241\266\262\377\223\254\247\377\321\333\332\377\261\333\343\342\377" \ + "\4\331\342\341\377\264\301\277\377\200\223\220\377Vni\377\211Slg\377" \ + "\3^vq\377\220\241\236\377\303\316\314\377\203\333\343\342\377\3_vr\377" \ + "Slg\377\254\271\267\377\257\333\343\342\377\1\327\340\337\377\202\227" \ + "\257\252\377\1\370\371\371\377\203\377\377\377\377\12\352\357\356\377" \ + "\226\256\252\377\223\254\247\377\277\316\313\377\271\311\306\377\223" \ + "\254\247\377\325\337\335\377\351\356\355\377\223\254\247\377\277\316" \ + "\313\377\346\333\343\342\377\3\325\336\335\377\223\254\247\377\335\344" \ + "\343\377\211\377\377\377\377\5\302\320\315\377\241\267\262\377\315\331" \ + "\326\377\223\254\247\377\263\304\301\377\241\333\343\342\377\6\274\307" \ + "\306\377\217\241\235\377t\211\205\377|\217\214\377\242\261\256\377\310" \ + "\322\321\377\210\333\343\342\377\3\311\323\322\377\225\246\243\377by" \ + "t\377\213Slg\377\2\245\264\261\377\330\341\340\377\205\333\343\342\377" \ + "\3_vr\377Slg\377\254\271\267\377\257\333\343\342\377\3\314\327\325\377" \ + "\223\254\247\377\264\305\301\377\204\377\377\377\377\12\307\324\322\377" \ + "\226\256\252\377\261\303\300\377\230\260\253\377\224\255\250\377\232" \ + "\261\255\377\367\371\370\377\244\271\265\377\241\266\262\377\331\341" \ + "\340\377\346\333\343\342\377\3\312\326\324\377\223\254\247\377\353\360" \ + "\357\377\211\377\377\377\377\5\320\333\331\377\223\254\247\377\361\364" \ + "\364\377\223\254\247\377\243\270\264\377\237\333\343\342\377\3\327\340" \ + "\337\377\217\241\235\377Tlg\377\205Slg\377\1\236\255\253\377\204\333" \ + "\343\342\377\3\326\337\336\377\253\271\266\377v\212\206\377\212Slg\377" \ + "\2g}y\377\222\243\240\377\202Slg\377\1\305\320\316\377\206\333\343\342" \ + "\377\3\264\301\277\377\260\275\273\377\314\326\324\377\257\333\343\342" \ + "\377\3\316\331\330\377\223\254\247\377\263\304\301\377\204\377\377\377" \ + "\377\11\351\356\355\377\226\256\251\377\223\254\247\377\251\275\271\377" \ + "\223\254\247\377\272\312\307\377\244\271\265\377\225\255\251\377\316" \ + "\331\327\377\347\333\343\342\377\3\326\337\336\377\223\254\247\377\332" \ + "\343\341\377\211\377\377\377\377\5\277\316\313\377\243\270\264\377\363" \ + "\365\365\377\223\254\247\377\246\272\266\377\237\333\343\342\377\1\217" \ + "\241\235\377\203Slg\377\2e{w\377czu\377\203Slg\377\5\254\271\267\377" \ + "\333\343\342\377\300\313\311\377\213\235\232\377[sn\377\211Slg\377\5" \ + "Yql\377\206\231\225\377\273\307\305\377\333\343\342\377\316\327\326\377" \ + "\202Slg\377\1\305\320\316\377\270\333\343\342\377\3\321\334\332\377\223" \ + "\254\247\377\256\301\275\377\205\377\377\377\377\3\366\370\367\377\346" \ + "\354\352\377\237\265\260\377\202\223\254\247\377\2\240\266\262\377\315" \ + "\330\327\377\351\333\343\342\377\2\235\264\257\377\275\314\311\377\210" \ + "\377\377\377\377\6\375\375\375\377\243\271\264\377\271\311\306\377\356" \ + "\362\361\377\223\254\247\377\251\275\271\377\236\333\343\342\377\5\274" \ + "\307\306\377Tlg\377Slg\377e{w\377\300\313\311\377\202\333\343\342\377" \ + "\5\274\307\306\377axt\377Slg\377Vni\377k\201}\377\212Slg\377\3r\207\203" \ + "\377\246\265\262\377\324\335\334\377\203\333\343\342\377\1\316\327\326" \ + "\377\202Slg\377\1\305\320\316\377\270\333\343\342\377\3\324\336\334\377" \ + "\223\254\247\377\251\275\271\377\206\377\377\377\377\5\335\344\343\377" \ + "\223\254\247\377\233\262\255\377\300\316\314\377\331\341\340\377\352" \ + "\333\343\342\377\3\272\312\307\377\223\254\247\377\343\351\350\377\207" \ + "\377\377\377\377\6\310\325\322\377\224\254\250\377\350\355\354\377\351" \ + "\356\355\377\223\254\247\377\254\277\273\377\236\333\343\342\377\1\217" \ + "\241\235\377\202Slg\377\1\300\313\311\377\204\333\343\342\377\1\270\305" \ + "\303\377\212Slg\377\3_wr\377\222\243\240\377\306\320\317\377\206\333" \ + "\343\342\377\1\316\327\326\377\202Slg\377\1\305\320\316\377\270\333\343" \ + "\342\377\3\327\340\337\377\223\254\247\377\245\272\266\377\206\377\377" \ + "\377\377\3\257\301\276\377\223\254\247\377\306\323\320\377\354\333\343" \ + "\342\377\4\332\342\341\377\244\271\265\377\233\262\255\377\335\345\343" \ + "\377\204\377\377\377\377\10\375\376\375\377\312\326\324\377\224\254\250" \ + "\377\307\324\321\377\377\377\377\377\344\352\351\377\223\254\247\377" \ + "\257\301\276\377\236\333\343\342\377\3t\211\205\377Slg\377g~y\377\206" \ + "\333\343\342\377\1\\to\377\206Slg\377\4Uni\377}\221\215\377\261\277\274" \ + "\377\330\341\340\377\210\333\343\342\377\1\316\327\326\377\202Slg\377" \ + "\1\305\320\316\377\270\333\343\342\377\3\332\342\341\377\223\254\247" \ + "\377\240\266\262\377\205\377\377\377\377\4\356\361\361\377\223\254\247" \ + "\377\234\263\257\377\332\342\341\377\355\333\343\342\377\17\324\336\334" \ + "\377\250\273\270\377\223\254\247\377\261\303\277\377\312\326\324\377" \ + "\327\340\336\377\304\322\317\377\246\273\267\377\223\254\247\377\304" \ + "\322\317\377\375\375\375\377\377\377\377\377\340\347\345\377\223\254" \ + "\247\377\262\303\300\377\236\333\343\342\377\3v\212\206\377Slg\377f|" \ + "x\377\206\333\343\342\377\1[sn\377\204Slg\377\3i\177{\377\235\255\252" \ + "\377\317\330\327\377\213\333\343\342\377\1\316\327\326\377\202Slg\377" \ + "\1\305\320\316\377\271\333\343\342\377\2\225\255\251\377\234\263\256" \ + "\377\205\377\377\377\377\3\300\317\314\377\223\254\247\377\272\312\307" \ + "\377\360\333\343\342\377\7\277\316\313\377\245\272\266\377\227\257\252" \ + "\377\223\254\247\377\225\255\250\377\257\301\276\377\346\353\352\377" \ + "\203\377\377\377\377\3\333\343\342\377\223\254\247\377\265\306\302\377" \ + "\236\333\343\342\377\1\220\242\236\377\202Slg\377\1\277\312\310\377\204" \ + "\333\343\342\377\1\266\302\300\377\205Slg\377\3z\216\212\377\257\274" \ + "\272\377\330\340\337\377\213\333\343\342\377\1\316\327\326\377\202Sl" \ + "g\377\1\305\320\316\377\271\333\343\342\377\2\230\260\253\377\230\257" \ + "\253\377\204\377\377\377\377\4\371\373\372\377\230\260\253\377\225\255" \ + "\251\377\326\337\336\377\362\333\343\342\377\4\332\342\341\377\266\307" \ + "\304\377\223\254\247\377\302\320\315\377\204\377\377\377\377\3\326\337" \ + "\335\377\223\254\247\377\267\310\305\377\236\333\343\342\377\14\276\311" \ + "\307\377Tmh\377Slg\377d{v\377\274\307\306\377\333\343\342\377\321\332" \ + "\331\377\235\255\252\377^vq\377Slg\377Vni\377k\201}\377\204Slg\377\3" \ + "^uq\377\217\241\235\377\304\317\315\377\211\333\343\342\377\1\316\327" \ + "\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\2\233\262\255" \ + "\377\223\254\247\377\204\377\377\377\377\3\322\334\332\377\223\254\247" \ + "\377\256\301\275\377\364\333\343\342\377\4\325\336\335\377\225\255\250" \ + "\377\231\261\254\377\372\373\373\377\203\377\377\377\377\3\321\334\332" \ + "\377\223\254\247\377\272\312\307\377\237\333\343\342\377\1\223\244\240" \ + "\377\203Slg\377\2_vr\377Wpk\377\203Slg\377\5\254\271\267\377\333\343" \ + "\342\377\300\314\312\377\214\236\233\377\\so\377\204Slg\377\3p\205\201" \ + "\377\245\263\261\377\324\334\333\377\206\333\343\342\377\1\316\327\326" \ + "\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\3\236\264\260\377" \ + "\223\254\247\377\373\374\374\377\203\377\377\377\377\3\245\271\265\377" \ + "\223\254\247\377\315\330\326\377\365\333\343\342\377\3\255\300\274\377" \ + "\223\254\247\377\324\336\334\377\203\377\377\377\377\3\315\330\326\377" \ + "\223\254\247\377\275\314\312\377\237\333\343\342\377\3\330\340\337\377" \ + "\225\246\243\377Umh\377\205Slg\377\1\236\255\253\377\204\333\343\342" \ + "\377\4\327\337\336\377\254\271\267\377w\214\210\377Tlg\377\203Slg\377" \ + "\3Xpk\377\205\230\224\377\272\306\304\377\204\333\343\342\377\1\316\327" \ + "\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377\3\241\266\262" \ + "\377\223\254\247\377\366\370\370\377\202\377\377\377\377\3\343\352\350" \ + "\377\223\254\247\377\243\270\264\377\366\333\343\342\377\3\314\327\325" \ + "\377\223\254\247\377\246\273\267\377\203\377\377\377\377\3\307\324\322" \ + "\377\223\254\247\377\300\316\314\377\241\333\343\342\377\6\302\315\313" \ + "\377\230\250\245\377}\220\215\377\203\226\222\377\246\265\262\377\311" \ + "\324\322\377\210\333\343\342\377\3\313\325\323\377\227\250\245\377d{" \ + "v\377\204Slg\377\5f}x\377\233\253\250\377\315\327\325\377\333\343\342" \ + "\377\316\327\326\377\202Slg\377\1\305\320\316\377\271\333\343\342\377" \ + "\3\244\271\265\377\223\254\247\377\362\365\364\377\202\377\377\377\377" \ + "\3\266\307\303\377\223\254\247\377\301\317\315\377\367\333\343\342\377" \ + "\3\241\267\263\377\223\254\247\377\345\353\352\377\202\377\377\377\377" \ + "\3\303\321\316\377\223\254\247\377\303\321\317\377\261\333\343\342\377" \ + "\4\332\342\341\377\267\304\302\377\203\226\222\377Wpk\377\203Slg\377" \ + "\3Tmh\377|\217\214\377\245\264\261\377\202Slg\377\1\305\320\316\377\206" \ + "\333\343\342\377\3\317\331\327\377\316\327\326\377\326\337\336\377\260" \ + "\333\343\342\377\10\247\273\267\377\223\254\247\377\301\317\314\377\333" \ + "\343\341\377\344\352\351\377\224\255\250\377\231\260\254\377\331\341" \ + "\340\377\367\333\343\342\377\10\300\316\314\377\223\254\247\377\265\306" \ + "\303\377\345\353\351\377\322\335\333\377\250\274\270\377\223\254\247" \ + "\377\306\323\321\377\264\333\343\342\377\3\323\334\332\377\243\262\257" \ + "\377o\204\200\377\206Slg\377\1\267\304\302\377\206\333\343\342\377\3" \ + "_vr\377Slg\377\254\271\267\377\260\333\343\342\377\1\252\275\271\377" \ + "\205\223\254\247\377\1\266\306\303\377\370\333\343\342\377\2\330\341" \ + "\340\377\230\260\253\377\205\223\254\247\377\1\311\325\323\377\267\333" \ + "\343\342\377\3\303\316\314\377\217\240\235\377]up\377\204Slg\377\3r\207" \ + "\203\377\246\265\262\377\324\335\334\377\203\333\343\342\377\3_vr\377" \ + "Slg\377\254\271\267\377\260\333\343\342\377\7\327\337\336\377\220\243" \ + "\237\377k\204\177\377u\216\211\377\205\235\230\377\235\263\257\377\323" \ + "\334\333\377\371\333\343\342\377\7\267\307\304\377\233\261\255\377~\227" \ + "\222\377q\212\205\377m\206\201\377\273\310\306\377\332\342\341\377\271" \ + "\333\343\342\377\4\330\340\337\377\256\274\271\377z\216\212\377Tmh\377" \ + "\203Slg\377\7Yql\377\206\231\225\377\273\307\305\377\333\343\342\377" \ + "_vr\377Slg\377\254\271\267\377\261\333\343\342\377\1x\214\210\377\202" \ + "Slg\377\1~\221\216\377\374\333\343\342\377\5\325\335\334\377axt\377S" \ + "lg\377Tmh\377\251\270\265\377\275\333\343\342\377\3\315\326\325\377\232" \ + "\252\247\377f}x\377\204Slg\377\4g}y\377Woj\377Slg\377\254\271\267\377" \ + "\261\333\343\342\377\1}\220\215\377\202Slg\377\1\240\257\254\377\375" \ + "\333\343\342\377\1f}x\377\202Slg\377\1\222\243\240\377\300\333\343\342" \ + "\377\3\272\306\304\377\206\230\225\377Xql\377\204Slg\377\1\254\271\267" \ + "\377\261\333\343\342\377\4\216\237\234\377Slg\377_wr\377\326\336\335" \ + "\377\375\333\343\342\377\4r\207\203\377Slg\377axt\377\317\330\327\377" \ + "\302\333\343\342\377\3\324\334\333\377\246\264\262\377q\207\202\377\202" \ + "Slg\377\1\254\271\267\377\261\333\343\342\377\3\237\257\254\377Slg\377" \ + "\240\257\254\377\376\333\343\342\377\3\216\240\235\377Wpk\377\246\264" \ + "\262\377\306\333\343\342\377\3_vr\377Slg\377\254\271\267\377\261\333" \ + "\343\342\377\3\260\276\273\377axt\377\326\337\336\377\376\333\343\342" \ + "\377\2\265\302\277\377v\213\207\377\307\333\343\342\377\3_vr\377Slg\377" \ + "\254\271\267\377\261\333\343\342\377\2\302\315\313\377\242\261\256\377" \ + "\377\333\343\342\377\311\333\343\342\377\3z\216\212\377p\205\201\377" \ + "\266\303\301\377\261\333\343\342\377\2\326\336\335\377\327\340\337\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343" \ + "\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377" \ + "\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333" \ + "\343\342\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342" \ + "\377\377\333\343\342\377\377\333\343\342\377\377\333\343\342\377\377" \ + "\333\343\342\377\344\333\343\342\377") + + diff --git a/packages/psplash/psplash_svn.bb b/packages/psplash/psplash_svn.bb index 6b51d33597..668770760f 100644 --- a/packages/psplash/psplash_svn.bb +++ b/packages/psplash/psplash_svn.bb @@ -3,7 +3,7 @@ SECTION = "base" LICENSE = "GPL" PV = "0.0+svn${SRCDATE}" -PR = "r3" +PR = "r4" # You can create your own pslash-hand-img.h by doing # ./make-image-header.sh <file>.png HAND diff --git a/packages/python/python-2.4.4-manifest.inc b/packages/python/python-2.4.4-manifest.inc index 33f5bac2f2..d8a62c63da 100644 --- a/packages/python/python-2.4.4-manifest.inc +++ b/packages/python/python-2.4.4-manifest.inc @@ -1,5 +1,5 @@ ######################################################################################################################## -### AUTO-GENERATED by '/local/pkg/oe/org.openembedded.dev/contrib/python/generate-manifest.py' [(C) 2002-2007 Michael 'Mickey' Lauer <mickey@Vanille.de>] on Mon Dec 25 00:05:05 2006 +### AUTO-GENERATED by './generate-manifest.py' [(C) 2002-2007 Michael 'Mickey' Lauer <mickey@Vanille.de>] on Thu Jun 21 09:51:32 2007 ### ### Visit THE Python for Embedded Systems Site => http://www.Vanille.de/projects/python.spy ### @@ -8,273 +8,279 @@ ######################################################################################################################## -PROVIDES+="python-profile python-threading python-distutils python-textutils python-codecs python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-resource python-devel python-math python-hotshot python-unixadmin python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-syslog python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-tests python-unittest python-stringold python-lib-old-and-deprecated python-compile python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio python-misc" +PROVIDES+="python-profile python-threading python-distutils python-textutils python-codecs python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-core-dbg python-resource python-devel python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio " -PACKAGES="python-profile python-threading python-distutils python-textutils python-codecs python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-resource python-devel python-math python-hotshot python-unixadmin python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-syslog python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-tests python-unittest python-stringold python-lib-old-and-deprecated python-compile python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio python-misc-dbg python-misc" - -DESCRIPTION_python-misc-dbg="Misc Python debug files" -FILES_python-misc-dbg="${libdir}/python2.4/lib-dynload/.debug" -RDEPENDS_python-misc-dbg="python-core" - -DESCRIPTION_python-misc="Misc Python files" -PR_python-misc="ml1" -FILES_python-misc="${libdir}/python2.4/" -RDEPENDS_python-misc="python-core" +PACKAGES="python-profile python-threading python-distutils python-textutils python-codecs python-pickle python-datetime python-core python-io python-compiler python-compression python-re python-xmlrpc python-terminal python-email python-image python-core-dbg python-resource python-devel python-math python-hotshot python-unixadmin python-syslog python-tkinter python-gdbm python-fcntl python-netclient python-pprint python-netserver python-curses python-smtpd python-html python-readline python-subprocess python-pydoc python-logging python-mailbox python-xml python-mime python-tests python-unittest python-stringold python-robotparser python-lib-old-and-deprecated python-compile python-shell python-bsddb python-mmap python-zlib python-db python-crypt python-idle python-lang python-audio " DESCRIPTION_python-profile="Python Basic Profiling Support" -PR_python-profile="ml0" +PR_python-profile="ml2" RDEPENDS_python-profile="python-core" FILES_python-profile="${libdir}/python2.4/profile.* ${libdir}/python2.4/pstats.* " DESCRIPTION_python-threading="Python Threading & Synchronization Support" -PR_python-threading="ml0" +PR_python-threading="ml2" RDEPENDS_python-threading="python-core python-lang" FILES_python-threading="${libdir}/python2.4/_threading_local.* ${libdir}/python2.4/dummy_thread.* ${libdir}/python2.4/dummy_threading.* ${libdir}/python2.4/mutex.* ${libdir}/python2.4/threading.* ${libdir}/python2.4/Queue.* " DESCRIPTION_python-distutils="Python Distribution Utilities" -PR_python-distutils="ml0" +PR_python-distutils="ml2" RDEPENDS_python-distutils="python-core" FILES_python-distutils="${libdir}/python2.4/config ${libdir}/python2.4/distutils " DESCRIPTION_python-textutils="Python Option Parsing, Text Wrapping and Comma-Separated-Value Support" -PR_python-textutils="ml0" +PR_python-textutils="ml2" RDEPENDS_python-textutils="python-core python-io python-re python-stringold" FILES_python-textutils="${libdir}/python2.4/lib-dynload/_csv.so ${libdir}/python2.4/csv.* ${libdir}/python2.4/optparse.* ${libdir}/python2.4/textwrap.* " DESCRIPTION_python-codecs="Python Codecs, Encodings & i18n Support" -PR_python-codecs="ml0" +PR_python-codecs="ml2" RDEPENDS_python-codecs="python-core" FILES_python-codecs="${libdir}/python2.4/codecs.* ${libdir}/python2.4/encodings ${libdir}/python2.4/gettext.* ${libdir}/python2.4/locale.* ${libdir}/python2.4/lib-dynload/_locale.so ${libdir}/python2.4/lib-dynload/unicodedata.so ${libdir}/python2.4/stringprep.* ${libdir}/python2.4/xdrlib.* " DESCRIPTION_python-pickle="Python Persistence Support" -PR_python-pickle="ml0" +PR_python-pickle="ml2" RDEPENDS_python-pickle="python-core python-codecs python-io python-re" FILES_python-pickle="${libdir}/python2.4/pickle.* ${libdir}/python2.4/shelve.* ${libdir}/python2.4/lib-dynload/cPickle.so " DESCRIPTION_python-datetime="Python Calendar and Time support" -PR_python-datetime="ml0" +PR_python-datetime="ml2" RDEPENDS_python-datetime="python-core python-codecs" FILES_python-datetime="${libdir}/python2.4/_strptime.* ${libdir}/python2.4/calendar.* ${libdir}/python2.4/lib-dynload/datetime.so " DESCRIPTION_python-core="Python Interpreter and core modules (needed!)" -PR_python-core="ml0" +PR_python-core="ml4" RDEPENDS_python-core="" -FILES_python-core="/usr/lib/python2.4/__future__.* /usr/lib/python2.4/copy.* /usr/lib/python2.4/copy_reg.* /usr/lib/python2.4/ConfigParser.py /usr/lib/python2.4/getopt.* /usr/lib/python2.4/linecache.* /usr/lib/python2.4/new.* /usr/lib/python2.4/os.* /usr/lib/python2.4/posixpath.* /usr/lib/python2.4/warnings.* /usr/lib/python2.4/site.* /usr/lib/python2.4/stat.* /usr/lib/python2.4/UserDict.* /usr/lib/python2.4/UserList.* /usr/lib/python2.4/UserString.* /usr/lib/python2.4/lib-dynload/binascii.so /usr/lib/python2.4/lib-dynload/struct.so /usr/lib/python2.4/lib-dynload/time.so /usr/lib/python2.4/lib-dynload/xreadlines.so /usr/lib/python2.4/types.* /usr/bin/python " +FILES_python-core="/usr/lib/python2.4/__future__.* /usr/lib/python2.4/copy.* /usr/lib/python2.4/copy_reg.* /usr/lib/python2.4/ConfigParser.* /usr/lib/python2.4/getopt.* /usr/lib/python2.4/linecache.* /usr/lib/python2.4/new.* /usr/lib/python2.4/os.* /usr/lib/python2.4/posixpath.* /usr/lib/python2.4/warnings.* /usr/lib/python2.4/site.* /usr/lib/python2.4/stat.* /usr/lib/python2.4/UserDict.* /usr/lib/python2.4/UserList.* /usr/lib/python2.4/UserString.* /usr/lib/python2.4/lib-dynload/binascii.so /usr/lib/python2.4/lib-dynload/struct.so /usr/lib/python2.4/lib-dynload/time.so /usr/lib/python2.4/lib-dynload/xreadlines.so /usr/lib/python2.4/types.* /usr/bin/python* " DESCRIPTION_python-io="Python Low-Level I/O" -PR_python-io="ml0" +PR_python-io="ml2" RDEPENDS_python-io="python-core python-math" FILES_python-io="${libdir}/python2.4/lib-dynload/_socket.so ${libdir}/python2.4/lib-dynload/_ssl.so ${libdir}/python2.4/lib-dynload/select.so ${libdir}/python2.4/lib-dynload/termios.so ${libdir}/python2.4/lib-dynload/cStringIO.so ${libdir}/python2.4/pipes.* ${libdir}/python2.4/socket.* ${libdir}/python2.4/tempfile.* ${libdir}/python2.4/StringIO.* " DESCRIPTION_python-compiler="Python Compiler Support" -PR_python-compiler="ml0" +PR_python-compiler="ml2" RDEPENDS_python-compiler="python-core" FILES_python-compiler="${libdir}/python2.4/compiler " DESCRIPTION_python-compression="Python High Level Compression Support" -PR_python-compression="ml0" +PR_python-compression="ml2" RDEPENDS_python-compression="python-core python-zlib" FILES_python-compression="${libdir}/python2.4/gzip.* ${libdir}/python2.4/zipfile.* " DESCRIPTION_python-re="Python Regular Expression APIs" -PR_python-re="ml0" +PR_python-re="ml2" RDEPENDS_python-re="python-core" FILES_python-re="${libdir}/python2.4/re.* ${libdir}/python2.4/sre.* ${libdir}/python2.4/sre_compile.* ${libdir}/python2.4/sre_constants* ${libdir}/python2.4/sre_parse.* " DESCRIPTION_python-xmlrpc="Python XMLRPC Support" -PR_python-xmlrpc="ml0" +PR_python-xmlrpc="ml2" RDEPENDS_python-xmlrpc="python-core python-xml python-netserver python-lang" FILES_python-xmlrpc="${libdir}/python2.4/xmlrpclib.* ${libdir}/python2.4/SimpleXMLRPCServer.* " DESCRIPTION_python-terminal="Python Terminal Controlling Support" -PR_python-terminal="ml0" +PR_python-terminal="ml2" RDEPENDS_python-terminal="python-core python-io" FILES_python-terminal="${libdir}/python2.4/pty.* ${libdir}/python2.4/tty.* " DESCRIPTION_python-email="Python Email Support" -PR_python-email="ml0" -RDEPENDS_python-email="python-core python-io python-re" +PR_python-email="ml2" +RDEPENDS_python-email="python-core python-io python-re python-mime python-audio python-image" FILES_python-email="${libdir}/python2.4/email " DESCRIPTION_python-image="Python Graphical Image Handling" -PR_python-image="ml0" +PR_python-image="ml2" RDEPENDS_python-image="python-core" FILES_python-image="${libdir}/python2.4/colorsys.* ${libdir}/python2.4/imghdr.* ${libdir}/python2.4/lib-dynload/imageop.so ${libdir}/python2.4/lib-dynload/rgbimg.so " +DESCRIPTION_python-core-dbg="Python core module debug information" +PR_python-core-dbg="ml2" +RDEPENDS_python-core-dbg="python-core" +FILES_python-core-dbg="/usr/lib/python2.4/lib-dynload/.debug /usr/bin/.debug /usr/lib/.debug " + DESCRIPTION_python-resource="Python Resource Control Interface" -PR_python-resource="ml0" +PR_python-resource="ml2" RDEPENDS_python-resource="python-core" FILES_python-resource="${libdir}/python2.4/lib-dynload/resource.so " DESCRIPTION_python-devel="Python Development Package" -PR_python-devel="ml0" +PR_python-devel="ml2" RDEPENDS_python-devel="python-core" FILES_python-devel="/usr/include /usr/lib/python2.4/config " DESCRIPTION_python-math="Python Math Support" -PR_python-math="ml0" +PR_python-math="ml2" RDEPENDS_python-math="python-core" FILES_python-math="${libdir}/python2.4/lib-dynload/cmath.so ${libdir}/python2.4/lib-dynload/math.so ${libdir}/python2.4/lib-dynload/_random.so ${libdir}/python2.4/random.* ${libdir}/python2.4/sets.* " DESCRIPTION_python-hotshot="Python Hotshot Profiler" -PR_python-hotshot="ml0" +PR_python-hotshot="ml2" RDEPENDS_python-hotshot="python-core" FILES_python-hotshot="${libdir}/python2.4/hotshot ${libdir}/python2.4/lib-dynload/_hotshot.so " DESCRIPTION_python-unixadmin="Python Unix Administration Support" -PR_python-unixadmin="ml0" +PR_python-unixadmin="ml2" RDEPENDS_python-unixadmin="python-core" FILES_python-unixadmin="${libdir}/python2.4/lib-dynload/nis.so ${libdir}/python2.4/lib-dynload/grp.so ${libdir}/python2.4/lib-dynload/pwd.so ${libdir}/python2.4/getpass.* " +DESCRIPTION_python-syslog="Python's syslog Interface" +PR_python-syslog="ml2" +RDEPENDS_python-syslog="python-core" +FILES_python-syslog="${libdir}/python2.4/lib-dynload/syslog.so " + DESCRIPTION_python-tkinter="Python Tcl/Tk Bindings" -PR_python-tkinter="ml0" +PR_python-tkinter="ml2" RDEPENDS_python-tkinter="python-core" FILES_python-tkinter="${libdir}/python2.4/lib-dynload/_tkinter.so ${libdir}/python2.4/lib-tk " DESCRIPTION_python-gdbm="Python GNU Database Support" -PR_python-gdbm="ml0" +PR_python-gdbm="ml2" RDEPENDS_python-gdbm="python-core" FILES_python-gdbm="${libdir}/python2.4/lib-dynload/gdbm.so " DESCRIPTION_python-fcntl="Python's fcntl Interface" -PR_python-fcntl="ml0" +PR_python-fcntl="ml2" RDEPENDS_python-fcntl="python-core" FILES_python-fcntl="${libdir}/python2.4/lib-dynload/fcntl.so " DESCRIPTION_python-netclient="Python Internet Protocol Clients" -PR_python-netclient="ml0" +PR_python-netclient="ml2" RDEPENDS_python-netclient="python-core python-datetime python-io python-lang python-logging python-mime" FILES_python-netclient="${libdir}/python2.4/*Cookie*.* ${libdir}/python2.4/base64.* ${libdir}/python2.4/cookielib.* ${libdir}/python2.4/ftplib.* ${libdir}/python2.4/gopherlib.* ${libdir}/python2.4/hmac.* ${libdir}/python2.4/httplib.* ${libdir}/python2.4/mimetypes.* ${libdir}/python2.4/nntplib.* ${libdir}/python2.4/poplib.* ${libdir}/python2.4/smtplib.* ${libdir}/python2.4/telnetlib.* ${libdir}/python2.4/urllib.* ${libdir}/python2.4/urllib2.* ${libdir}/python2.4/urlparse.* " DESCRIPTION_python-pprint="Python Pretty-Print Support" -PR_python-pprint="ml0" +PR_python-pprint="ml2" RDEPENDS_python-pprint="python-core" FILES_python-pprint="${libdir}/python2.4/pprint.* " DESCRIPTION_python-netserver="Python Internet Protocol Servers" -PR_python-netserver="ml0" +PR_python-netserver="ml2" RDEPENDS_python-netserver="python-core python-netclient" FILES_python-netserver="${libdir}/python2.4/cgi.* ${libdir}/python2.4/BaseHTTPServer.* ${libdir}/python2.4/SimpleHTTPServer.* ${libdir}/python2.4/SocketServer.* " DESCRIPTION_python-curses="Python Curses Support" -PR_python-curses="ml0" +PR_python-curses="ml2" RDEPENDS_python-curses="python-core" FILES_python-curses="${libdir}/python2.4/curses ${libdir}/python2.4/lib-dynload/_curses.so ${libdir}/python2.4/lib-dynload/_curses_panel.so " -DESCRIPTION_python-syslog="Python's syslog Interface" -PR_python-syslog="ml0" -RDEPENDS_python-syslog="python-core" -FILES_python-syslog="${libdir}/python2.4/lib-dynload/syslog.so " +DESCRIPTION_python-smtpd="Python Simple Mail Transport Daemon" +PR_python-smtpd="ml2" +RDEPENDS_python-smtpd="python-core python-netserver python-email python-mime" +FILES_python-smtpd="/usr/bin/smtpd.* " DESCRIPTION_python-html="Python HTML Processing" -PR_python-html="ml0" +PR_python-html="ml2" RDEPENDS_python-html="python-core" FILES_python-html="${libdir}/python2.4/formatter.* ${libdir}/python2.4/htmlentitydefs.* ${libdir}/python2.4/htmllib.* ${libdir}/python2.4/markupbase.* ${libdir}/python2.4/sgmllib.* " DESCRIPTION_python-readline="Python Readline Support" -PR_python-readline="ml0" +PR_python-readline="ml2" RDEPENDS_python-readline="python-core" FILES_python-readline="${libdir}/python2.4/lib-dynload/readline.so ${libdir}/python2.4/rlcompleter.* " DESCRIPTION_python-subprocess="Python Subprocess Support" -PR_python-subprocess="ml0" -RDEPENDS_python-subprocess="python-core python-io python-re" +PR_python-subprocess="ml2" +RDEPENDS_python-subprocess="python-core python-io python-re python-fcntl python-pickle" FILES_python-subprocess="${libdir}/python2.4/subprocess.* " DESCRIPTION_python-pydoc="Python Interactive Help Support" -PR_python-pydoc="ml0" +PR_python-pydoc="ml2" RDEPENDS_python-pydoc="python-core python-lang python-stringold python-re" FILES_python-pydoc="/usr/bin/pydoc /usr/lib/python2.4/pydoc.* " DESCRIPTION_python-logging="Python Logging Support" -PR_python-logging="ml0" +PR_python-logging="ml2" RDEPENDS_python-logging="python-core" FILES_python-logging="${libdir}/python2.4/logging " DESCRIPTION_python-mailbox="Python Mailbox Format Support" -PR_python-mailbox="ml0" +PR_python-mailbox="ml2" RDEPENDS_python-mailbox="python-core python-mime" FILES_python-mailbox="${libdir}/python2.4/mailbox.* " DESCRIPTION_python-xml="Python basic XML support." -PR_python-xml="ml0" +PR_python-xml="ml2" RDEPENDS_python-xml="python-core python-re" FILES_python-xml="${libdir}/python2.4/lib-dynload/pyexpat.so ${libdir}/python2.4/xml ${libdir}/python2.4/xmllib.* " DESCRIPTION_python-mime="Python MIME Handling APIs" -PR_python-mime="ml0" +PR_python-mime="ml2" RDEPENDS_python-mime="python-core python-io" -FILES_python-mime="${libdir}/python2.4/mimetools.* ${libdir}/python2.4/quopri.* ${libdir}/python2.4/rfc822.* " +FILES_python-mime="${libdir}/python2.4/mimetools.* ${libdir}/python2.4/uu.* ${libdir}/python2.4/quopri.* ${libdir}/python2.4/rfc822.* " DESCRIPTION_python-tests="Python Tests" -PR_python-tests="ml0" +PR_python-tests="ml2" RDEPENDS_python-tests="python-core" FILES_python-tests="${libdir}/python2.4/test " DESCRIPTION_python-unittest="Python Unit Testing Framework" -PR_python-unittest="ml0" +PR_python-unittest="ml2" RDEPENDS_python-unittest="python-core python-stringold python-lang" FILES_python-unittest="${libdir}/python2.4/unittest.* " DESCRIPTION_python-stringold="Python String APIs [deprecated]" -PR_python-stringold="ml0" +PR_python-stringold="ml2" RDEPENDS_python-stringold="python-core python-re" FILES_python-stringold="${libdir}/python2.4/lib-dynload/strop.so ${libdir}/python2.4/string.* " +DESCRIPTION_python-robotparser="Python robots.txt parser" +PR_python-robotparser="ml2" +RDEPENDS_python-robotparser="python-core python-netclient" +FILES_python-robotparser="${libdir}/python2.4/robotparser.* " + DESCRIPTION_python-lib-old-and-deprecated="Python Deprecated Libraries" -PR_python-lib-old-and-deprecated="ml0" +PR_python-lib-old-and-deprecated="ml2" RDEPENDS_python-lib-old-and-deprecated="python-core" FILES_python-lib-old-and-deprecated="${libdir}/python2.4/lib-old " DESCRIPTION_python-compile="Python Bytecode Compilation Support" -PR_python-compile="ml0" +PR_python-compile="ml2" RDEPENDS_python-compile="python-core" FILES_python-compile="${libdir}/python2.4/py_compile.* ${libdir}/python2.4/compileall.* " DESCRIPTION_python-shell="Python Shell-Like Functionality" -PR_python-shell="ml0" +PR_python-shell="ml2" RDEPENDS_python-shell="python-core python-re" FILES_python-shell="${libdir}/python2.4/commands.* ${libdir}/python2.4/dircache.* ${libdir}/python2.4/fnmatch.* ${libdir}/python2.4/glob.* ${libdir}/python2.4/popen2.* ${libdir}/python2.4/shutil.* " DESCRIPTION_python-bsddb="Python Berkeley Database Bindings" -PR_python-bsddb="ml0" +PR_python-bsddb="ml2" RDEPENDS_python-bsddb="python-core" FILES_python-bsddb="${libdir}/python2.4/bsddb " DESCRIPTION_python-mmap="Python Memory-Mapped-File Support" -PR_python-mmap="ml0" +PR_python-mmap="ml2" RDEPENDS_python-mmap="python-core python-io" FILES_python-mmap="${libdir}/python2.4/lib-dynload/mmap.so " DESCRIPTION_python-zlib="Python zlib Support." -PR_python-zlib="ml0" +PR_python-zlib="ml2" RDEPENDS_python-zlib="python-core" FILES_python-zlib="${libdir}/python2.4/lib-dynload/zlib.so " DESCRIPTION_python-db="Python File-Based Database Support" -PR_python-db="ml0" +PR_python-db="ml2" RDEPENDS_python-db="python-core" FILES_python-db="${libdir}/python2.4/anydbm.* ${libdir}/python2.4/dumbdbm.* ${libdir}/python2.4/whichdb.* " DESCRIPTION_python-crypt="Python Basic Cryptographic and Hashing Support" -PR_python-crypt="ml0" +PR_python-crypt="ml2" RDEPENDS_python-crypt="python-core" FILES_python-crypt="${libdir}/python2.4/lib-dynload/crypt.so ${libdir}/python2.4/lib-dynload/md5.so ${libdir}/python2.4/lib-dynload/rotor.so ${libdir}/python2.4/lib-dynload/sha.so " DESCRIPTION_python-idle="Python Integrated Development Environment" -PR_python-idle="ml0" +PR_python-idle="ml2" RDEPENDS_python-idle="python-core python-tkinter" FILES_python-idle="/usr/bin/idle /usr/lib/python2.4/idlelib " DESCRIPTION_python-lang="Python Low-Level Language Support" -PR_python-lang="ml0" +PR_python-lang="ml2" RDEPENDS_python-lang="python-core" FILES_python-lang="${libdir}/python2.4/lib-dynload/array.so ${libdir}/python2.4/lib-dynload/parser.so ${libdir}/python2.4/lib-dynload/operator.so ${libdir}/python2.4/lib-dynload/_weakref.so ${libdir}/python2.4/lib-dynload/itertools.so ${libdir}/python2.4/lib-dynload/collections.so ${libdir}/python2.4/lib-dynload/_bisect.so ${libdir}/python2.4/lib-dynload/_heapq.so ${libdir}/python2.4/atexit.* ${libdir}/python2.4/bisect.* ${libdir}/python2.4/code.* ${libdir}/python2.4/codeop.* ${libdir}/python2.4/dis.* ${libdir}/python2.4/heapq.* ${libdir}/python2.4/inspect.* ${libdir}/python2.4/keyword.* ${libdir}/python2.4/opcode.* ${libdir}/python2.4/repr.* ${libdir}/python2.4/token.* ${libdir}/python2.4/tokenize.* ${libdir}/python2.4/traceback.* ${libdir}/python2.4/linecache.* ${libdir}/python2.4/weakref.* " DESCRIPTION_python-audio="Python Audio Handling" -PR_python-audio="ml0" +PR_python-audio="ml2" RDEPENDS_python-audio="python-core" -FILES_python-audio="${libdir}/python2.4/wave.* ${libdir}/python2.4/chunk.* ${libdir}/python2.4/lib-dynload/ossaudiodev.so ${libdir}/python2.4/lib-dynload/audioop.so " +FILES_python-audio="${libdir}/python2.4/wave.* ${libdir}/python2.4/chunk.* ${libdir}/python2.4/sndhdr.* ${libdir}/python2.4/lib-dynload/ossaudiodev.so ${libdir}/python2.4/lib-dynload/audioop.so " diff --git a/packages/python/python-fam_1.1.1.bb b/packages/python/python-fam_1.1.1.bb new file mode 100644 index 0000000000..cf74265aa3 --- /dev/null +++ b/packages/python/python-fam_1.1.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "Python access to the File Alteration Monitor" +HOMEPAGE = "http://python-fam.sourceforge.net/" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "LGPL" +DEPENDS = "fam" +RDEPENDS = "fam python-core python-io" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.gz" + +inherit distutils + diff --git a/packages/python/python-pygtk2_2.6.3.bb b/packages/python/python-pygtk2_2.6.3.bb index ffd837f0da..417de0a109 100644 --- a/packages/python/python-pygtk2_2.6.3.bb +++ b/packages/python/python-pygtk2_2.6.3.bb @@ -1,7 +1,6 @@ DESCRIPTION = "Python GTK+ Bindings" SECTION = "devel/python" -# needs gtk+-2.6.x -DEPENDS = "gtk+ libglade" +DEPENDS = "gtk+-2.6.10 libglade" RDEPENDS = "python-shell" SRCNAME = "pygtk" LICENSE = "LGPL" diff --git a/packages/python/python-pygtk2_2.8.6.bb b/packages/python/python-pygtk2_2.8.6.bb index b3d8c93584..361737684c 100644 --- a/packages/python/python-pygtk2_2.8.6.bb +++ b/packages/python/python-pygtk2_2.8.6.bb @@ -1,7 +1,8 @@ DESCRIPTION = "Python GTK+ Bindings" SECTION = "devel/python" PRIORITY = "optional" -DEPENDS = "gtk+ libglade" +# needs gtk+ 2.8.x +DEPENDS = "gtk+-2.8.16 libglade" RDEPENDS = "python-shell" SRCNAME = "pygtk" LICENSE = "LGPL" diff --git a/packages/python/python-setuptools_0.6c5.bb b/packages/python/python-setuptools_0.6c5.bb new file mode 100644 index 0000000000..0ee3a02229 --- /dev/null +++ b/packages/python/python-setuptools_0.6c5.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Download, build, install, upgrade, and uninstall Python packages" +HOMEPAGE = "http://cheeseshop.python.org/pypi/setuptools" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT-like" +RDEPENDS = "python-core python-zlib" +SRCNAME = "setuptools" +PR = "r0" + +SRC_URI = "http://cheeseshop.python.org/packages/source/s/setuptools/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_install_prepend() { + install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages +} + +do_stage() { + BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \ + ${STAGING_BINDIR_NATIVE}/python setup.py install +} + +# Deal with .pth file error +export PYTHONPATH="${D}/${libdir}/${PYTHON_DIR}/site-packages" + diff --git a/packages/python/python-simplejson_1.7.1.bb b/packages/python/python-simplejson_1.7.1.bb new file mode 100644 index 0000000000..e41d9085af --- /dev/null +++ b/packages/python/python-simplejson_1.7.1.bb @@ -0,0 +1,24 @@ +DESCRIPTION = "Simple, fast, extensible JSON encoder/decoder for Python" +HOMEPAGE = "http://cheeseshop.python.org/pypi/simplejson" +SECTION = "devel/python" +PRIORITY = "optional" +LICENSE = "MIT" +DEPENDS = "python-setuptools" +# python-netserver is needed for cgi stuff +# python-zlib is needed to unpack egg created by setuptools +RDEPENDS = "python-core python-re python-io python-netserver python-zlib" +SRCNAME = "simplejson" +PR = "r0" + +SRC_URI = "http://cheeseshop.python.org/packages/source/s/simplejson/${SRCNAME}-${PV}.tar.gz" +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit distutils + +do_install_prepend() { + install -d ${D}/${libdir}/${PYTHON_DIR}/site-packages +} + +# Deal with .pth file error +export PYTHONPATH="${D}/${libdir}/python2.4/site-packages" + diff --git a/packages/python/python_2.4.4.bb b/packages/python/python_2.4.4.bb index 303f956721..6ec186cb83 100644 --- a/packages/python/python_2.4.4.bb +++ b/packages/python/python_2.4.4.bb @@ -5,7 +5,7 @@ SECTION = "devel/python" PRIORITY = "optional" DEPENDS = "python-native readline zlib gdbm openssl tcl tk" DEPENDS_sharprom = "python-native readline zlib gdbm openssl" -PR = "ml1" +PR = "ml2" PYTHON_MAJMIN = "2.4" @@ -68,3 +68,12 @@ RPROVIDES_python-core = "python" RPROVIDES_python-curses = "python" PACKAGES =+ "libpython2" FILES_libpython2 = "${libdir}/libpython*" + +# catch all the rest (unsorted) +PACKAGES += "python-misc" +FILES_python-misc = "${libdir}/python2.4" + +# catch manpage +PACKAGES += "python-man" +FILES_python-man = "${datadir}/man" + diff --git a/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2 b/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2 Binary files differdeleted file mode 100644 index 8ddb3cc83d..0000000000 --- a/packages/s3c2410-utils/files/s3c2410_boot_usb-20060807.tar.bz2 +++ /dev/null diff --git a/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2 b/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2 Binary files differdeleted file mode 100644 index 3458364699..0000000000 --- a/packages/s3c2410-utils/files/sjf2410-linux-20060807.tar.bz2 +++ /dev/null diff --git a/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb b/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb deleted file mode 100644 index f53d175a80..0000000000 --- a/packages/s3c2410-utils/s3c2410-boot-usb-native_20060807.bb +++ /dev/null @@ -1,30 +0,0 @@ -DESCRIPTION = "Boots a S3C2410 device with a user supplied kernel zImage" -DEPENDS = "libusb-native" -SECTION = "devel" -AUTHOR = "Harald Welte" -LICENSE = "GPL" -PR = "r0" - -SRC_URI = "file://s3c2410_boot_usb-20060807.tar.bz2" -S = "${WORKDIR}/s3c2410_boot_usb" - -inherit native - -do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} -lusb -o s3c2410-boot-usb boot_usb.c -} - -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0755 s3c2410-boot-usb ${DEPLOY_DIR_IMAGE} -} - -do_stage() { - : -} - -do_install() { - : -} - -addtask deploy before do_build after do_compile diff --git a/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb b/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb deleted file mode 100644 index 0ec6642dc2..0000000000 --- a/packages/s3c2410-utils/sjf2410-linux-native_20060807.bb +++ /dev/null @@ -1,31 +0,0 @@ -DESCRIPTION = "Jtag utility to interface w/ a S3C2410 device" -SECTION = "devel" -AUTHOR = "Harald Welte" -LICENSE = "GPL" -PR = "r1" - -SRC_URI = "file://sjf2410-linux-20060807.tar.bz2" -S = "${WORKDIR}/sjf2410-linux" - -inherit native - -CFLAGS += "-DLINUX_PPDEV" - -do_compile() { - oe_runmake -} - -do_deploy() { - install -d ${DEPLOY_DIR_IMAGE} - install -m 0755 sjf2410 ${DEPLOY_DIR_IMAGE}/sjf2410 -} - -do_stage() { - : -} - -do_install() { - : -} - -addtask deploy before do_package after do_install diff --git a/packages/sidplay-base/.mtn2git_empty b/packages/sidplay-base/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/sidplay-base/.mtn2git_empty diff --git a/packages/sidplay-base/sidplay-base_1.0.9.bb b/packages/sidplay-base/sidplay-base_1.0.9.bb new file mode 100644 index 0000000000..f6d3af14c1 --- /dev/null +++ b/packages/sidplay-base/sidplay-base_1.0.9.bb @@ -0,0 +1,10 @@ +DESCRIPTION = "A spartanic SID music player based on libsidplay 1.x" +SECTION = "console/multimedia" +LICENSE = "GPL" +HOMEPAGE = "http://www.geocities.com/SiliconValley/Lakes/5147/sidplay/linux.html" +DEPENDS = "libsidplay" + +SRC_URI = "http://www.geocities.com/SiliconValley/Lakes/5147/sidplay/packages/sidplay-base-${PV}.tgz" +S = "${WORKDIR}/sidplay-base-${PV}" + +inherit autotools diff --git a/packages/slugos-init/files/initscripts/umountinitrd.sh b/packages/slugos-init/files/initscripts/umountinitrd.sh index 2798fe5985..93f05a00f6 100644 --- a/packages/slugos-init/files/initscripts/umountinitrd.sh +++ b/packages/slugos-init/files/initscripts/umountinitrd.sh @@ -20,6 +20,8 @@ do umount /mnt;; /initrd)# need the device for a remount ffsdev="$(mtblockdev $ffspart)" + [ -n "$ffsdev" ] || \ + ffsdev="$(mtblockdev rootfs)" echo "Remounting $ffsdev read-only on /initrd" >&2 if test -n "$ffsdev" -a -b "$ffsdev" then diff --git a/packages/slugos-init/files/reflash b/packages/slugos-init/files/reflash index 131f0b67de..22a18bb068 100644 --- a/packages/slugos-init/files/reflash +++ b/packages/slugos-init/files/reflash @@ -146,7 +146,7 @@ then then imgksize="$size" imgkoffset="$base" - elif test "$name" = "$ffspart" + elif test "$name" = "$ffspart" -o "$name" = "rootfs" then imgffssize="$size" imgffsoffset="$base" @@ -320,6 +320,8 @@ ffssize=0 if test -n "$ffsfile" then ffsdev="$(mtblockdev $ffspart)" + [ -n "$ffsdev" ] || \ + ffsdev="$(mtblockdev rootfs)" test -n "$ffsdev" -a -b "$ffsdev" || { echo "reflash: $ffspart($ffsdev): cannot find $ffspart mtd partition." >&2 echo " check /proc/mtd, either the partition does not exist or there is no" >&2 diff --git a/packages/slugos-init/files/sysconf b/packages/slugos-init/files/sysconf index d91c184425..84a14af550 100644 --- a/packages/slugos-init/files/sysconf +++ b/packages/slugos-init/files/sysconf @@ -8,7 +8,6 @@ # to load these functions!) test "$1" != sysconf && . /etc/default/functions -# NSLU2 flash layout is non-standard. case "$(machine)" in nslu2) kpart="Kernel" @@ -493,6 +492,8 @@ sysconf_test_restore(){ sysconf_save(){ local sysdev ffsdev ffsdir saved list size status ffsdev="$(mtblockdev $ffspart)" + [ -n "$ffsdev" ] || \ + ffsdev="$(mtblockdev rootfs)" sysdev="$(mtblockdev $syspart)" status=1 if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev" @@ -622,6 +623,8 @@ sysconf_restore(){ test "$1" = auto && sysconf_noninteractive=1 ffsdev="$(mtblockdev $ffspart)" + [ -n "$ffsdev" ] || \ + ffsdev="$(mtblockdev rootfs)" sysdev="$(mtblockdev $syspart)" status=1 if test -n "$sysdev" -a -b "$sysdev" -a -n "$ffsdev" -a -b "$ffsdev" && diff --git a/packages/slugos-init/files/turnup b/packages/slugos-init/files/turnup index 10bccb8279..761e07829d 100644 --- a/packages/slugos-init/files/turnup +++ b/packages/slugos-init/files/turnup @@ -159,7 +159,7 @@ fsoptions() { # get_flash <directory> {mount options} # mount the flash device, writeable, on the given directory get_flash() { - local ffsdir ffsdev + local ffsdir ffspart ffsdev ffsdir="$1" shift @@ -169,9 +169,12 @@ get_flash() { } case "$(machine)" in - nslu2) ffsdev="$(mtblockdev Flashdisk)";; - *) ffsdev="$(mtblockdev filesystem)";; + nslu2) ffspart="Flashdisk";; + *) ffspart="filesystem";; esac + ffsdev="$(mtblockdev $ffspart)" + [ -n "$ffsdev" ] || \ + ffsdev="$(mtblockdev rootfs)" umountflash "$ffsdev" && mountflash "$ffsdev" "$ffsdir" "$@" } diff --git a/packages/slugos-init/slugos-init_0.10.bb b/packages/slugos-init/slugos-init_0.10.bb index 77e1efb314..8e08a3d755 100644 --- a/packages/slugos-init/slugos-init_0.10.bb +++ b/packages/slugos-init/slugos-init_0.10.bb @@ -4,7 +4,7 @@ PRIORITY = "required" LICENSE = "GPL" DEPENDS = "base-files devio" RDEPENDS = "busybox devio" -PR = "r84" +PR = "r86" SRC_URI = "file://boot/flash \ file://boot/disk \ diff --git a/packages/sphyrna/.mtn2git_empty b/packages/sphyrna/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/sphyrna/.mtn2git_empty diff --git a/packages/sphyrna/sphyrna_svn.bb b/packages/sphyrna/sphyrna_svn.bb new file mode 100644 index 0000000000..048d001905 --- /dev/null +++ b/packages/sphyrna/sphyrna_svn.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Sphyrna - Hammerhead Reverse Engineering" +HOMEPAGE = "http://projects.linuxtogo.org/projects/sphyrna" +LICENSE = "GPLv2" +DEPENDS = "readline" +PV = "0.0+svn${SRCDATE}" +PR = "r0" + +SRC_URI = "svn://projects.linuxtogo.org/svn;module=sphyrna" + +S = "${WORKDIR}/${PN}" + +inherit autotools + +PACKAGES = "sphyrna-console sphyrna-python" + +FILES_sphyrna-console = "${bindir}/hhconsole" +FILES_sphyrna-python = "${bindir}/decode.py ${libdir}/python2.4/site-packages/sphyrna/*" + +PACKAGE_ARCH_sphyrna-python = "all" +RDEPENDS_sphyrna-python = "python-core python-re" diff --git a/packages/sysvinit/sysvinit_2.86.bb b/packages/sysvinit/sysvinit_2.86.bb index c8ce5ba191..7360a13104 100644 --- a/packages/sysvinit/sysvinit_2.86.bb +++ b/packages/sysvinit/sysvinit_2.86.bb @@ -51,7 +51,8 @@ EXTRA_OEMAKE += "'INSTALL=install' \ 'usrbindir=${bindir}' \ 'usrsbindir=${sbindir}' \ 'includedir=${includedir}' \ - 'mandir=${mandir}'" + 'mandir=${mandir}' \ + DISTRO=''" do_install () { oe_runmake 'ROOT=${D}' install diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index d89d781202..0c11eeedc1 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 = "r36" +PR = "r37" DEPENDS = "task-boot" PROVIDES = "${PACKAGES}" @@ -196,8 +196,7 @@ RRECOMMENDS_task-base-alsa = "\ RDEPENDS_task-base-pcmcia = "\ ${PCMCIA_MANAGER} \ - ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-firmware', '',d)} \ - ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism3-support', '',d)} \ + ${@base_contains('DISTRO_FEATURES', 'wifi', 'prism-firmware', '',d)} \ ${@base_contains('DISTRO_FEATURES', 'wifi', 'spectrum-fw', '',d)} \ " diff --git a/packages/tasks/task-boot.bb b/packages/tasks/task-boot.bb index 4f3b0fc817..3d08f465ba 100644 --- a/packages/tasks/task-boot.bb +++ b/packages/tasks/task-boot.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Basic task to get a device booting" -PR = "r36" +PR = "r37" PROVIDES = "${PACKAGES}" PACKAGES = 'task-boot' @@ -46,11 +46,9 @@ RDEPENDS_task-boot = "\ ${DISTRO_DEV_MANAGER} \ ${DISTRO_INIT_MANAGER} \ ${DISTRO_LOGIN_MANAGER} \ - ${DISTRO_EXTRA_RDEPENDS} \ ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ - ${MACHINE_EXTRA_RDEPENDS}" + " RRECOMMENDS_task-boot = "\ ${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} \ - ${MACHINE_EXTRA_RRECOMMENDS} \ - ${DISTRO_EXTRA_RRECOMMENDS} " + " diff --git a/packages/tasks/task-hentges-base.bb b/packages/tasks/task-hentges-base.bb deleted file mode 100644 index 89b39aeba9..0000000000 --- a/packages/tasks/task-hentges-base.bb +++ /dev/null @@ -1,28 +0,0 @@ -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 -# License: MIT (see http://www.opensource.org/licenses/mit-license.php -# for a copy of the license) -# -# Filename: task-hentges-base.bb -# Date: 20070516 (YMD) - -DESCRIPTION = "task-hentges-base" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "MIT" - -###################################################################################### - -ALLOW_EMPTY = "1" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -###################################################################################### - -PV = "${HENTGES_PV}" -PR = "${HENTGES_PR}" - -###################################################################################### - -#DEPENDS = "${HENTGES_DEPENDS}" -# -RDEPENDS = "${HENTGES_BASE_RDEPENDS}" diff --git a/packages/tasks/task-hentges-x11.bb b/packages/tasks/task-hentges-x11.bb deleted file mode 100644 index db658e9014..0000000000 --- a/packages/tasks/task-hentges-x11.bb +++ /dev/null @@ -1,29 +0,0 @@ -#! /bin/sh -# -# Copyright Matthias Hentges <devel@hentges.net> (c) 2007 -# License: MIT (see http://www.opensource.org/licenses/mit-license.php -# for a copy of the license) -# -# Filename: task-hentges-x11.bb -# Date: 20070522 (YMD) - -DESCRIPTION = "task-hentges-x11" -HOMEPAGE = "http://www.hentges.net/misc/openzaurus/index.shtml" -LICENSE = "MIT" - -###################################################################################### - -ALLOW_EMPTY = "1" - -PACKAGE_ARCH = "${MACHINE_ARCH}" - -###################################################################################### - -PV = "${HENTGES_PV}" -PR = "${HENTGES_PR}" - -###################################################################################### - -DEPENDS = "task-angstrom-x11" - -RDEPENDS = "${HENTGES_X11_RDEPENDS}" diff --git a/packages/tasks/task-opie-16mb.bb b/packages/tasks/task-opie-16mb.bb new file mode 100644 index 0000000000..610e06ffb0 --- /dev/null +++ b/packages/tasks/task-opie-16mb.bb @@ -0,0 +1,54 @@ +DESCRIPTION = "Tasks for small OPIE image" +SECTION = "opie/base" +PACKAGE_ARCH = "${MACHINE_ARCH}" +ALLOW_EMPTY = "1" +LICENSE = "MIT" + +PR = "r0" + +PACKAGES = "task-opie-16mb-base \ + task-opie-16mb-applets \ + task-opie-16mb-inputmethods \ + task-opie-16mb-settings \ + task-opie-16mb-apps \ + task-opie-16mb-pim \ + " + +# +# Dependencies to get the launcher up and running +# +RDEPENDS_task-opie-16mb-base = "opie-init opie-alarm opie-qcop opie-qss opie-quicklauncher \ + opie-taskbar opie-pics opie-sounds opie-freetype \ + ttf-dejavu-sans ttf-dejavu-sans-mono" + +# +# things for reasonable bootstrap image +# +RDEPENDS_task-opie-16mb-applets = "opie-aboutapplet opie-clockapplet opie-suspendapplet \ + opie-homeapplet opie-rotateapplet \ + opie-brightnessapplet opie-volumeapplet \ + opie-screenshotapplet \ + ${@base_contains("COMBINED_FEATURES", "irda", "opie-irdaapplet", "",d)} \ + ${@base_contains("COMBINED_FEATURES", "apm", "opie-batteryapplet", "",d)} \ + ${@base_contains("COMBINED_FEATURES", "pcmcia", "opie-pcmciaapplet", "",d)} \ + ${@base_contains("MACHINE_FEATURES", "keyboard", "opie-vtapplet opie-logoutapplet", "",d)}" + +# +# clamshell models can benefit from the autorotate applet +# +RDEPENDS_task-opie-16mb-applets_append_c7x0 = " opie-autorotateapplet" +RDEPENDS_task-opie-16mb-applets_append_spitz = " opie-autorotateapplet" +RDEPENDS_task-opie-16mb-applets_append_akita = " opie-autorotateapplet" + +RDEPENDS_task-opie-16mb-inputmethods = "opie-multikey" + +RDEPENDS_task-opie-16mb-settings = "opie-packagemanager opie-light-and-power opie-appearance \ + opie-systemtime opie-networksettings opie-button-settings \ + opie-icon-reload opie-launcher-settings opie-security \ + opie-securityplugin-pin" + +RDEPENDS_task-opie-16mb-apps = "opie-console opie-clock opie-backup opie-sysinfo \ + opie-advancedfm" + +RDEPENDS_task-opie-16mb-pim = "opie-addressbook opie-datebook opie-drawpad \ + opie-search opie-textedit opie-today opie-todo" diff --git a/packages/tasks/task-opie-all.bb b/packages/tasks/task-opie-all.bb new file mode 100644 index 0000000000..c47aa0c420 --- /dev/null +++ b/packages/tasks/task-opie-all.bb @@ -0,0 +1,65 @@ +DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+ALLOW_EMPTY = "1"
+LICENSE = "MIT"
+
+PACKAGES = "task-opie-applets task-opie-inputmethods task-opie-styles \
+ task-opie-decorations task-opie-multimedia"
+
+#
+# all OPIE stuff
+#
+RDEPENDS_task-opie-applets = "opie-aboutapplet opie-autorotateapplet opie-batteryapplet \
+ opie-bluetoothapplet opie-brightnessapplet opie-cardmon \
+ opie-clipboardapplet opie-clockapplet opie-homeapplet \
+ opie-irdaapplet opie-lockapplet opie-logoutapplet \
+ opie-mailapplet opie-memoryapplet opie-multikeyapplet \
+ opie-networkapplet opie-notesapplet opie-pcmciaapplet \
+ opie-pyquicklaunchapplet opie-restartapplet \
+ opie-restartapplet2 opie-rotateapplet \
+ opie-screenshotapplet opie-suspendapplet opie-vmemo \
+ opie-volumeapplet opie-vtapplet opie-zkbapplet \
+ "
+RDEPENDS_task-opie-inputmethods = "opie-dasher opie-dvorak opie-handwriting \
+ opie-handwriting-classicset opie-jumpx opie-keyboard \
+ opie-keyview opie-kjumpx opie-multikey opie-unikeyboard"
+
+RDEPENDS_task-opie-styles = "opie-style-flat opie-style-fresh opie-style-liquid opie-style-metal \
+ opie-style-web opie-style-phase opie-theme"
+
+RDEPENDS_task-opie-decorations = "opie-deco-flat opie-deco-liquid opie-deco-polished"
+
+RDEPENDS_task-opie-multimedia = "opie-mediaplayer1 \
+ opie-mediaplayer1-libmadplugin \
+ opie-mediaplayer1-libmodplugin \
+ opie-mediaplayer1-libtremorplugin \
+ opie-mediaplayer1-libwavplugin \
+ opie-mediaplayer2 \
+ opie-mediaplayer2-skin-default \
+ opie-mediaplayer2-skin-default-landscape \
+ opie-mediaplayer2-skin-pod \
+ opie-mediaplayer2-skin-techno \
+ opie-powerchord opie-recorder opie-tonleiter"
+
+RDEPENDS_task-opie-settings = "opie-appearance opie-aqpkg opie-backup opie-button-settings \
+ opie-citytime opie-confeditor opie-doctab \
+ opie-formatter opie-language opie-launcher-settings \
+ opie-light-and-power opie-mediummount opie-networksettings \
+ opie-packagemanager opie-security opie-sshkeys opie-sysinfo \
+ opie-systemtime opie-usermanager opie-icon-reload \
+ opie-vmemo-settings"
+
+RDEPENDS_task-opie-pim = "task-opie-base-pim task-opie-todayplugins task-opie-datebookplugins \
+ opie-mail opie-pimconverter"
+
+RDEPENDS_task-opie-datebookplugins= "opie-datebook-birthdayplugin \
+ opie-datebook-chrisholidayplugin \
+ opie-datebook-nationalholidayplugin"
+
+RDEPENDS_task-opie-todayplugins = "opie-today-addressbookplugin opie-today-datebookplugin \
+ opie-today-fortuneplugin opie-today-mailplugin \
+ opie-today-stocktickerplugin opie-today-todolistplugin \
+ opie-today-weatherplugin"
+
+RDEPENDS_task-opie-wlan = "wireless-tools opie-wellenreiter opie-networksettings-wlanplugin"
+
diff --git a/packages/tasks/task-opie-apps.bb b/packages/tasks/task-opie-apps.bb new file mode 100644 index 0000000000..1c03dcc9d9 --- /dev/null +++ b/packages/tasks/task-opie-apps.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Tasks for OPIE stuff" +SECTION = "opie/base" +ALLOW_EMPTY = "1" +LICENSE = "MIT" + +PACKAGES = "task-opie-apps task-opie-extra-apps" + +RDEPENDS_task-opie-apps = "opie-advancedfm opie-bartender opie-calculator \ + opie-checkbook opie-clock \ + opie-console opie-dagger opie-embeddedkonsole \ + opie-euroconv opie-eye opie-ftp opie-gutenbrowser \ + opie-helpbrowser opie-irc opie-keypebble opie-odict \ + opie-oxygen opie-rdesktop opie-reader opie-remote \ + opie-sheet opie-tableviewer opie-tinykate \ + opie-wellenreiter opie-write opie-zsafe" + +# +# additional things for a >= 24mb distribution +# + +RDEPENDS_task-opie-extra-apps = "opie-calculator opie-checkbook opie-mail opie-eye \ + opie-rdesktop opie-wellenreiter opie-irc \ + opie-mediaplayer2 \ + qpdf2" +# konqueror-embedded diff --git a/packages/tasks/task-opie-games.bb b/packages/tasks/task-opie-games.bb new file mode 100644 index 0000000000..70d2f39b29 --- /dev/null +++ b/packages/tasks/task-opie-games.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Tasks for OPIE stuff"
+SECTION = "opie/base"
+ALLOW_EMPTY = "1"
+LICENSE = "MIT"
+
+PACKAGES = "task-opie-games task-opie-extra-games"
+
+RDEPENDS_task-opie-games = "opie-backgammon opie-bounce opie-buzzword opie-fifteen \
+ opie-go opie-kbill opie-kcheckers opie-kpacman opie-mindbreaker \
+ opie-minesweep opie-oyatzee opie-parashoot opie-qasteroids \
+ opie-sfcave opie-snake opie-solitaire opie-tetrix opie-tictac \
+ opie-wordgame opie-zlines opie-zsame"
+
+#
+# additional things for a >= 24mb distribution
+#
+
+RDEPENDS_task-opie-extra-games = "opie-parashoot opie-mindbreaker opie-fifteen opie-tictac \
+ opie-tetrix"
+
diff --git a/packages/tasks/task-opie.bb b/packages/tasks/task-opie.bb index 960770ef7c..7380b5fc20 100644 --- a/packages/tasks/task-opie.bb +++ b/packages/tasks/task-opie.bb @@ -5,20 +5,18 @@ ALLOW_EMPTY = "1" LICENSE = "MIT" PROVIDES = "task-opie-everything" -PR = "r7" +PR = "r9" -PACKAGES = "task-opie-applets task-opie-apps task-opie-base \ +PACKAGES = "task-opie-base \ task-opie-base-applets task-opie-base-apps \ task-opie-base-decorations task-opie-base-inputmethods \ task-opie-base-pim task-opie-base-settings \ task-opie-base-styles task-opie-bluetooth \ task-opie-base-todayplugins \ - task-opie-datebookplugins task-opie-decorations \ - task-opie-extra-apps task-opie-extra-settings \ - task-opie-extra-styles task-opie-extra-games \ - task-opie-games task-opie-inputmethods task-opie-irda \ - task-opie-multimedia task-opie-pim task-opie-settings \ - task-opie-styles task-opie-todayplugins task-opie-wlan" + task-opie-extra-settings \ + task-opie-extra-styles \ + task-opie-irda \ + " RDEPENDS_task-opie-everything := "${PACKAGES}" @@ -36,7 +34,7 @@ RDEPENDS_task-opie-base = "opie-init opie-alarm opie-qcop opie-qss opie-quicklau # RDEPENDS_task-opie-base-applets = "opie-aboutapplet opie-clockapplet opie-suspendapplet \ opie-homeapplet opie-rotateapplet \ - opie-brightnessapplet opie-volumeapplet \ + opie-brightnessapplet opie-volumeapplet \ opie-screenshotapplet \ ${@base_contains("COMBINED_FEATURES", "irda", "opie-irdaapplet", "",d)} \ ${@base_contains("COMBINED_FEATURES", "apm", "opie-batteryapplet", "",d)} \ @@ -85,93 +83,7 @@ RDEPENDS_task-opie-base-pim = "opie-addressbook opie-datebook opie-drawpad \ task-opie-base-todayplugins \ opie-datebook-birthdayplugin" -# -# all OPIE stuff -# -RDEPENDS_task-opie-applets = "opie-aboutapplet opie-autorotateapplet opie-batteryapplet \ - opie-bluetoothapplet opie-brightnessapplet opie-cardmon \ - opie-clipboardapplet opie-clockapplet opie-homeapplet \ - opie-irdaapplet opie-lockapplet opie-logoutapplet \ - opie-mailapplet opie-memoryapplet opie-multikeyapplet \ - opie-networkapplet opie-notesapplet opie-pcmciaapplet \ - opie-pyquicklaunchapplet opie-restartapplet \ - opie-restartapplet2 opie-rotateapplet \ - opie-screenshotapplet opie-suspendapplet opie-vmemo \ - opie-volumeapplet opie-vtapplet opie-zkbapplet \ - " -RDEPENDS_task-opie-apps = "opie-advancedfm opie-bartender opie-calculator \ - opie-checkbook opie-clock \ - opie-console opie-dagger opie-embeddedkonsole \ - opie-euroconv opie-eye opie-ftp opie-gutenbrowser \ - opie-helpbrowser opie-irc opie-keypebble opie-odict \ - opie-oxygen opie-rdesktop opie-reader opie-remote \ - opie-sheet opie-tableviewer opie-tinykate \ - opie-wellenreiter opie-write opie-zsafe" - -RDEPENDS_task-opie-decorations = "opie-deco-flat opie-deco-liquid opie-deco-polished" - -RDEPENDS_task-opie-games = "opie-backgammon opie-bounce opie-buzzword opie-fifteen \ - opie-go opie-kbill opie-kcheckers opie-kpacman opie-mindbreaker \ - opie-minesweep opie-oyatzee opie-parashoot opie-qasteroids \ - opie-sfcave opie-snake opie-solitaire opie-tetrix opie-tictac \ - opie-wordgame opie-zlines opie-zsame" - -RDEPENDS_task-opie-inputmethods = "opie-dasher opie-dvorak opie-handwriting \ - opie-handwriting-classicset opie-jumpx opie-keyboard \ - opie-keyview opie-kjumpx opie-multikey opie-unikeyboard" - -RDEPENDS_task-opie-multimedia = "opie-mediaplayer1 \ - opie-mediaplayer1-libmadplugin \ - opie-mediaplayer1-libmodplugin \ - opie-mediaplayer1-libtremorplugin \ - opie-mediaplayer1-libwavplugin \ - opie-mediaplayer2 \ - opie-mediaplayer2-skin-default \ - opie-mediaplayer2-skin-default-landscape \ - opie-mediaplayer2-skin-pod \ - opie-mediaplayer2-skin-techno \ - opie-powerchord opie-recorder opie-tonleiter" - -RDEPENDS_task-opie-settings = "opie-appearance opie-aqpkg opie-backup opie-button-settings \ - opie-citytime opie-confeditor opie-doctab \ - opie-formatter opie-language opie-launcher-settings \ - opie-light-and-power opie-mediummount opie-networksettings \ - opie-packagemanager opie-security opie-sshkeys opie-sysinfo \ - opie-systemtime opie-usermanager opie-icon-reload \ - opie-vmemo-settings" - -RDEPENDS_task-opie-styles = "opie-style-flat opie-style-fresh opie-style-liquid opie-style-metal \ - opie-style-web opie-style-phase opie-theme" - -RDEPENDS_task-opie-datebookplugins= "opie-datebook-birthdayplugin \ - opie-datebook-chrisholidayplugin \ - opie-datebook-nationalholidayplugin" - -RDEPENDS_task-opie-todayplugins = "opie-today-addressbookplugin opie-today-datebookplugin \ - opie-today-fortuneplugin opie-today-mailplugin \ - opie-today-stocktickerplugin opie-today-todolistplugin \ - opie-today-weatherplugin" - -RDEPENDS_task-opie-pim = "task-opie-base-pim task-opie-todayplugins task-opie-datebookplugins \ - opie-mail opie-pimconverter" - RDEPENDS_task-opie-bluetooth = "bluez-utils obexftp obexpush libopieobex0 \ opie-bluepin opie-bluetoothmanager opie-bluetoothapplet" -RDEPENDS_task-opie-wlan = "wireless-tools opie-wellenreiter opie-networksettings-wlanplugin" - RDEPENDS_task-opie-irda = "irda-utils libopieobex0 obexftp obexpush" - -# -# additional things for a >= 24mb distribution -# - -RDEPENDS_task-opie-extra-apps = "opie-calculator opie-checkbook opie-mail opie-eye \ - opie-rdesktop opie-wellenreiter opie-irc \ - opie-mediaplayer2 \ - qpdf2" -# konqueror-embedded - -RDEPENDS_task-opie-extra-games = "opie-parashoot opie-mindbreaker opie-fifteen opie-tictac \ - opie-tetrix" - diff --git a/packages/tasks/task-python-everything_20060425.bb b/packages/tasks/task-python-everything_20060425.bb index 5824ed39c7..5723a4294f 100644 --- a/packages/tasks/task-python-everything_20060425.bb +++ b/packages/tasks/task-python-everything_20060425.bb @@ -1,7 +1,7 @@ DESCRIPTION= "Everything Python" HOMEPAGE = "http://www.vanille.de/projects/python.spy" LICENSE = "MIT" -PR = "ml10" +PR = "ml13" BROKEN_BECAUSE_GCC4 = "\ python-egenix-mx-base" @@ -13,6 +13,7 @@ RDEPENDS = "\ python-crypto \ python-dialog \ python-pycurl \ + python-fam \ python-fnorb \ python-fpconst \ python-gammu \ @@ -56,6 +57,8 @@ RDEPENDS = "\ python-quicklauncher \ python-scapy \ python-scons \ + python-setuptools \ + python-simplejson \ python-sip \ python-sgmlop \ python-snmplib \ diff --git a/packages/tasks/task-slugos.bb b/packages/tasks/task-slugos.bb index acb6bcaae5..3596e9ea1e 100644 --- a/packages/tasks/task-slugos.bb +++ b/packages/tasks/task-slugos.bb @@ -6,7 +6,7 @@ DESCRIPTION = "Task packages for the SlugOS distribution" HOMEPAGE = "http://www.nslu2-linux.org" LICENSE = "MIT" -PR = "r9" +PR = "r10" PACKAGE_ARCH = "${MACHINE_ARCH}" ALLOW_EMPTY = "1" @@ -95,6 +95,11 @@ SLUGOS_STANDARD_RRECOMMENDS += "\ kernel-module-via-velocity \ " +# Add modules required for Wifi support +SLUGOS_STANDARD_RRECOMMENDS += "\ +madwifi-ng-modules madwifi-ng-tools \ +" + # Add modules required for Network Console support # NOTE: This module is desirable for systems lacking a physical # console, but is usually only enabled if specific needs or issues diff --git a/packages/tetex/tetex-native_3.0.bb b/packages/tetex/tetex-native_3.0.bb index ed487452bf..4d683ff3d1 100644 --- a/packages/tetex/tetex-native_3.0.bb +++ b/packages/tetex/tetex-native_3.0.bb @@ -1,7 +1,7 @@ require tetex_${PV}.bb inherit native DEPENDS = "" -PR = "r1" +PR = "r2" PACKAGES="" RRECOMMENDS_${PN}="" @@ -28,3 +28,8 @@ do_install () { : } + +do_rm_work () { + : +} + diff --git a/packages/tetex/tetex_3.0.bb b/packages/tetex/tetex_3.0.bb index 68e5184439..eedf8820b2 100644 --- a/packages/tetex/tetex_3.0.bb +++ b/packages/tetex/tetex_3.0.bb @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.tug.org/tetex" LICENSE = "GPL" SECTION = "console/utils" DEPENDS = "tetex-native flex gd ncurses libpng t1lib virtual/libx11 libxau libxext libxt zlib" -PR = "r5" +PR = "r6" SRC_URI = "ftp://dante.ctan.org/tex-archive/systems/unix/teTeX/current/distrib/tetex-src-${PV}.tar.gz \ file://configure.patch;patch=1" @@ -26,7 +26,7 @@ EXTRA_OECONF = "--with-system-libgd \ --with-system-zlib \ --without-dialog \ --without-xdvik \ - --without-x11 \ + --with-x11 \ --without-mf-x-toolkit" # NOTE: In theory, teTeX has a good buildsystem, which automatically detects @@ -49,7 +49,7 @@ do_configure() { install: echo "mickey _is_ cool - he tamed the tetex buildsystem" all: - echo "mickeys suck - he adds easter eggs in output that no one will ever read..." + echo "mickey sucks - he adds easter eggs in output that no one will ever read..." EOF } # NOTE: Make sure it is using _our_ libtool and nothing else :/ @@ -83,10 +83,16 @@ do_install() { DESTDIR="" \ LIBTOOL="${STAGING_BINDIR_NATIVE}/${HOST_SYS}-libtool" MAKE="make -e" oe_runmake -e install + ln -sf ${bindir}/pdfetex ${D}${bindir}/latex + mv ${D}${libdir}/.libs/* ${D}${libdir}/ -f || true } -RRECOMMENDS_${PN} = "tetex-texmf-dvips tetex-texmf-texconfig tetex-texmf-fonts" -PACKAGES =+ "tetex-texmf-dvips tetex-texmf-texconfig tetex-texi2html" +RRECOMMENDS_${PN} = "tetex-bin tetex-texmf-dvips tetex-texmf-texconfig tetex-texmf-fonts" +PACKAGES =+ "libkpathsea tetex-bin tetex-texmf-dvips tetex-texmf-texconfig tetex-texi2html" + +FILES_libkpathsea = "${libdir}/libkpathsea.so.*" +FILES_tetex-bin = "${bindir}/*" + FILES_${PN} += "${localstatedir} ${datadir}" FILES_${PN}-doc += "${datadir}/texinfo ${datadir}/man ${datadir}/info" FILES_tetex-texmf-dvips = "${datadir}/texmf/dvips" diff --git a/packages/uboot/files/gta01_nand.h b/packages/uboot/files/gta01_nand.h deleted file mode 100644 index 04cb743158..0000000000 --- a/packages/uboot/files/gta01_nand.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> - * - * Configuation settings for the FIC GTA01 Linux GSM phone - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -/* we want to start u-boot directly from within NAND flash */ -#define CONFIG_S3C2410_NAND_BOOT 1 - -/* - * High Level Configuration Options - * (easy to change) - */ -#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ - -/* input clock of PLL */ -#define CONFIG_SYS_CLK_FREQ 12000000/* the GTA01 has 12MHz input clock */ - - -#define USE_920T_MMU 1 -#define CONFIG_USE_IRQ 1 - -/* - * Size of malloc() pool - */ -#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ - -/* - * Hardware drivers - */ - -/* - * select serial console configuration - */ -#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on GTA01 */ -//#define CONFIG_HWFLOW 1 - -/************************************************************ - * RTC - ************************************************************/ -#define CONFIG_RTC_S3C24X0 1 - -/* allow to overwrite serial and ethaddr */ -#define CONFIG_ENV_OVERWRITE - -#define CONFIG_BAUDRATE 115200 - -/*********************************************************** - * Command definition - ***********************************************************/ -#define CONFIG_COMMANDS (\ - CFG_CMD_BDI | \ - CFG_CMD_LOADS | \ - CFG_CMD_LAODB | \ - CFG_CMD_IMI | \ - CFG_CMD_CACHE | \ - CFG_CMD_MEMORY | \ - CFG_CMD_ENV | \ - /* CFG_CMD_IRQ | */ \ - CFG_CMD_BOOTD | \ - CFG_CMD_CONSOLE | \ - CFG_CMD_ASKENV | \ - CFG_CMD_RUN | \ - CFG_CMD_ECHO | \ - CFG_CMD_I2C | \ - CFG_CMD_REGINFO | \ - CFG_CMD_IMMAP | \ - CFG_CMD_DATE | \ - CFG_CMD_AUTOSCRIPT | \ - CFG_CMD_BSP | \ - CFG_CMD_ELF | \ - CFG_CMD_MISC | \ - CFG_CMD_USB | \ - CFG_CMD_JFFS2 | \ - CFG_CMD_DIAG | \ - /* CFG_CMD_HWFLOW | */ \ - CFG_CMD_SAVES | \ - CFG_CMD_NAND | \ - CFG_CMD_PORTIO | \ - CFG_CMD_MMC | \ - CFG_CMD_FAT | \ - CFG_CMD_EXT2 | \ - 0) -/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -#include <cmd_confdefs.h> - -#define CONFIG_BOOTDELAY 3 -#define CONFIG_BOOTARGS "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8" -/*#define CONFIG_BOOTFILE "elinos-lart" */ -#define CONFIG_BOOTCOMMAND "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000" - -#define CONFIG_DOS_PARTITION 1 - -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -/* what's this ? it's not used anywhere */ -#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -#endif - -/* - * Miscellaneous configurable options - */ -#define CFG_LONGHELP /* undef to save memory */ -#define CFG_PROMPT "GTA01 # " /* Monitor Command Prompt */ -#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -#define CFG_MAXARGS 16 /* max number of command args */ -#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ - -#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ - -#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ - -#define CFG_LOAD_ADDR 0x33000000 /* default load address */ - -/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -/* it to wrap 100 times (total 1562500) to get 1 sec. */ -#define CFG_HZ 1562500 - -/* valid baudrates */ -#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } - -/*----------------------------------------------------------------------- - * Stack sizes - * - * The stack sizes are set up in start.S using the settings below - */ -#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -#ifdef CONFIG_USE_IRQ -#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -#endif - -#define CONFIG_USB_OHCI 1 - -/*----------------------------------------------------------------------- - * Physical Memory Map - */ -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ - -/*----------------------------------------------------------------------- - * FLASH and environment organization - */ - -#if 1 -#define CFG_NO_FLASH 1 -#else -#define CFG_MAX_FLASH_SECT 1 -#define CFG_MAX_FLASH_BANKS 1 -#endif - -#define CFG_ENV_IS_IN_NAND 1 -#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ - -#define NAND_MAX_CHIPS 1 -#define CFG_NAND_BASE 0x4e000000 -#define CFG_MAX_NAND_DEVICE 1 - -#define CONFIG_MMC 1 -#define CFG_MMC_BASE 0xff000000 - -/* EXT2 driver */ -#define CONFIG_EXT2 1 - -/* FAT driver in u-boot is broken currently */ -#define CONFIG_FAT 1 -#define CONFIG_SUPPORT_VFAT 1 - -/* JFFS2 driver */ -#define CONFIG_JFFS2_NAND 1 -#define CONFIG_JFFS2_NAND_DEV 0 -#define CONFIG_JFFS2_NAND_OFF 0x634000 -#define CONFIG_JFFS2_NAND_SIZE 0x39cc000 - -/* ATAG configuration */ -#define CONFIG_INITRD_TAG 1 -#define CONFIG_SETUP_MEMORY_TAGS 1 -#define CONFIG_CMDLINE_TAG 1 -#if 0 -#define CONFIG_SERIAL_TAG 1 -#define CONFIG_REVISION_TAG 1 -#endif - -#define CONFIG_DRIVER_S3C24X0_I2C 1 -#define CONFIG_HARD_I2C 1 -#define CFG_I2C_SPEED 400000 /* 400kHz according to PCF50707 data sheet */ -#define CFG_I2C_SLAVE 0x7f - - -#if 0 -#define CONFIG_VIDEO -#define CONFIG_VIDEO_S3C2410 -#define CONFIG_CFB_CONSOLE -#define CONFIG_VIDEO_LOGO -#define CONFIG_VGA_AS_SINGLE_DEVICE - -#define VIDEO_KBD_INIT_FCT 0 -#define VIDEO_TSTC_FCT serial_tstc -#define VIDEO_GETC_FCT serial_getc - -#define LCD_VIDEO_ADDR 0x33d00000 -#endif - -#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410.h b/packages/uboot/files/qt2410.h deleted file mode 100644 index 627f365f86..0000000000 --- a/packages/uboot/files/qt2410.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.de> - * Gary Jennejohn <gj@denx.de> - * David Mueller <d.mueller@elsoft.ch> - * - * Configuation settings for the SAMSUNG SMDK2410 board. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -#if 0 -/* If we want to start u-boot from usb bootloader in NOR flash */ -#define CONFIG_SKIP_RELOCATE_UBOOT 1 -#define CONFIG_SKIP_LOWLEVEL_INIT 1 -#else -/* If we want to start u-boot directly from within NAND flash */ -#define CONFIG_S3C2410_NAND_BOOT 1 -#endif - -/* - * High Level Configuration Options - * (easy to change) - */ -#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ - -/* input clock of PLL */ -#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ - - -#define USE_920T_MMU 1 -#define CONFIG_USE_IRQ 1 -//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ - -/* - * Size of malloc() pool - */ -#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ - -/* - * Hardware drivers - */ -#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ -#define CS8900_BASE 0x19000300 -#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ - -/* - * select serial console configuration - */ -#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ -#define CONFIG_HWFLOW 1 - -/************************************************************ - * RTC - ************************************************************/ -#define CONFIG_RTC_S3C24X0 1 - -/* allow to overwrite serial and ethaddr */ -#define CONFIG_ENV_OVERWRITE - -#define CONFIG_BAUDRATE 115200 - -/*********************************************************** - * Command definition - ***********************************************************/ -#define CONFIG_COMMANDS \ - (CONFIG_CMD_DFL | \ - CFG_CMD_BSP | \ - CFG_CMD_CACHE | \ - CFG_CMD_DATE | \ - CFG_CMD_DHCP | \ - CFG_CMD_DIAG | \ - CFG_CMD_ELF | \ - CFG_CMD_EXT2 | \ - CFG_CMD_FAT | \ - CFG_CMD_HWFLOW | \ - /* CFG_CMD_IDE | */ \ - /* CFG_CMD_IRQ | */ \ - CFG_CMD_JFFS2 | \ - CFG_CMD_MMC | \ - CFG_CMD_NAND | \ - CFG_CMD_PING | \ - CFG_CMD_PORTIO | \ - CFG_CMD_REGINFO | \ - CFG_CMD_SAVES | \ - CFG_CMD_USB) - -/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -#include <cmd_confdefs.h> - -#define CONFIG_BOOTDELAY 3 -#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" -/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ -#define CONFIG_NETMASK 255.255.255.0 -#define CONFIG_IPADDR 10.0.0.110 -#define CONFIG_SERVERIP 10.0.0.1 -/*#define CONFIG_BOOTFILE "elinos-lart" */ -#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" - -#define CONFIG_DOS_PARTITION 1 - -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -/* what's this ? it's not used anywhere */ -#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -#endif - -/* - * Miscellaneous configurable options - */ -#define CFG_LONGHELP /* undef to save memory */ -#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ -#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -#define CFG_MAXARGS 16 /* max number of command args */ -#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ - -#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ - -#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ - -#define CFG_LOAD_ADDR 0x33000000 /* default load address */ - -/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -/* it to wrap 100 times (total 1562500) to get 1 sec. */ -#define CFG_HZ 1562500 - -/* valid baudrates */ -#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } - -/*----------------------------------------------------------------------- - * Stack sizes - * - * The stack sizes are set up in start.S using the settings below - */ -#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -#ifdef CONFIG_USE_IRQ -#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -#endif - -/* IDE/ATA config */ - -#if 0 -#define CFG_IDE_MAXBUS 1 -#define CFG_IDE_MAXDEVICE 2 -#define CFG_IDE_PREINIT 0 - -#define CFG_ATA_BASE_ADDR -#endif - -#define CONFIG_USB_OHCI 1 - -/*----------------------------------------------------------------------- - * Physical Memory Map - */ -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ - -#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ - -#define CFG_FLASH_BASE PHYS_FLASH_1 - -/*----------------------------------------------------------------------- - * FLASH and environment organization - */ - -#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ -#if 0 -#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ -#endif - -#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -#ifdef CONFIG_AMD_LV800 -#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ -#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ -#endif -#ifdef CONFIG_AMD_LV400 -#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ -#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ -#endif - -/* timeout values are in ticks */ -#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ -#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ - -#define CFG_ENV_IS_IN_NAND 1 -#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ - -#define NAND_MAX_CHIPS 1 -#define CFG_NAND_BASE 0x4e000000 -#define CFG_MAX_NAND_DEVICE 1 - -#define CONFIG_MMC 1 -#define CFG_MMC_BASE 0xff000000 - -#define CONFIG_EXT2 1 - -/* FAT driver in u-boot is broken currently */ -#define CONFIG_FAT 1 -#define CONFIG_SUPPORT_VFAT - -/* ATAG configuration */ -#define CONFIG_INITRD_TAG 1 -#define CONFIG_SETUP_MEMORY_TAGS 1 -#define CONFIG_CMDLINE_TAG 1 -#if 0 -#define CONFIG_SERIAL_TAG 1 -#define CONFIG_REVISION_TAG 1 -#endif - - -#if 0 -#define CONFIG_VIDEO -#define CONFIG_VIDEO_S3C2410 -#define CONFIG_CFB_CONSOLE -#define CONFIG_VIDEO_LOGO -#define CONFIG_VGA_AS_SINGLE_DEVICE - -#define VIDEO_KBD_INIT_FCT 0 -#define VIDEO_TSTC_FCT serial_tstc -#define VIDEO_GETC_FCT serial_getc - -#define LCD_VIDEO_ADDR 0x33d00000 -#endif - -#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410_nand.h b/packages/uboot/files/qt2410_nand.h deleted file mode 100644 index 627f365f86..0000000000 --- a/packages/uboot/files/qt2410_nand.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.de> - * Gary Jennejohn <gj@denx.de> - * David Mueller <d.mueller@elsoft.ch> - * - * Configuation settings for the SAMSUNG SMDK2410 board. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -#if 0 -/* If we want to start u-boot from usb bootloader in NOR flash */ -#define CONFIG_SKIP_RELOCATE_UBOOT 1 -#define CONFIG_SKIP_LOWLEVEL_INIT 1 -#else -/* If we want to start u-boot directly from within NAND flash */ -#define CONFIG_S3C2410_NAND_BOOT 1 -#endif - -/* - * High Level Configuration Options - * (easy to change) - */ -#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ - -/* input clock of PLL */ -#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ - - -#define USE_920T_MMU 1 -#define CONFIG_USE_IRQ 1 -//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ - -/* - * Size of malloc() pool - */ -#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ - -/* - * Hardware drivers - */ -#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ -#define CS8900_BASE 0x19000300 -#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ - -/* - * select serial console configuration - */ -#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ -#define CONFIG_HWFLOW 1 - -/************************************************************ - * RTC - ************************************************************/ -#define CONFIG_RTC_S3C24X0 1 - -/* allow to overwrite serial and ethaddr */ -#define CONFIG_ENV_OVERWRITE - -#define CONFIG_BAUDRATE 115200 - -/*********************************************************** - * Command definition - ***********************************************************/ -#define CONFIG_COMMANDS \ - (CONFIG_CMD_DFL | \ - CFG_CMD_BSP | \ - CFG_CMD_CACHE | \ - CFG_CMD_DATE | \ - CFG_CMD_DHCP | \ - CFG_CMD_DIAG | \ - CFG_CMD_ELF | \ - CFG_CMD_EXT2 | \ - CFG_CMD_FAT | \ - CFG_CMD_HWFLOW | \ - /* CFG_CMD_IDE | */ \ - /* CFG_CMD_IRQ | */ \ - CFG_CMD_JFFS2 | \ - CFG_CMD_MMC | \ - CFG_CMD_NAND | \ - CFG_CMD_PING | \ - CFG_CMD_PORTIO | \ - CFG_CMD_REGINFO | \ - CFG_CMD_SAVES | \ - CFG_CMD_USB) - -/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -#include <cmd_confdefs.h> - -#define CONFIG_BOOTDELAY 3 -#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" -/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ -#define CONFIG_NETMASK 255.255.255.0 -#define CONFIG_IPADDR 10.0.0.110 -#define CONFIG_SERVERIP 10.0.0.1 -/*#define CONFIG_BOOTFILE "elinos-lart" */ -#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" - -#define CONFIG_DOS_PARTITION 1 - -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -/* what's this ? it's not used anywhere */ -#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -#endif - -/* - * Miscellaneous configurable options - */ -#define CFG_LONGHELP /* undef to save memory */ -#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ -#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -#define CFG_MAXARGS 16 /* max number of command args */ -#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ - -#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ - -#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ - -#define CFG_LOAD_ADDR 0x33000000 /* default load address */ - -/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -/* it to wrap 100 times (total 1562500) to get 1 sec. */ -#define CFG_HZ 1562500 - -/* valid baudrates */ -#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } - -/*----------------------------------------------------------------------- - * Stack sizes - * - * The stack sizes are set up in start.S using the settings below - */ -#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -#ifdef CONFIG_USE_IRQ -#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -#endif - -/* IDE/ATA config */ - -#if 0 -#define CFG_IDE_MAXBUS 1 -#define CFG_IDE_MAXDEVICE 2 -#define CFG_IDE_PREINIT 0 - -#define CFG_ATA_BASE_ADDR -#endif - -#define CONFIG_USB_OHCI 1 - -/*----------------------------------------------------------------------- - * Physical Memory Map - */ -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ - -#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ - -#define CFG_FLASH_BASE PHYS_FLASH_1 - -/*----------------------------------------------------------------------- - * FLASH and environment organization - */ - -#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ -#if 0 -#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ -#endif - -#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -#ifdef CONFIG_AMD_LV800 -#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ -#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ -#endif -#ifdef CONFIG_AMD_LV400 -#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ -#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ -#endif - -/* timeout values are in ticks */ -#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ -#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ - -#define CFG_ENV_IS_IN_NAND 1 -#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ - -#define NAND_MAX_CHIPS 1 -#define CFG_NAND_BASE 0x4e000000 -#define CFG_MAX_NAND_DEVICE 1 - -#define CONFIG_MMC 1 -#define CFG_MMC_BASE 0xff000000 - -#define CONFIG_EXT2 1 - -/* FAT driver in u-boot is broken currently */ -#define CONFIG_FAT 1 -#define CONFIG_SUPPORT_VFAT - -/* ATAG configuration */ -#define CONFIG_INITRD_TAG 1 -#define CONFIG_SETUP_MEMORY_TAGS 1 -#define CONFIG_CMDLINE_TAG 1 -#if 0 -#define CONFIG_SERIAL_TAG 1 -#define CONFIG_REVISION_TAG 1 -#endif - - -#if 0 -#define CONFIG_VIDEO -#define CONFIG_VIDEO_S3C2410 -#define CONFIG_CFB_CONSOLE -#define CONFIG_VIDEO_LOGO -#define CONFIG_VGA_AS_SINGLE_DEVICE - -#define VIDEO_KBD_INIT_FCT 0 -#define VIDEO_TSTC_FCT serial_tstc -#define VIDEO_GETC_FCT serial_getc - -#define LCD_VIDEO_ADDR 0x33d00000 -#endif - -#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/qt2410_ram.h b/packages/uboot/files/qt2410_ram.h deleted file mode 100644 index 62cc88eaf0..0000000000 --- a/packages/uboot/files/qt2410_ram.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * (C) Copyright 2002 - * Sysgo Real-Time Solutions, GmbH <www.elinos.com> - * Marius Groeger <mgroeger@sysgo.de> - * Gary Jennejohn <gj@denx.de> - * David Mueller <d.mueller@elsoft.ch> - * - * Configuation settings for the SAMSUNG SMDK2410 board. - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA - */ - -#ifndef __CONFIG_H -#define __CONFIG_H - -#if 1 -/* If we want to start u-boot from usb bootloader in NOR flash */ -#define CONFIG_SKIP_RELOCATE_UBOOT 1 -#define CONFIG_SKIP_LOWLEVEL_INIT 1 -#else -/* If we want to start u-boot directly from within NAND flash */ -#define CONFIG_S3C2410_NAND_BOOT 1 -#endif - -/* - * High Level Configuration Options - * (easy to change) - */ -#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ - -/* input clock of PLL */ -#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ - - -#define USE_920T_MMU 1 -#define CONFIG_USE_IRQ 1 -//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ - -/* - * Size of malloc() pool - */ -#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ - -/* - * Hardware drivers - */ -#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ -#define CS8900_BASE 0x19000300 -#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ - -/* - * select serial console configuration - */ -#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ -#define CONFIG_HWFLOW 1 - -/************************************************************ - * RTC - ************************************************************/ -#define CONFIG_RTC_S3C24X0 1 - -/* allow to overwrite serial and ethaddr */ -#define CONFIG_ENV_OVERWRITE - -#define CONFIG_BAUDRATE 115200 - -/*********************************************************** - * Command definition - ***********************************************************/ -#define CONFIG_COMMANDS \ - (CONFIG_CMD_DFL | \ - CFG_CMD_BSP | \ - CFG_CMD_CACHE | \ - CFG_CMD_DATE | \ - CFG_CMD_DHCP | \ - CFG_CMD_DIAG | \ - CFG_CMD_ELF | \ - CFG_CMD_EXT2 | \ - CFG_CMD_FAT | \ - CFG_CMD_HWFLOW | \ - /* CFG_CMD_IDE | */ \ - /* CFG_CMD_IRQ | */ \ - CFG_CMD_JFFS2 | \ - CFG_CMD_MMC | \ - CFG_CMD_NAND | \ - CFG_CMD_PING | \ - CFG_CMD_PORTIO | \ - CFG_CMD_REGINFO | \ - CFG_CMD_SAVES | \ - CFG_CMD_USB) - -/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -#include <cmd_confdefs.h> - -#define CONFIG_BOOTDELAY 3 -#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" -/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ -#define CONFIG_NETMASK 255.255.255.0 -#define CONFIG_IPADDR 10.0.0.110 -#define CONFIG_SERVERIP 10.0.0.1 -/*#define CONFIG_BOOTFILE "elinos-lart" */ -#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" - -#define CONFIG_DOS_PARTITION 1 - -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -/* what's this ? it's not used anywhere */ -#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -#endif - -/* - * Miscellaneous configurable options - */ -#define CFG_LONGHELP /* undef to save memory */ -#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ -#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -#define CFG_MAXARGS 16 /* max number of command args */ -#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ - -#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ - -#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ - -#define CFG_LOAD_ADDR 0x33000000 /* default load address */ - -/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -/* it to wrap 100 times (total 1562500) to get 1 sec. */ -#define CFG_HZ 1562500 - -/* valid baudrates */ -#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } - -/*----------------------------------------------------------------------- - * Stack sizes - * - * The stack sizes are set up in start.S using the settings below - */ -#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -#ifdef CONFIG_USE_IRQ -#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -#endif - -/* IDE/ATA config */ - -#if 0 -#define CFG_IDE_MAXBUS 1 -#define CFG_IDE_MAXDEVICE 2 -#define CFG_IDE_PREINIT 0 - -#define CFG_ATA_BASE_ADDR -#endif - -#define CONFIG_USB_OHCI 1 - -/*----------------------------------------------------------------------- - * Physical Memory Map - */ -#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ - -#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ - -#define CFG_FLASH_BASE PHYS_FLASH_1 - -/*----------------------------------------------------------------------- - * FLASH and environment organization - */ - -#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ -#if 0 -#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ -#endif - -#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -#ifdef CONFIG_AMD_LV800 -#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ -#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ -#endif -#ifdef CONFIG_AMD_LV400 -#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ -#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ -#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ -#endif - -/* timeout values are in ticks */ -#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ -#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ - -#define CFG_ENV_IS_IN_NAND 1 -#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ - -#define NAND_MAX_CHIPS 1 -#define CFG_NAND_BASE 0x4e000000 -#define CFG_MAX_NAND_DEVICE 1 - -#define CONFIG_MMC 1 -#define CFG_MMC_BASE 0xff000000 - -#define CONFIG_EXT2 1 - -/* FAT driver in u-boot is broken currently */ -#define CONFIG_FAT 1 -#define CONFIG_SUPPORT_VFAT - -/* ATAG configuration */ -#define CONFIG_INITRD_TAG 1 -#define CONFIG_SETUP_MEMORY_TAGS 1 -#define CONFIG_CMDLINE_TAG 1 -#if 0 -#define CONFIG_SERIAL_TAG 1 -#define CONFIG_REVISION_TAG 1 -#endif - - -#if 0 -#define CONFIG_VIDEO -#define CONFIG_VIDEO_S3C2410 -#define CONFIG_CFB_CONSOLE -#define CONFIG_VIDEO_LOGO -#define CONFIG_VGA_AS_SINGLE_DEVICE - -#define VIDEO_KBD_INIT_FCT 0 -#define VIDEO_TSTC_FCT serial_tstc -#define VIDEO_GETC_FCT serial_getc - -#define LCD_VIDEO_ADDR 0x33d00000 -#endif - -#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/u-boot-20060807-qt2410.patch b/packages/uboot/files/u-boot-20060807-qt2410.patch deleted file mode 100644 index ed9f987c81..0000000000 --- a/packages/uboot/files/u-boot-20060807-qt2410.patch +++ /dev/null @@ -1,8435 +0,0 @@ -diff --git a/Makefile b/Makefile -index 128ae59..5d7b5bb 100644 ---- a/Makefile -+++ b/Makefile -@@ -1638,6 +1638,9 @@ omap730p2_cs3boot_config : unconfig - sbc2410x_config: unconfig - @./mkconfig $(@:_config=) arm arm920t sbc2410x NULL s3c24x0 - -+qt2410_config : unconfig -+ @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0 -+ - scb9328_config : unconfig - @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx - -diff --git a/board/qt2410/Makefile b/board/qt2410/Makefile -new file mode 100644 -index 0000000..407b256 ---- /dev/null -+++ b/board/qt2410/Makefile -@@ -0,0 +1,47 @@ -+# -+# (C) Copyright 2000, 2001, 2002 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+# MA 02111-1307 USA -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = lib$(BOARD).a -+ -+OBJS := qt2410.o flash.o -+SOBJS := lowlevel_init.o -+ -+$(LIB): $(OBJS) $(SOBJS) -+ $(AR) crv $@ $(OBJS) $(SOBJS) -+ -+clean: -+ rm -f $(SOBJS) $(OBJS) -+ -+distclean: clean -+ rm -f $(LIB) core *.bak .depend -+ -+######################################################################### -+ -+.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) -+ $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ -+ -+-include .depend -+ -+######################################################################### -diff --git a/board/qt2410/config.mk b/board/qt2410/config.mk -new file mode 100644 -index 0000000..1af85da ---- /dev/null -+++ b/board/qt2410/config.mk -@@ -0,0 +1,25 @@ -+# -+# (C) Copyright 2002 -+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+# -+# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu -+# -+# see http://www.samsung.com/ for more information on SAMSUNG -+# -+ -+# -+# SMDK2410 has 1 bank of 64 MB DRAM -+# -+# 3000'0000 to 3400'0000 -+# -+# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 -+# optionally with a ramdisk at 3080'0000 -+# -+# we load ourself to 33F8'0000 -+# -+# download area is 3300'0000 -+# -+ -+ -+TEXT_BASE = 0x33F80000 -diff --git a/board/qt2410/flash.c b/board/qt2410/flash.c -new file mode 100644 -index 0000000..993946b ---- /dev/null -+++ b/board/qt2410/flash.c -@@ -0,0 +1,433 @@ -+/* -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Alex Zuepke <azu@sysgo.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+ulong myflush (void); -+ -+ -+#define FLASH_BANK_SIZE PHYS_FLASH_SIZE -+#define MAIN_SECT_SIZE 0x10000 /* 64 KB */ -+ -+flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; -+ -+ -+#define CMD_READ_ARRAY 0x000000F0 -+#define CMD_UNLOCK1 0x000000AA -+#define CMD_UNLOCK2 0x00000055 -+#define CMD_ERASE_SETUP 0x00000080 -+#define CMD_ERASE_CONFIRM 0x00000030 -+#define CMD_PROGRAM 0x000000A0 -+#define CMD_UNLOCK_BYPASS 0x00000020 -+ -+#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1))) -+#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1))) -+ -+#define BIT_ERASE_DONE 0x00000080 -+#define BIT_RDY_MASK 0x00000080 -+#define BIT_PROGRAM_ERROR 0x00000020 -+#define BIT_TIMEOUT 0x80000000 /* our flag */ -+ -+#define READY 1 -+#define ERR 2 -+#define TMO 4 -+ -+/*----------------------------------------------------------------------- -+ */ -+ -+ulong flash_init (void) -+{ -+ int i, j; -+ ulong size = 0; -+ -+ for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) { -+ ulong flashbase = 0; -+ -+ flash_info[i].flash_id = -+#if defined(CONFIG_AMD_LV400) -+ (AMD_MANUFACT & FLASH_VENDMASK) | -+ (AMD_ID_LV400B & FLASH_TYPEMASK); -+#elif defined(CONFIG_AMD_LV800) -+ (AMD_MANUFACT & FLASH_VENDMASK) | -+ (AMD_ID_LV800B & FLASH_TYPEMASK); -+#else -+#error "Unknown flash configured" -+#endif -+ flash_info[i].size = FLASH_BANK_SIZE; -+ flash_info[i].sector_count = CFG_MAX_FLASH_SECT; -+ memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT); -+ if (i == 0) -+ flashbase = PHYS_FLASH_1; -+ else -+ panic ("configured too many flash banks!\n"); -+ for (j = 0; j < flash_info[i].sector_count; j++) { -+ if (j <= 3) { -+ /* 1st one is 16 KB */ -+ if (j == 0) { -+ flash_info[i].start[j] = -+ flashbase + 0; -+ } -+ -+ /* 2nd and 3rd are both 8 KB */ -+ if ((j == 1) || (j == 2)) { -+ flash_info[i].start[j] = -+ flashbase + 0x4000 + (j - -+ 1) * -+ 0x2000; -+ } -+ -+ /* 4th 32 KB */ -+ if (j == 3) { -+ flash_info[i].start[j] = -+ flashbase + 0x8000; -+ } -+ } else { -+ flash_info[i].start[j] = -+ flashbase + (j - 3) * MAIN_SECT_SIZE; -+ } -+ } -+ size += flash_info[i].size; -+ } -+ -+ flash_protect (FLAG_PROTECT_SET, -+ CFG_FLASH_BASE, -+ CFG_FLASH_BASE + monitor_flash_len - 1, -+ &flash_info[0]); -+ -+ flash_protect (FLAG_PROTECT_SET, -+ CFG_ENV_ADDR, -+ CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]); -+ -+ return size; -+} -+ -+/*----------------------------------------------------------------------- -+ */ -+void flash_print_info (flash_info_t * info) -+{ -+ int i; -+ -+ switch (info->flash_id & FLASH_VENDMASK) { -+ case (AMD_MANUFACT & FLASH_VENDMASK): -+ printf ("AMD: "); -+ break; -+ default: -+ printf ("Unknown Vendor "); -+ break; -+ } -+ -+ switch (info->flash_id & FLASH_TYPEMASK) { -+ case (AMD_ID_LV400B & FLASH_TYPEMASK): -+ printf ("1x Amd29LV400BB (4Mbit)\n"); -+ break; -+ case (AMD_ID_LV800B & FLASH_TYPEMASK): -+ printf ("1x Amd29LV800BB (8Mbit)\n"); -+ break; -+ default: -+ printf ("Unknown Chip Type\n"); -+ goto Done; -+ break; -+ } -+ -+ printf (" Size: %ld MB in %d Sectors\n", -+ info->size >> 20, info->sector_count); -+ -+ printf (" Sector Start Addresses:"); -+ for (i = 0; i < info->sector_count; i++) { -+ if ((i % 5) == 0) { -+ printf ("\n "); -+ } -+ printf (" %08lX%s", info->start[i], -+ info->protect[i] ? " (RO)" : " "); -+ } -+ printf ("\n"); -+ -+ Done:; -+} -+ -+/*----------------------------------------------------------------------- -+ */ -+ -+int flash_erase (flash_info_t * info, int s_first, int s_last) -+{ -+ ushort result; -+ int iflag, cflag, prot, sect; -+ int rc = ERR_OK; -+ int chip; -+ -+ /* first look for protection bits */ -+ -+ if (info->flash_id == FLASH_UNKNOWN) -+ return ERR_UNKNOWN_FLASH_TYPE; -+ -+ if ((s_first < 0) || (s_first > s_last)) { -+ return ERR_INVAL; -+ } -+ -+ if ((info->flash_id & FLASH_VENDMASK) != -+ (AMD_MANUFACT & FLASH_VENDMASK)) { -+ return ERR_UNKNOWN_FLASH_VENDOR; -+ } -+ -+ prot = 0; -+ for (sect = s_first; sect <= s_last; ++sect) { -+ if (info->protect[sect]) { -+ prot++; -+ } -+ } -+ if (prot) -+ return ERR_PROTECTED; -+ -+ /* -+ * Disable interrupts which might cause a timeout -+ * here. Remember that our exception vectors are -+ * at address 0 in the flash, and we don't want a -+ * (ticker) exception to happen while the flash -+ * chip is in programming mode. -+ */ -+ cflag = icache_status (); -+ icache_disable (); -+ iflag = disable_interrupts (); -+ -+ /* Start erase on unprotected sectors */ -+ for (sect = s_first; sect <= s_last && !ctrlc (); sect++) { -+ printf ("Erasing sector %2d ... ", sect); -+ -+ /* arm simple, non interrupt dependent timer */ -+ reset_timer_masked (); -+ -+ if (info->protect[sect] == 0) { /* not protected */ -+ vu_short *addr = (vu_short *) (info->start[sect]); -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ MEM_FLASH_ADDR1 = CMD_ERASE_SETUP; -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ *addr = CMD_ERASE_CONFIRM; -+ -+ /* wait until flash is ready */ -+ chip = 0; -+ -+ do { -+ result = *addr; -+ -+ /* check timeout */ -+ if (get_timer_masked () > -+ CFG_FLASH_ERASE_TOUT) { -+ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; -+ chip = TMO; -+ break; -+ } -+ -+ if (!chip -+ && (result & 0xFFFF) & BIT_ERASE_DONE) -+ chip = READY; -+ -+ if (!chip -+ && (result & 0xFFFF) & BIT_PROGRAM_ERROR) -+ chip = ERR; -+ -+ } while (!chip); -+ -+ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; -+ -+ if (chip == ERR) { -+ rc = ERR_PROG_ERROR; -+ goto outahere; -+ } -+ if (chip == TMO) { -+ rc = ERR_TIMOUT; -+ goto outahere; -+ } -+ -+ printf ("ok.\n"); -+ } else { /* it was protected */ -+ -+ printf ("protected!\n"); -+ } -+ } -+ -+ if (ctrlc ()) -+ printf ("User Interrupt!\n"); -+ -+ outahere: -+ /* allow flash to settle - wait 10 ms */ -+ udelay_masked (10000); -+ -+ if (iflag) -+ enable_interrupts (); -+ -+ if (cflag) -+ icache_enable (); -+ -+ return rc; -+} -+ -+/*----------------------------------------------------------------------- -+ * Copy memory to flash -+ */ -+ -+volatile static int write_hword (flash_info_t * info, ulong dest, ushort data) -+{ -+ vu_short *addr = (vu_short *) dest; -+ ushort result; -+ int rc = ERR_OK; -+ int cflag, iflag; -+ int chip; -+ -+ /* -+ * Check if Flash is (sufficiently) erased -+ */ -+ result = *addr; -+ if ((result & data) != data) -+ return ERR_NOT_ERASED; -+ -+ -+ /* -+ * Disable interrupts which might cause a timeout -+ * here. Remember that our exception vectors are -+ * at address 0 in the flash, and we don't want a -+ * (ticker) exception to happen while the flash -+ * chip is in programming mode. -+ */ -+ cflag = icache_status (); -+ icache_disable (); -+ iflag = disable_interrupts (); -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS; -+ *addr = CMD_PROGRAM; -+ *addr = data; -+ -+ /* arm simple, non interrupt dependent timer */ -+ reset_timer_masked (); -+ -+ /* wait until flash is ready */ -+ chip = 0; -+ do { -+ result = *addr; -+ -+ /* check timeout */ -+ if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) { -+ chip = ERR | TMO; -+ break; -+ } -+ if (!chip && ((result & 0x80) == (data & 0x80))) -+ chip = READY; -+ -+ if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) { -+ result = *addr; -+ -+ if ((result & 0x80) == (data & 0x80)) -+ chip = READY; -+ else -+ chip = ERR; -+ } -+ -+ } while (!chip); -+ -+ *addr = CMD_READ_ARRAY; -+ -+ if (chip == ERR || *addr != data) -+ rc = ERR_PROG_ERROR; -+ -+ if (iflag) -+ enable_interrupts (); -+ -+ if (cflag) -+ icache_enable (); -+ -+ return rc; -+} -+ -+/*----------------------------------------------------------------------- -+ * Copy memory to flash. -+ */ -+ -+int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) -+{ -+ ulong cp, wp; -+ int l; -+ int i, rc; -+ ushort data; -+ -+ wp = (addr & ~1); /* get lower word aligned address */ -+ -+ /* -+ * handle unaligned start bytes -+ */ -+ if ((l = addr - wp) != 0) { -+ data = 0; -+ for (i = 0, cp = wp; i < l; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ for (; i < 2 && cnt > 0; ++i) { -+ data = (data >> 8) | (*src++ << 8); -+ --cnt; -+ ++cp; -+ } -+ for (; cnt == 0 && i < 2; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ -+ if ((rc = write_hword (info, wp, data)) != 0) { -+ return (rc); -+ } -+ wp += 2; -+ } -+ -+ /* -+ * handle word aligned part -+ */ -+ while (cnt >= 2) { -+ data = *((vu_short *) src); -+ if ((rc = write_hword (info, wp, data)) != 0) { -+ return (rc); -+ } -+ src += 2; -+ wp += 2; -+ cnt -= 2; -+ } -+ -+ if (cnt == 0) { -+ return ERR_OK; -+ } -+ -+ /* -+ * handle unaligned tail bytes -+ */ -+ data = 0; -+ for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) { -+ data = (data >> 8) | (*src++ << 8); -+ --cnt; -+ } -+ for (; i < 2; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ -+ return write_hword (info, wp, data); -+} -diff --git a/board/qt2410/lowlevel_init.S b/board/qt2410/lowlevel_init.S -new file mode 100644 -index 0000000..310f2a0 ---- /dev/null -+++ b/board/qt2410/lowlevel_init.S -@@ -0,0 +1,167 @@ -+/* -+ * Memory Setup stuff - taken from blob memsetup.S -+ * -+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and -+ * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) -+ * -+ * Modified for the Samsung SMDK2410 by -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+ -+#include <config.h> -+#include <version.h> -+ -+ -+/* some parameters for the board */ -+ -+/* -+ * -+ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S -+ * -+ * Copyright (C) 2002 Samsung Electronics SW.LEE <hitchcar@sec.samsung.com> -+ * -+ */ -+ -+#define BWSCON 0x48000000 -+ -+/* BWSCON */ -+#define DW8 (0x0) -+#define DW16 (0x1) -+#define DW32 (0x2) -+#define WAIT (0x1<<2) -+#define UBLB (0x1<<3) -+ -+#define B1_BWSCON (DW32) -+#define B2_BWSCON (DW16) -+#define B3_BWSCON (DW16 + WAIT + UBLB) -+#define B4_BWSCON (DW16) -+#define B5_BWSCON (DW16) -+#define B6_BWSCON (DW32) -+#define B7_BWSCON (DW32) -+ -+/* BANK0CON */ -+#define B0_Tacs 0x0 /* 0clk */ -+#define B0_Tcos 0x0 /* 0clk */ -+#define B0_Tacc 0x7 /* 14clk */ -+#define B0_Tcoh 0x0 /* 0clk */ -+#define B0_Tah 0x0 /* 0clk */ -+#define B0_Tacp 0x0 -+#define B0_PMC 0x0 /* normal */ -+ -+/* BANK1CON */ -+#define B1_Tacs 0x0 /* 0clk */ -+#define B1_Tcos 0x0 /* 0clk */ -+#define B1_Tacc 0x7 /* 14clk */ -+#define B1_Tcoh 0x0 /* 0clk */ -+#define B1_Tah 0x0 /* 0clk */ -+#define B1_Tacp 0x0 -+#define B1_PMC 0x0 -+ -+#define B2_Tacs 0x0 -+#define B2_Tcos 0x0 -+#define B2_Tacc 0x7 -+#define B2_Tcoh 0x0 -+#define B2_Tah 0x0 -+#define B2_Tacp 0x0 -+#define B2_PMC 0x0 -+ -+#define B3_Tacs 0x0 /* 0clk */ -+#define B3_Tcos 0x3 /* 4clk */ -+#define B3_Tacc 0x7 /* 14clk */ -+#define B3_Tcoh 0x1 /* 1clk */ -+#define B3_Tah 0x0 /* 0clk */ -+#define B3_Tacp 0x3 /* 6clk */ -+#define B3_PMC 0x0 /* normal */ -+ -+#define B4_Tacs 0x0 /* 0clk */ -+#define B4_Tcos 0x0 /* 0clk */ -+#define B4_Tacc 0x7 /* 14clk */ -+#define B4_Tcoh 0x0 /* 0clk */ -+#define B4_Tah 0x0 /* 0clk */ -+#define B4_Tacp 0x0 -+#define B4_PMC 0x0 /* normal */ -+ -+#define B5_Tacs 0x0 /* 0clk */ -+#define B5_Tcos 0x0 /* 0clk */ -+#define B5_Tacc 0x7 /* 14clk */ -+#define B5_Tcoh 0x0 /* 0clk */ -+#define B5_Tah 0x0 /* 0clk */ -+#define B5_Tacp 0x0 -+#define B5_PMC 0x0 /* normal */ -+ -+#define B6_MT 0x3 /* SDRAM */ -+#define B6_Trcd 0x1 -+#define B6_SCAN 0x1 /* 9bit */ -+ -+#define B7_MT 0x3 /* SDRAM */ -+#define B7_Trcd 0x1 /* 3clk */ -+#define B7_SCAN 0x1 /* 9bit */ -+ -+/* REFRESH parameter */ -+#define REFEN 0x1 /* Refresh enable */ -+#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */ -+#define Trp 0x0 /* 2clk */ -+#define Trc 0x3 /* 7clk */ -+#define Tchr 0x2 /* 3clk */ -+#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ -+/**************************************/ -+ -+_TEXT_BASE: -+ .word TEXT_BASE -+ -+.globl lowlevel_init -+lowlevel_init: -+ /* memory control configuration */ -+ /* make r0 relative the current location so that it */ -+ /* reads SMRDATA out of FLASH rather than memory ! */ -+ ldr r0, =SMRDATA -+ ldr r1, _TEXT_BASE -+ sub r0, r0, r1 -+ ldr r1, =BWSCON /* Bus Width Status Controller */ -+ add r2, r0, #13*4 -+0: -+ ldr r3, [r0], #4 -+ str r3, [r1], #4 -+ cmp r2, r0 -+ bne 0b -+ -+ /* everything is fine now */ -+ mov pc, lr -+ -+ .ltorg -+/* the literal pools origin */ -+ -+SMRDATA: -+ .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) -+ .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) -+ .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) -+ .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) -+ .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) -+ .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) -+ .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) -+ .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) -+ .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) -+ .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) -+ .word 0x32 -+ .word 0x30 -+ .word 0x30 -diff --git a/board/qt2410/qt2410.c b/board/qt2410/qt2410.c -new file mode 100644 -index 0000000..133b748 ---- /dev/null -+++ b/board/qt2410/qt2410.c -@@ -0,0 +1,130 @@ -+/* -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+#include <s3c2410.h> -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#define FCLK_SPEED 1 -+ -+#if FCLK_SPEED==0 /* Fout = 203MHz, Fin = 12MHz for Audio */ -+#define M_MDIV 0xC3 -+#define M_PDIV 0x4 -+#define M_SDIV 0x1 -+#elif FCLK_SPEED==1 /* Fout = 202.8MHz */ -+#if 0 -+#define M_MDIV 0xA1 -+#define M_PDIV 0x3 -+#define M_SDIV 0x1 -+#else -+#define M_MDIV 0x5c -+#define M_PDIV 0x4 -+#define M_SDIV 0x0 -+#endif -+#endif -+ -+#define USB_CLOCK 1 -+ -+#if USB_CLOCK==0 -+#define U_M_MDIV 0xA1 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x1 -+#elif USB_CLOCK==1 -+#define U_M_MDIV 0x48 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x2 -+#endif -+ -+static inline void delay (unsigned long loops) -+{ -+ __asm__ volatile ("1:\n" -+ "subs %0, %1, #1\n" -+ "bne 1b":"=r" (loops):"0" (loops)); -+} -+ -+/* -+ * Miscellaneous platform dependent initialisations -+ */ -+ -+int board_init (void) -+{ -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); -+ -+ /* to reduce PLL lock time, adjust the LOCKTIME register */ -+ clk_power->LOCKTIME = 0xFFFFFF; -+ -+ /* configure MPLL */ -+ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (4000); -+ -+ /* configure UPLL */ -+ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (8000); -+ -+ /* set up the I/O ports */ -+ gpio->GPACON = 0x007FFFFF; -+ gpio->GPBCON = 0x00044555; -+ gpio->GPBUP = 0x000007FF; -+ gpio->GPCCON = 0xAAAAAAAA; -+ gpio->GPCUP = 0x0000FFFF; -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ gpio->GPECON = 0xAAAAAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ gpio->GPFCON = 0x000055AA; -+ gpio->GPFUP = 0x000000FF; -+ gpio->GPGCON = 0xFF95FFBA; -+ //gpio->GPGUP = 0x0000FFFF; -+ gpio->GPGUP = 0x0000AFEF; -+ gpio->GPHCON = 0x0028FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+ /* arch number of SMDK2410-Board */ -+ gd->bd->bi_arch_number = MACH_TYPE_QT2410; -+ -+ /* adress of boot parameters */ -+ gd->bd->bi_boot_params = 0x30000100; -+ -+ icache_enable(); -+ dcache_enable(); -+ -+ return 0; -+} -+ -+int dram_init (void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return 0; -+} -diff --git a/board/qt2410/u-boot.lds b/board/qt2410/u-boot.lds -new file mode 100644 -index 0000000..f4fbf96 ---- /dev/null -+++ b/board/qt2410/u-boot.lds -@@ -0,0 +1,57 @@ -+/* -+ * (C) Copyright 2002 -+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -+/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ -+OUTPUT_ARCH(arm) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x00000000; -+ -+ . = ALIGN(4); -+ .text : -+ { -+ cpu/arm920t/start.o (.text) -+ *(.text) -+ } -+ -+ . = ALIGN(4); -+ .rodata : { *(.rodata) } -+ -+ . = ALIGN(4); -+ .data : { *(.data) } -+ -+ . = ALIGN(4); -+ .got : { *(.got) } -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ . = ALIGN(4); -+ __bss_start = .; -+ .bss : { *(.bss) } -+ _end = .; -+} -diff --git a/cpu/arm920t/s3c24x0/Makefile b/cpu/arm920t/s3c24x0/Makefile -index af9e4ef..10f33f2 100644 ---- a/cpu/arm920t/s3c24x0/Makefile -+++ b/cpu/arm920t/s3c24x0/Makefile -@@ -26,7 +26,7 @@ include $(TOPDIR)/config.mk - LIB = lib$(SOC).a - - OBJS = i2c.o interrupts.o serial.o speed.o \ -- usb_ohci.o -+ usb_ohci.o mmc.o nand_read.o nand.o - - all: .depend $(LIB) - -diff --git a/cpu/arm920t/s3c24x0/mmc.c b/cpu/arm920t/s3c24x0/mmc.c -new file mode 100644 -index 0000000..b7057e2 ---- /dev/null -+++ b/cpu/arm920t/s3c24x0/mmc.c -@@ -0,0 +1,568 @@ -+/* -+ * u-boot S3C2410 MMC/SD card driver -+ * (C) Copyright 2006 by Harald Welte <laforge@gnumonks.org> -+ * -+ * based on u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c -+ * (C) 2005-2005 Thomas Kleffel -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <config.h> -+#include <common.h> -+#include <mmc.h> -+#include <asm/errno.h> -+#include <asm/io.h> -+#include <s3c2410.h> -+#include <part.h> -+ -+#ifdef CONFIG_MMC -+ -+#define CONFIG_MMC_WIDE -+ -+//#define MMC_DEBUG -+ -+#ifdef MMC_DEBUG -+#ifdef debug -+#undef debug -+#endif -+#define debug printf -+#endif -+ -+static S3C2410_SDI *sdi; -+ -+extern int -+fat_register_device(block_dev_desc_t *dev_desc, int part_no); -+ -+static block_dev_desc_t mmc_dev; -+ -+block_dev_desc_t * mmc_get_dev(int dev) -+{ -+ return ((block_dev_desc_t *)&mmc_dev); -+} -+ -+/* -+ * FIXME needs to read cid and csd info to determine block size -+ * and other parameters -+ */ -+static uchar mmc_buf[MMC_BLOCK_SIZE]; -+static mmc_csd_t mmc_csd; -+static int mmc_ready = 0; -+static int wide = 0; -+ -+ -+#define CMD_F_RESP 0x01 -+#define CMD_F_RESP_LONG 0x02 -+ -+static u_int32_t * -+/****************************************************/ -+mmc_cmd(ushort cmd, ulong arg, ushort flags) -+/****************************************************/ -+{ -+ static u_int32_t resp[5]; -+ ulong status; -+ int i; -+ -+ u_int32_t ccon, csta; -+ u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT; -+ -+ memset(resp, 0, sizeof(resp)); -+ -+ debug("mmc_cmd CMD%d arg=0x%08x flags=%x\n", cmd, arg, flags); -+ -+ sdi->SDICSTA = 0xffffffff; -+ sdi->SDIDSTA = 0xffffffff; -+ sdi->SDIFSTA = 0xffffffff; -+ -+ sdi->SDICARG = arg; -+ -+ ccon = cmd & S3C2410_SDICMDCON_INDEX; -+ ccon |= S3C2410_SDICMDCON_SENDERHOST|S3C2410_SDICMDCON_CMDSTART; -+ -+ if (flags & CMD_F_RESP) { -+ ccon |= S3C2410_SDICMDCON_WAITRSP; -+ csta_rdy_bit = S3C2410_SDICMDSTAT_RSPFIN; /* 1 << 9 */ -+ } -+ -+ if (flags & CMD_F_RESP_LONG) -+ ccon |= S3C2410_SDICMDCON_LONGRSP; -+ -+ sdi->SDICCON = ccon; -+ -+ while (1) { -+ csta = sdi->SDICSTA; -+ if (csta & csta_rdy_bit) -+ break; -+ if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) { -+ printf("===============> MMC CMD Timeout\n"); -+ sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT; -+ break; -+ } -+ } -+ -+ debug("final MMC CMD status 0x%x\n", csta); -+ -+ sdi->SDICSTA |= csta_rdy_bit; -+ -+ if (flags & CMD_F_RESP) { -+ resp[0] = sdi->SDIRSP0; -+ resp[1] = sdi->SDIRSP1; -+ resp[2] = sdi->SDIRSP2; -+ resp[3] = sdi->SDIRSP3; -+ } -+ -+#if 0 -+ for (i=0; i<4; i ++) { -+ debug("MMC resp[%d] = 0x%08x\n", i, resp[i]); -+ } -+#endif -+ -+ return resp; -+} -+ -+#define FIFO_FILL(host) ((host->SDIFSTA & S3C2410_SDIFSTA_COUNTMASK) >> 2) -+ -+static int -+/****************************************************/ -+mmc_block_read(uchar *dst, ulong src, ulong len) -+/****************************************************/ -+{ -+ u_int32_t dcon, fifo; -+ u_int32_t *dst_u32 = (u_int32_t *)dst; -+ u_int32_t *resp; -+ -+ if (len == 0) { -+ return 0; -+ } -+ -+ debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len); -+ -+ /* set block len */ -+ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP); -+ sdi->SDIBSIZE = len; -+ -+ //sdi->SDIPRE = 0xff; -+ -+ /* setup data */ -+ dcon = (len >> 9) & S3C2410_SDIDCON_BLKNUM_MASK; -+ dcon |= S3C2410_SDIDCON_BLOCKMODE; -+ dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART; -+ if (wide) -+ dcon |= S3C2410_SDIDCON_WIDEBUS; -+ sdi->SDIDCON = dcon; -+ -+ /* send read command */ -+ resp = mmc_cmd(MMC_CMD_READ_BLOCK, src, CMD_F_RESP); -+ -+ while (len > 0) { -+ u_int32_t sdidsta = sdi->SDIDSTA; -+ fifo = FIFO_FILL(sdi); -+ if (sdidsta & (S3C2410_SDIDSTA_FIFOFAIL| -+ S3C2410_SDIDSTA_CRCFAIL| -+ S3C2410_SDIDSTA_RXCRCFAIL| -+ S3C2410_SDIDSTA_DATATIMEOUT)) { -+ printf("mmc_block_read: err SDIDSTA=0x%08x\n", sdidsta); -+ return -EIO; -+ } -+ -+ while (fifo--) { -+ //debug("dst_u32 = 0x%08x\n", dst_u32); -+ *(dst_u32++) = sdi->SDIDAT; -+ if (len >= 4) -+ len -= 4; -+ else { -+ len = 0; -+ break; -+ } -+ } -+ } -+ -+#if 1 -+ debug("waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); -+ while (!(sdi->SDIDSTA & (1 << 4))) {} -+ debug("done waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); -+#endif -+ -+ sdi->SDIDCON = 0; -+ -+#if 0 -+ if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH)) -+ printf("mmc_block_read; transfer not finished!\n"); -+#endif -+ -+ return 0; -+} -+ -+static int -+/****************************************************/ -+mmc_block_write(ulong dst, uchar *src, int len) -+/****************************************************/ -+{ -+#if 0 -+ uchar *resp; -+ ushort argh, argl; -+ ulong status; -+ -+ if (len == 0) { -+ return 0; -+ } -+ -+ debug("mmc_block_wr dst %lx src %lx len %d\n", dst, (ulong)src, len); -+ -+ argh = len >> 16; -+ argl = len & 0xffff; -+ -+ /* set block len */ -+ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, argh, argl, CMD_F_RESP); -+ -+ /* send write command */ -+ argh = dst >> 16; -+ argl = dst & 0xffff; -+ MMC_STRPCL = MMC_STRPCL_STOP_CLK; -+ MMC_NOB = 1; -+ MMC_BLKLEN = len; -+ resp = mmc_cmd(MMC_CMD_WRITE_BLOCK, dst, CMD_F_RESP, -+ MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN); -+ -+ MMC_I_MASK = ~MMC_I_MASK_TXFIFO_WR_REQ; -+ while (len) { -+ if (MMC_I_REG & MMC_I_REG_TXFIFO_WR_REQ) { -+ int i, bytes = min(32,len); -+ -+ for (i=0; i<bytes; i++) { -+ MMC_TXFIFO = *src++; -+ } -+ if (bytes < 32) { -+ MMC_PRTBUF = MMC_PRTBUF_BUF_PART_FULL; -+ } -+ len -= bytes; -+ } -+ status = MMC_STAT; -+ if (status & MMC_STAT_ERRORS) { -+ printf("MMC_STAT error %lx\n", status); -+ return -1; -+ } -+ } -+ MMC_I_MASK = ~MMC_I_MASK_DATA_TRAN_DONE; -+ while (!(MMC_I_REG & MMC_I_REG_DATA_TRAN_DONE)); -+ MMC_I_MASK = ~MMC_I_MASK_PRG_DONE; -+ while (!(MMC_I_REG & MMC_I_REG_PRG_DONE)); -+ status = MMC_STAT; -+ if (status & MMC_STAT_ERRORS) { -+ printf("MMC_STAT error %lx\n", status); -+ return -1; -+ } -+#endif -+ return 0; -+} -+ -+ -+int -+/****************************************************/ -+mmc_read(ulong src, uchar *dst, int size) -+/****************************************************/ -+{ -+ ulong end, part_start, part_end, part_len, aligned_start, aligned_end; -+ ulong mmc_block_size, mmc_block_address; -+ -+ if (size == 0) { -+ return 0; -+ } -+ -+ if (!mmc_ready) { -+ printf("Please initialize the MMC first\n"); -+ return -1; -+ } -+ -+ mmc_block_size = MMC_BLOCK_SIZE; -+ mmc_block_address = ~(mmc_block_size - 1); -+ -+ src -= CFG_MMC_BASE; -+ end = src + size; -+ part_start = ~mmc_block_address & src; -+ part_end = ~mmc_block_address & end; -+ aligned_start = mmc_block_address & src; -+ aligned_end = mmc_block_address & end; -+ -+ /* all block aligned accesses */ -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_start) { -+ part_len = mmc_block_size - part_start; -+ debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(dst, mmc_buf+part_start, part_len); -+ dst += part_len; -+ src += part_len; -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) { -+ debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_end && src < end) { -+ debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(dst, mmc_buf, part_end); -+ } -+ return 0; -+} -+ -+int -+/****************************************************/ -+mmc_write(uchar *src, ulong dst, int size) -+/****************************************************/ -+{ -+ ulong end, part_start, part_end, part_len, aligned_start, aligned_end; -+ ulong mmc_block_size, mmc_block_address; -+ -+ if (size == 0) { -+ return 0; -+ } -+ -+ if (!mmc_ready) { -+ printf("Please initialize the MMC first\n"); -+ return -1; -+ } -+ -+ mmc_block_size = MMC_BLOCK_SIZE; -+ mmc_block_address = ~(mmc_block_size - 1); -+ -+ dst -= CFG_MMC_BASE; -+ end = dst + size; -+ part_start = ~mmc_block_address & dst; -+ part_end = ~mmc_block_address & end; -+ aligned_start = mmc_block_address & dst; -+ aligned_end = mmc_block_address & end; -+ -+ /* all block aligned accesses */ -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_start) { -+ part_len = mmc_block_size - part_start; -+ debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(mmc_buf+part_start, src, part_len); -+ if ((mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) { -+ return -1; -+ } -+ dst += part_len; -+ src += part_len; -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) { -+ debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_end && dst < end) { -+ debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(mmc_buf, src, part_end); -+ if ((mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ return 0; -+} -+ -+ulong -+/****************************************************/ -+mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst) -+/****************************************************/ -+{ -+ int mmc_block_size = MMC_BLOCK_SIZE; -+ ulong src = blknr * mmc_block_size + CFG_MMC_BASE; -+ -+ mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size); -+ return blkcnt; -+} -+ -+static u_int16_t rca = MMC_DEFAULT_RCA; -+ -+static u_int32_t mmc_size(const struct mmc_csd *csd) -+{ -+ u_int32_t block_len, mult, blocknr; -+ -+ block_len = csd->read_bl_len << 12; -+ mult = csd->c_size_mult1 << 8; -+ blocknr = (csd->c_size+1) * mult; -+ -+ return blocknr * block_len; -+} -+ -+int -+/****************************************************/ -+mmc_init(int verbose) -+/****************************************************/ -+{ -+ int retries, rc = -ENODEV; -+ int is_sd = 0; -+ u_int32_t *resp; -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ -+ sdi = S3C2410_GetBase_SDI(); -+ -+ debug("mmc_init(PCLK=%u)\n", get_PCLK()); -+ -+ clk_power->CLKCON |= (1 << 9); -+ -+ /* S3C2410 has some bug that prevents reliable operation at higher speed */ -+ //sdi->SDIPRE = 0x3e; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ -+ sdi->SDIPRE = 0x02; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ -+ sdi->SDIBSIZE = 512; -+ sdi->SDIDTIMER = 0xffff; -+ sdi->SDIIMSK = 0x0; -+ sdi->SDICON = S3C2410_SDICON_FIFORESET|S3C2440_SDICON_MMCCLOCK; -+ udelay(125000); /* FIXME: 74 SDCLK cycles */ -+ -+ mmc_csd.c_size = 0; -+ -+ /* reset */ -+ retries = 10; -+ resp = mmc_cmd(MMC_CMD_RESET, 0, 0); -+ -+ printf("trying to detect SD Card...\n"); -+ while (retries--) { -+ int i; -+ udelay(100000); -+ resp = mmc_cmd(55, 0x00000000, CMD_F_RESP); -+ resp = mmc_cmd(41, 0x00300000, CMD_F_RESP); -+ -+ if (resp[0] & (1 << 31)) { -+ is_sd = 1; -+ break; -+ } -+ } -+ -+ if (retries == 0 && !is_sd) { -+ retries = 10; -+ printf("failed to detect SD Card, trying MMC\n"); -+ resp = mmc_cmd(MMC_CMD_SEND_OP_COND, 0x00ffc000, CMD_F_RESP); -+ while (retries-- && resp && !(resp[4] & 0x80)) { -+ debug("resp %x %x\n", resp[0], resp[1]); -+ udelay(50); -+ resp = mmc_cmd(1, 0x00ffff00, CMD_F_RESP); -+ } -+ } -+ -+ /* try to get card id */ -+ resp = mmc_cmd(MMC_CMD_ALL_SEND_CID, 0, CMD_F_RESP|CMD_F_RESP_LONG); -+ if (resp) { -+ /* TODO configure mmc driver depending on card attributes */ -+ mmc_cid_t *cid = (mmc_cid_t *)resp; -+ if (verbose) { -+ printf("MMC found. Card desciption is:\n"); -+ printf("Manufacturer ID = %02x%02x%02x\n", -+ cid->id[0], cid->id[1], cid->id[2]); -+ printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev); -+ cid->hwrev = cid->fwrev = 0; /* null terminate string */ -+ printf("Product Name = %s\n",cid->name); -+ printf("Serial Number = %02x%02x%02x\n", -+ cid->sn[0], cid->sn[1], cid->sn[2]); -+ printf("Month = %d\n",cid->month); -+ printf("Year = %d\n",1997 + cid->year); -+ } -+ /* fill in device description */ -+ mmc_dev.if_type = IF_TYPE_MMC; -+ mmc_dev.part_type = PART_TYPE_DOS; -+ mmc_dev.dev = 0; -+ mmc_dev.lun = 0; -+ mmc_dev.type = 0; -+ /* FIXME fill in the correct size (is set to 32MByte) */ -+ mmc_dev.blksz = 512; -+ mmc_dev.lba = 0x10000; -+ sprintf(mmc_dev.vendor,"Man %02x%02x%02x Snr %02x%02x%02x", -+ cid->id[0], cid->id[1], cid->id[2], -+ cid->sn[0], cid->sn[1], cid->sn[2]); -+ sprintf(mmc_dev.product,"%s",cid->name); -+ sprintf(mmc_dev.revision,"%x %x",cid->hwrev, cid->fwrev); -+ mmc_dev.removable = 0; -+ mmc_dev.block_read = mmc_bread; -+ -+ /* MMC exists, get CSD too */ -+ resp = mmc_cmd(MMC_CMD_SET_RCA, MMC_DEFAULT_RCA, CMD_F_RESP); -+ if (is_sd) -+ rca = resp[0] >> 16; -+ -+ resp = mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, CMD_F_RESP|CMD_F_RESP_LONG); -+ if (resp) { -+ mmc_csd_t *csd = (mmc_csd_t *)resp; -+ memcpy(&mmc_csd, csd, sizeof(csd)); -+ rc = 0; -+ mmc_ready = 1; -+ /* FIXME add verbose printout for csd */ -+ printf("READ_BL_LEN=%u, C_SIZE_MULT=%u, C_SIZE=%u\n", -+ csd->read_bl_len, csd->c_size_mult1, csd->c_size); -+ printf("size = %u\n", mmc_size(csd)); -+ } -+ } -+ -+ resp = mmc_cmd(MMC_CMD_SELECT_CARD, rca<<16, CMD_F_RESP); -+ -+#ifdef CONFIG_MMC_WIDE -+ if (is_sd) { -+ resp = mmc_cmd(55, rca<<16, CMD_F_RESP); -+ resp = mmc_cmd(6, 0x02, CMD_F_RESP); -+ wide = 1; -+ } -+#endif -+ -+ fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */ -+ -+ return rc; -+} -+ -+int -+mmc_ident(block_dev_desc_t *dev) -+{ -+ return 0; -+} -+ -+int -+mmc2info(ulong addr) -+{ -+ /* FIXME hard codes to 32 MB device */ -+ if (addr >= CFG_MMC_BASE && addr < CFG_MMC_BASE + 0x02000000) { -+ return 1; -+ } -+ return 0; -+} -+ -+#endif /* CONFIG_MMC */ -diff --git a/cpu/arm920t/s3c24x0/nand.c b/cpu/arm920t/s3c24x0/nand.c -new file mode 100644 -index 0000000..f720229 ---- /dev/null -+++ b/cpu/arm920t/s3c24x0/nand.c -@@ -0,0 +1,212 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+#if 0 -+#define DEBUGN printf -+#else -+#define DEBUGN(x, args ...) {} -+#endif -+ -+#if (CONFIG_COMMANDS & CFG_CMD_NAND) -+#if !defined(CFG_NAND_LEGACY) -+ -+#include <nand.h> -+#include <s3c2410.h> -+ -+#define __REGb(x) (*(volatile unsigned char *)(x)) -+#define __REGi(x) (*(volatile unsigned int *)(x)) -+ -+#define NF_BASE 0x4e000000 -+#define NFCONF __REGi(NF_BASE + 0x0) -+#define NFCMD __REGb(NF_BASE + 0x4) -+#define NFADDR __REGb(NF_BASE + 0x8) -+#define NFDATA __REGb(NF_BASE + 0xc) -+#define NFSTAT __REGb(NF_BASE + 0x10) -+ -+#define S3C2410_NFCONF_EN (1<<15) -+#define S3C2410_NFCONF_512BYTE (1<<14) -+#define S3C2410_NFCONF_4STEP (1<<13) -+#define S3C2410_NFCONF_INITECC (1<<12) -+#define S3C2410_NFCONF_nFCE (1<<11) -+#define S3C2410_NFCONF_TACLS(x) ((x)<<8) -+#define S3C2410_NFCONF_TWRPH0(x) ((x)<<4) -+#define S3C2410_NFCONF_TWRPH1(x) ((x)<<0) -+ -+static u16 s3c2410_read_word(struct mtd_info *mtd) -+{ -+ unsigned char byte = 0; -+ -+ printf("s3c2410_read_word: WARNING, this function is not implemented yet\n"); -+ return byte; -+} -+ -+static void s3c2410_write_word(struct mtd_info *mtd, u16 word) -+{ -+ printf("s3c2410_write_word: WARNING, this function is not implemented yet\n"); -+} -+ -+static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd) -+{ -+ struct nand_chip *chip = mtd->priv; -+ -+ DEBUGN("hwcontrol(): 0x%02x: ", cmd); -+ -+ switch (cmd) { -+ case NAND_CTL_SETNCE: -+ NFCONF &= ~S3C2410_NFCONF_nFCE; -+ DEBUGN("NFCONF=0x%08x\n", NFCONF); -+ break; -+ case NAND_CTL_CLRNCE: -+ NFCONF |= S3C2410_NFCONF_nFCE; -+ DEBUGN("NFCONF=0x%08x\n", NFCONF); -+ break; -+ case NAND_CTL_SETALE: -+ chip->IO_ADDR_W = NF_BASE + 0x8; -+ DEBUGN("SETALE\n"); -+ break; -+ case NAND_CTL_SETCLE: -+ chip->IO_ADDR_W = NF_BASE + 0x4; -+ DEBUGN("SETCLE\n"); -+ break; -+ default: -+ chip->IO_ADDR_W = NF_BASE + 0xc; -+ break; -+ } -+ return; -+} -+ -+static int s3c2410_dev_ready(struct mtd_info *mtd) -+{ -+ DEBUGN("dev_ready\n"); -+ return (NFSTAT & 0x01); -+} -+ -+static void s3c2410_cmdfunc(struct mtd_info *mtd, unsigned cmd, -+ int column, int page_addr) -+{ -+ DEBUGN("cmdfunc(): 0x%02x, col=%d, page=%d\n", cmd, column, page_addr); -+ -+ switch (cmd) { -+ case NAND_CMD_READ0: -+ case NAND_CMD_READ1: -+ case NAND_CMD_READOOB: -+ NFCMD = cmd; -+ NFADDR = column & 0xff; -+ NFADDR = page_addr & 0xff; -+ NFADDR = (page_addr >> 8) & 0xff; -+ NFADDR = (page_addr >> 16) & 0xff; -+ break; -+ case NAND_CMD_READID: -+ NFCMD = cmd; -+ NFADDR = 0; -+ break; -+ case NAND_CMD_PAGEPROG: -+ NFCMD = cmd; -+ printf("PAGEPROG not implemented\n"); -+ break; -+ case NAND_CMD_ERASE1: -+ NFCMD = cmd; -+ NFADDR = page_addr & 0xff; -+ NFADDR = (page_addr >> 8) & 0xff; -+ NFADDR = (page_addr >> 16) & 0xff; -+ break; -+ case NAND_CMD_ERASE2: -+ NFCMD = cmd; -+ break; -+ case NAND_CMD_SEQIN: -+ printf("SEQIN not implemented\n"); -+ break; -+ case NAND_CMD_STATUS: -+ NFCMD = cmd; -+ break; -+ case NAND_CMD_RESET: -+ NFCMD = cmd; -+ break; -+ default: -+ break; -+ } -+ -+ while (!s3c2410_dev_ready(mtd)); -+} -+ -+void board_nand_init(struct nand_chip *nand) -+{ -+ u_int32_t cfg; -+ u_int8_t tacls, twrph0, twrph1; -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ -+ DEBUGN("board_nand_init()\n"); -+ -+ clk_power->CLKCON |= (1 << 4); -+ -+ /* initialize hardware */ -+ twrph0 = 3; twrph1 = 0; tacls = 0; -+ -+ /* default timings: maximum */ -+ //twrph0 = 8; twrph1 = 8; tacls = 8; -+ -+ cfg = S3C2410_NFCONF_EN; -+ cfg |= S3C2410_NFCONF_TACLS(tacls - 1); -+ cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1); -+ cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1); -+ -+ //NFCONF = cfg; -+ NFCONF = 0xf842; -+ -+ /* initialize nand_chip data structure */ -+ nand->IO_ADDR_R = nand->IO_ADDR_W = 0x4e00000c; -+ -+ /* read_buf and write_buf are default */ -+ /* read_byte and write_byte are default */ -+ -+ /* need to override word read/write since default routines try 16bit wide -+ * register access of an (in our case) 8bit register */ -+ nand->read_word = s3c2410_read_word; -+ nand->write_word = s3c2410_write_word; -+ -+ /* hwcontrol always must be implemented */ -+ nand->hwcontrol = s3c2410_hwcontrol; -+ -+ nand->dev_ready = s3c2410_dev_ready; -+ -+ nand->eccmode = NAND_ECC_SOFT; -+ nand->options = 0; -+ //nand->waitfunc = dfc_wait; -+ -+ //nand->cmdfunc = s3c2410_cmdfunc; -+ //nand->autooob = &delta_oob; -+ //nand->badblock_pattern = &delta_bbt_descr; -+ -+#if 0 -+ /* reset */ -+ nand->hwcontrol(NULL, NAND_CTL_SETNCE); -+ nand->cmdfunc(NULL, NAND_CMD_RESET, -1, -1); -+ while (nand->dev_ready(NULL) == 0) {} -+ nand->hwcontrol(NULL, NAND_CTL_CLRNCE); -+#endif -+ -+ DEBUGN("end of nand_init\n"); -+} -+ -+#else -+ #error "U-Boot legacy NAND support not available for S3C2410" -+#endif -+#endif -diff --git a/cpu/arm920t/s3c24x0/nand_read.c b/cpu/arm920t/s3c24x0/nand_read.c -new file mode 100644 -index 0000000..9d97932 ---- /dev/null -+++ b/cpu/arm920t/s3c24x0/nand_read.c -@@ -0,0 +1,75 @@ -+/* -+ * nand_read.c: Simple NAND read functions for booting from NAND -+ * -+ * Taken from GPLv2 licensed vivi bootloader, -+ * Copyright (C) 2002 MIZI Research, Inc. -+ * -+ * Author: Hwang, Chideok <hwang@mizi.com> -+ * Date : $Date: 2004/02/04 10:37:37 $ -+ * -+ * u-boot integration (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ */ -+ -+#include <common.h> -+ -+#ifdef CONFIG_S3C2410_NAND_BOOT -+ -+#define __REGb(x) (*(volatile unsigned char *)(x)) -+#define __REGi(x) (*(volatile unsigned int *)(x)) -+#define NF_BASE 0x4e000000 -+#define NFCONF __REGi(NF_BASE + 0x0) -+#define NFCMD __REGb(NF_BASE + 0x4) -+#define NFADDR __REGb(NF_BASE + 0x8) -+#define NFDATA __REGb(NF_BASE + 0xc) -+#define NFSTAT __REGb(NF_BASE + 0x10) -+ -+#define BUSY 1 -+inline void wait_idle(void) { -+ int i; -+ -+ while(!(NFSTAT & BUSY)) -+ for(i=0; i<10; i++); -+} -+ -+#define NAND_SECTOR_SIZE 512 -+#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1) -+ -+/* low level nand read function */ -+int -+nand_read_ll(unsigned char *buf, unsigned long start_addr, int size) -+{ -+ int i, j; -+ -+ if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) { -+ return -1; /* invalid alignment */ -+ } -+ -+ /* chip Enable */ -+ NFCONF &= ~0x800; -+ for(i=0; i<10; i++); -+ -+ for(i=start_addr; i < (start_addr + size);) { -+ /* READ0 */ -+ NFCMD = 0; -+ -+ /* Write Address */ -+ NFADDR = i & 0xff; -+ NFADDR = (i >> 9) & 0xff; -+ NFADDR = (i >> 17) & 0xff; -+ NFADDR = (i >> 25) & 0xff; -+ -+ wait_idle(); -+ -+ for(j=0; j < NAND_SECTOR_SIZE; j++, i++) { -+ *buf = (NFDATA & 0xff); -+ buf++; -+ } -+ } -+ -+ /* chip Disable */ -+ NFCONF |= 0x800; /* chip disable */ -+ -+ return 0; -+} -+ -+#endif /* CONFIG_S3C2410_NAND_BOOT */ -diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S -index 346f0d0..232e2c2 100644 ---- a/cpu/arm920t/start.S -+++ b/cpu/arm920t/start.S -@@ -5,6 +5,10 @@ - * Copyright (c) 2002 Alex Züpke <azu@sysgo.de> - * Copyright (c) 2002 Gary Jennejohn <gj@denx.de> - * -+ * S3C2410 NAND portions -+ * Copyright (c) 2001 MIZI Research, Inc. -+ * Copyright (c) 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * - * See file CREDITS for list of people who contributed to this - * project. - * -@@ -27,6 +31,7 @@ - - #include <config.h> - #include <version.h> -+#include <s3c2410.h> - - - /* -@@ -161,6 +166,7 @@ #ifndef CONFIG_SKIP_LOWLEVEL_INIT - #endif - - #ifndef CONFIG_SKIP_RELOCATE_UBOOT -+#ifndef CONFIG_S3C2410_NAND_BOOT - relocate: /* relocate U-Boot to RAM */ - adr r0, _start /* r0 <- current position of code */ - ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ -@@ -177,6 +183,93 @@ copy_loop: - stmia r1!, {r3-r10} /* copy to target address [r1] */ - cmp r0, r2 /* until source end addreee [r2] */ - ble copy_loop -+#else /* NAND_BOOT */ -+relocate: -+copy_myself: -+ /* mov r10, lr */ -+ -+ @ reset NAND -+ mov r1, #S3C2410_NAND_BASE -+ ldr r2, =0xf842 @ initial value enable tacls=3,rph0=6,rph1=0 -+ str r2, [r1, #oNFCONF] -+ ldr r2, [r1, #oNFCONF] -+ bic r2, r2, #0x800 @ enable chip -+ str r2, [r1, #oNFCONF] -+ mov r2, #0xff @ RESET command -+ strb r2, [r1, #oNFCMD] -+ mov r3, #0 @ wait -+1: add r3, r3, #0x1 -+ cmp r3, #0xa -+ blt 1b -+2: ldr r2, [r1, #oNFSTAT] @ wait ready -+ tst r2, #0x1 -+ beq 2b -+ ldr r2, [r1, #oNFCONF] -+ orr r2, r2, #0x800 @ disable chip -+ str r2, [r1, #oNFCONF] -+ -+#if 0 -+ @ get ready to call C functions (for nand_read()) -+ ldr sp, DW_STACK_START @ setup stack pointer -+ mov fp, #0 @ no previous frame, so fp=0 -+#else -+ ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ -+ sub r0, r0, #CFG_MALLOC_LEN /* malloc area */ -+ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */ -+#ifdef CONFIG_USE_IRQ -+ sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) -+#endif -+ sub sp, r0, #12 /* leave 3 words for abort-stack */ -+#endif -+ -+ @ copy u-boot to RAM -+ ldr r0, _TEXT_BASE -+ mov r1, #0x0 -+ mov r2, #0x30000 -+ bl nand_read_ll -+ -+ tst r0, #0x0 -+ beq ok_nand_read -+#ifdef CONFIG_DEBUG_LL -+bad_nand_read: -+ ldr r0, STR_FAIL -+ ldr r1, SerBase -+ bl PrintWord -+1: b 1b @ infinite loop -+#endif -+ -+ok_nand_read: -+#ifdef CONFIG_DEBUG_LL -+ ldr r0, STR_OK -+ ldr r1, SerBase -+ bl PrintWord -+#endif -+ -+ @ verify -+ mov r0, #0 -+ @ldr r1, =0x33f00000 -+ ldr r1, _TEXT_BASE -+ mov r2, #0x400 @ 4 bytes * 1024 = 4K-bytes -+go_next: -+ ldr r3, [r0], #4 -+ ldr r4, [r1], #4 -+ teq r3, r4 -+ bne notmatch -+ subs r2, r2, #4 -+ beq done_nand_read -+ bne go_next -+notmatch: -+#ifdef CONFIG_DEBUG_LL -+ sub r0, r0, #4 -+ ldr r1, SerBase -+ bl PrintHexWord -+ ldr r0, STR_FAIL -+ ldr r1, SerBase -+ bl PrintWord -+#endif -+1: b 1b -+done_nand_read: -+#endif /* NAND_BOOT */ - #endif /* CONFIG_SKIP_RELOCATE_UBOOT */ - - /* Set up the stack */ -diff --git a/drivers/Makefile b/drivers/Makefile -index 9be95c7..eef266a 100644 ---- a/drivers/Makefile -+++ b/drivers/Makefile -@@ -50,7 +50,7 @@ OBJS = 3c589.o 5701rls.o ali512x.o \ - videomodes.o w83c553f.o \ - ks8695eth.o \ - pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o \ -- rpx_pcmcia.o -+ rpx_pcmcia.o s3c2410_fb.o - - all: $(LIB) - -diff --git a/drivers/cs8900.c b/drivers/cs8900.c -index 082434c..1cce622 100644 ---- a/drivers/cs8900.c -+++ b/drivers/cs8900.c -@@ -120,6 +120,7 @@ void cs8900_get_enetaddr (uchar * addr) - unsigned char env_enetaddr[6]; - char *tmp = getenv ("ethaddr"); - char *end; -+ unsigned short chip_id; - - for (i=0; i<6; i++) { - env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0; -@@ -128,7 +129,9 @@ void cs8900_get_enetaddr (uchar * addr) - } - - /* verify chip id */ -- if (get_reg_init_bus (PP_ChipID) != 0x630e) -+ chip_id = get_reg_init_bus (PP_ChipID); -+ printf("\ncs8900a chipid 0x%04x\n", chip_id); -+ if (chip_id != 0x630e) - return; - eth_reset (); - if ((get_reg (PP_SelfST) & (PP_SelfSTAT_EEPROM | PP_SelfSTAT_EEPROM_OK)) == -diff --git a/drivers/s3c2410_fb.c b/drivers/s3c2410_fb.c -new file mode 100644 -index 0000000..fc389a9 ---- /dev/null -+++ b/drivers/s3c2410_fb.c -@@ -0,0 +1,182 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+#if defined(CONFIG_VIDEO_S3C2410) -+ -+#include <video_fb.h> -+#include "videomodes.h" -+#include <s3c2410.h> -+/* -+ * Export Graphic Device -+ */ -+GraphicDevice smi; -+ -+#define VIDEO_MEM_SIZE 0x200000 -+ -+/******************************************************************************* -+ * -+ * Init video chip with common Linux graphic modes (lilo) -+ */ -+void *video_hw_init (void) -+{ -+ S3C24X0_LCD * const lcd = S3C24X0_GetBase_LCD(); -+ GraphicDevice *pGD = (GraphicDevice *)&smi; -+ int videomode; -+ unsigned long t1, hsynch, vsynch; -+ char *penv; -+ int tmp, i, bits_per_pixel; -+ struct ctfb_res_modes *res_mode; -+ struct ctfb_res_modes var_mode; -+ unsigned char videoout; -+ unsigned int *vm; -+ -+ /* Search for video chip */ -+ printf("Video: "); -+ -+ tmp = 0; -+ -+ videomode = CFG_DEFAULT_VIDEO_MODE; -+ /* get video mode via environment */ -+ if ((penv = getenv ("videomode")) != NULL) { -+ /* deceide if it is a string */ -+ if (penv[0] <= '9') { -+ videomode = (int) simple_strtoul (penv, NULL, 16); -+ tmp = 1; -+ } -+ } else { -+ tmp = 1; -+ } -+ if (tmp) { -+ /* parameter are vesa modes */ -+ /* search params */ -+ for (i = 0; i < VESA_MODES_COUNT; i++) { -+ if (vesa_modes[i].vesanr == videomode) -+ break; -+ } -+ if (i == VESA_MODES_COUNT) { -+ printf ("no VESA Mode found, switching to mode 0x%x ", CFG_DEFAULT_VIDEO_MODE); -+ i = 0; -+ } -+ res_mode = -+ (struct ctfb_res_modes *) &res_mode_init[vesa_modes[i]. -+ resindex]; -+ bits_per_pixel = vesa_modes[i].bits_per_pixel; -+ } else { -+ -+ res_mode = (struct ctfb_res_modes *) &var_mode; -+ bits_per_pixel = video_get_params (res_mode, penv); -+ } -+ -+ /* calculate hsynch and vsynch freq (info only) */ -+ t1 = (res_mode->left_margin + res_mode->xres + -+ res_mode->right_margin + res_mode->hsync_len) / 8; -+ t1 *= 8; -+ t1 *= res_mode->pixclock; -+ t1 /= 1000; -+ hsynch = 1000000000L / t1; -+ t1 *= -+ (res_mode->upper_margin + res_mode->yres + -+ res_mode->lower_margin + res_mode->vsync_len); -+ t1 /= 1000; -+ vsynch = 1000000000L / t1; -+ -+ /* fill in Graphic device struct */ -+ sprintf (pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", res_mode->xres, -+ res_mode->yres, bits_per_pixel, (hsynch / 1000), -+ (vsynch / 1000)); -+ printf ("%s\n", pGD->modeIdent); -+ pGD->winSizeX = res_mode->xres; -+ pGD->winSizeY = res_mode->yres; -+ pGD->plnSizeX = res_mode->xres; -+ pGD->plnSizeY = res_mode->yres; -+ switch (bits_per_pixel) { -+ case 8: -+ pGD->gdfBytesPP = 1; -+ pGD->gdfIndex = GDF__8BIT_INDEX; -+ break; -+ case 15: -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_15BIT_555RGB; -+ break; -+ case 16: -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_16BIT_565RGB; -+ break; -+ case 24: -+ pGD->gdfBytesPP = 3; -+ pGD->gdfIndex = GDF_24BIT_888RGB; -+ break; -+ } -+ -+#if 0 -+ pGD->isaBase = CFG_ISA_IO; -+ pGD->pciBase = pci_mem_base; -+ pGD->dprBase = (pci_mem_base + 0x400000 + 0x8000); -+ pGD->vprBase = (pci_mem_base + 0x400000 + 0xc000); -+ pGD->cprBase = (pci_mem_base + 0x400000 + 0xe000); -+#endif -+ pGD->frameAdrs = LCD_VIDEO_ADDR; -+ pGD->memSize = VIDEO_MEM_SIZE; -+ -+ lcd->LCDSADDR1 = LCD_VIDEO_ADDR >> 1; -+ lcd->LCDSADDR2 = (LCD_VIDEO_ADDR + 0x4b000) >> 1; -+ lcd->LCDSADDR3 = 0x000000f0; -+ -+ lcd->LCDCON1 = 0x00000479; -+ lcd->LCDCON2 = 0x014fc183; -+ lcd->LCDCON3 = 0x0060ef07; -+ lcd->LCDCON4 = 0x00000003; -+ lcd->LCDCON5 = 0x00000b09; -+ lcd->LPCSEL = 0x00000cf0; -+ -+ pGD->winSizeX = pGD->plnSizeX = 240; -+ pGD->winSizeY = pGD->plnSizeY = 320; -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_16BIT_565RGB; -+ -+ /* Enable Display */ -+ videoout = 2; /* Default output is CRT */ -+ if ((penv = getenv ("videoout")) != NULL) { -+ /* deceide if it is a string */ -+ videoout = (int) simple_strtoul (penv, NULL, 16); -+ } -+ -+ printf("clearing video memory\n"); -+ /* Clear video memory */ -+ i = pGD->memSize/4; -+ vm = (unsigned int *)pGD->frameAdrs; -+ while(i--) -+ *vm++ = 0; -+ -+ printf("returning from video_hw_init\n"); -+ return ((void*)&smi); -+} -+ -+void -+video_set_lut (unsigned int index, /* color number */ -+ unsigned char r, /* red */ -+ unsigned char g, /* green */ -+ unsigned char b /* blue */ -+ ) -+{ -+} -+ -+#endif /* CONFIG_VIDEO_S3C2410 */ -diff --git a/drivers/usbdcore_s3c2410.c b/drivers/usbdcore_s3c2410.c -new file mode 100644 -index 0000000..143fdf2 ---- /dev/null -+++ b/drivers/usbdcore_s3c2410.c -@@ -0,0 +1,1609 @@ -+/* -+ * (C) Copyright 2003 -+ * Gerry Hamel, geh@ti.com, Texas Instruments -+ * -+ * Based on -+ * linux/drivers/usb/device/bi/omap.c -+ * TI OMAP1510 USB bus interface driver -+ * -+ * Author: MontaVista Software, Inc. -+ * source@mvista.com -+ * (C) Copyright 2002 -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ */ -+ -+#include <common.h> -+ -+#if defined(CONFIG_S3C2410) && defined(CONFIG_USB_DEVICE) -+ -+#include <asm/io.h> -+ -+#include "usbdcore.h" -+#include "usbdcore_s3c2410.h" -+#include "usbdcore_ep0.h" -+ -+ -+#define UDC_INIT_MDELAY 80 /* Device settle delay */ -+#define UDC_MAX_ENDPOINTS 31 /* Number of endpoints on this UDC */ -+ -+/* Some kind of debugging output... */ -+#if 1 -+#define UDCDBG(str) -+#define UDCDBGA(fmt,args...) -+#else /* The bugs still exists... */ -+#define UDCDBG(str) serial_printf("[%s] %s:%d: " str "\n", __FILE__,__FUNCTION__,__LINE__) -+#define UDCDBGA(fmt,args...) serial_printf("[%s] %s:%d: " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##args) -+#endif -+ -+#if 1 -+#define UDCREG(name) -+#define UDCREGL(name) -+#else /* The bugs still exists... */ -+#define UDCREG(name) serial_printf("%s():%d: %s[%08x]=%.4x\n",__FUNCTION__,__LINE__, (#name), name, inw(name)) /* For 16-bit regs */ -+#define UDCREGL(name) serial_printf("%s():%d: %s[%08x]=%.8x\n",__FUNCTION__,__LINE__, (#name), name, inl(name)) /* For 32-bit regs */ -+#endif -+ -+ -+static struct urb *ep0_urb = NULL; -+ -+static struct usb_device_instance *udc_device; /* Used in interrupt handler */ -+static u16 udc_devstat = 0; /* UDC status (DEVSTAT) */ -+static u32 udc_interrupts = 0; -+ -+static void udc_stall_ep (unsigned int ep_addr); -+ -+ -+static struct usb_endpoint_instance *s3c2410_find_ep (int ep) -+{ -+ int i; -+ -+ for (i = 0; i < udc_device->bus->max_endpoints; i++) { -+ if (udc_device->bus->endpoint_array[i].endpoint_address == ep) -+ return &udc_device->bus->endpoint_array[i]; -+ } -+ return NULL; -+} -+ -+/* ************************************************************************** */ -+/* IO -+ */ -+ -+/* -+ * omap1510_prepare_endpoint_for_rx -+ * -+ * This function implements TRM Figure 14-11. -+ * -+ * The endpoint to prepare for transfer is specified as a physical endpoint -+ * number. For OUT (rx) endpoints 1 through 15, the corresponding endpoint -+ * configuration register is checked to see if the endpoint is ISO or not. -+ * If the OUT endpoint is valid and is non-ISO then its FIFO is enabled. -+ * No action is taken for endpoint 0 or for IN (tx) endpoints 16 through 30. -+ */ -+static void omap1510_prepare_endpoint_for_rx (int ep_addr) -+{ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("omap1510_prepare_endpoint %x", ep_addr); -+ if (((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) { -+ if ((inw (UDC_EP_RX (ep_num)) & -+ (UDC_EPn_RX_Valid | UDC_EPn_RX_Iso)) == -+ UDC_EPn_RX_Valid) { -+ /* rx endpoint is valid, non-ISO, so enable its FIFO */ -+ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ outw (0, UDC_EP_NUM); -+ } -+ } -+} -+ -+/* omap1510_configure_endpoints -+ * -+ * This function implements TRM Figure 14-10. -+ */ -+static void omap1510_configure_endpoints (struct usb_device_instance *device) -+{ -+ int ep; -+ struct usb_bus_instance *bus; -+ struct usb_endpoint_instance *endpoint; -+ unsigned short ep_ptr; -+ unsigned short ep_size; -+ unsigned short ep_isoc; -+ unsigned short ep_doublebuffer; -+ int ep_addr; -+ int packet_size; -+ int buffer_size; -+ int attributes; -+ -+ bus = device->bus; -+ -+ /* There is a dedicated 2048 byte buffer for USB packets that may be -+ * arbitrarily partitioned among the endpoints on 8-byte boundaries. -+ * The first 8 bytes are reserved for receiving setup packets on -+ * endpoint 0. -+ */ -+ ep_ptr = 8; /* reserve the first 8 bytes for the setup fifo */ -+ -+ for (ep = 0; ep < bus->max_endpoints; ep++) { -+ endpoint = bus->endpoint_array + ep; -+ ep_addr = endpoint->endpoint_address; -+ if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* IN endpoint */ -+ packet_size = endpoint->tx_packetSize; -+ attributes = endpoint->tx_attributes; -+ } else { -+ /* OUT endpoint */ -+ packet_size = endpoint->rcv_packetSize; -+ attributes = endpoint->rcv_attributes; -+ } -+ -+ switch (packet_size) { -+ case 0: -+ ep_size = 0; -+ break; -+ case 8: -+ ep_size = 0; -+ break; -+ case 16: -+ ep_size = 1; -+ break; -+ case 32: -+ ep_size = 2; -+ break; -+ case 64: -+ ep_size = 3; -+ break; -+ case 128: -+ ep_size = 4; -+ break; -+ case 256: -+ ep_size = 5; -+ break; -+ case 512: -+ ep_size = 6; -+ break; -+ default: -+ UDCDBGA ("ep 0x%02x has bad packet size %d", -+ ep_addr, packet_size); -+ packet_size = 0; -+ ep_size = 0; -+ break; -+ } -+ -+ switch (attributes & USB_ENDPOINT_XFERTYPE_MASK) { -+ case USB_ENDPOINT_XFER_CONTROL: -+ case USB_ENDPOINT_XFER_BULK: -+ case USB_ENDPOINT_XFER_INT: -+ default: -+ /* A non-isochronous endpoint may optionally be -+ * double-buffered. For now we disable -+ * double-buffering. -+ */ -+ ep_doublebuffer = 0; -+ ep_isoc = 0; -+ if (packet_size > 64) -+ packet_size = 0; -+ if (!ep || !ep_doublebuffer) -+ buffer_size = packet_size; -+ else -+ buffer_size = packet_size * 2; -+ break; -+ case USB_ENDPOINT_XFER_ISOC: -+ /* Isochronous endpoints are always double- -+ * buffered, but the double-buffering bit -+ * in the endpoint configuration register -+ * becomes the msb of the endpoint size so we -+ * set the double-buffering flag to zero. -+ */ -+ ep_doublebuffer = 0; -+ ep_isoc = 1; -+ buffer_size = packet_size * 2; -+ break; -+ } -+ -+ /* check to see if our packet buffer RAM is exhausted */ -+ if ((ep_ptr + buffer_size) > 2048) { -+ UDCDBGA ("out of packet RAM for ep 0x%02x buf size %d", ep_addr, buffer_size); -+ buffer_size = packet_size = 0; -+ } -+ -+ /* force a default configuration for endpoint 0 since it is -+ * always enabled -+ */ -+ if (!ep && ((packet_size < 8) || (packet_size > 64))) { -+ buffer_size = packet_size = 64; -+ ep_size = 3; -+ } -+ -+ if (!ep) { -+ /* configure endpoint 0 */ -+ outw ((ep_size << 12) | (ep_ptr >> 3), UDC_EP0); -+ /*UDCDBGA("ep 0 buffer offset 0x%03x packet size 0x%03x", */ -+ /* ep_ptr, packet_size); */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* IN endpoint */ -+ if (packet_size) { -+ outw ((1 << 15) | (ep_doublebuffer << 14) | -+ (ep_size << 12) | (ep_isoc << 11) | -+ (ep_ptr >> 3), -+ UDC_EP_TX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ UDCDBGA ("IN ep %d buffer offset 0x%03x" -+ " packet size 0x%03x", -+ ep_addr & USB_ENDPOINT_NUMBER_MASK, -+ ep_ptr, packet_size); -+ } else { -+ outw (0, -+ UDC_EP_TX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ } -+ } else { -+ /* OUT endpoint */ -+ if (packet_size) { -+ outw ((1 << 15) | (ep_doublebuffer << 14) | -+ (ep_size << 12) | (ep_isoc << 11) | -+ (ep_ptr >> 3), -+ UDC_EP_RX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ UDCDBGA ("OUT ep %d buffer offset 0x%03x" -+ " packet size 0x%03x", -+ ep_addr & USB_ENDPOINT_NUMBER_MASK, -+ ep_ptr, packet_size); -+ } else { -+ outw (0, -+ UDC_EP_RX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ } -+ } -+ ep_ptr += buffer_size; -+ } -+} -+ -+static void s3c2410_deconfigure_device (void) -+{ -+ int epnum; -+ -+ UDCDBG ("clear Cfg_Lock"); -+ outw (inw (UDC_SYSCON1) & ~UDC_Cfg_Lock, UDC_SYSCON1); -+ UDCREG (UDC_SYSCON1); -+ -+ /* deconfigure all endpoints */ -+ for (epnum = 1; epnum <= 15; epnum++) { -+ outw (0, UDC_EP_RX (epnum)); -+ outw (0, UDC_EP_TX (epnum)); -+ } -+} -+ -+static void s3c2410_configure_device (struct usb_device_instance *device) -+{ -+ u_int32_t tmp; -+ -+ s3c2410_configure_endpoints(device); -+ -+ /* disable EP0-4 SUBD interrupts ? */ -+ outw(0x00, S3C2410_UDC_USB_INT_EN_REG); -+ -+ /* UPLL already configured by board-level init code */ -+ -+ /* configure USB pads to device mode */ -+ tmp = inw(S3C2410_MISCCR); -+ tmp &= ~(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND1); -+ outw(tmp, S3C2410_MISCCR); -+ -+ tmp = inb(S3C2410_CLKSLOW); -+ tmp &= ~S3C2410_CLKSLOW_USB_CLK_DISABLE; -+ outw(tmp, S3C2410_CLKSLOW); -+ -+ /* clear interrupt registers */ -+ inb(S3C2410_UDC_EP_INT_REG); -+ inb(S3C2410_UDC_USB_INT_REG); -+ -+ /* enable USB interrupts for RESET and SUSPEND/RESUME */ -+ outb(S3C2410_UDC_USBINT_RESET|S3C2410_UDC_USBINT_SUSPEND, -+ S3C2410_UDC_USB_INT_EN_REG); -+ -+} -+ -+/* omap1510_write_noniso_tx_fifo -+ * -+ * This function implements TRM Figure 14-30. -+ * -+ * If the endpoint has an active tx_urb, then the next packet of data from the -+ * URB is written to the tx FIFO. The total amount of data in the urb is given -+ * by urb->actual_length. The maximum amount of data that can be sent in any -+ * one packet is given by endpoint->tx_packetSize. The number of data bytes -+ * from this URB that have already been transmitted is given by endpoint->sent. -+ * endpoint->last is updated by this routine with the number of data bytes -+ * transmitted in this packet. -+ * -+ * In accordance with Figure 14-30, the EP_NUM register must already have been -+ * written with the value to select the appropriate tx FIFO before this routine -+ * is called. -+ */ -+static void omap1510_write_noniso_tx_fifo (struct usb_endpoint_instance -+ *endpoint) -+{ -+ struct urb *urb = endpoint->tx_urb; -+ -+ if (urb) { -+ unsigned int last, i; -+ -+ UDCDBGA ("urb->buffer %p, buffer_length %d, actual_length %d", -+ urb->buffer, urb->buffer_length, urb->actual_length); -+ if ((last = -+ MIN (urb->actual_length - endpoint->sent, -+ endpoint->tx_packetSize))) { -+ u8 *cp = urb->buffer + endpoint->sent; -+ -+ UDCDBGA ("endpoint->sent %d, tx_packetSize %d, last %d", endpoint->sent, endpoint->tx_packetSize, last); -+ -+ if (((u32) cp & 1) == 0) { /* word aligned? */ -+ outsw (UDC_DATA, cp, last >> 1); -+ } else { /* byte aligned. */ -+ for (i = 0; i < (last >> 1); i++) { -+ u16 w = ((u16) cp[2 * i + 1] << 8) | -+ (u16) cp[2 * i]; -+ outw (w, UDC_DATA); -+ } -+ } -+ if (last & 1) { -+ outb (*(cp + last - 1), UDC_DATA); -+ } -+ } -+ endpoint->last = last; -+ } -+} -+ -+/* omap1510_read_noniso_rx_fifo -+ * -+ * This function implements TRM Figure 14-28. -+ * -+ * If the endpoint has an active rcv_urb, then the next packet of data is read -+ * from the rcv FIFO and written to rcv_urb->buffer at offset -+ * rcv_urb->actual_length to append the packet data to the data from any -+ * previous packets for this transfer. We assume that there is sufficient room -+ * left in the buffer to hold an entire packet of data. -+ * -+ * The return value is the number of bytes read from the FIFO for this packet. -+ * -+ * In accordance with Figure 14-28, the EP_NUM register must already have been -+ * written with the value to select the appropriate rcv FIFO before this routine -+ * is called. -+ */ -+static int omap1510_read_noniso_rx_fifo (struct usb_endpoint_instance -+ *endpoint) -+{ -+ struct urb *urb = endpoint->rcv_urb; -+ int len = 0; -+ -+ if (urb) { -+ len = inw (UDC_RXFSTAT); -+ -+ if (len) { -+ unsigned char *cp = urb->buffer + urb->actual_length; -+ -+ insw (UDC_DATA, cp, len >> 1); -+ if (len & 1) -+ *(cp + len - 1) = inb (UDC_DATA); -+ } -+ } -+ return len; -+} -+ -+/* omap1510_prepare_for_control_write_status -+ * -+ * This function implements TRM Figure 14-17. -+ * -+ * We have to deal here with non-autodecoded control writes that haven't already -+ * been dealt with by ep0_recv_setup. The non-autodecoded standard control -+ * write requests are: set/clear endpoint feature, set configuration, set -+ * interface, and set descriptor. ep0_recv_setup handles set/clear requests for -+ * ENDPOINT_HALT by halting the endpoint for a set request and resetting the -+ * endpoint for a clear request. ep0_recv_setup returns an error for -+ * SET_DESCRIPTOR requests which causes them to be terminated with a stall by -+ * the setup handler. A SET_INTERFACE request is handled by ep0_recv_setup by -+ * generating a DEVICE_SET_INTERFACE event. This leaves only the -+ * SET_CONFIGURATION event for us to deal with here. -+ * -+ */ -+static void omap1510_prepare_for_control_write_status (struct urb *urb) -+{ -+ struct usb_device_request *request = &urb->device_request;; -+ -+ /* check for a SET_CONFIGURATION request */ -+ if (request->bRequest == USB_REQ_SET_CONFIGURATION) { -+ int configuration = le16_to_cpu (request->wValue) & 0xff; -+ unsigned short devstat = inw (UDC_DEVSTAT); -+ -+ if ((devstat & (UDC_ADD | UDC_CFG)) == UDC_ADD) { -+ /* device is currently in ADDRESSED state */ -+ if (configuration) { -+ /* Assume the specified non-zero configuration -+ * value is valid and switch to the CONFIGURED -+ * state. -+ */ -+ outw (UDC_Dev_Cfg, UDC_SYSCON2); -+ } -+ } else if ((devstat & UDC_CFG) == UDC_CFG) { -+ /* device is currently in CONFIGURED state */ -+ if (!configuration) { -+ /* Switch to ADDRESSED state. */ -+ outw (UDC_Clr_Cfg, UDC_SYSCON2); -+ } -+ } -+ } -+ -+ /* select EP0 tx FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ /* clear endpoint (no data bytes in status stage) */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ /* enable the EP0 tx FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the endpoint */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+} -+ -+/* udc_state_transition_up -+ * udc_state_transition_down -+ * -+ * Helper functions to implement device state changes. The device states and -+ * the events that transition between them are: -+ * -+ * STATE_ATTACHED -+ * || /\ -+ * \/ || -+ * DEVICE_HUB_CONFIGURED DEVICE_HUB_RESET -+ * || /\ -+ * \/ || -+ * STATE_POWERED -+ * || /\ -+ * \/ || -+ * DEVICE_RESET DEVICE_POWER_INTERRUPTION -+ * || /\ -+ * \/ || -+ * STATE_DEFAULT -+ * || /\ -+ * \/ || -+ * DEVICE_ADDRESS_ASSIGNED DEVICE_RESET -+ * || /\ -+ * \/ || -+ * STATE_ADDRESSED -+ * || /\ -+ * \/ || -+ * DEVICE_CONFIGURED DEVICE_DE_CONFIGURED -+ * || /\ -+ * \/ || -+ * STATE_CONFIGURED -+ * -+ * udc_state_transition_up transitions up (in the direction from STATE_ATTACHED -+ * to STATE_CONFIGURED) from the specified initial state to the specified final -+ * state, passing through each intermediate state on the way. If the initial -+ * state is at or above (i.e. nearer to STATE_CONFIGURED) the final state, then -+ * no state transitions will take place. -+ * -+ * udc_state_transition_down transitions down (in the direction from -+ * STATE_CONFIGURED to STATE_ATTACHED) from the specified initial state to the -+ * specified final state, passing through each intermediate state on the way. -+ * If the initial state is at or below (i.e. nearer to STATE_ATTACHED) the final -+ * state, then no state transitions will take place. -+ * -+ * These functions must only be called with interrupts disabled. -+ */ -+static void udc_state_transition_up (usb_device_state_t initial, -+ usb_device_state_t final) -+{ -+ if (initial < final) { -+ switch (initial) { -+ case STATE_ATTACHED: -+ usbd_device_event_irq (udc_device, -+ DEVICE_HUB_CONFIGURED, 0); -+ if (final == STATE_POWERED) -+ break; -+ case STATE_POWERED: -+ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); -+ if (final == STATE_DEFAULT) -+ break; -+ case STATE_DEFAULT: -+ usbd_device_event_irq (udc_device, -+ DEVICE_ADDRESS_ASSIGNED, 0); -+ if (final == STATE_ADDRESSED) -+ break; -+ case STATE_ADDRESSED: -+ usbd_device_event_irq (udc_device, DEVICE_CONFIGURED, -+ 0); -+ case STATE_CONFIGURED: -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+static void udc_state_transition_down (usb_device_state_t initial, -+ usb_device_state_t final) -+{ -+ if (initial > final) { -+ switch (initial) { -+ case STATE_CONFIGURED: -+ usbd_device_event_irq (udc_device, DEVICE_DE_CONFIGURED, 0); -+ if (final == STATE_ADDRESSED) -+ break; -+ case STATE_ADDRESSED: -+ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); -+ if (final == STATE_DEFAULT) -+ break; -+ case STATE_DEFAULT: -+ usbd_device_event_irq (udc_device, DEVICE_POWER_INTERRUPTION, 0); -+ if (final == STATE_POWERED) -+ break; -+ case STATE_POWERED: -+ usbd_device_event_irq (udc_device, DEVICE_HUB_RESET, 0); -+ case STATE_ATTACHED: -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+/* Handle all device state changes. -+ * This function implements TRM Figure 14-21. -+ */ -+static void omap1510_udc_state_changed (void) -+{ -+ u16 bits; -+ u16 devstat = inw (UDC_DEVSTAT); -+ -+ UDCDBGA ("state changed, devstat %x, old %x", devstat, udc_devstat); -+ -+ bits = devstat ^ udc_devstat; -+ if (bits) { -+ if (bits & UDC_ATT) { -+ if (devstat & UDC_ATT) { -+ UDCDBG ("device attached and powered"); -+ udc_state_transition_up (udc_device->device_state, STATE_POWERED); -+ } else { -+ UDCDBG ("device detached or unpowered"); -+ udc_state_transition_down (udc_device->device_state, STATE_ATTACHED); -+ } -+ } -+ if (bits & UDC_USB_Reset) { -+ if (devstat & UDC_USB_Reset) { -+ UDCDBG ("device reset in progess"); -+ udc_state_transition_down (udc_device->device_state, STATE_POWERED); -+ } else { -+ UDCDBG ("device reset completed"); -+ } -+ } -+ if (bits & UDC_DEF) { -+ if (devstat & UDC_DEF) { -+ UDCDBG ("device entering default state"); -+ udc_state_transition_up (udc_device->device_state, STATE_DEFAULT); -+ } else { -+ UDCDBG ("device leaving default state"); -+ udc_state_transition_down (udc_device->device_state, STATE_POWERED); -+ } -+ } -+ if (bits & UDC_SUS) { -+ if (devstat & UDC_SUS) { -+ UDCDBG ("entering suspended state"); -+ usbd_device_event_irq (udc_device, DEVICE_BUS_INACTIVE, 0); -+ } else { -+ UDCDBG ("leaving suspended state"); -+ usbd_device_event_irq (udc_device, DEVICE_BUS_ACTIVITY, 0); -+ } -+ } -+ if (bits & UDC_R_WK_OK) { -+ UDCDBGA ("remote wakeup %s", (devstat & UDC_R_WK_OK) -+ ? "enabled" : "disabled"); -+ } -+ if (bits & UDC_ADD) { -+ if (devstat & UDC_ADD) { -+ UDCDBG ("default -> addressed"); -+ udc_state_transition_up (udc_device->device_state, STATE_ADDRESSED); -+ } else { -+ UDCDBG ("addressed -> default"); -+ udc_state_transition_down (udc_device->device_state, STATE_DEFAULT); -+ } -+ } -+ if (bits & UDC_CFG) { -+ if (devstat & UDC_CFG) { -+ UDCDBG ("device configured"); -+ /* The ep0_recv_setup function generates the -+ * DEVICE_CONFIGURED event when a -+ * USB_REQ_SET_CONFIGURATION setup packet is -+ * received, so we should already be in the -+ * state STATE_CONFIGURED. -+ */ -+ udc_state_transition_up (udc_device->device_state, STATE_CONFIGURED); -+ } else { -+ UDCDBG ("device deconfigured"); -+ udc_state_transition_down (udc_device->device_state, STATE_ADDRESSED); -+ } -+ } -+ } -+ -+ /* Clear interrupt source */ -+ outw (UDC_DS_Chg, UDC_IRQ_SRC); -+ -+ /* Save current DEVSTAT */ -+ udc_devstat = devstat; -+} -+ -+static void s3c2410_udc_ep0(void) -+{ -+ u_int8_t ep0csr; -+ -+ UDCDBG("-> Entering EP0 handler"); -+ -+ S3C2410_UDC_SETIX(EP0); -+ ep0csr = inb(S3C2410_UDC_IN_CSR1_REG); -+ -+ /* clear stall status */ -+ if (ep0csr & S3C2410_UDC_EP0_CSR_SENTSTL) { -+ clear_sp0_sst; -+ /* FIXME */ -+ ep0_idle(); -+ } -+ -+ if (ep0csr & S3C2410_UDC_EP0_CSR_SE -+ && dev->ep0state != EP0_IDLE) { -+ clear_ep0_se; -+ ep0_idle(); -+ } -+ -+ switch (dev->ep0state) { -+ case EP0_IDLE: -+ if (ep0crs & S3C2410_UDC_EP0_CSR_OPKRDY) { -+ } -+ break; -+ case EP0_IN_DATA_PHASE: -+ break; -+ case EP0_OUT_DATA_PHASE: -+ break; -+ case EP0_END_XFER: -+ break; -+ case EP0_STALL: -+ set_ep0_ss; -+ break; -+ } -+} -+ -+ -+} -+ -+/* Handle SETUP USB interrupt. -+ * This function implements TRM Figure 14-14. -+ */ -+static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint) -+{ -+ UDCDBG ("-> Entering device setup"); -+ -+ do { -+ const int setup_pktsize = 8; -+ unsigned char *datap = -+ (unsigned char *) &ep0_urb->device_request; -+ -+ /* Gain access to EP 0 setup FIFO */ -+ outw (UDC_Setup_Sel, UDC_EP_NUM); -+ -+ /* Read control request data */ -+ insb (UDC_DATA, datap, setup_pktsize); -+ -+ UDCDBGA ("EP0 setup read [%x %x %x %x %x %x %x %x]", -+ *(datap + 0), *(datap + 1), *(datap + 2), -+ *(datap + 3), *(datap + 4), *(datap + 5), -+ *(datap + 6), *(datap + 7)); -+ -+ /* Reset EP0 setup FIFO */ -+ outw (0, UDC_EP_NUM); -+ } while (inw (UDC_IRQ_SRC) & UDC_Setup); -+ -+ /* Try to process setup packet */ -+ if (ep0_recv_setup (ep0_urb)) { -+ /* Not a setup packet, stall next EP0 transaction */ -+ udc_stall_ep (0); -+ UDCDBG ("can't parse setup packet, still waiting for setup"); -+ return; -+ } -+ -+ /* Check direction */ -+ if ((ep0_urb->device_request.bmRequestType & USB_REQ_DIRECTION_MASK) -+ == USB_REQ_HOST2DEVICE) { -+ UDCDBG ("control write on EP0"); -+ if (le16_to_cpu (ep0_urb->device_request.wLength)) { -+ /* We don't support control write data stages. -+ * The only standard control write request with a data -+ * stage is SET_DESCRIPTOR, and ep0_recv_setup doesn't -+ * support that so we just stall those requests. A -+ * function driver might support a non-standard -+ * write request with a data stage, but it isn't -+ * obvious what we would do with the data if we read it -+ * so we'll just stall it. It seems like the API isn't -+ * quite right here. -+ */ -+#if 0 -+ /* Here is what we would do if we did support control -+ * write data stages. -+ */ -+ ep0_urb->actual_length = 0; -+ outw (0, UDC_EP_NUM); -+ /* enable the EP0 rx FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+#else -+ /* Stall this request */ -+ UDCDBG ("Stalling unsupported EP0 control write data " -+ "stage."); -+ udc_stall_ep (0); -+#endif -+ } else { -+ omap1510_prepare_for_control_write_status (ep0_urb); -+ } -+ } else { -+ UDCDBG ("control read on EP0"); -+ /* The ep0_recv_setup function has already placed our response -+ * packet data in ep0_urb->buffer and the packet length in -+ * ep0_urb->actual_length. -+ */ -+ endpoint->tx_urb = ep0_urb; -+ endpoint->sent = 0; -+ /* select the EP0 tx FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ /* Write packet data to the FIFO. omap1510_write_noniso_tx_fifo -+ * will update endpoint->last with the number of bytes written -+ * to the FIFO. -+ */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable the FIFO to start the packet transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the EP0 tx FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+ -+ UDCDBG ("<- Leaving device setup"); -+} -+ -+/* Handle endpoint 0 RX interrupt -+ * This routine implements TRM Figure 14-16. -+ */ -+static void omap1510_udc_ep0_rx (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short status; -+ -+ UDCDBG ("RX on EP0"); -+ /* select EP0 rx FIFO */ -+ outw (UDC_EP_Sel, UDC_EP_NUM); -+ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ /* Check direction */ -+ if ((ep0_urb->device_request.bmRequestType -+ & USB_REQ_DIRECTION_MASK) == USB_REQ_HOST2DEVICE) { -+ /* This rx interrupt must be for a control write data -+ * stage packet. -+ * -+ * We don't support control write data stages. -+ * We should never end up here. -+ */ -+ -+ /* clear the EP0 rx FIFO */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ -+ /* deselect the EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ -+ UDCDBG ("Stalling unexpected EP0 control write " -+ "data stage packet"); -+ udc_stall_ep (0); -+ } else { -+ /* This rx interrupt must be for a control read status -+ * stage packet. -+ */ -+ UDCDBG ("ACK on EP0 control read status stage packet"); -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBG ("EP0 stall during RX"); -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } else { -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } -+} -+ -+/* Handle endpoint 0 TX interrupt -+ * This routine implements TRM Figure 14-18. -+ */ -+static void omap1510_udc_ep0_tx (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short status; -+ struct usb_device_request *request = &ep0_urb->device_request; -+ -+ UDCDBG ("TX on EP0"); -+ /* select EP0 TX FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ -+ status = inw (UDC_STAT_FLG); -+ if (status & UDC_ACK) { -+ /* Check direction */ -+ if ((request->bmRequestType & USB_REQ_DIRECTION_MASK) == -+ USB_REQ_HOST2DEVICE) { -+ /* This tx interrupt must be for a control write status -+ * stage packet. -+ */ -+ UDCDBG ("ACK on EP0 control write status stage packet"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } else { -+ /* This tx interrupt must be for a control read data -+ * stage packet. -+ */ -+ int wLength = le16_to_cpu (request->wLength); -+ -+ /* Update our count of bytes sent so far in this -+ * transfer. -+ */ -+ endpoint->sent += endpoint->last; -+ -+ /* We are finished with this transfer if we have sent -+ * all of the bytes in our tx urb (urb->actual_length) -+ * unless we need a zero-length terminating packet. We -+ * need a zero-length terminating packet if we returned -+ * fewer bytes than were requested (wLength) by the host, -+ * and the number of bytes we returned is an exact -+ * multiple of the packet size endpoint->tx_packetSize. -+ */ -+ if ((endpoint->sent == ep0_urb->actual_length) -+ && ((ep0_urb->actual_length == wLength) -+ || (endpoint->last != -+ endpoint->tx_packetSize))) { -+ /* Done with control read data stage. */ -+ UDCDBG ("control read data stage complete"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ /* select EP0 RX FIFO to prepare for control -+ * read status stage. -+ */ -+ outw (UDC_EP_Sel, UDC_EP_NUM); -+ /* clear the EP0 RX FIFO */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ /* enable the EP0 RX FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the EP0 RX FIFO */ -+ outw (0, UDC_EP_NUM); -+ } else { -+ /* We still have another packet of data to send -+ * in this control read data stage or else we -+ * need a zero-length terminating packet. -+ */ -+ UDCDBG ("ACK control read data stage packet"); -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable the EP0 tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBG ("EP0 stall during TX"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } else { -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+} -+ -+/* Handle RX transaction on non-ISO endpoint. -+ * This function implements TRM Figure 14-27. -+ * The ep argument is a physical endpoint number for a non-ISO OUT endpoint -+ * in the range 1 to 15. -+ */ -+static void omap1510_udc_epn_rx (int ep) -+{ -+ unsigned short status; -+ -+ /* Check endpoint status */ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ int nbytes; -+ struct usb_endpoint_instance *endpoint = -+ omap1510_find_ep (ep); -+ -+ nbytes = omap1510_read_noniso_rx_fifo (endpoint); -+ usbd_rcv_complete (endpoint, nbytes, 0); -+ -+ /* enable rx FIFO to prepare for next packet */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } else if (status & UDC_STALL) { -+ UDCDBGA ("STALL on RX endpoint %d", ep); -+ } else if (status & UDC_NAK) { -+ UDCDBGA ("NAK on RX ep %d", ep); -+ } else { -+ serial_printf ("omap-bi: RX on ep %d with status %x", ep, -+ status); -+ } -+} -+ -+/* Handle TX transaction on non-ISO endpoint. -+ * This function implements TRM Figure 14-29. -+ * The ep argument is a physical endpoint number for a non-ISO IN endpoint -+ * in the range 16 to 30. -+ */ -+static void omap1510_udc_epn_tx (int ep) -+{ -+ unsigned short status; -+ -+ /*serial_printf("omap1510_udc_epn_tx( %x )\n",ep); */ -+ -+ /* Check endpoint status */ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ struct usb_endpoint_instance *endpoint = -+ omap1510_find_ep (ep); -+ -+ /* We need to transmit a terminating zero-length packet now if -+ * we have sent all of the data in this URB and the transfer -+ * size was an exact multiple of the packet size. -+ */ -+ if (endpoint->tx_urb -+ && (endpoint->last == endpoint->tx_packetSize) -+ && (endpoint->tx_urb->actual_length - endpoint->sent - -+ endpoint->last == 0)) { -+ /* Prepare to transmit a zero-length packet. */ -+ endpoint->sent += endpoint->last; -+ /* write 0 bytes of data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } else if (endpoint->tx_urb -+ && endpoint->tx_urb->actual_length) { -+ /* retire the data that was just sent */ -+ usbd_tx_complete (endpoint); -+ /* Check to see if we have more data ready to transmit -+ * now. -+ */ -+ if (endpoint->tx_urb -+ && endpoint->tx_urb->actual_length) { -+ /* write data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBGA ("STALL on TX endpoint %d", ep); -+ } else if (status & UDC_NAK) { -+ UDCDBGA ("NAK on TX endpoint %d", ep); -+ } else { -+ /*serial_printf("omap-bi: TX on ep %d with status %x\n", ep, status); */ -+ } -+} -+ -+ -+/* -+------------------------------------------------------------------------------- -+*/ -+ -+/* Handle general USB interrupts and dispatch according to type. -+ * This function implements TRM Figure 14-13. -+ */ -+void s3c2410_udc_irq (void) -+{ -+ u_int8_t save_idx = inb(S3C2410_UDC_INDEX_REG); -+ u_int8_t usb_status = inb(S3C2410_UDC_USB_INT_REG); -+ u_int8_t usbd_status = inb(S3C2410_UDC_EP_INT_REG); -+ -+ UDCDBGA("< IRQ usbs=0x%02x, usbds=0x%02x start >", usb_status, -+ usbd_status); -+ -+ if (usb_status & S3C2410_UDC_USBINT_RESET) { -+ valid_irq++; -+ } -+ -+ if (usb_status & S3C2410_UDC_USBINT_RESUME) { -+ valid_irq++; -+ -+ } -+ -+ if (usb_status & S3C2410_UDC_USBINT_SUSPEND) { -+ valid_irq++; -+ -+ } -+ -+ /* Endpoint Interrupts */ -+ if (usbd_status) { -+ int i; -+ -+ if (usbd_status & S3C2410_UDC_INT_EP0) { -+ s3c2410_udc_ep0(); -+ outb(S3C2410_UDC_INT_EP0, S3C2410_UDC_EP_INT_REG); -+ valid_irq++; -+ } -+ -+ for (i = 1; i < 5; i++) { -+ u_int32_t tmp = 1 << i; -+ -+ if (usbd_status & tmp) { -+ /* FIXME: Handle EP X */ -+ s3c2410_udc_epn(i); -+ outb(tmp, S3C2410_UDC_EP_INT_REG); -+ valid_irq++; -+ } -+ } -+ } -+ outb(save_idx, S3C2410_UDC_INDEX_REG); -+ -+#if 0 -+ if (!(irq_src & ~UDC_SOF_Flg)) /* ignore SOF interrupts ) */ -+ return; -+ -+ UDCDBGA ("< IRQ #%d start >- %x", udc_interrupts, irq_src); -+ /*serial_printf("< IRQ #%d start >- %x\n", udc_interrupts, irq_src); */ -+ -+ if (irq_src & UDC_DS_Chg) { -+ /* Device status changed */ -+ omap1510_udc_state_changed (); -+ valid_irq++; -+ } -+ if (irq_src & UDC_EP0_RX) { -+ /* Endpoint 0 receive */ -+ outw (UDC_EP0_RX, UDC_IRQ_SRC); /* ack interrupt */ -+ omap1510_udc_ep0_rx (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ if (irq_src & UDC_EP0_TX) { -+ /* Endpoint 0 transmit */ -+ outw (UDC_EP0_TX, UDC_IRQ_SRC); /* ack interrupt */ -+ omap1510_udc_ep0_tx (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ if (irq_src & UDC_Setup) { -+ /* Device setup */ -+ omap1510_udc_setup (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ /*if (!valid_irq) */ -+ /* serial_printf("unknown interrupt, IRQ_SRC %.4x\n", irq_src); */ -+#endif -+ UDCDBGA ("< IRQ end >", udc_interrupts); -+ -+ udc_interrupts++; -+} -+ -+/* This function implements TRM Figure 14-26. */ -+void omap1510_udc_noniso_irq (void) -+{ -+ unsigned short epnum; -+ unsigned short irq_src = inw (UDC_IRQ_SRC); -+ int valid_irq = 0; -+ -+ if (!(irq_src & (UDC_EPn_RX | UDC_EPn_TX))) -+ return; -+ -+ UDCDBGA ("non-ISO IRQ, IRQ_SRC %x", inw (UDC_IRQ_SRC)); -+ -+ if (irq_src & UDC_EPn_RX) { /* Endpoint N OUT transaction */ -+ /* Determine the endpoint number for this interrupt */ -+ epnum = (inw (UDC_EPN_STAT) & 0x0f00) >> 8; -+ UDCDBGA ("RX on ep %x", epnum); -+ -+ /* acknowledge interrupt */ -+ outw (UDC_EPn_RX, UDC_IRQ_SRC); -+ -+ if (epnum) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | epnum, UDC_EP_NUM); -+ -+ omap1510_udc_epn_rx (epnum); -+ -+ /* deselect the endpoint FIFO */ -+ outw (epnum, UDC_EP_NUM); -+ } -+ valid_irq++; -+ } -+ if (irq_src & UDC_EPn_TX) { /* Endpoint N IN transaction */ -+ /* Determine the endpoint number for this interrupt */ -+ epnum = (inw (UDC_EPN_STAT) & 0x000f) | USB_DIR_IN; -+ UDCDBGA ("TX on ep %x", epnum); -+ -+ /* acknowledge interrupt */ -+ outw (UDC_EPn_TX, UDC_IRQ_SRC); -+ -+ if (epnum) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); -+ -+ omap1510_udc_epn_tx (epnum); -+ -+ /* deselect the endpoint FIFO */ -+ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); -+ } -+ valid_irq++; -+ } -+ if (!valid_irq) -+ serial_printf (": unknown non-ISO interrupt, IRQ_SRC %.4x\n", -+ irq_src); -+} -+ -+/* -+------------------------------------------------------------------------------- -+*/ -+ -+ -+/* -+ * Start of public functions. -+ */ -+ -+/* Called to start packet transmission. */ -+void udc_endpoint_write (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short epnum = -+ endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("Starting transmit on ep %x", epnum); -+ -+ if (endpoint->tx_urb) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); -+ /* write data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the endpoint FIFO */ -+ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); -+ } -+} -+ -+/* Start to initialize h/w stuff */ -+int udc_init (void) -+{ -+ u16 udc_rev; -+ uchar value; -+ ulong gpio; -+ int i; -+ -+ /* Let the device settle down before we start */ -+ for (i = 0; i < UDC_INIT_MDELAY; i++) udelay(1000); -+ -+ udc_device = NULL; -+ -+ UDCDBG ("starting"); -+ -+ /* Check peripheral reset. Must be 1 to make sure -+ MPU TIPB peripheral reset is inactive */ -+ UDCREG (ARM_RSTCT2); -+ -+ /* Set and check clock control. -+ * We might ought to be using the clock control API to do -+ * this instead of fiddling with the clock registers directly -+ * here. -+ */ -+ outw ((1 << 4) | (1 << 5), CLOCK_CTRL); -+ UDCREG (CLOCK_CTRL); -+ /* Set and check APLL */ -+ outw (0x0008, APLL_CTRL); -+ UDCREG (APLL_CTRL); -+ /* Set and check DPLL */ -+ outw (0x2210, DPLL_CTRL); -+ UDCREG (DPLL_CTRL); -+ /* Set and check SOFT */ -+ outw ((1 << 4) | (1 << 3) | 1, SOFT_REQ); -+ /* Short delay to wait for DPLL */ -+ udelay (1000); -+ -+ /* Print banner with device revision */ -+ udc_rev = inw (UDC_REV) & 0xff; -+ printf ("USB: TI OMAP1510 USB function module rev %d.%d\n", -+ udc_rev >> 4, udc_rev & 0xf); -+ -+#ifdef CONFIG_OMAP_SX1 -+ i2c_read (0x32, 0x04, 1, &value, 1); -+ value |= 0x04; -+ i2c_write (0x32, 0x04, 1, &value, 1); -+ -+ i2c_read (0x32, 0x03, 1, &value, 1); -+ value |= 0x01; -+ i2c_write (0x32, 0x03, 1, &value, 1); -+ -+ gpio = inl(GPIO_PIN_CONTROL_REG); -+ gpio |= 0x0002; /* A_IRDA_OFF */ -+ gpio |= 0x0800; /* A_SWITCH */ -+ gpio |= 0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_PIN_CONTROL_REG); -+ -+ gpio = inl(GPIO_DIR_CONTROL_REG); -+ gpio &= ~0x0002; /* A_IRDA_OFF */ -+ gpio &= ~0x0800; /* A_SWITCH */ -+ gpio &= ~0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_DIR_CONTROL_REG); -+ -+ gpio = inl(GPIO_DATA_OUTPUT_REG); -+ gpio |= 0x0002; /* A_IRDA_OFF */ -+ gpio &= ~0x0800; /* A_SWITCH */ -+ gpio &= ~0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_DATA_OUTPUT_REG); -+#endif -+ -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); -+ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+ -+ /* -+ * At this point, device is ready for configuration... -+ */ -+ -+ UDCDBG ("disable USB interrupts"); -+ outw (0, UDC_IRQ_EN); -+ UDCREG (UDC_IRQ_EN); -+ -+ UDCDBG ("disable USB DMA"); -+ outw (0, UDC_DMA_IRQ_EN); -+ UDCREG (UDC_DMA_IRQ_EN); -+ -+ UDCDBG ("initialize SYSCON1"); -+ outw (UDC_Self_Pwr | UDC_Pullup_En, UDC_SYSCON1); -+ UDCREG (UDC_SYSCON1); -+ -+ return 0; -+} -+ -+/* Stall endpoint */ -+static void udc_stall_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("stall ep_addr %d", ep_addr); -+ -+ /* REVISIT? -+ * The OMAP TRM section 14.2.4.2 says we must check that the FIFO -+ * is empty before halting the endpoint. The current implementation -+ * doesn't check that the FIFO is empty. -+ */ -+ -+ if (!ep_num) { -+ outw (UDC_Stall_Cmd, UDC_SYSCON2); -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { -+ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { -+ /* we have a valid rx endpoint, so halt it */ -+ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_Halt, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ } -+ } else { -+ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { -+ /* we have a valid tx endpoint, so halt it */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_Halt, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ } -+ } -+} -+ -+/* Reset endpoint */ -+#if 0 -+static void udc_reset_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("reset ep_addr %d", ep_addr); -+ -+ if (!ep_num) { -+ /* control endpoint 0 can't be reset */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { -+ UDCDBGA ("UDC_EP_RX(%d) = 0x%04x", ep_num, -+ inw (UDC_EP_RX (ep_num))); -+ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { -+ /* we have a valid rx endpoint, so reset it */ -+ outw (ep_num | UDC_EP_Sel, UDC_EP_NUM); -+ outw (UDC_Reset_EP, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ UDCDBGA ("OUT endpoint %d reset", ep_num); -+ } -+ } else { -+ UDCDBGA ("UDC_EP_TX(%d) = 0x%04x", ep_num, -+ inw (UDC_EP_TX (ep_num))); -+ /* Resetting of tx endpoints seems to be causing the USB function -+ * module to fail, which causes problems when the driver is -+ * uninstalled. We'll skip resetting tx endpoints for now until -+ * we figure out what the problem is. -+ */ -+#if 0 -+ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { -+ /* we have a valid tx endpoint, so reset it */ -+ outw (ep_num | UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ outw (UDC_Reset_EP, UDC_CTRL); -+ outw (ep_num | UDC_EP_Dir, UDC_EP_NUM); -+ UDCDBGA ("IN endpoint %d reset", ep_num); -+ } -+#endif -+ } -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_check_ep - check logical endpoint -+ * -+ * Return physical endpoint number to use for this logical endpoint or zero if not valid. -+ */ -+#if 0 -+int udc_check_ep (int logical_endpoint, int packetsize) -+{ -+ if ((logical_endpoint == 0x80) || -+ ((logical_endpoint & 0x8f) != logical_endpoint)) { -+ return 0; -+ } -+ -+ switch (packetsize) { -+ case 8: -+ case 16: -+ case 32: -+ case 64: -+ case 128: -+ case 256: -+ case 512: -+ break; -+ default: -+ return 0; -+ } -+ -+ return EP_ADDR_TO_PHYS_EP (logical_endpoint); -+} -+#endif -+ -+/* -+ * udc_setup_ep - setup endpoint -+ * -+ * Associate a physical endpoint with endpoint_instance -+ */ -+void udc_setup_ep (struct usb_device_instance *device, -+ unsigned int ep, struct usb_endpoint_instance *endpoint) -+{ -+ UDCDBGA ("setting up endpoint addr %x", endpoint->endpoint_address); -+ -+ /* This routine gets called by bi_modinit for endpoint 0 and from -+ * bi_config for all of the other endpoints. bi_config gets called -+ * during the DEVICE_CREATE, DEVICE_CONFIGURED, and -+ * DEVICE_SET_INTERFACE events. We need to reconfigure the OMAP packet -+ * RAM after bi_config scans the selected device configuration and -+ * initializes the endpoint structures, but before this routine enables -+ * the OUT endpoint FIFOs. Since bi_config calls this routine in a -+ * loop for endpoints 1 through UDC_MAX_ENDPOINTS, we reconfigure our -+ * packet RAM here when ep==1. -+ * I really hate to do this here, but it seems like the API exported -+ * by the USB bus interface controller driver to the usbd-bi module -+ * isn't quite right so there is no good place to do this. -+ */ -+ if (ep == 1) { -+ omap1510_deconfigure_device (); -+ omap1510_configure_device (device); -+ } -+ -+ if (endpoint && (ep < UDC_MAX_ENDPOINTS)) { -+ int ep_addr = endpoint->endpoint_address; -+ -+ if (!ep_addr) { -+ /* nothing to do for endpoint 0 */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* nothing to do for IN (tx) endpoints */ -+ } else { /* OUT (rx) endpoint */ -+ if (endpoint->rcv_packetSize) { -+ /*struct urb* urb = &(urb_out_array[ep&0xFF]); */ -+ /*urb->endpoint = endpoint; */ -+ /*urb->device = device; */ -+ /*urb->buffer_length = sizeof(urb->buffer); */ -+ -+ /*endpoint->rcv_urb = urb; */ -+ omap1510_prepare_endpoint_for_rx (ep_addr); -+ } -+ } -+ } -+} -+ -+/** -+ * udc_disable_ep - disable endpoint -+ * @ep: -+ * -+ * Disable specified endpoint -+ */ -+#if 0 -+void udc_disable_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ struct usb_endpoint_instance *endpoint = omap1510_find_ep (ep_addr); /*udc_device->bus->endpoint_array + ep; */ -+ -+ UDCDBGA ("disable ep_addr %d", ep_addr); -+ -+ if (!ep_num) { -+ /* nothing to do for endpoint 0 */ ; -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ if (endpoint->tx_packetSize) { -+ /* we have a valid tx endpoint */ -+ /*usbd_flush_tx(endpoint); */ -+ endpoint->tx_urb = NULL; -+ } -+ } else { -+ if (endpoint->rcv_packetSize) { -+ /* we have a valid rx endpoint */ -+ /*usbd_flush_rcv(endpoint); */ -+ endpoint->rcv_urb = NULL; -+ } -+ } -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_connected - is the USB cable connected -+ * -+ * Return non-zero if cable is connected. -+ */ -+#if 0 -+int udc_connected (void) -+{ -+ return ((inw (UDC_DEVSTAT) & UDC_ATT) == UDC_ATT); -+} -+#endif -+ -+/* Turn on the USB connection by enabling the pullup resistor */ -+void udc_connect (void) -+{ -+ UDCDBG ("connect, enable Pullup"); -+} -+ -+/* Turn off the USB connection by disabling the pullup resistor */ -+void udc_disconnect (void) -+{ -+ UDCDBG ("disconnect, disable Pullup"); -+} -+ -+/* ************************************************************************** */ -+ -+ -+/* -+ * udc_disable_interrupts - disable interrupts -+ * switch off interrupts -+ */ -+#if 0 -+void udc_disable_interrupts (struct usb_device_instance *device) -+{ -+ UDCDBG ("disabling all interrupts"); -+ outw (0, UDC_IRQ_EN); -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_ep0_packetsize - return ep0 packetsize -+ */ -+#if 0 -+int udc_ep0_packetsize (void) -+{ -+ return EP0_PACKETSIZE; -+} -+#endif -+ -+/* Switch on the UDC */ -+void udc_enable (struct usb_device_instance *device) -+{ -+ UDCDBGA ("enable device %p, status %d", device, device->status); -+ -+ /* initialize driver state variables */ -+ udc_devstat = 0; -+ -+ /* Save the device structure pointer */ -+ udc_device = device; -+ -+ /* Setup ep0 urb */ -+ if (!ep0_urb) { -+ ep0_urb = -+ usbd_alloc_urb (udc_device, -+ udc_device->bus->endpoint_array); -+ } else { -+ serial_printf ("udc_enable: ep0_urb already allocated %p\n", -+ ep0_urb); -+ } -+ -+#ifdef FIXME -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_CTRL | UDC_VBUS_MODE, -+ FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+#endif -+ -+ s3c2410_configure_device(device); -+} -+ -+/* Switch off the UDC */ -+void udc_disable (void) -+{ -+ UDCDBG ("disable UDC"); -+ -+ s3c2410_deconfigure_device(); -+ -+#ifdef FIXME -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); -+ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+#endif -+ -+ /* Free ep0 URB */ -+ if (ep0_urb) { -+ /*usbd_dealloc_urb(ep0_urb); */ -+ ep0_urb = NULL; -+ } -+ -+ /* Reset device pointer. -+ * We ought to do this here to balance the initialization of udc_device -+ * in udc_enable, but some of our other exported functions get called -+ * by the bus interface driver after udc_disable, so we have to hang on -+ * to the device pointer to avoid a null pointer dereference. */ -+ /* udc_device = NULL; */ -+} -+ -+/** -+ * udc_startup - allow udc code to do any additional startup -+ */ -+void udc_startup_events (struct usb_device_instance *device) -+{ -+ /* The DEVICE_INIT event puts the USB device in the state STATE_INIT. */ -+ usbd_device_event_irq (device, DEVICE_INIT, 0); -+ -+ /* The DEVICE_CREATE event puts the USB device in the state -+ * STATE_ATTACHED. -+ */ -+ usbd_device_event_irq (device, DEVICE_CREATE, 0); -+ -+ /* Some USB controller driver implementations signal -+ * DEVICE_HUB_CONFIGURED and DEVICE_RESET events here. -+ * DEVICE_HUB_CONFIGURED causes a transition to the state STATE_POWERED, -+ * and DEVICE_RESET causes a transition to the state STATE_DEFAULT. -+ * The OMAP USB client controller has the capability to detect when the -+ * USB cable is connected to a powered USB bus via the ATT bit in the -+ * DEVSTAT register, so we will defer the DEVICE_HUB_CONFIGURED and -+ * DEVICE_RESET events until later. -+ */ -+ -+ udc_enable (device); -+} -+ -+#endif -diff --git a/examples/Makefile b/examples/Makefile -index a342d75..082e52e 100644 ---- a/examples/Makefile -+++ b/examples/Makefile -@@ -60,7 +60,7 @@ endif - include $(TOPDIR)/config.mk - - SREC = hello_world.srec --BIN = hello_world.bin hello_world -+BIN = hello_world hello_world.bin - - ifeq ($(CPU),mpc8xx) - SREC = test_burst.srec -@@ -122,7 +122,7 @@ clibdir := $(shell dirname `$(CC) $(CFLA - - CPPFLAGS += -I.. - --all: .depend $(OBJS) $(LIB) $(SREC) $(BIN) -+all: .depend $(OBJS) $(LIB) $(BIN) $(SREC) - - ######################################################################### - $(LIB): .depend $(LIBOBJS) -diff --git a/include/asm-arm/arch-s3c24x0/mmc.h b/include/asm-arm/arch-s3c24x0/mmc.h -new file mode 100644 -index 0000000..d9178f3 ---- /dev/null -+++ b/include/asm-arm/arch-s3c24x0/mmc.h -@@ -0,0 +1,112 @@ -+/* -+ * linux/drivers/mmc/mmc_pxa.h -+ * -+ * Author: Vladimir Shebordaev, Igor Oblakov -+ * Copyright: MontaVista Software Inc. -+ * -+ * $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#ifndef __MMC_PXA_P_H__ -+#define __MMC_PXA_P_H__ -+ -+#include <asm/arch/regs-sdi.h> -+ -+#define MMC_DEFAULT_RCA (1<<16) -+ -+#define MMC_BLOCK_SIZE 512 -+#define MMC_CMD_RESET 0 -+#define MMC_CMD_SEND_OP_COND 1 -+#define MMC_CMD_ALL_SEND_CID 2 -+#define MMC_CMD_SET_RCA 3 -+#define MMC_CMD_SELECT_CARD 7 -+#define MMC_CMD_SEND_CSD 9 -+#define MMC_CMD_SEND_CID 10 -+#define MMC_CMD_SEND_STATUS 13 -+#define MMC_CMD_SET_BLOCKLEN 16 -+#define MMC_CMD_READ_BLOCK 17 -+#define MMC_CMD_RD_BLK_MULTI 18 -+#define MMC_CMD_WRITE_BLOCK 24 -+ -+#define MMC_MAX_BLOCK_SIZE 512 -+ -+#define MMC_R1_IDLE_STATE 0x01 -+#define MMC_R1_ERASE_STATE 0x02 -+#define MMC_R1_ILLEGAL_CMD 0x04 -+#define MMC_R1_COM_CRC_ERR 0x08 -+#define MMC_R1_ERASE_SEQ_ERR 0x01 -+#define MMC_R1_ADDR_ERR 0x02 -+#define MMC_R1_PARAM_ERR 0x04 -+ -+#define MMC_R1B_WP_ERASE_SKIP 0x0002 -+#define MMC_R1B_ERR 0x0004 -+#define MMC_R1B_CC_ERR 0x0008 -+#define MMC_R1B_CARD_ECC_ERR 0x0010 -+#define MMC_R1B_WP_VIOLATION 0x0020 -+#define MMC_R1B_ERASE_PARAM 0x0040 -+#define MMC_R1B_OOR 0x0080 -+#define MMC_R1B_IDLE_STATE 0x0100 -+#define MMC_R1B_ERASE_RESET 0x0200 -+#define MMC_R1B_ILLEGAL_CMD 0x0400 -+#define MMC_R1B_COM_CRC_ERR 0x0800 -+#define MMC_R1B_ERASE_SEQ_ERR 0x1000 -+#define MMC_R1B_ADDR_ERR 0x2000 -+#define MMC_R1B_PARAM_ERR 0x4000 -+ -+typedef struct mmc_cid -+{ -+/* FIXME: BYTE_ORDER */ -+ uchar year:4, -+ month:4; -+ uchar sn[3]; -+ uchar fwrev:4, -+ hwrev:4; -+ uchar name[6]; -+ uchar id[3]; -+} mmc_cid_t; -+ -+typedef struct mmc_csd -+{ -+ uchar ecc:2, -+ file_format:2, -+ tmp_write_protect:1, -+ perm_write_protect:1, -+ copy:1, -+ file_format_grp:1; -+ uint64_t content_prot_app:1, -+ rsvd3:4, -+ write_bl_partial:1, -+ write_bl_len:4, -+ r2w_factor:3, -+ default_ecc:2, -+ wp_grp_enable:1, -+ wp_grp_size:5, -+ erase_grp_mult:5, -+ erase_grp_size:5, -+ c_size_mult1:3, -+ vdd_w_curr_max:3, -+ vdd_w_curr_min:3, -+ vdd_r_curr_max:3, -+ vdd_r_curr_min:3, -+ c_size:12, -+ rsvd2:2, -+ dsr_imp:1, -+ read_blk_misalign:1, -+ write_blk_misalign:1, -+ read_bl_partial:1; -+ -+ ushort read_bl_len:4, -+ ccc:12; -+ uchar tran_speed; -+ uchar nsac; -+ uchar taac; -+ uchar rsvd1:2, -+ spec_vers:4, -+ csd_structure:2; -+} mmc_csd_t; -+ -+ -+#endif /* __MMC_PXA_P_H__ */ -diff --git a/include/asm-arm/arch-s3c24x0/regs-sdi.h b/include/asm-arm/arch-s3c24x0/regs-sdi.h -new file mode 100644 -index 0000000..9b5b9d1 ---- /dev/null -+++ b/include/asm-arm/arch-s3c24x0/regs-sdi.h -@@ -0,0 +1,110 @@ -+/* linux/include/asm/arch-s3c2410/regs-sdi.h -+ * -+ * Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk> -+ * http://www.simtec.co.uk/products/SWLINUX/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * S3C2410 MMC/SDIO register definitions -+ * -+ * Changelog: -+ * 18-Aug-2004 Ben Dooks Created initial file -+ * 29-Nov-2004 Koen Martens Added some missing defines, fixed duplicates -+ * 29-Nov-2004 Ben Dooks Updated Koen's patch -+*/ -+ -+#ifndef __ASM_ARM_REGS_SDI -+#define __ASM_ARM_REGS_SDI "regs-sdi.h" -+ -+#define S3C2440_SDICON_SDRESET (1<<8) -+#define S3C2440_SDICON_MMCCLOCK (1<<5) -+#define S3C2410_SDICON_BYTEORDER (1<<4) -+#define S3C2410_SDICON_SDIOIRQ (1<<3) -+#define S3C2410_SDICON_RWAITEN (1<<2) -+#define S3C2410_SDICON_FIFORESET (1<<1) -+#define S3C2410_SDICON_CLOCKTYPE (1<<0) -+ -+#define S3C2410_SDICMDCON_ABORT (1<<12) -+#define S3C2410_SDICMDCON_WITHDATA (1<<11) -+#define S3C2410_SDICMDCON_LONGRSP (1<<10) -+#define S3C2410_SDICMDCON_WAITRSP (1<<9) -+#define S3C2410_SDICMDCON_CMDSTART (1<<8) -+#define S3C2410_SDICMDCON_SENDERHOST (1<<6) -+#define S3C2410_SDICMDCON_INDEX (0x3f) -+ -+#define S3C2410_SDICMDSTAT_CRCFAIL (1<<12) -+#define S3C2410_SDICMDSTAT_CMDSENT (1<<11) -+#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10) -+#define S3C2410_SDICMDSTAT_RSPFIN (1<<9) -+#define S3C2410_SDICMDSTAT_XFERING (1<<8) -+#define S3C2410_SDICMDSTAT_INDEX (0xff) -+ -+#define S3C2440_SDIDCON_DS_BYTE (0<<22) -+#define S3C2440_SDIDCON_DS_HALFWORD (1<<22) -+#define S3C2440_SDIDCON_DS_WORD (2<<22) -+#define S3C2410_SDIDCON_IRQPERIOD (1<<21) -+#define S3C2410_SDIDCON_TXAFTERRESP (1<<20) -+#define S3C2410_SDIDCON_RXAFTERCMD (1<<19) -+#define S3C2410_SDIDCON_BUSYAFTERCMD (1<<18) -+#define S3C2410_SDIDCON_BLOCKMODE (1<<17) -+#define S3C2410_SDIDCON_WIDEBUS (1<<16) -+#define S3C2410_SDIDCON_DMAEN (1<<15) -+#define S3C2410_SDIDCON_STOP (1<<14) -+#define S3C2440_SDIDCON_DATSTART (1<<14) -+#define S3C2410_SDIDCON_DATMODE (3<<12) -+#define S3C2410_SDIDCON_BLKNUM (0x7ff) -+ -+/* constants for S3C2410_SDIDCON_DATMODE */ -+#define S3C2410_SDIDCON_XFER_READY (0<<12) -+#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12) -+#define S3C2410_SDIDCON_XFER_RXSTART (2<<12) -+#define S3C2410_SDIDCON_XFER_TXSTART (3<<12) -+ -+#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF) -+#define S3C2410_SDIDCNT_BLKNUM_SHIFT (12) -+ -+#define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) -+#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9) -+#define S3C2410_SDIDSTA_FIFOFAIL (1<<8) /* reserved on 2440 */ -+#define S3C2410_SDIDSTA_CRCFAIL (1<<7) -+#define S3C2410_SDIDSTA_RXCRCFAIL (1<<6) -+#define S3C2410_SDIDSTA_DATATIMEOUT (1<<5) -+#define S3C2410_SDIDSTA_XFERFINISH (1<<4) -+#define S3C2410_SDIDSTA_BUSYFINISH (1<<3) -+#define S3C2410_SDIDSTA_SBITERR (1<<2) /* reserved on 2410a/2440 */ -+#define S3C2410_SDIDSTA_TXDATAON (1<<1) -+#define S3C2410_SDIDSTA_RXDATAON (1<<0) -+ -+#define S3C2440_SDIFSTA_FIFORESET (1<<16) -+#define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */ -+#define S3C2410_SDIFSTA_TFDET (1<<13) -+#define S3C2410_SDIFSTA_RFDET (1<<12) -+#define S3C2410_SDIFSTA_TFHALF (1<<11) -+#define S3C2410_SDIFSTA_TFEMPTY (1<<10) -+#define S3C2410_SDIFSTA_RFLAST (1<<9) -+#define S3C2410_SDIFSTA_RFFULL (1<<8) -+#define S3C2410_SDIFSTA_RFHALF (1<<7) -+#define S3C2410_SDIFSTA_COUNTMASK (0x7f) -+ -+#define S3C2410_SDIIMSK_RESPONSECRC (1<<17) -+#define S3C2410_SDIIMSK_CMDSENT (1<<16) -+#define S3C2410_SDIIMSK_CMDTIMEOUT (1<<15) -+#define S3C2410_SDIIMSK_RESPONSEND (1<<14) -+#define S3C2410_SDIIMSK_READWAIT (1<<13) -+#define S3C2410_SDIIMSK_SDIOIRQ (1<<12) -+#define S3C2410_SDIIMSK_FIFOFAIL (1<<11) -+#define S3C2410_SDIIMSK_CRCSTATUS (1<<10) -+#define S3C2410_SDIIMSK_DATACRC (1<<9) -+#define S3C2410_SDIIMSK_DATATIMEOUT (1<<8) -+#define S3C2410_SDIIMSK_DATAFINISH (1<<7) -+#define S3C2410_SDIIMSK_BUSYFINISH (1<<6) -+#define S3C2410_SDIIMSK_SBITERR (1<<5) /* reserved 2440/2410a */ -+#define S3C2410_SDIIMSK_TXFIFOHALF (1<<4) -+#define S3C2410_SDIIMSK_TXFIFOEMPTY (1<<3) -+#define S3C2410_SDIIMSK_RXFIFOLAST (1<<2) -+#define S3C2410_SDIIMSK_RXFIFOFULL (1<<1) -+#define S3C2410_SDIIMSK_RXFIFOHALF (1<<0) -+ -+#endif /* __ASM_ARM_REGS_SDI */ -diff --git a/include/asm-arm/mach-types.h b/include/asm-arm/mach-types.h -index 7d7888e..4e9c6d9 100644 ---- a/include/asm-arm/mach-types.h -+++ b/include/asm-arm/mach-types.h -@@ -424,7 +424,7 @@ #define MACH_TYPE_MT02 4 - #define MACH_TYPE_MPORT3S 411 - #define MACH_TYPE_RA_ALPHA 412 - #define MACH_TYPE_XCEP 413 --#define MACH_TYPE_ARCOM_MERCURY 414 -+#define MACH_TYPE_ARCOM_VULCAN 414 - #define MACH_TYPE_STARGATE 415 - #define MACH_TYPE_ARMADILLOJ 416 - #define MACH_TYPE_ELROY_JACK 417 -@@ -457,7 +457,7 @@ #define MACH_TYPE_ESL_SARVA 4 - #define MACH_TYPE_XM250 444 - #define MACH_TYPE_T6TC1XB 445 - #define MACH_TYPE_ESS710 446 --#define MACH_TYPE_MX3ADS 447 -+#define MACH_TYPE_MX31ADS 447 - #define MACH_TYPE_HIMALAYA 448 - #define MACH_TYPE_BOLFENK 449 - #define MACH_TYPE_AT91RM9200KR 450 -@@ -736,7 +736,308 @@ #define MACH_TYPE_ADSPORTAL 7 - #define MACH_TYPE_LN2410SBC 725 - #define MACH_TYPE_CB3RUFC 726 - #define MACH_TYPE_MP2USB 727 --#define MACH_TYPE_PDNB3 1002 -+#define MACH_TYPE_NTNP425C 728 -+#define MACH_TYPE_COLIBRI 729 -+#define MACH_TYPE_PCM7220 730 -+#define MACH_TYPE_GATEWAY7001 731 -+#define MACH_TYPE_PCM027 732 -+#define MACH_TYPE_CMPXA 733 -+#define MACH_TYPE_ANUBIS 734 -+#define MACH_TYPE_ITE8152 735 -+#define MACH_TYPE_LPC3XXX 736 -+#define MACH_TYPE_PUPPETEER 737 -+#define MACH_TYPE_MACH_VADATECH 738 -+#define MACH_TYPE_E570 739 -+#define MACH_TYPE_X50 740 -+#define MACH_TYPE_RECON 741 -+#define MACH_TYPE_XBOARDGP8 742 -+#define MACH_TYPE_FPIC2 743 -+#define MACH_TYPE_AKITA 744 -+#define MACH_TYPE_A81 745 -+#define MACH_TYPE_SVM_SC25X 746 -+#define MACH_TYPE_VADATECH020 747 -+#define MACH_TYPE_TLI 748 -+#define MACH_TYPE_EDB9315LC 749 -+#define MACH_TYPE_PASSEC 750 -+#define MACH_TYPE_DS_TIGER 751 -+#define MACH_TYPE_E310 752 -+#define MACH_TYPE_E330 753 -+#define MACH_TYPE_RT3000 754 -+#define MACH_TYPE_NOKIA770 755 -+#define MACH_TYPE_PNX0106 756 -+#define MACH_TYPE_HX21XX 757 -+#define MACH_TYPE_FARADAY 758 -+#define MACH_TYPE_SBC9312 759 -+#define MACH_TYPE_BATMAN 760 -+#define MACH_TYPE_JPD201 761 -+#define MACH_TYPE_MIPSA 762 -+#define MACH_TYPE_KACOM 763 -+#define MACH_TYPE_SWARCOCPU 764 -+#define MACH_TYPE_SWARCODSL 765 -+#define MACH_TYPE_BLUEANGEL 766 -+#define MACH_TYPE_HAIRYGRAMA 767 -+#define MACH_TYPE_BANFF 768 -+#define MACH_TYPE_CARMEVA 769 -+#define MACH_TYPE_SAM255 770 -+#define MACH_TYPE_PPM10 771 -+#define MACH_TYPE_EDB9315A 772 -+#define MACH_TYPE_SUNSET 773 -+#define MACH_TYPE_STARGATE2 774 -+#define MACH_TYPE_INTELMOTE2 775 -+#define MACH_TYPE_TRIZEPS4 776 -+#define MACH_TYPE_MAINSTONE2 777 -+#define MACH_TYPE_EZ_IXP42X 778 -+#define MACH_TYPE_TAPWAVE_ZODIAC 779 -+#define MACH_TYPE_UNIVERSALMETER 780 -+#define MACH_TYPE_HICOARM9 781 -+#define MACH_TYPE_PNX4008 782 -+#define MACH_TYPE_KWS6000 783 -+#define MACH_TYPE_PORTUX920T 784 -+#define MACH_TYPE_EZ_X5 785 -+#define MACH_TYPE_OMAP_RUDOLPH 786 -+#define MACH_TYPE_CPUAT91 787 -+#define MACH_TYPE_REA9200 788 -+#define MACH_TYPE_ACTS_PUNE_SA1110 789 -+#define MACH_TYPE_IXP425 790 -+#define MACH_TYPE_ARGONPLUSODYSSEY 791 -+#define MACH_TYPE_PERCH 792 -+#define MACH_TYPE_EIS05R1 793 -+#define MACH_TYPE_PEPPERPAD 794 -+#define MACH_TYPE_SB3010 795 -+#define MACH_TYPE_RM9200 796 -+#define MACH_TYPE_DMA03 797 -+#define MACH_TYPE_ROAD_S101 798 -+#define MACH_TYPE_IQ_NEXTGEN_A 799 -+#define MACH_TYPE_IQ_NEXTGEN_B 800 -+#define MACH_TYPE_IQ_NEXTGEN_C 801 -+#define MACH_TYPE_IQ_NEXTGEN_D 802 -+#define MACH_TYPE_IQ_NEXTGEN_E 803 -+#define MACH_TYPE_MALLOW_AT91 804 -+#define MACH_TYPE_CYBERTRACKER_I 805 -+#define MACH_TYPE_GESBC931X 806 -+#define MACH_TYPE_CENTIPAD 807 -+#define MACH_TYPE_ARMSOC 808 -+#define MACH_TYPE_SE4200 809 -+#define MACH_TYPE_EMS197A 810 -+#define MACH_TYPE_MICRO9 811 -+#define MACH_TYPE_MICRO9L 812 -+#define MACH_TYPE_UC5471DSP 813 -+#define MACH_TYPE_SJ5471ENG 814 -+#define MACH_TYPE_CMPXA26X 815 -+#define MACH_TYPE_NC 816 -+#define MACH_TYPE_OMAP_PALMTE 817 -+#define MACH_TYPE_AJAX52X 818 -+#define MACH_TYPE_SIRIUSTAR 819 -+#define MACH_TYPE_IODATA_HDLG 820 -+#define MACH_TYPE_AT91RM9200UTL 821 -+#define MACH_TYPE_BIOSAFE 822 -+#define MACH_TYPE_MP1000 823 -+#define MACH_TYPE_PARSY 824 -+#define MACH_TYPE_CCXP 825 -+#define MACH_TYPE_OMAP_GSAMPLE 826 -+#define MACH_TYPE_REALVIEW_EB 827 -+#define MACH_TYPE_SAMOA 828 -+#define MACH_TYPE_T3XSCALE 829 -+#define MACH_TYPE_I878 830 -+#define MACH_TYPE_BORZOI 831 -+#define MACH_TYPE_GECKO 832 -+#define MACH_TYPE_DS101 833 -+#define MACH_TYPE_OMAP_PALMTT2 834 -+#define MACH_TYPE_XSCALE_PALMLD 835 -+#define MACH_TYPE_CC9C 836 -+#define MACH_TYPE_SBC1670 837 -+#define MACH_TYPE_IXDP28X5 838 -+#define MACH_TYPE_OMAP_PALMTT 839 -+#define MACH_TYPE_ML696K 840 -+#define MACH_TYPE_ARCOM_ZEUS 841 -+#define MACH_TYPE_OSIRIS 842 -+#define MACH_TYPE_MAESTRO 843 -+#define MACH_TYPE_TUNGE2 844 -+#define MACH_TYPE_IXBBM 845 -+#define MACH_TYPE_MX27 846 -+#define MACH_TYPE_AX8004 847 -+#define MACH_TYPE_AT91SAM9261EK 848 -+#define MACH_TYPE_LOFT 849 -+#define MACH_TYPE_MAGPIE 850 -+#define MACH_TYPE_MX21 851 -+#define MACH_TYPE_MB87M3400 852 -+#define MACH_TYPE_MGUARD_DELTA 853 -+#define MACH_TYPE_DAVINCI_DVDP 854 -+#define MACH_TYPE_HTCUNIVERSAL 855 -+#define MACH_TYPE_TPAD 856 -+#define MACH_TYPE_ROVERP3 857 -+#define MACH_TYPE_JORNADA928 858 -+#define MACH_TYPE_MV88FXX81 859 -+#define MACH_TYPE_STMP36XX 860 -+#define MACH_TYPE_SXNI79524 861 -+#define MACH_TYPE_AMS_DELTA 862 -+#define MACH_TYPE_URANIUM 863 -+#define MACH_TYPE_UCON 864 -+#define MACH_TYPE_NAS100D 865 -+#define MACH_TYPE_L083_1000 866 -+#define MACH_TYPE_EZX 867 -+#define MACH_TYPE_PNX5220 868 -+#define MACH_TYPE_BUTTE 869 -+#define MACH_TYPE_SRM2 870 -+#define MACH_TYPE_DSBR 871 -+#define MACH_TYPE_CRYSTALBALL 872 -+#define MACH_TYPE_TINYPXA27X 873 -+#define MACH_TYPE_HERBIE 874 -+#define MACH_TYPE_MAGICIAN 875 -+#define MACH_TYPE_CM4002 876 -+#define MACH_TYPE_B4 877 -+#define MACH_TYPE_MAUI 878 -+#define MACH_TYPE_CYBERTRACKER_G 879 -+#define MACH_TYPE_NXDKN 880 -+#define MACH_TYPE_MIO8390 881 -+#define MACH_TYPE_OMI_BOARD 882 -+#define MACH_TYPE_MX21CIV 883 -+#define MACH_TYPE_MAHI_CDAC 884 -+#define MACH_TYPE_XSCALE_PALMTX 885 -+#define MACH_TYPE_S3C2413 887 -+#define MACH_TYPE_SAMSYS_EP0 888 -+#define MACH_TYPE_WG302V1 889 -+#define MACH_TYPE_WG302V2 890 -+#define MACH_TYPE_EB42X 891 -+#define MACH_TYPE_IQ331ES 892 -+#define MACH_TYPE_COSYDSP 893 -+#define MACH_TYPE_UPLAT7D 894 -+#define MACH_TYPE_PTDAVINCI 895 -+#define MACH_TYPE_MBUS 896 -+#define MACH_TYPE_NADIA2VB 897 -+#define MACH_TYPE_R1000 898 -+#define MACH_TYPE_HW90250 899 -+#define MACH_TYPE_OMAP_2430SDP 900 -+#define MACH_TYPE_DAVINCI_EVM 901 -+#define MACH_TYPE_OMAP_TORNADO 902 -+#define MACH_TYPE_OLOCREEK 903 -+#define MACH_TYPE_PALMZ72 904 -+#define MACH_TYPE_NXDB500 905 -+#define MACH_TYPE_APF9328 906 -+#define MACH_TYPE_OMAP_WIPOQ 907 -+#define MACH_TYPE_OMAP_TWIP 908 -+#define MACH_TYPE_XSCALE_PALMTREO650 909 -+#define MACH_TYPE_ACUMEN 910 -+#define MACH_TYPE_XP100 911 -+#define MACH_TYPE_FS2410 912 -+#define MACH_TYPE_PXA270_CERF 913 -+#define MACH_TYPE_SQ2FTLPALM 914 -+#define MACH_TYPE_BSEMSERVER 915 -+#define MACH_TYPE_NETCLIENT 916 -+#define MACH_TYPE_XSCALE_PALMTT5 917 -+#define MACH_TYPE_OMAP_PALMTC 918 -+#define MACH_TYPE_OMAP_APOLLON 919 -+#define MACH_TYPE_ARGONLVEVB 920 -+#define MACH_TYPE_REA_2D 921 -+#define MACH_TYPE_TI3E524 922 -+#define MACH_TYPE_ATEB9200 923 -+#define MACH_TYPE_AUCKLAND 924 -+#define MACH_TYPE_AK3320M 925 -+#define MACH_TYPE_DURAMAX 926 -+#define MACH_TYPE_N35 927 -+#define MACH_TYPE_PRONGHORN 928 -+#define MACH_TYPE_FUNDY 929 -+#define MACH_TYPE_LOGICPD_PXA270 930 -+#define MACH_TYPE_CPU777 931 -+#define MACH_TYPE_SIMICON9201 932 -+#define MACH_TYPE_LEAP2_HPM 933 -+#define MACH_TYPE_CM922TXA10 934 -+#define MACH_TYPE_PXA 935 -+#define MACH_TYPE_SANDGATE2 936 -+#define MACH_TYPE_SANDGATE2G 937 -+#define MACH_TYPE_SANDGATE2P 938 -+#define MACH_TYPE_FRED_JACK 939 -+#define MACH_TYPE_TTG_COLOR1 940 -+#define MACH_TYPE_NXEB500HMI 941 -+#define MACH_TYPE_NETDCU8 942 -+#define MACH_TYPE_ML675050_CPU_BOA 943 -+#define MACH_TYPE_NG_FVX538 944 -+#define MACH_TYPE_NG_FVS338 945 -+#define MACH_TYPE_PNX4103 946 -+#define MACH_TYPE_HESDB 947 -+#define MACH_TYPE_XSILO 948 -+#define MACH_TYPE_ESPRESSO 949 -+#define MACH_TYPE_EMLC 950 -+#define MACH_TYPE_SISTERON 951 -+#define MACH_TYPE_RX1950 952 -+#define MACH_TYPE_TSC_VENUS 953 -+#define MACH_TYPE_DS101J 954 -+#define MACH_TYPE_MXC30030ADS 955 -+#define MACH_TYPE_FUJITSU_WIMAXSOC 956 -+#define MACH_TYPE_DUALPCMODEM 957 -+#define MACH_TYPE_GESBC9312 958 -+#define MACH_TYPE_HTCAPACHE 959 -+#define MACH_TYPE_IXDP435 960 -+#define MACH_TYPE_CATPROVT100 961 -+#define MACH_TYPE_PICOTUX1XX 962 -+#define MACH_TYPE_PICOTUX2XX 963 -+#define MACH_TYPE_DSMG600 964 -+#define MACH_TYPE_EMPC2 965 -+#define MACH_TYPE_VENTURA 966 -+#define MACH_TYPE_PHIDGET_SBC 967 -+#define MACH_TYPE_IJ3K 968 -+#define MACH_TYPE_PISGAH 969 -+#define MACH_TYPE_OMAP_FSAMPLE 970 -+#define MACH_TYPE_SG720 971 -+#define MACH_TYPE_REDFOX 972 -+#define MACH_TYPE_MYSH_EP9315_1 973 -+#define MACH_TYPE_TPF106 974 -+#define MACH_TYPE_AT91RM9200KG 975 -+#define MACH_TYPE_SLEDB 976 -+#define MACH_TYPE_ONTRACK 977 -+#define MACH_TYPE_PM1200 978 -+#define MACH_TYPE_ESS24XXX 979 -+#define MACH_TYPE_COREMP7 980 -+#define MACH_TYPE_NEXCODER_6446 981 -+#define MACH_TYPE_STVC8380 982 -+#define MACH_TYPE_TEKLYNX 983 -+#define MACH_TYPE_CARBONADO 984 -+#define MACH_TYPE_SYSMOS_MP730 985 -+#define MACH_TYPE_SNAPPER_CL15 986 -+#define MACH_TYPE_PGIGIM 987 -+#define MACH_TYPE_PTX9160P2 988 -+#define MACH_TYPE_DCORE1 989 -+#define MACH_TYPE_VICTORPXA 990 -+#define MACH_TYPE_MX2DTB 991 -+#define MACH_TYPE_PXA_IREX_ER0100 992 -+#define MACH_TYPE_OMAP_PALMZ71 993 -+#define MACH_TYPE_BARTEC_DEG 994 -+#define MACH_TYPE_HW50251 995 -+#define MACH_TYPE_IBOX 996 -+#define MACH_TYPE_ATLASLH7A404 997 -+#define MACH_TYPE_PT2026 998 -+#define MACH_TYPE_HTCALPINE 999 -+#define MACH_TYPE_BARTEC_VTU 1000 -+#define MACH_TYPE_VCOREII 1001 -+#define MACH_TYPE_PDNB3 1002 -+#define MACH_TYPE_HTCBEETLES 1003 -+#define MACH_TYPE_S3C6400 1004 -+#define MACH_TYPE_S3C2443 1005 -+#define MACH_TYPE_OMAP_LDK 1006 -+#define MACH_TYPE_SMDK2460 1007 -+#define MACH_TYPE_SMDK2440 1008 -+#define MACH_TYPE_SMDK2412 1009 -+#define MACH_TYPE_WEBBOX 1010 -+#define MACH_TYPE_CWWNDP 1011 -+#define MACH_TYPE_DRAGON 1012 -+#define MACH_TYPE_OPENDO_CPU_BOARD 1013 -+#define MACH_TYPE_CCM2200 1014 -+#define MACH_TYPE_ETWARM 1015 -+#define MACH_TYPE_M93030 1016 -+#define MACH_TYPE_CC7U 1017 -+#define MACH_TYPE_MTT_RANGER 1018 -+#define MACH_TYPE_NEXUS 1019 -+#define MACH_TYPE_DESMAN 1020 -+#define MACH_TYPE_BKDE303 1021 -+#define MACH_TYPE_SMDK2413 1022 -+#define MACH_TYPE_AML_M7200 1023 -+#define MACH_TYPE_AML_M5900 1024 -+#define MACH_TYPE_SG640 1025 -+#define MACH_TYPE_EDG79524 1026 -+#define MACH_TYPE_AI2410 1027 -+#define MACH_TYPE_IXP465 1028 -+#define MACH_TYPE_BALLOON3 1029 -+#define MACH_TYPE_QT2410 1108 - - #ifdef CONFIG_ARCH_EBSA110 - # ifdef machine_arch_type -@@ -3541,9 +3842,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_RAMSES - # endif --# define machine_is_ramses() (machine_arch_type == MACH_TYPE_RAMSES) -+# define machine_is_mnci() (machine_arch_type == MACH_TYPE_RAMSES) - #else --# define machine_is_ramses() (0) -+# define machine_is_mnci() (0) - #endif - - #ifdef CONFIG_ARCH_S28X -@@ -4501,9 +4802,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_M825XX - # endif --# define machine_is_m825xx() (machine_arch_type == MACH_TYPE_M825XX) -+# define machine_is_comcerto() (machine_arch_type == MACH_TYPE_M825XX) - #else --# define machine_is_m825xx() (0) -+# define machine_is_comcerto() (0) - #endif - - #ifdef CONFIG_SA1100_M7100 -@@ -5658,16 +5959,16 @@ #else - # define machine_is_xcep() (0) - #endif - --#ifdef CONFIG_MACH_ARCOM_MERCURY -+#ifdef CONFIG_MACH_ARCOM_VULCAN - # ifdef machine_arch_type - # undef machine_arch_type - # define machine_arch_type __machine_arch_type - # else --# define machine_arch_type MACH_TYPE_ARCOM_MERCURY -+# define machine_arch_type MACH_TYPE_ARCOM_VULCAN - # endif --# define machine_is_arcom_mercury() (machine_arch_type == MACH_TYPE_ARCOM_MERCURY) -+# define machine_is_arcom_vulcan() (machine_arch_type == MACH_TYPE_ARCOM_VULCAN) - #else --# define machine_is_arcom_mercury() (0) -+# define machine_is_arcom_vulcan() (0) - #endif - - #ifdef CONFIG_MACH_STARGATE -@@ -6054,16 +6355,16 @@ #else - # define machine_is_ess710() (0) - #endif - --#ifdef CONFIG_MACH_MX3ADS -+#ifdef CONFIG_MACH_MX31ADS - # ifdef machine_arch_type - # undef machine_arch_type - # define machine_arch_type __machine_arch_type - # else --# define machine_arch_type MACH_TYPE_MX3ADS -+# define machine_arch_type MACH_TYPE_MX31ADS - # endif --# define machine_is_mx3ads() (machine_arch_type == MACH_TYPE_MX3ADS) -+# define machine_is_mx31ads() (machine_arch_type == MACH_TYPE_MX31ADS) - #else --# define machine_is_mx3ads() (0) -+# define machine_is_mx31ads() (0) - #endif - - #ifdef CONFIG_MACH_HIMALAYA -@@ -7333,9 +7634,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_ARGONPLUSEVB - # endif --# define machine_is_argonplusevb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) -+# define machine_is_i30030evb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) - #else --# define machine_is_argonplusevb() (0) -+# define machine_is_i30030evb() (0) - #endif - - #ifdef CONFIG_MACH_SCMA11EVB -@@ -7345,9 +7646,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_SCMA11EVB - # endif --# define machine_is_scma11evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) -+# define machine_is_mxc27530evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) - #else --# define machine_is_scma11evb() (0) -+# define machine_is_mxc27530evb() (0) - #endif - - #ifdef CONFIG_MACH_SMDK2800 -@@ -8305,9 +8606,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_SCMA11BB - # endif --# define machine_is_scma11bb() (machine_arch_type == MACH_TYPE_SCMA11BB) -+# define machine_is_mxc27530ads() (machine_arch_type == MACH_TYPE_SCMA11BB) - #else --# define machine_is_scma11bb() (0) -+# define machine_is_mxc27530ads() (0) - #endif - - #ifdef CONFIG_MACH_TRIZEPS3 -@@ -9193,9 +9494,9 @@ # define machine_arch_type __machine_ar - # else - # define machine_arch_type MACH_TYPE_ZEUSEVB - # endif --# define machine_is_zeusevb() (machine_arch_type == MACH_TYPE_ZEUSEVB) -+# define machine_is_mxc91131evb() (machine_arch_type == MACH_TYPE_ZEUSEVB) - #else --# define machine_is_zeusevb() (0) -+# define machine_is_mxc91131evb() (0) - #endif - - #ifdef CONFIG_MACH_P700 -@@ -9402,6 +9703,3630 @@ #else - # define machine_is_mp2usb() (0) - #endif - -+#ifdef CONFIG_MACH_NTNP425C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NTNP425C -+# endif -+# define machine_is_ntnp425c() (machine_arch_type == MACH_TYPE_NTNP425C) -+#else -+# define machine_is_ntnp425c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COLIBRI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COLIBRI -+# endif -+# define machine_is_colibri() (machine_arch_type == MACH_TYPE_COLIBRI) -+#else -+# define machine_is_colibri() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PCM7220 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PCM7220 -+# endif -+# define machine_is_pcm7220() (machine_arch_type == MACH_TYPE_PCM7220) -+#else -+# define machine_is_pcm7220() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GATEWAY7001 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GATEWAY7001 -+# endif -+# define machine_is_gateway7001() (machine_arch_type == MACH_TYPE_GATEWAY7001) -+#else -+# define machine_is_gateway7001() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PCM027 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PCM027 -+# endif -+# define machine_is_pcm027() (machine_arch_type == MACH_TYPE_PCM027) -+#else -+# define machine_is_pcm027() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CMPXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CMPXA -+# endif -+# define machine_is_cmpxa() (machine_arch_type == MACH_TYPE_CMPXA) -+#else -+# define machine_is_cmpxa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ANUBIS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ANUBIS -+# endif -+# define machine_is_anubis() (machine_arch_type == MACH_TYPE_ANUBIS) -+#else -+# define machine_is_anubis() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ITE8152 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ITE8152 -+# endif -+# define machine_is_ite8152() (machine_arch_type == MACH_TYPE_ITE8152) -+#else -+# define machine_is_ite8152() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LPC3XXX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LPC3XXX -+# endif -+# define machine_is_lpc3xxx() (machine_arch_type == MACH_TYPE_LPC3XXX) -+#else -+# define machine_is_lpc3xxx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PUPPETEER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PUPPETEER -+# endif -+# define machine_is_puppeteer() (machine_arch_type == MACH_TYPE_PUPPETEER) -+#else -+# define machine_is_puppeteer() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MACH_VADATECH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MACH_VADATECH -+# endif -+# define machine_is_vt001() (machine_arch_type == MACH_TYPE_MACH_VADATECH) -+#else -+# define machine_is_vt001() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E570 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E570 -+# endif -+# define machine_is_e570() (machine_arch_type == MACH_TYPE_E570) -+#else -+# define machine_is_e570() (0) -+#endif -+ -+#ifdef CONFIG_MACH_X50 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_X50 -+# endif -+# define machine_is_x50() (machine_arch_type == MACH_TYPE_X50) -+#else -+# define machine_is_x50() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RECON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RECON -+# endif -+# define machine_is_recon() (machine_arch_type == MACH_TYPE_RECON) -+#else -+# define machine_is_recon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XBOARDGP8 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XBOARDGP8 -+# endif -+# define machine_is_xboardgp8() (machine_arch_type == MACH_TYPE_XBOARDGP8) -+#else -+# define machine_is_xboardgp8() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FPIC2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FPIC2 -+# endif -+# define machine_is_fpic2() (machine_arch_type == MACH_TYPE_FPIC2) -+#else -+# define machine_is_fpic2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AKITA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AKITA -+# endif -+# define machine_is_akita() (machine_arch_type == MACH_TYPE_AKITA) -+#else -+# define machine_is_akita() (0) -+#endif -+ -+#ifdef CONFIG_MACH_A81 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_A81 -+# endif -+# define machine_is_a81() (machine_arch_type == MACH_TYPE_A81) -+#else -+# define machine_is_a81() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SVM_SC25X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SVM_SC25X -+# endif -+# define machine_is_svm_sc25x() (machine_arch_type == MACH_TYPE_SVM_SC25X) -+#else -+# define machine_is_svm_sc25x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VADATECH020 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VADATECH020 -+# endif -+# define machine_is_vt020() (machine_arch_type == MACH_TYPE_VADATECH020) -+#else -+# define machine_is_vt020() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TLI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TLI -+# endif -+# define machine_is_tli() (machine_arch_type == MACH_TYPE_TLI) -+#else -+# define machine_is_tli() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDB9315LC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDB9315LC -+# endif -+# define machine_is_edb9315lc() (machine_arch_type == MACH_TYPE_EDB9315LC) -+#else -+# define machine_is_edb9315lc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PASSEC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PASSEC -+# endif -+# define machine_is_passec() (machine_arch_type == MACH_TYPE_PASSEC) -+#else -+# define machine_is_passec() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS_TIGER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS_TIGER -+# endif -+# define machine_is_ds_tiger() (machine_arch_type == MACH_TYPE_DS_TIGER) -+#else -+# define machine_is_ds_tiger() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E310 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E310 -+# endif -+# define machine_is_e310() (machine_arch_type == MACH_TYPE_E310) -+#else -+# define machine_is_e310() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E330 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E330 -+# endif -+# define machine_is_e330() (machine_arch_type == MACH_TYPE_E330) -+#else -+# define machine_is_e330() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RT3000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RT3000 -+# endif -+# define machine_is_rt3000() (machine_arch_type == MACH_TYPE_RT3000) -+#else -+# define machine_is_rt3000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NOKIA770 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NOKIA770 -+# endif -+# define machine_is_nokia770() (machine_arch_type == MACH_TYPE_NOKIA770) -+#else -+# define machine_is_nokia770() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX0106 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX0106 -+# endif -+# define machine_is_pnx0106() (machine_arch_type == MACH_TYPE_PNX0106) -+#else -+# define machine_is_pnx0106() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HX21XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HX21XX -+# endif -+# define machine_is_hx21xx() (machine_arch_type == MACH_TYPE_HX21XX) -+#else -+# define machine_is_hx21xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FARADAY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FARADAY -+# endif -+# define machine_is_faraday() (machine_arch_type == MACH_TYPE_FARADAY) -+#else -+# define machine_is_faraday() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SBC9312 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SBC9312 -+# endif -+# define machine_is_sbc9312() (machine_arch_type == MACH_TYPE_SBC9312) -+#else -+# define machine_is_sbc9312() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BATMAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BATMAN -+# endif -+# define machine_is_batman() (machine_arch_type == MACH_TYPE_BATMAN) -+#else -+# define machine_is_batman() (0) -+#endif -+ -+#ifdef CONFIG_MACH_JPD201 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_JPD201 -+# endif -+# define machine_is_jpd201() (machine_arch_type == MACH_TYPE_JPD201) -+#else -+# define machine_is_jpd201() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MIPSA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MIPSA -+# endif -+# define machine_is_mipsa() (machine_arch_type == MACH_TYPE_MIPSA) -+#else -+# define machine_is_mipsa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_KACOM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_KACOM -+# endif -+# define machine_is_kacom() (machine_arch_type == MACH_TYPE_KACOM) -+#else -+# define machine_is_kacom() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SWARCOCPU -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SWARCOCPU -+# endif -+# define machine_is_swarcocpu() (machine_arch_type == MACH_TYPE_SWARCOCPU) -+#else -+# define machine_is_swarcocpu() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SWARCODSL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SWARCODSL -+# endif -+# define machine_is_swarcodsl() (machine_arch_type == MACH_TYPE_SWARCODSL) -+#else -+# define machine_is_swarcodsl() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BLUEANGEL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BLUEANGEL -+# endif -+# define machine_is_blueangel() (machine_arch_type == MACH_TYPE_BLUEANGEL) -+#else -+# define machine_is_blueangel() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HAIRYGRAMA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HAIRYGRAMA -+# endif -+# define machine_is_hairygrama() (machine_arch_type == MACH_TYPE_HAIRYGRAMA) -+#else -+# define machine_is_hairygrama() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BANFF -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BANFF -+# endif -+# define machine_is_banff() (machine_arch_type == MACH_TYPE_BANFF) -+#else -+# define machine_is_banff() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CARMEVA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CARMEVA -+# endif -+# define machine_is_carmeva() (machine_arch_type == MACH_TYPE_CARMEVA) -+#else -+# define machine_is_carmeva() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAM255 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAM255 -+# endif -+# define machine_is_sam255() (machine_arch_type == MACH_TYPE_SAM255) -+#else -+# define machine_is_sam255() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PPM10 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PPM10 -+# endif -+# define machine_is_ppm10() (machine_arch_type == MACH_TYPE_PPM10) -+#else -+# define machine_is_ppm10() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDB9315A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDB9315A -+# endif -+# define machine_is_edb9315a() (machine_arch_type == MACH_TYPE_EDB9315A) -+#else -+# define machine_is_edb9315a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SUNSET -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SUNSET -+# endif -+# define machine_is_sunset() (machine_arch_type == MACH_TYPE_SUNSET) -+#else -+# define machine_is_sunset() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STARGATE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STARGATE2 -+# endif -+# define machine_is_stargate2() (machine_arch_type == MACH_TYPE_STARGATE2) -+#else -+# define machine_is_stargate2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_INTELMOTE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_INTELMOTE2 -+# endif -+# define machine_is_intelmote2() (machine_arch_type == MACH_TYPE_INTELMOTE2) -+#else -+# define machine_is_intelmote2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TRIZEPS4 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TRIZEPS4 -+# endif -+# define machine_is_trizeps4() (machine_arch_type == MACH_TYPE_TRIZEPS4) -+#else -+# define machine_is_trizeps4() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAINSTONE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAINSTONE2 -+# endif -+# define machine_is_mainstone2() (machine_arch_type == MACH_TYPE_MAINSTONE2) -+#else -+# define machine_is_mainstone2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZ_IXP42X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZ_IXP42X -+# endif -+# define machine_is_ez_ixp42x() (machine_arch_type == MACH_TYPE_EZ_IXP42X) -+#else -+# define machine_is_ez_ixp42x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TAPWAVE_ZODIAC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TAPWAVE_ZODIAC -+# endif -+# define machine_is_tapwave_zodiac() (machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC) -+#else -+# define machine_is_tapwave_zodiac() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UNIVERSALMETER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UNIVERSALMETER -+# endif -+# define machine_is_universalmeter() (machine_arch_type == MACH_TYPE_UNIVERSALMETER) -+#else -+# define machine_is_universalmeter() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HICOARM9 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HICOARM9 -+# endif -+# define machine_is_hicoarm9() (machine_arch_type == MACH_TYPE_HICOARM9) -+#else -+# define machine_is_hicoarm9() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX4008 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX4008 -+# endif -+# define machine_is_pnx4008() (machine_arch_type == MACH_TYPE_PNX4008) -+#else -+# define machine_is_pnx4008() (0) -+#endif -+ -+#ifdef CONFIG_MACH_KWS6000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_KWS6000 -+# endif -+# define machine_is_kws6000() (machine_arch_type == MACH_TYPE_KWS6000) -+#else -+# define machine_is_kws6000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PORTUX920T -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PORTUX920T -+# endif -+# define machine_is_portux920t() (machine_arch_type == MACH_TYPE_PORTUX920T) -+#else -+# define machine_is_portux920t() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZ_X5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZ_X5 -+# endif -+# define machine_is_ez_x5() (machine_arch_type == MACH_TYPE_EZ_X5) -+#else -+# define machine_is_ez_x5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_RUDOLPH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_RUDOLPH -+# endif -+# define machine_is_omap_rudolph() (machine_arch_type == MACH_TYPE_OMAP_RUDOLPH) -+#else -+# define machine_is_omap_rudolph() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CPUAT91 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CPUAT91 -+# endif -+# define machine_is_cpuat91() (machine_arch_type == MACH_TYPE_CPUAT91) -+#else -+# define machine_is_cpuat91() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REA9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REA9200 -+# endif -+# define machine_is_rea9200() (machine_arch_type == MACH_TYPE_REA9200) -+#else -+# define machine_is_rea9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ACTS_PUNE_SA1110 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ACTS_PUNE_SA1110 -+# endif -+# define machine_is_acts_pune_sa1110() (machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110) -+#else -+# define machine_is_acts_pune_sa1110() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXP425 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXP425 -+# endif -+# define machine_is_ixp425() (machine_arch_type == MACH_TYPE_IXP425) -+#else -+# define machine_is_ixp425() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARGONPLUSODYSSEY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARGONPLUSODYSSEY -+# endif -+# define machine_is_i30030ads() (machine_arch_type == MACH_TYPE_ARGONPLUSODYSSEY) -+#else -+# define machine_is_i30030ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PERCH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PERCH -+# endif -+# define machine_is_perch() (machine_arch_type == MACH_TYPE_PERCH) -+#else -+# define machine_is_perch() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EIS05R1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EIS05R1 -+# endif -+# define machine_is_eis05r1() (machine_arch_type == MACH_TYPE_EIS05R1) -+#else -+# define machine_is_eis05r1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PEPPERPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PEPPERPAD -+# endif -+# define machine_is_pepperpad() (machine_arch_type == MACH_TYPE_PEPPERPAD) -+#else -+# define machine_is_pepperpad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SB3010 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SB3010 -+# endif -+# define machine_is_sb3010() (machine_arch_type == MACH_TYPE_SB3010) -+#else -+# define machine_is_sb3010() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RM9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RM9200 -+# endif -+# define machine_is_rm9200() (machine_arch_type == MACH_TYPE_RM9200) -+#else -+# define machine_is_rm9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DMA03 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DMA03 -+# endif -+# define machine_is_dma03() (machine_arch_type == MACH_TYPE_DMA03) -+#else -+# define machine_is_dma03() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ROAD_S101 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ROAD_S101 -+# endif -+# define machine_is_road_s101() (machine_arch_type == MACH_TYPE_ROAD_S101) -+#else -+# define machine_is_road_s101() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_A -+# endif -+# define machine_is_iq_nextgen_a() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A) -+#else -+# define machine_is_iq_nextgen_a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_B -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_B -+# endif -+# define machine_is_iq_nextgen_b() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B) -+#else -+# define machine_is_iq_nextgen_b() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_C -+# endif -+# define machine_is_iq_nextgen_c() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C) -+#else -+# define machine_is_iq_nextgen_c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_D -+# endif -+# define machine_is_iq_nextgen_d() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D) -+#else -+# define machine_is_iq_nextgen_d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_E -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_E -+# endif -+# define machine_is_iq_nextgen_e() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E) -+#else -+# define machine_is_iq_nextgen_e() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MALLOW_AT91 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MALLOW_AT91 -+# endif -+# define machine_is_mallow_at91() (machine_arch_type == MACH_TYPE_MALLOW_AT91) -+#else -+# define machine_is_mallow_at91() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CYBERTRACKER_I -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CYBERTRACKER_I -+# endif -+# define machine_is_cybertracker_i() (machine_arch_type == MACH_TYPE_CYBERTRACKER_I) -+#else -+# define machine_is_cybertracker_i() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GESBC931X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GESBC931X -+# endif -+# define machine_is_gesbc931x() (machine_arch_type == MACH_TYPE_GESBC931X) -+#else -+# define machine_is_gesbc931x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CENTIPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CENTIPAD -+# endif -+# define machine_is_centipad() (machine_arch_type == MACH_TYPE_CENTIPAD) -+#else -+# define machine_is_centipad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARMSOC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARMSOC -+# endif -+# define machine_is_armsoc() (machine_arch_type == MACH_TYPE_ARMSOC) -+#else -+# define machine_is_armsoc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SE4200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SE4200 -+# endif -+# define machine_is_se4200() (machine_arch_type == MACH_TYPE_SE4200) -+#else -+# define machine_is_se4200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMS197A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMS197A -+# endif -+# define machine_is_ems197a() (machine_arch_type == MACH_TYPE_EMS197A) -+#else -+# define machine_is_ems197a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MICRO9 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MICRO9 -+# endif -+# define machine_is_micro9() (machine_arch_type == MACH_TYPE_MICRO9) -+#else -+# define machine_is_micro9() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MICRO9L -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MICRO9L -+# endif -+# define machine_is_micro9l() (machine_arch_type == MACH_TYPE_MICRO9L) -+#else -+# define machine_is_micro9l() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UC5471DSP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UC5471DSP -+# endif -+# define machine_is_uc5471dsp() (machine_arch_type == MACH_TYPE_UC5471DSP) -+#else -+# define machine_is_uc5471dsp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SJ5471ENG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SJ5471ENG -+# endif -+# define machine_is_sj5471eng() (machine_arch_type == MACH_TYPE_SJ5471ENG) -+#else -+# define machine_is_sj5471eng() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CMPXA26X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CMPXA26X -+# endif -+# define machine_is_none() (machine_arch_type == MACH_TYPE_CMPXA26X) -+#else -+# define machine_is_none() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NC -+# endif -+# define machine_is_nc1() (machine_arch_type == MACH_TYPE_NC) -+#else -+# define machine_is_nc1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTE -+# endif -+# define machine_is_omap_palmte() (machine_arch_type == MACH_TYPE_OMAP_PALMTE) -+#else -+# define machine_is_omap_palmte() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AJAX52X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AJAX52X -+# endif -+# define machine_is_ajax52x() (machine_arch_type == MACH_TYPE_AJAX52X) -+#else -+# define machine_is_ajax52x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SIRIUSTAR -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SIRIUSTAR -+# endif -+# define machine_is_siriustar() (machine_arch_type == MACH_TYPE_SIRIUSTAR) -+#else -+# define machine_is_siriustar() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IODATA_HDLG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IODATA_HDLG -+# endif -+# define machine_is_iodata_hdlg() (machine_arch_type == MACH_TYPE_IODATA_HDLG) -+#else -+# define machine_is_iodata_hdlg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91RM9200UTL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91RM9200UTL -+# endif -+# define machine_is_at91rm9200utl() (machine_arch_type == MACH_TYPE_AT91RM9200UTL) -+#else -+# define machine_is_at91rm9200utl() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BIOSAFE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BIOSAFE -+# endif -+# define machine_is_biosafe() (machine_arch_type == MACH_TYPE_BIOSAFE) -+#else -+# define machine_is_biosafe() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MP1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MP1000 -+# endif -+# define machine_is_mp1000() (machine_arch_type == MACH_TYPE_MP1000) -+#else -+# define machine_is_mp1000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PARSY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PARSY -+# endif -+# define machine_is_parsy() (machine_arch_type == MACH_TYPE_PARSY) -+#else -+# define machine_is_parsy() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CCXP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CCXP -+# endif -+# define machine_is_ccxp270() (machine_arch_type == MACH_TYPE_CCXP) -+#else -+# define machine_is_ccxp270() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_GSAMPLE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_GSAMPLE -+# endif -+# define machine_is_omap_gsample() (machine_arch_type == MACH_TYPE_OMAP_GSAMPLE) -+#else -+# define machine_is_omap_gsample() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REALVIEW_EB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REALVIEW_EB -+# endif -+# define machine_is_realview_eb() (machine_arch_type == MACH_TYPE_REALVIEW_EB) -+#else -+# define machine_is_realview_eb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAMOA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAMOA -+# endif -+# define machine_is_samoa() (machine_arch_type == MACH_TYPE_SAMOA) -+#else -+# define machine_is_samoa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_T3XSCALE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_T3XSCALE -+# endif -+# define machine_is_t3xscale() (machine_arch_type == MACH_TYPE_T3XSCALE) -+#else -+# define machine_is_t3xscale() (0) -+#endif -+ -+#ifdef CONFIG_MACH_I878 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_I878 -+# endif -+# define machine_is_i878() (machine_arch_type == MACH_TYPE_I878) -+#else -+# define machine_is_i878() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BORZOI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BORZOI -+# endif -+# define machine_is_borzoi() (machine_arch_type == MACH_TYPE_BORZOI) -+#else -+# define machine_is_borzoi() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GECKO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GECKO -+# endif -+# define machine_is_gecko() (machine_arch_type == MACH_TYPE_GECKO) -+#else -+# define machine_is_gecko() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS101 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS101 -+# endif -+# define machine_is_ds101() (machine_arch_type == MACH_TYPE_DS101) -+#else -+# define machine_is_ds101() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTT2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTT2 -+# endif -+# define machine_is_omap_palmtt2() (machine_arch_type == MACH_TYPE_OMAP_PALMTT2) -+#else -+# define machine_is_omap_palmtt2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMLD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMLD -+# endif -+# define machine_is_xscale_palmld() (machine_arch_type == MACH_TYPE_XSCALE_PALMLD) -+#else -+# define machine_is_xscale_palmld() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CC9C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CC9C -+# endif -+# define machine_is_cc9c() (machine_arch_type == MACH_TYPE_CC9C) -+#else -+# define machine_is_cc9c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SBC1670 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SBC1670 -+# endif -+# define machine_is_sbc1670() (machine_arch_type == MACH_TYPE_SBC1670) -+#else -+# define machine_is_sbc1670() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXDP28X5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXDP28X5 -+# endif -+# define machine_is_ixdp28x5() (machine_arch_type == MACH_TYPE_IXDP28X5) -+#else -+# define machine_is_ixdp28x5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTT -+# endif -+# define machine_is_omap_palmtt() (machine_arch_type == MACH_TYPE_OMAP_PALMTT) -+#else -+# define machine_is_omap_palmtt() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ML696K -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ML696K -+# endif -+# define machine_is_ml696k() (machine_arch_type == MACH_TYPE_ML696K) -+#else -+# define machine_is_ml696k() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARCOM_ZEUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARCOM_ZEUS -+# endif -+# define machine_is_arcom_zeus() (machine_arch_type == MACH_TYPE_ARCOM_ZEUS) -+#else -+# define machine_is_arcom_zeus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OSIRIS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OSIRIS -+# endif -+# define machine_is_osiris() (machine_arch_type == MACH_TYPE_OSIRIS) -+#else -+# define machine_is_osiris() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAESTRO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAESTRO -+# endif -+# define machine_is_maestro() (machine_arch_type == MACH_TYPE_MAESTRO) -+#else -+# define machine_is_maestro() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TUNGE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TUNGE2 -+# endif -+# define machine_is_tunge2() (machine_arch_type == MACH_TYPE_TUNGE2) -+#else -+# define machine_is_tunge2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXBBM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXBBM -+# endif -+# define machine_is_ixbbm() (machine_arch_type == MACH_TYPE_IXBBM) -+#else -+# define machine_is_ixbbm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX27 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX27 -+# endif -+# define machine_is_mx27ads() (machine_arch_type == MACH_TYPE_MX27) -+#else -+# define machine_is_mx27ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AX8004 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AX8004 -+# endif -+# define machine_is_ax8004() (machine_arch_type == MACH_TYPE_AX8004) -+#else -+# define machine_is_ax8004() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91SAM9261EK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91SAM9261EK -+# endif -+# define machine_is_at91sam9261ek() (machine_arch_type == MACH_TYPE_AT91SAM9261EK) -+#else -+# define machine_is_at91sam9261ek() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LOFT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LOFT -+# endif -+# define machine_is_loft() (machine_arch_type == MACH_TYPE_LOFT) -+#else -+# define machine_is_loft() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAGPIE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAGPIE -+# endif -+# define machine_is_magpie() (machine_arch_type == MACH_TYPE_MAGPIE) -+#else -+# define machine_is_magpie() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX21 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX21 -+# endif -+# define machine_is_mx21ads() (machine_arch_type == MACH_TYPE_MX21) -+#else -+# define machine_is_mx21ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MB87M3400 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MB87M3400 -+# endif -+# define machine_is_mb87m3400() (machine_arch_type == MACH_TYPE_MB87M3400) -+#else -+# define machine_is_mb87m3400() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MGUARD_DELTA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MGUARD_DELTA -+# endif -+# define machine_is_mguard_delta() (machine_arch_type == MACH_TYPE_MGUARD_DELTA) -+#else -+# define machine_is_mguard_delta() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DAVINCI_DVDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DAVINCI_DVDP -+# endif -+# define machine_is_davinci_dvdp() (machine_arch_type == MACH_TYPE_DAVINCI_DVDP) -+#else -+# define machine_is_davinci_dvdp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCUNIVERSAL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCUNIVERSAL -+# endif -+# define machine_is_htcuniversal() (machine_arch_type == MACH_TYPE_HTCUNIVERSAL) -+#else -+# define machine_is_htcuniversal() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TPAD -+# endif -+# define machine_is_tpad() (machine_arch_type == MACH_TYPE_TPAD) -+#else -+# define machine_is_tpad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ROVERP3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ROVERP3 -+# endif -+# define machine_is_roverp3() (machine_arch_type == MACH_TYPE_ROVERP3) -+#else -+# define machine_is_roverp3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_JORNADA928 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_JORNADA928 -+# endif -+# define machine_is_jornada928() (machine_arch_type == MACH_TYPE_JORNADA928) -+#else -+# define machine_is_jornada928() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MV88FXX81 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MV88FXX81 -+# endif -+# define machine_is_mv88fxx81() (machine_arch_type == MACH_TYPE_MV88FXX81) -+#else -+# define machine_is_mv88fxx81() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STMP36XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STMP36XX -+# endif -+# define machine_is_stmp36xx() (machine_arch_type == MACH_TYPE_STMP36XX) -+#else -+# define machine_is_stmp36xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SXNI79524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SXNI79524 -+# endif -+# define machine_is_sxni79524() (machine_arch_type == MACH_TYPE_SXNI79524) -+#else -+# define machine_is_sxni79524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AMS_DELTA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AMS_DELTA -+# endif -+# define machine_is_ams_delta() (machine_arch_type == MACH_TYPE_AMS_DELTA) -+#else -+# define machine_is_ams_delta() (0) -+#endif -+ -+#ifdef CONFIG_MACH_URANIUM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_URANIUM -+# endif -+# define machine_is_uranium() (machine_arch_type == MACH_TYPE_URANIUM) -+#else -+# define machine_is_uranium() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UCON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UCON -+# endif -+# define machine_is_ucon() (machine_arch_type == MACH_TYPE_UCON) -+#else -+# define machine_is_ucon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NAS100D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NAS100D -+# endif -+# define machine_is_nas100d() (machine_arch_type == MACH_TYPE_NAS100D) -+#else -+# define machine_is_nas100d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_L083_1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_L083_1000 -+# endif -+# define machine_is_l083() (machine_arch_type == MACH_TYPE_L083_1000) -+#else -+# define machine_is_l083() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZX -+# endif -+# define machine_is_ezx() (machine_arch_type == MACH_TYPE_EZX) -+#else -+# define machine_is_ezx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX5220 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX5220 -+# endif -+# define machine_is_pnx5220() (machine_arch_type == MACH_TYPE_PNX5220) -+#else -+# define machine_is_pnx5220() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BUTTE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BUTTE -+# endif -+# define machine_is_butte() (machine_arch_type == MACH_TYPE_BUTTE) -+#else -+# define machine_is_butte() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SRM2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SRM2 -+# endif -+# define machine_is_srm2() (machine_arch_type == MACH_TYPE_SRM2) -+#else -+# define machine_is_srm2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DSBR -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DSBR -+# endif -+# define machine_is_dsbr() (machine_arch_type == MACH_TYPE_DSBR) -+#else -+# define machine_is_dsbr() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CRYSTALBALL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CRYSTALBALL -+# endif -+# define machine_is_crystalball() (machine_arch_type == MACH_TYPE_CRYSTALBALL) -+#else -+# define machine_is_crystalball() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TINYPXA27X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TINYPXA27X -+# endif -+# define machine_is_tinypxa27x() (machine_arch_type == MACH_TYPE_TINYPXA27X) -+#else -+# define machine_is_tinypxa27x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HERBIE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HERBIE -+# endif -+# define machine_is_herbie() (machine_arch_type == MACH_TYPE_HERBIE) -+#else -+# define machine_is_herbie() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAGICIAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAGICIAN -+# endif -+# define machine_is_magician() (machine_arch_type == MACH_TYPE_MAGICIAN) -+#else -+# define machine_is_magician() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CM4002 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CM4002 -+# endif -+# define machine_is_cm4002() (machine_arch_type == MACH_TYPE_CM4002) -+#else -+# define machine_is_cm4002() (0) -+#endif -+ -+#ifdef CONFIG_MACH_B4 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_B4 -+# endif -+# define machine_is_b4() (machine_arch_type == MACH_TYPE_B4) -+#else -+# define machine_is_b4() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAUI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAUI -+# endif -+# define machine_is_maui() (machine_arch_type == MACH_TYPE_MAUI) -+#else -+# define machine_is_maui() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CYBERTRACKER_G -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CYBERTRACKER_G -+# endif -+# define machine_is_cybertracker_g() (machine_arch_type == MACH_TYPE_CYBERTRACKER_G) -+#else -+# define machine_is_cybertracker_g() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXDKN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXDKN -+# endif -+# define machine_is_nxdkn() (machine_arch_type == MACH_TYPE_NXDKN) -+#else -+# define machine_is_nxdkn() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MIO8390 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MIO8390 -+# endif -+# define machine_is_mio8390() (machine_arch_type == MACH_TYPE_MIO8390) -+#else -+# define machine_is_mio8390() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMI_BOARD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMI_BOARD -+# endif -+# define machine_is_omi_board() (machine_arch_type == MACH_TYPE_OMI_BOARD) -+#else -+# define machine_is_omi_board() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX21CIV -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX21CIV -+# endif -+# define machine_is_mx21civ() (machine_arch_type == MACH_TYPE_MX21CIV) -+#else -+# define machine_is_mx21civ() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAHI_CDAC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAHI_CDAC -+# endif -+# define machine_is_mahi_cdac() (machine_arch_type == MACH_TYPE_MAHI_CDAC) -+#else -+# define machine_is_mahi_cdac() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTX -+# endif -+# define machine_is_xscale_palmtx() (machine_arch_type == MACH_TYPE_XSCALE_PALMTX) -+#else -+# define machine_is_xscale_palmtx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C2413 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C2413 -+# endif -+# define machine_is_s3c2413() (machine_arch_type == MACH_TYPE_S3C2413) -+#else -+# define machine_is_s3c2413() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAMSYS_EP0 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAMSYS_EP0 -+# endif -+# define machine_is_samsys_ep0() (machine_arch_type == MACH_TYPE_SAMSYS_EP0) -+#else -+# define machine_is_samsys_ep0() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WG302V1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WG302V1 -+# endif -+# define machine_is_wg302v1() (machine_arch_type == MACH_TYPE_WG302V1) -+#else -+# define machine_is_wg302v1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WG302V2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WG302V2 -+# endif -+# define machine_is_wg302v2() (machine_arch_type == MACH_TYPE_WG302V2) -+#else -+# define machine_is_wg302v2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EB42X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EB42X -+# endif -+# define machine_is_eb42x() (machine_arch_type == MACH_TYPE_EB42X) -+#else -+# define machine_is_eb42x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ331ES -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ331ES -+# endif -+# define machine_is_iq331es() (machine_arch_type == MACH_TYPE_IQ331ES) -+#else -+# define machine_is_iq331es() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COSYDSP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COSYDSP -+# endif -+# define machine_is_cosydsp() (machine_arch_type == MACH_TYPE_COSYDSP) -+#else -+# define machine_is_cosydsp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UPLAT7D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UPLAT7D -+# endif -+# define machine_is_uplat7d_proto() (machine_arch_type == MACH_TYPE_UPLAT7D) -+#else -+# define machine_is_uplat7d_proto() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PTDAVINCI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PTDAVINCI -+# endif -+# define machine_is_ptdavinci() (machine_arch_type == MACH_TYPE_PTDAVINCI) -+#else -+# define machine_is_ptdavinci() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MBUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MBUS -+# endif -+# define machine_is_mbus() (machine_arch_type == MACH_TYPE_MBUS) -+#else -+# define machine_is_mbus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NADIA2VB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NADIA2VB -+# endif -+# define machine_is_nadia2vb() (machine_arch_type == MACH_TYPE_NADIA2VB) -+#else -+# define machine_is_nadia2vb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_R1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_R1000 -+# endif -+# define machine_is_r1000() (machine_arch_type == MACH_TYPE_R1000) -+#else -+# define machine_is_r1000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HW90250 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HW90250 -+# endif -+# define machine_is_hw90250() (machine_arch_type == MACH_TYPE_HW90250) -+#else -+# define machine_is_hw90250() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_2430SDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_2430SDP -+# endif -+# define machine_is_omap_2430sdp() (machine_arch_type == MACH_TYPE_OMAP_2430SDP) -+#else -+# define machine_is_omap_2430sdp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DAVINCI_EVM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DAVINCI_EVM -+# endif -+# define machine_is_davinci_evm() (machine_arch_type == MACH_TYPE_DAVINCI_EVM) -+#else -+# define machine_is_davinci_evm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_TORNADO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_TORNADO -+# endif -+# define machine_is_omap_tornado() (machine_arch_type == MACH_TYPE_OMAP_TORNADO) -+#else -+# define machine_is_omap_tornado() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OLOCREEK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OLOCREEK -+# endif -+# define machine_is_olocreek() (machine_arch_type == MACH_TYPE_OLOCREEK) -+#else -+# define machine_is_olocreek() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PALMZ72 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PALMZ72 -+# endif -+# define machine_is_palmz72() (machine_arch_type == MACH_TYPE_PALMZ72) -+#else -+# define machine_is_palmz72() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXDB500 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXDB500 -+# endif -+# define machine_is_nxdb500() (machine_arch_type == MACH_TYPE_NXDB500) -+#else -+# define machine_is_nxdb500() (0) -+#endif -+ -+#ifdef CONFIG_MACH_APF9328 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_APF9328 -+# endif -+# define machine_is_apf9328() (machine_arch_type == MACH_TYPE_APF9328) -+#else -+# define machine_is_apf9328() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_WIPOQ -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_WIPOQ -+# endif -+# define machine_is_omap_wipoq() (machine_arch_type == MACH_TYPE_OMAP_WIPOQ) -+#else -+# define machine_is_omap_wipoq() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_TWIP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_TWIP -+# endif -+# define machine_is_omap_twip() (machine_arch_type == MACH_TYPE_OMAP_TWIP) -+#else -+# define machine_is_omap_twip() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTREO650 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTREO650 -+# endif -+# define machine_is_xscale_treo650() (machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650) -+#else -+# define machine_is_xscale_treo650() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ACUMEN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ACUMEN -+# endif -+# define machine_is_acumen() (machine_arch_type == MACH_TYPE_ACUMEN) -+#else -+# define machine_is_acumen() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XP100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XP100 -+# endif -+# define machine_is_xp100() (machine_arch_type == MACH_TYPE_XP100) -+#else -+# define machine_is_xp100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FS2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FS2410 -+# endif -+# define machine_is_fs2410() (machine_arch_type == MACH_TYPE_FS2410) -+#else -+# define machine_is_fs2410() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA270_CERF -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA270_CERF -+# endif -+# define machine_is_pxa270_cerf() (machine_arch_type == MACH_TYPE_PXA270_CERF) -+#else -+# define machine_is_pxa270_cerf() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SQ2FTLPALM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SQ2FTLPALM -+# endif -+# define machine_is_sq2ftlpalm() (machine_arch_type == MACH_TYPE_SQ2FTLPALM) -+#else -+# define machine_is_sq2ftlpalm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BSEMSERVER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BSEMSERVER -+# endif -+# define machine_is_bsemserver() (machine_arch_type == MACH_TYPE_BSEMSERVER) -+#else -+# define machine_is_bsemserver() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NETCLIENT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NETCLIENT -+# endif -+# define machine_is_netclient() (machine_arch_type == MACH_TYPE_NETCLIENT) -+#else -+# define machine_is_netclient() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTT5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTT5 -+# endif -+# define machine_is_xscale_palmtt5() (machine_arch_type == MACH_TYPE_XSCALE_PALMTT5) -+#else -+# define machine_is_xscale_palmtt5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTC -+# endif -+# define machine_is_xscale_palmtc() (machine_arch_type == MACH_TYPE_OMAP_PALMTC) -+#else -+# define machine_is_xscale_palmtc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_APOLLON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_APOLLON -+# endif -+# define machine_is_omap_apollon() (machine_arch_type == MACH_TYPE_OMAP_APOLLON) -+#else -+# define machine_is_omap_apollon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARGONLVEVB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARGONLVEVB -+# endif -+# define machine_is_mxc30030evb() (machine_arch_type == MACH_TYPE_ARGONLVEVB) -+#else -+# define machine_is_mxc30030evb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REA_2D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REA_2D -+# endif -+# define machine_is_rea_2d() (machine_arch_type == MACH_TYPE_REA_2D) -+#else -+# define machine_is_rea_2d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TI3E524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TI3E524 -+# endif -+# define machine_is_eti3e524() (machine_arch_type == MACH_TYPE_TI3E524) -+#else -+# define machine_is_eti3e524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ATEB9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ATEB9200 -+# endif -+# define machine_is_ateb9200() (machine_arch_type == MACH_TYPE_ATEB9200) -+#else -+# define machine_is_ateb9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AUCKLAND -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AUCKLAND -+# endif -+# define machine_is_auckland() (machine_arch_type == MACH_TYPE_AUCKLAND) -+#else -+# define machine_is_auckland() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AK3320M -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AK3320M -+# endif -+# define machine_is_ak3220m() (machine_arch_type == MACH_TYPE_AK3320M) -+#else -+# define machine_is_ak3220m() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DURAMAX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DURAMAX -+# endif -+# define machine_is_duramax() (machine_arch_type == MACH_TYPE_DURAMAX) -+#else -+# define machine_is_duramax() (0) -+#endif -+ -+#ifdef CONFIG_MACH_N35 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_N35 -+# endif -+# define machine_is_n35() (machine_arch_type == MACH_TYPE_N35) -+#else -+# define machine_is_n35() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PRONGHORN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PRONGHORN -+# endif -+# define machine_is_pronghorn() (machine_arch_type == MACH_TYPE_PRONGHORN) -+#else -+# define machine_is_pronghorn() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FUNDY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FUNDY -+# endif -+# define machine_is_fundy() (machine_arch_type == MACH_TYPE_FUNDY) -+#else -+# define machine_is_fundy() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LOGICPD_PXA270 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LOGICPD_PXA270 -+# endif -+# define machine_is_logicpd_pxa270() (machine_arch_type == MACH_TYPE_LOGICPD_PXA270) -+#else -+# define machine_is_logicpd_pxa270() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CPU777 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CPU777 -+# endif -+# define machine_is_cpu777() (machine_arch_type == MACH_TYPE_CPU777) -+#else -+# define machine_is_cpu777() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SIMICON9201 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SIMICON9201 -+# endif -+# define machine_is_simicon9201() (machine_arch_type == MACH_TYPE_SIMICON9201) -+#else -+# define machine_is_simicon9201() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LEAP2_HPM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LEAP2_HPM -+# endif -+# define machine_is_leap2_hpm() (machine_arch_type == MACH_TYPE_LEAP2_HPM) -+#else -+# define machine_is_leap2_hpm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CM922TXA10 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CM922TXA10 -+# endif -+# define machine_is_cm922txa10() (machine_arch_type == MACH_TYPE_CM922TXA10) -+#else -+# define machine_is_cm922txa10() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA -+# endif -+# define machine_is_sandgate() (machine_arch_type == MACH_TYPE_PXA) -+#else -+# define machine_is_sandgate() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2 -+# endif -+# define machine_is_sandgate2() (machine_arch_type == MACH_TYPE_SANDGATE2) -+#else -+# define machine_is_sandgate2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2G -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2G -+# endif -+# define machine_is_sandgate2g() (machine_arch_type == MACH_TYPE_SANDGATE2G) -+#else -+# define machine_is_sandgate2g() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2P -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2P -+# endif -+# define machine_is_sandgate2p() (machine_arch_type == MACH_TYPE_SANDGATE2P) -+#else -+# define machine_is_sandgate2p() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FRED_JACK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FRED_JACK -+# endif -+# define machine_is_fred_jack() (machine_arch_type == MACH_TYPE_FRED_JACK) -+#else -+# define machine_is_fred_jack() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TTG_COLOR1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TTG_COLOR1 -+# endif -+# define machine_is_ttg_color1() (machine_arch_type == MACH_TYPE_TTG_COLOR1) -+#else -+# define machine_is_ttg_color1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXEB500HMI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXEB500HMI -+# endif -+# define machine_is_nxeb500hmi() (machine_arch_type == MACH_TYPE_NXEB500HMI) -+#else -+# define machine_is_nxeb500hmi() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NETDCU8 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NETDCU8 -+# endif -+# define machine_is_netdcu8() (machine_arch_type == MACH_TYPE_NETDCU8) -+#else -+# define machine_is_netdcu8() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ML675050_CPU_BOA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ML675050_CPU_BOA -+# endif -+# define machine_is_ml675050_cpu_boa() (machine_arch_type == MACH_TYPE_ML675050_CPU_BOA) -+#else -+# define machine_is_ml675050_cpu_boa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NG_FVX538 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NG_FVX538 -+# endif -+# define machine_is_ng_fvx538() (machine_arch_type == MACH_TYPE_NG_FVX538) -+#else -+# define machine_is_ng_fvx538() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NG_FVS338 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NG_FVS338 -+# endif -+# define machine_is_ng_fvs338() (machine_arch_type == MACH_TYPE_NG_FVS338) -+#else -+# define machine_is_ng_fvs338() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX4103 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX4103 -+# endif -+# define machine_is_pnx4103() (machine_arch_type == MACH_TYPE_PNX4103) -+#else -+# define machine_is_pnx4103() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HESDB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HESDB -+# endif -+# define machine_is_hesdb() (machine_arch_type == MACH_TYPE_HESDB) -+#else -+# define machine_is_hesdb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSILO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSILO -+# endif -+# define machine_is_xsilo() (machine_arch_type == MACH_TYPE_XSILO) -+#else -+# define machine_is_xsilo() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ESPRESSO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ESPRESSO -+# endif -+# define machine_is_espresso() (machine_arch_type == MACH_TYPE_ESPRESSO) -+#else -+# define machine_is_espresso() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMLC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMLC -+# endif -+# define machine_is_emlc() (machine_arch_type == MACH_TYPE_EMLC) -+#else -+# define machine_is_emlc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SISTERON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SISTERON -+# endif -+# define machine_is_sisteron() (machine_arch_type == MACH_TYPE_SISTERON) -+#else -+# define machine_is_sisteron() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RX1950 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RX1950 -+# endif -+# define machine_is_rx1950() (machine_arch_type == MACH_TYPE_RX1950) -+#else -+# define machine_is_rx1950() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TSC_VENUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TSC_VENUS -+# endif -+# define machine_is_tsc_venus() (machine_arch_type == MACH_TYPE_TSC_VENUS) -+#else -+# define machine_is_tsc_venus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS101J -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS101J -+# endif -+# define machine_is_ds101j() (machine_arch_type == MACH_TYPE_DS101J) -+#else -+# define machine_is_ds101j() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MXC30030ADS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MXC30030ADS -+# endif -+# define machine_is_mxc30030ads() (machine_arch_type == MACH_TYPE_MXC30030ADS) -+#else -+# define machine_is_mxc30030ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FUJITSU_WIMAXSOC -+# endif -+# define machine_is_fujitsu_wimaxsoc() (machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC) -+#else -+# define machine_is_fujitsu_wimaxsoc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DUALPCMODEM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DUALPCMODEM -+# endif -+# define machine_is_dualpcmodem() (machine_arch_type == MACH_TYPE_DUALPCMODEM) -+#else -+# define machine_is_dualpcmodem() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GESBC9312 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GESBC9312 -+# endif -+# define machine_is_gesbc9312() (machine_arch_type == MACH_TYPE_GESBC9312) -+#else -+# define machine_is_gesbc9312() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCAPACHE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCAPACHE -+# endif -+# define machine_is_htcapache() (machine_arch_type == MACH_TYPE_HTCAPACHE) -+#else -+# define machine_is_htcapache() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXDP435 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXDP435 -+# endif -+# define machine_is_ixdp435() (machine_arch_type == MACH_TYPE_IXDP435) -+#else -+# define machine_is_ixdp435() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CATPROVT100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CATPROVT100 -+# endif -+# define machine_is_catprovt100() (machine_arch_type == MACH_TYPE_CATPROVT100) -+#else -+# define machine_is_catprovt100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PICOTUX1XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PICOTUX1XX -+# endif -+# define machine_is_picotux1xx() (machine_arch_type == MACH_TYPE_PICOTUX1XX) -+#else -+# define machine_is_picotux1xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PICOTUX2XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PICOTUX2XX -+# endif -+# define machine_is_picotux2xx() (machine_arch_type == MACH_TYPE_PICOTUX2XX) -+#else -+# define machine_is_picotux2xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DSMG600 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DSMG600 -+# endif -+# define machine_is_dsmg600() (machine_arch_type == MACH_TYPE_DSMG600) -+#else -+# define machine_is_dsmg600() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMPC2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMPC2 -+# endif -+# define machine_is_empc2() (machine_arch_type == MACH_TYPE_EMPC2) -+#else -+# define machine_is_empc2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VENTURA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VENTURA -+# endif -+# define machine_is_ventura() (machine_arch_type == MACH_TYPE_VENTURA) -+#else -+# define machine_is_ventura() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PHIDGET_SBC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PHIDGET_SBC -+# endif -+# define machine_is_phidget_sbc() (machine_arch_type == MACH_TYPE_PHIDGET_SBC) -+#else -+# define machine_is_phidget_sbc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IJ3K -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IJ3K -+# endif -+# define machine_is_ij3k() (machine_arch_type == MACH_TYPE_IJ3K) -+#else -+# define machine_is_ij3k() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PISGAH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PISGAH -+# endif -+# define machine_is_pisgah() (machine_arch_type == MACH_TYPE_PISGAH) -+#else -+# define machine_is_pisgah() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_FSAMPLE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_FSAMPLE -+# endif -+# define machine_is_omap_fsample() (machine_arch_type == MACH_TYPE_OMAP_FSAMPLE) -+#else -+# define machine_is_omap_fsample() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SG720 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SG720 -+# endif -+# define machine_is_sg720() (machine_arch_type == MACH_TYPE_SG720) -+#else -+# define machine_is_sg720() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REDFOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REDFOX -+# endif -+# define machine_is_redfox() (machine_arch_type == MACH_TYPE_REDFOX) -+#else -+# define machine_is_redfox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MYSH_EP9315_1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MYSH_EP9315_1 -+# endif -+# define machine_is_mysh_ep9315_1() (machine_arch_type == MACH_TYPE_MYSH_EP9315_1) -+#else -+# define machine_is_mysh_ep9315_1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TPF106 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TPF106 -+# endif -+# define machine_is_tpf106() (machine_arch_type == MACH_TYPE_TPF106) -+#else -+# define machine_is_tpf106() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91RM9200KG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91RM9200KG -+# endif -+# define machine_is_at91rm9200kg() (machine_arch_type == MACH_TYPE_AT91RM9200KG) -+#else -+# define machine_is_at91rm9200kg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SLEDB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SLEDB -+# endif -+# define machine_is_racemt2() (machine_arch_type == MACH_TYPE_SLEDB) -+#else -+# define machine_is_racemt2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ONTRACK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ONTRACK -+# endif -+# define machine_is_ontrack() (machine_arch_type == MACH_TYPE_ONTRACK) -+#else -+# define machine_is_ontrack() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PM1200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PM1200 -+# endif -+# define machine_is_pm1200() (machine_arch_type == MACH_TYPE_PM1200) -+#else -+# define machine_is_pm1200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ESS24XXX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ESS24XXX -+# endif -+# define machine_is_ess24562() (machine_arch_type == MACH_TYPE_ESS24XXX) -+#else -+# define machine_is_ess24562() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COREMP7 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COREMP7 -+# endif -+# define machine_is_coremp7() (machine_arch_type == MACH_TYPE_COREMP7) -+#else -+# define machine_is_coremp7() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NEXCODER_6446 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NEXCODER_6446 -+# endif -+# define machine_is_nexcoder_6446() (machine_arch_type == MACH_TYPE_NEXCODER_6446) -+#else -+# define machine_is_nexcoder_6446() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STVC8380 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STVC8380 -+# endif -+# define machine_is_stvc8380() (machine_arch_type == MACH_TYPE_STVC8380) -+#else -+# define machine_is_stvc8380() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TEKLYNX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TEKLYNX -+# endif -+# define machine_is_teklynx() (machine_arch_type == MACH_TYPE_TEKLYNX) -+#else -+# define machine_is_teklynx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CARBONADO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CARBONADO -+# endif -+# define machine_is_carbonado() (machine_arch_type == MACH_TYPE_CARBONADO) -+#else -+# define machine_is_carbonado() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SYSMOS_MP730 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SYSMOS_MP730 -+# endif -+# define machine_is_sysmos_mp730() (machine_arch_type == MACH_TYPE_SYSMOS_MP730) -+#else -+# define machine_is_sysmos_mp730() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SNAPPER_CL15 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SNAPPER_CL15 -+# endif -+# define machine_is_snapper_cl15() (machine_arch_type == MACH_TYPE_SNAPPER_CL15) -+#else -+# define machine_is_snapper_cl15() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PGIGIM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PGIGIM -+# endif -+# define machine_is_pgigim() (machine_arch_type == MACH_TYPE_PGIGIM) -+#else -+# define machine_is_pgigim() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PTX9160P2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PTX9160P2 -+# endif -+# define machine_is_ptx9160p2() (machine_arch_type == MACH_TYPE_PTX9160P2) -+#else -+# define machine_is_ptx9160p2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DCORE1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DCORE1 -+# endif -+# define machine_is_dcore1() (machine_arch_type == MACH_TYPE_DCORE1) -+#else -+# define machine_is_dcore1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VICTORPXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VICTORPXA -+# endif -+# define machine_is_victorpxa() (machine_arch_type == MACH_TYPE_VICTORPXA) -+#else -+# define machine_is_victorpxa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX2DTB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX2DTB -+# endif -+# define machine_is_mx2dtb() (machine_arch_type == MACH_TYPE_MX2DTB) -+#else -+# define machine_is_mx2dtb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA_IREX_ER0100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA_IREX_ER0100 -+# endif -+# define machine_is_pxa_irex_er0100() (machine_arch_type == MACH_TYPE_PXA_IREX_ER0100) -+#else -+# define machine_is_pxa_irex_er0100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMZ71 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMZ71 -+# endif -+# define machine_is_omap_palmz71() (machine_arch_type == MACH_TYPE_OMAP_PALMZ71) -+#else -+# define machine_is_omap_palmz71() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BARTEC_DEG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BARTEC_DEG -+# endif -+# define machine_is_bartec_deg() (machine_arch_type == MACH_TYPE_BARTEC_DEG) -+#else -+# define machine_is_bartec_deg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HW50251 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HW50251 -+# endif -+# define machine_is_hw50251() (machine_arch_type == MACH_TYPE_HW50251) -+#else -+# define machine_is_hw50251() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IBOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IBOX -+# endif -+# define machine_is_ibox() (machine_arch_type == MACH_TYPE_IBOX) -+#else -+# define machine_is_ibox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ATLASLH7A404 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ATLASLH7A404 -+# endif -+# define machine_is_atlaslh7a404() (machine_arch_type == MACH_TYPE_ATLASLH7A404) -+#else -+# define machine_is_atlaslh7a404() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PT2026 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PT2026 -+# endif -+# define machine_is_pt2026() (machine_arch_type == MACH_TYPE_PT2026) -+#else -+# define machine_is_pt2026() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCALPINE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCALPINE -+# endif -+# define machine_is_htcalpine() (machine_arch_type == MACH_TYPE_HTCALPINE) -+#else -+# define machine_is_htcalpine() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BARTEC_VTU -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BARTEC_VTU -+# endif -+# define machine_is_bartec_vtu() (machine_arch_type == MACH_TYPE_BARTEC_VTU) -+#else -+# define machine_is_bartec_vtu() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VCOREII -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VCOREII -+# endif -+# define machine_is_vcoreii() (machine_arch_type == MACH_TYPE_VCOREII) -+#else -+# define machine_is_vcoreii() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PDNB3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PDNB3 -+# endif -+# define machine_is_pdnb3() (machine_arch_type == MACH_TYPE_PDNB3) -+#else -+# define machine_is_pdnb3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCBEETLES -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCBEETLES -+# endif -+# define machine_is_htcbeetles() (machine_arch_type == MACH_TYPE_HTCBEETLES) -+#else -+# define machine_is_htcbeetles() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C6400 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C6400 -+# endif -+# define machine_is_s3c6400() (machine_arch_type == MACH_TYPE_S3C6400) -+#else -+# define machine_is_s3c6400() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C2443 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C2443 -+# endif -+# define machine_is_s3c2443() (machine_arch_type == MACH_TYPE_S3C2443) -+#else -+# define machine_is_s3c2443() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_LDK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_LDK -+# endif -+# define machine_is_omap_ldk() (machine_arch_type == MACH_TYPE_OMAP_LDK) -+#else -+# define machine_is_omap_ldk() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2460 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2460 -+# endif -+# define machine_is_smdk2460() (machine_arch_type == MACH_TYPE_SMDK2460) -+#else -+# define machine_is_smdk2460() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2440 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2440 -+# endif -+# define machine_is_smdk2440() (machine_arch_type == MACH_TYPE_SMDK2440) -+#else -+# define machine_is_smdk2440() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2412 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2412 -+# endif -+# define machine_is_smdk2412() (machine_arch_type == MACH_TYPE_SMDK2412) -+#else -+# define machine_is_smdk2412() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WEBBOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WEBBOX -+# endif -+# define machine_is_webbox() (machine_arch_type == MACH_TYPE_WEBBOX) -+#else -+# define machine_is_webbox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CWWNDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CWWNDP -+# endif -+# define machine_is_cwwndp() (machine_arch_type == MACH_TYPE_CWWNDP) -+#else -+# define machine_is_cwwndp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DRAGON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DRAGON -+# endif -+# define machine_is_dragon() (machine_arch_type == MACH_TYPE_DRAGON) -+#else -+# define machine_is_dragon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OPENDO_CPU_BOARD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OPENDO_CPU_BOARD -+# endif -+# define machine_is_opendo_cpu_board() (machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD) -+#else -+# define machine_is_opendo_cpu_board() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CCM2200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CCM2200 -+# endif -+# define machine_is_ccm2200() (machine_arch_type == MACH_TYPE_CCM2200) -+#else -+# define machine_is_ccm2200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ETWARM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ETWARM -+# endif -+# define machine_is_etwarm() (machine_arch_type == MACH_TYPE_ETWARM) -+#else -+# define machine_is_etwarm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_M93030 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_M93030 -+# endif -+# define machine_is_m93030() (machine_arch_type == MACH_TYPE_M93030) -+#else -+# define machine_is_m93030() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CC7U -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CC7U -+# endif -+# define machine_is_cc7u() (machine_arch_type == MACH_TYPE_CC7U) -+#else -+# define machine_is_cc7u() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MTT_RANGER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MTT_RANGER -+# endif -+# define machine_is_mtt_ranger() (machine_arch_type == MACH_TYPE_MTT_RANGER) -+#else -+# define machine_is_mtt_ranger() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NEXUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NEXUS -+# endif -+# define machine_is_nexus() (machine_arch_type == MACH_TYPE_NEXUS) -+#else -+# define machine_is_nexus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DESMAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DESMAN -+# endif -+# define machine_is_desman() (machine_arch_type == MACH_TYPE_DESMAN) -+#else -+# define machine_is_desman() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BKDE303 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BKDE303 -+# endif -+# define machine_is_bkde303() (machine_arch_type == MACH_TYPE_BKDE303) -+#else -+# define machine_is_bkde303() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2413 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2413 -+# endif -+# define machine_is_smdk2413() (machine_arch_type == MACH_TYPE_SMDK2413) -+#else -+# define machine_is_smdk2413() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AML_M7200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AML_M7200 -+# endif -+# define machine_is_aml_m7200() (machine_arch_type == MACH_TYPE_AML_M7200) -+#else -+# define machine_is_aml_m7200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AML_M5900 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AML_M5900 -+# endif -+# define machine_is_aml_m5900() (machine_arch_type == MACH_TYPE_AML_M5900) -+#else -+# define machine_is_aml_m5900() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SG640 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SG640 -+# endif -+# define machine_is_sg640() (machine_arch_type == MACH_TYPE_SG640) -+#else -+# define machine_is_sg640() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDG79524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDG79524 -+# endif -+# define machine_is_edg79524() (machine_arch_type == MACH_TYPE_EDG79524) -+#else -+# define machine_is_edg79524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AI2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AI2410 -+# endif -+# define machine_is_ai2410() (machine_arch_type == MACH_TYPE_AI2410) -+#else -+# define machine_is_ai2410() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXP465 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXP465 -+# endif -+# define machine_is_ixp465() (machine_arch_type == MACH_TYPE_IXP465) -+#else -+# define machine_is_ixp465() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BALLOON3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BALLOON3 -+# endif -+# define machine_is_balloon3() (machine_arch_type == MACH_TYPE_BALLOON3) -+#else -+# define machine_is_balloon3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_QT2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_QT2410 -+# endif -+# define machine_is_qt2410() (machine_arch_type == MACH_TYPE_QT2410) -+#else -+# define machine_is_qt2410() (0) -+#endif -+ - /* - * These have not yet been registered - */ -diff --git a/include/configs/qt2410.h b/include/configs/qt2410.h -new file mode 100644 -index 0000000..627f365 ---- /dev/null -+++ b/include/configs/qt2410.h -@@ -0,0 +1,256 @@ -+/* -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * Gary Jennejohn <gj@denx.de> -+ * David Mueller <d.mueller@elsoft.ch> -+ * -+ * Configuation settings for the SAMSUNG SMDK2410 board. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+ -+#if 0 -+/* If we want to start u-boot from usb bootloader in NOR flash */ -+#define CONFIG_SKIP_RELOCATE_UBOOT 1 -+#define CONFIG_SKIP_LOWLEVEL_INIT 1 -+#else -+/* If we want to start u-boot directly from within NAND flash */ -+#define CONFIG_S3C2410_NAND_BOOT 1 -+#endif -+ -+/* -+ * High Level Configuration Options -+ * (easy to change) -+ */ -+#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -+#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -+#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ -+ -+/* input clock of PLL */ -+#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ -+ -+ -+#define USE_920T_MMU 1 -+#define CONFIG_USE_IRQ 1 -+//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ -+ -+/* -+ * Size of malloc() pool -+ */ -+#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ -+ -+/* -+ * Hardware drivers -+ */ -+#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ -+#define CS8900_BASE 0x19000300 -+#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ -+ -+/* -+ * select serial console configuration -+ */ -+#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ -+#define CONFIG_HWFLOW 1 -+ -+/************************************************************ -+ * RTC -+ ************************************************************/ -+#define CONFIG_RTC_S3C24X0 1 -+ -+/* allow to overwrite serial and ethaddr */ -+#define CONFIG_ENV_OVERWRITE -+ -+#define CONFIG_BAUDRATE 115200 -+ -+/*********************************************************** -+ * Command definition -+ ***********************************************************/ -+#define CONFIG_COMMANDS \ -+ (CONFIG_CMD_DFL | \ -+ CFG_CMD_BSP | \ -+ CFG_CMD_CACHE | \ -+ CFG_CMD_DATE | \ -+ CFG_CMD_DHCP | \ -+ CFG_CMD_DIAG | \ -+ CFG_CMD_ELF | \ -+ CFG_CMD_EXT2 | \ -+ CFG_CMD_FAT | \ -+ CFG_CMD_HWFLOW | \ -+ /* CFG_CMD_IDE | */ \ -+ /* CFG_CMD_IRQ | */ \ -+ CFG_CMD_JFFS2 | \ -+ CFG_CMD_MMC | \ -+ CFG_CMD_NAND | \ -+ CFG_CMD_PING | \ -+ CFG_CMD_PORTIO | \ -+ CFG_CMD_REGINFO | \ -+ CFG_CMD_SAVES | \ -+ CFG_CMD_USB) -+ -+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -+#include <cmd_confdefs.h> -+ -+#define CONFIG_BOOTDELAY 3 -+#define CONFIG_BOOTARGS "root=/dev/sda1 console=ttySAC0,115200 loglevel=8 rootdelay=10" -+/*#define CONFIG_ETHADDR 08:00:3e:26:0a:5b */ -+#define CONFIG_NETMASK 255.255.255.0 -+#define CONFIG_IPADDR 10.0.0.110 -+#define CONFIG_SERVERIP 10.0.0.1 -+/*#define CONFIG_BOOTFILE "elinos-lart" */ -+#define CONFIG_BOOTCOMMAND "mmcinit; ext2load mmc 0 0x32000000 uImage; bootm 0x32000000" -+ -+#define CONFIG_DOS_PARTITION 1 -+ -+#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -+#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -+/* what's this ? it's not used anywhere */ -+#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -+#endif -+ -+/* -+ * Miscellaneous configurable options -+ */ -+#define CFG_LONGHELP /* undef to save memory */ -+#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ -+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -+#define CFG_MAXARGS 16 /* max number of command args */ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -+ -+#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -+#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ -+ -+#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ -+ -+#define CFG_LOAD_ADDR 0x33000000 /* default load address */ -+ -+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -+/* it to wrap 100 times (total 1562500) to get 1 sec. */ -+#define CFG_HZ 1562500 -+ -+/* valid baudrates */ -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+ -+/*----------------------------------------------------------------------- -+ * Stack sizes -+ * -+ * The stack sizes are set up in start.S using the settings below -+ */ -+#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -+#ifdef CONFIG_USE_IRQ -+#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -+#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -+#endif -+ -+/* IDE/ATA config */ -+ -+#if 0 -+#define CFG_IDE_MAXBUS 1 -+#define CFG_IDE_MAXDEVICE 2 -+#define CFG_IDE_PREINIT 0 -+ -+#define CFG_ATA_BASE_ADDR -+#endif -+ -+#define CONFIG_USB_OHCI 1 -+ -+/*----------------------------------------------------------------------- -+ * Physical Memory Map -+ */ -+#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -+#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -+#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -+#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ -+ -+#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ -+ -+#define CFG_FLASH_BASE PHYS_FLASH_1 -+ -+/*----------------------------------------------------------------------- -+ * FLASH and environment organization -+ */ -+ -+#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ -+#if 0 -+#define CONFIG_AMD_LV800 1 /* uncomment this if you have a LV800 flash */ -+#endif -+ -+#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -+#ifdef CONFIG_AMD_LV800 -+#define PHYS_FLASH_SIZE 0x00100000 /* 1MB */ -+#define CFG_MAX_FLASH_SECT (19) /* max number of sectors on one chip */ -+#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x0F0000) /* addr of environment */ -+#endif -+#ifdef CONFIG_AMD_LV400 -+#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ -+#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ -+#define CFG_ENV_ADDR (CFG_FLASH_BASE + 0x070000) /* addr of environment */ -+#endif -+ -+/* timeout values are in ticks */ -+#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ -+#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ -+ -+#define CFG_ENV_IS_IN_NAND 1 -+#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -+#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ -+ -+#define NAND_MAX_CHIPS 1 -+#define CFG_NAND_BASE 0x4e000000 -+#define CFG_MAX_NAND_DEVICE 1 -+ -+#define CONFIG_MMC 1 -+#define CFG_MMC_BASE 0xff000000 -+ -+#define CONFIG_EXT2 1 -+ -+/* FAT driver in u-boot is broken currently */ -+#define CONFIG_FAT 1 -+#define CONFIG_SUPPORT_VFAT -+ -+/* ATAG configuration */ -+#define CONFIG_INITRD_TAG 1 -+#define CONFIG_SETUP_MEMORY_TAGS 1 -+#define CONFIG_CMDLINE_TAG 1 -+#if 0 -+#define CONFIG_SERIAL_TAG 1 -+#define CONFIG_REVISION_TAG 1 -+#endif -+ -+ -+#if 0 -+#define CONFIG_VIDEO -+#define CONFIG_VIDEO_S3C2410 -+#define CONFIG_CFB_CONSOLE -+#define CONFIG_VIDEO_LOGO -+#define CONFIG_VGA_AS_SINGLE_DEVICE -+ -+#define VIDEO_KBD_INIT_FCT 0 -+#define VIDEO_TSTC_FCT serial_tstc -+#define VIDEO_GETC_FCT serial_getc -+ -+#define LCD_VIDEO_ADDR 0x33d00000 -+#endif -+ -+#endif /* __CONFIG_H */ -diff --git a/include/s3c2410.h b/include/s3c2410.h -index 86495f6..913521d 100644 ---- a/include/s3c2410.h -+++ b/include/s3c2410.h -@@ -38,12 +38,6 @@ #define S3C24X0_SPI_CHANNELS 2 - #define S3C2410_ECCSIZE 512 - #define S3C2410_ECCBYTES 3 - --typedef enum { -- S3C24X0_UART0, -- S3C24X0_UART1, -- S3C24X0_UART2 --} S3C24X0_UARTS_NR; -- - /* S3C2410 device base addresses */ - #define S3C24X0_MEMCTL_BASE 0x48000000 - #define S3C24X0_USB_HOST_BASE 0x49000000 -@@ -65,9 +59,23 @@ #define S3C24X0_SPI_BASE 0x59000000 - #define S3C2410_SDI_BASE 0x5A000000 - - -+#define oNFCONF 0x00 -+#define oNFCMD 0x04 -+#define oNFADDR 0x08 -+#define oNFDATA 0x0C -+#define oNFSTAT 0x10 -+#define oNFECC 0x14 -+ -+#ifndef __ASSEMBLER__ -+ - /* include common stuff */ - #include <s3c24x0.h> - -+typedef enum { -+ S3C24X0_UART0, -+ S3C24X0_UART1, -+ S3C24X0_UART2 -+} S3C24X0_UARTS_NR; - - static inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void) - { -@@ -142,6 +150,7 @@ static inline S3C2410_SDI * const S3C241 - return (S3C2410_SDI * const)S3C2410_SDI_BASE; - } - -+#endif - - /* ISR */ - #define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+0x0)) -diff --git a/include/s3c24x0.h b/include/s3c24x0.h -index 71f35a5..557b91f 100644 ---- a/include/s3c24x0.h -+++ b/include/s3c24x0.h -@@ -637,13 +637,7 @@ typedef struct { - S3C24X0_REG32 SDIDCNT; - S3C24X0_REG32 SDIDSTA; - S3C24X0_REG32 SDIFSTA; --#ifdef __BIG_ENDIAN -- S3C24X0_REG8 res[3]; -- S3C24X0_REG8 SDIDAT; --#else -- S3C24X0_REG8 SDIDAT; -- S3C24X0_REG8 res[3]; --#endif -+ S3C24X0_REG32 SDIDAT; - S3C24X0_REG32 SDIIMSK; - } /*__attribute__((__packed__))*/ S3C2410_SDI; - -@@ -1123,11 +1117,7 @@ #define rSDIDatCon (*(volatile unsigned - #define rSDIDatCnt (*(volatile unsigned *)0x5A000030) - #define rSDIDatSta (*(volatile unsigned *)0x5A000034) - #define rSDIFSTA (*(volatile unsigned *)0x5A000038) --#ifdef __BIG_ENDIAN --#define rSDIDAT (*(volatile unsigned char *)0x5A00003F) --#else --#define rSDIDAT (*(volatile unsigned char *)0x5A00003C) --#endif -+#define rSDIDAT (*(volatile unsigned *)0x5A00003C) - #define rSDIIntMsk (*(volatile unsigned *)0x5A000040) - - #endif diff --git a/packages/uboot/files/u-boot-20060907-gta01.patch b/packages/uboot/files/u-boot-20060907-gta01.patch deleted file mode 100644 index 6aa54fa208..0000000000 --- a/packages/uboot/files/u-boot-20060907-gta01.patch +++ /dev/null @@ -1,901 +0,0 @@ -diff --exclude .git -Nru u-boot/Makefile u-boot.new/Makefile ---- u-boot/Makefile 2006-08-11 23:19:07.000000000 +0200 -+++ u-boot.new/Makefile 2006-10-26 13:02:41.000000000 +0200 -@@ -1641,6 +1641,9 @@ - qt2410_config : unconfig - @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0 - -+gta01_config : unconfig -+ @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0 -+ - scb9328_config : unconfig - @./mkconfig $(@:_config=) arm arm920t scb9328 NULL imx - -diff --exclude .git -Nru u-boot/board/gta01/Makefile u-boot.new/board/gta01/Makefile ---- u-boot/board/gta01/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/gta01/Makefile 2006-10-25 17:21:44.000000000 +0200 -@@ -0,0 +1,47 @@ -+# -+# (C) Copyright 2000, 2001, 2002 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+# MA 02111-1307 USA -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = lib$(BOARD).a -+ -+OBJS := gta01.o -+SOBJS := lowlevel_init.o -+ -+$(LIB): $(OBJS) $(SOBJS) -+ $(AR) crv $@ $(OBJS) $(SOBJS) -+ -+clean: -+ rm -f $(SOBJS) $(OBJS) -+ -+distclean: clean -+ rm -f $(LIB) core *.bak .depend -+ -+######################################################################### -+ -+.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) -+ $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ -+ -+-include .depend -+ -+######################################################################### -diff --exclude .git -Nru u-boot/board/gta01/config.mk u-boot.new/board/gta01/config.mk ---- u-boot/board/gta01/config.mk 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/gta01/config.mk 2006-10-25 17:22:09.000000000 +0200 -@@ -0,0 +1,25 @@ -+# -+# (C) Copyright 2002 -+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+# -+# FIC GTA01 board with S3C2410X (ARM920T) cpu -+# -+# see http://www.samsung.com/ for more information on SAMSUNG -+# -+ -+# -+# GTA01 has 1 bank of 64 MB DRAM -+# -+# 3000'0000 to 3400'0000 -+# -+# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 -+# optionally with a ramdisk at 3080'0000 -+# -+# we load ourself to 33F8'0000 -+# -+# download area is 3300'0000 -+# -+ -+ -+TEXT_BASE = 0x33F80000 -diff --exclude .git -Nru u-boot/board/gta01/gta01.c u-boot.new/board/gta01/gta01.c ---- u-boot/board/gta01/gta01.c 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/gta01/gta01.c 2006-10-25 17:27:50.000000000 +0200 -@@ -0,0 +1,133 @@ -+/* -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * based on existing S3C2410 startup code in u-boot: -+ * -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+#include <s3c2410.h> -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#if 1 -+//#define M_MDIV 0xA1 /* Fout = 202.8MHz */ -+//#define M_PDIV 0x3 -+//#define M_SDIV 0x1 -+#define M_MDIV 0x90 /* Fout = 202.8MHz */ -+#define M_PDIV 0x7 -+#define M_SDIV 0x0 -+#else -+#define M_MDIV 0x5c /* Fout = 150.0MHz */ -+#define M_PDIV 0x4 -+#define M_SDIV 0x0 -+#endif -+ -+#if 1 -+#define U_M_MDIV 0x78 -+#define U_M_PDIV 0x2 -+#define U_M_SDIV 0x3 -+#else -+#define U_M_MDIV 0x48 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x2 -+#endif -+ -+static inline void delay (unsigned long loops) -+{ -+ __asm__ volatile ("1:\n" -+ "subs %0, %1, #1\n" -+ "bne 1b":"=r" (loops):"0" (loops)); -+} -+ -+/* -+ * Miscellaneous platform dependent initialisations -+ */ -+ -+int board_init (void) -+{ -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); -+ -+ /* to reduce PLL lock time, adjust the LOCKTIME register */ -+ clk_power->LOCKTIME = 0xFFFFFF; -+ -+ /* configure MPLL */ -+ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (4000); -+ -+ /* configure UPLL */ -+ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (8000); -+ -+ /* set up the I/O ports */ -+ gpio->GPACON = 0x007FFFFF; -+ -+ gpio->GPBCON = 0x00005056; -+ gpio->GPBUP = 0x000007FF; -+ -+ gpio->GPCCON = 0xAAAA12A8; -+ gpio->GPCUP = 0x0000FFFF; -+ -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ -+ gpio->GPECON = 0xAAAAAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ -+ gpio->GPFCON = 0x00002AA9; -+ gpio->GPFUP = 0x000000FF; -+ -+ gpio->GPGCON = 0xA846F0C0; -+ gpio->GPGUP = 0x0000AFEF; -+ -+ gpio->GPHCON = 0x0008FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+ /* arch number of SMDK2410-Board */ -+ gd->bd->bi_arch_number = MACH_TYPE_GTA01; -+ -+ /* adress of boot parameters */ -+ gd->bd->bi_boot_params = 0x30000100; -+ -+ icache_enable(); -+ dcache_enable(); -+ -+ return 0; -+} -+ -+int dram_init (void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return 0; -+} -diff --exclude .git -Nru u-boot/board/gta01/lowlevel_init.S u-boot.new/board/gta01/lowlevel_init.S ---- u-boot/board/gta01/lowlevel_init.S 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/gta01/lowlevel_init.S 2006-10-25 17:20:42.000000000 +0200 -@@ -0,0 +1,171 @@ -+/* -+ * Memory Setup stuff - taken from blob memsetup.S -+ * -+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and -+ * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) -+ * -+ * Modified for the FIC GTA01 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+ -+#include <config.h> -+#include <version.h> -+ -+ -+/* some parameters for the board */ -+ -+/* -+ * -+ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S -+ * -+ * Copyright (C) 2002 Samsung Electronics SW.LEE <hitchcar@sec.samsung.com> -+ * -+ */ -+ -+#define BWSCON 0x48000000 -+ -+/* BWSCON */ -+#define DW8 (0x0) -+#define DW16 (0x1) -+#define DW32 (0x2) -+#define WAIT (0x1<<2) -+#define UBLB (0x1<<3) -+ -+#define B1_BWSCON (DW32) -+#define B2_BWSCON (DW16) -+#define B3_BWSCON (DW16 + WAIT + UBLB) -+#define B4_BWSCON (DW16) -+#define B5_BWSCON (DW16) -+#define B6_BWSCON (DW32) -+#define B7_BWSCON (DW32) -+ -+/* BANK0CON */ -+#define B0_Tacs 0x0 /* 0clk */ -+#define B0_Tcos 0x0 /* 0clk */ -+#define B0_Tacc 0x7 /* 14clk */ -+#define B0_Tcoh 0x0 /* 0clk */ -+#define B0_Tah 0x0 /* 0clk */ -+#define B0_Tacp 0x0 -+#define B0_PMC 0x0 /* normal */ -+ -+/* BANK1CON */ -+#define B1_Tacs 0x0 /* 0clk */ -+#define B1_Tcos 0x0 /* 0clk */ -+#define B1_Tacc 0x7 /* 14clk */ -+#define B1_Tcoh 0x0 /* 0clk */ -+#define B1_Tah 0x0 /* 0clk */ -+#define B1_Tacp 0x0 -+#define B1_PMC 0x0 -+ -+#define B2_Tacs 0x0 -+#define B2_Tcos 0x0 -+#define B2_Tacc 0x7 -+#define B2_Tcoh 0x0 -+#define B2_Tah 0x0 -+#define B2_Tacp 0x0 -+#define B2_PMC 0x0 -+ -+#define B3_Tacs 0x0 /* 0clk */ -+#define B3_Tcos 0x3 /* 4clk */ -+#define B3_Tacc 0x7 /* 14clk */ -+#define B3_Tcoh 0x1 /* 1clk */ -+#define B3_Tah 0x0 /* 0clk */ -+#define B3_Tacp 0x3 /* 6clk */ -+#define B3_PMC 0x0 /* normal */ -+ -+#define B4_Tacs 0x0 /* 0clk */ -+#define B4_Tcos 0x0 /* 0clk */ -+#define B4_Tacc 0x7 /* 14clk */ -+#define B4_Tcoh 0x0 /* 0clk */ -+#define B4_Tah 0x0 /* 0clk */ -+#define B4_Tacp 0x0 -+#define B4_PMC 0x0 /* normal */ -+ -+#define B5_Tacs 0x0 /* 0clk */ -+#define B5_Tcos 0x0 /* 0clk */ -+#define B5_Tacc 0x7 /* 14clk */ -+#define B5_Tcoh 0x0 /* 0clk */ -+#define B5_Tah 0x0 /* 0clk */ -+#define B5_Tacp 0x0 -+#define B5_PMC 0x0 /* normal */ -+ -+#define B6_MT 0x3 /* SDRAM */ -+#define B6_Trcd 0x1 -+#define B6_SCAN 0x1 /* 9bit */ -+ -+#define B7_MT 0x3 /* SDRAM */ -+#define B7_Trcd 0x1 /* 3clk */ -+#define B7_SCAN 0x1 /* 9bit */ -+ -+/* REFRESH parameter */ -+#define REFEN 0x1 /* Refresh enable */ -+#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */ -+#define Trp 0x1 /* 3clk */ -+#define Trc 0x3 /* 7clk */ -+#define Tchr 0x2 /* 3clk */ -+//#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ -+#define REFCNT 997 /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */ -+/**************************************/ -+ -+_TEXT_BASE: -+ .word TEXT_BASE -+ -+.globl lowlevel_init -+lowlevel_init: -+ /* memory control configuration */ -+ /* make r0 relative the current location so that it */ -+ /* reads SMRDATA out of FLASH rather than memory ! */ -+ ldr r0, =SMRDATA -+ ldr r1, _TEXT_BASE -+ sub r0, r0, r1 -+ ldr r1, =BWSCON /* Bus Width Status Controller */ -+ add r2, r0, #13*4 -+0: -+ ldr r3, [r0], #4 -+ str r3, [r1], #4 -+ cmp r2, r0 -+ bne 0b -+ -+ /* setup asynchronous bus mode */ -+ mrc p15, 0, r1 ,c1 ,c0, 0 -+ orr r1, r1, #0xc0000000 -+ mcr p15, 0, r1, c1, c0, 0 -+ -+ /* everything is fine now */ -+ mov pc, lr -+ -+ .ltorg -+/* the literal pools origin */ -+ -+SMRDATA: -+ .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) -+ .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) -+ .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) -+ .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) -+ .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) -+ .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) -+ .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) -+ .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) -+ .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) -+ .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) -+ .word 0xb2 -+ .word 0x30 -+ .word 0x30 -diff --exclude .git -Nru u-boot/board/gta01/u-boot.lds u-boot.new/board/gta01/u-boot.lds ---- u-boot/board/gta01/u-boot.lds 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/gta01/u-boot.lds 2006-10-25 17:28:02.000000000 +0200 -@@ -0,0 +1,57 @@ -+/* -+ * (C) Copyright 2002 -+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -+/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ -+OUTPUT_ARCH(arm) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x00000000; -+ -+ . = ALIGN(4); -+ .text : -+ { -+ cpu/arm920t/start.o (.text) -+ *(.text) -+ } -+ -+ . = ALIGN(4); -+ .rodata : { *(.rodata) } -+ -+ . = ALIGN(4); -+ .data : { *(.data) } -+ -+ . = ALIGN(4); -+ .got : { *(.got) } -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ . = ALIGN(4); -+ __bss_start = .; -+ .bss : { *(.bss) } -+ _end = .; -+} -diff --exclude .git -Nru u-boot/board/qt2410/qt2410.c.old u-boot.new/board/qt2410/qt2410.c.old ---- u-boot/board/qt2410/qt2410.c.old 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/board/qt2410/qt2410.c.old 2006-10-10 11:09:43.000000000 +0200 -@@ -0,0 +1,127 @@ -+/* -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * based on existing S3C2410 startup code in u-boot: -+ * -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+#include <s3c2410.h> -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#if 1 -+#define M_MDIV 0xA1 /* Fout = 202.8MHz */ -+#define M_PDIV 0x3 -+#define M_SDIV 0x1 -+//#define M_MDIV 0x90 /* Fout = 202.8MHz */ -+//#define M_PDIV 0x7 -+//#define M_SDIV 0x0 -+#else -+#define M_MDIV 0x5c /* Fout = 150.0MHz */ -+#define M_PDIV 0x4 -+#define M_SDIV 0x0 -+#endif -+ -+#if 1 -+#define U_M_MDIV 0x78 -+#define U_M_PDIV 0x2 -+#define U_M_SDIV 0x3 -+#else -+#define U_M_MDIV 0x48 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x2 -+#endif -+ -+static inline void delay (unsigned long loops) -+{ -+ __asm__ volatile ("1:\n" -+ "subs %0, %1, #1\n" -+ "bne 1b":"=r" (loops):"0" (loops)); -+} -+ -+/* -+ * Miscellaneous platform dependent initialisations -+ */ -+ -+int board_init (void) -+{ -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); -+ -+ /* to reduce PLL lock time, adjust the LOCKTIME register */ -+ clk_power->LOCKTIME = 0xFFFFFF; -+ -+ /* configure MPLL */ -+ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (4000); -+ -+ /* configure UPLL */ -+ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (8000); -+ -+ /* set up the I/O ports */ -+ gpio->GPACON = 0x007FFFFF; -+ gpio->GPBCON = 0x00044555; -+ gpio->GPBUP = 0x000007FF; -+ gpio->GPCCON = 0xAAAAAAAA; -+ gpio->GPCUP = 0x0000FFFF; -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ gpio->GPECON = 0xAAAAAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ gpio->GPFCON = 0x000055AA; -+ gpio->GPFUP = 0x000000FF; -+ gpio->GPGCON = 0xFF95FFBA; -+ //gpio->GPGUP = 0x0000FFFF; -+ gpio->GPGUP = 0x0000AFEF; -+ gpio->GPHCON = 0x0028FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+ /* arch number of SMDK2410-Board */ -+ gd->bd->bi_arch_number = MACH_TYPE_QT2410; -+ -+ /* adress of boot parameters */ -+ gd->bd->bi_boot_params = 0x30000100; -+ -+ icache_enable(); -+ dcache_enable(); -+ -+ return 0; -+} -+ -+int dram_init (void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return 0; -+} -diff --exclude .git -Nru u-boot/fs/cramfs/cramfs.c u-boot.new/fs/cramfs/cramfs.c ---- u-boot/fs/cramfs/cramfs.c 2006-07-14 12:41:02.000000000 +0200 -+++ u-boot.new/fs/cramfs/cramfs.c 2006-10-26 14:01:41.000000000 +0200 -@@ -27,7 +27,7 @@ - #include <common.h> - #include <malloc.h> - --#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) -+#if (CONFIG_COMMANDS & CFG_CMD_CRAMFS) - - #include <asm/byteorder.h> - #include <linux/stat.h> -@@ -343,5 +343,22 @@ - } - return 1; - } -- -+#else -+int cramfs_load (char *loadoffset, struct part_info *info, char *filename) -+{ -+ return -1; -+} -+int cramfs_ls (struct part_info *info, char *filename) -+{ -+ return 0; -+} -+int cramfs_info (struct part_info *info) -+{ -+ return 0; -+} -+int cramfs_check (struct part_info *info) -+{ -+ return 0; -+} - #endif /* CFG_FS_CRAMFS */ -+ -diff --exclude .git -Nru u-boot/include/asm-arm/mach-types.h u-boot.new/include/asm-arm/mach-types.h ---- u-boot/include/asm-arm/mach-types.h 2006-08-11 23:19:07.000000000 +0200 -+++ u-boot.new/include/asm-arm/mach-types.h 2006-10-25 23:55:00.000000000 +0200 -@@ -1038,6 +1038,7 @@ - #define MACH_TYPE_IXP465 1028 - #define MACH_TYPE_BALLOON3 1029 - #define MACH_TYPE_QT2410 1108 -+#define MACH_TYPE_GTA01 1182 - - #ifdef CONFIG_ARCH_EBSA110 - # ifdef machine_arch_type -@@ -13327,6 +13328,19 @@ - # define machine_is_qt2410() (0) - #endif - -+#ifdef CONFIG_MACH_GTA01 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GTA01 -+# endif -+# define machine_is_gta01() (machine_arch_type == MACH_TYPE_GTA01) -+#else -+# define machine_is_gta01() (0) -+#endif -+ -+ - /* - * These have not yet been registered - */ -diff --exclude .git -Nru u-boot/include/configs/gta01.h u-boot.new/include/configs/gta01.h ---- u-boot/include/configs/gta01.h 1970-01-01 01:00:00.000000000 +0100 -+++ u-boot.new/include/configs/gta01.h 2006-10-26 20:21:30.000000000 +0200 -@@ -0,0 +1,233 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * Configuation settings for the FIC GTA01 Linux GSM phone -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+ -+/* we want to start u-boot directly from within NAND flash */ -+#define CONFIG_S3C2410_NAND_BOOT 1 -+ -+/* -+ * High Level Configuration Options -+ * (easy to change) -+ */ -+#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -+#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -+#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ -+ -+/* input clock of PLL */ -+#define CONFIG_SYS_CLK_FREQ 12000000/* the GTA01 has 12MHz input clock */ -+ -+ -+#define USE_920T_MMU 1 -+#define CONFIG_USE_IRQ 1 -+ -+/* -+ * Size of malloc() pool -+ */ -+#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ -+ -+/* -+ * Hardware drivers -+ */ -+ -+/* -+ * select serial console configuration -+ */ -+#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on GTA01 */ -+//#define CONFIG_HWFLOW 1 -+ -+/************************************************************ -+ * RTC -+ ************************************************************/ -+#define CONFIG_RTC_S3C24X0 1 -+ -+/* allow to overwrite serial and ethaddr */ -+#define CONFIG_ENV_OVERWRITE -+ -+#define CONFIG_BAUDRATE 115200 -+ -+/*********************************************************** -+ * Command definition -+ ***********************************************************/ -+#define CONFIG_COMMANDS (\ -+ CFG_CMD_BDI | \ -+ CFG_CMD_LOADS | \ -+ CFG_CMD_LAODB | \ -+ CFG_CMD_IMI | \ -+ CFG_CMD_CACHE | \ -+ CFG_CMD_MEMORY | \ -+ CFG_CMD_ENV | \ -+ /* CFG_CMD_IRQ | */ \ -+ CFG_CMD_BOOTD | \ -+ CFG_CMD_CONSOLE | \ -+ CFG_CMD_ASKENV | \ -+ CFG_CMD_RUN | \ -+ CFG_CMD_ECHO | \ -+ CFG_CMD_I2C | \ -+ CFG_CMD_REGINFO | \ -+ CFG_CMD_IMMAP | \ -+ CFG_CMD_DATE | \ -+ CFG_CMD_AUTOSCRIPT | \ -+ CFG_CMD_BSP | \ -+ CFG_CMD_ELF | \ -+ CFG_CMD_MISC | \ -+ CFG_CMD_USB | \ -+ CFG_CMD_JFFS2 | \ -+ CFG_CMD_DIAG | \ -+ /* CFG_CMD_HWFLOW | */ \ -+ CFG_CMD_SAVES | \ -+ CFG_CMD_NAND | \ -+ CFG_CMD_PORTIO | \ -+ CFG_CMD_MMC | \ -+ CFG_CMD_FAT | \ -+ CFG_CMD_EXT2 | \ -+ 0) -+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -+#include <cmd_confdefs.h> -+ -+#define CONFIG_BOOTDELAY 3 -+#define CONFIG_BOOTARGS "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8" -+/*#define CONFIG_BOOTFILE "elinos-lart" */ -+#define CONFIG_BOOTCOMMAND "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000" -+ -+#define CONFIG_DOS_PARTITION 1 -+ -+#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -+#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -+/* what's this ? it's not used anywhere */ -+#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -+#endif -+ -+/* -+ * Miscellaneous configurable options -+ */ -+#define CFG_LONGHELP /* undef to save memory */ -+#define CFG_PROMPT "GTA01 # " /* Monitor Command Prompt */ -+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -+#define CFG_MAXARGS 16 /* max number of command args */ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -+ -+#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -+#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ -+ -+#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ -+ -+#define CFG_LOAD_ADDR 0x33000000 /* default load address */ -+ -+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -+/* it to wrap 100 times (total 1562500) to get 1 sec. */ -+#define CFG_HZ 1562500 -+ -+/* valid baudrates */ -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+ -+/*----------------------------------------------------------------------- -+ * Stack sizes -+ * -+ * The stack sizes are set up in start.S using the settings below -+ */ -+#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -+#ifdef CONFIG_USE_IRQ -+#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -+#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -+#endif -+ -+#define CONFIG_USB_OHCI 1 -+ -+/*----------------------------------------------------------------------- -+ * Physical Memory Map -+ */ -+#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -+#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -+#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -+#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ -+ -+/*----------------------------------------------------------------------- -+ * FLASH and environment organization -+ */ -+ -+#if 1 -+#define CFG_NO_FLASH 1 -+#else -+#define CFG_MAX_FLASH_SECT 1 -+#define CFG_MAX_FLASH_BANKS 1 -+#endif -+ -+#define CFG_ENV_IS_IN_NAND 1 -+#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -+#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ -+ -+#define NAND_MAX_CHIPS 1 -+#define CFG_NAND_BASE 0x4e000000 -+#define CFG_MAX_NAND_DEVICE 1 -+ -+#define CONFIG_MMC 1 -+#define CFG_MMC_BASE 0xff000000 -+ -+/* EXT2 driver */ -+#define CONFIG_EXT2 1 -+ -+/* FAT driver in u-boot is broken currently */ -+#define CONFIG_FAT 1 -+#define CONFIG_SUPPORT_VFAT 1 -+ -+/* JFFS2 driver */ -+#define CONFIG_JFFS2_NAND 1 -+#define CONFIG_JFFS2_NAND_DEV 0 -+#define CONFIG_JFFS2_NAND_OFF 0x634000 -+#define CONFIG_JFFS2_NAND_SIZE 0x39cc000 -+ -+/* ATAG configuration */ -+#define CONFIG_INITRD_TAG 1 -+#define CONFIG_SETUP_MEMORY_TAGS 1 -+#define CONFIG_CMDLINE_TAG 1 -+#if 0 -+#define CONFIG_SERIAL_TAG 1 -+#define CONFIG_REVISION_TAG 1 -+#endif -+ -+#define CONFIG_DRIVER_S3C24X0_I2C 1 -+#define CONFIG_HARD_I2C 1 -+#define CFG_I2C_SPEED 400000 /* 400kHz according to PCF50707 data sheet */ -+#define CFG_I2C_SLAVE 0x7f -+ -+ -+#if 0 -+#define CONFIG_VIDEO -+#define CONFIG_VIDEO_S3C2410 -+#define CONFIG_CFB_CONSOLE -+#define CONFIG_VIDEO_LOGO -+#define CONFIG_VGA_AS_SINGLE_DEVICE -+ -+#define VIDEO_KBD_INIT_FCT 0 -+#define VIDEO_TSTC_FCT serial_tstc -+#define VIDEO_GETC_FCT serial_getc -+ -+#define LCD_VIDEO_ADDR 0x33d00000 -+#endif -+ -+#endif /* __CONFIG_H */ diff --git a/packages/uboot/files/u-boot-20061030-gta01bv2.patch b/packages/uboot/files/u-boot-20061030-gta01bv2.patch deleted file mode 100644 index 9e2d19338e..0000000000 --- a/packages/uboot/files/u-boot-20061030-gta01bv2.patch +++ /dev/null @@ -1,246 +0,0 @@ -This patch adds support for the GTA01Bv2 variant of the FIC GTA01 (Neo1973) phone - -Index: git/Makefile -=================================================================== ---- git.orig/Makefile 2007-01-04 12:22:12.000000000 +0100 -+++ git/Makefile 2007-01-04 12:22:16.000000000 +0100 -@@ -1918,6 +1918,7 @@ - - gta01_config \ - gta01v3_config \ -+gta01bv2_config \ - gta01v4_config : unconfig - @board/gta01/split_by_variant.sh $@ - -Index: git/board/gta01/gta01.c -=================================================================== ---- git.orig/board/gta01/gta01.c 2007-01-04 12:22:12.000000000 +0100 -+++ git/board/gta01/gta01.c 2007-01-04 12:22:16.000000000 +0100 -@@ -35,28 +35,29 @@ - - DECLARE_GLOBAL_DATA_PTR; - --#if 1 -+#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) - //#define M_MDIV 0xA1 /* Fout = 202.8MHz */ - //#define M_PDIV 0x3 - //#define M_SDIV 0x1 - #define M_MDIV 0x90 /* Fout = 202.8MHz */ - #define M_PDIV 0x7 - #define M_SDIV 0x0 --#else --#define M_MDIV 0x5c /* Fout = 150.0MHz */ --#define M_PDIV 0x4 -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+#if 0 -+#define M_MDIV 0x7d /* Fout = 266MHz */ -+#define M_PDIV 0x1 -+#define M_SDIV 0x1 -+#endif -+#define M_MDIV 0x90 /* Fout = 202.8MHz */ -+#define M_PDIV 0x7 - #define M_SDIV 0x0 -+#else -+#error Please define GTA01 revision - #endif - --#if 1 - #define U_M_MDIV 0x78 - #define U_M_PDIV 0x2 - #define U_M_SDIV 0x3 --#else --#define U_M_MDIV 0x48 --#define U_M_PDIV 0x3 --#define U_M_SDIV 0x2 --#endif - - static inline void delay (unsigned long loops) - { -@@ -137,7 +138,31 @@ - - gpio->GPHCON = 0x0000FAAA; - gpio->GPHUP = 0x000007FF; -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+ gpio->GPACON = 0x005E47FF; - -+ gpio->GPBCON = 0x00145416; -+ gpio->GPBUP = 0x000007FF; -+ gpio->GPBDAT |= 0x4; /* Set GBP2 to high (Flash power-up) */ -+ -+ gpio->GPCCON = 0xAAAA12A9; -+ gpio->GPCUP = 0x0000FFFF; -+ -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ -+ gpio->GPECON = 0xA02AAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ -+ gpio->GPFCON = 0x0000aa19; -+ gpio->GPFUP = 0x000000FF; -+ gpio->GPFDAT |= 0x4; /* Set GBF2 to high (nGSM_EN) */ -+ -+ gpio->GPGCON = 0xFF40F0C1; -+ gpio->GPGUP = 0x0000AFEF; -+ -+ gpio->GPHCON = 0x0000FAAA; -+ gpio->GPHUP = 0x000007FF; - #else - #error Please define GTA01 version - #endif -@@ -156,9 +181,11 @@ - - int board_late_init(void) - { -+#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) - const char mmc_power = 0x8f; -- /* enable D3REG 3.3V (SC/MMC power) */ -+ /* enable D2REG 3.3V (SC/MMC power) */ - i2c_write(0x08, 0x25, 1, &mmc_power, 1); -+#endif - return 0; - } - -@@ -176,5 +203,7 @@ - return 0x00000130; - #elif defined(CONFIG_ARCH_GTA01_v4) - return 0x00000140; -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+ return 0x00000220; - #endif - } -Index: git/board/gta01/split_by_variant.sh -=================================================================== ---- git.orig/board/gta01/split_by_variant.sh 2007-01-04 12:22:12.000000000 +0100 -+++ git/board/gta01/split_by_variant.sh 2007-01-04 12:22:16.000000000 +0100 -@@ -15,16 +15,23 @@ - case "$1" in - gta01v4_config) - echo "#define CONFIG_ARCH_GTA01_v4" > ${obj}include/config.h -+ echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp - ;; - - gta01v3_config) - echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h -+ echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp - ;; - -+ gta01bv2_config) -+ echo "#define CONFIG_ARCH_GTA01B_v2" > ${obj}include/config.h -+ echo "GTA01_BIG_FLASH=y" > ${obj}board/gta01/config.tmp -+ ;; - - *) - echo "$0:: Unrecognised config - using gta01v3_config" - echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h -+ echo "GTA01_BIG_FLASH=n" > ${obj}board/gta01/config.tmp - ;; - - esac -Index: git/include/configs/gta01.h -=================================================================== ---- git.orig/include/configs/gta01.h 2007-01-04 12:22:12.000000000 +0100 -+++ git/include/configs/gta01.h 2007-01-04 12:22:16.000000000 +0100 -@@ -128,6 +128,8 @@ - #define CFG_PROMPT "GTA01v3 # " /* Monitor Command Prompt */ - #elif defined(CONFIG_ARCH_GTA01_v4) - #define CFG_PROMPT "GTA01v4 # " /* Monitor Command Prompt */ -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+#define CFG_PROMPT "GTA01Bv2 # " /* Monitor Command Prompt */ - #endif - #define CFG_CBSIZE 256 /* Console I/O Buffer Size */ - #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -@@ -166,7 +168,13 @@ - */ - #define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ - #define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -+#if defined(CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) - #define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+#define PHYS_SDRAM_1_SIZE 0x08000000 /* 128 MB */ -+#else -+#error Please define GTA01 variant -+#endif - #define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ - - /*----------------------------------------------------------------------- -Index: git/board/gta01/lowlevel_init.S -=================================================================== ---- git.orig/board/gta01/lowlevel_init.S 2007-01-04 12:22:07.000000000 +0100 -+++ git/board/gta01/lowlevel_init.S 2007-01-04 12:22:16.000000000 +0100 -@@ -108,12 +108,16 @@ - #define B5_PMC 0x0 /* normal */ - - #define B6_MT 0x3 /* SDRAM */ --#define B6_Trcd 0x1 -+#define B6_Trcd 0x1 /* 3clk */ -+#if defined (CONFIG_ARCH_GTA01_v3) || defined(CONFIG_ARCH_GTA01_v4) - #define B6_SCAN 0x1 /* 9bit */ -+#elif defined(CONFIG_ARCH_GTA01B_v2) -+#define B6_SCAN 0x2 /* 10bit */ -+#endif - - #define B7_MT 0x3 /* SDRAM */ - #define B7_Trcd 0x1 /* 3clk */ --#define B7_SCAN 0x1 /* 9bit */ -+#define B7_SCAN 0x2 /* 10bit */ - - /* REFRESH parameter */ - #define REFEN 0x1 /* Refresh enable */ -@@ -149,6 +153,19 @@ - orr r1, r1, #0xc0000000 - mcr p15, 0, r1, c1, c0, 0 - -+#if defined(CONFIG_ARCH_GTA01_v4) || defined(CONFIG_ARCH_GTA01B_v2) -+ /* switch on power for NAND */ -+ ldr r0, =0x56000010 /* GPBCON */ -+ ldr r1, [r0] -+ orr r1, r1, #0x10 -+ str r1, [r0] -+ -+ ldr r0, =0x56000014 /* GPBDAT */ -+ ldr r1, [r0] -+ orr r1, r1, #(1 <<2) -+ str r1, [r0] -+#endif -+ - /* everything is fine now */ - mov pc, lr - -Index: git/board/gta01/config.mk -=================================================================== ---- git.orig/board/gta01/config.mk 2007-01-04 12:22:07.000000000 +0100 -+++ git/board/gta01/config.mk 2007-01-04 12:22:16.000000000 +0100 -@@ -8,18 +8,26 @@ - # see http://www.samsung.com/ for more information on SAMSUNG - # - -+# GTA01v3 has 1 bank of 64 MB SDRAM -+# GTA01v4 has 1 bank of 64 MB SDRAM - # --# GTA01 has 1 bank of 64 MB DRAM -+# 3000'0000 to 3400'0000 -+# we load ourself to 33F8'0000 -+# -+# GTA01Bv2 or later has 1 bank of 128 MB SDRAM - # --# 3000'0000 to 3400'0000 -+# 3000'0000 to 3800'0000 -+# we load ourself to 37F8'0000 - # - # Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 - # optionally with a ramdisk at 3080'0000 - # --# we load ourself to 33F8'0000 --# --# download area is 3300'0000 --# -+# download area is 3200'0000 or 3300'0000 - -+sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp - -+ifeq ($(GTA01_BIG_RAM),y) -+TEXT_BASE = 0x37F80000 -+else - TEXT_BASE = 0x33F80000 -+endif diff --git a/packages/uboot/files/u-boot-20061030-gta01v4.patch b/packages/uboot/files/u-boot-20061030-gta01v4.patch deleted file mode 100644 index 8910dcf831..0000000000 --- a/packages/uboot/files/u-boot-20061030-gta01v4.patch +++ /dev/null @@ -1,132 +0,0 @@ -Index: git/Makefile -=================================================================== ---- git.orig/Makefile 2007-01-04 12:22:08.000000000 +0100 -+++ git/Makefile 2007-01-04 12:22:12.000000000 +0100 -@@ -1916,8 +1916,10 @@ - qt2410_config : unconfig - @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0 - --gta01_config : unconfig -- @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0 -+gta01_config \ -+gta01v3_config \ -+gta01v4_config : unconfig -+ @board/gta01/split_by_variant.sh $@ - - scb9328_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx -Index: git/board/gta01/gta01.c -=================================================================== ---- git.orig/board/gta01/gta01.c 2007-01-04 12:22:08.000000000 +0100 -+++ git/board/gta01/gta01.c 2007-01-04 12:22:12.000000000 +0100 -@@ -90,6 +90,7 @@ - delay (8000); - - /* set up the I/O ports */ -+#if defined(CONFIG_ARCH_GTA01_v3) - gpio->GPACON = 0x007FFFFF; - - gpio->GPBCON = 0x00005056; -@@ -112,6 +113,34 @@ - - gpio->GPHCON = 0x0008FAAA; - gpio->GPHUP = 0x000007FF; -+#elif defined(CONFIG_ARCH_GTA01_v4) -+ gpio->GPACON = 0x007FFFFF; //0x005E47FF; -+ -+ gpio->GPBDAT |= 0x4; /* Set GBP2 to high (Flash power-up) */ -+ gpio->GPBCON = 0x00005056; //0x00045016; -+ gpio->GPBUP = 0x000007FF; -+ -+ gpio->GPCCON = 0xAAAA12A9; -+ gpio->GPCUP = 0x0000FFFF; -+ -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ -+ gpio->GPECON = 0xA02AAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ -+ gpio->GPFCON = 0x0000aa09; -+ gpio->GPFUP = 0x000000FF; -+ -+ gpio->GPGCON = 0xFF40F0C1; -+ gpio->GPGUP = 0x0000FFFF; -+ -+ gpio->GPHCON = 0x0000FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+#else -+#error Please define GTA01 version -+#endif - - /* arch number of SMDK2410-Board */ - gd->bd->bi_arch_number = MACH_TYPE_GTA01; -@@ -143,5 +172,9 @@ - - u_int32_t get_board_rev(void) - { -+#if defined(CONFIG_ARCH_GTA01_v3) - return 0x00000130; -+#elif defined(CONFIG_ARCH_GTA01_v4) -+ return 0x00000140; -+#endif - } -Index: git/board/gta01/split_by_variant.sh -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/split_by_variant.sh 2007-01-04 12:22:12.000000000 +0100 -@@ -0,0 +1,36 @@ -+#!/bin/sh -+# --------------------------------------------------------- -+# Set the core module defines according to Core Module -+# --------------------------------------------------------- -+# --------------------------------------------------------- -+# Set up the GTA01 type define -+# --------------------------------------------------------- -+ -+mkdir -p ${obj}include -+if [ "$1" == "" ] -+then -+ echo "$0:: No parameters - using GTA01v3 config" -+ echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h -+else -+ case "$1" in -+ gta01v4_config) -+ echo "#define CONFIG_ARCH_GTA01_v4" > ${obj}include/config.h -+ ;; -+ -+ gta01v3_config) -+ echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h -+ ;; -+ -+ -+ *) -+ echo "$0:: Unrecognised config - using gta01v3_config" -+ echo "#define CONFIG_ARCH_GTA01_v3" > ${obj}include/config.h -+ ;; -+ -+ esac -+ -+fi -+# --------------------------------------------------------- -+# Complete the configuration -+# --------------------------------------------------------- -+$MKCONFIG -a gta01 arm arm920t gta01 NULL s3c24x0 -Index: git/include/configs/gta01.h -=================================================================== ---- git.orig/include/configs/gta01.h 2007-01-04 12:22:08.000000000 +0100 -+++ git/include/configs/gta01.h 2007-01-04 12:22:12.000000000 +0100 -@@ -124,7 +124,11 @@ - * Miscellaneous configurable options - */ - #define CFG_LONGHELP /* undef to save memory */ --#define CFG_PROMPT "GTA01 # " /* Monitor Command Prompt */ -+#if defined(CONFIG_ARCH_GTA01_v3) -+#define CFG_PROMPT "GTA01v3 # " /* Monitor Command Prompt */ -+#elif defined(CONFIG_ARCH_GTA01_v4) -+#define CFG_PROMPT "GTA01v4 # " /* Monitor Command Prompt */ -+#endif - #define CFG_CBSIZE 256 /* Console I/O Buffer Size */ - #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ - #define CFG_MAXARGS 16 /* max number of command args */ diff --git a/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch b/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch deleted file mode 100644 index 91f85479bc..0000000000 --- a/packages/uboot/files/u-boot-20061030-qt2410-gta01.patch +++ /dev/null @@ -1,9272 +0,0 @@ -Index: git/Makefile -=================================================================== ---- git.orig/Makefile 2007-01-04 12:21:15.000000000 +0100 -+++ git/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -1913,6 +1913,12 @@ - sbc2410x_config: unconfig - @$(MKCONFIG) $(@:_config=) arm arm920t sbc2410x NULL s3c24x0 - -+qt2410_config : unconfig -+ @./mkconfig $(@:_config=) arm arm920t qt2410 NULL s3c24x0 -+ -+gta01_config : unconfig -+ @./mkconfig $(@:_config=) arm arm920t gta01 NULL s3c24x0 -+ - scb9328_config : unconfig - @$(MKCONFIG) $(@:_config=) arm arm920t scb9328 NULL imx - -Index: git/board/gta01/Makefile -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,47 @@ -+# -+# (C) Copyright 2000, 2001, 2002 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+# MA 02111-1307 USA -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = lib$(BOARD).a -+ -+OBJS := gta01.o -+SOBJS := lowlevel_init.o -+ -+$(LIB): $(OBJS) $(SOBJS) -+ $(AR) crv $@ $(OBJS) $(SOBJS) -+ -+clean: -+ rm -f $(SOBJS) $(OBJS) -+ -+distclean: clean -+ rm -f $(LIB) core *.bak .depend -+ -+######################################################################### -+ -+.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) -+ $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ -+ -+-include .depend -+ -+######################################################################### -Index: git/board/gta01/config.mk -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/config.mk 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,25 @@ -+# -+# (C) Copyright 2002 -+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+# -+# FIC GTA01 board with S3C2410X (ARM920T) cpu -+# -+# see http://www.samsung.com/ for more information on SAMSUNG -+# -+ -+# -+# GTA01 has 1 bank of 64 MB DRAM -+# -+# 3000'0000 to 3400'0000 -+# -+# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 -+# optionally with a ramdisk at 3080'0000 -+# -+# we load ourself to 33F8'0000 -+# -+# download area is 3300'0000 -+# -+ -+ -+TEXT_BASE = 0x33F80000 -Index: git/board/gta01/gta01.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/gta01.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,147 @@ -+/* -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * based on existing S3C2410 startup code in u-boot: -+ * -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+#include <s3c2410.h> -+#include <i2c.h> -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#if 1 -+//#define M_MDIV 0xA1 /* Fout = 202.8MHz */ -+//#define M_PDIV 0x3 -+//#define M_SDIV 0x1 -+#define M_MDIV 0x90 /* Fout = 202.8MHz */ -+#define M_PDIV 0x7 -+#define M_SDIV 0x0 -+#else -+#define M_MDIV 0x5c /* Fout = 150.0MHz */ -+#define M_PDIV 0x4 -+#define M_SDIV 0x0 -+#endif -+ -+#if 1 -+#define U_M_MDIV 0x78 -+#define U_M_PDIV 0x2 -+#define U_M_SDIV 0x3 -+#else -+#define U_M_MDIV 0x48 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x2 -+#endif -+ -+static inline void delay (unsigned long loops) -+{ -+ __asm__ volatile ("1:\n" -+ "subs %0, %1, #1\n" -+ "bne 1b":"=r" (loops):"0" (loops)); -+} -+ -+/* -+ * Miscellaneous platform dependent initialisations -+ */ -+ -+int board_init (void) -+{ -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); -+ -+ /* to reduce PLL lock time, adjust the LOCKTIME register */ -+ clk_power->LOCKTIME = 0xFFFFFF; -+ -+ /* configure MPLL */ -+ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (4000); -+ -+ /* configure UPLL */ -+ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (8000); -+ -+ /* set up the I/O ports */ -+ gpio->GPACON = 0x007FFFFF; -+ -+ gpio->GPBCON = 0x00005056; -+ gpio->GPBUP = 0x000007FF; -+ -+ gpio->GPCCON = 0xAAAA12A8; -+ gpio->GPCUP = 0x0000FFFF; -+ -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ -+ gpio->GPECON = 0xAAAAAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ -+ gpio->GPFCON = 0x00002AA9; -+ gpio->GPFUP = 0x000000FF; -+ -+ gpio->GPGCON = 0xA846F0C0; -+ gpio->GPGUP = 0x0000AFEF; -+ -+ gpio->GPHCON = 0x0008FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+ /* arch number of SMDK2410-Board */ -+ gd->bd->bi_arch_number = MACH_TYPE_GTA01; -+ -+ /* adress of boot parameters */ -+ gd->bd->bi_boot_params = 0x30000100; -+ -+ icache_enable(); -+ dcache_enable(); -+ -+ return 0; -+} -+ -+int board_late_init(void) -+{ -+ const char mmc_power = 0x8f; -+ /* enable D3REG 3.3V (SC/MMC power) */ -+ i2c_write(0x08, 0x25, 1, &mmc_power, 1); -+ return 0; -+} -+ -+int dram_init (void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return 0; -+} -+ -+u_int32_t get_board_rev(void) -+{ -+ return 0x00000130; -+} -Index: git/board/gta01/lowlevel_init.S -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/lowlevel_init.S 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,171 @@ -+/* -+ * Memory Setup stuff - taken from blob memsetup.S -+ * -+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and -+ * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) -+ * -+ * Modified for the FIC GTA01 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+ -+#include <config.h> -+#include <version.h> -+ -+ -+/* some parameters for the board */ -+ -+/* -+ * -+ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S -+ * -+ * Copyright (C) 2002 Samsung Electronics SW.LEE <hitchcar@sec.samsung.com> -+ * -+ */ -+ -+#define BWSCON 0x48000000 -+ -+/* BWSCON */ -+#define DW8 (0x0) -+#define DW16 (0x1) -+#define DW32 (0x2) -+#define WAIT (0x1<<2) -+#define UBLB (0x1<<3) -+ -+#define B1_BWSCON (DW32) -+#define B2_BWSCON (DW16) -+#define B3_BWSCON (DW16 + WAIT + UBLB) -+#define B4_BWSCON (DW16) -+#define B5_BWSCON (DW16) -+#define B6_BWSCON (DW32) -+#define B7_BWSCON (DW32) -+ -+/* BANK0CON */ -+#define B0_Tacs 0x0 /* 0clk */ -+#define B0_Tcos 0x0 /* 0clk */ -+#define B0_Tacc 0x7 /* 14clk */ -+#define B0_Tcoh 0x0 /* 0clk */ -+#define B0_Tah 0x0 /* 0clk */ -+#define B0_Tacp 0x0 -+#define B0_PMC 0x0 /* normal */ -+ -+/* BANK1CON */ -+#define B1_Tacs 0x0 /* 0clk */ -+#define B1_Tcos 0x0 /* 0clk */ -+#define B1_Tacc 0x7 /* 14clk */ -+#define B1_Tcoh 0x0 /* 0clk */ -+#define B1_Tah 0x0 /* 0clk */ -+#define B1_Tacp 0x0 -+#define B1_PMC 0x0 -+ -+#define B2_Tacs 0x0 -+#define B2_Tcos 0x0 -+#define B2_Tacc 0x7 -+#define B2_Tcoh 0x0 -+#define B2_Tah 0x0 -+#define B2_Tacp 0x0 -+#define B2_PMC 0x0 -+ -+#define B3_Tacs 0x0 /* 0clk */ -+#define B3_Tcos 0x3 /* 4clk */ -+#define B3_Tacc 0x7 /* 14clk */ -+#define B3_Tcoh 0x1 /* 1clk */ -+#define B3_Tah 0x0 /* 0clk */ -+#define B3_Tacp 0x3 /* 6clk */ -+#define B3_PMC 0x0 /* normal */ -+ -+#define B4_Tacs 0x0 /* 0clk */ -+#define B4_Tcos 0x0 /* 0clk */ -+#define B4_Tacc 0x7 /* 14clk */ -+#define B4_Tcoh 0x0 /* 0clk */ -+#define B4_Tah 0x0 /* 0clk */ -+#define B4_Tacp 0x0 -+#define B4_PMC 0x0 /* normal */ -+ -+#define B5_Tacs 0x0 /* 0clk */ -+#define B5_Tcos 0x0 /* 0clk */ -+#define B5_Tacc 0x7 /* 14clk */ -+#define B5_Tcoh 0x0 /* 0clk */ -+#define B5_Tah 0x0 /* 0clk */ -+#define B5_Tacp 0x0 -+#define B5_PMC 0x0 /* normal */ -+ -+#define B6_MT 0x3 /* SDRAM */ -+#define B6_Trcd 0x1 -+#define B6_SCAN 0x1 /* 9bit */ -+ -+#define B7_MT 0x3 /* SDRAM */ -+#define B7_Trcd 0x1 /* 3clk */ -+#define B7_SCAN 0x1 /* 9bit */ -+ -+/* REFRESH parameter */ -+#define REFEN 0x1 /* Refresh enable */ -+#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */ -+#define Trp 0x1 /* 3clk */ -+#define Trc 0x3 /* 7clk */ -+#define Tchr 0x2 /* 3clk */ -+//#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ -+#define REFCNT 997 /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */ -+/**************************************/ -+ -+_TEXT_BASE: -+ .word TEXT_BASE -+ -+.globl lowlevel_init -+lowlevel_init: -+ /* memory control configuration */ -+ /* make r0 relative the current location so that it */ -+ /* reads SMRDATA out of FLASH rather than memory ! */ -+ ldr r0, =SMRDATA -+ ldr r1, _TEXT_BASE -+ sub r0, r0, r1 -+ ldr r1, =BWSCON /* Bus Width Status Controller */ -+ add r2, r0, #13*4 -+0: -+ ldr r3, [r0], #4 -+ str r3, [r1], #4 -+ cmp r2, r0 -+ bne 0b -+ -+ /* setup asynchronous bus mode */ -+ mrc p15, 0, r1 ,c1 ,c0, 0 -+ orr r1, r1, #0xc0000000 -+ mcr p15, 0, r1, c1, c0, 0 -+ -+ /* everything is fine now */ -+ mov pc, lr -+ -+ .ltorg -+/* the literal pools origin */ -+ -+SMRDATA: -+ .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) -+ .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) -+ .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) -+ .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) -+ .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) -+ .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) -+ .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) -+ .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) -+ .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) -+ .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) -+ .word 0xb2 -+ .word 0x30 -+ .word 0x30 -Index: git/board/gta01/u-boot.lds -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/gta01/u-boot.lds 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,57 @@ -+/* -+ * (C) Copyright 2002 -+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -+/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ -+OUTPUT_ARCH(arm) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x00000000; -+ -+ . = ALIGN(4); -+ .text : -+ { -+ cpu/arm920t/start.o (.text) -+ *(.text) -+ } -+ -+ . = ALIGN(4); -+ .rodata : { *(.rodata) } -+ -+ . = ALIGN(4); -+ .data : { *(.data) } -+ -+ . = ALIGN(4); -+ .got : { *(.got) } -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ . = ALIGN(4); -+ __bss_start = .; -+ .bss : { *(.bss) } -+ _end = .; -+} -Index: git/board/qt2410/Makefile -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,47 @@ -+# -+# (C) Copyright 2000, 2001, 2002 -+# Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+# -+# See file CREDITS for list of people who contributed to this -+# project. -+# -+# This program is free software; you can redistribute it and/or -+# modify it under the terms of the GNU General Public License as -+# published by the Free Software Foundation; either version 2 of -+# the License, or (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program; if not, write to the Free Software -+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+# MA 02111-1307 USA -+# -+ -+include $(TOPDIR)/config.mk -+ -+LIB = lib$(BOARD).a -+ -+OBJS := qt2410.o flash.o -+SOBJS := lowlevel_init.o -+ -+$(LIB): $(OBJS) $(SOBJS) -+ $(AR) crv $@ $(OBJS) $(SOBJS) -+ -+clean: -+ rm -f $(SOBJS) $(OBJS) -+ -+distclean: clean -+ rm -f $(LIB) core *.bak .depend -+ -+######################################################################### -+ -+.depend: Makefile $(SOBJS:.o=.S) $(OBJS:.o=.c) -+ $(CC) -M $(CPPFLAGS) $(SOBJS:.o=.S) $(OBJS:.o=.c) > $@ -+ -+-include .depend -+ -+######################################################################### -Index: git/board/qt2410/config.mk -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/config.mk 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,25 @@ -+# -+# (C) Copyright 2002 -+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+# -+# SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu -+# -+# see http://www.samsung.com/ for more information on SAMSUNG -+# -+ -+# -+# SMDK2410 has 1 bank of 64 MB DRAM -+# -+# 3000'0000 to 3400'0000 -+# -+# Linux-Kernel is expected to be at 3000'8000, entry 3000'8000 -+# optionally with a ramdisk at 3080'0000 -+# -+# we load ourself to 33F8'0000 -+# -+# download area is 3300'0000 -+# -+ -+ -+TEXT_BASE = 0x33F80000 -Index: git/board/qt2410/flash.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/flash.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,435 @@ -+/* -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Alex Zuepke <azu@sysgo.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+ulong myflush (void); -+ -+ -+#define FLASH_BANK_SIZE PHYS_FLASH_SIZE -+#define MAIN_SECT_SIZE 0x10000 /* 64 KB */ -+ -+flash_info_t flash_info[CFG_MAX_FLASH_BANKS]; -+ -+ -+#define CMD_READ_ARRAY 0x000000F0 -+#define CMD_UNLOCK1 0x000000AA -+#define CMD_UNLOCK2 0x00000055 -+#define CMD_ERASE_SETUP 0x00000080 -+#define CMD_ERASE_CONFIRM 0x00000030 -+#define CMD_PROGRAM 0x000000A0 -+#define CMD_UNLOCK_BYPASS 0x00000020 -+ -+#define MEM_FLASH_ADDR1 (*(volatile u16 *)(CFG_FLASH_BASE + (0x00000555 << 1))) -+#define MEM_FLASH_ADDR2 (*(volatile u16 *)(CFG_FLASH_BASE + (0x000002AA << 1))) -+ -+#define BIT_ERASE_DONE 0x00000080 -+#define BIT_RDY_MASK 0x00000080 -+#define BIT_PROGRAM_ERROR 0x00000020 -+#define BIT_TIMEOUT 0x80000000 /* our flag */ -+ -+#define READY 1 -+#define ERR 2 -+#define TMO 4 -+ -+/*----------------------------------------------------------------------- -+ */ -+ -+ulong flash_init (void) -+{ -+ int i, j; -+ ulong size = 0; -+ -+ for (i = 0; i < CFG_MAX_FLASH_BANKS; i++) { -+ ulong flashbase = 0; -+ -+ flash_info[i].flash_id = -+#if defined(CONFIG_AMD_LV400) -+ (AMD_MANUFACT & FLASH_VENDMASK) | -+ (AMD_ID_LV400B & FLASH_TYPEMASK); -+#elif defined(CONFIG_AMD_LV800) -+ (AMD_MANUFACT & FLASH_VENDMASK) | -+ (AMD_ID_LV800B & FLASH_TYPEMASK); -+#else -+#error "Unknown flash configured" -+#endif -+ flash_info[i].size = FLASH_BANK_SIZE; -+ flash_info[i].sector_count = CFG_MAX_FLASH_SECT; -+ memset (flash_info[i].protect, 0, CFG_MAX_FLASH_SECT); -+ if (i == 0) -+ flashbase = PHYS_FLASH_1; -+ else -+ panic ("configured too many flash banks!\n"); -+ for (j = 0; j < flash_info[i].sector_count; j++) { -+ if (j <= 3) { -+ /* 1st one is 16 KB */ -+ if (j == 0) { -+ flash_info[i].start[j] = -+ flashbase + 0; -+ } -+ -+ /* 2nd and 3rd are both 8 KB */ -+ if ((j == 1) || (j == 2)) { -+ flash_info[i].start[j] = -+ flashbase + 0x4000 + (j - -+ 1) * -+ 0x2000; -+ } -+ -+ /* 4th 32 KB */ -+ if (j == 3) { -+ flash_info[i].start[j] = -+ flashbase + 0x8000; -+ } -+ } else { -+ flash_info[i].start[j] = -+ flashbase + (j - 3) * MAIN_SECT_SIZE; -+ } -+ } -+ size += flash_info[i].size; -+ } -+ -+ flash_protect (FLAG_PROTECT_SET, -+ CFG_FLASH_BASE, -+ CFG_FLASH_BASE + monitor_flash_len - 1, -+ &flash_info[0]); -+ -+#if 0 -+ flash_protect (FLAG_PROTECT_SET, -+ CFG_ENV_ADDR, -+ CFG_ENV_ADDR + CFG_ENV_SIZE - 1, &flash_info[0]); -+#endif -+ -+ return size; -+} -+ -+/*----------------------------------------------------------------------- -+ */ -+void flash_print_info (flash_info_t * info) -+{ -+ int i; -+ -+ switch (info->flash_id & FLASH_VENDMASK) { -+ case (AMD_MANUFACT & FLASH_VENDMASK): -+ printf ("AMD: "); -+ break; -+ default: -+ printf ("Unknown Vendor "); -+ break; -+ } -+ -+ switch (info->flash_id & FLASH_TYPEMASK) { -+ case (AMD_ID_LV400B & FLASH_TYPEMASK): -+ printf ("1x Amd29LV400BB (4Mbit)\n"); -+ break; -+ case (AMD_ID_LV800B & FLASH_TYPEMASK): -+ printf ("1x Amd29LV800BB (8Mbit)\n"); -+ break; -+ default: -+ printf ("Unknown Chip Type\n"); -+ goto Done; -+ break; -+ } -+ -+ printf (" Size: %ld MB in %d Sectors\n", -+ info->size >> 20, info->sector_count); -+ -+ printf (" Sector Start Addresses:"); -+ for (i = 0; i < info->sector_count; i++) { -+ if ((i % 5) == 0) { -+ printf ("\n "); -+ } -+ printf (" %08lX%s", info->start[i], -+ info->protect[i] ? " (RO)" : " "); -+ } -+ printf ("\n"); -+ -+ Done:; -+} -+ -+/*----------------------------------------------------------------------- -+ */ -+ -+int flash_erase (flash_info_t * info, int s_first, int s_last) -+{ -+ ushort result; -+ int iflag, cflag, prot, sect; -+ int rc = ERR_OK; -+ int chip; -+ -+ /* first look for protection bits */ -+ -+ if (info->flash_id == FLASH_UNKNOWN) -+ return ERR_UNKNOWN_FLASH_TYPE; -+ -+ if ((s_first < 0) || (s_first > s_last)) { -+ return ERR_INVAL; -+ } -+ -+ if ((info->flash_id & FLASH_VENDMASK) != -+ (AMD_MANUFACT & FLASH_VENDMASK)) { -+ return ERR_UNKNOWN_FLASH_VENDOR; -+ } -+ -+ prot = 0; -+ for (sect = s_first; sect <= s_last; ++sect) { -+ if (info->protect[sect]) { -+ prot++; -+ } -+ } -+ if (prot) -+ return ERR_PROTECTED; -+ -+ /* -+ * Disable interrupts which might cause a timeout -+ * here. Remember that our exception vectors are -+ * at address 0 in the flash, and we don't want a -+ * (ticker) exception to happen while the flash -+ * chip is in programming mode. -+ */ -+ cflag = icache_status (); -+ icache_disable (); -+ iflag = disable_interrupts (); -+ -+ /* Start erase on unprotected sectors */ -+ for (sect = s_first; sect <= s_last && !ctrlc (); sect++) { -+ printf ("Erasing sector %2d ... ", sect); -+ -+ /* arm simple, non interrupt dependent timer */ -+ reset_timer_masked (); -+ -+ if (info->protect[sect] == 0) { /* not protected */ -+ vu_short *addr = (vu_short *) (info->start[sect]); -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ MEM_FLASH_ADDR1 = CMD_ERASE_SETUP; -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ *addr = CMD_ERASE_CONFIRM; -+ -+ /* wait until flash is ready */ -+ chip = 0; -+ -+ do { -+ result = *addr; -+ -+ /* check timeout */ -+ if (get_timer_masked () > -+ CFG_FLASH_ERASE_TOUT) { -+ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; -+ chip = TMO; -+ break; -+ } -+ -+ if (!chip -+ && (result & 0xFFFF) & BIT_ERASE_DONE) -+ chip = READY; -+ -+ if (!chip -+ && (result & 0xFFFF) & BIT_PROGRAM_ERROR) -+ chip = ERR; -+ -+ } while (!chip); -+ -+ MEM_FLASH_ADDR1 = CMD_READ_ARRAY; -+ -+ if (chip == ERR) { -+ rc = ERR_PROG_ERROR; -+ goto outahere; -+ } -+ if (chip == TMO) { -+ rc = ERR_TIMOUT; -+ goto outahere; -+ } -+ -+ printf ("ok.\n"); -+ } else { /* it was protected */ -+ -+ printf ("protected!\n"); -+ } -+ } -+ -+ if (ctrlc ()) -+ printf ("User Interrupt!\n"); -+ -+ outahere: -+ /* allow flash to settle - wait 10 ms */ -+ udelay_masked (10000); -+ -+ if (iflag) -+ enable_interrupts (); -+ -+ if (cflag) -+ icache_enable (); -+ -+ return rc; -+} -+ -+/*----------------------------------------------------------------------- -+ * Copy memory to flash -+ */ -+ -+volatile static int write_hword (flash_info_t * info, ulong dest, ushort data) -+{ -+ vu_short *addr = (vu_short *) dest; -+ ushort result; -+ int rc = ERR_OK; -+ int cflag, iflag; -+ int chip; -+ -+ /* -+ * Check if Flash is (sufficiently) erased -+ */ -+ result = *addr; -+ if ((result & data) != data) -+ return ERR_NOT_ERASED; -+ -+ -+ /* -+ * Disable interrupts which might cause a timeout -+ * here. Remember that our exception vectors are -+ * at address 0 in the flash, and we don't want a -+ * (ticker) exception to happen while the flash -+ * chip is in programming mode. -+ */ -+ cflag = icache_status (); -+ icache_disable (); -+ iflag = disable_interrupts (); -+ -+ MEM_FLASH_ADDR1 = CMD_UNLOCK1; -+ MEM_FLASH_ADDR2 = CMD_UNLOCK2; -+ MEM_FLASH_ADDR1 = CMD_UNLOCK_BYPASS; -+ *addr = CMD_PROGRAM; -+ *addr = data; -+ -+ /* arm simple, non interrupt dependent timer */ -+ reset_timer_masked (); -+ -+ /* wait until flash is ready */ -+ chip = 0; -+ do { -+ result = *addr; -+ -+ /* check timeout */ -+ if (get_timer_masked () > CFG_FLASH_ERASE_TOUT) { -+ chip = ERR | TMO; -+ break; -+ } -+ if (!chip && ((result & 0x80) == (data & 0x80))) -+ chip = READY; -+ -+ if (!chip && ((result & 0xFFFF) & BIT_PROGRAM_ERROR)) { -+ result = *addr; -+ -+ if ((result & 0x80) == (data & 0x80)) -+ chip = READY; -+ else -+ chip = ERR; -+ } -+ -+ } while (!chip); -+ -+ *addr = CMD_READ_ARRAY; -+ -+ if (chip == ERR || *addr != data) -+ rc = ERR_PROG_ERROR; -+ -+ if (iflag) -+ enable_interrupts (); -+ -+ if (cflag) -+ icache_enable (); -+ -+ return rc; -+} -+ -+/*----------------------------------------------------------------------- -+ * Copy memory to flash. -+ */ -+ -+int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt) -+{ -+ ulong cp, wp; -+ int l; -+ int i, rc; -+ ushort data; -+ -+ wp = (addr & ~1); /* get lower word aligned address */ -+ -+ /* -+ * handle unaligned start bytes -+ */ -+ if ((l = addr - wp) != 0) { -+ data = 0; -+ for (i = 0, cp = wp; i < l; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ for (; i < 2 && cnt > 0; ++i) { -+ data = (data >> 8) | (*src++ << 8); -+ --cnt; -+ ++cp; -+ } -+ for (; cnt == 0 && i < 2; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ -+ if ((rc = write_hword (info, wp, data)) != 0) { -+ return (rc); -+ } -+ wp += 2; -+ } -+ -+ /* -+ * handle word aligned part -+ */ -+ while (cnt >= 2) { -+ data = *((vu_short *) src); -+ if ((rc = write_hword (info, wp, data)) != 0) { -+ return (rc); -+ } -+ src += 2; -+ wp += 2; -+ cnt -= 2; -+ } -+ -+ if (cnt == 0) { -+ return ERR_OK; -+ } -+ -+ /* -+ * handle unaligned tail bytes -+ */ -+ data = 0; -+ for (i = 0, cp = wp; i < 2 && cnt > 0; ++i, ++cp) { -+ data = (data >> 8) | (*src++ << 8); -+ --cnt; -+ } -+ for (; i < 2; ++i, ++cp) { -+ data = (data >> 8) | (*(uchar *) cp << 8); -+ } -+ -+ return write_hword (info, wp, data); -+} -Index: git/board/qt2410/lowlevel_init.S -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/lowlevel_init.S 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,173 @@ -+/* -+ * Memory Setup stuff - taken from blob memsetup.S -+ * -+ * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and -+ * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) -+ * -+ * Modified for the Samsung SMDK2410 by -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+ -+#include <config.h> -+#include <version.h> -+ -+ -+/* some parameters for the board */ -+ -+/* -+ * -+ * Taken from linux/arch/arm/boot/compressed/head-s3c2410.S -+ * -+ * Copyright (C) 2002 Samsung Electronics SW.LEE <hitchcar@sec.samsung.com> -+ * -+ */ -+ -+#define BWSCON 0x48000000 -+ -+/* BWSCON */ -+#define DW8 (0x0) -+#define DW16 (0x1) -+#define DW32 (0x2) -+#define WAIT (0x1<<2) -+#define UBLB (0x1<<3) -+ -+#define B1_BWSCON (DW32) -+#define B2_BWSCON (DW16) -+#define B3_BWSCON (DW16 + WAIT + UBLB) -+#define B4_BWSCON (DW16) -+#define B5_BWSCON (DW16) -+#define B6_BWSCON (DW32) -+#define B7_BWSCON (DW32) -+ -+/* BANK0CON */ -+#define B0_Tacs 0x0 /* 0clk */ -+#define B0_Tcos 0x0 /* 0clk */ -+#define B0_Tacc 0x7 /* 14clk */ -+#define B0_Tcoh 0x0 /* 0clk */ -+#define B0_Tah 0x0 /* 0clk */ -+#define B0_Tacp 0x0 -+#define B0_PMC 0x0 /* normal */ -+ -+/* BANK1CON */ -+#define B1_Tacs 0x0 /* 0clk */ -+#define B1_Tcos 0x0 /* 0clk */ -+#define B1_Tacc 0x7 /* 14clk */ -+#define B1_Tcoh 0x0 /* 0clk */ -+#define B1_Tah 0x0 /* 0clk */ -+#define B1_Tacp 0x0 -+#define B1_PMC 0x0 -+ -+#define B2_Tacs 0x0 -+#define B2_Tcos 0x0 -+#define B2_Tacc 0x7 -+#define B2_Tcoh 0x0 -+#define B2_Tah 0x0 -+#define B2_Tacp 0x0 -+#define B2_PMC 0x0 -+ -+#define B3_Tacs 0x0 /* 0clk */ -+#define B3_Tcos 0x3 /* 4clk */ -+#define B3_Tacc 0x7 /* 14clk */ -+#define B3_Tcoh 0x1 /* 1clk */ -+#define B3_Tah 0x0 /* 0clk */ -+#define B3_Tacp 0x3 /* 6clk */ -+#define B3_PMC 0x0 /* normal */ -+ -+#define B4_Tacs 0x0 /* 0clk */ -+#define B4_Tcos 0x0 /* 0clk */ -+#define B4_Tacc 0x7 /* 14clk */ -+#define B4_Tcoh 0x0 /* 0clk */ -+#define B4_Tah 0x0 /* 0clk */ -+#define B4_Tacp 0x0 -+#define B4_PMC 0x0 /* normal */ -+ -+#define B5_Tacs 0x0 /* 0clk */ -+#define B5_Tcos 0x0 /* 0clk */ -+#define B5_Tacc 0x7 /* 14clk */ -+#define B5_Tcoh 0x0 /* 0clk */ -+#define B5_Tah 0x0 /* 0clk */ -+#define B5_Tacp 0x0 -+#define B5_PMC 0x0 /* normal */ -+ -+#define B6_MT 0x3 /* SDRAM */ -+#define B6_Trcd 0x1 -+#define B6_SCAN 0x1 /* 9bit */ -+ -+#define B7_MT 0x3 /* SDRAM */ -+#define B7_Trcd 0x1 /* 3clk */ -+#define B7_SCAN 0x1 /* 9bit */ -+ -+/* REFRESH parameter */ -+#define REFEN 0x1 /* Refresh enable */ -+#define TREFMD 0x0 /* CBR(CAS before RAS)/Auto refresh */ -+#define Trp 0x1 /* 3clk */ -+#define Trc 0x3 /* 7clk */ -+#define Tchr 0x2 /* 3clk */ -+//#define REFCNT 1113 /* period=15.6us, HCLK=60Mhz, (2048+1-15.6*60) */ -+#define REFCNT 997 /* period=17.5us, HCLK=60Mhz, (2048+1-15.6*60) */ -+/**************************************/ -+ -+_TEXT_BASE: -+ .word TEXT_BASE -+ -+.globl lowlevel_init -+lowlevel_init: -+ /* memory control configuration */ -+ /* make r0 relative the current location so that it */ -+ /* reads SMRDATA out of FLASH rather than memory ! */ -+ ldr r0, =SMRDATA -+ ldr r1, _TEXT_BASE -+ sub r0, r0, r1 -+ ldr r1, =BWSCON /* Bus Width Status Controller */ -+ add r2, r0, #13*4 -+0: -+ ldr r3, [r0], #4 -+ str r3, [r1], #4 -+ cmp r2, r0 -+ bne 0b -+ -+ /* setup asynchronous bus mode */ -+ mrc p15, 0, r1 ,c1 ,c0, 0 -+ orr r1, r1, #0xc0000000 -+ mcr p15, 0, r1, c1, c0, 0 -+ -+ /* everything is fine now */ -+ mov pc, lr -+ -+ .ltorg -+/* the literal pools origin */ -+ -+SMRDATA: -+ .word (0+(B1_BWSCON<<4)+(B2_BWSCON<<8)+(B3_BWSCON<<12)+(B4_BWSCON<<16)+(B5_BWSCON<<20)+(B6_BWSCON<<24)+(B7_BWSCON<<28)) -+ .word ((B0_Tacs<<13)+(B0_Tcos<<11)+(B0_Tacc<<8)+(B0_Tcoh<<6)+(B0_Tah<<4)+(B0_Tacp<<2)+(B0_PMC)) -+ .word ((B1_Tacs<<13)+(B1_Tcos<<11)+(B1_Tacc<<8)+(B1_Tcoh<<6)+(B1_Tah<<4)+(B1_Tacp<<2)+(B1_PMC)) -+ .word ((B2_Tacs<<13)+(B2_Tcos<<11)+(B2_Tacc<<8)+(B2_Tcoh<<6)+(B2_Tah<<4)+(B2_Tacp<<2)+(B2_PMC)) -+ .word ((B3_Tacs<<13)+(B3_Tcos<<11)+(B3_Tacc<<8)+(B3_Tcoh<<6)+(B3_Tah<<4)+(B3_Tacp<<2)+(B3_PMC)) -+ .word ((B4_Tacs<<13)+(B4_Tcos<<11)+(B4_Tacc<<8)+(B4_Tcoh<<6)+(B4_Tah<<4)+(B4_Tacp<<2)+(B4_PMC)) -+ .word ((B5_Tacs<<13)+(B5_Tcos<<11)+(B5_Tacc<<8)+(B5_Tcoh<<6)+(B5_Tah<<4)+(B5_Tacp<<2)+(B5_PMC)) -+ .word ((B6_MT<<15)+(B6_Trcd<<2)+(B6_SCAN)) -+ .word ((B7_MT<<15)+(B7_Trcd<<2)+(B7_SCAN)) -+ .word ((REFEN<<23)+(TREFMD<<22)+(Trp<<20)+(Trc<<18)+(Tchr<<16)+REFCNT) -+ .word 0xb2 -+ .word 0x30 -+ .word 0x30 -Index: git/board/qt2410/qt2410.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/qt2410.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,127 @@ -+/* -+ * (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * based on existing S3C2410 startup code in u-boot: -+ * -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * -+ * (C) Copyright 2002 -+ * David Mueller, ELSOFT AG, <d.mueller@elsoft.ch> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+#include <s3c2410.h> -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#if 1 -+//#define M_MDIV 0xA1 /* Fout = 202.8MHz */ -+//#define M_PDIV 0x3 -+//#define M_SDIV 0x1 -+#define M_MDIV 0x90 /* Fout = 202.8MHz */ -+#define M_PDIV 0x7 -+#define M_SDIV 0x0 -+#else -+#define M_MDIV 0x5c /* Fout = 150.0MHz */ -+#define M_PDIV 0x4 -+#define M_SDIV 0x0 -+#endif -+ -+#if 1 -+#define U_M_MDIV 0x78 -+#define U_M_PDIV 0x2 -+#define U_M_SDIV 0x3 -+#else -+#define U_M_MDIV 0x48 -+#define U_M_PDIV 0x3 -+#define U_M_SDIV 0x2 -+#endif -+ -+static inline void delay (unsigned long loops) -+{ -+ __asm__ volatile ("1:\n" -+ "subs %0, %1, #1\n" -+ "bne 1b":"=r" (loops):"0" (loops)); -+} -+ -+/* -+ * Miscellaneous platform dependent initialisations -+ */ -+ -+int board_init (void) -+{ -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO(); -+ -+ /* to reduce PLL lock time, adjust the LOCKTIME register */ -+ clk_power->LOCKTIME = 0xFFFFFF; -+ -+ /* configure MPLL */ -+ clk_power->MPLLCON = ((M_MDIV << 12) + (M_PDIV << 4) + M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (4000); -+ -+ /* configure UPLL */ -+ clk_power->UPLLCON = ((U_M_MDIV << 12) + (U_M_PDIV << 4) + U_M_SDIV); -+ -+ /* some delay between MPLL and UPLL */ -+ delay (8000); -+ -+ /* set up the I/O ports */ -+ gpio->GPACON = 0x007FFFFF; -+ gpio->GPBCON = 0x00044555; -+ gpio->GPBUP = 0x000007FF; -+ gpio->GPCCON = 0xAAAAAAAA; -+ gpio->GPCUP = 0x0000FFFF; -+ gpio->GPDCON = 0xAAAAAAAA; -+ gpio->GPDUP = 0x0000FFFF; -+ gpio->GPECON = 0xAAAAAAAA; -+ gpio->GPEUP = 0x0000FFFF; -+ gpio->GPFCON = 0x000055AA; -+ gpio->GPFUP = 0x000000FF; -+ gpio->GPGCON = 0xFF95FFBA; -+ //gpio->GPGUP = 0x0000FFFF; -+ gpio->GPGUP = 0x0000AFEF; -+ gpio->GPHCON = 0x0028FAAA; -+ gpio->GPHUP = 0x000007FF; -+ -+ /* arch number of SMDK2410-Board */ -+ gd->bd->bi_arch_number = MACH_TYPE_QT2410; -+ -+ /* adress of boot parameters */ -+ gd->bd->bi_boot_params = 0x30000100; -+ -+ icache_enable(); -+ dcache_enable(); -+ -+ return 0; -+} -+ -+int dram_init (void) -+{ -+ gd->bd->bi_dram[0].start = PHYS_SDRAM_1; -+ gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE; -+ -+ return 0; -+} -Index: git/board/qt2410/u-boot.lds -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/board/qt2410/u-boot.lds 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,57 @@ -+/* -+ * (C) Copyright 2002 -+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de> -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -+/*OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")*/ -+OUTPUT_ARCH(arm) -+ENTRY(_start) -+SECTIONS -+{ -+ . = 0x00000000; -+ -+ . = ALIGN(4); -+ .text : -+ { -+ cpu/arm920t/start.o (.text) -+ *(.text) -+ } -+ -+ . = ALIGN(4); -+ .rodata : { *(.rodata) } -+ -+ . = ALIGN(4); -+ .data : { *(.data) } -+ -+ . = ALIGN(4); -+ .got : { *(.got) } -+ -+ . = .; -+ __u_boot_cmd_start = .; -+ .u_boot_cmd : { *(.u_boot_cmd) } -+ __u_boot_cmd_end = .; -+ -+ . = ALIGN(4); -+ __bss_start = .; -+ .bss : { *(.bss) } -+ _end = .; -+} -Index: git/common/Makefile -=================================================================== ---- git.orig/common/Makefile 2007-01-04 12:21:15.000000000 +0100 -+++ git/common/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -28,7 +28,7 @@ - AOBJS = - - COBJS = main.o ACEX1K.o altera.o bedbug.o circbuf.o \ -- cmd_ace.o cmd_autoscript.o \ -+ cmd_ace.o cmd_arm920.o cmd_autoscript.o \ - cmd_bdinfo.o cmd_bedbug.o cmd_bmp.o cmd_boot.o cmd_bootm.o \ - cmd_cache.o cmd_console.o \ - cmd_date.o cmd_dcr.o cmd_diag.o cmd_display.o cmd_doc.o cmd_dtt.o \ -Index: git/common/cmd_arm920.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/common/cmd_arm920.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,64 @@ -+/* -+ * (C) Copyright 2003 -+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+/* -+ * Boot support -+ */ -+#include <common.h> -+#include <command.h> -+#include <net.h> /* for print_IPaddr */ -+ -+DECLARE_GLOBAL_DATA_PTR; -+ -+#if (CONFIG_COMMANDS & CFG_CMD_BDI) -+ -+extern unsigned long read_p15_c1(void); -+extern void write_p15_c1(unsigned long); -+ -+int do_arm920 ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) -+{ -+ int i; -+ -+ if (strcmp(argv[1], "cp15c1")) { -+ printf("Usage:\n%s\n", cmdtp->usage); -+ return 1; -+ } -+ -+ if (!strcmp(argv[2], "write")) { -+ ulong val = simple_strtoul(argv[3], NULL, 16); -+ printf("setting cp15c1 to 0x%08x\n", val); -+ write_p15_c1(val); -+ } else if (!strcmp(argv[2], "read")) -+ printf("cp15c1 = 0x%08x\n", read_p15_c1()); -+ -+ return 0; -+} -+ -+/* -------------------------------------------------------------------- */ -+ -+U_BOOT_CMD( -+ arm920, 4, 1, do_arm920, -+ "arm920_cp15 - print cp15", -+ NULL -+); -+#endif /* CFG_CMD_BDI */ -Index: git/cpu/arm920t/cpu.c -=================================================================== ---- git.orig/cpu/arm920t/cpu.c 2007-01-04 12:21:15.000000000 +0100 -+++ git/cpu/arm920t/cpu.c 2007-01-04 12:21:18.000000000 +0100 -@@ -38,7 +38,7 @@ - #endif - - /* read co-processor 15, register #1 (control register) */ --static unsigned long read_p15_c1 (void) -+unsigned long read_p15_c1 (void) - { - unsigned long value; - -@@ -55,7 +55,7 @@ - } - - /* write to co-processor 15, register #1 (control register) */ --static void write_p15_c1 (unsigned long value) -+void write_p15_c1 (unsigned long value) - { - #ifdef MMU_DEBUG - printf ("write %08lx to p15/c1\n", value); -Index: git/cpu/arm920t/s3c24x0/Makefile -=================================================================== ---- git.orig/cpu/arm920t/s3c24x0/Makefile 2007-01-04 12:21:15.000000000 +0100 -+++ git/cpu/arm920t/s3c24x0/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -26,7 +26,7 @@ - LIB = $(obj)lib$(SOC).a - - COBJS = i2c.o interrupts.o serial.o speed.o \ -- usb_ohci.o -+ usb_ohci.o mmc.o nand_read.o nand.o - - SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) - OBJS := $(addprefix $(obj),$(SOBJS) $(COBJS)) -Index: git/cpu/arm920t/s3c24x0/mmc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/cpu/arm920t/s3c24x0/mmc.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,568 @@ -+/* -+ * u-boot S3C2410 MMC/SD card driver -+ * (C) Copyright 2006 by Harald Welte <laforge@gnumonks.org> -+ * -+ * based on u-boot pxa MMC driver and linux/drivers/mmc/s3c2410mci.c -+ * (C) 2005-2005 Thomas Kleffel -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <config.h> -+#include <common.h> -+#include <mmc.h> -+#include <asm/errno.h> -+#include <asm/io.h> -+#include <s3c2410.h> -+#include <part.h> -+ -+#ifdef CONFIG_MMC -+ -+#define CONFIG_MMC_WIDE -+ -+//#define MMC_DEBUG -+ -+#ifdef MMC_DEBUG -+#ifdef debug -+#undef debug -+#endif -+#define debug printf -+#endif -+ -+static S3C2410_SDI *sdi; -+ -+extern int -+fat_register_device(block_dev_desc_t *dev_desc, int part_no); -+ -+static block_dev_desc_t mmc_dev; -+ -+block_dev_desc_t * mmc_get_dev(int dev) -+{ -+ return ((block_dev_desc_t *)&mmc_dev); -+} -+ -+/* -+ * FIXME needs to read cid and csd info to determine block size -+ * and other parameters -+ */ -+static uchar mmc_buf[MMC_BLOCK_SIZE]; -+static mmc_csd_t mmc_csd; -+static int mmc_ready = 0; -+static int wide = 0; -+ -+ -+#define CMD_F_RESP 0x01 -+#define CMD_F_RESP_LONG 0x02 -+ -+static u_int32_t * -+/****************************************************/ -+mmc_cmd(ushort cmd, ulong arg, ushort flags) -+/****************************************************/ -+{ -+ static u_int32_t resp[5]; -+ ulong status; -+ int i; -+ -+ u_int32_t ccon, csta; -+ u_int32_t csta_rdy_bit = S3C2410_SDICMDSTAT_CMDSENT; -+ -+ memset(resp, 0, sizeof(resp)); -+ -+ debug("mmc_cmd CMD%d arg=0x%08x flags=%x\n", cmd, arg, flags); -+ -+ sdi->SDICSTA = 0xffffffff; -+ sdi->SDIDSTA = 0xffffffff; -+ sdi->SDIFSTA = 0xffffffff; -+ -+ sdi->SDICARG = arg; -+ -+ ccon = cmd & S3C2410_SDICMDCON_INDEX; -+ ccon |= S3C2410_SDICMDCON_SENDERHOST|S3C2410_SDICMDCON_CMDSTART; -+ -+ if (flags & CMD_F_RESP) { -+ ccon |= S3C2410_SDICMDCON_WAITRSP; -+ csta_rdy_bit = S3C2410_SDICMDSTAT_RSPFIN; /* 1 << 9 */ -+ } -+ -+ if (flags & CMD_F_RESP_LONG) -+ ccon |= S3C2410_SDICMDCON_LONGRSP; -+ -+ sdi->SDICCON = ccon; -+ -+ while (1) { -+ csta = sdi->SDICSTA; -+ if (csta & csta_rdy_bit) -+ break; -+ if (csta & S3C2410_SDICMDSTAT_CMDTIMEOUT) { -+ printf("===============> MMC CMD Timeout\n"); -+ sdi->SDICSTA |= S3C2410_SDICMDSTAT_CMDTIMEOUT; -+ break; -+ } -+ } -+ -+ debug("final MMC CMD status 0x%x\n", csta); -+ -+ sdi->SDICSTA |= csta_rdy_bit; -+ -+ if (flags & CMD_F_RESP) { -+ resp[0] = sdi->SDIRSP0; -+ resp[1] = sdi->SDIRSP1; -+ resp[2] = sdi->SDIRSP2; -+ resp[3] = sdi->SDIRSP3; -+ } -+ -+#if 0 -+ for (i=0; i<4; i ++) { -+ debug("MMC resp[%d] = 0x%08x\n", i, resp[i]); -+ } -+#endif -+ -+ return resp; -+} -+ -+#define FIFO_FILL(host) ((host->SDIFSTA & S3C2410_SDIFSTA_COUNTMASK) >> 2) -+ -+static int -+/****************************************************/ -+mmc_block_read(uchar *dst, ulong src, ulong len) -+/****************************************************/ -+{ -+ u_int32_t dcon, fifo; -+ u_int32_t *dst_u32 = (u_int32_t *)dst; -+ u_int32_t *resp; -+ -+ if (len == 0) { -+ return 0; -+ } -+ -+ debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len); -+ -+ /* set block len */ -+ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP); -+ sdi->SDIBSIZE = len; -+ -+ //sdi->SDIPRE = 0xff; -+ -+ /* setup data */ -+ dcon = (len >> 9) & S3C2410_SDIDCON_BLKNUM_MASK; -+ dcon |= S3C2410_SDIDCON_BLOCKMODE; -+ dcon |= S3C2410_SDIDCON_RXAFTERCMD|S3C2410_SDIDCON_XFER_RXSTART; -+ if (wide) -+ dcon |= S3C2410_SDIDCON_WIDEBUS; -+ sdi->SDIDCON = dcon; -+ -+ /* send read command */ -+ resp = mmc_cmd(MMC_CMD_READ_BLOCK, src, CMD_F_RESP); -+ -+ while (len > 0) { -+ u_int32_t sdidsta = sdi->SDIDSTA; -+ fifo = FIFO_FILL(sdi); -+ if (sdidsta & (S3C2410_SDIDSTA_FIFOFAIL| -+ S3C2410_SDIDSTA_CRCFAIL| -+ S3C2410_SDIDSTA_RXCRCFAIL| -+ S3C2410_SDIDSTA_DATATIMEOUT)) { -+ printf("mmc_block_read: err SDIDSTA=0x%08x\n", sdidsta); -+ return -EIO; -+ } -+ -+ while (fifo--) { -+ //debug("dst_u32 = 0x%08x\n", dst_u32); -+ *(dst_u32++) = sdi->SDIDAT; -+ if (len >= 4) -+ len -= 4; -+ else { -+ len = 0; -+ break; -+ } -+ } -+ } -+ -+#if 1 -+ debug("waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); -+ while (!(sdi->SDIDSTA & (1 << 4))) {} -+ debug("done waiting for SDIDSTA (currently 0x%08x\n", sdi->SDIDSTA); -+#endif -+ -+ sdi->SDIDCON = 0; -+ -+#if 0 -+ if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH)) -+ printf("mmc_block_read; transfer not finished!\n"); -+#endif -+ -+ return 0; -+} -+ -+static int -+/****************************************************/ -+mmc_block_write(ulong dst, uchar *src, int len) -+/****************************************************/ -+{ -+#if 0 -+ uchar *resp; -+ ushort argh, argl; -+ ulong status; -+ -+ if (len == 0) { -+ return 0; -+ } -+ -+ debug("mmc_block_wr dst %lx src %lx len %d\n", dst, (ulong)src, len); -+ -+ argh = len >> 16; -+ argl = len & 0xffff; -+ -+ /* set block len */ -+ resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, argh, argl, CMD_F_RESP); -+ -+ /* send write command */ -+ argh = dst >> 16; -+ argl = dst & 0xffff; -+ MMC_STRPCL = MMC_STRPCL_STOP_CLK; -+ MMC_NOB = 1; -+ MMC_BLKLEN = len; -+ resp = mmc_cmd(MMC_CMD_WRITE_BLOCK, dst, CMD_F_RESP, -+ MMC_CMDAT_R1|MMC_CMDAT_WRITE|MMC_CMDAT_BLOCK|MMC_CMDAT_DATA_EN); -+ -+ MMC_I_MASK = ~MMC_I_MASK_TXFIFO_WR_REQ; -+ while (len) { -+ if (MMC_I_REG & MMC_I_REG_TXFIFO_WR_REQ) { -+ int i, bytes = min(32,len); -+ -+ for (i=0; i<bytes; i++) { -+ MMC_TXFIFO = *src++; -+ } -+ if (bytes < 32) { -+ MMC_PRTBUF = MMC_PRTBUF_BUF_PART_FULL; -+ } -+ len -= bytes; -+ } -+ status = MMC_STAT; -+ if (status & MMC_STAT_ERRORS) { -+ printf("MMC_STAT error %lx\n", status); -+ return -1; -+ } -+ } -+ MMC_I_MASK = ~MMC_I_MASK_DATA_TRAN_DONE; -+ while (!(MMC_I_REG & MMC_I_REG_DATA_TRAN_DONE)); -+ MMC_I_MASK = ~MMC_I_MASK_PRG_DONE; -+ while (!(MMC_I_REG & MMC_I_REG_PRG_DONE)); -+ status = MMC_STAT; -+ if (status & MMC_STAT_ERRORS) { -+ printf("MMC_STAT error %lx\n", status); -+ return -1; -+ } -+#endif -+ return 0; -+} -+ -+ -+int -+/****************************************************/ -+mmc_read(ulong src, uchar *dst, int size) -+/****************************************************/ -+{ -+ ulong end, part_start, part_end, part_len, aligned_start, aligned_end; -+ ulong mmc_block_size, mmc_block_address; -+ -+ if (size == 0) { -+ return 0; -+ } -+ -+ if (!mmc_ready) { -+ printf("Please initialize the MMC first\n"); -+ return -1; -+ } -+ -+ mmc_block_size = MMC_BLOCK_SIZE; -+ mmc_block_address = ~(mmc_block_size - 1); -+ -+ src -= CFG_MMC_BASE; -+ end = src + size; -+ part_start = ~mmc_block_address & src; -+ part_end = ~mmc_block_address & end; -+ aligned_start = mmc_block_address & src; -+ aligned_end = mmc_block_address & end; -+ -+ /* all block aligned accesses */ -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_start) { -+ part_len = mmc_block_size - part_start; -+ debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(dst, mmc_buf+part_start, part_len); -+ dst += part_len; -+ src += part_len; -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ for (; src < aligned_end; src += mmc_block_size, dst += mmc_block_size) { -+ debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read((uchar *)(dst), src, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_end && src < end) { -+ debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(dst, mmc_buf, part_end); -+ } -+ return 0; -+} -+ -+int -+/****************************************************/ -+mmc_write(uchar *src, ulong dst, int size) -+/****************************************************/ -+{ -+ ulong end, part_start, part_end, part_len, aligned_start, aligned_end; -+ ulong mmc_block_size, mmc_block_address; -+ -+ if (size == 0) { -+ return 0; -+ } -+ -+ if (!mmc_ready) { -+ printf("Please initialize the MMC first\n"); -+ return -1; -+ } -+ -+ mmc_block_size = MMC_BLOCK_SIZE; -+ mmc_block_address = ~(mmc_block_size - 1); -+ -+ dst -= CFG_MMC_BASE; -+ end = dst + size; -+ part_start = ~mmc_block_address & dst; -+ part_end = ~mmc_block_address & end; -+ aligned_start = mmc_block_address & dst; -+ aligned_end = mmc_block_address & end; -+ -+ /* all block aligned accesses */ -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_start) { -+ part_len = mmc_block_size - part_start; -+ debug("ps src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ (ulong)src, dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_start, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(mmc_buf+part_start, src, part_len); -+ if ((mmc_block_write(aligned_start, mmc_buf, mmc_block_size)) < 0) { -+ return -1; -+ } -+ dst += part_len; -+ src += part_len; -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ for (; dst < aligned_end; src += mmc_block_size, dst += mmc_block_size) { -+ debug("al src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_write(dst, (uchar *)src, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ debug("src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if (part_end && dst < end) { -+ debug("pe src %lx dst %lx end %lx pstart %lx pend %lx astart %lx aend %lx\n", -+ src, (ulong)dst, end, part_start, part_end, aligned_start, aligned_end); -+ if ((mmc_block_read(mmc_buf, aligned_end, mmc_block_size)) < 0) { -+ return -1; -+ } -+ memcpy(mmc_buf, src, part_end); -+ if ((mmc_block_write(aligned_end, mmc_buf, mmc_block_size)) < 0) { -+ return -1; -+ } -+ } -+ return 0; -+} -+ -+ulong -+/****************************************************/ -+mmc_bread(int dev_num, ulong blknr, ulong blkcnt, ulong *dst) -+/****************************************************/ -+{ -+ int mmc_block_size = MMC_BLOCK_SIZE; -+ ulong src = blknr * mmc_block_size + CFG_MMC_BASE; -+ -+ mmc_read(src, (uchar *)dst, blkcnt*mmc_block_size); -+ return blkcnt; -+} -+ -+static u_int16_t rca = MMC_DEFAULT_RCA; -+ -+static u_int32_t mmc_size(const struct mmc_csd *csd) -+{ -+ u_int32_t block_len, mult, blocknr; -+ -+ block_len = csd->read_bl_len << 12; -+ mult = csd->c_size_mult1 << 8; -+ blocknr = (csd->c_size+1) * mult; -+ -+ return blocknr * block_len; -+} -+ -+int -+/****************************************************/ -+mmc_init(int verbose) -+/****************************************************/ -+{ -+ int retries, rc = -ENODEV; -+ int is_sd = 0; -+ u_int32_t *resp; -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ -+ sdi = S3C2410_GetBase_SDI(); -+ -+ debug("mmc_init(PCLK=%u)\n", get_PCLK()); -+ -+ clk_power->CLKCON |= (1 << 9); -+ -+ /* S3C2410 has some bug that prevents reliable operation at higher speed */ -+ //sdi->SDIPRE = 0x3e; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ -+ sdi->SDIPRE = 0x02; /* SDCLK = PCLK/2 / (SDIPRE+1) = 396kHz */ -+ sdi->SDIBSIZE = 512; -+ sdi->SDIDTIMER = 0xffff; -+ sdi->SDIIMSK = 0x0; -+ sdi->SDICON = S3C2410_SDICON_FIFORESET|S3C2440_SDICON_MMCCLOCK; -+ udelay(125000); /* FIXME: 74 SDCLK cycles */ -+ -+ mmc_csd.c_size = 0; -+ -+ /* reset */ -+ retries = 10; -+ resp = mmc_cmd(MMC_CMD_RESET, 0, 0); -+ -+ printf("trying to detect SD Card...\n"); -+ while (retries--) { -+ int i; -+ udelay(100000); -+ resp = mmc_cmd(55, 0x00000000, CMD_F_RESP); -+ resp = mmc_cmd(41, 0x00300000, CMD_F_RESP); -+ -+ if (resp[0] & (1 << 31)) { -+ is_sd = 1; -+ break; -+ } -+ } -+ -+ if (retries == 0 && !is_sd) { -+ retries = 10; -+ printf("failed to detect SD Card, trying MMC\n"); -+ resp = mmc_cmd(MMC_CMD_SEND_OP_COND, 0x00ffc000, CMD_F_RESP); -+ while (retries-- && resp && !(resp[4] & 0x80)) { -+ debug("resp %x %x\n", resp[0], resp[1]); -+ udelay(50); -+ resp = mmc_cmd(1, 0x00ffff00, CMD_F_RESP); -+ } -+ } -+ -+ /* try to get card id */ -+ resp = mmc_cmd(MMC_CMD_ALL_SEND_CID, 0, CMD_F_RESP|CMD_F_RESP_LONG); -+ if (resp) { -+ /* TODO configure mmc driver depending on card attributes */ -+ mmc_cid_t *cid = (mmc_cid_t *)resp; -+ if (verbose) { -+ printf("MMC found. Card desciption is:\n"); -+ printf("Manufacturer ID = %02x%02x%02x\n", -+ cid->id[0], cid->id[1], cid->id[2]); -+ printf("HW/FW Revision = %x %x\n",cid->hwrev, cid->fwrev); -+ cid->hwrev = cid->fwrev = 0; /* null terminate string */ -+ printf("Product Name = %s\n",cid->name); -+ printf("Serial Number = %02x%02x%02x\n", -+ cid->sn[0], cid->sn[1], cid->sn[2]); -+ printf("Month = %d\n",cid->month); -+ printf("Year = %d\n",1997 + cid->year); -+ } -+ /* fill in device description */ -+ mmc_dev.if_type = IF_TYPE_MMC; -+ mmc_dev.part_type = PART_TYPE_DOS; -+ mmc_dev.dev = 0; -+ mmc_dev.lun = 0; -+ mmc_dev.type = 0; -+ /* FIXME fill in the correct size (is set to 32MByte) */ -+ mmc_dev.blksz = 512; -+ mmc_dev.lba = 0x10000; -+ sprintf(mmc_dev.vendor,"Man %02x%02x%02x Snr %02x%02x%02x", -+ cid->id[0], cid->id[1], cid->id[2], -+ cid->sn[0], cid->sn[1], cid->sn[2]); -+ sprintf(mmc_dev.product,"%s",cid->name); -+ sprintf(mmc_dev.revision,"%x %x",cid->hwrev, cid->fwrev); -+ mmc_dev.removable = 0; -+ mmc_dev.block_read = mmc_bread; -+ -+ /* MMC exists, get CSD too */ -+ resp = mmc_cmd(MMC_CMD_SET_RCA, MMC_DEFAULT_RCA, CMD_F_RESP); -+ if (is_sd) -+ rca = resp[0] >> 16; -+ -+ resp = mmc_cmd(MMC_CMD_SEND_CSD, rca<<16, CMD_F_RESP|CMD_F_RESP_LONG); -+ if (resp) { -+ mmc_csd_t *csd = (mmc_csd_t *)resp; -+ memcpy(&mmc_csd, csd, sizeof(csd)); -+ rc = 0; -+ mmc_ready = 1; -+ /* FIXME add verbose printout for csd */ -+ printf("READ_BL_LEN=%u, C_SIZE_MULT=%u, C_SIZE=%u\n", -+ csd->read_bl_len, csd->c_size_mult1, csd->c_size); -+ printf("size = %u\n", mmc_size(csd)); -+ } -+ } -+ -+ resp = mmc_cmd(MMC_CMD_SELECT_CARD, rca<<16, CMD_F_RESP); -+ -+#ifdef CONFIG_MMC_WIDE -+ if (is_sd) { -+ resp = mmc_cmd(55, rca<<16, CMD_F_RESP); -+ resp = mmc_cmd(6, 0x02, CMD_F_RESP); -+ wide = 1; -+ } -+#endif -+ -+ fat_register_device(&mmc_dev,1); /* partitions start counting with 1 */ -+ -+ return rc; -+} -+ -+int -+mmc_ident(block_dev_desc_t *dev) -+{ -+ return 0; -+} -+ -+int -+mmc2info(ulong addr) -+{ -+ /* FIXME hard codes to 32 MB device */ -+ if (addr >= CFG_MMC_BASE && addr < CFG_MMC_BASE + 0x02000000) { -+ return 1; -+ } -+ return 0; -+} -+ -+#endif /* CONFIG_MMC */ -Index: git/cpu/arm920t/s3c24x0/nand.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/cpu/arm920t/s3c24x0/nand.c 2007-01-04 12:21:45.000000000 +0100 -@@ -0,0 +1,213 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+#if 0 -+#define DEBUGN printf -+#else -+#define DEBUGN(x, args ...) {} -+#endif -+ -+#if (CONFIG_COMMANDS & CFG_CMD_NAND) -+#if !defined(CFG_NAND_LEGACY) -+ -+#include <nand.h> -+#include <s3c2410.h> -+ -+#define __REGb(x) (*(volatile unsigned char *)(x)) -+#define __REGi(x) (*(volatile unsigned int *)(x)) -+ -+#define NF_BASE 0x4e000000 -+#define NFCONF __REGi(NF_BASE + 0x0) -+#define NFCMD __REGb(NF_BASE + 0x4) -+#define NFADDR __REGb(NF_BASE + 0x8) -+#define NFDATA __REGb(NF_BASE + 0xc) -+#define NFSTAT __REGb(NF_BASE + 0x10) -+ -+#define S3C2410_NFCONF_EN (1<<15) -+#define S3C2410_NFCONF_512BYTE (1<<14) -+#define S3C2410_NFCONF_4STEP (1<<13) -+#define S3C2410_NFCONF_INITECC (1<<12) -+#define S3C2410_NFCONF_nFCE (1<<11) -+#define S3C2410_NFCONF_TACLS(x) ((x)<<8) -+#define S3C2410_NFCONF_TWRPH0(x) ((x)<<4) -+#define S3C2410_NFCONF_TWRPH1(x) ((x)<<0) -+ -+static u16 s3c2410_read_word(struct mtd_info *mtd) -+{ -+ unsigned char byte = 0; -+ -+ printf("s3c2410_read_word: WARNING, this function is not implemented yet\n"); -+ return byte; -+} -+ -+static void s3c2410_write_word(struct mtd_info *mtd, u16 word) -+{ -+ printf("s3c2410_write_word: WARNING, this function is not implemented yet\n"); -+} -+ -+static void s3c2410_hwcontrol(struct mtd_info *mtd, int cmd) -+{ -+ struct nand_chip *chip = mtd->priv; -+ -+ DEBUGN("hwcontrol(): 0x%02x: ", cmd); -+ -+ switch (cmd) { -+ case NAND_CTL_SETNCE: -+ NFCONF &= ~S3C2410_NFCONF_nFCE; -+ DEBUGN("NFCONF=0x%08x\n", NFCONF); -+ break; -+ case NAND_CTL_CLRNCE: -+ NFCONF |= S3C2410_NFCONF_nFCE; -+ DEBUGN("NFCONF=0x%08x\n", NFCONF); -+ break; -+ case NAND_CTL_SETALE: -+ chip->IO_ADDR_W = NF_BASE + 0x8; -+ DEBUGN("SETALE\n"); -+ break; -+ case NAND_CTL_SETCLE: -+ chip->IO_ADDR_W = NF_BASE + 0x4; -+ DEBUGN("SETCLE\n"); -+ break; -+ default: -+ chip->IO_ADDR_W = NF_BASE + 0xc; -+ break; -+ } -+ return; -+} -+ -+static int s3c2410_dev_ready(struct mtd_info *mtd) -+{ -+ DEBUGN("dev_ready\n"); -+ return (NFSTAT & 0x01); -+} -+ -+static void s3c2410_cmdfunc(struct mtd_info *mtd, unsigned cmd, -+ int column, int page_addr) -+{ -+ DEBUGN("cmdfunc(): 0x%02x, col=%d, page=%d\n", cmd, column, page_addr); -+ -+ switch (cmd) { -+ case NAND_CMD_READ0: -+ case NAND_CMD_READ1: -+ case NAND_CMD_READOOB: -+ NFCMD = cmd; -+ NFADDR = column & 0xff; -+ NFADDR = page_addr & 0xff; -+ NFADDR = (page_addr >> 8) & 0xff; -+ NFADDR = (page_addr >> 16) & 0xff; -+ break; -+ case NAND_CMD_READID: -+ NFCMD = cmd; -+ NFADDR = 0; -+ break; -+ case NAND_CMD_PAGEPROG: -+ NFCMD = cmd; -+ printf("PAGEPROG not implemented\n"); -+ break; -+ case NAND_CMD_ERASE1: -+ NFCMD = cmd; -+ NFADDR = page_addr & 0xff; -+ NFADDR = (page_addr >> 8) & 0xff; -+ NFADDR = (page_addr >> 16) & 0xff; -+ break; -+ case NAND_CMD_ERASE2: -+ NFCMD = cmd; -+ break; -+ case NAND_CMD_SEQIN: -+ printf("SEQIN not implemented\n"); -+ break; -+ case NAND_CMD_STATUS: -+ NFCMD = cmd; -+ break; -+ case NAND_CMD_RESET: -+ NFCMD = cmd; -+ break; -+ default: -+ break; -+ } -+ -+ while (!s3c2410_dev_ready(mtd)); -+} -+ -+int board_nand_init(struct nand_chip *nand) -+{ -+ u_int32_t cfg; -+ u_int8_t tacls, twrph0, twrph1; -+ S3C24X0_CLOCK_POWER * const clk_power = S3C24X0_GetBase_CLOCK_POWER(); -+ -+ DEBUGN("board_nand_init()\n"); -+ -+ clk_power->CLKCON |= (1 << 4); -+ -+ /* initialize hardware */ -+ twrph0 = 3; twrph1 = 0; tacls = 0; -+ -+ /* default timings: maximum */ -+ //twrph0 = 8; twrph1 = 8; tacls = 8; -+ -+ cfg = S3C2410_NFCONF_EN; -+ cfg |= S3C2410_NFCONF_TACLS(tacls - 1); -+ cfg |= S3C2410_NFCONF_TWRPH0(twrph0 - 1); -+ cfg |= S3C2410_NFCONF_TWRPH1(twrph1 - 1); -+ -+ //NFCONF = cfg; -+ NFCONF = 0xf842; -+ -+ /* initialize nand_chip data structure */ -+ nand->IO_ADDR_R = nand->IO_ADDR_W = 0x4e00000c; -+ -+ /* read_buf and write_buf are default */ -+ /* read_byte and write_byte are default */ -+ -+ /* need to override word read/write since default routines try 16bit wide -+ * register access of an (in our case) 8bit register */ -+ nand->read_word = s3c2410_read_word; -+ nand->write_word = s3c2410_write_word; -+ -+ /* hwcontrol always must be implemented */ -+ nand->hwcontrol = s3c2410_hwcontrol; -+ -+ nand->dev_ready = s3c2410_dev_ready; -+ -+ nand->eccmode = NAND_ECC_SOFT; -+ nand->options = 0; -+ //nand->waitfunc = dfc_wait; -+ -+ //nand->cmdfunc = s3c2410_cmdfunc; -+ //nand->autooob = &delta_oob; -+ //nand->badblock_pattern = &delta_bbt_descr; -+ -+#if 0 -+ /* reset */ -+ nand->hwcontrol(NULL, NAND_CTL_SETNCE); -+ nand->cmdfunc(NULL, NAND_CMD_RESET, -1, -1); -+ while (nand->dev_ready(NULL) == 0) {} -+ nand->hwcontrol(NULL, NAND_CTL_CLRNCE); -+#endif -+ -+ DEBUGN("end of nand_init\n"); -+ return 0; -+} -+ -+#else -+ #error "U-Boot legacy NAND support not available for S3C2410" -+#endif -+#endif -Index: git/cpu/arm920t/s3c24x0/nand_read.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/cpu/arm920t/s3c24x0/nand_read.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,75 @@ -+/* -+ * nand_read.c: Simple NAND read functions for booting from NAND -+ * -+ * Taken from GPLv2 licensed vivi bootloader, -+ * Copyright (C) 2002 MIZI Research, Inc. -+ * -+ * Author: Hwang, Chideok <hwang@mizi.com> -+ * Date : $Date: 2004/02/04 10:37:37 $ -+ * -+ * u-boot integration (C) 2006 by Harald Welte <hwelte@hmw-consulting.de> -+ */ -+ -+#include <common.h> -+ -+#ifdef CONFIG_S3C2410_NAND_BOOT -+ -+#define __REGb(x) (*(volatile unsigned char *)(x)) -+#define __REGi(x) (*(volatile unsigned int *)(x)) -+#define NF_BASE 0x4e000000 -+#define NFCONF __REGi(NF_BASE + 0x0) -+#define NFCMD __REGb(NF_BASE + 0x4) -+#define NFADDR __REGb(NF_BASE + 0x8) -+#define NFDATA __REGb(NF_BASE + 0xc) -+#define NFSTAT __REGb(NF_BASE + 0x10) -+ -+#define BUSY 1 -+inline void wait_idle(void) { -+ int i; -+ -+ while(!(NFSTAT & BUSY)) -+ for(i=0; i<10; i++); -+} -+ -+#define NAND_SECTOR_SIZE 512 -+#define NAND_BLOCK_MASK (NAND_SECTOR_SIZE - 1) -+ -+/* low level nand read function */ -+int -+nand_read_ll(unsigned char *buf, unsigned long start_addr, int size) -+{ -+ int i, j; -+ -+ if ((start_addr & NAND_BLOCK_MASK) || (size & NAND_BLOCK_MASK)) { -+ return -1; /* invalid alignment */ -+ } -+ -+ /* chip Enable */ -+ NFCONF &= ~0x800; -+ for(i=0; i<10; i++); -+ -+ for(i=start_addr; i < (start_addr + size);) { -+ /* READ0 */ -+ NFCMD = 0; -+ -+ /* Write Address */ -+ NFADDR = i & 0xff; -+ NFADDR = (i >> 9) & 0xff; -+ NFADDR = (i >> 17) & 0xff; -+ NFADDR = (i >> 25) & 0xff; -+ -+ wait_idle(); -+ -+ for(j=0; j < NAND_SECTOR_SIZE; j++, i++) { -+ *buf = (NFDATA & 0xff); -+ buf++; -+ } -+ } -+ -+ /* chip Disable */ -+ NFCONF |= 0x800; /* chip disable */ -+ -+ return 0; -+} -+ -+#endif /* CONFIG_S3C2410_NAND_BOOT */ -Index: git/cpu/arm920t/start.S -=================================================================== ---- git.orig/cpu/arm920t/start.S 2007-01-04 12:21:15.000000000 +0100 -+++ git/cpu/arm920t/start.S 2007-01-04 12:21:18.000000000 +0100 -@@ -5,6 +5,10 @@ - * Copyright (c) 2002 Alex Züpke <azu@sysgo.de> - * Copyright (c) 2002 Gary Jennejohn <gj@denx.de> - * -+ * S3C2410 NAND portions -+ * Copyright (c) 2001 MIZI Research, Inc. -+ * Copyright (c) 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * - * See file CREDITS for list of people who contributed to this - * project. - * -@@ -27,6 +31,7 @@ - - #include <config.h> - #include <version.h> -+#include <s3c2410.h> - - - /* -@@ -158,9 +163,17 @@ - */ - #ifndef CONFIG_SKIP_LOWLEVEL_INIT - bl cpu_init_crit -+#else -+ /* QT2410: configure bank 3 correctly to make ethernet work */ -+ ldr r1, =0x48000000 -+ ldr r2, =0x00001f4c -+ str r2, [r1, #0x10] -+ ldr r2, =0x2211d122 -+ str r2, [r1] - #endif - - #ifndef CONFIG_SKIP_RELOCATE_UBOOT -+#ifndef CONFIG_S3C2410_NAND_BOOT - relocate: /* relocate U-Boot to RAM */ - adr r0, _start /* r0 <- current position of code */ - ldr r1, _TEXT_BASE /* test if we run from flash or RAM */ -@@ -177,6 +190,93 @@ - stmia r1!, {r3-r10} /* copy to target address [r1] */ - cmp r0, r2 /* until source end addreee [r2] */ - ble copy_loop -+#else /* NAND_BOOT */ -+relocate: -+copy_myself: -+ /* mov r10, lr */ -+ -+ @ reset NAND -+ mov r1, #S3C2410_NAND_BASE -+ ldr r2, =0xf842 @ initial value enable tacls=3,rph0=6,rph1=0 -+ str r2, [r1, #oNFCONF] -+ ldr r2, [r1, #oNFCONF] -+ bic r2, r2, #0x800 @ enable chip -+ str r2, [r1, #oNFCONF] -+ mov r2, #0xff @ RESET command -+ strb r2, [r1, #oNFCMD] -+ mov r3, #0 @ wait -+1: add r3, r3, #0x1 -+ cmp r3, #0xa -+ blt 1b -+2: ldr r2, [r1, #oNFSTAT] @ wait ready -+ tst r2, #0x1 -+ beq 2b -+ ldr r2, [r1, #oNFCONF] -+ orr r2, r2, #0x800 @ disable chip -+ str r2, [r1, #oNFCONF] -+ -+#if 0 -+ @ get ready to call C functions (for nand_read()) -+ ldr sp, DW_STACK_START @ setup stack pointer -+ mov fp, #0 @ no previous frame, so fp=0 -+#else -+ ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */ -+ sub r0, r0, #CFG_MALLOC_LEN /* malloc area */ -+ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo */ -+#ifdef CONFIG_USE_IRQ -+ sub r0, r0, #(CONFIG_STACKSIZE_IRQ+CONFIG_STACKSIZE_FIQ) -+#endif -+ sub sp, r0, #12 /* leave 3 words for abort-stack */ -+#endif -+ -+ @ copy u-boot to RAM -+ ldr r0, _TEXT_BASE -+ mov r1, #0x0 -+ mov r2, #0x30000 -+ bl nand_read_ll -+ -+ tst r0, #0x0 -+ beq ok_nand_read -+#ifdef CONFIG_DEBUG_LL -+bad_nand_read: -+ ldr r0, STR_FAIL -+ ldr r1, SerBase -+ bl PrintWord -+1: b 1b @ infinite loop -+#endif -+ -+ok_nand_read: -+#ifdef CONFIG_DEBUG_LL -+ ldr r0, STR_OK -+ ldr r1, SerBase -+ bl PrintWord -+#endif -+ -+ @ verify -+ mov r0, #0 -+ @ldr r1, =0x33f00000 -+ ldr r1, _TEXT_BASE -+ mov r2, #0x400 @ 4 bytes * 1024 = 4K-bytes -+go_next: -+ ldr r3, [r0], #4 -+ ldr r4, [r1], #4 -+ teq r3, r4 -+ bne notmatch -+ subs r2, r2, #4 -+ beq done_nand_read -+ bne go_next -+notmatch: -+#ifdef CONFIG_DEBUG_LL -+ sub r0, r0, #4 -+ ldr r1, SerBase -+ bl PrintHexWord -+ ldr r0, STR_FAIL -+ ldr r1, SerBase -+ bl PrintWord -+#endif -+1: b 1b -+done_nand_read: -+#endif /* NAND_BOOT */ - #endif /* CONFIG_SKIP_RELOCATE_UBOOT */ - - /* Set up the stack */ -Index: git/drivers/Makefile -=================================================================== ---- git.orig/drivers/Makefile 2007-01-04 12:21:15.000000000 +0100 -+++ git/drivers/Makefile 2007-01-04 12:21:18.000000000 +0100 -@@ -51,7 +51,7 @@ - ks8695eth.o \ - pxa_pcmcia.o mpc8xx_pcmcia.o tqm8xx_pcmcia.o \ - rpx_pcmcia.o \ -- fsl_i2c.o -+ fsl_i2c.o s3c2410_fb.o - - SRCS := $(COBJS:.o=.c) - OBJS := $(addprefix $(obj),$(COBJS)) -Index: git/drivers/cs8900.c -=================================================================== ---- git.orig/drivers/cs8900.c 2007-01-04 12:21:15.000000000 +0100 -+++ git/drivers/cs8900.c 2007-01-04 12:21:18.000000000 +0100 -@@ -120,6 +120,7 @@ - unsigned char env_enetaddr[6]; - char *tmp = getenv ("ethaddr"); - char *end; -+ unsigned short chip_id; - - for (i=0; i<6; i++) { - env_enetaddr[i] = tmp ? simple_strtoul(tmp, &end, 16) : 0; -@@ -128,7 +129,9 @@ - } - - /* verify chip id */ -- if (get_reg_init_bus (PP_ChipID) != 0x630e) -+ chip_id = get_reg_init_bus (PP_ChipID); -+ printf("\ncs8900a chipid 0x%04x\n", chip_id); -+ if (chip_id != 0x630e) - return; - eth_reset (); - if ((get_reg (PP_SelfST) & (PP_SelfSTAT_EEPROM | PP_SelfSTAT_EEPROM_OK)) == -Index: git/drivers/s3c2410_fb.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/drivers/s3c2410_fb.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,182 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#include <common.h> -+ -+#if defined(CONFIG_VIDEO_S3C2410) -+ -+#include <video_fb.h> -+#include "videomodes.h" -+#include <s3c2410.h> -+/* -+ * Export Graphic Device -+ */ -+GraphicDevice smi; -+ -+#define VIDEO_MEM_SIZE 0x200000 -+ -+/******************************************************************************* -+ * -+ * Init video chip with common Linux graphic modes (lilo) -+ */ -+void *video_hw_init (void) -+{ -+ S3C24X0_LCD * const lcd = S3C24X0_GetBase_LCD(); -+ GraphicDevice *pGD = (GraphicDevice *)&smi; -+ int videomode; -+ unsigned long t1, hsynch, vsynch; -+ char *penv; -+ int tmp, i, bits_per_pixel; -+ struct ctfb_res_modes *res_mode; -+ struct ctfb_res_modes var_mode; -+ unsigned char videoout; -+ unsigned int *vm; -+ -+ /* Search for video chip */ -+ printf("Video: "); -+ -+ tmp = 0; -+ -+ videomode = CFG_DEFAULT_VIDEO_MODE; -+ /* get video mode via environment */ -+ if ((penv = getenv ("videomode")) != NULL) { -+ /* deceide if it is a string */ -+ if (penv[0] <= '9') { -+ videomode = (int) simple_strtoul (penv, NULL, 16); -+ tmp = 1; -+ } -+ } else { -+ tmp = 1; -+ } -+ if (tmp) { -+ /* parameter are vesa modes */ -+ /* search params */ -+ for (i = 0; i < VESA_MODES_COUNT; i++) { -+ if (vesa_modes[i].vesanr == videomode) -+ break; -+ } -+ if (i == VESA_MODES_COUNT) { -+ printf ("no VESA Mode found, switching to mode 0x%x ", CFG_DEFAULT_VIDEO_MODE); -+ i = 0; -+ } -+ res_mode = -+ (struct ctfb_res_modes *) &res_mode_init[vesa_modes[i]. -+ resindex]; -+ bits_per_pixel = vesa_modes[i].bits_per_pixel; -+ } else { -+ -+ res_mode = (struct ctfb_res_modes *) &var_mode; -+ bits_per_pixel = video_get_params (res_mode, penv); -+ } -+ -+ /* calculate hsynch and vsynch freq (info only) */ -+ t1 = (res_mode->left_margin + res_mode->xres + -+ res_mode->right_margin + res_mode->hsync_len) / 8; -+ t1 *= 8; -+ t1 *= res_mode->pixclock; -+ t1 /= 1000; -+ hsynch = 1000000000L / t1; -+ t1 *= -+ (res_mode->upper_margin + res_mode->yres + -+ res_mode->lower_margin + res_mode->vsync_len); -+ t1 /= 1000; -+ vsynch = 1000000000L / t1; -+ -+ /* fill in Graphic device struct */ -+ sprintf (pGD->modeIdent, "%dx%dx%d %ldkHz %ldHz", res_mode->xres, -+ res_mode->yres, bits_per_pixel, (hsynch / 1000), -+ (vsynch / 1000)); -+ printf ("%s\n", pGD->modeIdent); -+ pGD->winSizeX = res_mode->xres; -+ pGD->winSizeY = res_mode->yres; -+ pGD->plnSizeX = res_mode->xres; -+ pGD->plnSizeY = res_mode->yres; -+ switch (bits_per_pixel) { -+ case 8: -+ pGD->gdfBytesPP = 1; -+ pGD->gdfIndex = GDF__8BIT_INDEX; -+ break; -+ case 15: -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_15BIT_555RGB; -+ break; -+ case 16: -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_16BIT_565RGB; -+ break; -+ case 24: -+ pGD->gdfBytesPP = 3; -+ pGD->gdfIndex = GDF_24BIT_888RGB; -+ break; -+ } -+ -+#if 0 -+ pGD->isaBase = CFG_ISA_IO; -+ pGD->pciBase = pci_mem_base; -+ pGD->dprBase = (pci_mem_base + 0x400000 + 0x8000); -+ pGD->vprBase = (pci_mem_base + 0x400000 + 0xc000); -+ pGD->cprBase = (pci_mem_base + 0x400000 + 0xe000); -+#endif -+ pGD->frameAdrs = LCD_VIDEO_ADDR; -+ pGD->memSize = VIDEO_MEM_SIZE; -+ -+ lcd->LCDSADDR1 = LCD_VIDEO_ADDR >> 1; -+ lcd->LCDSADDR2 = (LCD_VIDEO_ADDR + 0x4b000) >> 1; -+ lcd->LCDSADDR3 = 0x000000f0; -+ -+ lcd->LCDCON1 = 0x00000479; -+ lcd->LCDCON2 = 0x014fc183; -+ lcd->LCDCON3 = 0x0060ef07; -+ lcd->LCDCON4 = 0x00000003; -+ lcd->LCDCON5 = 0x00000b09; -+ lcd->LPCSEL = 0x00000cf0; -+ -+ pGD->winSizeX = pGD->plnSizeX = 240; -+ pGD->winSizeY = pGD->plnSizeY = 320; -+ pGD->gdfBytesPP = 2; -+ pGD->gdfIndex = GDF_16BIT_565RGB; -+ -+ /* Enable Display */ -+ videoout = 2; /* Default output is CRT */ -+ if ((penv = getenv ("videoout")) != NULL) { -+ /* deceide if it is a string */ -+ videoout = (int) simple_strtoul (penv, NULL, 16); -+ } -+ -+ printf("clearing video memory\n"); -+ /* Clear video memory */ -+ i = pGD->memSize/4; -+ vm = (unsigned int *)pGD->frameAdrs; -+ while(i--) -+ *vm++ = 0; -+ -+ printf("returning from video_hw_init\n"); -+ return ((void*)&smi); -+} -+ -+void -+video_set_lut (unsigned int index, /* color number */ -+ unsigned char r, /* red */ -+ unsigned char g, /* green */ -+ unsigned char b /* blue */ -+ ) -+{ -+} -+ -+#endif /* CONFIG_VIDEO_S3C2410 */ -Index: git/drivers/usbdcore_s3c2410.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/drivers/usbdcore_s3c2410.c 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,1609 @@ -+/* -+ * (C) Copyright 2003 -+ * Gerry Hamel, geh@ti.com, Texas Instruments -+ * -+ * Based on -+ * linux/drivers/usb/device/bi/omap.c -+ * TI OMAP1510 USB bus interface driver -+ * -+ * Author: MontaVista Software, Inc. -+ * source@mvista.com -+ * (C) Copyright 2002 -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -+ * -+ */ -+ -+#include <common.h> -+ -+#if defined(CONFIG_S3C2410) && defined(CONFIG_USB_DEVICE) -+ -+#include <asm/io.h> -+ -+#include "usbdcore.h" -+#include "usbdcore_s3c2410.h" -+#include "usbdcore_ep0.h" -+ -+ -+#define UDC_INIT_MDELAY 80 /* Device settle delay */ -+#define UDC_MAX_ENDPOINTS 31 /* Number of endpoints on this UDC */ -+ -+/* Some kind of debugging output... */ -+#if 1 -+#define UDCDBG(str) -+#define UDCDBGA(fmt,args...) -+#else /* The bugs still exists... */ -+#define UDCDBG(str) serial_printf("[%s] %s:%d: " str "\n", __FILE__,__FUNCTION__,__LINE__) -+#define UDCDBGA(fmt,args...) serial_printf("[%s] %s:%d: " fmt "\n", __FILE__,__FUNCTION__,__LINE__, ##args) -+#endif -+ -+#if 1 -+#define UDCREG(name) -+#define UDCREGL(name) -+#else /* The bugs still exists... */ -+#define UDCREG(name) serial_printf("%s():%d: %s[%08x]=%.4x\n",__FUNCTION__,__LINE__, (#name), name, inw(name)) /* For 16-bit regs */ -+#define UDCREGL(name) serial_printf("%s():%d: %s[%08x]=%.8x\n",__FUNCTION__,__LINE__, (#name), name, inl(name)) /* For 32-bit regs */ -+#endif -+ -+ -+static struct urb *ep0_urb = NULL; -+ -+static struct usb_device_instance *udc_device; /* Used in interrupt handler */ -+static u16 udc_devstat = 0; /* UDC status (DEVSTAT) */ -+static u32 udc_interrupts = 0; -+ -+static void udc_stall_ep (unsigned int ep_addr); -+ -+ -+static struct usb_endpoint_instance *s3c2410_find_ep (int ep) -+{ -+ int i; -+ -+ for (i = 0; i < udc_device->bus->max_endpoints; i++) { -+ if (udc_device->bus->endpoint_array[i].endpoint_address == ep) -+ return &udc_device->bus->endpoint_array[i]; -+ } -+ return NULL; -+} -+ -+/* ************************************************************************** */ -+/* IO -+ */ -+ -+/* -+ * omap1510_prepare_endpoint_for_rx -+ * -+ * This function implements TRM Figure 14-11. -+ * -+ * The endpoint to prepare for transfer is specified as a physical endpoint -+ * number. For OUT (rx) endpoints 1 through 15, the corresponding endpoint -+ * configuration register is checked to see if the endpoint is ISO or not. -+ * If the OUT endpoint is valid and is non-ISO then its FIFO is enabled. -+ * No action is taken for endpoint 0 or for IN (tx) endpoints 16 through 30. -+ */ -+static void omap1510_prepare_endpoint_for_rx (int ep_addr) -+{ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("omap1510_prepare_endpoint %x", ep_addr); -+ if (((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT)) { -+ if ((inw (UDC_EP_RX (ep_num)) & -+ (UDC_EPn_RX_Valid | UDC_EPn_RX_Iso)) == -+ UDC_EPn_RX_Valid) { -+ /* rx endpoint is valid, non-ISO, so enable its FIFO */ -+ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ outw (0, UDC_EP_NUM); -+ } -+ } -+} -+ -+/* omap1510_configure_endpoints -+ * -+ * This function implements TRM Figure 14-10. -+ */ -+static void omap1510_configure_endpoints (struct usb_device_instance *device) -+{ -+ int ep; -+ struct usb_bus_instance *bus; -+ struct usb_endpoint_instance *endpoint; -+ unsigned short ep_ptr; -+ unsigned short ep_size; -+ unsigned short ep_isoc; -+ unsigned short ep_doublebuffer; -+ int ep_addr; -+ int packet_size; -+ int buffer_size; -+ int attributes; -+ -+ bus = device->bus; -+ -+ /* There is a dedicated 2048 byte buffer for USB packets that may be -+ * arbitrarily partitioned among the endpoints on 8-byte boundaries. -+ * The first 8 bytes are reserved for receiving setup packets on -+ * endpoint 0. -+ */ -+ ep_ptr = 8; /* reserve the first 8 bytes for the setup fifo */ -+ -+ for (ep = 0; ep < bus->max_endpoints; ep++) { -+ endpoint = bus->endpoint_array + ep; -+ ep_addr = endpoint->endpoint_address; -+ if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* IN endpoint */ -+ packet_size = endpoint->tx_packetSize; -+ attributes = endpoint->tx_attributes; -+ } else { -+ /* OUT endpoint */ -+ packet_size = endpoint->rcv_packetSize; -+ attributes = endpoint->rcv_attributes; -+ } -+ -+ switch (packet_size) { -+ case 0: -+ ep_size = 0; -+ break; -+ case 8: -+ ep_size = 0; -+ break; -+ case 16: -+ ep_size = 1; -+ break; -+ case 32: -+ ep_size = 2; -+ break; -+ case 64: -+ ep_size = 3; -+ break; -+ case 128: -+ ep_size = 4; -+ break; -+ case 256: -+ ep_size = 5; -+ break; -+ case 512: -+ ep_size = 6; -+ break; -+ default: -+ UDCDBGA ("ep 0x%02x has bad packet size %d", -+ ep_addr, packet_size); -+ packet_size = 0; -+ ep_size = 0; -+ break; -+ } -+ -+ switch (attributes & USB_ENDPOINT_XFERTYPE_MASK) { -+ case USB_ENDPOINT_XFER_CONTROL: -+ case USB_ENDPOINT_XFER_BULK: -+ case USB_ENDPOINT_XFER_INT: -+ default: -+ /* A non-isochronous endpoint may optionally be -+ * double-buffered. For now we disable -+ * double-buffering. -+ */ -+ ep_doublebuffer = 0; -+ ep_isoc = 0; -+ if (packet_size > 64) -+ packet_size = 0; -+ if (!ep || !ep_doublebuffer) -+ buffer_size = packet_size; -+ else -+ buffer_size = packet_size * 2; -+ break; -+ case USB_ENDPOINT_XFER_ISOC: -+ /* Isochronous endpoints are always double- -+ * buffered, but the double-buffering bit -+ * in the endpoint configuration register -+ * becomes the msb of the endpoint size so we -+ * set the double-buffering flag to zero. -+ */ -+ ep_doublebuffer = 0; -+ ep_isoc = 1; -+ buffer_size = packet_size * 2; -+ break; -+ } -+ -+ /* check to see if our packet buffer RAM is exhausted */ -+ if ((ep_ptr + buffer_size) > 2048) { -+ UDCDBGA ("out of packet RAM for ep 0x%02x buf size %d", ep_addr, buffer_size); -+ buffer_size = packet_size = 0; -+ } -+ -+ /* force a default configuration for endpoint 0 since it is -+ * always enabled -+ */ -+ if (!ep && ((packet_size < 8) || (packet_size > 64))) { -+ buffer_size = packet_size = 64; -+ ep_size = 3; -+ } -+ -+ if (!ep) { -+ /* configure endpoint 0 */ -+ outw ((ep_size << 12) | (ep_ptr >> 3), UDC_EP0); -+ /*UDCDBGA("ep 0 buffer offset 0x%03x packet size 0x%03x", */ -+ /* ep_ptr, packet_size); */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* IN endpoint */ -+ if (packet_size) { -+ outw ((1 << 15) | (ep_doublebuffer << 14) | -+ (ep_size << 12) | (ep_isoc << 11) | -+ (ep_ptr >> 3), -+ UDC_EP_TX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ UDCDBGA ("IN ep %d buffer offset 0x%03x" -+ " packet size 0x%03x", -+ ep_addr & USB_ENDPOINT_NUMBER_MASK, -+ ep_ptr, packet_size); -+ } else { -+ outw (0, -+ UDC_EP_TX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ } -+ } else { -+ /* OUT endpoint */ -+ if (packet_size) { -+ outw ((1 << 15) | (ep_doublebuffer << 14) | -+ (ep_size << 12) | (ep_isoc << 11) | -+ (ep_ptr >> 3), -+ UDC_EP_RX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ UDCDBGA ("OUT ep %d buffer offset 0x%03x" -+ " packet size 0x%03x", -+ ep_addr & USB_ENDPOINT_NUMBER_MASK, -+ ep_ptr, packet_size); -+ } else { -+ outw (0, -+ UDC_EP_RX (ep_addr & -+ USB_ENDPOINT_NUMBER_MASK)); -+ } -+ } -+ ep_ptr += buffer_size; -+ } -+} -+ -+static void s3c2410_deconfigure_device (void) -+{ -+ int epnum; -+ -+ UDCDBG ("clear Cfg_Lock"); -+ outw (inw (UDC_SYSCON1) & ~UDC_Cfg_Lock, UDC_SYSCON1); -+ UDCREG (UDC_SYSCON1); -+ -+ /* deconfigure all endpoints */ -+ for (epnum = 1; epnum <= 15; epnum++) { -+ outw (0, UDC_EP_RX (epnum)); -+ outw (0, UDC_EP_TX (epnum)); -+ } -+} -+ -+static void s3c2410_configure_device (struct usb_device_instance *device) -+{ -+ u_int32_t tmp; -+ -+ s3c2410_configure_endpoints(device); -+ -+ /* disable EP0-4 SUBD interrupts ? */ -+ outw(0x00, S3C2410_UDC_USB_INT_EN_REG); -+ -+ /* UPLL already configured by board-level init code */ -+ -+ /* configure USB pads to device mode */ -+ tmp = inw(S3C2410_MISCCR); -+ tmp &= ~(S3C2410_MISCCR_USBHOST|S3C2410_MISCCR_USBSUSPND1); -+ outw(tmp, S3C2410_MISCCR); -+ -+ tmp = inb(S3C2410_CLKSLOW); -+ tmp &= ~S3C2410_CLKSLOW_USB_CLK_DISABLE; -+ outw(tmp, S3C2410_CLKSLOW); -+ -+ /* clear interrupt registers */ -+ inb(S3C2410_UDC_EP_INT_REG); -+ inb(S3C2410_UDC_USB_INT_REG); -+ -+ /* enable USB interrupts for RESET and SUSPEND/RESUME */ -+ outb(S3C2410_UDC_USBINT_RESET|S3C2410_UDC_USBINT_SUSPEND, -+ S3C2410_UDC_USB_INT_EN_REG); -+ -+} -+ -+/* omap1510_write_noniso_tx_fifo -+ * -+ * This function implements TRM Figure 14-30. -+ * -+ * If the endpoint has an active tx_urb, then the next packet of data from the -+ * URB is written to the tx FIFO. The total amount of data in the urb is given -+ * by urb->actual_length. The maximum amount of data that can be sent in any -+ * one packet is given by endpoint->tx_packetSize. The number of data bytes -+ * from this URB that have already been transmitted is given by endpoint->sent. -+ * endpoint->last is updated by this routine with the number of data bytes -+ * transmitted in this packet. -+ * -+ * In accordance with Figure 14-30, the EP_NUM register must already have been -+ * written with the value to select the appropriate tx FIFO before this routine -+ * is called. -+ */ -+static void omap1510_write_noniso_tx_fifo (struct usb_endpoint_instance -+ *endpoint) -+{ -+ struct urb *urb = endpoint->tx_urb; -+ -+ if (urb) { -+ unsigned int last, i; -+ -+ UDCDBGA ("urb->buffer %p, buffer_length %d, actual_length %d", -+ urb->buffer, urb->buffer_length, urb->actual_length); -+ if ((last = -+ MIN (urb->actual_length - endpoint->sent, -+ endpoint->tx_packetSize))) { -+ u8 *cp = urb->buffer + endpoint->sent; -+ -+ UDCDBGA ("endpoint->sent %d, tx_packetSize %d, last %d", endpoint->sent, endpoint->tx_packetSize, last); -+ -+ if (((u32) cp & 1) == 0) { /* word aligned? */ -+ outsw (UDC_DATA, cp, last >> 1); -+ } else { /* byte aligned. */ -+ for (i = 0; i < (last >> 1); i++) { -+ u16 w = ((u16) cp[2 * i + 1] << 8) | -+ (u16) cp[2 * i]; -+ outw (w, UDC_DATA); -+ } -+ } -+ if (last & 1) { -+ outb (*(cp + last - 1), UDC_DATA); -+ } -+ } -+ endpoint->last = last; -+ } -+} -+ -+/* omap1510_read_noniso_rx_fifo -+ * -+ * This function implements TRM Figure 14-28. -+ * -+ * If the endpoint has an active rcv_urb, then the next packet of data is read -+ * from the rcv FIFO and written to rcv_urb->buffer at offset -+ * rcv_urb->actual_length to append the packet data to the data from any -+ * previous packets for this transfer. We assume that there is sufficient room -+ * left in the buffer to hold an entire packet of data. -+ * -+ * The return value is the number of bytes read from the FIFO for this packet. -+ * -+ * In accordance with Figure 14-28, the EP_NUM register must already have been -+ * written with the value to select the appropriate rcv FIFO before this routine -+ * is called. -+ */ -+static int omap1510_read_noniso_rx_fifo (struct usb_endpoint_instance -+ *endpoint) -+{ -+ struct urb *urb = endpoint->rcv_urb; -+ int len = 0; -+ -+ if (urb) { -+ len = inw (UDC_RXFSTAT); -+ -+ if (len) { -+ unsigned char *cp = urb->buffer + urb->actual_length; -+ -+ insw (UDC_DATA, cp, len >> 1); -+ if (len & 1) -+ *(cp + len - 1) = inb (UDC_DATA); -+ } -+ } -+ return len; -+} -+ -+/* omap1510_prepare_for_control_write_status -+ * -+ * This function implements TRM Figure 14-17. -+ * -+ * We have to deal here with non-autodecoded control writes that haven't already -+ * been dealt with by ep0_recv_setup. The non-autodecoded standard control -+ * write requests are: set/clear endpoint feature, set configuration, set -+ * interface, and set descriptor. ep0_recv_setup handles set/clear requests for -+ * ENDPOINT_HALT by halting the endpoint for a set request and resetting the -+ * endpoint for a clear request. ep0_recv_setup returns an error for -+ * SET_DESCRIPTOR requests which causes them to be terminated with a stall by -+ * the setup handler. A SET_INTERFACE request is handled by ep0_recv_setup by -+ * generating a DEVICE_SET_INTERFACE event. This leaves only the -+ * SET_CONFIGURATION event for us to deal with here. -+ * -+ */ -+static void omap1510_prepare_for_control_write_status (struct urb *urb) -+{ -+ struct usb_device_request *request = &urb->device_request;; -+ -+ /* check for a SET_CONFIGURATION request */ -+ if (request->bRequest == USB_REQ_SET_CONFIGURATION) { -+ int configuration = le16_to_cpu (request->wValue) & 0xff; -+ unsigned short devstat = inw (UDC_DEVSTAT); -+ -+ if ((devstat & (UDC_ADD | UDC_CFG)) == UDC_ADD) { -+ /* device is currently in ADDRESSED state */ -+ if (configuration) { -+ /* Assume the specified non-zero configuration -+ * value is valid and switch to the CONFIGURED -+ * state. -+ */ -+ outw (UDC_Dev_Cfg, UDC_SYSCON2); -+ } -+ } else if ((devstat & UDC_CFG) == UDC_CFG) { -+ /* device is currently in CONFIGURED state */ -+ if (!configuration) { -+ /* Switch to ADDRESSED state. */ -+ outw (UDC_Clr_Cfg, UDC_SYSCON2); -+ } -+ } -+ } -+ -+ /* select EP0 tx FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ /* clear endpoint (no data bytes in status stage) */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ /* enable the EP0 tx FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the endpoint */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+} -+ -+/* udc_state_transition_up -+ * udc_state_transition_down -+ * -+ * Helper functions to implement device state changes. The device states and -+ * the events that transition between them are: -+ * -+ * STATE_ATTACHED -+ * || /\ -+ * \/ || -+ * DEVICE_HUB_CONFIGURED DEVICE_HUB_RESET -+ * || /\ -+ * \/ || -+ * STATE_POWERED -+ * || /\ -+ * \/ || -+ * DEVICE_RESET DEVICE_POWER_INTERRUPTION -+ * || /\ -+ * \/ || -+ * STATE_DEFAULT -+ * || /\ -+ * \/ || -+ * DEVICE_ADDRESS_ASSIGNED DEVICE_RESET -+ * || /\ -+ * \/ || -+ * STATE_ADDRESSED -+ * || /\ -+ * \/ || -+ * DEVICE_CONFIGURED DEVICE_DE_CONFIGURED -+ * || /\ -+ * \/ || -+ * STATE_CONFIGURED -+ * -+ * udc_state_transition_up transitions up (in the direction from STATE_ATTACHED -+ * to STATE_CONFIGURED) from the specified initial state to the specified final -+ * state, passing through each intermediate state on the way. If the initial -+ * state is at or above (i.e. nearer to STATE_CONFIGURED) the final state, then -+ * no state transitions will take place. -+ * -+ * udc_state_transition_down transitions down (in the direction from -+ * STATE_CONFIGURED to STATE_ATTACHED) from the specified initial state to the -+ * specified final state, passing through each intermediate state on the way. -+ * If the initial state is at or below (i.e. nearer to STATE_ATTACHED) the final -+ * state, then no state transitions will take place. -+ * -+ * These functions must only be called with interrupts disabled. -+ */ -+static void udc_state_transition_up (usb_device_state_t initial, -+ usb_device_state_t final) -+{ -+ if (initial < final) { -+ switch (initial) { -+ case STATE_ATTACHED: -+ usbd_device_event_irq (udc_device, -+ DEVICE_HUB_CONFIGURED, 0); -+ if (final == STATE_POWERED) -+ break; -+ case STATE_POWERED: -+ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); -+ if (final == STATE_DEFAULT) -+ break; -+ case STATE_DEFAULT: -+ usbd_device_event_irq (udc_device, -+ DEVICE_ADDRESS_ASSIGNED, 0); -+ if (final == STATE_ADDRESSED) -+ break; -+ case STATE_ADDRESSED: -+ usbd_device_event_irq (udc_device, DEVICE_CONFIGURED, -+ 0); -+ case STATE_CONFIGURED: -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+static void udc_state_transition_down (usb_device_state_t initial, -+ usb_device_state_t final) -+{ -+ if (initial > final) { -+ switch (initial) { -+ case STATE_CONFIGURED: -+ usbd_device_event_irq (udc_device, DEVICE_DE_CONFIGURED, 0); -+ if (final == STATE_ADDRESSED) -+ break; -+ case STATE_ADDRESSED: -+ usbd_device_event_irq (udc_device, DEVICE_RESET, 0); -+ if (final == STATE_DEFAULT) -+ break; -+ case STATE_DEFAULT: -+ usbd_device_event_irq (udc_device, DEVICE_POWER_INTERRUPTION, 0); -+ if (final == STATE_POWERED) -+ break; -+ case STATE_POWERED: -+ usbd_device_event_irq (udc_device, DEVICE_HUB_RESET, 0); -+ case STATE_ATTACHED: -+ break; -+ default: -+ break; -+ } -+ } -+} -+ -+/* Handle all device state changes. -+ * This function implements TRM Figure 14-21. -+ */ -+static void omap1510_udc_state_changed (void) -+{ -+ u16 bits; -+ u16 devstat = inw (UDC_DEVSTAT); -+ -+ UDCDBGA ("state changed, devstat %x, old %x", devstat, udc_devstat); -+ -+ bits = devstat ^ udc_devstat; -+ if (bits) { -+ if (bits & UDC_ATT) { -+ if (devstat & UDC_ATT) { -+ UDCDBG ("device attached and powered"); -+ udc_state_transition_up (udc_device->device_state, STATE_POWERED); -+ } else { -+ UDCDBG ("device detached or unpowered"); -+ udc_state_transition_down (udc_device->device_state, STATE_ATTACHED); -+ } -+ } -+ if (bits & UDC_USB_Reset) { -+ if (devstat & UDC_USB_Reset) { -+ UDCDBG ("device reset in progess"); -+ udc_state_transition_down (udc_device->device_state, STATE_POWERED); -+ } else { -+ UDCDBG ("device reset completed"); -+ } -+ } -+ if (bits & UDC_DEF) { -+ if (devstat & UDC_DEF) { -+ UDCDBG ("device entering default state"); -+ udc_state_transition_up (udc_device->device_state, STATE_DEFAULT); -+ } else { -+ UDCDBG ("device leaving default state"); -+ udc_state_transition_down (udc_device->device_state, STATE_POWERED); -+ } -+ } -+ if (bits & UDC_SUS) { -+ if (devstat & UDC_SUS) { -+ UDCDBG ("entering suspended state"); -+ usbd_device_event_irq (udc_device, DEVICE_BUS_INACTIVE, 0); -+ } else { -+ UDCDBG ("leaving suspended state"); -+ usbd_device_event_irq (udc_device, DEVICE_BUS_ACTIVITY, 0); -+ } -+ } -+ if (bits & UDC_R_WK_OK) { -+ UDCDBGA ("remote wakeup %s", (devstat & UDC_R_WK_OK) -+ ? "enabled" : "disabled"); -+ } -+ if (bits & UDC_ADD) { -+ if (devstat & UDC_ADD) { -+ UDCDBG ("default -> addressed"); -+ udc_state_transition_up (udc_device->device_state, STATE_ADDRESSED); -+ } else { -+ UDCDBG ("addressed -> default"); -+ udc_state_transition_down (udc_device->device_state, STATE_DEFAULT); -+ } -+ } -+ if (bits & UDC_CFG) { -+ if (devstat & UDC_CFG) { -+ UDCDBG ("device configured"); -+ /* The ep0_recv_setup function generates the -+ * DEVICE_CONFIGURED event when a -+ * USB_REQ_SET_CONFIGURATION setup packet is -+ * received, so we should already be in the -+ * state STATE_CONFIGURED. -+ */ -+ udc_state_transition_up (udc_device->device_state, STATE_CONFIGURED); -+ } else { -+ UDCDBG ("device deconfigured"); -+ udc_state_transition_down (udc_device->device_state, STATE_ADDRESSED); -+ } -+ } -+ } -+ -+ /* Clear interrupt source */ -+ outw (UDC_DS_Chg, UDC_IRQ_SRC); -+ -+ /* Save current DEVSTAT */ -+ udc_devstat = devstat; -+} -+ -+static void s3c2410_udc_ep0(void) -+{ -+ u_int8_t ep0csr; -+ -+ UDCDBG("-> Entering EP0 handler"); -+ -+ S3C2410_UDC_SETIX(EP0); -+ ep0csr = inb(S3C2410_UDC_IN_CSR1_REG); -+ -+ /* clear stall status */ -+ if (ep0csr & S3C2410_UDC_EP0_CSR_SENTSTL) { -+ clear_sp0_sst; -+ /* FIXME */ -+ ep0_idle(); -+ } -+ -+ if (ep0csr & S3C2410_UDC_EP0_CSR_SE -+ && dev->ep0state != EP0_IDLE) { -+ clear_ep0_se; -+ ep0_idle(); -+ } -+ -+ switch (dev->ep0state) { -+ case EP0_IDLE: -+ if (ep0crs & S3C2410_UDC_EP0_CSR_OPKRDY) { -+ } -+ break; -+ case EP0_IN_DATA_PHASE: -+ break; -+ case EP0_OUT_DATA_PHASE: -+ break; -+ case EP0_END_XFER: -+ break; -+ case EP0_STALL: -+ set_ep0_ss; -+ break; -+ } -+} -+ -+ -+} -+ -+/* Handle SETUP USB interrupt. -+ * This function implements TRM Figure 14-14. -+ */ -+static void omap1510_udc_setup (struct usb_endpoint_instance *endpoint) -+{ -+ UDCDBG ("-> Entering device setup"); -+ -+ do { -+ const int setup_pktsize = 8; -+ unsigned char *datap = -+ (unsigned char *) &ep0_urb->device_request; -+ -+ /* Gain access to EP 0 setup FIFO */ -+ outw (UDC_Setup_Sel, UDC_EP_NUM); -+ -+ /* Read control request data */ -+ insb (UDC_DATA, datap, setup_pktsize); -+ -+ UDCDBGA ("EP0 setup read [%x %x %x %x %x %x %x %x]", -+ *(datap + 0), *(datap + 1), *(datap + 2), -+ *(datap + 3), *(datap + 4), *(datap + 5), -+ *(datap + 6), *(datap + 7)); -+ -+ /* Reset EP0 setup FIFO */ -+ outw (0, UDC_EP_NUM); -+ } while (inw (UDC_IRQ_SRC) & UDC_Setup); -+ -+ /* Try to process setup packet */ -+ if (ep0_recv_setup (ep0_urb)) { -+ /* Not a setup packet, stall next EP0 transaction */ -+ udc_stall_ep (0); -+ UDCDBG ("can't parse setup packet, still waiting for setup"); -+ return; -+ } -+ -+ /* Check direction */ -+ if ((ep0_urb->device_request.bmRequestType & USB_REQ_DIRECTION_MASK) -+ == USB_REQ_HOST2DEVICE) { -+ UDCDBG ("control write on EP0"); -+ if (le16_to_cpu (ep0_urb->device_request.wLength)) { -+ /* We don't support control write data stages. -+ * The only standard control write request with a data -+ * stage is SET_DESCRIPTOR, and ep0_recv_setup doesn't -+ * support that so we just stall those requests. A -+ * function driver might support a non-standard -+ * write request with a data stage, but it isn't -+ * obvious what we would do with the data if we read it -+ * so we'll just stall it. It seems like the API isn't -+ * quite right here. -+ */ -+#if 0 -+ /* Here is what we would do if we did support control -+ * write data stages. -+ */ -+ ep0_urb->actual_length = 0; -+ outw (0, UDC_EP_NUM); -+ /* enable the EP0 rx FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+#else -+ /* Stall this request */ -+ UDCDBG ("Stalling unsupported EP0 control write data " -+ "stage."); -+ udc_stall_ep (0); -+#endif -+ } else { -+ omap1510_prepare_for_control_write_status (ep0_urb); -+ } -+ } else { -+ UDCDBG ("control read on EP0"); -+ /* The ep0_recv_setup function has already placed our response -+ * packet data in ep0_urb->buffer and the packet length in -+ * ep0_urb->actual_length. -+ */ -+ endpoint->tx_urb = ep0_urb; -+ endpoint->sent = 0; -+ /* select the EP0 tx FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ /* Write packet data to the FIFO. omap1510_write_noniso_tx_fifo -+ * will update endpoint->last with the number of bytes written -+ * to the FIFO. -+ */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable the FIFO to start the packet transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the EP0 tx FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+ -+ UDCDBG ("<- Leaving device setup"); -+} -+ -+/* Handle endpoint 0 RX interrupt -+ * This routine implements TRM Figure 14-16. -+ */ -+static void omap1510_udc_ep0_rx (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short status; -+ -+ UDCDBG ("RX on EP0"); -+ /* select EP0 rx FIFO */ -+ outw (UDC_EP_Sel, UDC_EP_NUM); -+ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ /* Check direction */ -+ if ((ep0_urb->device_request.bmRequestType -+ & USB_REQ_DIRECTION_MASK) == USB_REQ_HOST2DEVICE) { -+ /* This rx interrupt must be for a control write data -+ * stage packet. -+ * -+ * We don't support control write data stages. -+ * We should never end up here. -+ */ -+ -+ /* clear the EP0 rx FIFO */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ -+ /* deselect the EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ -+ UDCDBG ("Stalling unexpected EP0 control write " -+ "data stage packet"); -+ udc_stall_ep (0); -+ } else { -+ /* This rx interrupt must be for a control read status -+ * stage packet. -+ */ -+ UDCDBG ("ACK on EP0 control read status stage packet"); -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBG ("EP0 stall during RX"); -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } else { -+ /* deselect EP0 rx FIFO */ -+ outw (0, UDC_EP_NUM); -+ } -+} -+ -+/* Handle endpoint 0 TX interrupt -+ * This routine implements TRM Figure 14-18. -+ */ -+static void omap1510_udc_ep0_tx (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short status; -+ struct usb_device_request *request = &ep0_urb->device_request; -+ -+ UDCDBG ("TX on EP0"); -+ /* select EP0 TX FIFO */ -+ outw (UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ -+ status = inw (UDC_STAT_FLG); -+ if (status & UDC_ACK) { -+ /* Check direction */ -+ if ((request->bmRequestType & USB_REQ_DIRECTION_MASK) == -+ USB_REQ_HOST2DEVICE) { -+ /* This tx interrupt must be for a control write status -+ * stage packet. -+ */ -+ UDCDBG ("ACK on EP0 control write status stage packet"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } else { -+ /* This tx interrupt must be for a control read data -+ * stage packet. -+ */ -+ int wLength = le16_to_cpu (request->wLength); -+ -+ /* Update our count of bytes sent so far in this -+ * transfer. -+ */ -+ endpoint->sent += endpoint->last; -+ -+ /* We are finished with this transfer if we have sent -+ * all of the bytes in our tx urb (urb->actual_length) -+ * unless we need a zero-length terminating packet. We -+ * need a zero-length terminating packet if we returned -+ * fewer bytes than were requested (wLength) by the host, -+ * and the number of bytes we returned is an exact -+ * multiple of the packet size endpoint->tx_packetSize. -+ */ -+ if ((endpoint->sent == ep0_urb->actual_length) -+ && ((ep0_urb->actual_length == wLength) -+ || (endpoint->last != -+ endpoint->tx_packetSize))) { -+ /* Done with control read data stage. */ -+ UDCDBG ("control read data stage complete"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ /* select EP0 RX FIFO to prepare for control -+ * read status stage. -+ */ -+ outw (UDC_EP_Sel, UDC_EP_NUM); -+ /* clear the EP0 RX FIFO */ -+ outw (UDC_Clr_EP, UDC_CTRL); -+ /* enable the EP0 RX FIFO */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the EP0 RX FIFO */ -+ outw (0, UDC_EP_NUM); -+ } else { -+ /* We still have another packet of data to send -+ * in this control read data stage or else we -+ * need a zero-length terminating packet. -+ */ -+ UDCDBG ("ACK control read data stage packet"); -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable the EP0 tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBG ("EP0 stall during TX"); -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } else { -+ /* deselect EP0 TX FIFO */ -+ outw (UDC_EP_Dir, UDC_EP_NUM); -+ } -+} -+ -+/* Handle RX transaction on non-ISO endpoint. -+ * This function implements TRM Figure 14-27. -+ * The ep argument is a physical endpoint number for a non-ISO OUT endpoint -+ * in the range 1 to 15. -+ */ -+static void omap1510_udc_epn_rx (int ep) -+{ -+ unsigned short status; -+ -+ /* Check endpoint status */ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ int nbytes; -+ struct usb_endpoint_instance *endpoint = -+ omap1510_find_ep (ep); -+ -+ nbytes = omap1510_read_noniso_rx_fifo (endpoint); -+ usbd_rcv_complete (endpoint, nbytes, 0); -+ -+ /* enable rx FIFO to prepare for next packet */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } else if (status & UDC_STALL) { -+ UDCDBGA ("STALL on RX endpoint %d", ep); -+ } else if (status & UDC_NAK) { -+ UDCDBGA ("NAK on RX ep %d", ep); -+ } else { -+ serial_printf ("omap-bi: RX on ep %d with status %x", ep, -+ status); -+ } -+} -+ -+/* Handle TX transaction on non-ISO endpoint. -+ * This function implements TRM Figure 14-29. -+ * The ep argument is a physical endpoint number for a non-ISO IN endpoint -+ * in the range 16 to 30. -+ */ -+static void omap1510_udc_epn_tx (int ep) -+{ -+ unsigned short status; -+ -+ /*serial_printf("omap1510_udc_epn_tx( %x )\n",ep); */ -+ -+ /* Check endpoint status */ -+ status = inw (UDC_STAT_FLG); -+ -+ if (status & UDC_ACK) { -+ struct usb_endpoint_instance *endpoint = -+ omap1510_find_ep (ep); -+ -+ /* We need to transmit a terminating zero-length packet now if -+ * we have sent all of the data in this URB and the transfer -+ * size was an exact multiple of the packet size. -+ */ -+ if (endpoint->tx_urb -+ && (endpoint->last == endpoint->tx_packetSize) -+ && (endpoint->tx_urb->actual_length - endpoint->sent - -+ endpoint->last == 0)) { -+ /* Prepare to transmit a zero-length packet. */ -+ endpoint->sent += endpoint->last; -+ /* write 0 bytes of data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } else if (endpoint->tx_urb -+ && endpoint->tx_urb->actual_length) { -+ /* retire the data that was just sent */ -+ usbd_tx_complete (endpoint); -+ /* Check to see if we have more data ready to transmit -+ * now. -+ */ -+ if (endpoint->tx_urb -+ && endpoint->tx_urb->actual_length) { -+ /* write data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ } -+ } -+ } else if (status & UDC_STALL) { -+ UDCDBGA ("STALL on TX endpoint %d", ep); -+ } else if (status & UDC_NAK) { -+ UDCDBGA ("NAK on TX endpoint %d", ep); -+ } else { -+ /*serial_printf("omap-bi: TX on ep %d with status %x\n", ep, status); */ -+ } -+} -+ -+ -+/* -+------------------------------------------------------------------------------- -+*/ -+ -+/* Handle general USB interrupts and dispatch according to type. -+ * This function implements TRM Figure 14-13. -+ */ -+void s3c2410_udc_irq (void) -+{ -+ u_int8_t save_idx = inb(S3C2410_UDC_INDEX_REG); -+ u_int8_t usb_status = inb(S3C2410_UDC_USB_INT_REG); -+ u_int8_t usbd_status = inb(S3C2410_UDC_EP_INT_REG); -+ -+ UDCDBGA("< IRQ usbs=0x%02x, usbds=0x%02x start >", usb_status, -+ usbd_status); -+ -+ if (usb_status & S3C2410_UDC_USBINT_RESET) { -+ valid_irq++; -+ } -+ -+ if (usb_status & S3C2410_UDC_USBINT_RESUME) { -+ valid_irq++; -+ -+ } -+ -+ if (usb_status & S3C2410_UDC_USBINT_SUSPEND) { -+ valid_irq++; -+ -+ } -+ -+ /* Endpoint Interrupts */ -+ if (usbd_status) { -+ int i; -+ -+ if (usbd_status & S3C2410_UDC_INT_EP0) { -+ s3c2410_udc_ep0(); -+ outb(S3C2410_UDC_INT_EP0, S3C2410_UDC_EP_INT_REG); -+ valid_irq++; -+ } -+ -+ for (i = 1; i < 5; i++) { -+ u_int32_t tmp = 1 << i; -+ -+ if (usbd_status & tmp) { -+ /* FIXME: Handle EP X */ -+ s3c2410_udc_epn(i); -+ outb(tmp, S3C2410_UDC_EP_INT_REG); -+ valid_irq++; -+ } -+ } -+ } -+ outb(save_idx, S3C2410_UDC_INDEX_REG); -+ -+#if 0 -+ if (!(irq_src & ~UDC_SOF_Flg)) /* ignore SOF interrupts ) */ -+ return; -+ -+ UDCDBGA ("< IRQ #%d start >- %x", udc_interrupts, irq_src); -+ /*serial_printf("< IRQ #%d start >- %x\n", udc_interrupts, irq_src); */ -+ -+ if (irq_src & UDC_DS_Chg) { -+ /* Device status changed */ -+ omap1510_udc_state_changed (); -+ valid_irq++; -+ } -+ if (irq_src & UDC_EP0_RX) { -+ /* Endpoint 0 receive */ -+ outw (UDC_EP0_RX, UDC_IRQ_SRC); /* ack interrupt */ -+ omap1510_udc_ep0_rx (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ if (irq_src & UDC_EP0_TX) { -+ /* Endpoint 0 transmit */ -+ outw (UDC_EP0_TX, UDC_IRQ_SRC); /* ack interrupt */ -+ omap1510_udc_ep0_tx (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ if (irq_src & UDC_Setup) { -+ /* Device setup */ -+ omap1510_udc_setup (udc_device->bus->endpoint_array + 0); -+ valid_irq++; -+ } -+ /*if (!valid_irq) */ -+ /* serial_printf("unknown interrupt, IRQ_SRC %.4x\n", irq_src); */ -+#endif -+ UDCDBGA ("< IRQ end >", udc_interrupts); -+ -+ udc_interrupts++; -+} -+ -+/* This function implements TRM Figure 14-26. */ -+void omap1510_udc_noniso_irq (void) -+{ -+ unsigned short epnum; -+ unsigned short irq_src = inw (UDC_IRQ_SRC); -+ int valid_irq = 0; -+ -+ if (!(irq_src & (UDC_EPn_RX | UDC_EPn_TX))) -+ return; -+ -+ UDCDBGA ("non-ISO IRQ, IRQ_SRC %x", inw (UDC_IRQ_SRC)); -+ -+ if (irq_src & UDC_EPn_RX) { /* Endpoint N OUT transaction */ -+ /* Determine the endpoint number for this interrupt */ -+ epnum = (inw (UDC_EPN_STAT) & 0x0f00) >> 8; -+ UDCDBGA ("RX on ep %x", epnum); -+ -+ /* acknowledge interrupt */ -+ outw (UDC_EPn_RX, UDC_IRQ_SRC); -+ -+ if (epnum) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | epnum, UDC_EP_NUM); -+ -+ omap1510_udc_epn_rx (epnum); -+ -+ /* deselect the endpoint FIFO */ -+ outw (epnum, UDC_EP_NUM); -+ } -+ valid_irq++; -+ } -+ if (irq_src & UDC_EPn_TX) { /* Endpoint N IN transaction */ -+ /* Determine the endpoint number for this interrupt */ -+ epnum = (inw (UDC_EPN_STAT) & 0x000f) | USB_DIR_IN; -+ UDCDBGA ("TX on ep %x", epnum); -+ -+ /* acknowledge interrupt */ -+ outw (UDC_EPn_TX, UDC_IRQ_SRC); -+ -+ if (epnum) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); -+ -+ omap1510_udc_epn_tx (epnum); -+ -+ /* deselect the endpoint FIFO */ -+ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); -+ } -+ valid_irq++; -+ } -+ if (!valid_irq) -+ serial_printf (": unknown non-ISO interrupt, IRQ_SRC %.4x\n", -+ irq_src); -+} -+ -+/* -+------------------------------------------------------------------------------- -+*/ -+ -+ -+/* -+ * Start of public functions. -+ */ -+ -+/* Called to start packet transmission. */ -+void udc_endpoint_write (struct usb_endpoint_instance *endpoint) -+{ -+ unsigned short epnum = -+ endpoint->endpoint_address & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("Starting transmit on ep %x", epnum); -+ -+ if (endpoint->tx_urb) { -+ /* select the endpoint FIFO */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | epnum, UDC_EP_NUM); -+ /* write data to FIFO */ -+ omap1510_write_noniso_tx_fifo (endpoint); -+ /* enable tx FIFO to start transmission */ -+ outw (UDC_Set_FIFO_En, UDC_CTRL); -+ /* deselect the endpoint FIFO */ -+ outw (UDC_EP_Dir | epnum, UDC_EP_NUM); -+ } -+} -+ -+/* Start to initialize h/w stuff */ -+int udc_init (void) -+{ -+ u16 udc_rev; -+ uchar value; -+ ulong gpio; -+ int i; -+ -+ /* Let the device settle down before we start */ -+ for (i = 0; i < UDC_INIT_MDELAY; i++) udelay(1000); -+ -+ udc_device = NULL; -+ -+ UDCDBG ("starting"); -+ -+ /* Check peripheral reset. Must be 1 to make sure -+ MPU TIPB peripheral reset is inactive */ -+ UDCREG (ARM_RSTCT2); -+ -+ /* Set and check clock control. -+ * We might ought to be using the clock control API to do -+ * this instead of fiddling with the clock registers directly -+ * here. -+ */ -+ outw ((1 << 4) | (1 << 5), CLOCK_CTRL); -+ UDCREG (CLOCK_CTRL); -+ /* Set and check APLL */ -+ outw (0x0008, APLL_CTRL); -+ UDCREG (APLL_CTRL); -+ /* Set and check DPLL */ -+ outw (0x2210, DPLL_CTRL); -+ UDCREG (DPLL_CTRL); -+ /* Set and check SOFT */ -+ outw ((1 << 4) | (1 << 3) | 1, SOFT_REQ); -+ /* Short delay to wait for DPLL */ -+ udelay (1000); -+ -+ /* Print banner with device revision */ -+ udc_rev = inw (UDC_REV) & 0xff; -+ printf ("USB: TI OMAP1510 USB function module rev %d.%d\n", -+ udc_rev >> 4, udc_rev & 0xf); -+ -+#ifdef CONFIG_OMAP_SX1 -+ i2c_read (0x32, 0x04, 1, &value, 1); -+ value |= 0x04; -+ i2c_write (0x32, 0x04, 1, &value, 1); -+ -+ i2c_read (0x32, 0x03, 1, &value, 1); -+ value |= 0x01; -+ i2c_write (0x32, 0x03, 1, &value, 1); -+ -+ gpio = inl(GPIO_PIN_CONTROL_REG); -+ gpio |= 0x0002; /* A_IRDA_OFF */ -+ gpio |= 0x0800; /* A_SWITCH */ -+ gpio |= 0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_PIN_CONTROL_REG); -+ -+ gpio = inl(GPIO_DIR_CONTROL_REG); -+ gpio &= ~0x0002; /* A_IRDA_OFF */ -+ gpio &= ~0x0800; /* A_SWITCH */ -+ gpio &= ~0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_DIR_CONTROL_REG); -+ -+ gpio = inl(GPIO_DATA_OUTPUT_REG); -+ gpio |= 0x0002; /* A_IRDA_OFF */ -+ gpio &= ~0x0800; /* A_SWITCH */ -+ gpio &= ~0x8000; /* A_USB_ON */ -+ outl (gpio, GPIO_DATA_OUTPUT_REG); -+#endif -+ -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); -+ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+ -+ /* -+ * At this point, device is ready for configuration... -+ */ -+ -+ UDCDBG ("disable USB interrupts"); -+ outw (0, UDC_IRQ_EN); -+ UDCREG (UDC_IRQ_EN); -+ -+ UDCDBG ("disable USB DMA"); -+ outw (0, UDC_DMA_IRQ_EN); -+ UDCREG (UDC_DMA_IRQ_EN); -+ -+ UDCDBG ("initialize SYSCON1"); -+ outw (UDC_Self_Pwr | UDC_Pullup_En, UDC_SYSCON1); -+ UDCREG (UDC_SYSCON1); -+ -+ return 0; -+} -+ -+/* Stall endpoint */ -+static void udc_stall_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("stall ep_addr %d", ep_addr); -+ -+ /* REVISIT? -+ * The OMAP TRM section 14.2.4.2 says we must check that the FIFO -+ * is empty before halting the endpoint. The current implementation -+ * doesn't check that the FIFO is empty. -+ */ -+ -+ if (!ep_num) { -+ outw (UDC_Stall_Cmd, UDC_SYSCON2); -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { -+ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { -+ /* we have a valid rx endpoint, so halt it */ -+ outw (UDC_EP_Sel | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_Halt, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ } -+ } else { -+ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { -+ /* we have a valid tx endpoint, so halt it */ -+ outw (UDC_EP_Sel | UDC_EP_Dir | ep_num, UDC_EP_NUM); -+ outw (UDC_Set_Halt, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ } -+ } -+} -+ -+/* Reset endpoint */ -+#if 0 -+static void udc_reset_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ -+ UDCDBGA ("reset ep_addr %d", ep_addr); -+ -+ if (!ep_num) { -+ /* control endpoint 0 can't be reset */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { -+ UDCDBGA ("UDC_EP_RX(%d) = 0x%04x", ep_num, -+ inw (UDC_EP_RX (ep_num))); -+ if (inw (UDC_EP_RX (ep_num)) & UDC_EPn_RX_Valid) { -+ /* we have a valid rx endpoint, so reset it */ -+ outw (ep_num | UDC_EP_Sel, UDC_EP_NUM); -+ outw (UDC_Reset_EP, UDC_CTRL); -+ outw (ep_num, UDC_EP_NUM); -+ UDCDBGA ("OUT endpoint %d reset", ep_num); -+ } -+ } else { -+ UDCDBGA ("UDC_EP_TX(%d) = 0x%04x", ep_num, -+ inw (UDC_EP_TX (ep_num))); -+ /* Resetting of tx endpoints seems to be causing the USB function -+ * module to fail, which causes problems when the driver is -+ * uninstalled. We'll skip resetting tx endpoints for now until -+ * we figure out what the problem is. -+ */ -+#if 0 -+ if (inw (UDC_EP_TX (ep_num)) & UDC_EPn_TX_Valid) { -+ /* we have a valid tx endpoint, so reset it */ -+ outw (ep_num | UDC_EP_Dir | UDC_EP_Sel, UDC_EP_NUM); -+ outw (UDC_Reset_EP, UDC_CTRL); -+ outw (ep_num | UDC_EP_Dir, UDC_EP_NUM); -+ UDCDBGA ("IN endpoint %d reset", ep_num); -+ } -+#endif -+ } -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_check_ep - check logical endpoint -+ * -+ * Return physical endpoint number to use for this logical endpoint or zero if not valid. -+ */ -+#if 0 -+int udc_check_ep (int logical_endpoint, int packetsize) -+{ -+ if ((logical_endpoint == 0x80) || -+ ((logical_endpoint & 0x8f) != logical_endpoint)) { -+ return 0; -+ } -+ -+ switch (packetsize) { -+ case 8: -+ case 16: -+ case 32: -+ case 64: -+ case 128: -+ case 256: -+ case 512: -+ break; -+ default: -+ return 0; -+ } -+ -+ return EP_ADDR_TO_PHYS_EP (logical_endpoint); -+} -+#endif -+ -+/* -+ * udc_setup_ep - setup endpoint -+ * -+ * Associate a physical endpoint with endpoint_instance -+ */ -+void udc_setup_ep (struct usb_device_instance *device, -+ unsigned int ep, struct usb_endpoint_instance *endpoint) -+{ -+ UDCDBGA ("setting up endpoint addr %x", endpoint->endpoint_address); -+ -+ /* This routine gets called by bi_modinit for endpoint 0 and from -+ * bi_config for all of the other endpoints. bi_config gets called -+ * during the DEVICE_CREATE, DEVICE_CONFIGURED, and -+ * DEVICE_SET_INTERFACE events. We need to reconfigure the OMAP packet -+ * RAM after bi_config scans the selected device configuration and -+ * initializes the endpoint structures, but before this routine enables -+ * the OUT endpoint FIFOs. Since bi_config calls this routine in a -+ * loop for endpoints 1 through UDC_MAX_ENDPOINTS, we reconfigure our -+ * packet RAM here when ep==1. -+ * I really hate to do this here, but it seems like the API exported -+ * by the USB bus interface controller driver to the usbd-bi module -+ * isn't quite right so there is no good place to do this. -+ */ -+ if (ep == 1) { -+ omap1510_deconfigure_device (); -+ omap1510_configure_device (device); -+ } -+ -+ if (endpoint && (ep < UDC_MAX_ENDPOINTS)) { -+ int ep_addr = endpoint->endpoint_address; -+ -+ if (!ep_addr) { -+ /* nothing to do for endpoint 0 */ -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ /* nothing to do for IN (tx) endpoints */ -+ } else { /* OUT (rx) endpoint */ -+ if (endpoint->rcv_packetSize) { -+ /*struct urb* urb = &(urb_out_array[ep&0xFF]); */ -+ /*urb->endpoint = endpoint; */ -+ /*urb->device = device; */ -+ /*urb->buffer_length = sizeof(urb->buffer); */ -+ -+ /*endpoint->rcv_urb = urb; */ -+ omap1510_prepare_endpoint_for_rx (ep_addr); -+ } -+ } -+ } -+} -+ -+/** -+ * udc_disable_ep - disable endpoint -+ * @ep: -+ * -+ * Disable specified endpoint -+ */ -+#if 0 -+void udc_disable_ep (unsigned int ep_addr) -+{ -+ /*int ep_addr = PHYS_EP_TO_EP_ADDR(ep); */ -+ int ep_num = ep_addr & USB_ENDPOINT_NUMBER_MASK; -+ struct usb_endpoint_instance *endpoint = omap1510_find_ep (ep_addr); /*udc_device->bus->endpoint_array + ep; */ -+ -+ UDCDBGA ("disable ep_addr %d", ep_addr); -+ -+ if (!ep_num) { -+ /* nothing to do for endpoint 0 */ ; -+ } else if ((ep_addr & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN) { -+ if (endpoint->tx_packetSize) { -+ /* we have a valid tx endpoint */ -+ /*usbd_flush_tx(endpoint); */ -+ endpoint->tx_urb = NULL; -+ } -+ } else { -+ if (endpoint->rcv_packetSize) { -+ /* we have a valid rx endpoint */ -+ /*usbd_flush_rcv(endpoint); */ -+ endpoint->rcv_urb = NULL; -+ } -+ } -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_connected - is the USB cable connected -+ * -+ * Return non-zero if cable is connected. -+ */ -+#if 0 -+int udc_connected (void) -+{ -+ return ((inw (UDC_DEVSTAT) & UDC_ATT) == UDC_ATT); -+} -+#endif -+ -+/* Turn on the USB connection by enabling the pullup resistor */ -+void udc_connect (void) -+{ -+ UDCDBG ("connect, enable Pullup"); -+} -+ -+/* Turn off the USB connection by disabling the pullup resistor */ -+void udc_disconnect (void) -+{ -+ UDCDBG ("disconnect, disable Pullup"); -+} -+ -+/* ************************************************************************** */ -+ -+ -+/* -+ * udc_disable_interrupts - disable interrupts -+ * switch off interrupts -+ */ -+#if 0 -+void udc_disable_interrupts (struct usb_device_instance *device) -+{ -+ UDCDBG ("disabling all interrupts"); -+ outw (0, UDC_IRQ_EN); -+} -+#endif -+ -+/* ************************************************************************** */ -+ -+/** -+ * udc_ep0_packetsize - return ep0 packetsize -+ */ -+#if 0 -+int udc_ep0_packetsize (void) -+{ -+ return EP0_PACKETSIZE; -+} -+#endif -+ -+/* Switch on the UDC */ -+void udc_enable (struct usb_device_instance *device) -+{ -+ UDCDBGA ("enable device %p, status %d", device, device->status); -+ -+ /* initialize driver state variables */ -+ udc_devstat = 0; -+ -+ /* Save the device structure pointer */ -+ udc_device = device; -+ -+ /* Setup ep0 urb */ -+ if (!ep0_urb) { -+ ep0_urb = -+ usbd_alloc_urb (udc_device, -+ udc_device->bus->endpoint_array); -+ } else { -+ serial_printf ("udc_enable: ep0_urb already allocated %p\n", -+ ep0_urb); -+ } -+ -+#ifdef FIXME -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_CTRL | UDC_VBUS_MODE, -+ FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+#endif -+ -+ s3c2410_configure_device(device); -+} -+ -+/* Switch off the UDC */ -+void udc_disable (void) -+{ -+ UDCDBG ("disable UDC"); -+ -+ s3c2410_deconfigure_device(); -+ -+#ifdef FIXME -+ /* The VBUS_MODE bit selects whether VBUS detection is done via -+ * software (1) or hardware (0). When software detection is -+ * selected, VBUS_CTRL selects whether USB is not connected (0) -+ * or connected (1). -+ */ -+ outl (inl (FUNC_MUX_CTRL_0) | UDC_VBUS_MODE, FUNC_MUX_CTRL_0); -+ outl (inl (FUNC_MUX_CTRL_0) & ~UDC_VBUS_CTRL, FUNC_MUX_CTRL_0); -+ UDCREGL (FUNC_MUX_CTRL_0); -+#endif -+ -+ /* Free ep0 URB */ -+ if (ep0_urb) { -+ /*usbd_dealloc_urb(ep0_urb); */ -+ ep0_urb = NULL; -+ } -+ -+ /* Reset device pointer. -+ * We ought to do this here to balance the initialization of udc_device -+ * in udc_enable, but some of our other exported functions get called -+ * by the bus interface driver after udc_disable, so we have to hang on -+ * to the device pointer to avoid a null pointer dereference. */ -+ /* udc_device = NULL; */ -+} -+ -+/** -+ * udc_startup - allow udc code to do any additional startup -+ */ -+void udc_startup_events (struct usb_device_instance *device) -+{ -+ /* The DEVICE_INIT event puts the USB device in the state STATE_INIT. */ -+ usbd_device_event_irq (device, DEVICE_INIT, 0); -+ -+ /* The DEVICE_CREATE event puts the USB device in the state -+ * STATE_ATTACHED. -+ */ -+ usbd_device_event_irq (device, DEVICE_CREATE, 0); -+ -+ /* Some USB controller driver implementations signal -+ * DEVICE_HUB_CONFIGURED and DEVICE_RESET events here. -+ * DEVICE_HUB_CONFIGURED causes a transition to the state STATE_POWERED, -+ * and DEVICE_RESET causes a transition to the state STATE_DEFAULT. -+ * The OMAP USB client controller has the capability to detect when the -+ * USB cable is connected to a powered USB bus via the ATT bit in the -+ * DEVSTAT register, so we will defer the DEVICE_HUB_CONFIGURED and -+ * DEVICE_RESET events until later. -+ */ -+ -+ udc_enable (device); -+} -+ -+#endif -Index: git/fs/cramfs/cramfs.c -=================================================================== ---- git.orig/fs/cramfs/cramfs.c 2007-01-04 12:21:15.000000000 +0100 -+++ git/fs/cramfs/cramfs.c 2007-01-04 12:21:18.000000000 +0100 -@@ -27,7 +27,7 @@ - #include <common.h> - #include <malloc.h> - --#if (CONFIG_COMMANDS & CFG_CMD_JFFS2) -+#if (CONFIG_COMMANDS & CFG_CMD_CRAMFS) - - #include <asm/byteorder.h> - #include <linux/stat.h> -@@ -343,5 +343,22 @@ - } - return 1; - } -- -+#else -+int cramfs_load (char *loadoffset, struct part_info *info, char *filename) -+{ -+ return -1; -+} -+int cramfs_ls (struct part_info *info, char *filename) -+{ -+ return 0; -+} -+int cramfs_info (struct part_info *info) -+{ -+ return 0; -+} -+int cramfs_check (struct part_info *info) -+{ -+ return 0; -+} - #endif /* CFG_FS_CRAMFS */ -+ -Index: git/include/asm-arm/arch-s3c24x0/mmc.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/include/asm-arm/arch-s3c24x0/mmc.h 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,112 @@ -+/* -+ * linux/drivers/mmc/mmc_pxa.h -+ * -+ * Author: Vladimir Shebordaev, Igor Oblakov -+ * Copyright: MontaVista Software Inc. -+ * -+ * $Id: mmc_pxa.h,v 0.3.1.6 2002/09/25 19:25:48 ted Exp ted $ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#ifndef __MMC_PXA_P_H__ -+#define __MMC_PXA_P_H__ -+ -+#include <asm/arch/regs-sdi.h> -+ -+#define MMC_DEFAULT_RCA (1<<16) -+ -+#define MMC_BLOCK_SIZE 512 -+#define MMC_CMD_RESET 0 -+#define MMC_CMD_SEND_OP_COND 1 -+#define MMC_CMD_ALL_SEND_CID 2 -+#define MMC_CMD_SET_RCA 3 -+#define MMC_CMD_SELECT_CARD 7 -+#define MMC_CMD_SEND_CSD 9 -+#define MMC_CMD_SEND_CID 10 -+#define MMC_CMD_SEND_STATUS 13 -+#define MMC_CMD_SET_BLOCKLEN 16 -+#define MMC_CMD_READ_BLOCK 17 -+#define MMC_CMD_RD_BLK_MULTI 18 -+#define MMC_CMD_WRITE_BLOCK 24 -+ -+#define MMC_MAX_BLOCK_SIZE 512 -+ -+#define MMC_R1_IDLE_STATE 0x01 -+#define MMC_R1_ERASE_STATE 0x02 -+#define MMC_R1_ILLEGAL_CMD 0x04 -+#define MMC_R1_COM_CRC_ERR 0x08 -+#define MMC_R1_ERASE_SEQ_ERR 0x01 -+#define MMC_R1_ADDR_ERR 0x02 -+#define MMC_R1_PARAM_ERR 0x04 -+ -+#define MMC_R1B_WP_ERASE_SKIP 0x0002 -+#define MMC_R1B_ERR 0x0004 -+#define MMC_R1B_CC_ERR 0x0008 -+#define MMC_R1B_CARD_ECC_ERR 0x0010 -+#define MMC_R1B_WP_VIOLATION 0x0020 -+#define MMC_R1B_ERASE_PARAM 0x0040 -+#define MMC_R1B_OOR 0x0080 -+#define MMC_R1B_IDLE_STATE 0x0100 -+#define MMC_R1B_ERASE_RESET 0x0200 -+#define MMC_R1B_ILLEGAL_CMD 0x0400 -+#define MMC_R1B_COM_CRC_ERR 0x0800 -+#define MMC_R1B_ERASE_SEQ_ERR 0x1000 -+#define MMC_R1B_ADDR_ERR 0x2000 -+#define MMC_R1B_PARAM_ERR 0x4000 -+ -+typedef struct mmc_cid -+{ -+/* FIXME: BYTE_ORDER */ -+ uchar year:4, -+ month:4; -+ uchar sn[3]; -+ uchar fwrev:4, -+ hwrev:4; -+ uchar name[6]; -+ uchar id[3]; -+} mmc_cid_t; -+ -+typedef struct mmc_csd -+{ -+ uchar ecc:2, -+ file_format:2, -+ tmp_write_protect:1, -+ perm_write_protect:1, -+ copy:1, -+ file_format_grp:1; -+ uint64_t content_prot_app:1, -+ rsvd3:4, -+ write_bl_partial:1, -+ write_bl_len:4, -+ r2w_factor:3, -+ default_ecc:2, -+ wp_grp_enable:1, -+ wp_grp_size:5, -+ erase_grp_mult:5, -+ erase_grp_size:5, -+ c_size_mult1:3, -+ vdd_w_curr_max:3, -+ vdd_w_curr_min:3, -+ vdd_r_curr_max:3, -+ vdd_r_curr_min:3, -+ c_size:12, -+ rsvd2:2, -+ dsr_imp:1, -+ read_blk_misalign:1, -+ write_blk_misalign:1, -+ read_bl_partial:1; -+ -+ ushort read_bl_len:4, -+ ccc:12; -+ uchar tran_speed; -+ uchar nsac; -+ uchar taac; -+ uchar rsvd1:2, -+ spec_vers:4, -+ csd_structure:2; -+} mmc_csd_t; -+ -+ -+#endif /* __MMC_PXA_P_H__ */ -Index: git/include/asm-arm/arch-s3c24x0/regs-sdi.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/include/asm-arm/arch-s3c24x0/regs-sdi.h 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,110 @@ -+/* linux/include/asm/arch-s3c2410/regs-sdi.h -+ * -+ * Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk> -+ * http://www.simtec.co.uk/products/SWLINUX/ -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ * -+ * S3C2410 MMC/SDIO register definitions -+ * -+ * Changelog: -+ * 18-Aug-2004 Ben Dooks Created initial file -+ * 29-Nov-2004 Koen Martens Added some missing defines, fixed duplicates -+ * 29-Nov-2004 Ben Dooks Updated Koen's patch -+*/ -+ -+#ifndef __ASM_ARM_REGS_SDI -+#define __ASM_ARM_REGS_SDI "regs-sdi.h" -+ -+#define S3C2440_SDICON_SDRESET (1<<8) -+#define S3C2440_SDICON_MMCCLOCK (1<<5) -+#define S3C2410_SDICON_BYTEORDER (1<<4) -+#define S3C2410_SDICON_SDIOIRQ (1<<3) -+#define S3C2410_SDICON_RWAITEN (1<<2) -+#define S3C2410_SDICON_FIFORESET (1<<1) -+#define S3C2410_SDICON_CLOCKTYPE (1<<0) -+ -+#define S3C2410_SDICMDCON_ABORT (1<<12) -+#define S3C2410_SDICMDCON_WITHDATA (1<<11) -+#define S3C2410_SDICMDCON_LONGRSP (1<<10) -+#define S3C2410_SDICMDCON_WAITRSP (1<<9) -+#define S3C2410_SDICMDCON_CMDSTART (1<<8) -+#define S3C2410_SDICMDCON_SENDERHOST (1<<6) -+#define S3C2410_SDICMDCON_INDEX (0x3f) -+ -+#define S3C2410_SDICMDSTAT_CRCFAIL (1<<12) -+#define S3C2410_SDICMDSTAT_CMDSENT (1<<11) -+#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10) -+#define S3C2410_SDICMDSTAT_RSPFIN (1<<9) -+#define S3C2410_SDICMDSTAT_XFERING (1<<8) -+#define S3C2410_SDICMDSTAT_INDEX (0xff) -+ -+#define S3C2440_SDIDCON_DS_BYTE (0<<22) -+#define S3C2440_SDIDCON_DS_HALFWORD (1<<22) -+#define S3C2440_SDIDCON_DS_WORD (2<<22) -+#define S3C2410_SDIDCON_IRQPERIOD (1<<21) -+#define S3C2410_SDIDCON_TXAFTERRESP (1<<20) -+#define S3C2410_SDIDCON_RXAFTERCMD (1<<19) -+#define S3C2410_SDIDCON_BUSYAFTERCMD (1<<18) -+#define S3C2410_SDIDCON_BLOCKMODE (1<<17) -+#define S3C2410_SDIDCON_WIDEBUS (1<<16) -+#define S3C2410_SDIDCON_DMAEN (1<<15) -+#define S3C2410_SDIDCON_STOP (1<<14) -+#define S3C2440_SDIDCON_DATSTART (1<<14) -+#define S3C2410_SDIDCON_DATMODE (3<<12) -+#define S3C2410_SDIDCON_BLKNUM (0x7ff) -+ -+/* constants for S3C2410_SDIDCON_DATMODE */ -+#define S3C2410_SDIDCON_XFER_READY (0<<12) -+#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12) -+#define S3C2410_SDIDCON_XFER_RXSTART (2<<12) -+#define S3C2410_SDIDCON_XFER_TXSTART (3<<12) -+ -+#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF) -+#define S3C2410_SDIDCNT_BLKNUM_SHIFT (12) -+ -+#define S3C2410_SDIDSTA_RDYWAITREQ (1<<10) -+#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9) -+#define S3C2410_SDIDSTA_FIFOFAIL (1<<8) /* reserved on 2440 */ -+#define S3C2410_SDIDSTA_CRCFAIL (1<<7) -+#define S3C2410_SDIDSTA_RXCRCFAIL (1<<6) -+#define S3C2410_SDIDSTA_DATATIMEOUT (1<<5) -+#define S3C2410_SDIDSTA_XFERFINISH (1<<4) -+#define S3C2410_SDIDSTA_BUSYFINISH (1<<3) -+#define S3C2410_SDIDSTA_SBITERR (1<<2) /* reserved on 2410a/2440 */ -+#define S3C2410_SDIDSTA_TXDATAON (1<<1) -+#define S3C2410_SDIDSTA_RXDATAON (1<<0) -+ -+#define S3C2440_SDIFSTA_FIFORESET (1<<16) -+#define S3C2440_SDIFSTA_FIFOFAIL (3<<14) /* 3 is correct (2 bits) */ -+#define S3C2410_SDIFSTA_TFDET (1<<13) -+#define S3C2410_SDIFSTA_RFDET (1<<12) -+#define S3C2410_SDIFSTA_TFHALF (1<<11) -+#define S3C2410_SDIFSTA_TFEMPTY (1<<10) -+#define S3C2410_SDIFSTA_RFLAST (1<<9) -+#define S3C2410_SDIFSTA_RFFULL (1<<8) -+#define S3C2410_SDIFSTA_RFHALF (1<<7) -+#define S3C2410_SDIFSTA_COUNTMASK (0x7f) -+ -+#define S3C2410_SDIIMSK_RESPONSECRC (1<<17) -+#define S3C2410_SDIIMSK_CMDSENT (1<<16) -+#define S3C2410_SDIIMSK_CMDTIMEOUT (1<<15) -+#define S3C2410_SDIIMSK_RESPONSEND (1<<14) -+#define S3C2410_SDIIMSK_READWAIT (1<<13) -+#define S3C2410_SDIIMSK_SDIOIRQ (1<<12) -+#define S3C2410_SDIIMSK_FIFOFAIL (1<<11) -+#define S3C2410_SDIIMSK_CRCSTATUS (1<<10) -+#define S3C2410_SDIIMSK_DATACRC (1<<9) -+#define S3C2410_SDIIMSK_DATATIMEOUT (1<<8) -+#define S3C2410_SDIIMSK_DATAFINISH (1<<7) -+#define S3C2410_SDIIMSK_BUSYFINISH (1<<6) -+#define S3C2410_SDIIMSK_SBITERR (1<<5) /* reserved 2440/2410a */ -+#define S3C2410_SDIIMSK_TXFIFOHALF (1<<4) -+#define S3C2410_SDIIMSK_TXFIFOEMPTY (1<<3) -+#define S3C2410_SDIIMSK_RXFIFOLAST (1<<2) -+#define S3C2410_SDIIMSK_RXFIFOFULL (1<<1) -+#define S3C2410_SDIIMSK_RXFIFOHALF (1<<0) -+ -+#endif /* __ASM_ARM_REGS_SDI */ -Index: git/include/asm-arm/mach-types.h -=================================================================== ---- git.orig/include/asm-arm/mach-types.h 2007-01-04 12:21:15.000000000 +0100 -+++ git/include/asm-arm/mach-types.h 2007-01-04 12:21:18.000000000 +0100 -@@ -424,7 +424,7 @@ - #define MACH_TYPE_MPORT3S 411 - #define MACH_TYPE_RA_ALPHA 412 - #define MACH_TYPE_XCEP 413 --#define MACH_TYPE_ARCOM_MERCURY 414 -+#define MACH_TYPE_ARCOM_VULCAN 414 - #define MACH_TYPE_STARGATE 415 - #define MACH_TYPE_ARMADILLOJ 416 - #define MACH_TYPE_ELROY_JACK 417 -@@ -457,7 +457,7 @@ - #define MACH_TYPE_XM250 444 - #define MACH_TYPE_T6TC1XB 445 - #define MACH_TYPE_ESS710 446 --#define MACH_TYPE_MX3ADS 447 -+#define MACH_TYPE_MX31ADS 447 - #define MACH_TYPE_HIMALAYA 448 - #define MACH_TYPE_BOLFENK 449 - #define MACH_TYPE_AT91RM9200KR 450 -@@ -736,7 +736,309 @@ - #define MACH_TYPE_LN2410SBC 725 - #define MACH_TYPE_CB3RUFC 726 - #define MACH_TYPE_MP2USB 727 --#define MACH_TYPE_PDNB3 1002 -+#define MACH_TYPE_NTNP425C 728 -+#define MACH_TYPE_COLIBRI 729 -+#define MACH_TYPE_PCM7220 730 -+#define MACH_TYPE_GATEWAY7001 731 -+#define MACH_TYPE_PCM027 732 -+#define MACH_TYPE_CMPXA 733 -+#define MACH_TYPE_ANUBIS 734 -+#define MACH_TYPE_ITE8152 735 -+#define MACH_TYPE_LPC3XXX 736 -+#define MACH_TYPE_PUPPETEER 737 -+#define MACH_TYPE_MACH_VADATECH 738 -+#define MACH_TYPE_E570 739 -+#define MACH_TYPE_X50 740 -+#define MACH_TYPE_RECON 741 -+#define MACH_TYPE_XBOARDGP8 742 -+#define MACH_TYPE_FPIC2 743 -+#define MACH_TYPE_AKITA 744 -+#define MACH_TYPE_A81 745 -+#define MACH_TYPE_SVM_SC25X 746 -+#define MACH_TYPE_VADATECH020 747 -+#define MACH_TYPE_TLI 748 -+#define MACH_TYPE_EDB9315LC 749 -+#define MACH_TYPE_PASSEC 750 -+#define MACH_TYPE_DS_TIGER 751 -+#define MACH_TYPE_E310 752 -+#define MACH_TYPE_E330 753 -+#define MACH_TYPE_RT3000 754 -+#define MACH_TYPE_NOKIA770 755 -+#define MACH_TYPE_PNX0106 756 -+#define MACH_TYPE_HX21XX 757 -+#define MACH_TYPE_FARADAY 758 -+#define MACH_TYPE_SBC9312 759 -+#define MACH_TYPE_BATMAN 760 -+#define MACH_TYPE_JPD201 761 -+#define MACH_TYPE_MIPSA 762 -+#define MACH_TYPE_KACOM 763 -+#define MACH_TYPE_SWARCOCPU 764 -+#define MACH_TYPE_SWARCODSL 765 -+#define MACH_TYPE_BLUEANGEL 766 -+#define MACH_TYPE_HAIRYGRAMA 767 -+#define MACH_TYPE_BANFF 768 -+#define MACH_TYPE_CARMEVA 769 -+#define MACH_TYPE_SAM255 770 -+#define MACH_TYPE_PPM10 771 -+#define MACH_TYPE_EDB9315A 772 -+#define MACH_TYPE_SUNSET 773 -+#define MACH_TYPE_STARGATE2 774 -+#define MACH_TYPE_INTELMOTE2 775 -+#define MACH_TYPE_TRIZEPS4 776 -+#define MACH_TYPE_MAINSTONE2 777 -+#define MACH_TYPE_EZ_IXP42X 778 -+#define MACH_TYPE_TAPWAVE_ZODIAC 779 -+#define MACH_TYPE_UNIVERSALMETER 780 -+#define MACH_TYPE_HICOARM9 781 -+#define MACH_TYPE_PNX4008 782 -+#define MACH_TYPE_KWS6000 783 -+#define MACH_TYPE_PORTUX920T 784 -+#define MACH_TYPE_EZ_X5 785 -+#define MACH_TYPE_OMAP_RUDOLPH 786 -+#define MACH_TYPE_CPUAT91 787 -+#define MACH_TYPE_REA9200 788 -+#define MACH_TYPE_ACTS_PUNE_SA1110 789 -+#define MACH_TYPE_IXP425 790 -+#define MACH_TYPE_ARGONPLUSODYSSEY 791 -+#define MACH_TYPE_PERCH 792 -+#define MACH_TYPE_EIS05R1 793 -+#define MACH_TYPE_PEPPERPAD 794 -+#define MACH_TYPE_SB3010 795 -+#define MACH_TYPE_RM9200 796 -+#define MACH_TYPE_DMA03 797 -+#define MACH_TYPE_ROAD_S101 798 -+#define MACH_TYPE_IQ_NEXTGEN_A 799 -+#define MACH_TYPE_IQ_NEXTGEN_B 800 -+#define MACH_TYPE_IQ_NEXTGEN_C 801 -+#define MACH_TYPE_IQ_NEXTGEN_D 802 -+#define MACH_TYPE_IQ_NEXTGEN_E 803 -+#define MACH_TYPE_MALLOW_AT91 804 -+#define MACH_TYPE_CYBERTRACKER_I 805 -+#define MACH_TYPE_GESBC931X 806 -+#define MACH_TYPE_CENTIPAD 807 -+#define MACH_TYPE_ARMSOC 808 -+#define MACH_TYPE_SE4200 809 -+#define MACH_TYPE_EMS197A 810 -+#define MACH_TYPE_MICRO9 811 -+#define MACH_TYPE_MICRO9L 812 -+#define MACH_TYPE_UC5471DSP 813 -+#define MACH_TYPE_SJ5471ENG 814 -+#define MACH_TYPE_CMPXA26X 815 -+#define MACH_TYPE_NC 816 -+#define MACH_TYPE_OMAP_PALMTE 817 -+#define MACH_TYPE_AJAX52X 818 -+#define MACH_TYPE_SIRIUSTAR 819 -+#define MACH_TYPE_IODATA_HDLG 820 -+#define MACH_TYPE_AT91RM9200UTL 821 -+#define MACH_TYPE_BIOSAFE 822 -+#define MACH_TYPE_MP1000 823 -+#define MACH_TYPE_PARSY 824 -+#define MACH_TYPE_CCXP 825 -+#define MACH_TYPE_OMAP_GSAMPLE 826 -+#define MACH_TYPE_REALVIEW_EB 827 -+#define MACH_TYPE_SAMOA 828 -+#define MACH_TYPE_T3XSCALE 829 -+#define MACH_TYPE_I878 830 -+#define MACH_TYPE_BORZOI 831 -+#define MACH_TYPE_GECKO 832 -+#define MACH_TYPE_DS101 833 -+#define MACH_TYPE_OMAP_PALMTT2 834 -+#define MACH_TYPE_XSCALE_PALMLD 835 -+#define MACH_TYPE_CC9C 836 -+#define MACH_TYPE_SBC1670 837 -+#define MACH_TYPE_IXDP28X5 838 -+#define MACH_TYPE_OMAP_PALMTT 839 -+#define MACH_TYPE_ML696K 840 -+#define MACH_TYPE_ARCOM_ZEUS 841 -+#define MACH_TYPE_OSIRIS 842 -+#define MACH_TYPE_MAESTRO 843 -+#define MACH_TYPE_TUNGE2 844 -+#define MACH_TYPE_IXBBM 845 -+#define MACH_TYPE_MX27 846 -+#define MACH_TYPE_AX8004 847 -+#define MACH_TYPE_AT91SAM9261EK 848 -+#define MACH_TYPE_LOFT 849 -+#define MACH_TYPE_MAGPIE 850 -+#define MACH_TYPE_MX21 851 -+#define MACH_TYPE_MB87M3400 852 -+#define MACH_TYPE_MGUARD_DELTA 853 -+#define MACH_TYPE_DAVINCI_DVDP 854 -+#define MACH_TYPE_HTCUNIVERSAL 855 -+#define MACH_TYPE_TPAD 856 -+#define MACH_TYPE_ROVERP3 857 -+#define MACH_TYPE_JORNADA928 858 -+#define MACH_TYPE_MV88FXX81 859 -+#define MACH_TYPE_STMP36XX 860 -+#define MACH_TYPE_SXNI79524 861 -+#define MACH_TYPE_AMS_DELTA 862 -+#define MACH_TYPE_URANIUM 863 -+#define MACH_TYPE_UCON 864 -+#define MACH_TYPE_NAS100D 865 -+#define MACH_TYPE_L083_1000 866 -+#define MACH_TYPE_EZX 867 -+#define MACH_TYPE_PNX5220 868 -+#define MACH_TYPE_BUTTE 869 -+#define MACH_TYPE_SRM2 870 -+#define MACH_TYPE_DSBR 871 -+#define MACH_TYPE_CRYSTALBALL 872 -+#define MACH_TYPE_TINYPXA27X 873 -+#define MACH_TYPE_HERBIE 874 -+#define MACH_TYPE_MAGICIAN 875 -+#define MACH_TYPE_CM4002 876 -+#define MACH_TYPE_B4 877 -+#define MACH_TYPE_MAUI 878 -+#define MACH_TYPE_CYBERTRACKER_G 879 -+#define MACH_TYPE_NXDKN 880 -+#define MACH_TYPE_MIO8390 881 -+#define MACH_TYPE_OMI_BOARD 882 -+#define MACH_TYPE_MX21CIV 883 -+#define MACH_TYPE_MAHI_CDAC 884 -+#define MACH_TYPE_XSCALE_PALMTX 885 -+#define MACH_TYPE_S3C2413 887 -+#define MACH_TYPE_SAMSYS_EP0 888 -+#define MACH_TYPE_WG302V1 889 -+#define MACH_TYPE_WG302V2 890 -+#define MACH_TYPE_EB42X 891 -+#define MACH_TYPE_IQ331ES 892 -+#define MACH_TYPE_COSYDSP 893 -+#define MACH_TYPE_UPLAT7D 894 -+#define MACH_TYPE_PTDAVINCI 895 -+#define MACH_TYPE_MBUS 896 -+#define MACH_TYPE_NADIA2VB 897 -+#define MACH_TYPE_R1000 898 -+#define MACH_TYPE_HW90250 899 -+#define MACH_TYPE_OMAP_2430SDP 900 -+#define MACH_TYPE_DAVINCI_EVM 901 -+#define MACH_TYPE_OMAP_TORNADO 902 -+#define MACH_TYPE_OLOCREEK 903 -+#define MACH_TYPE_PALMZ72 904 -+#define MACH_TYPE_NXDB500 905 -+#define MACH_TYPE_APF9328 906 -+#define MACH_TYPE_OMAP_WIPOQ 907 -+#define MACH_TYPE_OMAP_TWIP 908 -+#define MACH_TYPE_XSCALE_PALMTREO650 909 -+#define MACH_TYPE_ACUMEN 910 -+#define MACH_TYPE_XP100 911 -+#define MACH_TYPE_FS2410 912 -+#define MACH_TYPE_PXA270_CERF 913 -+#define MACH_TYPE_SQ2FTLPALM 914 -+#define MACH_TYPE_BSEMSERVER 915 -+#define MACH_TYPE_NETCLIENT 916 -+#define MACH_TYPE_XSCALE_PALMTT5 917 -+#define MACH_TYPE_OMAP_PALMTC 918 -+#define MACH_TYPE_OMAP_APOLLON 919 -+#define MACH_TYPE_ARGONLVEVB 920 -+#define MACH_TYPE_REA_2D 921 -+#define MACH_TYPE_TI3E524 922 -+#define MACH_TYPE_ATEB9200 923 -+#define MACH_TYPE_AUCKLAND 924 -+#define MACH_TYPE_AK3320M 925 -+#define MACH_TYPE_DURAMAX 926 -+#define MACH_TYPE_N35 927 -+#define MACH_TYPE_PRONGHORN 928 -+#define MACH_TYPE_FUNDY 929 -+#define MACH_TYPE_LOGICPD_PXA270 930 -+#define MACH_TYPE_CPU777 931 -+#define MACH_TYPE_SIMICON9201 932 -+#define MACH_TYPE_LEAP2_HPM 933 -+#define MACH_TYPE_CM922TXA10 934 -+#define MACH_TYPE_PXA 935 -+#define MACH_TYPE_SANDGATE2 936 -+#define MACH_TYPE_SANDGATE2G 937 -+#define MACH_TYPE_SANDGATE2P 938 -+#define MACH_TYPE_FRED_JACK 939 -+#define MACH_TYPE_TTG_COLOR1 940 -+#define MACH_TYPE_NXEB500HMI 941 -+#define MACH_TYPE_NETDCU8 942 -+#define MACH_TYPE_ML675050_CPU_BOA 943 -+#define MACH_TYPE_NG_FVX538 944 -+#define MACH_TYPE_NG_FVS338 945 -+#define MACH_TYPE_PNX4103 946 -+#define MACH_TYPE_HESDB 947 -+#define MACH_TYPE_XSILO 948 -+#define MACH_TYPE_ESPRESSO 949 -+#define MACH_TYPE_EMLC 950 -+#define MACH_TYPE_SISTERON 951 -+#define MACH_TYPE_RX1950 952 -+#define MACH_TYPE_TSC_VENUS 953 -+#define MACH_TYPE_DS101J 954 -+#define MACH_TYPE_MXC30030ADS 955 -+#define MACH_TYPE_FUJITSU_WIMAXSOC 956 -+#define MACH_TYPE_DUALPCMODEM 957 -+#define MACH_TYPE_GESBC9312 958 -+#define MACH_TYPE_HTCAPACHE 959 -+#define MACH_TYPE_IXDP435 960 -+#define MACH_TYPE_CATPROVT100 961 -+#define MACH_TYPE_PICOTUX1XX 962 -+#define MACH_TYPE_PICOTUX2XX 963 -+#define MACH_TYPE_DSMG600 964 -+#define MACH_TYPE_EMPC2 965 -+#define MACH_TYPE_VENTURA 966 -+#define MACH_TYPE_PHIDGET_SBC 967 -+#define MACH_TYPE_IJ3K 968 -+#define MACH_TYPE_PISGAH 969 -+#define MACH_TYPE_OMAP_FSAMPLE 970 -+#define MACH_TYPE_SG720 971 -+#define MACH_TYPE_REDFOX 972 -+#define MACH_TYPE_MYSH_EP9315_1 973 -+#define MACH_TYPE_TPF106 974 -+#define MACH_TYPE_AT91RM9200KG 975 -+#define MACH_TYPE_SLEDB 976 -+#define MACH_TYPE_ONTRACK 977 -+#define MACH_TYPE_PM1200 978 -+#define MACH_TYPE_ESS24XXX 979 -+#define MACH_TYPE_COREMP7 980 -+#define MACH_TYPE_NEXCODER_6446 981 -+#define MACH_TYPE_STVC8380 982 -+#define MACH_TYPE_TEKLYNX 983 -+#define MACH_TYPE_CARBONADO 984 -+#define MACH_TYPE_SYSMOS_MP730 985 -+#define MACH_TYPE_SNAPPER_CL15 986 -+#define MACH_TYPE_PGIGIM 987 -+#define MACH_TYPE_PTX9160P2 988 -+#define MACH_TYPE_DCORE1 989 -+#define MACH_TYPE_VICTORPXA 990 -+#define MACH_TYPE_MX2DTB 991 -+#define MACH_TYPE_PXA_IREX_ER0100 992 -+#define MACH_TYPE_OMAP_PALMZ71 993 -+#define MACH_TYPE_BARTEC_DEG 994 -+#define MACH_TYPE_HW50251 995 -+#define MACH_TYPE_IBOX 996 -+#define MACH_TYPE_ATLASLH7A404 997 -+#define MACH_TYPE_PT2026 998 -+#define MACH_TYPE_HTCALPINE 999 -+#define MACH_TYPE_BARTEC_VTU 1000 -+#define MACH_TYPE_VCOREII 1001 -+#define MACH_TYPE_PDNB3 1002 -+#define MACH_TYPE_HTCBEETLES 1003 -+#define MACH_TYPE_S3C6400 1004 -+#define MACH_TYPE_S3C2443 1005 -+#define MACH_TYPE_OMAP_LDK 1006 -+#define MACH_TYPE_SMDK2460 1007 -+#define MACH_TYPE_SMDK2440 1008 -+#define MACH_TYPE_SMDK2412 1009 -+#define MACH_TYPE_WEBBOX 1010 -+#define MACH_TYPE_CWWNDP 1011 -+#define MACH_TYPE_DRAGON 1012 -+#define MACH_TYPE_OPENDO_CPU_BOARD 1013 -+#define MACH_TYPE_CCM2200 1014 -+#define MACH_TYPE_ETWARM 1015 -+#define MACH_TYPE_M93030 1016 -+#define MACH_TYPE_CC7U 1017 -+#define MACH_TYPE_MTT_RANGER 1018 -+#define MACH_TYPE_NEXUS 1019 -+#define MACH_TYPE_DESMAN 1020 -+#define MACH_TYPE_BKDE303 1021 -+#define MACH_TYPE_SMDK2413 1022 -+#define MACH_TYPE_AML_M7200 1023 -+#define MACH_TYPE_AML_M5900 1024 -+#define MACH_TYPE_SG640 1025 -+#define MACH_TYPE_EDG79524 1026 -+#define MACH_TYPE_AI2410 1027 -+#define MACH_TYPE_IXP465 1028 -+#define MACH_TYPE_BALLOON3 1029 -+#define MACH_TYPE_QT2410 1108 -+#define MACH_TYPE_GTA01 1182 - - #ifdef CONFIG_ARCH_EBSA110 - # ifdef machine_arch_type -@@ -3541,9 +3843,9 @@ - # else - # define machine_arch_type MACH_TYPE_RAMSES - # endif --# define machine_is_ramses() (machine_arch_type == MACH_TYPE_RAMSES) -+# define machine_is_mnci() (machine_arch_type == MACH_TYPE_RAMSES) - #else --# define machine_is_ramses() (0) -+# define machine_is_mnci() (0) - #endif - - #ifdef CONFIG_ARCH_S28X -@@ -4501,9 +4803,9 @@ - # else - # define machine_arch_type MACH_TYPE_M825XX - # endif --# define machine_is_m825xx() (machine_arch_type == MACH_TYPE_M825XX) -+# define machine_is_comcerto() (machine_arch_type == MACH_TYPE_M825XX) - #else --# define machine_is_m825xx() (0) -+# define machine_is_comcerto() (0) - #endif - - #ifdef CONFIG_SA1100_M7100 -@@ -5658,16 +5960,16 @@ - # define machine_is_xcep() (0) - #endif - --#ifdef CONFIG_MACH_ARCOM_MERCURY -+#ifdef CONFIG_MACH_ARCOM_VULCAN - # ifdef machine_arch_type - # undef machine_arch_type - # define machine_arch_type __machine_arch_type - # else --# define machine_arch_type MACH_TYPE_ARCOM_MERCURY -+# define machine_arch_type MACH_TYPE_ARCOM_VULCAN - # endif --# define machine_is_arcom_mercury() (machine_arch_type == MACH_TYPE_ARCOM_MERCURY) -+# define machine_is_arcom_vulcan() (machine_arch_type == MACH_TYPE_ARCOM_VULCAN) - #else --# define machine_is_arcom_mercury() (0) -+# define machine_is_arcom_vulcan() (0) - #endif - - #ifdef CONFIG_MACH_STARGATE -@@ -6054,16 +6356,16 @@ - # define machine_is_ess710() (0) - #endif - --#ifdef CONFIG_MACH_MX3ADS -+#ifdef CONFIG_MACH_MX31ADS - # ifdef machine_arch_type - # undef machine_arch_type - # define machine_arch_type __machine_arch_type - # else --# define machine_arch_type MACH_TYPE_MX3ADS -+# define machine_arch_type MACH_TYPE_MX31ADS - # endif --# define machine_is_mx3ads() (machine_arch_type == MACH_TYPE_MX3ADS) -+# define machine_is_mx31ads() (machine_arch_type == MACH_TYPE_MX31ADS) - #else --# define machine_is_mx3ads() (0) -+# define machine_is_mx31ads() (0) - #endif - - #ifdef CONFIG_MACH_HIMALAYA -@@ -7333,9 +7635,9 @@ - # else - # define machine_arch_type MACH_TYPE_ARGONPLUSEVB - # endif --# define machine_is_argonplusevb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) -+# define machine_is_i30030evb() (machine_arch_type == MACH_TYPE_ARGONPLUSEVB) - #else --# define machine_is_argonplusevb() (0) -+# define machine_is_i30030evb() (0) - #endif - - #ifdef CONFIG_MACH_SCMA11EVB -@@ -7345,9 +7647,9 @@ - # else - # define machine_arch_type MACH_TYPE_SCMA11EVB - # endif --# define machine_is_scma11evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) -+# define machine_is_mxc27530evb() (machine_arch_type == MACH_TYPE_SCMA11EVB) - #else --# define machine_is_scma11evb() (0) -+# define machine_is_mxc27530evb() (0) - #endif - - #ifdef CONFIG_MACH_SMDK2800 -@@ -8305,9 +8607,9 @@ - # else - # define machine_arch_type MACH_TYPE_SCMA11BB - # endif --# define machine_is_scma11bb() (machine_arch_type == MACH_TYPE_SCMA11BB) -+# define machine_is_mxc27530ads() (machine_arch_type == MACH_TYPE_SCMA11BB) - #else --# define machine_is_scma11bb() (0) -+# define machine_is_mxc27530ads() (0) - #endif - - #ifdef CONFIG_MACH_TRIZEPS3 -@@ -9193,9 +9495,9 @@ - # else - # define machine_arch_type MACH_TYPE_ZEUSEVB - # endif --# define machine_is_zeusevb() (machine_arch_type == MACH_TYPE_ZEUSEVB) -+# define machine_is_mxc91131evb() (machine_arch_type == MACH_TYPE_ZEUSEVB) - #else --# define machine_is_zeusevb() (0) -+# define machine_is_mxc91131evb() (0) - #endif - - #ifdef CONFIG_MACH_P700 -@@ -9402,6 +9704,3643 @@ - # define machine_is_mp2usb() (0) - #endif - -+#ifdef CONFIG_MACH_NTNP425C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NTNP425C -+# endif -+# define machine_is_ntnp425c() (machine_arch_type == MACH_TYPE_NTNP425C) -+#else -+# define machine_is_ntnp425c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COLIBRI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COLIBRI -+# endif -+# define machine_is_colibri() (machine_arch_type == MACH_TYPE_COLIBRI) -+#else -+# define machine_is_colibri() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PCM7220 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PCM7220 -+# endif -+# define machine_is_pcm7220() (machine_arch_type == MACH_TYPE_PCM7220) -+#else -+# define machine_is_pcm7220() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GATEWAY7001 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GATEWAY7001 -+# endif -+# define machine_is_gateway7001() (machine_arch_type == MACH_TYPE_GATEWAY7001) -+#else -+# define machine_is_gateway7001() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PCM027 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PCM027 -+# endif -+# define machine_is_pcm027() (machine_arch_type == MACH_TYPE_PCM027) -+#else -+# define machine_is_pcm027() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CMPXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CMPXA -+# endif -+# define machine_is_cmpxa() (machine_arch_type == MACH_TYPE_CMPXA) -+#else -+# define machine_is_cmpxa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ANUBIS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ANUBIS -+# endif -+# define machine_is_anubis() (machine_arch_type == MACH_TYPE_ANUBIS) -+#else -+# define machine_is_anubis() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ITE8152 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ITE8152 -+# endif -+# define machine_is_ite8152() (machine_arch_type == MACH_TYPE_ITE8152) -+#else -+# define machine_is_ite8152() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LPC3XXX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LPC3XXX -+# endif -+# define machine_is_lpc3xxx() (machine_arch_type == MACH_TYPE_LPC3XXX) -+#else -+# define machine_is_lpc3xxx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PUPPETEER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PUPPETEER -+# endif -+# define machine_is_puppeteer() (machine_arch_type == MACH_TYPE_PUPPETEER) -+#else -+# define machine_is_puppeteer() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MACH_VADATECH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MACH_VADATECH -+# endif -+# define machine_is_vt001() (machine_arch_type == MACH_TYPE_MACH_VADATECH) -+#else -+# define machine_is_vt001() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E570 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E570 -+# endif -+# define machine_is_e570() (machine_arch_type == MACH_TYPE_E570) -+#else -+# define machine_is_e570() (0) -+#endif -+ -+#ifdef CONFIG_MACH_X50 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_X50 -+# endif -+# define machine_is_x50() (machine_arch_type == MACH_TYPE_X50) -+#else -+# define machine_is_x50() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RECON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RECON -+# endif -+# define machine_is_recon() (machine_arch_type == MACH_TYPE_RECON) -+#else -+# define machine_is_recon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XBOARDGP8 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XBOARDGP8 -+# endif -+# define machine_is_xboardgp8() (machine_arch_type == MACH_TYPE_XBOARDGP8) -+#else -+# define machine_is_xboardgp8() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FPIC2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FPIC2 -+# endif -+# define machine_is_fpic2() (machine_arch_type == MACH_TYPE_FPIC2) -+#else -+# define machine_is_fpic2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AKITA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AKITA -+# endif -+# define machine_is_akita() (machine_arch_type == MACH_TYPE_AKITA) -+#else -+# define machine_is_akita() (0) -+#endif -+ -+#ifdef CONFIG_MACH_A81 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_A81 -+# endif -+# define machine_is_a81() (machine_arch_type == MACH_TYPE_A81) -+#else -+# define machine_is_a81() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SVM_SC25X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SVM_SC25X -+# endif -+# define machine_is_svm_sc25x() (machine_arch_type == MACH_TYPE_SVM_SC25X) -+#else -+# define machine_is_svm_sc25x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VADATECH020 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VADATECH020 -+# endif -+# define machine_is_vt020() (machine_arch_type == MACH_TYPE_VADATECH020) -+#else -+# define machine_is_vt020() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TLI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TLI -+# endif -+# define machine_is_tli() (machine_arch_type == MACH_TYPE_TLI) -+#else -+# define machine_is_tli() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDB9315LC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDB9315LC -+# endif -+# define machine_is_edb9315lc() (machine_arch_type == MACH_TYPE_EDB9315LC) -+#else -+# define machine_is_edb9315lc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PASSEC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PASSEC -+# endif -+# define machine_is_passec() (machine_arch_type == MACH_TYPE_PASSEC) -+#else -+# define machine_is_passec() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS_TIGER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS_TIGER -+# endif -+# define machine_is_ds_tiger() (machine_arch_type == MACH_TYPE_DS_TIGER) -+#else -+# define machine_is_ds_tiger() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E310 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E310 -+# endif -+# define machine_is_e310() (machine_arch_type == MACH_TYPE_E310) -+#else -+# define machine_is_e310() (0) -+#endif -+ -+#ifdef CONFIG_MACH_E330 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_E330 -+# endif -+# define machine_is_e330() (machine_arch_type == MACH_TYPE_E330) -+#else -+# define machine_is_e330() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RT3000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RT3000 -+# endif -+# define machine_is_rt3000() (machine_arch_type == MACH_TYPE_RT3000) -+#else -+# define machine_is_rt3000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NOKIA770 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NOKIA770 -+# endif -+# define machine_is_nokia770() (machine_arch_type == MACH_TYPE_NOKIA770) -+#else -+# define machine_is_nokia770() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX0106 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX0106 -+# endif -+# define machine_is_pnx0106() (machine_arch_type == MACH_TYPE_PNX0106) -+#else -+# define machine_is_pnx0106() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HX21XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HX21XX -+# endif -+# define machine_is_hx21xx() (machine_arch_type == MACH_TYPE_HX21XX) -+#else -+# define machine_is_hx21xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FARADAY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FARADAY -+# endif -+# define machine_is_faraday() (machine_arch_type == MACH_TYPE_FARADAY) -+#else -+# define machine_is_faraday() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SBC9312 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SBC9312 -+# endif -+# define machine_is_sbc9312() (machine_arch_type == MACH_TYPE_SBC9312) -+#else -+# define machine_is_sbc9312() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BATMAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BATMAN -+# endif -+# define machine_is_batman() (machine_arch_type == MACH_TYPE_BATMAN) -+#else -+# define machine_is_batman() (0) -+#endif -+ -+#ifdef CONFIG_MACH_JPD201 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_JPD201 -+# endif -+# define machine_is_jpd201() (machine_arch_type == MACH_TYPE_JPD201) -+#else -+# define machine_is_jpd201() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MIPSA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MIPSA -+# endif -+# define machine_is_mipsa() (machine_arch_type == MACH_TYPE_MIPSA) -+#else -+# define machine_is_mipsa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_KACOM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_KACOM -+# endif -+# define machine_is_kacom() (machine_arch_type == MACH_TYPE_KACOM) -+#else -+# define machine_is_kacom() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SWARCOCPU -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SWARCOCPU -+# endif -+# define machine_is_swarcocpu() (machine_arch_type == MACH_TYPE_SWARCOCPU) -+#else -+# define machine_is_swarcocpu() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SWARCODSL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SWARCODSL -+# endif -+# define machine_is_swarcodsl() (machine_arch_type == MACH_TYPE_SWARCODSL) -+#else -+# define machine_is_swarcodsl() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BLUEANGEL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BLUEANGEL -+# endif -+# define machine_is_blueangel() (machine_arch_type == MACH_TYPE_BLUEANGEL) -+#else -+# define machine_is_blueangel() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HAIRYGRAMA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HAIRYGRAMA -+# endif -+# define machine_is_hairygrama() (machine_arch_type == MACH_TYPE_HAIRYGRAMA) -+#else -+# define machine_is_hairygrama() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BANFF -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BANFF -+# endif -+# define machine_is_banff() (machine_arch_type == MACH_TYPE_BANFF) -+#else -+# define machine_is_banff() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CARMEVA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CARMEVA -+# endif -+# define machine_is_carmeva() (machine_arch_type == MACH_TYPE_CARMEVA) -+#else -+# define machine_is_carmeva() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAM255 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAM255 -+# endif -+# define machine_is_sam255() (machine_arch_type == MACH_TYPE_SAM255) -+#else -+# define machine_is_sam255() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PPM10 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PPM10 -+# endif -+# define machine_is_ppm10() (machine_arch_type == MACH_TYPE_PPM10) -+#else -+# define machine_is_ppm10() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDB9315A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDB9315A -+# endif -+# define machine_is_edb9315a() (machine_arch_type == MACH_TYPE_EDB9315A) -+#else -+# define machine_is_edb9315a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SUNSET -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SUNSET -+# endif -+# define machine_is_sunset() (machine_arch_type == MACH_TYPE_SUNSET) -+#else -+# define machine_is_sunset() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STARGATE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STARGATE2 -+# endif -+# define machine_is_stargate2() (machine_arch_type == MACH_TYPE_STARGATE2) -+#else -+# define machine_is_stargate2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_INTELMOTE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_INTELMOTE2 -+# endif -+# define machine_is_intelmote2() (machine_arch_type == MACH_TYPE_INTELMOTE2) -+#else -+# define machine_is_intelmote2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TRIZEPS4 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TRIZEPS4 -+# endif -+# define machine_is_trizeps4() (machine_arch_type == MACH_TYPE_TRIZEPS4) -+#else -+# define machine_is_trizeps4() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAINSTONE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAINSTONE2 -+# endif -+# define machine_is_mainstone2() (machine_arch_type == MACH_TYPE_MAINSTONE2) -+#else -+# define machine_is_mainstone2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZ_IXP42X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZ_IXP42X -+# endif -+# define machine_is_ez_ixp42x() (machine_arch_type == MACH_TYPE_EZ_IXP42X) -+#else -+# define machine_is_ez_ixp42x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TAPWAVE_ZODIAC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TAPWAVE_ZODIAC -+# endif -+# define machine_is_tapwave_zodiac() (machine_arch_type == MACH_TYPE_TAPWAVE_ZODIAC) -+#else -+# define machine_is_tapwave_zodiac() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UNIVERSALMETER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UNIVERSALMETER -+# endif -+# define machine_is_universalmeter() (machine_arch_type == MACH_TYPE_UNIVERSALMETER) -+#else -+# define machine_is_universalmeter() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HICOARM9 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HICOARM9 -+# endif -+# define machine_is_hicoarm9() (machine_arch_type == MACH_TYPE_HICOARM9) -+#else -+# define machine_is_hicoarm9() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX4008 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX4008 -+# endif -+# define machine_is_pnx4008() (machine_arch_type == MACH_TYPE_PNX4008) -+#else -+# define machine_is_pnx4008() (0) -+#endif -+ -+#ifdef CONFIG_MACH_KWS6000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_KWS6000 -+# endif -+# define machine_is_kws6000() (machine_arch_type == MACH_TYPE_KWS6000) -+#else -+# define machine_is_kws6000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PORTUX920T -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PORTUX920T -+# endif -+# define machine_is_portux920t() (machine_arch_type == MACH_TYPE_PORTUX920T) -+#else -+# define machine_is_portux920t() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZ_X5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZ_X5 -+# endif -+# define machine_is_ez_x5() (machine_arch_type == MACH_TYPE_EZ_X5) -+#else -+# define machine_is_ez_x5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_RUDOLPH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_RUDOLPH -+# endif -+# define machine_is_omap_rudolph() (machine_arch_type == MACH_TYPE_OMAP_RUDOLPH) -+#else -+# define machine_is_omap_rudolph() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CPUAT91 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CPUAT91 -+# endif -+# define machine_is_cpuat91() (machine_arch_type == MACH_TYPE_CPUAT91) -+#else -+# define machine_is_cpuat91() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REA9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REA9200 -+# endif -+# define machine_is_rea9200() (machine_arch_type == MACH_TYPE_REA9200) -+#else -+# define machine_is_rea9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ACTS_PUNE_SA1110 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ACTS_PUNE_SA1110 -+# endif -+# define machine_is_acts_pune_sa1110() (machine_arch_type == MACH_TYPE_ACTS_PUNE_SA1110) -+#else -+# define machine_is_acts_pune_sa1110() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXP425 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXP425 -+# endif -+# define machine_is_ixp425() (machine_arch_type == MACH_TYPE_IXP425) -+#else -+# define machine_is_ixp425() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARGONPLUSODYSSEY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARGONPLUSODYSSEY -+# endif -+# define machine_is_i30030ads() (machine_arch_type == MACH_TYPE_ARGONPLUSODYSSEY) -+#else -+# define machine_is_i30030ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PERCH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PERCH -+# endif -+# define machine_is_perch() (machine_arch_type == MACH_TYPE_PERCH) -+#else -+# define machine_is_perch() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EIS05R1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EIS05R1 -+# endif -+# define machine_is_eis05r1() (machine_arch_type == MACH_TYPE_EIS05R1) -+#else -+# define machine_is_eis05r1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PEPPERPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PEPPERPAD -+# endif -+# define machine_is_pepperpad() (machine_arch_type == MACH_TYPE_PEPPERPAD) -+#else -+# define machine_is_pepperpad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SB3010 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SB3010 -+# endif -+# define machine_is_sb3010() (machine_arch_type == MACH_TYPE_SB3010) -+#else -+# define machine_is_sb3010() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RM9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RM9200 -+# endif -+# define machine_is_rm9200() (machine_arch_type == MACH_TYPE_RM9200) -+#else -+# define machine_is_rm9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DMA03 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DMA03 -+# endif -+# define machine_is_dma03() (machine_arch_type == MACH_TYPE_DMA03) -+#else -+# define machine_is_dma03() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ROAD_S101 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ROAD_S101 -+# endif -+# define machine_is_road_s101() (machine_arch_type == MACH_TYPE_ROAD_S101) -+#else -+# define machine_is_road_s101() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_A -+# endif -+# define machine_is_iq_nextgen_a() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_A) -+#else -+# define machine_is_iq_nextgen_a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_B -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_B -+# endif -+# define machine_is_iq_nextgen_b() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_B) -+#else -+# define machine_is_iq_nextgen_b() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_C -+# endif -+# define machine_is_iq_nextgen_c() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_C) -+#else -+# define machine_is_iq_nextgen_c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_D -+# endif -+# define machine_is_iq_nextgen_d() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_D) -+#else -+# define machine_is_iq_nextgen_d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ_NEXTGEN_E -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ_NEXTGEN_E -+# endif -+# define machine_is_iq_nextgen_e() (machine_arch_type == MACH_TYPE_IQ_NEXTGEN_E) -+#else -+# define machine_is_iq_nextgen_e() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MALLOW_AT91 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MALLOW_AT91 -+# endif -+# define machine_is_mallow_at91() (machine_arch_type == MACH_TYPE_MALLOW_AT91) -+#else -+# define machine_is_mallow_at91() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CYBERTRACKER_I -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CYBERTRACKER_I -+# endif -+# define machine_is_cybertracker_i() (machine_arch_type == MACH_TYPE_CYBERTRACKER_I) -+#else -+# define machine_is_cybertracker_i() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GESBC931X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GESBC931X -+# endif -+# define machine_is_gesbc931x() (machine_arch_type == MACH_TYPE_GESBC931X) -+#else -+# define machine_is_gesbc931x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CENTIPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CENTIPAD -+# endif -+# define machine_is_centipad() (machine_arch_type == MACH_TYPE_CENTIPAD) -+#else -+# define machine_is_centipad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARMSOC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARMSOC -+# endif -+# define machine_is_armsoc() (machine_arch_type == MACH_TYPE_ARMSOC) -+#else -+# define machine_is_armsoc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SE4200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SE4200 -+# endif -+# define machine_is_se4200() (machine_arch_type == MACH_TYPE_SE4200) -+#else -+# define machine_is_se4200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMS197A -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMS197A -+# endif -+# define machine_is_ems197a() (machine_arch_type == MACH_TYPE_EMS197A) -+#else -+# define machine_is_ems197a() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MICRO9 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MICRO9 -+# endif -+# define machine_is_micro9() (machine_arch_type == MACH_TYPE_MICRO9) -+#else -+# define machine_is_micro9() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MICRO9L -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MICRO9L -+# endif -+# define machine_is_micro9l() (machine_arch_type == MACH_TYPE_MICRO9L) -+#else -+# define machine_is_micro9l() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UC5471DSP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UC5471DSP -+# endif -+# define machine_is_uc5471dsp() (machine_arch_type == MACH_TYPE_UC5471DSP) -+#else -+# define machine_is_uc5471dsp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SJ5471ENG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SJ5471ENG -+# endif -+# define machine_is_sj5471eng() (machine_arch_type == MACH_TYPE_SJ5471ENG) -+#else -+# define machine_is_sj5471eng() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CMPXA26X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CMPXA26X -+# endif -+# define machine_is_none() (machine_arch_type == MACH_TYPE_CMPXA26X) -+#else -+# define machine_is_none() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NC -+# endif -+# define machine_is_nc1() (machine_arch_type == MACH_TYPE_NC) -+#else -+# define machine_is_nc1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTE -+# endif -+# define machine_is_omap_palmte() (machine_arch_type == MACH_TYPE_OMAP_PALMTE) -+#else -+# define machine_is_omap_palmte() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AJAX52X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AJAX52X -+# endif -+# define machine_is_ajax52x() (machine_arch_type == MACH_TYPE_AJAX52X) -+#else -+# define machine_is_ajax52x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SIRIUSTAR -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SIRIUSTAR -+# endif -+# define machine_is_siriustar() (machine_arch_type == MACH_TYPE_SIRIUSTAR) -+#else -+# define machine_is_siriustar() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IODATA_HDLG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IODATA_HDLG -+# endif -+# define machine_is_iodata_hdlg() (machine_arch_type == MACH_TYPE_IODATA_HDLG) -+#else -+# define machine_is_iodata_hdlg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91RM9200UTL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91RM9200UTL -+# endif -+# define machine_is_at91rm9200utl() (machine_arch_type == MACH_TYPE_AT91RM9200UTL) -+#else -+# define machine_is_at91rm9200utl() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BIOSAFE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BIOSAFE -+# endif -+# define machine_is_biosafe() (machine_arch_type == MACH_TYPE_BIOSAFE) -+#else -+# define machine_is_biosafe() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MP1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MP1000 -+# endif -+# define machine_is_mp1000() (machine_arch_type == MACH_TYPE_MP1000) -+#else -+# define machine_is_mp1000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PARSY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PARSY -+# endif -+# define machine_is_parsy() (machine_arch_type == MACH_TYPE_PARSY) -+#else -+# define machine_is_parsy() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CCXP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CCXP -+# endif -+# define machine_is_ccxp270() (machine_arch_type == MACH_TYPE_CCXP) -+#else -+# define machine_is_ccxp270() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_GSAMPLE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_GSAMPLE -+# endif -+# define machine_is_omap_gsample() (machine_arch_type == MACH_TYPE_OMAP_GSAMPLE) -+#else -+# define machine_is_omap_gsample() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REALVIEW_EB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REALVIEW_EB -+# endif -+# define machine_is_realview_eb() (machine_arch_type == MACH_TYPE_REALVIEW_EB) -+#else -+# define machine_is_realview_eb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAMOA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAMOA -+# endif -+# define machine_is_samoa() (machine_arch_type == MACH_TYPE_SAMOA) -+#else -+# define machine_is_samoa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_T3XSCALE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_T3XSCALE -+# endif -+# define machine_is_t3xscale() (machine_arch_type == MACH_TYPE_T3XSCALE) -+#else -+# define machine_is_t3xscale() (0) -+#endif -+ -+#ifdef CONFIG_MACH_I878 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_I878 -+# endif -+# define machine_is_i878() (machine_arch_type == MACH_TYPE_I878) -+#else -+# define machine_is_i878() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BORZOI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BORZOI -+# endif -+# define machine_is_borzoi() (machine_arch_type == MACH_TYPE_BORZOI) -+#else -+# define machine_is_borzoi() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GECKO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GECKO -+# endif -+# define machine_is_gecko() (machine_arch_type == MACH_TYPE_GECKO) -+#else -+# define machine_is_gecko() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS101 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS101 -+# endif -+# define machine_is_ds101() (machine_arch_type == MACH_TYPE_DS101) -+#else -+# define machine_is_ds101() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTT2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTT2 -+# endif -+# define machine_is_omap_palmtt2() (machine_arch_type == MACH_TYPE_OMAP_PALMTT2) -+#else -+# define machine_is_omap_palmtt2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMLD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMLD -+# endif -+# define machine_is_xscale_palmld() (machine_arch_type == MACH_TYPE_XSCALE_PALMLD) -+#else -+# define machine_is_xscale_palmld() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CC9C -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CC9C -+# endif -+# define machine_is_cc9c() (machine_arch_type == MACH_TYPE_CC9C) -+#else -+# define machine_is_cc9c() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SBC1670 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SBC1670 -+# endif -+# define machine_is_sbc1670() (machine_arch_type == MACH_TYPE_SBC1670) -+#else -+# define machine_is_sbc1670() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXDP28X5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXDP28X5 -+# endif -+# define machine_is_ixdp28x5() (machine_arch_type == MACH_TYPE_IXDP28X5) -+#else -+# define machine_is_ixdp28x5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTT -+# endif -+# define machine_is_omap_palmtt() (machine_arch_type == MACH_TYPE_OMAP_PALMTT) -+#else -+# define machine_is_omap_palmtt() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ML696K -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ML696K -+# endif -+# define machine_is_ml696k() (machine_arch_type == MACH_TYPE_ML696K) -+#else -+# define machine_is_ml696k() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARCOM_ZEUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARCOM_ZEUS -+# endif -+# define machine_is_arcom_zeus() (machine_arch_type == MACH_TYPE_ARCOM_ZEUS) -+#else -+# define machine_is_arcom_zeus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OSIRIS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OSIRIS -+# endif -+# define machine_is_osiris() (machine_arch_type == MACH_TYPE_OSIRIS) -+#else -+# define machine_is_osiris() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAESTRO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAESTRO -+# endif -+# define machine_is_maestro() (machine_arch_type == MACH_TYPE_MAESTRO) -+#else -+# define machine_is_maestro() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TUNGE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TUNGE2 -+# endif -+# define machine_is_tunge2() (machine_arch_type == MACH_TYPE_TUNGE2) -+#else -+# define machine_is_tunge2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXBBM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXBBM -+# endif -+# define machine_is_ixbbm() (machine_arch_type == MACH_TYPE_IXBBM) -+#else -+# define machine_is_ixbbm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX27 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX27 -+# endif -+# define machine_is_mx27ads() (machine_arch_type == MACH_TYPE_MX27) -+#else -+# define machine_is_mx27ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AX8004 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AX8004 -+# endif -+# define machine_is_ax8004() (machine_arch_type == MACH_TYPE_AX8004) -+#else -+# define machine_is_ax8004() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91SAM9261EK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91SAM9261EK -+# endif -+# define machine_is_at91sam9261ek() (machine_arch_type == MACH_TYPE_AT91SAM9261EK) -+#else -+# define machine_is_at91sam9261ek() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LOFT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LOFT -+# endif -+# define machine_is_loft() (machine_arch_type == MACH_TYPE_LOFT) -+#else -+# define machine_is_loft() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAGPIE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAGPIE -+# endif -+# define machine_is_magpie() (machine_arch_type == MACH_TYPE_MAGPIE) -+#else -+# define machine_is_magpie() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX21 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX21 -+# endif -+# define machine_is_mx21ads() (machine_arch_type == MACH_TYPE_MX21) -+#else -+# define machine_is_mx21ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MB87M3400 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MB87M3400 -+# endif -+# define machine_is_mb87m3400() (machine_arch_type == MACH_TYPE_MB87M3400) -+#else -+# define machine_is_mb87m3400() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MGUARD_DELTA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MGUARD_DELTA -+# endif -+# define machine_is_mguard_delta() (machine_arch_type == MACH_TYPE_MGUARD_DELTA) -+#else -+# define machine_is_mguard_delta() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DAVINCI_DVDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DAVINCI_DVDP -+# endif -+# define machine_is_davinci_dvdp() (machine_arch_type == MACH_TYPE_DAVINCI_DVDP) -+#else -+# define machine_is_davinci_dvdp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCUNIVERSAL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCUNIVERSAL -+# endif -+# define machine_is_htcuniversal() (machine_arch_type == MACH_TYPE_HTCUNIVERSAL) -+#else -+# define machine_is_htcuniversal() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TPAD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TPAD -+# endif -+# define machine_is_tpad() (machine_arch_type == MACH_TYPE_TPAD) -+#else -+# define machine_is_tpad() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ROVERP3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ROVERP3 -+# endif -+# define machine_is_roverp3() (machine_arch_type == MACH_TYPE_ROVERP3) -+#else -+# define machine_is_roverp3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_JORNADA928 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_JORNADA928 -+# endif -+# define machine_is_jornada928() (machine_arch_type == MACH_TYPE_JORNADA928) -+#else -+# define machine_is_jornada928() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MV88FXX81 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MV88FXX81 -+# endif -+# define machine_is_mv88fxx81() (machine_arch_type == MACH_TYPE_MV88FXX81) -+#else -+# define machine_is_mv88fxx81() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STMP36XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STMP36XX -+# endif -+# define machine_is_stmp36xx() (machine_arch_type == MACH_TYPE_STMP36XX) -+#else -+# define machine_is_stmp36xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SXNI79524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SXNI79524 -+# endif -+# define machine_is_sxni79524() (machine_arch_type == MACH_TYPE_SXNI79524) -+#else -+# define machine_is_sxni79524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AMS_DELTA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AMS_DELTA -+# endif -+# define machine_is_ams_delta() (machine_arch_type == MACH_TYPE_AMS_DELTA) -+#else -+# define machine_is_ams_delta() (0) -+#endif -+ -+#ifdef CONFIG_MACH_URANIUM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_URANIUM -+# endif -+# define machine_is_uranium() (machine_arch_type == MACH_TYPE_URANIUM) -+#else -+# define machine_is_uranium() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UCON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UCON -+# endif -+# define machine_is_ucon() (machine_arch_type == MACH_TYPE_UCON) -+#else -+# define machine_is_ucon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NAS100D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NAS100D -+# endif -+# define machine_is_nas100d() (machine_arch_type == MACH_TYPE_NAS100D) -+#else -+# define machine_is_nas100d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_L083_1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_L083_1000 -+# endif -+# define machine_is_l083() (machine_arch_type == MACH_TYPE_L083_1000) -+#else -+# define machine_is_l083() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EZX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EZX -+# endif -+# define machine_is_ezx() (machine_arch_type == MACH_TYPE_EZX) -+#else -+# define machine_is_ezx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX5220 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX5220 -+# endif -+# define machine_is_pnx5220() (machine_arch_type == MACH_TYPE_PNX5220) -+#else -+# define machine_is_pnx5220() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BUTTE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BUTTE -+# endif -+# define machine_is_butte() (machine_arch_type == MACH_TYPE_BUTTE) -+#else -+# define machine_is_butte() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SRM2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SRM2 -+# endif -+# define machine_is_srm2() (machine_arch_type == MACH_TYPE_SRM2) -+#else -+# define machine_is_srm2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DSBR -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DSBR -+# endif -+# define machine_is_dsbr() (machine_arch_type == MACH_TYPE_DSBR) -+#else -+# define machine_is_dsbr() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CRYSTALBALL -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CRYSTALBALL -+# endif -+# define machine_is_crystalball() (machine_arch_type == MACH_TYPE_CRYSTALBALL) -+#else -+# define machine_is_crystalball() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TINYPXA27X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TINYPXA27X -+# endif -+# define machine_is_tinypxa27x() (machine_arch_type == MACH_TYPE_TINYPXA27X) -+#else -+# define machine_is_tinypxa27x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HERBIE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HERBIE -+# endif -+# define machine_is_herbie() (machine_arch_type == MACH_TYPE_HERBIE) -+#else -+# define machine_is_herbie() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAGICIAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAGICIAN -+# endif -+# define machine_is_magician() (machine_arch_type == MACH_TYPE_MAGICIAN) -+#else -+# define machine_is_magician() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CM4002 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CM4002 -+# endif -+# define machine_is_cm4002() (machine_arch_type == MACH_TYPE_CM4002) -+#else -+# define machine_is_cm4002() (0) -+#endif -+ -+#ifdef CONFIG_MACH_B4 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_B4 -+# endif -+# define machine_is_b4() (machine_arch_type == MACH_TYPE_B4) -+#else -+# define machine_is_b4() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAUI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAUI -+# endif -+# define machine_is_maui() (machine_arch_type == MACH_TYPE_MAUI) -+#else -+# define machine_is_maui() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CYBERTRACKER_G -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CYBERTRACKER_G -+# endif -+# define machine_is_cybertracker_g() (machine_arch_type == MACH_TYPE_CYBERTRACKER_G) -+#else -+# define machine_is_cybertracker_g() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXDKN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXDKN -+# endif -+# define machine_is_nxdkn() (machine_arch_type == MACH_TYPE_NXDKN) -+#else -+# define machine_is_nxdkn() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MIO8390 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MIO8390 -+# endif -+# define machine_is_mio8390() (machine_arch_type == MACH_TYPE_MIO8390) -+#else -+# define machine_is_mio8390() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMI_BOARD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMI_BOARD -+# endif -+# define machine_is_omi_board() (machine_arch_type == MACH_TYPE_OMI_BOARD) -+#else -+# define machine_is_omi_board() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX21CIV -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX21CIV -+# endif -+# define machine_is_mx21civ() (machine_arch_type == MACH_TYPE_MX21CIV) -+#else -+# define machine_is_mx21civ() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MAHI_CDAC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MAHI_CDAC -+# endif -+# define machine_is_mahi_cdac() (machine_arch_type == MACH_TYPE_MAHI_CDAC) -+#else -+# define machine_is_mahi_cdac() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTX -+# endif -+# define machine_is_xscale_palmtx() (machine_arch_type == MACH_TYPE_XSCALE_PALMTX) -+#else -+# define machine_is_xscale_palmtx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C2413 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C2413 -+# endif -+# define machine_is_s3c2413() (machine_arch_type == MACH_TYPE_S3C2413) -+#else -+# define machine_is_s3c2413() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SAMSYS_EP0 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SAMSYS_EP0 -+# endif -+# define machine_is_samsys_ep0() (machine_arch_type == MACH_TYPE_SAMSYS_EP0) -+#else -+# define machine_is_samsys_ep0() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WG302V1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WG302V1 -+# endif -+# define machine_is_wg302v1() (machine_arch_type == MACH_TYPE_WG302V1) -+#else -+# define machine_is_wg302v1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WG302V2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WG302V2 -+# endif -+# define machine_is_wg302v2() (machine_arch_type == MACH_TYPE_WG302V2) -+#else -+# define machine_is_wg302v2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EB42X -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EB42X -+# endif -+# define machine_is_eb42x() (machine_arch_type == MACH_TYPE_EB42X) -+#else -+# define machine_is_eb42x() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IQ331ES -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IQ331ES -+# endif -+# define machine_is_iq331es() (machine_arch_type == MACH_TYPE_IQ331ES) -+#else -+# define machine_is_iq331es() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COSYDSP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COSYDSP -+# endif -+# define machine_is_cosydsp() (machine_arch_type == MACH_TYPE_COSYDSP) -+#else -+# define machine_is_cosydsp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_UPLAT7D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_UPLAT7D -+# endif -+# define machine_is_uplat7d_proto() (machine_arch_type == MACH_TYPE_UPLAT7D) -+#else -+# define machine_is_uplat7d_proto() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PTDAVINCI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PTDAVINCI -+# endif -+# define machine_is_ptdavinci() (machine_arch_type == MACH_TYPE_PTDAVINCI) -+#else -+# define machine_is_ptdavinci() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MBUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MBUS -+# endif -+# define machine_is_mbus() (machine_arch_type == MACH_TYPE_MBUS) -+#else -+# define machine_is_mbus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NADIA2VB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NADIA2VB -+# endif -+# define machine_is_nadia2vb() (machine_arch_type == MACH_TYPE_NADIA2VB) -+#else -+# define machine_is_nadia2vb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_R1000 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_R1000 -+# endif -+# define machine_is_r1000() (machine_arch_type == MACH_TYPE_R1000) -+#else -+# define machine_is_r1000() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HW90250 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HW90250 -+# endif -+# define machine_is_hw90250() (machine_arch_type == MACH_TYPE_HW90250) -+#else -+# define machine_is_hw90250() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_2430SDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_2430SDP -+# endif -+# define machine_is_omap_2430sdp() (machine_arch_type == MACH_TYPE_OMAP_2430SDP) -+#else -+# define machine_is_omap_2430sdp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DAVINCI_EVM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DAVINCI_EVM -+# endif -+# define machine_is_davinci_evm() (machine_arch_type == MACH_TYPE_DAVINCI_EVM) -+#else -+# define machine_is_davinci_evm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_TORNADO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_TORNADO -+# endif -+# define machine_is_omap_tornado() (machine_arch_type == MACH_TYPE_OMAP_TORNADO) -+#else -+# define machine_is_omap_tornado() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OLOCREEK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OLOCREEK -+# endif -+# define machine_is_olocreek() (machine_arch_type == MACH_TYPE_OLOCREEK) -+#else -+# define machine_is_olocreek() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PALMZ72 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PALMZ72 -+# endif -+# define machine_is_palmz72() (machine_arch_type == MACH_TYPE_PALMZ72) -+#else -+# define machine_is_palmz72() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXDB500 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXDB500 -+# endif -+# define machine_is_nxdb500() (machine_arch_type == MACH_TYPE_NXDB500) -+#else -+# define machine_is_nxdb500() (0) -+#endif -+ -+#ifdef CONFIG_MACH_APF9328 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_APF9328 -+# endif -+# define machine_is_apf9328() (machine_arch_type == MACH_TYPE_APF9328) -+#else -+# define machine_is_apf9328() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_WIPOQ -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_WIPOQ -+# endif -+# define machine_is_omap_wipoq() (machine_arch_type == MACH_TYPE_OMAP_WIPOQ) -+#else -+# define machine_is_omap_wipoq() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_TWIP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_TWIP -+# endif -+# define machine_is_omap_twip() (machine_arch_type == MACH_TYPE_OMAP_TWIP) -+#else -+# define machine_is_omap_twip() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTREO650 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTREO650 -+# endif -+# define machine_is_xscale_treo650() (machine_arch_type == MACH_TYPE_XSCALE_PALMTREO650) -+#else -+# define machine_is_xscale_treo650() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ACUMEN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ACUMEN -+# endif -+# define machine_is_acumen() (machine_arch_type == MACH_TYPE_ACUMEN) -+#else -+# define machine_is_acumen() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XP100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XP100 -+# endif -+# define machine_is_xp100() (machine_arch_type == MACH_TYPE_XP100) -+#else -+# define machine_is_xp100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FS2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FS2410 -+# endif -+# define machine_is_fs2410() (machine_arch_type == MACH_TYPE_FS2410) -+#else -+# define machine_is_fs2410() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA270_CERF -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA270_CERF -+# endif -+# define machine_is_pxa270_cerf() (machine_arch_type == MACH_TYPE_PXA270_CERF) -+#else -+# define machine_is_pxa270_cerf() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SQ2FTLPALM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SQ2FTLPALM -+# endif -+# define machine_is_sq2ftlpalm() (machine_arch_type == MACH_TYPE_SQ2FTLPALM) -+#else -+# define machine_is_sq2ftlpalm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BSEMSERVER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BSEMSERVER -+# endif -+# define machine_is_bsemserver() (machine_arch_type == MACH_TYPE_BSEMSERVER) -+#else -+# define machine_is_bsemserver() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NETCLIENT -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NETCLIENT -+# endif -+# define machine_is_netclient() (machine_arch_type == MACH_TYPE_NETCLIENT) -+#else -+# define machine_is_netclient() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSCALE_PALMTT5 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSCALE_PALMTT5 -+# endif -+# define machine_is_xscale_palmtt5() (machine_arch_type == MACH_TYPE_XSCALE_PALMTT5) -+#else -+# define machine_is_xscale_palmtt5() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMTC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMTC -+# endif -+# define machine_is_xscale_palmtc() (machine_arch_type == MACH_TYPE_OMAP_PALMTC) -+#else -+# define machine_is_xscale_palmtc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_APOLLON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_APOLLON -+# endif -+# define machine_is_omap_apollon() (machine_arch_type == MACH_TYPE_OMAP_APOLLON) -+#else -+# define machine_is_omap_apollon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ARGONLVEVB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ARGONLVEVB -+# endif -+# define machine_is_mxc30030evb() (machine_arch_type == MACH_TYPE_ARGONLVEVB) -+#else -+# define machine_is_mxc30030evb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REA_2D -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REA_2D -+# endif -+# define machine_is_rea_2d() (machine_arch_type == MACH_TYPE_REA_2D) -+#else -+# define machine_is_rea_2d() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TI3E524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TI3E524 -+# endif -+# define machine_is_eti3e524() (machine_arch_type == MACH_TYPE_TI3E524) -+#else -+# define machine_is_eti3e524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ATEB9200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ATEB9200 -+# endif -+# define machine_is_ateb9200() (machine_arch_type == MACH_TYPE_ATEB9200) -+#else -+# define machine_is_ateb9200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AUCKLAND -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AUCKLAND -+# endif -+# define machine_is_auckland() (machine_arch_type == MACH_TYPE_AUCKLAND) -+#else -+# define machine_is_auckland() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AK3320M -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AK3320M -+# endif -+# define machine_is_ak3220m() (machine_arch_type == MACH_TYPE_AK3320M) -+#else -+# define machine_is_ak3220m() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DURAMAX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DURAMAX -+# endif -+# define machine_is_duramax() (machine_arch_type == MACH_TYPE_DURAMAX) -+#else -+# define machine_is_duramax() (0) -+#endif -+ -+#ifdef CONFIG_MACH_N35 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_N35 -+# endif -+# define machine_is_n35() (machine_arch_type == MACH_TYPE_N35) -+#else -+# define machine_is_n35() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PRONGHORN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PRONGHORN -+# endif -+# define machine_is_pronghorn() (machine_arch_type == MACH_TYPE_PRONGHORN) -+#else -+# define machine_is_pronghorn() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FUNDY -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FUNDY -+# endif -+# define machine_is_fundy() (machine_arch_type == MACH_TYPE_FUNDY) -+#else -+# define machine_is_fundy() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LOGICPD_PXA270 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LOGICPD_PXA270 -+# endif -+# define machine_is_logicpd_pxa270() (machine_arch_type == MACH_TYPE_LOGICPD_PXA270) -+#else -+# define machine_is_logicpd_pxa270() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CPU777 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CPU777 -+# endif -+# define machine_is_cpu777() (machine_arch_type == MACH_TYPE_CPU777) -+#else -+# define machine_is_cpu777() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SIMICON9201 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SIMICON9201 -+# endif -+# define machine_is_simicon9201() (machine_arch_type == MACH_TYPE_SIMICON9201) -+#else -+# define machine_is_simicon9201() (0) -+#endif -+ -+#ifdef CONFIG_MACH_LEAP2_HPM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_LEAP2_HPM -+# endif -+# define machine_is_leap2_hpm() (machine_arch_type == MACH_TYPE_LEAP2_HPM) -+#else -+# define machine_is_leap2_hpm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CM922TXA10 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CM922TXA10 -+# endif -+# define machine_is_cm922txa10() (machine_arch_type == MACH_TYPE_CM922TXA10) -+#else -+# define machine_is_cm922txa10() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA -+# endif -+# define machine_is_sandgate() (machine_arch_type == MACH_TYPE_PXA) -+#else -+# define machine_is_sandgate() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2 -+# endif -+# define machine_is_sandgate2() (machine_arch_type == MACH_TYPE_SANDGATE2) -+#else -+# define machine_is_sandgate2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2G -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2G -+# endif -+# define machine_is_sandgate2g() (machine_arch_type == MACH_TYPE_SANDGATE2G) -+#else -+# define machine_is_sandgate2g() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SANDGATE2P -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SANDGATE2P -+# endif -+# define machine_is_sandgate2p() (machine_arch_type == MACH_TYPE_SANDGATE2P) -+#else -+# define machine_is_sandgate2p() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FRED_JACK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FRED_JACK -+# endif -+# define machine_is_fred_jack() (machine_arch_type == MACH_TYPE_FRED_JACK) -+#else -+# define machine_is_fred_jack() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TTG_COLOR1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TTG_COLOR1 -+# endif -+# define machine_is_ttg_color1() (machine_arch_type == MACH_TYPE_TTG_COLOR1) -+#else -+# define machine_is_ttg_color1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NXEB500HMI -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NXEB500HMI -+# endif -+# define machine_is_nxeb500hmi() (machine_arch_type == MACH_TYPE_NXEB500HMI) -+#else -+# define machine_is_nxeb500hmi() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NETDCU8 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NETDCU8 -+# endif -+# define machine_is_netdcu8() (machine_arch_type == MACH_TYPE_NETDCU8) -+#else -+# define machine_is_netdcu8() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ML675050_CPU_BOA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ML675050_CPU_BOA -+# endif -+# define machine_is_ml675050_cpu_boa() (machine_arch_type == MACH_TYPE_ML675050_CPU_BOA) -+#else -+# define machine_is_ml675050_cpu_boa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NG_FVX538 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NG_FVX538 -+# endif -+# define machine_is_ng_fvx538() (machine_arch_type == MACH_TYPE_NG_FVX538) -+#else -+# define machine_is_ng_fvx538() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NG_FVS338 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NG_FVS338 -+# endif -+# define machine_is_ng_fvs338() (machine_arch_type == MACH_TYPE_NG_FVS338) -+#else -+# define machine_is_ng_fvs338() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PNX4103 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PNX4103 -+# endif -+# define machine_is_pnx4103() (machine_arch_type == MACH_TYPE_PNX4103) -+#else -+# define machine_is_pnx4103() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HESDB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HESDB -+# endif -+# define machine_is_hesdb() (machine_arch_type == MACH_TYPE_HESDB) -+#else -+# define machine_is_hesdb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_XSILO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_XSILO -+# endif -+# define machine_is_xsilo() (machine_arch_type == MACH_TYPE_XSILO) -+#else -+# define machine_is_xsilo() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ESPRESSO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ESPRESSO -+# endif -+# define machine_is_espresso() (machine_arch_type == MACH_TYPE_ESPRESSO) -+#else -+# define machine_is_espresso() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMLC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMLC -+# endif -+# define machine_is_emlc() (machine_arch_type == MACH_TYPE_EMLC) -+#else -+# define machine_is_emlc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SISTERON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SISTERON -+# endif -+# define machine_is_sisteron() (machine_arch_type == MACH_TYPE_SISTERON) -+#else -+# define machine_is_sisteron() (0) -+#endif -+ -+#ifdef CONFIG_MACH_RX1950 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_RX1950 -+# endif -+# define machine_is_rx1950() (machine_arch_type == MACH_TYPE_RX1950) -+#else -+# define machine_is_rx1950() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TSC_VENUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TSC_VENUS -+# endif -+# define machine_is_tsc_venus() (machine_arch_type == MACH_TYPE_TSC_VENUS) -+#else -+# define machine_is_tsc_venus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DS101J -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DS101J -+# endif -+# define machine_is_ds101j() (machine_arch_type == MACH_TYPE_DS101J) -+#else -+# define machine_is_ds101j() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MXC30030ADS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MXC30030ADS -+# endif -+# define machine_is_mxc30030ads() (machine_arch_type == MACH_TYPE_MXC30030ADS) -+#else -+# define machine_is_mxc30030ads() (0) -+#endif -+ -+#ifdef CONFIG_MACH_FUJITSU_WIMAXSOC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_FUJITSU_WIMAXSOC -+# endif -+# define machine_is_fujitsu_wimaxsoc() (machine_arch_type == MACH_TYPE_FUJITSU_WIMAXSOC) -+#else -+# define machine_is_fujitsu_wimaxsoc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DUALPCMODEM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DUALPCMODEM -+# endif -+# define machine_is_dualpcmodem() (machine_arch_type == MACH_TYPE_DUALPCMODEM) -+#else -+# define machine_is_dualpcmodem() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GESBC9312 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GESBC9312 -+# endif -+# define machine_is_gesbc9312() (machine_arch_type == MACH_TYPE_GESBC9312) -+#else -+# define machine_is_gesbc9312() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCAPACHE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCAPACHE -+# endif -+# define machine_is_htcapache() (machine_arch_type == MACH_TYPE_HTCAPACHE) -+#else -+# define machine_is_htcapache() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXDP435 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXDP435 -+# endif -+# define machine_is_ixdp435() (machine_arch_type == MACH_TYPE_IXDP435) -+#else -+# define machine_is_ixdp435() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CATPROVT100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CATPROVT100 -+# endif -+# define machine_is_catprovt100() (machine_arch_type == MACH_TYPE_CATPROVT100) -+#else -+# define machine_is_catprovt100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PICOTUX1XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PICOTUX1XX -+# endif -+# define machine_is_picotux1xx() (machine_arch_type == MACH_TYPE_PICOTUX1XX) -+#else -+# define machine_is_picotux1xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PICOTUX2XX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PICOTUX2XX -+# endif -+# define machine_is_picotux2xx() (machine_arch_type == MACH_TYPE_PICOTUX2XX) -+#else -+# define machine_is_picotux2xx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DSMG600 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DSMG600 -+# endif -+# define machine_is_dsmg600() (machine_arch_type == MACH_TYPE_DSMG600) -+#else -+# define machine_is_dsmg600() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EMPC2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EMPC2 -+# endif -+# define machine_is_empc2() (machine_arch_type == MACH_TYPE_EMPC2) -+#else -+# define machine_is_empc2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VENTURA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VENTURA -+# endif -+# define machine_is_ventura() (machine_arch_type == MACH_TYPE_VENTURA) -+#else -+# define machine_is_ventura() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PHIDGET_SBC -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PHIDGET_SBC -+# endif -+# define machine_is_phidget_sbc() (machine_arch_type == MACH_TYPE_PHIDGET_SBC) -+#else -+# define machine_is_phidget_sbc() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IJ3K -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IJ3K -+# endif -+# define machine_is_ij3k() (machine_arch_type == MACH_TYPE_IJ3K) -+#else -+# define machine_is_ij3k() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PISGAH -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PISGAH -+# endif -+# define machine_is_pisgah() (machine_arch_type == MACH_TYPE_PISGAH) -+#else -+# define machine_is_pisgah() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_FSAMPLE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_FSAMPLE -+# endif -+# define machine_is_omap_fsample() (machine_arch_type == MACH_TYPE_OMAP_FSAMPLE) -+#else -+# define machine_is_omap_fsample() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SG720 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SG720 -+# endif -+# define machine_is_sg720() (machine_arch_type == MACH_TYPE_SG720) -+#else -+# define machine_is_sg720() (0) -+#endif -+ -+#ifdef CONFIG_MACH_REDFOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_REDFOX -+# endif -+# define machine_is_redfox() (machine_arch_type == MACH_TYPE_REDFOX) -+#else -+# define machine_is_redfox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MYSH_EP9315_1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MYSH_EP9315_1 -+# endif -+# define machine_is_mysh_ep9315_1() (machine_arch_type == MACH_TYPE_MYSH_EP9315_1) -+#else -+# define machine_is_mysh_ep9315_1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TPF106 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TPF106 -+# endif -+# define machine_is_tpf106() (machine_arch_type == MACH_TYPE_TPF106) -+#else -+# define machine_is_tpf106() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AT91RM9200KG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AT91RM9200KG -+# endif -+# define machine_is_at91rm9200kg() (machine_arch_type == MACH_TYPE_AT91RM9200KG) -+#else -+# define machine_is_at91rm9200kg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SLEDB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SLEDB -+# endif -+# define machine_is_racemt2() (machine_arch_type == MACH_TYPE_SLEDB) -+#else -+# define machine_is_racemt2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ONTRACK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ONTRACK -+# endif -+# define machine_is_ontrack() (machine_arch_type == MACH_TYPE_ONTRACK) -+#else -+# define machine_is_ontrack() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PM1200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PM1200 -+# endif -+# define machine_is_pm1200() (machine_arch_type == MACH_TYPE_PM1200) -+#else -+# define machine_is_pm1200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ESS24XXX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ESS24XXX -+# endif -+# define machine_is_ess24562() (machine_arch_type == MACH_TYPE_ESS24XXX) -+#else -+# define machine_is_ess24562() (0) -+#endif -+ -+#ifdef CONFIG_MACH_COREMP7 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_COREMP7 -+# endif -+# define machine_is_coremp7() (machine_arch_type == MACH_TYPE_COREMP7) -+#else -+# define machine_is_coremp7() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NEXCODER_6446 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NEXCODER_6446 -+# endif -+# define machine_is_nexcoder_6446() (machine_arch_type == MACH_TYPE_NEXCODER_6446) -+#else -+# define machine_is_nexcoder_6446() (0) -+#endif -+ -+#ifdef CONFIG_MACH_STVC8380 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_STVC8380 -+# endif -+# define machine_is_stvc8380() (machine_arch_type == MACH_TYPE_STVC8380) -+#else -+# define machine_is_stvc8380() (0) -+#endif -+ -+#ifdef CONFIG_MACH_TEKLYNX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_TEKLYNX -+# endif -+# define machine_is_teklynx() (machine_arch_type == MACH_TYPE_TEKLYNX) -+#else -+# define machine_is_teklynx() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CARBONADO -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CARBONADO -+# endif -+# define machine_is_carbonado() (machine_arch_type == MACH_TYPE_CARBONADO) -+#else -+# define machine_is_carbonado() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SYSMOS_MP730 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SYSMOS_MP730 -+# endif -+# define machine_is_sysmos_mp730() (machine_arch_type == MACH_TYPE_SYSMOS_MP730) -+#else -+# define machine_is_sysmos_mp730() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SNAPPER_CL15 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SNAPPER_CL15 -+# endif -+# define machine_is_snapper_cl15() (machine_arch_type == MACH_TYPE_SNAPPER_CL15) -+#else -+# define machine_is_snapper_cl15() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PGIGIM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PGIGIM -+# endif -+# define machine_is_pgigim() (machine_arch_type == MACH_TYPE_PGIGIM) -+#else -+# define machine_is_pgigim() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PTX9160P2 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PTX9160P2 -+# endif -+# define machine_is_ptx9160p2() (machine_arch_type == MACH_TYPE_PTX9160P2) -+#else -+# define machine_is_ptx9160p2() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DCORE1 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DCORE1 -+# endif -+# define machine_is_dcore1() (machine_arch_type == MACH_TYPE_DCORE1) -+#else -+# define machine_is_dcore1() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VICTORPXA -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VICTORPXA -+# endif -+# define machine_is_victorpxa() (machine_arch_type == MACH_TYPE_VICTORPXA) -+#else -+# define machine_is_victorpxa() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MX2DTB -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MX2DTB -+# endif -+# define machine_is_mx2dtb() (machine_arch_type == MACH_TYPE_MX2DTB) -+#else -+# define machine_is_mx2dtb() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PXA_IREX_ER0100 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PXA_IREX_ER0100 -+# endif -+# define machine_is_pxa_irex_er0100() (machine_arch_type == MACH_TYPE_PXA_IREX_ER0100) -+#else -+# define machine_is_pxa_irex_er0100() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_PALMZ71 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_PALMZ71 -+# endif -+# define machine_is_omap_palmz71() (machine_arch_type == MACH_TYPE_OMAP_PALMZ71) -+#else -+# define machine_is_omap_palmz71() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BARTEC_DEG -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BARTEC_DEG -+# endif -+# define machine_is_bartec_deg() (machine_arch_type == MACH_TYPE_BARTEC_DEG) -+#else -+# define machine_is_bartec_deg() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HW50251 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HW50251 -+# endif -+# define machine_is_hw50251() (machine_arch_type == MACH_TYPE_HW50251) -+#else -+# define machine_is_hw50251() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IBOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IBOX -+# endif -+# define machine_is_ibox() (machine_arch_type == MACH_TYPE_IBOX) -+#else -+# define machine_is_ibox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ATLASLH7A404 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ATLASLH7A404 -+# endif -+# define machine_is_atlaslh7a404() (machine_arch_type == MACH_TYPE_ATLASLH7A404) -+#else -+# define machine_is_atlaslh7a404() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PT2026 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PT2026 -+# endif -+# define machine_is_pt2026() (machine_arch_type == MACH_TYPE_PT2026) -+#else -+# define machine_is_pt2026() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCALPINE -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCALPINE -+# endif -+# define machine_is_htcalpine() (machine_arch_type == MACH_TYPE_HTCALPINE) -+#else -+# define machine_is_htcalpine() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BARTEC_VTU -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BARTEC_VTU -+# endif -+# define machine_is_bartec_vtu() (machine_arch_type == MACH_TYPE_BARTEC_VTU) -+#else -+# define machine_is_bartec_vtu() (0) -+#endif -+ -+#ifdef CONFIG_MACH_VCOREII -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_VCOREII -+# endif -+# define machine_is_vcoreii() (machine_arch_type == MACH_TYPE_VCOREII) -+#else -+# define machine_is_vcoreii() (0) -+#endif -+ -+#ifdef CONFIG_MACH_PDNB3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_PDNB3 -+# endif -+# define machine_is_pdnb3() (machine_arch_type == MACH_TYPE_PDNB3) -+#else -+# define machine_is_pdnb3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_HTCBEETLES -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_HTCBEETLES -+# endif -+# define machine_is_htcbeetles() (machine_arch_type == MACH_TYPE_HTCBEETLES) -+#else -+# define machine_is_htcbeetles() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C6400 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C6400 -+# endif -+# define machine_is_s3c6400() (machine_arch_type == MACH_TYPE_S3C6400) -+#else -+# define machine_is_s3c6400() (0) -+#endif -+ -+#ifdef CONFIG_MACH_S3C2443 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_S3C2443 -+# endif -+# define machine_is_s3c2443() (machine_arch_type == MACH_TYPE_S3C2443) -+#else -+# define machine_is_s3c2443() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OMAP_LDK -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OMAP_LDK -+# endif -+# define machine_is_omap_ldk() (machine_arch_type == MACH_TYPE_OMAP_LDK) -+#else -+# define machine_is_omap_ldk() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2460 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2460 -+# endif -+# define machine_is_smdk2460() (machine_arch_type == MACH_TYPE_SMDK2460) -+#else -+# define machine_is_smdk2460() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2440 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2440 -+# endif -+# define machine_is_smdk2440() (machine_arch_type == MACH_TYPE_SMDK2440) -+#else -+# define machine_is_smdk2440() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2412 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2412 -+# endif -+# define machine_is_smdk2412() (machine_arch_type == MACH_TYPE_SMDK2412) -+#else -+# define machine_is_smdk2412() (0) -+#endif -+ -+#ifdef CONFIG_MACH_WEBBOX -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_WEBBOX -+# endif -+# define machine_is_webbox() (machine_arch_type == MACH_TYPE_WEBBOX) -+#else -+# define machine_is_webbox() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CWWNDP -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CWWNDP -+# endif -+# define machine_is_cwwndp() (machine_arch_type == MACH_TYPE_CWWNDP) -+#else -+# define machine_is_cwwndp() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DRAGON -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DRAGON -+# endif -+# define machine_is_dragon() (machine_arch_type == MACH_TYPE_DRAGON) -+#else -+# define machine_is_dragon() (0) -+#endif -+ -+#ifdef CONFIG_MACH_OPENDO_CPU_BOARD -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_OPENDO_CPU_BOARD -+# endif -+# define machine_is_opendo_cpu_board() (machine_arch_type == MACH_TYPE_OPENDO_CPU_BOARD) -+#else -+# define machine_is_opendo_cpu_board() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CCM2200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CCM2200 -+# endif -+# define machine_is_ccm2200() (machine_arch_type == MACH_TYPE_CCM2200) -+#else -+# define machine_is_ccm2200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_ETWARM -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_ETWARM -+# endif -+# define machine_is_etwarm() (machine_arch_type == MACH_TYPE_ETWARM) -+#else -+# define machine_is_etwarm() (0) -+#endif -+ -+#ifdef CONFIG_MACH_M93030 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_M93030 -+# endif -+# define machine_is_m93030() (machine_arch_type == MACH_TYPE_M93030) -+#else -+# define machine_is_m93030() (0) -+#endif -+ -+#ifdef CONFIG_MACH_CC7U -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_CC7U -+# endif -+# define machine_is_cc7u() (machine_arch_type == MACH_TYPE_CC7U) -+#else -+# define machine_is_cc7u() (0) -+#endif -+ -+#ifdef CONFIG_MACH_MTT_RANGER -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_MTT_RANGER -+# endif -+# define machine_is_mtt_ranger() (machine_arch_type == MACH_TYPE_MTT_RANGER) -+#else -+# define machine_is_mtt_ranger() (0) -+#endif -+ -+#ifdef CONFIG_MACH_NEXUS -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_NEXUS -+# endif -+# define machine_is_nexus() (machine_arch_type == MACH_TYPE_NEXUS) -+#else -+# define machine_is_nexus() (0) -+#endif -+ -+#ifdef CONFIG_MACH_DESMAN -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_DESMAN -+# endif -+# define machine_is_desman() (machine_arch_type == MACH_TYPE_DESMAN) -+#else -+# define machine_is_desman() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BKDE303 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BKDE303 -+# endif -+# define machine_is_bkde303() (machine_arch_type == MACH_TYPE_BKDE303) -+#else -+# define machine_is_bkde303() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SMDK2413 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SMDK2413 -+# endif -+# define machine_is_smdk2413() (machine_arch_type == MACH_TYPE_SMDK2413) -+#else -+# define machine_is_smdk2413() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AML_M7200 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AML_M7200 -+# endif -+# define machine_is_aml_m7200() (machine_arch_type == MACH_TYPE_AML_M7200) -+#else -+# define machine_is_aml_m7200() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AML_M5900 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AML_M5900 -+# endif -+# define machine_is_aml_m5900() (machine_arch_type == MACH_TYPE_AML_M5900) -+#else -+# define machine_is_aml_m5900() (0) -+#endif -+ -+#ifdef CONFIG_MACH_SG640 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_SG640 -+# endif -+# define machine_is_sg640() (machine_arch_type == MACH_TYPE_SG640) -+#else -+# define machine_is_sg640() (0) -+#endif -+ -+#ifdef CONFIG_MACH_EDG79524 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_EDG79524 -+# endif -+# define machine_is_edg79524() (machine_arch_type == MACH_TYPE_EDG79524) -+#else -+# define machine_is_edg79524() (0) -+#endif -+ -+#ifdef CONFIG_MACH_AI2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_AI2410 -+# endif -+# define machine_is_ai2410() (machine_arch_type == MACH_TYPE_AI2410) -+#else -+# define machine_is_ai2410() (0) -+#endif -+ -+#ifdef CONFIG_MACH_IXP465 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_IXP465 -+# endif -+# define machine_is_ixp465() (machine_arch_type == MACH_TYPE_IXP465) -+#else -+# define machine_is_ixp465() (0) -+#endif -+ -+#ifdef CONFIG_MACH_BALLOON3 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_BALLOON3 -+# endif -+# define machine_is_balloon3() (machine_arch_type == MACH_TYPE_BALLOON3) -+#else -+# define machine_is_balloon3() (0) -+#endif -+ -+#ifdef CONFIG_MACH_QT2410 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_QT2410 -+# endif -+# define machine_is_qt2410() (machine_arch_type == MACH_TYPE_QT2410) -+#else -+# define machine_is_qt2410() (0) -+#endif -+ -+#ifdef CONFIG_MACH_GTA01 -+# ifdef machine_arch_type -+# undef machine_arch_type -+# define machine_arch_type __machine_arch_type -+# else -+# define machine_arch_type MACH_TYPE_GTA01 -+# endif -+# define machine_is_gta01() (machine_arch_type == MACH_TYPE_GTA01) -+#else -+# define machine_is_gta01() (0) -+#endif -+ -+ - /* - * These have not yet been registered - */ -Index: git/include/configs/gta01.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/include/configs/gta01.h 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,233 @@ -+/* -+ * (C) Copyright 2006 Harald Welte <hwelte@hmw-consulting.de> -+ * -+ * Configuation settings for the FIC GTA01 Linux GSM phone -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+ -+/* we want to start u-boot directly from within NAND flash */ -+#define CONFIG_S3C2410_NAND_BOOT 1 -+ -+/* -+ * High Level Configuration Options -+ * (easy to change) -+ */ -+#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -+#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -+#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ -+ -+/* input clock of PLL */ -+#define CONFIG_SYS_CLK_FREQ 12000000/* the GTA01 has 12MHz input clock */ -+ -+ -+#define USE_920T_MMU 1 -+#define CONFIG_USE_IRQ 1 -+ -+/* -+ * Size of malloc() pool -+ */ -+#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ -+ -+/* -+ * Hardware drivers -+ */ -+ -+/* -+ * select serial console configuration -+ */ -+#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on GTA01 */ -+//#define CONFIG_HWFLOW 1 -+ -+/************************************************************ -+ * RTC -+ ************************************************************/ -+#define CONFIG_RTC_S3C24X0 1 -+ -+/* allow to overwrite serial and ethaddr */ -+#define CONFIG_ENV_OVERWRITE -+ -+#define CONFIG_BAUDRATE 115200 -+ -+/*********************************************************** -+ * Command definition -+ ***********************************************************/ -+#define CONFIG_COMMANDS (\ -+ CFG_CMD_BDI | \ -+ CFG_CMD_LOADS | \ -+ CFG_CMD_LAODB | \ -+ CFG_CMD_IMI | \ -+ CFG_CMD_CACHE | \ -+ CFG_CMD_MEMORY | \ -+ CFG_CMD_ENV | \ -+ /* CFG_CMD_IRQ | */ \ -+ CFG_CMD_BOOTD | \ -+ CFG_CMD_CONSOLE | \ -+ CFG_CMD_ASKENV | \ -+ CFG_CMD_RUN | \ -+ CFG_CMD_ECHO | \ -+ CFG_CMD_I2C | \ -+ CFG_CMD_REGINFO | \ -+ CFG_CMD_IMMAP | \ -+ CFG_CMD_DATE | \ -+ CFG_CMD_AUTOSCRIPT | \ -+ CFG_CMD_BSP | \ -+ CFG_CMD_ELF | \ -+ CFG_CMD_MISC | \ -+ CFG_CMD_USB | \ -+ CFG_CMD_JFFS2 | \ -+ CFG_CMD_DIAG | \ -+ /* CFG_CMD_HWFLOW | */ \ -+ CFG_CMD_SAVES | \ -+ CFG_CMD_NAND | \ -+ CFG_CMD_PORTIO | \ -+ CFG_CMD_MMC | \ -+ CFG_CMD_FAT | \ -+ CFG_CMD_EXT2 | \ -+ 0) -+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -+#include <cmd_confdefs.h> -+ -+#define CONFIG_BOOTDELAY 3 -+#define CONFIG_BOOTARGS "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8" -+#define CONFIG_BOOTCOMMAND "nand read 0x32000000 0x34000 0x200000; bootm 0x32000000" -+ -+#define CONFIG_DOS_PARTITION 1 -+ -+#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -+#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -+/* what's this ? it's not used anywhere */ -+#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -+#endif -+ -+/* -+ * Miscellaneous configurable options -+ */ -+#define CFG_LONGHELP /* undef to save memory */ -+#define CFG_PROMPT "GTA01 # " /* Monitor Command Prompt */ -+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -+#define CFG_MAXARGS 16 /* max number of command args */ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -+ -+#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -+#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ -+ -+#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ -+ -+#define CFG_LOAD_ADDR 0x33000000 /* default load address */ -+ -+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -+/* it to wrap 100 times (total 1562500) to get 1 sec. */ -+#define CFG_HZ 1562500 -+ -+/* valid baudrates */ -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+ -+/*----------------------------------------------------------------------- -+ * Stack sizes -+ * -+ * The stack sizes are set up in start.S using the settings below -+ */ -+#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -+#ifdef CONFIG_USE_IRQ -+#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -+#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -+#endif -+ -+#define CONFIG_USB_OHCI 1 -+ -+/*----------------------------------------------------------------------- -+ * Physical Memory Map -+ */ -+#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -+#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -+#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -+#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ -+ -+/*----------------------------------------------------------------------- -+ * FLASH and environment organization -+ */ -+ -+/* No NOR flash in this device */ -+#define CFG_NO_FLASH 1 -+ -+#define CFG_ENV_IS_IN_NAND 1 -+#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -+#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ -+ -+#define NAND_MAX_CHIPS 1 -+#define CFG_NAND_BASE 0x4e000000 -+#define CFG_MAX_NAND_DEVICE 1 -+ -+#define CONFIG_MMC 1 -+#define CFG_MMC_BASE 0xff000000 -+ -+/* EXT2 driver */ -+#define CONFIG_EXT2 1 -+ -+#if 0 -+/* FAT driver in u-boot is broken currently */ -+#define CONFIG_FAT 1 -+#define CONFIG_SUPPORT_VFAT 1 -+#endif -+ -+/* JFFS2 driver */ -+#define CONFIG_JFFS2_CMDLINE 1 -+#define CONFIG_JFFS2_NAND 1 -+#define CONFIG_JFFS2_NAND_DEV 0 -+#define CONFIG_JFFS2_NAND_OFF 0x634000 -+#define CONFIG_JFFS2_NAND_SIZE 0x39cc000 -+ -+/* ATAG configuration */ -+#define CONFIG_INITRD_TAG 1 -+#define CONFIG_SETUP_MEMORY_TAGS 1 -+#define CONFIG_CMDLINE_TAG 1 -+#define CONFIG_REVISION_TAG 1 -+#if 0 -+#define CONFIG_SERIAL_TAG 1 -+#endif -+ -+#define CONFIG_DRIVER_S3C24X0_I2C 1 -+#define CONFIG_HARD_I2C 1 -+#define CFG_I2C_SPEED 400000 /* 400kHz according to PCF50606 data sheet */ -+#define CFG_I2C_SLAVE 0x7f -+ -+/* we have a board_late_init() function */ -+#define BOARD_LATE_INIT 1 -+ -+#if 0 -+#define CONFIG_VIDEO -+#define CONFIG_VIDEO_S3C2410 -+#define CONFIG_CFB_CONSOLE -+#define CONFIG_VIDEO_LOGO -+#define CONFIG_VGA_AS_SINGLE_DEVICE -+ -+#define VIDEO_KBD_INIT_FCT 0 -+#define VIDEO_TSTC_FCT serial_tstc -+#define VIDEO_GETC_FCT serial_getc -+ -+#define LCD_VIDEO_ADDR 0x33d00000 -+#endif -+ -+#endif /* __CONFIG_H */ -Index: git/include/configs/qt2410.h -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ git/include/configs/qt2410.h 2007-01-04 12:21:18.000000000 +0100 -@@ -0,0 +1,245 @@ -+/* -+ * (C) Copyright 2002 -+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com> -+ * Marius Groeger <mgroeger@sysgo.de> -+ * Gary Jennejohn <gj@denx.de> -+ * David Mueller <d.mueller@elsoft.ch> -+ * -+ * Configuation settings for the SAMSUNG SMDK2410 board. -+ * -+ * See file CREDITS for list of people who contributed to this -+ * project. -+ * -+ * This program is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU General Public License as -+ * published by the Free Software Foundation; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ */ -+ -+#ifndef __CONFIG_H -+#define __CONFIG_H -+ -+#if 1 -+/* If we want to start u-boot from usb bootloader in NOR flash */ -+#define CONFIG_SKIP_RELOCATE_UBOOT 1 -+#define CONFIG_SKIP_LOWLEVEL_INIT 1 -+#else -+/* If we want to start u-boot directly from within NAND flash */ -+#define CONFIG_S3C2410_NAND_BOOT 1 -+#endif -+ -+/* -+ * High Level Configuration Options -+ * (easy to change) -+ */ -+#define CONFIG_ARM920T 1 /* This is an ARM920T Core */ -+#define CONFIG_S3C2410 1 /* in a SAMSUNG S3C2410 SoC */ -+#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */ -+ -+/* input clock of PLL */ -+#define CONFIG_SYS_CLK_FREQ 12000000/* the SMDK2410 has 12MHz input clock */ -+ -+ -+#define USE_920T_MMU 1 -+#define CONFIG_USE_IRQ 1 -+//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */ -+ -+/* -+ * Size of malloc() pool -+ */ -+#define CFG_MALLOC_LEN (CFG_ENV_SIZE + 128*1024) -+#define CFG_GBL_DATA_SIZE 128 /* size in bytes reserved for initial data */ -+ -+/* -+ * Hardware drivers -+ */ -+#define CONFIG_DRIVER_CS8900 1 /* we have a CS8900 on-board */ -+#define CS8900_BASE 0x19000300 -+#define CS8900_BUS16 1 /* the Linux driver does accesses as shorts */ -+ -+/* -+ * select serial console configuration -+ */ -+#define CONFIG_SERIAL1 1 /* we use SERIAL 1 on SMDK2410 */ -+#define CONFIG_HWFLOW 1 -+ -+/************************************************************ -+ * RTC -+ ************************************************************/ -+#define CONFIG_RTC_S3C24X0 1 -+ -+/* allow to overwrite serial and ethaddr */ -+#define CONFIG_ENV_OVERWRITE -+ -+#define CONFIG_BAUDRATE 115200 -+ -+/*********************************************************** -+ * Command definition -+ ***********************************************************/ -+#define CONFIG_COMMANDS \ -+ (CONFIG_CMD_DFL | \ -+ CFG_CMD_BSP | \ -+ CFG_CMD_CACHE | \ -+ CFG_CMD_DATE | \ -+ CFG_CMD_DHCP | \ -+ CFG_CMD_DIAG | \ -+ CFG_CMD_ELF | \ -+ CFG_CMD_EXT2 | \ -+ CFG_CMD_FAT | \ -+ CFG_CMD_HWFLOW | \ -+ /* CFG_CMD_IDE | */ \ -+ /* CFG_CMD_IRQ | */ \ -+ CFG_CMD_JFFS2 | \ -+ CFG_CMD_MMC | \ -+ CFG_CMD_NAND | \ -+ CFG_CMD_PING | \ -+ CFG_CMD_PORTIO | \ -+ CFG_CMD_REGINFO | \ -+ CFG_CMD_SAVES | \ -+ CFG_CMD_USB) -+ -+/* this must be included AFTER the definition of CONFIG_COMMANDS (if any) */ -+#include <cmd_confdefs.h> -+ -+#define CONFIG_BOOTDELAY 3 -+#define CONFIG_BOOTARGS "rootfstype=jffs2 root=/dev/mtdblock4 console=ttySAC0,115200 console=tty0 loglevel=8" -+#define CONFIG_ETHADDR 01:ab:cd:ef:fe:dc -+#define CONFIG_NETMASK 255.255.255.0 -+#define CONFIG_IPADDR 10.0.0.110 -+#define CONFIG_SERVERIP 10.0.0.1 -+/*#define CONFIG_BOOTFILE "elinos-lart" */ -+#define CONFIG_BOOTCOMMAND "nand load 0x32000000 0x34000 0x200000; bootm 0x32000000" -+ -+#define CONFIG_DOS_PARTITION 1 -+ -+#if (CONFIG_COMMANDS & CFG_CMD_KGDB) -+#define CONFIG_KGDB_BAUDRATE 115200 /* speed to run kgdb serial port */ -+/* what's this ? it's not used anywhere */ -+#define CONFIG_KGDB_SER_INDEX 1 /* which serial port to use */ -+#endif -+ -+/* -+ * Miscellaneous configurable options -+ */ -+#define CFG_LONGHELP /* undef to save memory */ -+#define CFG_PROMPT "QT2410 # " /* Monitor Command Prompt */ -+#define CFG_CBSIZE 256 /* Console I/O Buffer Size */ -+#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16) /* Print Buffer Size */ -+#define CFG_MAXARGS 16 /* max number of command args */ -+#define CFG_BARGSIZE CFG_CBSIZE /* Boot Argument Buffer Size */ -+ -+#define CFG_MEMTEST_START 0x30000000 /* memtest works on */ -+#define CFG_MEMTEST_END 0x33F00000 /* 63 MB in DRAM */ -+ -+#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */ -+ -+#define CFG_LOAD_ADDR 0x33000000 /* default load address */ -+ -+/* the PWM TImer 4 uses a counter of 15625 for 10 ms, so we need */ -+/* it to wrap 100 times (total 1562500) to get 1 sec. */ -+#define CFG_HZ 1562500 -+ -+/* valid baudrates */ -+#define CFG_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } -+ -+/*----------------------------------------------------------------------- -+ * Stack sizes -+ * -+ * The stack sizes are set up in start.S using the settings below -+ */ -+#define CONFIG_STACKSIZE (128*1024) /* regular stack */ -+#ifdef CONFIG_USE_IRQ -+#define CONFIG_STACKSIZE_IRQ (4*1024) /* IRQ stack */ -+#define CONFIG_STACKSIZE_FIQ (4*1024) /* FIQ stack */ -+#endif -+ -+/* IDE/ATA config */ -+ -+#if 0 -+#define CFG_IDE_MAXBUS 1 -+#define CFG_IDE_MAXDEVICE 2 -+#define CFG_IDE_PREINIT 0 -+ -+#define CFG_ATA_BASE_ADDR -+#endif -+ -+#define CONFIG_USB_OHCI 1 -+ -+/*----------------------------------------------------------------------- -+ * Physical Memory Map -+ */ -+#define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ -+#define PHYS_SDRAM_1 0x30000000 /* SDRAM Bank #1 */ -+#define PHYS_SDRAM_1_SIZE 0x04000000 /* 64 MB */ -+#define PHYS_SDRAM_RES_SIZE 0x00200000 /* 2 MB for frame buffer */ -+ -+#define PHYS_FLASH_1 0x00000000 /* Flash Bank #1 */ -+ -+#define CFG_FLASH_BASE PHYS_FLASH_1 -+ -+/*----------------------------------------------------------------------- -+ * FLASH and environment organization -+ */ -+ -+#define CONFIG_AMD_LV400 1 /* uncomment this if you have a LV400 flash */ -+ -+#define CFG_MAX_FLASH_BANKS 1 /* max number of memory banks */ -+#define PHYS_FLASH_SIZE 0x00080000 /* 512KB */ -+#define CFG_MAX_FLASH_SECT (11) /* max number of sectors on one chip */ -+ -+/* timeout values are in ticks */ -+#define CFG_FLASH_ERASE_TOUT (5*CFG_HZ) /* Timeout for Flash Erase */ -+#define CFG_FLASH_WRITE_TOUT (5*CFG_HZ) /* Timeout for Flash Write */ -+ -+#define CFG_ENV_IS_IN_NAND 1 -+#define CFG_ENV_SIZE 0x4000 /* 16k Total Size of Environment Sector */ -+#define CFG_ENV_OFFSET 0x30000 /* environment after bootloader */ -+ -+#define NAND_MAX_CHIPS 1 -+#define CFG_NAND_BASE 0x4e000000 -+#define CFG_MAX_NAND_DEVICE 1 -+ -+#define CONFIG_MMC 1 -+#define CFG_MMC_BASE 0xff000000 -+ -+#define CONFIG_EXT2 1 -+ -+/* FAT driver in u-boot is broken currently */ -+#define CONFIG_FAT 1 -+#define CONFIG_SUPPORT_VFAT 1 -+ -+/* ATAG configuration */ -+#define CONFIG_INITRD_TAG 1 -+#define CONFIG_SETUP_MEMORY_TAGS 1 -+#define CONFIG_CMDLINE_TAG 1 -+#if 0 -+#define CONFIG_SERIAL_TAG 1 -+#define CONFIG_REVISION_TAG 1 -+#endif -+ -+ -+#if 0 -+#define CONFIG_VIDEO -+#define CONFIG_VIDEO_S3C2410 -+#define CONFIG_CFB_CONSOLE -+#define CONFIG_VIDEO_LOGO -+#define CONFIG_VGA_AS_SINGLE_DEVICE -+ -+#define VIDEO_KBD_INIT_FCT 0 -+#define VIDEO_TSTC_FCT serial_tstc -+#define VIDEO_GETC_FCT serial_getc -+ -+#define LCD_VIDEO_ADDR 0x33d00000 -+#endif -+ -+#endif /* __CONFIG_H */ -Index: git/include/s3c2410.h -=================================================================== ---- git.orig/include/s3c2410.h 2007-01-04 12:21:15.000000000 +0100 -+++ git/include/s3c2410.h 2007-01-04 12:21:18.000000000 +0100 -@@ -38,12 +38,6 @@ - #define S3C2410_ECCSIZE 512 - #define S3C2410_ECCBYTES 3 - --typedef enum { -- S3C24X0_UART0, -- S3C24X0_UART1, -- S3C24X0_UART2 --} S3C24X0_UARTS_NR; -- - /* S3C2410 device base addresses */ - #define S3C24X0_MEMCTL_BASE 0x48000000 - #define S3C24X0_USB_HOST_BASE 0x49000000 -@@ -65,9 +59,23 @@ - #define S3C2410_SDI_BASE 0x5A000000 - - -+#define oNFCONF 0x00 -+#define oNFCMD 0x04 -+#define oNFADDR 0x08 -+#define oNFDATA 0x0C -+#define oNFSTAT 0x10 -+#define oNFECC 0x14 -+ -+#ifndef __ASSEMBLER__ -+ - /* include common stuff */ - #include <s3c24x0.h> - -+typedef enum { -+ S3C24X0_UART0, -+ S3C24X0_UART1, -+ S3C24X0_UART2 -+} S3C24X0_UARTS_NR; - - static inline S3C24X0_MEMCTL * const S3C24X0_GetBase_MEMCTL(void) - { -@@ -142,6 +150,7 @@ - return (S3C2410_SDI * const)S3C2410_SDI_BASE; - } - -+#endif - - /* ISR */ - #define pISR_RESET (*(unsigned *)(_ISR_STARTADDRESS+0x0)) -Index: git/include/s3c24x0.h -=================================================================== ---- git.orig/include/s3c24x0.h 2007-01-04 12:21:15.000000000 +0100 -+++ git/include/s3c24x0.h 2007-01-04 12:21:18.000000000 +0100 -@@ -637,13 +637,7 @@ - S3C24X0_REG32 SDIDCNT; - S3C24X0_REG32 SDIDSTA; - S3C24X0_REG32 SDIFSTA; --#ifdef __BIG_ENDIAN -- S3C24X0_REG8 res[3]; -- S3C24X0_REG8 SDIDAT; --#else -- S3C24X0_REG8 SDIDAT; -- S3C24X0_REG8 res[3]; --#endif -+ S3C24X0_REG32 SDIDAT; - S3C24X0_REG32 SDIIMSK; - } /*__attribute__((__packed__))*/ S3C2410_SDI; - -@@ -1123,11 +1117,7 @@ - #define rSDIDatCnt (*(volatile unsigned *)0x5A000030) - #define rSDIDatSta (*(volatile unsigned *)0x5A000034) - #define rSDIFSTA (*(volatile unsigned *)0x5A000038) --#ifdef __BIG_ENDIAN --#define rSDIDAT (*(volatile unsigned char *)0x5A00003F) --#else --#define rSDIDAT (*(volatile unsigned char *)0x5A00003C) --#endif -+#define rSDIDAT (*(volatile unsigned *)0x5A00003C) - #define rSDIIntMsk (*(volatile unsigned *)0x5A000040) - - #endif diff --git a/packages/uboot/files/uboot-20070311-tools_makefile_ln_sf.patch b/packages/uboot/files/uboot-20070311-tools_makefile_ln_sf.patch new file mode 100644 index 0000000000..e90cc0de71 --- /dev/null +++ b/packages/uboot/files/uboot-20070311-tools_makefile_ln_sf.patch @@ -0,0 +1,19 @@ +--- a/tools/Makefile 2007-03-11 00:55:44.000000000 +0000 ++++ b/tools/Makefile 2007-03-11 00:55:52.000000000 +0000 +@@ -194,14 +194,14 @@ + + $(obj)environment.c: + @rm -f $(obj)environment.c +- ln -s $(src)../common/environment.c $(obj)environment.c ++ ln -sf $(src)../common/environment.c $(obj)environment.c + + $(obj)environment.o: $(obj)environment.c + $(CC) -g $(HOST_ENVIRO_CFLAGS) $(CPPFLAGS) -c -o $@ $< + + $(obj)crc32.c: + @rm -f $(obj)crc32.c +- ln -s $(src)../lib_generic/crc32.c $(obj)crc32.c ++ ln -sf $(src)../lib_generic/crc32.c $(obj)crc32.c + + $(LOGO_H): $(obj)bmp_logo $(LOGO_BMP) + $(obj)./bmp_logo $(LOGO_BMP) >$@ diff --git a/packages/uboot/files/uboot-eabi-fix-HACK.patch b/packages/uboot/files/uboot-eabi-fix-HACK.patch new file mode 100644 index 0000000000..65b212917d --- /dev/null +++ b/packages/uboot/files/uboot-eabi-fix-HACK.patch @@ -0,0 +1,197 @@ +Index: git/lib_arm/div0.c +=================================================================== +--- git.orig/lib_arm/div0.c ++++ git/lib_arm/div0.c +@@ -22,9 +22,3 @@ + */ + + /* Replacement (=dummy) for GNU/Linux division-by zero handler */ +-void __div0 (void) +-{ +- extern void hang (void); +- +- hang(); +-} +Index: git/board/neo1973/common/bootmenu.c +=================================================================== +--- git.orig/board/neo1973/common/bootmenu.c ++++ git/board/neo1973/common/bootmenu.c +@@ -118,3 +118,14 @@ void neo1973_bootmenu(void) + bootmenu_add("Factory reset", factory_reset, NULL); + bootmenu(); + } ++ ++void raise() ++{ ++ serial_printf( "*** something's wrong... please reset ***\n" ); ++} ++ ++void abort() ++{ ++ serial_printf( "*** something's wrong... please reset ***\n" ); ++} ++ +Index: git/board/neo1973/gta01/u-boot.lds +=================================================================== +--- git.orig/board/neo1973/gta01/u-boot.lds ++++ git/board/neo1973/gta01/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/gta02/u-boot.lds +=================================================================== +--- git.orig/board/neo1973/gta02/u-boot.lds ++++ git/board/neo1973/gta02/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/common/lowlevel_foo.lds +=================================================================== +--- git.orig/board/neo1973/common/lowlevel_foo.lds ++++ git/board/neo1973/common/lowlevel_foo.lds +@@ -37,6 +37,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/hxd8/hxd8.c +=================================================================== +--- git.orig/board/hxd8/hxd8.c ++++ git/board/hxd8/hxd8.c +@@ -187,3 +187,6 @@ unsigned int dynpart_size[] = { + char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + ++void raise() {} ++ ++void abort() {} +Index: git/board/hxd8/u-boot.lds +=================================================================== +--- git.orig/board/hxd8/u-boot.lds ++++ git/board/hxd8/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/hxd8/lowlevel_foo.lds +=================================================================== +--- git.orig/board/hxd8/lowlevel_foo.lds ++++ git/board/hxd8/lowlevel_foo.lds +@@ -37,6 +37,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/qt2410/qt2410.c +=================================================================== +--- git.orig/board/qt2410/qt2410.c ++++ git/board/qt2410/qt2410.c +@@ -156,3 +156,7 @@ unsigned int dynpart_size[] = { + char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + ++void raise() {} ++ ++void abort() {} ++ +Index: git/board/qt2410/u-boot.lds +=================================================================== +--- git.orig/board/qt2410/u-boot.lds ++++ git/board/qt2410/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/Makefile +=================================================================== +--- git.orig/Makefile ++++ git/Makefile +@@ -225,7 +225,7 @@ LIBS := $(addprefix $(obj),$(LIBS)) + .PHONY : $(LIBS) + + # Add GCC lib +-PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc ++PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh + + # The "tools" are needed early, so put this first + # Don't include stuff already done in $(LIBS) +Index: git/board/smdk2440/smdk2440.c +=================================================================== +--- git.orig/board/smdk2440/smdk2440.c ++++ git/board/smdk2440/smdk2440.c +@@ -150,3 +150,6 @@ char *dynpart_names[] = { + "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; + + ++void raise() {} ++void abort() {} ++ +Index: git/board/smdk2440/u-boot.lds +=================================================================== +--- git.orig/board/smdk2440/u-boot.lds ++++ git/board/smdk2440/u-boot.lds +@@ -39,6 +39,10 @@ SECTIONS + + . = ALIGN(4); + .rodata : { *(.rodata) } ++ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } ++ __exidx_start = .; ++ .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } ++ __exidx_end = .; + + . = ALIGN(4); + .data : { *(.data) } +Index: git/board/neo1973/gta02/gta02.c +=================================================================== +--- git.orig/board/neo1973/gta02/gta02.c ++++ git/board/neo1973/gta02/gta02.c +@@ -321,3 +321,7 @@ int neo1973_set_charge_mode(enum neo1973 + /* FIXME */ + return 0; + } ++ ++void raise() {} ++void abort() {} ++ diff --git a/packages/uboot/u-boot-mkimage-gta01-native_oe.bb b/packages/uboot/u-boot-mkimage-gta01-native_oe.bb index 65c413c8d7..2eafac668f 100644 --- a/packages/uboot/u-boot-mkimage-gta01-native_oe.bb +++ b/packages/uboot/u-boot-mkimage-gta01-native_oe.bb @@ -74,6 +74,7 @@ do_compile () { do_deploy () { install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage + ln -sf ${STAGING_BINDIR_NATIVE}/uboot-mkimage ${STAGING_BINDIR_NATIVE}/mkimage } do_deploy[dirs] = "${S}" diff --git a/packages/uboot/u-boot-mkimage-gta01-native_svn.bb b/packages/uboot/u-boot-mkimage-gta01-native_svn.bb deleted file mode 100644 index 90b3bbef5a..0000000000 --- a/packages/uboot/u-boot-mkimage-gta01-native_svn.bb +++ /dev/null @@ -1,20 +0,0 @@ -require uboot-gta01_svn.bb - -DEFAULT_PREFERENCE = "-1" - -PROVIDES = "" -TARGET_LDFLAGS = "" - -do_compile () { - chmod +x board/neo1973/gta01/split_by_variant.sh - oe_runmake gta01bv3_config - oe_runmake clean - oe_runmake tools -} - -do_deploy () { - install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage -} - -do_deploy[dirs] = "${S}" -addtask deploy before do_package after do_install diff --git a/packages/uboot/u-boot_1.1.4.bb b/packages/uboot/u-boot_1.1.4.bb index 5c158f2401..45d24df455 100644 --- a/packages/uboot/u-boot_1.1.4.bb +++ b/packages/uboot/u-boot_1.1.4.bb @@ -25,11 +25,15 @@ SRC_URI_append_amsdelta = "\ SRC_URI_append_dht-walnut= "\ file://u-boot-dht-walnut-df2.patch;patch=1" +SRC_URI_append_avr32= "\ + http://avr32linux.org/twiki/pub/Main/UbootPatches/u-boot-1.1.4-avr1.patch.bz2;patch=1" + EXTRA_OEMAKE_gumstix = "CROSS_COMPILE=${TARGET_PREFIX} GUMSTIX_400MHZ=${GUMSTIX_400MHZ}" TARGET_LDFLAGS = "" UBOOT_MACHINE_dht-walnut = "walnut_config" +UBOOT_MACHINE_atngw100 = "atngw_config" def gumstix_mhz(d): import bb diff --git a/packages/uboot/uboot-gta01_svn.bb b/packages/uboot/uboot-gta01_svn.bb index d026efccc1..2cf50c78bd 100644 --- a/packages/uboot/uboot-gta01_svn.bb +++ b/packages/uboot/uboot-gta01_svn.bb @@ -4,55 +4,79 @@ LICENSE = "GPL" SECTION = "bootloader" PRIORITY = "optional" PV = "1.2.0+svn${SRCDATE}" -PR = "r3" +PR = "r10" 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=http \ - file://fix-arm920t-eabi.patch;patch=1" + file://uboot-eabi-fix-HACK.patch \ + file://uboot-20070311-tools_makefile_ln_sf.patch;patch=1 \ +" EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" TARGET_LDFLAGS = "" -UBOOT_MACHINES = "gta01v3 gta01v4 gta01bv2 gta01bv3" +UBOOT_MACHINES = "gta01bv2 gta01bv3 gta01bv4 smdk2440 hxd8 qt2410 gta02v1" do_quilt() { - mv ${WORKDIR}/patches ${S}/patches - cd ${S} - quilt push -av + mv ${WORKDIR}/patches ${S}/patches && cd ${S} && quilt push -av rm -Rf patches .pc } +do_svnrev() { + FILE=${S}/tools/setlocalversion + OLDFILE=$FILE.old + NEWFILE=$FILE.new + cp $FILE $OLDFILE + LINES=`cat $OLDFILE | wc -l` + LINES_WE_WANT=$(($LINES-1)) + LASTLINE=`cat $OLDFILE | tail -n 1` + cat $OLDFILE | head -n $LINES_WE_WANT > $NEWFILE + echo ${LASTLINE}_${PR} >> $NEWFILE + rm $FILE && mv $NEWFILE $FILE +} + +do_configure_prepend() { + find . -name "*.mk" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; + find . -name "Makefile" -exec sed -i 's,-mabi=apcs-gnu,,' {} \; + cat ${WORKDIR}/uboot-eabi-fix-HACK.patch |patch -p1 +} + do_compile () { - chmod +x board/neo1973/split_by_variant.sh - for type in ram nand + chmod +x board/neo1973/gta*/split_by_variant.sh + for mach in ${UBOOT_MACHINES} do - for mach in ${UBOOT_MACHINES} - do - oe_runmake ${mach}_config - oe_runmake clean - if [ ${type} == "ram" ]; then - echo 'PLATFORM_RELFLAGS += -DBUILD_FOR_RAM' >> board/neo1973/config.tmp - fi - oe_runmake all - mv u-boot.bin u-boot_${mach}_${type}.bin - done + oe_runmake ${mach}_config + oe_runmake clean + oe_runmake all + oe_runmake u-boot.udfu + if [ -f u-boot.udfu ]; then + mv u-boot.udfu u-boot_${mach}.bin + else + mv u-boot.bin u-boot_${mach}.bin + fi + if [ -f board/${mach}/lowlevel_foo.bin ]; then + mv board/${mach}/lowlevel_foo.bin lowlevel_foo_${mach}.bin + fi done } do_deploy () { install -d ${DEPLOY_DIR_IMAGE} - for type in nand ram + for mach in ${UBOOT_MACHINES} do - for mach in ${UBOOT_MACHINES} - do - install ${S}/u-boot_${mach}_${type}.bin ${DEPLOY_DIR_IMAGE}/u-boot_${type}-${mach}-${DATETIME}.bin - done + install ${S}/u-boot_${mach}.bin \ + ${DEPLOY_DIR_IMAGE}/u-boot-${mach}-${PR}.bin + if [ -f ${S}/lowlevel_foo_${mach}.bin ]; then + install ${S}/lowlevel_foo_${mach}.bin \ + ${DEPLOY_DIR_IMAGE}/lowlevel_foo-${mach}-${PR}.bin + fi done install -m 0755 tools/mkimage ${STAGING_BINDIR_NATIVE}/uboot-mkimage } do_deploy[dirs] = "${S}" -addtask deploy before do_build after do_compile +addtask deploy before do_package after do_install addtask quilt before do_patch after do_unpack +addtask svnrev before do_patch after do_quilt diff --git a/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb b/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb deleted file mode 100644 index 102030f147..0000000000 --- a/packages/uboot/uboot-qt2410_0.0+cvs20061030.bb +++ /dev/null @@ -1,41 +0,0 @@ -DESCRIPTION = "U-boot bootloader w/ armzone qt2410 support" -SECTION = "bootloader" -PRIORITY = "optional" -LICENSE = "GPL" -SRCDATE := "${PV}" -PR = "r0" - -PROVIDES = "virtual/bootloader" -S = "${WORKDIR}/git" - -SRC_URI = "git://www.denx.de/git/u-boot.git/;protocol=git \ - file://u-boot-20061030-qt2410-gta01.patch;patch=1 \ - file://qt2410_*.h" - -EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" -TARGET_LDFLAGS = "" -UBOOT_MACHINE = "qt2410_config" - -inherit base - -do_compile () { - for type in nand ram - do - install -m 0644 ${WORKDIR}/qt2410_${type}.h include/configs/qt2410.h - oe_runmake ${UBOOT_MACHINE} - oe_runmake all - mv u-boot.bin u-boot_$type.bin - done -} - -do_deploy () { - install -d ${DEPLOY_DIR_IMAGE} - for type in nand ram - do - install ${S}/u-boot_$type.bin ${DEPLOY_DIR_IMAGE}/u-boot_$type-${MACHINE}-${DATETIME}.bin - done - install -m 0755 tools/mkimage ${STAGING_BINDIR}/uboot-mkimage -} - -do_deploy[dirs] = "${S}" -addtask deploy before do_build after do_compile diff --git a/packages/uclibc/uclibc-0.9.29/armeb/.mtn2git_empty b/packages/uclibc/uclibc-0.9.29/armeb/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/armeb/.mtn2git_empty diff --git a/packages/uclibc/uclibc-0.9.29/armeb/uClibc.machine b/packages/uclibc/uclibc-0.9.29/armeb/uClibc.machine new file mode 100644 index 0000000000..2d9f63e531 --- /dev/null +++ b/packages/uclibc/uclibc-0.9.29/armeb/uClibc.machine @@ -0,0 +1,70 @@ +# +# Automatically generated make config: don't edit +# Sat May 12 22:07:03 2007 +# +# TARGET_alpha is not set +TARGET_arm=y +# TARGET_bfin is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_hppa is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_ia64 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sh64 is not set +# TARGET_sparc is not set +# TARGET_v850 is not set +# TARGET_vax is not set +# TARGET_x86_64 is not set + +# +# Target Architecture Features and Options +# +TARGET_ARCH="arm" +FORCE_OPTIONS_FOR_ARCH=y +# CONFIG_ARM_OABI is not set +CONFIG_ARM_EABI=y +USE_BX=y +# CONFIG_GENERIC_ARM is not set +# CONFIG_ARM610 is not set +# CONFIG_ARM710 is not set +# CONFIG_ARM7TDMI is not set +# CONFIG_ARM720T is not set +# CONFIG_ARM920T is not set +# CONFIG_ARM922T is not set +# CONFIG_ARM926T is not set +# CONFIG_ARM10T is not set +# CONFIG_ARM1136JF_S is not set +# CONFIG_ARM1176JZ_S is not set +# CONFIG_ARM1176JZF_S is not set +# CONFIG_ARM_SA110 is not set +# CONFIG_ARM_SA1100 is not set +CONFIG_ARM_XSCALE=y +# CONFIG_ARM_IWMMXT is not set +TARGET_SUBARCH="" + +# +# Using ELF file format +# +ARCH_ANY_ENDIAN=y +ARCH_BIG_ENDIAN=y +ARCH_WANTS_BIG_ENDIAN=y +# ARCH_WANTS_LITTLE_ENDIAN is not set +ARCH_HAS_MMU=y +ARCH_USE_MMU=y +UCLIBC_HAS_FLOATS=y +# UCLIBC_HAS_FPU is not set +UCLIBC_HAS_SOFT_FLOAT=y +DO_C99_MATH=y +KERNEL_HEADERS="/usr/include" +HAVE_DOT_CONFIG=y + diff --git a/packages/uclibc/uclibc.inc b/packages/uclibc/uclibc.inc index bae3f2d042..ca6613d315 100644 --- a/packages/uclibc/uclibc.inc +++ b/packages/uclibc/uclibc.inc @@ -128,7 +128,7 @@ do_configure() { sed -i -e '/CONFIG_ARM_EABI/d' ${S}/.config - if [ "${TARGET_OS}" == "linux-gnueabi" -o "${TARGET_OS}" == "linux-uclibcgnueabi" ]; then + if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then echo "CONFIG_ARM_EABI=y" >> ${S}/.config else echo "# CONFIG_ARM_EABI is not set" >> ${S}/.config diff --git a/packages/util-linux/util-linux.inc b/packages/util-linux/util-linux.inc index a5ff009669..2b527678c4 100644 --- a/packages/util-linux/util-linux.inc +++ b/packages/util-linux/util-linux.inc @@ -23,7 +23,7 @@ FILES_util-linux-cfdisk = "/sbin/cfdisk" FILES_util-linux-sfdisk = "/sbin/sfdisk" FILES_util-linux-swaponoff = "/sbin/swapon.${PN} /sbin/swapoff.${PN}" FILES_util-linux-losetup = "/sbin/losetup.${PN}" -FILES_util-linux-mount = "/bin/mount.${PN}" +FILES_util-linux-mount = "/bin/mount.${PN} ${sysconfdir}/default/mountall" FILES_util-linux-umount = "/bin/umount.${PN}" FILES_util-linux-readprofile = "/usr/sbin/readprofile" @@ -95,6 +95,8 @@ do_install () { mv ${D}${base_bindir}/umount ${D}${base_bindir}/umount.${PN} mv ${D}${base_bindir}/mount ${D}${base_bindir}/mount.${PN} mv ${D}${base_sbindir}/fdisk ${D}${base_sbindir}/fdisk.${PN} + install -d ${D}${sysconfdir}/default/ + echo 'MOUNTALL="-t nonfs,nosmbfs,noncpfs"' > ${D}${sysconfdir}/default/mountall checklink swapon ${D}${base_sbindir}/swapoff ".${PN}" checklink shutdown ${D}${base_sbindir}/reboot ".${PN}" diff --git a/packages/util-linux/util-linux_2.12r.bb b/packages/util-linux/util-linux_2.12r.bb index 0409f61b74..9d4b59c855 100644 --- a/packages/util-linux/util-linux_2.12r.bb +++ b/packages/util-linux/util-linux_2.12r.bb @@ -4,4 +4,4 @@ SRC_URI += "file://util-linux_2.12r-12.diff.gz;patch=1" SRC_URI += "file://glibc-fix.patch;patch=1" SRC_URI += "file://glibc-umount2.patch;patch=1" -PR = "r11" +PR = "r12" diff --git a/packages/uucp/files/.mtn2git_empty b/packages/uucp/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/uucp/files/.mtn2git_empty diff --git a/packages/uucp/files/policy.patch b/packages/uucp/files/policy.patch new file mode 100644 index 0000000000..26f1f172b8 --- /dev/null +++ b/packages/uucp/files/policy.patch @@ -0,0 +1,85 @@ +Index: uucp-1.07/policy.h +=================================================================== +--- uucp-1.07.orig/policy.h 2003-05-29 06:08:45.000000000 +0000 ++++ uucp-1.07/policy.h 2007-03-09 00:51:55.000000000 +0000 +@@ -240,7 +240,7 @@ + the sendmail choice below. Otherwise, select one of the other + choices as appropriate. */ + #if 1 +-#define MAIL_PROGRAM "/usr/lib/sendmail -t" ++#define MAIL_PROGRAM "/usr/sbin/sendmail -oi -t" + /* #define MAIL_PROGRAM "/usr/sbin/sendmail -t" */ + #define MAIL_PROGRAM_TO_BODY 1 + #define MAIL_PROGRAM_SUBJECT_BODY 1 +@@ -302,7 +302,7 @@ + /* #define LOCKDIR "/usr/spool/locks" */ + /* #define LOCKDIR "/usr/spool/uucp/LCK" */ + /* #define LOCKDIR "/var/spool/lock" */ +-/* #define LOCKDIR "/var/lock" */ ++#define LOCKDIR "/var/lock" + + /* You must also specify the format of the lock files by setting + exactly one of the following macros to 1. Check an existing lock +@@ -349,7 +349,7 @@ + The format for QNX lock files was made up just for Taylor UUCP. + QNX doesn't come with a version of UUCP. */ + #define HAVE_V2_LOCKFILES 0 +-#define HAVE_HDB_LOCKFILES 0 ++#define HAVE_HDB_LOCKFILES 1 + #define HAVE_SCO_LOCKFILES 0 + #define HAVE_SVR4_LOCKFILES 0 + #define HAVE_SEQUENT_LOCKFILES 0 +@@ -466,8 +466,8 @@ + When looking something up (a system, a port, etc.) the new style + configuration files will be read first, followed by the V2 + configuration files, followed by the HDB configuration files. */ +-#define HAVE_V2_CONFIG 0 +-#define HAVE_HDB_CONFIG 0 ++#define HAVE_V2_CONFIG 1 ++#define HAVE_HDB_CONFIG 1 + + /* Exactly one of the following macros must be set to 1. The exact + format of the spool directories is explained in unix/spool.c. +@@ -572,7 +572,7 @@ + /* The name of the default spool directory. If HAVE_TAYLOR_CONFIG is + set to 1, this may be overridden by the ``spool'' command in the + configuration file. */ +-#define SPOOLDIR "/usr/spool/uucp" ++#define SPOOLDIR "/var/spool/uucp" + /* #define SPOOLDIR "/var/spool/uucp" */ + + /* The name of the default public directory. If HAVE_TAYLOR_CONFIG is +@@ -580,7 +580,7 @@ + configuration file. Also, a particular system may be given a + specific public directory by using the ``pubdir'' command in the + system file. */ +-#define PUBDIR "/usr/spool/uucppublic" ++#define PUBDIR "/var/spool/uucppublic" + /* #define PUBDIR "/var/spool/uucppublic" */ + + /* The default command path. This is a space separated list of +@@ -644,21 +644,21 @@ + /* The default log file when using HAVE_TAYLOR_LOGGING. When using + HAVE_TAYLOR_CONFIG, this may be overridden by the ``logfile'' + command in the configuration file. */ +-#define LOGFILE "/usr/spool/uucp/Log" ++#define LOGFILE "/var/spool/uucp/Log" + /* #define LOGFILE "/var/spool/uucp/Log" */ + /* #define LOGFILE "/var/log/uucp/Log" */ + + /* The default statistics file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``statfile'' command in the configuration file. */ +-#define STATFILE "/usr/spool/uucp/Stats" ++#define STATFILE "/var/spool/uucp/Stats" + /* #define STATFILE "/var/spool/uucp/Stats" */ + /* #define STATFILE "/var/log/uucp/Stats" */ + + /* The default debugging file when using HAVE_TAYLOR_LOGGING. When + using HAVE_TAYLOR_CONFIG, this may be overridden by the + ``debugfile'' command in the configuration file. */ +-#define DEBUGFILE "/usr/spool/uucp/Debug" ++#define DEBUGFILE "/var/spool/uucp/Debug" + /* #define DEBUGFILE "/var/spool/uucp/Debug" */ + /* #define DEBUGFILE "/var/log/uucp/Debug" */ + diff --git a/packages/uucp/uucp_1.07.bb b/packages/uucp/uucp_1.07.bb index 7247ecbabe..ddc16d94f2 100644 --- a/packages/uucp/uucp_1.07.bb +++ b/packages/uucp/uucp_1.07.bb @@ -1,11 +1,13 @@ DESCRIPTION = "UUCP is used to transfer mail, news and random files between systems which are not connected by more modern networks. The communication can be made via modems, direct (hard-wired) serial connections or via an IP connection." +HOMEPAGE = "http://www.airs.com/ian/uucp.html" +SECTION = "console/utils" LICENSE = "GPLv2" -SECTION = "console" -PR = "r1" +PR = "r2" inherit autotools -SRC_URI = "http://ftp.debian.org/debian/pool/main/u/uucp/uucp_1.07.orig.tar.gz" +SRC_URI = "ftp://ftp.gnu.org/pub/gnu/uucp/uucp-${PV}.tar.gz \ + file://policy.patch;patch=1" do_configure() { libtoolize --force @@ -13,8 +15,8 @@ do_configure() { } do_install_append() { - fakeroot install -d -g uucp -o uucp ${D}/usr/spool/uucp + fakeroot install -d -g uucp -o uucp ${D}/var/spool/uucp } PACKAGES =+ "cu" -FILES_cu = "${bindir}/cu /usr/spool" +FILES_cu = "${bindir}/cu /var/spool" diff --git a/packages/xfce/xfce4-panel.inc b/packages/xfce/xfce4-panel.inc index e43807540e..dbd1baef60 100644 --- a/packages/xfce/xfce4-panel.inc +++ b/packages/xfce/xfce4-panel.inc @@ -22,3 +22,4 @@ do_install() { PACKAGES += "${PN}-plugins ${PN}-mcs-plugins" FILES_${PN}-plugins += "${libdir}/xfce4/panel-plugins/*.so*" FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/" +FILES_${PN}-dbg += "${libdir}/xfce4/mcs-plugins/.debug" diff --git a/packages/xfce/xfce4-panel_4.4.1.bb b/packages/xfce/xfce4-panel_4.4.1.bb index 18dce6fa3c..ae2abba28d 100644 --- a/packages/xfce/xfce4-panel_4.4.1.bb +++ b/packages/xfce/xfce4-panel_4.4.1.bb @@ -2,5 +2,5 @@ # Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved # Released under the MIT license (see packages/COPYING) -PR="r1" +PR="r2" require ${PN}.inc diff --git a/packages/xfce/xfdesktop.inc b/packages/xfce/xfdesktop.inc index e3e64ef355..50a4f488cc 100644 --- a/packages/xfce/xfdesktop.inc +++ b/packages/xfce/xfdesktop.inc @@ -12,3 +12,4 @@ PACKAGES += "xfdesktop-backdrops ${PN}-mcs-plugins" FILES_xfdesktop-backdrops="${datadir}/xfce4/backdrops/*" FILES_${PN}-mcs-plugins += "${libdir}/xfce4/mcs-plugins/*.so" FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so" +FILES_${PN}-dbg += "/usr/libexec/xfce4/panel-plugins/.debug" diff --git a/packages/xfce/xfdesktop_4.4.1.bb b/packages/xfce/xfdesktop_4.4.1.bb index d7af836791..9c84150180 100644 --- a/packages/xfce/xfdesktop_4.4.1.bb +++ b/packages/xfce/xfdesktop_4.4.1.bb @@ -2,5 +2,5 @@ # Copyright (C) 2004, Advanced Micro Devices, Inc. All Rights Reserved # Released under the MIT license (see packages/COPYING) -PR = "r1" +PR = "r2" require ${PN}.inc diff --git a/packages/xorg-lib/libx11/ruutf8.patch b/packages/xorg-lib/files/ruutf8.patch index 0822b30cb8..0822b30cb8 100644 --- a/packages/xorg-lib/libx11/ruutf8.patch +++ b/packages/xorg-lib/files/ruutf8.patch diff --git a/packages/xserver-common/files/sl-cxx00-modmap.patch b/packages/xserver-common/files/sl-cxx00-modmap.patch index 057f9880bf..18cc8e88c9 100644 --- a/packages/xserver-common/files/sl-cxx00-modmap.patch +++ b/packages/xserver-common/files/sl-cxx00-modmap.patch @@ -1,6 +1,8 @@ ---- xserver-common-1.16/X11/slcXXXX.xmodmap.orig 2007-06-05 01:31:20.000000000 +0000 -+++ xserver-common-1.16/X11/slcXXXX.xmodmap 2007-06-05 01:31:29.000000000 +0000 -@@ -1,5 +1,106 @@ +Index: xserver-common-1.16/X11/slcXXXX.xmodmap +=================================================================== +--- xserver-common-1.16.orig/X11/slcXXXX.xmodmap 2006-10-12 11:19:42.000000000 +0100 ++++ xserver-common-1.16/X11/slcXXXX.xmodmap 2007-06-27 12:31:33.000000000 +0100 +@@ -1,5 +1,111 @@ -keycode 88 = XF86Calendar -keycode 89 = telephone -keycode 40 = XF86Start @@ -35,7 +37,7 @@ +! These should be bound to Japanese keysims for use with Japanese +! IME's at a later date. +! ======================================================================= - ++ +! The Euro character is not printed as a label, but as +! the 5 doesn't have a blue Fn label, this is a nice extra +! as a normal European keyboard has it on the 5 as third level @@ -111,3 +113,8 @@ +keycode 107 = F12 F18 F18 +! "Menu" label and icon: +keycode 96 = F11 F12 F12 ++ ++! Shift the Mode_switch definition to a different mod so mozilla stuff works ++add mod5 = Mode_switch ++remove mod4 = Mode_switch + diff --git a/packages/xserver-common/xserver-common_1.16.bb b/packages/xserver-common/xserver-common_1.16.bb index ca1c2f09cd..fcf1dcfd78 100644 --- a/packages/xserver-common/xserver-common_1.16.bb +++ b/packages/xserver-common/xserver-common_1.16.bb @@ -2,7 +2,7 @@ DESCRIPTION = "Common X11 scripts and support files" LICENSE = "GPL" SECTION = "x11" RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo" -PR = "r6" +PR = "r7" PACKAGE_ARCH = "all" |