* [PATCH 0/4] recipes-kernel: follow-up cleanup
@ 2011-02-19 0:46 Darren Hart
2011-02-19 0:46 ` [PATCH 2/4] linux-2.6.23: remove the linux-2.6.23 recipe Darren Hart
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:46 UTC (permalink / raw)
To: poky, richard.purdie, tom.zanussi, bruce.ashfield; +Cc: Darren Hart
From: Darren Hart <dvhart@linux.intel.com>
The following patches perform some additional cleanup of the kernel metadata.
Obsolete kernel recipes are removed. Unused machine config fragments are
removed. Finally, linux.inc is removed.
This cleans the slate and prepares the way for the next stage of kernel recipe
cleanup which will include refactoring the kernel.bbclass and reworking
linux-dummy to provide a good current example of how to create a custom linux
kernel recipe.
Pull URL: git://git.pokylinux.org/poky-contrib.git
Branch: dvhart/linux
Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/linux
Thanks,
Darren Hart <dvhart@linux.intel.com>
---
Darren Hart (4):
zaurus: remove zaurus linux includes
linux-2.6.23: remove the linux-2.6.23 recipe
linux-2.6.33.2: remove linux-2.6.33.2 recipe
linux.inc: remove the obsolete linux.inc kernel recipe include
meta/conf/machine/include/zaurus-2.6.inc | 72 -
meta/conf/machine/include/zaurus-clamshell.inc | 15 -
...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 -
.../linux/linux-2.6.23/binutils-buildid-arm.patch | 16 -
.../linux-2.6.23/cm-x270/0001-cm-x270-base2.patch | 2851 -----
.../cm-x270/0002-cm-x270-match-type.patch | 25 -
.../linux-2.6.23/cm-x270/0003-cm-x270-ide.patch | 186 -
.../linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch | 496 -
.../linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch | 228 -
.../linux-2.6.23/cm-x270/0006-ramdisk_load.patch | 80 -
.../cm-x270/0007-mmcsd_large_cards-r0.patch | 36 -
.../cm-x270/0008-cm-x270-nand-simplify-name.patch | 25 -
.../linux/linux-2.6.23/cm-x270/16bpp.patch | 13 -
.../linux/linux-2.6.23/cm-x270/defconfig | 1204 --
.../linux/linux-2.6.23/em-x270/defconfig | 1354 ---
.../em-x270/em-x270-battery-sysfs-fix.patch | 40 -
.../linux/linux-2.6.23/em-x270/em-x270.patch |12063 --------------------
.../linux/linux-2.6.33.2/mpc8313erdb/defconfig | 1780 ---
.../linux/linux-2.6.33.2/qemuarm/defconfig | 1837 ---
.../linux/linux-2.6.33.2/qemumips/defconfig | 1825 ---
.../linux/linux-2.6.33.2/qemuppc/defconfig | 1780 ---
.../linux/linux-2.6.33.2/qemux86/defconfig | 2160 ----
meta/recipes-kernel/linux/linux.inc | 95 -
meta/recipes-kernel/linux/linux_2.6.23.bb | 83 -
meta/recipes-kernel/linux/linux_2.6.33.2.bb | 15 -
25 files changed, 0 insertions(+), 28327 deletions(-)
delete mode 100644 meta/conf/machine/include/zaurus-2.6.inc
delete mode 100644 meta/conf/machine/include/zaurus-clamshell.inc
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux.inc
delete mode 100644 meta/recipes-kernel/linux/linux_2.6.23.bb
delete mode 100644 meta/recipes-kernel/linux/linux_2.6.33.2.bb
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/4] zaurus: remove zaurus linux includes
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
2011-02-19 0:46 ` [PATCH 2/4] linux-2.6.23: remove the linux-2.6.23 recipe Darren Hart
2011-02-19 0:46 ` [PATCH 4/4] linux.inc: remove the obsolete linux.inc kernel recipe include Darren Hart
@ 2011-02-19 0:46 ` Darren Hart
2011-02-19 0:46 ` [PATCH 3/4] linux-2.6.33.2: remove linux-2.6.33.2 recipe Darren Hart
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:46 UTC (permalink / raw)
To: poky, richard.purdie, tom.zanussi, bruce.ashfield; +Cc: Darren Hart
From: Darren Hart <dvhart@linux.intel.com>
Zaurus support was removed with:
673abd92f999829bdd67d0273c43570a62123a63
conf/machine: Drop older machines with no recent updates
which removed both the linux-rp and sharp-flash-header recipes required by the
zaurus includes removed by this patch.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
meta/conf/machine/include/zaurus-2.6.inc | 72 ------------------------
meta/conf/machine/include/zaurus-clamshell.inc | 15 -----
2 files changed, 0 insertions(+), 87 deletions(-)
delete mode 100644 meta/conf/machine/include/zaurus-2.6.inc
delete mode 100644 meta/conf/machine/include/zaurus-clamshell.inc
diff --git a/meta/conf/machine/include/zaurus-2.6.inc b/meta/conf/machine/include/zaurus-2.6.inc
deleted file mode 100644
index aec61c7..0000000
--- a/meta/conf/machine/include/zaurus-2.6.inc
+++ /dev/null
@@ -1,72 +0,0 @@
-# Zaurus specific configuration for kernel 2.6
-# Additionally, clamshell specific stuff in zaurus-clamshell.inc
-
-TARGET_ARCH = "arm"
-PACKAGE_EXTRA_ARCHS = "armv4 armv4t armv5e armv5te"
-PACKAGE_EXTRA_ARCHS_collie = ""
-
-MACHINE_KERNEL_VERSION = "2.6"
-
-ERASEBLOCKSIZE = "0x4000"
-ERASEBLOCKSIZE_akita = "0x20000"
-
-EXTRA_IMAGECMD_jffs2 = "--little-endian --eraseblock=${ERASEBLOCKSIZE} --pad --faketime -n"
-IMAGE_CMD_jffs2 = "mkfs.jffs2 -x lzo --root=${IMAGE_ROOTFS} --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}"
-EXTRA_IMAGEDEPENDS += "zaurus-updater"
-
-SERIAL_CONSOLE = "115200 ttyS0"
-SERIAL_CONSOLE_collie = "115200 ttySA0"
-
-PREFERRED_PROVIDER_virtual/kernel = "linux-rp"
-PREFERRED_PROVIDER_xserver = "xserver-kdrive"
-
-PCMCIA_MANAGER ?= "pcmciautils"
-
-MACHINE_FEATURES = "kernel26 apm alsa pcmcia irda usbgadget keyboard touchscreen screen vfat"
-MACHINE_FEATURES_append_tosa = " usbhost wifi "
-MACHINE_FEATURES_append_akita = " usbhost "
-MACHINE_FEATURES_append_spitz = " usbhost ext2 "
-
-MACHINE_EXTRA_RDEPENDS = "zaurusd"
-MACHINE_EXTRA_RRECOMMENDS_c7x0 = "kernel-module-snd-soc-corgi kernel-module-pxa2xx-cs kernel-module-pcmcia"
-MACHINE_EXTRA_RRECOMMENDS_akita = "kernel-module-snd-soc-spitz kernel-module-pxa2xx-cs kernel-module-pcmcia"
-MACHINE_EXTRA_RRECOMMENDS_spitz = "kernel-module-snd-soc-spitz"
-MACHINE_EXTRA_RRECOMMENDS_poodle = "kernel-module-snd-soc-poodle"
-
-GUI_MACHINE_CLASS = "bigscreen"
-GUI_MACHINE_CLASS_collie = "smallscreen"
-GUI_MACHINE_CLASS_poodle = "smallscreen"
-
-KERNEL_IMAGE_MAXSIZE = "1294336"
-KERNEL_IMAGE_MAXSIZE_collie = "1048576"
-
-MACHINE_POSTPROCESS_COMMAND = "zaurus_make_installkit"
-
-zaurus_make_installkit () {
- cd ${DEPLOY_DIR_IMAGE}
- rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/
- mkdir ${IMAGE_NAME}-installkit/
-
- # Get the latest kernel using the zImage-<machine>.bin symlink
- cp zImage-${MACHINE}.bin ${IMAGE_NAME}-installkit/zImage
-
- if [ "${MACHINE}" = "spitz" ]; then
- cp gnu-tar ${IMAGE_NAME}-installkit/
- cp ${IMAGE_NAME}.rootfs.tar.gz ${IMAGE_NAME}-installkit/hdimage1.tgz
- else
- [ -f ${IMAGE_NAME}.rootfs.jffs2 ] && cp ${IMAGE_NAME}.rootfs.jffs2 ${IMAGE_NAME}-installkit/initrd.bin
- fi
-
- # All zaurus machines except collie need updater.sh
- if [ "${MACHINE}" != "collie" ]; then
- cp updater.sh.${MACHINE} ${IMAGE_NAME}-installkit/updater.sh
- fi
-
- tar czf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz ${IMAGE_NAME}-installkit/
- md5sum ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit.tgz.md5
- rm -rf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}-installkit/
-}
-
-# Don't include kernels in standard images for Zaurus machines
-RDEPENDS_kernel-base = ""
-KERNEL_IMAGETYPE = "zImage"
diff --git a/meta/conf/machine/include/zaurus-clamshell.inc b/meta/conf/machine/include/zaurus-clamshell.inc
deleted file mode 100644
index 4fa9f75..0000000
--- a/meta/conf/machine/include/zaurus-clamshell.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-include conf/machine/include/tune-xscale.inc
-
-EXTRA_IMAGEDEPENDS += "sharp-flash-header-c700"
-
-IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime -m favourlzo \
- --output=${T}/${IMAGE_NAME}.rootfs.jffs2 --pad --little-endian --eraseblock=${ERASEBLOCKSIZE} -n \
- && sumtool -i ${T}/${IMAGE_NAME}.rootfs.jffs2 \
- -o ${T}/${IMAGE_NAME}.rootfs.jffs2.summary \
- --eraseblock=${ERASEBLOCKSIZE} -l -p; \
- cat ${STAGING_LIBDIR}/sharp-flash-header/header-c700.bin \
- ${T}/${IMAGE_NAME}.rootfs.jffs2 > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2; \
- rm ${T}/${IMAGE_NAME}.rootfs.jffs2; \
- cat ${STAGING_LIBDIR}/sharp-flash-header/header-c700.bin \
- ${T}/${IMAGE_NAME}.rootfs.jffs2.summary > ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.summary.jffs2; \
- rm ${T}/${IMAGE_NAME}.rootfs.jffs2.summary;"
--
1.7.0.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] linux.inc: remove the obsolete linux.inc kernel recipe include
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
2011-02-19 0:46 ` [PATCH 2/4] linux-2.6.23: remove the linux-2.6.23 recipe Darren Hart
@ 2011-02-19 0:46 ` Darren Hart
2011-02-19 0:46 ` [PATCH 1/4] zaurus: remove zaurus linux includes Darren Hart
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:46 UTC (permalink / raw)
To: poky, richard.purdie, tom.zanussi, bruce.ashfield; +Cc: Darren Hart
From: Darren Hart <dvhart@linux.intel.com>
linux.inc was used by older kernel recipes which have now been removed from the
core meta data. I references machines now only defined in meta-extras. The
configure prepend mangles the kernel .config in non-intuitive ways and the
install peroforms some odd boot image manipulation that is not used nor required
by supported machines. The required functionality, such as defconfig setup, has
already been moved to the kernel bbclass. Remove linux.inc to avoid confusion
for new kernel recipe authors and clean up the kernel meta data.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
meta/recipes-kernel/linux/linux.inc | 95 -----------------------------------
1 files changed, 0 insertions(+), 95 deletions(-)
delete mode 100644 meta/recipes-kernel/linux/linux.inc
diff --git a/meta/recipes-kernel/linux/linux.inc b/meta/recipes-kernel/linux/linux.inc
deleted file mode 100644
index f0b47da..0000000
--- a/meta/recipes-kernel/linux/linux.inc
+++ /dev/null
@@ -1,95 +0,0 @@
-DESCRIPTION = "Linux Kernel"
-SECTION = "kernel"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-
-inherit kernel
-require linux-dtb.inc
-
-DEPENDS_append_em-x270 = " mtd-utils "
-
-RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
-
-# Specify the commandline for your device
-
-#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
-
- #
- # logo support, if you supply logo_linux_clut224.ppm in SRC_URI, then it's going to be used
- #
- if [ -e ${WORKDIR}/logo_linux_clut224.ppm ]; then
- install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
- echo "CONFIG_LOGO=y" >> ${S}/.config
- echo "CONFIG_LOGO_LINUX_CLUT224=y" >> ${S}/.config
- fi
-
- #
- # oabi / eabi support
- #
- if [ "${TARGET_OS}" = "linux-gnueabi" -o "${TARGET_OS}" = "linux-uclibcgnueabi" ]; then
- echo "CONFIG_AEABI=y" >> ${S}/.config
- echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
- else
- echo "# CONFIG_AEABI is not set" >> ${S}/.config
- echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
- fi
-
- echo "CONFIG_CMDLINE=\"${CMDLINE}\"" >> ${S}/.config
-
- sed -e '/CONFIG_AEABI/d' \
- -e '/CONFIG_OABI_COMPAT=/d' \
- -e '/CONFIG_CMDLINE=/d' \
- -e '/CONFIG_LOGO=/d' \
- -e '/CONFIG_LOGO_LINUX_CLUT224=/d' \
- < '${WORKDIR}/defconfig' >>'${S}/.config'
-
- #
- # root-over-nfs-over-usb-eth support. Limited, but should cover some cases.
- # Enable this by setting a proper CMDLINE_NFSROOT_USB.
- #
- if [ ! -z "${CMDLINE_NFSROOT_USB}" ]; then
- oenote "Configuring the kernel for root-over-nfs-over-usb-eth with CMDLINE ${CMDLINE_NFSROOT_USB}"
- sed -e '/CONFIG_INET/d' \
- -e '/CONFIG_IP_PNP=/d' \
- -e '/CONFIG_USB_GADGET=/d' \
- -e '/CONFIG_USB_GADGET_SELECTED=/d' \
- -e '/CONFIG_USB_ETH=/d' \
- -e '/CONFIG_NFS_FS=/d' \
- -e '/CONFIG_ROOT_NFS=/d' \
- -e '/CONFIG_CMDLINE=/d' \
- -i ${S}/.config
- echo "CONFIG_INET=y" >> ${S}/.config
- echo "CONFIG_IP_PNP=y" >> ${S}/.config
- echo "CONFIG_USB_GADGET=y" >> ${S}/.config
- echo "CONFIG_USB_GADGET_SELECTED=y" >> ${S}/.config
- echo "CONFIG_USB_ETH=y" >> ${S}/.config
- echo "CONFIG_NFS_FS=y" >> ${S}/.config
- echo "CONFIG_ROOT_NFS=y" >> ${S}/.config
- echo "CONFIG_CMDLINE=\"${CMDLINE_NFSROOT_USB}\"" >> ${S}/.config
- fi
- yes '' | oe_runmake oldconfig
-}
-
-
-
-do_install_prepend() {
- if [ -f arch/${ARCH}/boot/Image ] && [ ! -f arch/${ARCH}/boot/uImage ]; then
- ln -f arch/${ARCH}/boot/Image arch/${ARCH}/boot/uImage
- fi
-
- if test -e arch/${ARCH}/boot/images/uImage ; then
- ln -f arch/${ARCH}/boot/images/uImage arch/${ARCH}/boot/uImage
- fi
-
- if test -e arch/${ARCH}/kernel/vmlinux.lds ; then
- ln -f arch/${ARCH}/kernel/vmlinux.lds arch/${ARCH}/boot/vmlinux
- fi
-}
-
--
1.7.0.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/4] linux-2.6.23: remove the linux-2.6.23 recipe
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
@ 2011-02-19 0:46 ` Darren Hart
2011-02-19 0:46 ` [PATCH 4/4] linux.inc: remove the obsolete linux.inc kernel recipe include Darren Hart
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:46 UTC (permalink / raw)
To: poky, richard.purdie, tom.zanussi, bruce.ashfield; +Cc: Darren Hart
From: Darren Hart <dvhart@linux.intel.com>
The machines supported by this recipe were either recently removed or simply
not defined.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 -
.../linux/linux-2.6.23/binutils-buildid-arm.patch | 16 -
.../linux-2.6.23/cm-x270/0001-cm-x270-base2.patch | 2851 -----
.../cm-x270/0002-cm-x270-match-type.patch | 25 -
.../linux-2.6.23/cm-x270/0003-cm-x270-ide.patch | 186 -
.../linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch | 496 -
.../linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch | 228 -
.../linux-2.6.23/cm-x270/0006-ramdisk_load.patch | 80 -
.../cm-x270/0007-mmcsd_large_cards-r0.patch | 36 -
.../cm-x270/0008-cm-x270-nand-simplify-name.patch | 25 -
.../linux/linux-2.6.23/cm-x270/16bpp.patch | 13 -
.../linux/linux-2.6.23/cm-x270/defconfig | 1204 --
.../linux/linux-2.6.23/em-x270/defconfig | 1354 ---
.../em-x270/em-x270-battery-sysfs-fix.patch | 40 -
.../linux/linux-2.6.23/em-x270/em-x270.patch |12063 --------------------
meta/recipes-kernel/linux/linux_2.6.23.bb | 83 -
16 files changed, 0 insertions(+), 18748 deletions(-)
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
delete mode 100644 meta/recipes-kernel/linux/linux_2.6.23.bb
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch b/meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
deleted file mode 100644
index 3ff0c07..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f5b973489beb1a1239dfad53e3ad6e36ff7ee958 Mon Sep 17 00:00:00 2001
-From: Segher Boessenkool <segher@kernel.crashing.org>
-Date: Thu, 9 Oct 2008 21:18:27 +0100
-Subject: [PATCH] fix-gcc-4.3-false-modulo-optimization.patch
-
-I tried to compile the current stable kernel
-(a2ef813d2f439a3e9f377d33a2e5baad098afb7e)
-and get the following errors:
-
-kernel/built-in.o: In function `timespec_add_ns':
-/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:174:
-undefined reference to `__aeabi_uldivmod'
-/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:179:
-undefined reference to `__aeabi_uldivmod'
-/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:174:
-undefined reference to `__aeabi_uldivmod'
-/mnt/data/Freerunner/Gentoo/rootinstall/usr/src/linux/include/linux/time.h:179:
-undefined reference to `__aeabi_uldivmod'
-
-applying the following patch solved the problem:
---------
-Prevent gcc-4.3 form "optimizing" the while loop into a costly modulo operation.
-Patch found at http://lkml.org/lkml/2008/2/22/464.
-
-Reported-by: Sven Rebhan <odinshorse@googlemail.com>
-Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
----
- include/linux/time.h | 4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/include/linux/time.h b/include/linux/time.h
-index b04136d..3e8fd9e 100644
---- a/include/linux/time.h
-+++ b/include/linux/time.h
-@@ -173,6 +173,10 @@ static inline void timespec_add_ns(struct timespec *a, u64 ns)
- {
- ns += a->tv_nsec;
- while(unlikely(ns >= NSEC_PER_SEC)) {
-+ /* The following asm() prevents the compiler from
-+ * optimising this loop into a modulo operation. */
-+ asm("" : "+r"(ns));
-+
- ns -= NSEC_PER_SEC;
- a->tv_sec++;
- }
---
-1.5.6.5
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch b/meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
deleted file mode 100644
index 68e35e8..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
+++ /dev/null
@@ -1,16 +0,0 @@
----
- arch/arm/kernel/vmlinux.lds.S | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: linux-2.6.22/arch/arm/kernel/vmlinux.lds.S
-===================================================================
---- linux-2.6.22.orig/arch/arm/kernel/vmlinux.lds.S 2007-09-11 18:32:29.000000000 +0200
-+++ linux-2.6.22/arch/arm/kernel/vmlinux.lds.S 2007-09-11 18:33:42.000000000 +0200
-@@ -94,6 +94,7 @@
- TEXT_TEXT
- SCHED_TEXT
- LOCK_TEXT
-+ *(.note.*)
- #ifdef CONFIG_MMU
- *(.fixup)
- #endif
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
deleted file mode 100644
index dc68ce9..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
+++ /dev/null
@@ -1,2851 +0,0 @@
-From 299199b0cf17d0247a58af6ccd6cf6b859c60e9a Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 18:55:59 -0400
-Subject: [PATCH] cm-x270-base2
-
----
- arch/arm/Kconfig | 8 +-
- arch/arm/configs/cm_x270_defconfig | 1567 +++++++++++++++++++++++++++++++++++
- arch/arm/mach-pxa/Kconfig | 6 +
- arch/arm/mach-pxa/Makefile | 7 +
- arch/arm/mach-pxa/cm-x270.c | 821 ++++++++++++++++++
- drivers/leds/Kconfig | 6 +
- drivers/leds/Makefile | 1 +
- drivers/leds/leds-cm-x270.c | 126 +++
- drivers/net/Kconfig | 8 +
- drivers/net/dm9000.c | 6 +
- include/asm-arm/arch-pxa/cm-x270.h | 71 ++
- include/asm-arm/arch-pxa/hardware.h | 11 +
- include/asm-arm/arch-pxa/irqs.h | 20 +
- include/asm-arm/memory.h | 10 +
- 14 files changed, 2667 insertions(+), 1 deletions(-)
- create mode 100644 arch/arm/configs/cm_x270_defconfig
- create mode 100644 arch/arm/mach-pxa/cm-x270.c
- create mode 100644 drivers/leds/leds-cm-x270.c
- create mode 100644 include/asm-arm/arch-pxa/cm-x270.h
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 691aae3..b9a2b11 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -534,7 +534,7 @@ config ISA_DMA_API
- bool
-
- config PCI
-- bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695
-+ bool "PCI support" if ARCH_INTEGRATOR_AP || ARCH_VERSATILE_PB || ARCH_IXP4XX || ARCH_KS8695 || MACH_ARMCORE
- help
- Find out whether you have a PCI motherboard. PCI is the name of a
- bus system, i.e. the way the CPU talks to the other stuff inside
-@@ -555,6 +555,12 @@ config PCI_HOST_VIA82C505
- depends on PCI && ARCH_SHARK
- default y
-
-+config PCI_HOST_ITE8152
-+ bool
-+ depends on PCI && MACH_ARMCORE
-+ default y
-+ select DMABOUNCE
-+
- source "drivers/pci/Kconfig"
-
- source "drivers/pcmcia/Kconfig"
-diff --git a/arch/arm/configs/cm_x270_defconfig b/arch/arm/configs/cm_x270_defconfig
-new file mode 100644
-index 0000000..f728363
---- /dev/null
-+++ b/arch/arm/configs/cm_x270_defconfig
-@@ -0,0 +1,1567 @@
-+#
-+# Automatically generated make config: don't edit
-+# Linux kernel version: 2.6.21-rc4
-+# Wed Apr 4 16:42:03 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_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=y
-+CONFIG_IKCONFIG_PROC=y
-+CONFIG_SYSFS_DEPRECATED=y
-+# CONFIG_RELAY is not set
-+CONFIG_BLK_DEV_INITRD=y
-+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=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"
-+
-+#
-+# 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
-+CONFIG_DMABOUNCE=y
-+
-+#
-+# 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_ARMCORE=y
-+CONFIG_PXA27x=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
-+#
-+CONFIG_PCI=y
-+CONFIG_PCI_HOST_ITE8152=y
-+# CONFIG_PCI_DEBUG is not set
-+
-+#
-+# PCCARD (PCMCIA/CardBus) support
-+#
-+CONFIG_PCCARD=y
-+# CONFIG_PCMCIA_DEBUG is not set
-+CONFIG_PCMCIA=m
-+# CONFIG_PCMCIA_LOAD_CIS is not set
-+CONFIG_PCMCIA_IOCTL=y
-+CONFIG_CARDBUS=y
-+
-+#
-+# PC-card bridges
-+#
-+# CONFIG_YENTA is not set
-+# CONFIG_PD6729 is not set
-+# CONFIG_I82092 is not set
-+CONFIG_PCMCIA_PXA2XX=m
-+
-+#
-+# Kernel Features
-+#
-+# 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
-+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=""
-+# CONFIG_XIP_KERNEL is not set
-+# CONFIG_KEXEC 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 is not set
-+# CONFIG_PM_DEBUG is not set
-+# CONFIG_PM_SYSFS_DEPRECATED is not set
-+# CONFIG_APM_EMULATION 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_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=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_ARPD is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_INET_AH is not set
-+# CONFIG_INET_ESP is not set
-+# CONFIG_INET_IPCOMP is not set
-+# CONFIG_INET_XFRM_TUNNEL is not set
-+# CONFIG_INET_TUNNEL is not set
-+CONFIG_INET_XFRM_MODE_TRANSPORT=y
-+CONFIG_INET_XFRM_MODE_TUNNEL=y
-+CONFIG_INET_XFRM_MODE_BEET=y
-+CONFIG_INET_DIAG=y
-+CONFIG_INET_TCP_DIAG=y
-+# CONFIG_TCP_CONG_ADVANCED is not set
-+CONFIG_TCP_CONG_CUBIC=y
-+CONFIG_DEFAULT_TCP_CONG="cubic"
-+# CONFIG_TCP_MD5SIG is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_INET6_XFRM_TUNNEL is not set
-+# CONFIG_INET6_TUNNEL is not set
-+# CONFIG_NETWORK_SECMARK is not set
-+# CONFIG_NETFILTER is not set
-+
-+#
-+# DCCP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_DCCP is not set
-+
-+#
-+# SCTP Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_IP_SCTP is not set
-+
-+#
-+# TIPC Configuration (EXPERIMENTAL)
-+#
-+# CONFIG_TIPC is not set
-+# CONFIG_ATM is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_VLAN_8021Q is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_LLC2 is not set
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+# CONFIG_HAMRADIO is not set
-+# CONFIG_IRDA is not set
-+# CONFIG_BT is not set
-+CONFIG_IEEE80211=m
-+# CONFIG_IEEE80211_DEBUG is not set
-+CONFIG_IEEE80211_CRYPT_WEP=m
-+CONFIG_IEEE80211_CRYPT_CCMP=m
-+# CONFIG_IEEE80211_CRYPT_TKIP is not set
-+# CONFIG_IEEE80211_SOFTMAC is not set
-+CONFIG_WIRELESS_EXT=y
-+
-+#
-+# Device Drivers
-+#
-+
-+#
-+# Generic Driver Options
-+#
-+CONFIG_STANDALONE=y
-+CONFIG_PREVENT_FIRMWARE_BUILD=y
-+CONFIG_FW_LOADER=y
-+# CONFIG_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=m
-+# 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_AFS_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=m
-+CONFIG_MTD_BLKDEVS=m
-+CONFIG_MTD_BLOCK=m
-+# 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 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 is not set
-+# 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 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
-+
-+#
-+# NAND Flash Device Drivers
-+#
-+CONFIG_MTD_NAND=m
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-+# CONFIG_MTD_NAND_ECC_SMC is not set
-+# CONFIG_MTD_NAND_H1900 is not set
-+CONFIG_MTD_NAND_IDS=m
-+# CONFIG_MTD_NAND_DISKONCHIP is not set
-+# CONFIG_MTD_NAND_SHARPSL is not set
-+# CONFIG_MTD_NAND_CAFE is not set
-+CONFIG_MTD_NAND_CM_X270=m
-+# 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_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=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=y
-+CONFIG_BLK_DEV_RAM_COUNT=16
-+CONFIG_BLK_DEV_RAM_SIZE=12000
-+CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-+# 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_DELKIN is not set
-+CONFIG_BLK_DEV_IDECD=m
-+# 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_BLK_DEV_IDEPCI is not set
-+# CONFIG_IDE_ARM is not set
-+CONFIG_BLK_DEV_IDE_CM_X270=m
-+# 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=y
-+# CONFIG_SCSI_TGT is not set
-+# CONFIG_SCSI_NETLINK is not set
-+# CONFIG_SCSI_PROC_FS is not set
-+
-+#
-+# 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
-+# 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_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_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
-+
-+#
-+# 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 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
-+
-+#
-+# 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
-+
-+#
-+# 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_SMC91X is not set
-+CONFIG_DM9000=y
-+CONFIG_DM9000_NOEPROM=y
-+# CONFIG_SMC911X 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=m
-+# CONFIG_8139TOO_PIO is not set
-+# 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_SC92031 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
-+# CONFIG_QLA3XXX is not set
-+# CONFIG_ATL1 is not set
-+
-+#
-+# 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=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_IPW2100 is not set
-+# CONFIG_IPW2200 is not set
-+# CONFIG_HERMES is not set
-+# CONFIG_ATMEL is not set
-+
-+#
-+# Wireless 802.11b Pcmcia/Cardbus cards support
-+#
-+# CONFIG_AIRO_CS is not set
-+# CONFIG_PCMCIA_WL3501 is not set
-+
-+#
-+# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
-+#
-+# CONFIG_PRISM54 is not set
-+# CONFIG_USB_ZD1201 is not set
-+# CONFIG_HOSTAP is not set
-+CONFIG_NET_WIRELESS=y
-+
-+#
-+# PCMCIA network device support
-+#
-+CONFIG_NET_PCMCIA=y
-+# CONFIG_PCMCIA_3C589 is not set
-+# CONFIG_PCMCIA_3C574 is not set
-+# CONFIG_PCMCIA_FMVJ18X is not set
-+CONFIG_PCMCIA_PCNET=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_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
-+
-+#
-+# 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 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_TOUCHSCREEN=y
-+# CONFIG_TOUCHSCREEN_GUNZE is not set
-+# CONFIG_TOUCHSCREEN_ELO is not set
-+# CONFIG_TOUCHSCREEN_MTOUCH is not set
-+# CONFIG_TOUCHSCREEN_MK712 is not set
-+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-+CONFIG_TOUCHSCREEN_UCB1400=m
-+# 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_SERIAL_JSM is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_LEGACY_PTYS=y
-+CONFIG_LEGACY_PTY_COUNT=256
-+
-+#
-+# 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
-+# CONFIG_APPLICOM is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_CARDMAN_4000 is not set
-+# CONFIG_CARDMAN_4040 is not set
-+# CONFIG_RAW_DRIVER is not set
-+
-+#
-+# TPM devices
-+#
-+# CONFIG_TCG_TPM is not set
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# SPI support
-+#
-+# CONFIG_SPI is not set
-+# CONFIG_SPI_MASTER is not set
-+
-+#
-+# Dallas's 1-wire bus
-+#
-+# CONFIG_W1 is not set
-+
-+#
-+# Hardware Monitoring support
-+#
-+# CONFIG_HWMON is not set
-+# CONFIG_HWMON_VID is not set
-+
-+#
-+# Misc devices
-+#
-+# CONFIG_SGI_IOC4 is not set
-+# CONFIG_TIFM_CORE 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_CM_X270=y
-+
-+#
-+# LED Triggers
-+#
-+CONFIG_LEDS_TRIGGERS=y
-+# CONFIG_LEDS_TRIGGER_TIMER is not set
-+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
-+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 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
-+
-+#
-+# Frambuffer hardware drivers
-+#
-+# CONFIG_FB_CIRRUS is not set
-+# CONFIG_FB_PM2 is not set
-+# 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_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_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_TRIDENT is not set
-+CONFIG_FB_PXA=y
-+# CONFIG_FB_PXA_PARAMETERS is not set
-+CONFIG_FB_MBX=m
-+# 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 is not set
-+CONFIG_FONT_8x8=y
-+CONFIG_FONT_8x16=y
-+
-+#
-+# Logo configuration
-+#
-+CONFIG_LOGO=y
-+CONFIG_LOGO_LINUX_MONO=y
-+CONFIG_LOGO_LINUX_VGA16=y
-+CONFIG_LOGO_LINUX_CLUT224=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_AC97_CODEC=m
-+# 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
-+# CONFIG_SND_AC97_POWER_SAVE is not set
-+
-+#
-+# ALSA ARM devices
-+#
-+CONFIG_SND_PXA2XX_PCM=m
-+CONFIG_SND_PXA2XX_AC97=m
-+
-+#
-+# 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
-+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=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 is not set
-+# CONFIG_USB_OTG is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_EHCI_HCD 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 is not set
-+# 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=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_KARMA 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 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
-+# 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=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_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
-+# 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=m
-+# CONFIG_MMC_DEBUG is not set
-+CONFIG_MMC_BLOCK=m
-+CONFIG_MMC_PXA=m
-+# CONFIG_MMC_SDHCI 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
-+#
-+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_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=y
-+
-+#
-+# File systems
-+#
-+CONFIG_EXT2_FS=y
-+# CONFIG_EXT2_FS_XATTR is not set
-+# CONFIG_EXT2_FS_XIP is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_EXT3_FS_XATTR=y
-+# CONFIG_EXT3_FS_POSIX_ACL is not set
-+# CONFIG_EXT3_FS_SECURITY is not set
-+# CONFIG_EXT4DEV_FS is not set
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+CONFIG_FS_MBCACHE=y
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_FS_POSIX_ACL is not set
-+# CONFIG_XFS_FS is not set
-+# CONFIG_GFS2_FS is not set
-+# CONFIG_OCFS2_FS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_INOTIFY=y
-+CONFIG_INOTIFY_USER=y
-+# CONFIG_QUOTA is not set
-+CONFIG_DNOTIFY=y
-+# CONFIG_AUTOFS_FS 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=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_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 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=y
-+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 is not set
-+CONFIG_ROOT_NFS=y
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=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=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
-+# 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
-+
-+#
-+# 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_DEBUG_SHIRQ is not set
-+CONFIG_LOG_BUF_SHIFT=17
-+# 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_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 is not set
-+CONFIG_DEBUG_INFO=y
-+# 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_FAULT_INJECTION is not set
-+CONFIG_DEBUG_USER=y
-+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_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 is not set
-+# 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=m
-+CONFIG_CRYPTO_PCBC=m
-+# CONFIG_CRYPTO_LRW is not set
-+# CONFIG_CRYPTO_DES is not set
-+# CONFIG_CRYPTO_FCRYPT is not set
-+# CONFIG_CRYPTO_BLOWFISH is not set
-+# CONFIG_CRYPTO_TWOFISH is not set
-+# CONFIG_CRYPTO_SERPENT is not set
-+CONFIG_CRYPTO_AES=m
-+# CONFIG_CRYPTO_CAST5 is not set
-+# CONFIG_CRYPTO_CAST6 is not set
-+# CONFIG_CRYPTO_TEA is not set
-+CONFIG_CRYPTO_ARC4=m
-+# CONFIG_CRYPTO_KHAZAD is not set
-+# CONFIG_CRYPTO_ANUBIS is not set
-+# CONFIG_CRYPTO_DEFLATE 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
-+#
-+
-+#
-+# Library routines
-+#
-+CONFIG_BITREVERSE=y
-+# CONFIG_CRC_CCITT is not set
-+# CONFIG_CRC16 is not set
-+CONFIG_CRC32=y
-+# CONFIG_LIBCRC32C is not set
-+CONFIG_PLIST=y
-+CONFIG_HAS_IOMEM=y
-+CONFIG_HAS_IOPORT=y
-diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
-index 5ebec6d..e126926 100644
---- a/arch/arm/mach-pxa/Kconfig
-+++ b/arch/arm/mach-pxa/Kconfig
-@@ -40,6 +40,12 @@ config MACH_TRIZEPS4
- config MACH_EM_X270
- bool "CompuLab EM-x270 platform"
- select PXA27x
-+ select IWMMXT
-+
-+config MACH_ARMCORE
-+ bool "CompuLab CM-X270 modules"
-+ select PXA27x
-+ select IWMMXT
-
- endchoice
-
-diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
-index 7d6ab5c..b369289 100644
---- a/arch/arm/mach-pxa/Makefile
-+++ b/arch/arm/mach-pxa/Makefile
-@@ -19,6 +19,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_MACH_EM_X270) += em-x270.o
-+obj-$(CONFIG_MACH_ARMCORE) += cm-x270.o
-
- # Support for blinky lights
- led-y := leds.o
-@@ -26,6 +27,8 @@ led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o
- led-$(CONFIG_MACH_MAINSTONE) += leds-mainstone.o
- led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
- led-$(CONFIG_MACH_TRIZEPS4) += leds-trizeps4.o
-+# FIXME: use driver/leds instead
-+led-$(CONFIG_MACH_ARMCORE) += leds-cm-x270.o
-
- obj-$(CONFIG_LEDS) += $(led-y)
-
-@@ -36,3 +39,7 @@ obj-$(CONFIG_PXA_SSP) += ssp.o
- ifeq ($(CONFIG_PXA27x),y)
- obj-$(CONFIG_PM) += standby.o
- endif
-+
-+ifeq ($(CONFIG_PCI),y)
-+obj-$(CONFIG_MACH_ARMCORE) += cm-x270-pci.o
-+endif
-diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
-new file mode 100644
-index 0000000..7b4e288
---- /dev/null
-+++ b/arch/arm/mach-pxa/cm-x270.c
-@@ -0,0 +1,821 @@
-+/*
-+ * linux/arch/arm/mach-pxa/cm-x270.c
-+ *
-+ * Copyright (C) 2007 CompuLab, Ltd.
-+ * Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * 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/pm.h>
-+#include <linux/fb.h>
-+#include <linux/platform_device.h>
-+#include <linux/sysdev.h>
-+#include <linux/dm9000.h>
-+#include <linux/rtc-v3020.h>
-+#include <linux/serial_8250.h>
-+#include <video/mbxfb.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/io.h>
-+#include <asm/delay.h>
-+
-+#include <asm/mach/arch.h>
-+#include <asm/mach/map.h>
-+#include <asm/mach/irq.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/pxafb.h>
-+#include <asm/arch/ohci.h>
-+#include <asm/arch/mmc.h>
-+#include <asm/arch/bitfield.h>
-+#include <asm/arch/cm-x270.h>
-+
-+#include <asm/hardware/it8152.h>
-+
-+#include "generic.h"
-+
-+#define RTC_PHYS_BASE (PXA_CS1_PHYS + (5 << 22))
-+#define DM9000_PHYS_BASE (PXA_CS1_PHYS + (6 << 22))
-+
-+static struct resource cmx270_dm9k_resource[] = {
-+ [0] = {
-+ .start = DM9000_PHYS_BASE,
-+ .end = DM9000_PHYS_BASE + 4,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .start = DM9000_PHYS_BASE + 8,
-+ .end = DM9000_PHYS_BASE + 8 + 500,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [2] = {
-+ .start = CMX270_ETHIRQ,
-+ .end = CMX270_ETHIRQ,
-+ .flags = IORESOURCE_IRQ,
-+ }
-+};
-+
-+/* for the moment we limit ourselves to 32bit IO until some
-+ * better IO routines can be written and tested
-+ */
-+static struct dm9000_plat_data cmx270_dm9k_platdata = {
-+ .flags = DM9000_PLATF_32BITONLY,
-+};
-+
-+/* Ethernet device */
-+static struct platform_device cmx270_device_dm9k = {
-+ .name = "dm9000",
-+ .id = 0,
-+ .num_resources = ARRAY_SIZE(cmx270_dm9k_resource),
-+ .resource = cmx270_dm9k_resource,
-+ .dev = {
-+ .platform_data = &cmx270_dm9k_platdata,
-+ }
-+};
-+
-+/* audio device */
-+static struct platform_device cmx270_audio_device = {
-+ .name = "pxa2xx-ac97",
-+ .id = -1,
-+};
-+
-+/* touchscreen controller */
-+static struct platform_device cmx270_ts_device = {
-+ .name = "ucb1x00-ts",
-+ .id = -1,
-+};
-+
-+/* RTC */
-+static struct resource cmx270_v3020_resource[] = {
-+ [0] = {
-+ .start = RTC_PHYS_BASE,
-+ .end = RTC_PHYS_BASE + 4,
-+ .flags = IORESOURCE_MEM,
-+ },
-+};
-+
-+struct v3020_platform_data cmx270_v3020_pdata = {
-+ .leftshift = 16,
-+};
-+
-+static struct platform_device cmx270_rtc_device = {
-+ .name = "v3020",
-+ .num_resources = ARRAY_SIZE(cmx270_v3020_resource),
-+ .resource = cmx270_v3020_resource,
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &cmx270_v3020_pdata,
-+ }
-+};
-+
-+/*
-+ * CM-X270 LEDs
-+ */
-+static struct platform_device cmx270led_device = {
-+ .name = "cm-x270-led",
-+ .id = -1,
-+};
-+
-+/* 2700G graphics */
-+static u64 fb_dma_mask = ~(u64)0;
-+
-+static struct resource cmx270_2700G_resource[] = {
-+ /* frame buffer memory including ODFB and External SDRAM */
-+ [0] = {
-+ .start = MARATHON_PHYS,
-+ .end = MARATHON_PHYS + 0x02000000,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ /* Marathon registers */
-+ [1] = {
-+ .start = MARATHON_PHYS + 0x03fe0000,
-+ .end = MARATHON_PHYS + 0x03ffffff,
-+ .flags = IORESOURCE_MEM,
-+ },
-+};
-+
-+static unsigned long save_lcd_regs[10];
-+
-+static int cmx270_marathon_probe(struct fb_info *fb)
-+{
-+ /* save PXA-270 pin settings before enabling 2700G */
-+ save_lcd_regs[0] = GPDR1;
-+ save_lcd_regs[1] = GPDR2;
-+ save_lcd_regs[2] = GAFR1_U;
-+ save_lcd_regs[3] = GAFR2_L;
-+ save_lcd_regs[4] = GAFR2_U;
-+
-+ /* Disable PXA-270 on-chip controller driving pins */
-+ GPDR1 &= ~(0xfc000000);
-+ GPDR2 &= ~(0x00c03fff);
-+ GAFR1_U &= ~(0xfff00000);
-+ GAFR2_L &= ~(0x0fffffff);
-+ GAFR2_U &= ~(0x0000f000);
-+ return 0;
-+}
-+
-+static int cmx270_marathon_remove(struct fb_info *fb)
-+{
-+ GPDR1 = save_lcd_regs[0];
-+ GPDR2 = save_lcd_regs[1];
-+ GAFR1_U = save_lcd_regs[2];
-+ GAFR2_L = save_lcd_regs[3];
-+ GAFR2_U = save_lcd_regs[4];
-+ return 0;
-+}
-+
-+static struct mbxfb_platform_data cmx270_2700G_data = {
-+ .xres = {
-+ .min = 240,
-+ .max = 1200,
-+ .defval = 640,
-+ },
-+ .yres = {
-+ .min = 240,
-+ .max = 1200,
-+ .defval = 480,
-+ },
-+ .bpp = {
-+ .min = 16,
-+ .max = 32,
-+ .defval = 16,
-+ },
-+ .memsize = 8*1024*1024,
-+ .probe = cmx270_marathon_probe,
-+ .remove = cmx270_marathon_remove,
-+};
-+
-+static struct platform_device cmx270_2700G = {
-+ .name = "mbx-fb",
-+ .dev = {
-+ .platform_data = &cmx270_2700G_data,
-+ .dma_mask = &fb_dma_mask,
-+ .coherent_dma_mask = 0xffffffff,
-+ },
-+ .num_resources = ARRAY_SIZE(cmx270_2700G_resource),
-+ .resource = cmx270_2700G_resource,
-+ .id = -1,
-+};
-+
-+/* platform devices */
-+static struct platform_device *platform_devices[] __initdata = {
-+ &cmx270_device_dm9k,
-+ &cmx270_audio_device,
-+ &cmx270_rtc_device,
-+ &cmx270_2700G,
-+ &cmx270led_device,
-+};
-+
-+#ifdef CONFIG_PCI
-+/*
-+ * Install handler for IT8152 IRQ. Yes, yes... we are way down the IRQ
-+ * cascade which is not good for IRQ latency, but the hardware has been
-+ * designed that way...
-+ */
-+static inline void cmx270_irq(int irq, struct pt_regs *regs)
-+{
-+ struct irq_desc *desc;
-+ desc = irq_desc + irq;
-+ desc_handle_irq(irq, desc);
-+}
-+
-+static void cmx270_irq_demux(unsigned int irq, struct irqdesc *desc,
-+ struct pt_regs *regs)
-+{
-+ unsigned long pdcnimr, ldcnimr;
-+ int pdcnirr, ldcnir;
-+
-+ /* clear our parent irq */
-+ GEDR(GPIO_IT8152_IRQ) = GPIO_bit(GPIO_IT8152_IRQ);
-+
-+ /* read pending IRQs in the chip registers and clear them */
-+ pdcnirr = IT8152_INTC_PDCNIRR;
-+ ldcnir = IT8152_INTC_LDCNIRR;
-+ IT8152_INTC_PDCNIRR = ~pdcnirr;
-+ IT8152_INTC_LDCNIRR = ~ldcnir;
-+
-+ /* mask ITE irqs */
-+ pdcnimr = IT8152_INTC_PDCNIMR;
-+ ldcnimr = IT8152_INTC_LDCNIMR;
-+ IT8152_INTC_PDCNIMR = 0xffff;
-+ IT8152_INTC_LDCNIMR = 0xffff;
-+
-+ pdcnirr &= (PCISERR_BIT | H2PTADR_BIT | H2PMAR_BIT |
-+ PCI_INTD_BIT | PCI_INTC_BIT | PCI_INTB_BIT | PCI_INTA_BIT |
-+ USB_INT_BIT | CDMA_INT_BIT);
-+
-+ ldcnir &= ITESER_BIT;
-+
-+ IT8152_INTC_PDCNIRR = ~pdcnirr;
-+ IT8152_INTC_LDCNIRR = ~ldcnir;
-+
-+ /* are there interrupts pending ? */
-+ if( (pdcnirr | ldcnir) ) {
-+ if (pdcnirr) {
-+ if( pdcnirr & PCISERR_BIT )
-+ cmx270_irq(PCISERR, regs);
-+ if( pdcnirr & H2PTADR_BIT )
-+ cmx270_irq(H2PTADR, regs);
-+ if( pdcnirr & H2PMAR_BIT )
-+ cmx270_irq(H2PMAR, regs);
-+ if( pdcnirr & PCI_INTA_BIT )
-+ cmx270_irq(PCI_INTA, regs);
-+ if( pdcnirr & PCI_INTB_BIT )
-+ cmx270_irq(PCI_INTB, regs);
-+ if( pdcnirr & PCI_INTC_BIT )
-+ cmx270_irq(PCI_INTC, regs);
-+ if( pdcnirr & PCI_INTD_BIT )
-+ cmx270_irq(PCI_INTD, regs);
-+ if( pdcnirr & USB_INT_BIT )
-+ cmx270_irq(USB_INT, regs);
-+ if( pdcnirr & CDMA_INT_BIT )
-+ cmx270_irq(CDMA_INT, regs);
-+ }
-+ if(ldcnir) {
-+ if( ldcnir & ITESER_BIT )
-+ cmx270_irq(IRQ_ITESER, regs);
-+ }
-+ }
-+
-+ /* re-enable ITE interrupts */
-+ IT8152_INTC_PDCNIMR = pdcnimr;
-+ IT8152_INTC_LDCNIMR = ldcnimr;
-+}
-+#else
-+unsigned long it8152_base_address = CMX270_IT8152_VIRT;
-+#endif
-+
-+/* #define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + PXA_CS_SIZE - (8<<20)) */
-+/* Map PCI companion and IDE/General Purpose CS statically */
-+static struct map_desc cmx270_io_desc[] __initdata = {
-+ [0] = { /* IDE/general purpose space */
-+ .virtual = CMX270_IDE104_VIRT,
-+ .pfn = __phys_to_pfn(CMX270_IDE104_PHYS),
-+ .length = PXA_CS_SIZE - (8<<20),
-+ .type = MT_DEVICE
-+ },
-+ [1] = { /* PCI bridge */
-+ .virtual = CMX270_IT8152_VIRT,
-+ .pfn = __phys_to_pfn(CMX270_IT8152_PHYS),
-+ .length = PXA_CS_SIZE,
-+ .type = MT_DEVICE
-+ },
-+};
-+
-+/*
-+ Display definitions
-+ keep these for backwards compatibility, although symbolic names (as
-+ e.g. in lpd270.c) looks better
-+ */
-+#define MTYPE_STN320x240 0
-+#define MTYPE_TFT640x480 1
-+#define MTYPE_CRT640x480 2
-+#define MTYPE_CRT800x600 3
-+#define MTYPE_TFT320x240 6
-+#define MTYPE_STN640x480 7
-+
-+static struct pxafb_mode_info generic_stn_320x240_mode = {
-+ .pixclock = 76923,
-+ .bpp = 8,
-+ .xres = 320,
-+ .yres = 240,
-+ .hsync_len = 3,
-+ .vsync_len = 2,
-+ .left_margin = 3,
-+ .upper_margin = 0,
-+ .right_margin = 3,
-+ .lower_margin = 0,
-+ .sync = (FB_SYNC_HOR_HIGH_ACT |
-+ FB_SYNC_VERT_HIGH_ACT),
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_stn_320x240 = {
-+ .modes = &generic_stn_320x240_mode,
-+ .num_modes = 1,
-+ .lccr0 = 0,
-+ .lccr3 = (LCCR3_PixClkDiv(0x03) |
-+ LCCR3_Acb(0xff) |
-+ LCCR3_PCP),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mode_info generic_tft_640x480_mode = {
-+ .pixclock = 38461,
-+ .bpp = 8,
-+ .xres = 640,
-+ .yres = 480,
-+ .hsync_len = 60,
-+ .vsync_len = 2,
-+ .left_margin = 70,
-+ .upper_margin = 10,
-+ .right_margin = 70,
-+ .lower_margin = 5,
-+ .sync = 0,
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_tft_640x480 = {
-+ .modes = &generic_tft_640x480_mode,
-+ .num_modes = 1,
-+ .lccr0 = (LCCR0_PAS),
-+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
-+ LCCR3_Acb(0xff) |
-+ LCCR3_PCP),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mode_info generic_crt_640x480_mode = {
-+ .pixclock = 38461,
-+ .bpp = 8,
-+ .xres = 640,
-+ .yres = 480,
-+ .hsync_len = 63,
-+ .vsync_len = 2,
-+ .left_margin = 81,
-+ .upper_margin = 33,
-+ .right_margin = 16,
-+ .lower_margin = 10,
-+ .sync = (FB_SYNC_HOR_HIGH_ACT |
-+ FB_SYNC_VERT_HIGH_ACT),
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_crt_640x480 = {
-+ .modes = &generic_crt_640x480_mode,
-+ .num_modes = 1,
-+ .lccr0 = (LCCR0_PAS),
-+ .lccr3 = (LCCR3_PixClkDiv(0x01) |
-+ LCCR3_Acb(0xff)),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mode_info generic_crt_800x600_mode = {
-+ .pixclock = 28846,
-+ .bpp = 8,
-+ .xres = 800,
-+ .yres = 600,
-+ .hsync_len = 63,
-+ .vsync_len = 2,
-+ .left_margin = 26,
-+ .upper_margin = 21,
-+ .right_margin = 26,
-+ .lower_margin = 11,
-+ .sync = (FB_SYNC_HOR_HIGH_ACT |
-+ FB_SYNC_VERT_HIGH_ACT),
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_crt_800x600 = {
-+ .modes = &generic_crt_800x600_mode,
-+ .num_modes = 1,
-+ .lccr0 = (LCCR0_PAS),
-+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
-+ LCCR3_Acb(0xff)),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mode_info generic_tft_320x240_mode = {
-+ .pixclock = 134615,
-+ .bpp = 16,
-+ .xres = 320,
-+ .yres = 240,
-+ .hsync_len = 63,
-+ .vsync_len = 7,
-+ .left_margin = 75,
-+ .upper_margin = 0,
-+ .right_margin = 15,
-+ .lower_margin = 15,
-+ .sync = 0,
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_tft_320x240 = {
-+ .modes = &generic_tft_320x240_mode,
-+ .num_modes = 1,
-+ .lccr0 = (LCCR0_PAS),
-+ .lccr3 = (LCCR3_PixClkDiv(0x06) |
-+ LCCR3_Acb(0xff) |
-+ LCCR3_PCP),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mode_info generic_stn_640x480_mode = {
-+ .pixclock = 57692,
-+ .bpp = 8,
-+ .xres = 640,
-+ .yres = 480,
-+ .hsync_len = 4,
-+ .vsync_len = 2,
-+ .left_margin = 10,
-+ .upper_margin = 5,
-+ .right_margin = 10,
-+ .lower_margin = 5,
-+ .sync = (FB_SYNC_HOR_HIGH_ACT |
-+ FB_SYNC_VERT_HIGH_ACT),
-+ .cmap_greyscale = 0,
-+};
-+
-+static struct pxafb_mach_info generic_stn_640x480 = {
-+ .modes = &generic_stn_640x480_mode,
-+ .num_modes = 1,
-+ .lccr0 = 0,
-+ .lccr3 = (LCCR3_PixClkDiv(0x02) |
-+ LCCR3_Acb(0xff)),
-+ .cmap_inverse = 0,
-+ .cmap_static = 0,
-+};
-+
-+static struct pxafb_mach_info *cmx270_display = &generic_crt_640x480;
-+
-+static int __init cmx270_set_display(char *str)
-+{
-+ int disp_type = simple_strtol(str, NULL, 0);
-+ switch (disp_type) {
-+ case MTYPE_STN320x240:
-+ cmx270_display = &generic_stn_320x240;
-+ break;
-+ case MTYPE_TFT640x480:
-+ cmx270_display = &generic_tft_640x480;
-+ break;
-+ case MTYPE_CRT640x480:
-+ cmx270_display = &generic_crt_640x480;
-+ break;
-+ case MTYPE_CRT800x600:
-+ cmx270_display = &generic_crt_800x600;
-+ break;
-+ case MTYPE_TFT320x240:
-+ cmx270_display = &generic_tft_320x240;
-+ break;
-+ case MTYPE_STN640x480:
-+ cmx270_display = &generic_stn_640x480;
-+ break;
-+ default: /* fallback to CRT 640x480 */
-+ cmx270_display = &generic_crt_640x480;
-+ break;
-+ }
-+ return 1;
-+}
-+
-+__setup("monitor=", cmx270_set_display);
-+
-+/* PXA27x OHCI controller setup */
-+static int cmx270_ohci_init(struct device *dev)
-+{
-+ /* Set the Power Control Polarity Low */
-+ UHCHR = (UHCHR | UHCHR_PCPL) &
-+ ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE);
-+
-+ return 0;
-+}
-+
-+static struct pxaohci_platform_data cmx270_ohci_platform_data = {
-+ .port_mode = PMM_PERPORT_MODE,
-+ .init = cmx270_ohci_init,
-+};
-+
-+
-+static int cmx270_mci_init(struct device *dev, irq_handler_t cmx270_detect_int, void *data)
-+{
-+ int err;
-+
-+ /*
-+ * setup GPIO for PXA27x MMC 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);
-+
-+ /* SB-X270 uses GPIO105 as SD power enable */
-+ pxa_gpio_mode(105 | GPIO_OUT);
-+
-+ /* card detect IRQ on GPIO 83 */
-+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_MMC_IRQ));
-+ set_irq_type(CMX270_MMC_IRQ, IRQT_FALLING);
-+
-+ err = request_irq(CMX270_MMC_IRQ, cmx270_detect_int, SA_INTERRUPT,
-+ "MMC card detect", data);
-+ if (err) {
-+ printk(KERN_ERR "cmx270_mci_init: MMC/SD: can't request MMC card detect IRQ\n");
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+static void cmx270_mci_setpower(struct device *dev, unsigned int vdd)
-+{
-+ struct pxamci_platform_data* p_d = dev->platform_data;
-+
-+ if (( 1 << vdd) & p_d->ocr_mask) {
-+ printk(KERN_DEBUG "%s: on\n", __FUNCTION__);
-+ GPCR(105) = GPIO_bit(105);
-+ } else {
-+ GPSR(105) = GPIO_bit(105);
-+ printk(KERN_DEBUG "%s: off\n", __FUNCTION__);
-+ }
-+}
-+
-+static void cmx270_mci_exit(struct device *dev, void *data)
-+{
-+ free_irq(CMX270_MMC_IRQ, data);
-+}
-+
-+static struct pxamci_platform_data cmx270_mci_platform_data = {
-+ .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
-+ .init = cmx270_mci_init,
-+ .setpower = cmx270_mci_setpower,
-+ .exit = cmx270_mci_exit,
-+};
-+
-+#ifdef CONFIG_PM
-+/* extern struct subsystem power_subsys; */
-+static unsigned long sleep_save_ite[10];
-+static unsigned long sleep_save_msc[10];
-+
-+static int cmx270_suspend(struct sys_device *dev, pm_message_t state)
-+{
-+#ifdef CONFIG_PCI
-+ /* save ITE state */
-+ sleep_save_ite[0] = IT8152_INTC_PDCNIMR;
-+ sleep_save_ite[1] = IT8152_INTC_LPCNIMR;
-+ sleep_save_ite[2] = IT8152_INTC_LPNIAR;
-+
-+ /* Clear ITE IRQ's */
-+ IT8152_INTC_PDCNIRR = 0;
-+ IT8152_INTC_LPCNIRR = 0;
-+#endif
-+
-+ /* save MSC registers */
-+ sleep_save_msc[0] = MSC0;
-+ sleep_save_msc[1] = MSC1;
-+ sleep_save_msc[2] = MSC2;
-+
-+ /* setup power saving mode registers */
-+ PCFR = 0x0;
-+ PSLR = 0xff400000;
-+ PMCR = 0x00000005;
-+ PWER = 0x80000000;
-+ PFER = 0x00000000;
-+ PRER = 0x00000000;
-+ PGSR0 = 0xC0018800;
-+ PGSR1 = 0x004F0002;
-+ PGSR2 = 0x6021C000;
-+ PGSR3 = 0x00020000;
-+
-+ return 0;
-+}
-+
-+static int cmx270_resume(struct sys_device *dev)
-+{
-+#ifdef CONFIG_PCI
-+ /* restore IT8152 state */
-+ IT8152_INTC_PDCNIMR = sleep_save_ite[0];
-+ IT8152_INTC_LPCNIMR = sleep_save_ite[1];
-+ IT8152_INTC_LPNIAR = sleep_save_ite[2];
-+#endif
-+
-+ /* restore MSC registers */
-+ MSC0 = sleep_save_msc[0];
-+ MSC1 = sleep_save_msc[1];
-+ MSC2 = sleep_save_msc[2];
-+
-+ return 0;
-+}
-+
-+static struct sysdev_class cmx270_pm_sysclass = {
-+ set_kset_name("pm"),
-+ .resume = cmx270_resume,
-+ .suspend = cmx270_suspend,
-+};
-+
-+static struct sys_device cmx270_pm_device = {
-+ .cls = &cmx270_pm_sysclass,
-+};
-+
-+static int __init cmx270_pm_init(void)
-+{
-+ int error;
-+ error = sysdev_class_register(&cmx270_pm_sysclass);
-+ if (error == 0)
-+ error = sysdev_register(&cmx270_pm_device);
-+ return error;
-+}
-+#else
-+static int __init cmx270_pm_init(void) { return 0; }
-+#endif
-+
-+static void __init cmx270_init(void)
-+{
-+ cmx270_pm_init();
-+
-+ set_pxa_fb_info(cmx270_display);
-+
-+ /* register CM-X270 platform devices */
-+ platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
-+
-+ /* set MCI and OHCI platform parameters */
-+ pxa_set_mci_info(&cmx270_mci_platform_data);
-+ pxa_set_ohci_info(&cmx270_ohci_platform_data);
-+
-+ /* This enables the STUART */
-+ pxa_gpio_mode(GPIO46_STRXD_MD);
-+ pxa_gpio_mode(GPIO47_STTXD_MD);
-+
-+ /* This enables the BTUART */
-+ pxa_gpio_mode(GPIO42_BTRXD_MD);
-+ pxa_gpio_mode(GPIO43_BTTXD_MD);
-+ pxa_gpio_mode(GPIO44_BTCTS_MD);
-+ pxa_gpio_mode(GPIO45_BTRTS_MD);
-+}
-+
-+#ifdef CONFIG_PCI
-+static void cmx270_mask_irq(unsigned int irq)
-+{
-+ switch(irq) {
-+ case IT8152_IRQ(0):
-+ IT8152_INTC_PDCNIMR |= PCISERR_BIT;
-+ break;
-+ case IT8152_IRQ(1):
-+ IT8152_INTC_PDCNIMR |= H2PTADR_BIT;
-+ break;
-+ case IT8152_IRQ(2):
-+ IT8152_INTC_PDCNIMR |= H2PMAR_BIT;
-+ break;
-+ case IT8152_IRQ(3):
-+ IT8152_INTC_PDCNIMR |= PCI_INTA_BIT;
-+ break;
-+ case IT8152_IRQ(4):
-+ IT8152_INTC_PDCNIMR |= PCI_INTB_BIT;
-+ break;
-+ case IT8152_IRQ(5):
-+ IT8152_INTC_PDCNIMR |= PCI_INTC_BIT;
-+ break;
-+ case IT8152_IRQ(6):
-+ IT8152_INTC_PDCNIMR |= PCI_INTD_BIT;
-+ break;
-+ case IT8152_IRQ(7):
-+ IT8152_INTC_PDCNIMR |= USB_INT_BIT;
-+ break;
-+ case IT8152_IRQ(9):
-+ IT8152_INTC_PDCNIMR |= CDMA_INT_BIT;
-+ break;
-+ case IT8152_IRQ(10):
-+ IT8152_INTC_LDCNIMR |= ITESER_BIT;
-+ break;
-+ }
-+}
-+
-+static void cmx270_unmask_irq(unsigned int irq)
-+{
-+ switch(irq) {
-+ case IT8152_IRQ(0):
-+ IT8152_INTC_PDCNIMR &= (~PCISERR_BIT);
-+ break;
-+ case IT8152_IRQ(1):
-+ IT8152_INTC_PDCNIMR &= (~H2PTADR_BIT);
-+ break;
-+ case IT8152_IRQ(2):
-+ IT8152_INTC_PDCNIMR &= (~H2PMAR_BIT);
-+ break;
-+ case IT8152_IRQ(3):
-+ IT8152_INTC_PDCNIMR &= (~PCI_INTA_BIT);
-+ break;
-+ case IT8152_IRQ(4):
-+ IT8152_INTC_PDCNIMR &= (~PCI_INTB_BIT);
-+ break;
-+ case IT8152_IRQ(5):
-+ IT8152_INTC_PDCNIMR &= (~PCI_INTC_BIT);
-+ break;
-+ case IT8152_IRQ(6):
-+ IT8152_INTC_PDCNIMR &= (~PCI_INTD_BIT);
-+ break;
-+ case IT8152_IRQ(7):
-+ IT8152_INTC_PDCNIMR &= (~USB_INT_BIT);
-+ break;
-+ case IT8152_IRQ(9):
-+ IT8152_INTC_PDCNIMR &= (~CDMA_INT_BIT);
-+ break;
-+ case IT8152_IRQ(10):
-+ IT8152_INTC_LDCNIMR &= (~ITESER_BIT);
-+ break;
-+ }
-+}
-+
-+static struct irq_chip cmx270_irq_chip = {
-+ .ack = cmx270_mask_irq,
-+ .mask = cmx270_mask_irq,
-+ .unmask = cmx270_unmask_irq,
-+};
-+#endif
-+
-+static void __init cmx270_init_irq(void)
-+{
-+ int irq;
-+
-+ pxa27x_init_irq();
-+
-+ IT8152_INTC_PDCNIMR = 0xffff;
-+
-+#ifdef CONFIG_PCI
-+ /* Disable and clear IRQ's for ITE8152 */
-+ IT8152_INTC_PDCNIMR = 0xffff;
-+ IT8152_INTC_PDCNIRR = 0;
-+ IT8152_INTC_LPCNIMR = 0xffff;
-+ IT8152_INTC_LPCNIRR = 0;
-+ IT8152_INTC_LDCNIMR = 0xffff;
-+ IT8152_INTC_LDCNIRR = 0;
-+
-+ for(irq = IT8152_IRQ(0); irq <= IT8152_IRQ_MAX; irq++) {
-+ set_irq_chip(irq, &cmx270_irq_chip);
-+ set_irq_handler(irq, handle_level_irq);
-+ set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
-+ }
-+
-+ /* INTC signal from IT8152 is connected to GPIO0 */
-+ pxa_gpio_mode(IRQ_GPIO_IT8152_IRQ);
-+ set_irq_chained_handler(IRQ_GPIO_IT8152_IRQ, cmx270_irq_demux);
-+ set_irq_type(IRQ_GPIO_IT8152_IRQ, IRQT_RISING);
-+#endif
-+
-+ /* Setup interrupt for dm9000 */
-+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_ETHIRQ));
-+ set_irq_type(CMX270_ETHIRQ, IRQT_RISING);
-+
-+ /* Setup interrupt for 2700G */
-+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_GFXIRQ));
-+ set_irq_type(CMX270_GFXIRQ, IRQT_FALLING);
-+}
-+
-+static void __init cmx270_map_io(void)
-+{
-+ pxa_map_io();
-+ iotable_init(cmx270_io_desc, ARRAY_SIZE(cmx270_io_desc));
-+}
-+
-+
-+MACHINE_START(ARMCORE, "Compulab CM-x270")
-+ .boot_params = 0xa0000100,
-+ .phys_io = 0x40000000,
-+ .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
-+ .map_io = cmx270_map_io,
-+ .init_irq = cmx270_init_irq,
-+ .timer = &pxa_timer,
-+ .init_machine = cmx270_init,
-+MACHINE_END
-diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
-index 4468cb3..02b04e2 100644
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -87,6 +87,12 @@ config LEDS_H1940
- help
- This option enables support for the LEDs on the h1940.
-
-+config LEDS_CM_X270
-+ tristate "LED Support for the CM-X270 LEDs"
-+ depends on LEDS_CLASS && MACH_ARMCORE
-+ help
-+ This option enables support for the CM-X270 LEDs.
-+
- config LEDS_COBALT
- tristate "LED Support for Cobalt Server front LED"
- depends on LEDS_CLASS && MIPS_COBALT
-diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
-index f8995c9..12a860c 100644
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
- obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
- obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
- obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
-+obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
-
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
-diff --git a/drivers/leds/leds-cm-x270.c b/drivers/leds/leds-cm-x270.c
-new file mode 100644
-index 0000000..63b7e9e
---- /dev/null
-+++ b/drivers/leds/leds-cm-x270.c
-@@ -0,0 +1,126 @@
-+/*
-+ * drivers/leds/leds-cm-x270.c
-+ *
-+ * Copyright 2007 CompuLab Ltd.
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Based on leds-corgi.c
-+ * Author: Richard Purdie <rpurdie@openedhand.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/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/leds.h>
-+
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+
-+#define GPIO_RED_LED (93)
-+#define GPIO_GREEN_LED (94)
-+
-+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
-+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
-+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
-+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
-+
-+
-+static void cmx270_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ if (value)
-+ CMX270_RED_ON();
-+ else
-+ CMX270_RED_OFF();
-+}
-+
-+static void cmx270_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ if (value)
-+ CMX270_GREEN_ON();
-+ else
-+ CMX270_GREEN_OFF();
-+}
-+
-+static struct led_classdev cmx270_red_led = {
-+ .name = "cm-x270:red",
-+ .default_trigger = "nand-disk",
-+ .brightness_set = cmx270_red_set,
-+};
-+
-+static struct led_classdev cmx270_green_led = {
-+ .name = "cm-x270:green",
-+ .default_trigger = "heartbeat",
-+ .brightness_set = cmx270_green_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int cmx270led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ led_classdev_suspend(&cmx270_red_led);
-+ led_classdev_suspend(&cmx270_green_led);
-+ return 0;
-+}
-+
-+static int cmx270led_resume(struct platform_device *dev)
-+{
-+ led_classdev_resume(&cmx270_red_led);
-+ led_classdev_resume(&cmx270_green_led);
-+ return 0;
-+}
-+#endif
-+
-+static int cmx270led_probe(struct platform_device *pdev)
-+{
-+ int ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &cmx270_red_led);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &cmx270_green_led);
-+ if (ret < 0)
-+ led_classdev_unregister(&cmx270_red_led);
-+
-+ return ret;
-+}
-+
-+static int cmx270led_remove(struct platform_device *pdev)
-+{
-+ led_classdev_unregister(&cmx270_red_led);
-+ led_classdev_unregister(&cmx270_green_led);
-+ return 0;
-+}
-+
-+static struct platform_driver cmx270led_driver = {
-+ .probe = cmx270led_probe,
-+ .remove = cmx270led_remove,
-+#ifdef CONFIG_PM
-+ .suspend = cmx270led_suspend,
-+ .resume = cmx270led_resume,
-+#endif
-+ .driver = {
-+ .name = "cm-x270-led",
-+ },
-+};
-+
-+static int __init cmx270led_init(void)
-+{
-+ return platform_driver_register(&cmx270led_driver);
-+}
-+
-+static void __exit cmx270led_exit(void)
-+{
-+ platform_driver_unregister(&cmx270led_driver);
-+}
-+
-+module_init(cmx270led_init);
-+module_exit(cmx270led_exit);
-+
-+MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
-+MODULE_DESCRIPTION("Corgi LED driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
-index c551925..b34f875 100644
---- a/drivers/net/Kconfig
-+++ b/drivers/net/Kconfig
-@@ -940,6 +940,14 @@ config DM9000
- <file:Documentation/networking/net-modules.txt>. The module will be
- called dm9000.
-
-+config DM9000_NOEPROM
-+ bool "DM9000 without EEPROM attached"
-+ depends on DM9000
-+ ---help---
-+ Select this option if you have DM9000 chipset without EEPROM
-+ containing the MAC address. In this case MAC address should
-+ be set either by the bootloader or using ifconfig
-+
- config SMC911X
- tristate "SMSC LAN911[5678] support"
- select CRC32
-diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
-index 738aa59..2371c6b 100644
---- a/drivers/net/dm9000.c
-+++ b/drivers/net/dm9000.c
-@@ -577,6 +577,7 @@ dm9000_probe(struct platform_device *pdev)
- db->mii.mdio_read = dm9000_phy_read;
- db->mii.mdio_write = dm9000_phy_write;
-
-+#ifndef CONFIG_DM9000_NOEPROM
- /* Read SROM content */
- for (i = 0; i < 64; i++)
- ((u16 *) db->srom)[i] = read_srom_word(db, i);
-@@ -584,6 +585,11 @@ dm9000_probe(struct platform_device *pdev)
- /* Set Node Address */
- for (i = 0; i < 6; i++)
- ndev->dev_addr[i] = db->srom[i];
-+#else
-+ /* The Node Address was set by bootloader */
-+ for (i=0; i<6; i++)
-+ ndev->dev_addr[i] = ior(db, 0x10+i);
-+#endif
-
- if (!is_valid_ether_addr(ndev->dev_addr)) {
- /* try reading from mac */
-diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
-new file mode 100644
-index 0000000..24613a5
---- /dev/null
-+++ b/include/asm-arm/arch-pxa/cm-x270.h
-@@ -0,0 +1,71 @@
-+/*
-+ * linux/include/asm/arch-pxa/armcore.h
-+ *
-+ * Compulab Ltd., 2003
-+ *
-+ * ARMCore registers
-+ */
-+
-+
-+#define CMX270_CS1_PHYS (PXA_CS1_PHYS)
-+#define MARATHON_PHYS (PXA_CS2_PHYS)
-+#define CMX270_IDE104_PHYS (PXA_CS3_PHYS)
-+#define CMX270_IT8152_PHYS (PXA_CS4_PHYS)
-+
-+#define PXA_CS_SIZE (64*1024*1024)
-+
-+/* Virtual map */
-+
-+#define CMX270_VIRT_BASE (0xe8000000)
-+
-+#define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
-+#define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + PXA_CS_SIZE)
-+
-+
-+/* GPIO related definitions */
-+#define GPIO_IT8152_IRQ (22)
-+#define GPIO_RED_LED (93)
-+#define GPIO_GREEN_LED (94)
-+
-+
-+#define IRQ_GPIO_IT8152_IRQ IRQ_GPIO(GPIO_IT8152_IRQ)
-+#define PME_IRQ IRQ_GPIO(0)
-+#define CMX270_IDE_IRQ IRQ_GPIO(100)
-+#define CMX270_GPIRQ1 IRQ_GPIO(101)
-+#define CMX270_TOUCHIRQ IRQ_GPIO(96)
-+#define CMX270_ETHIRQ IRQ_GPIO(10)
-+#define CMX270_GFXIRQ IRQ_GPIO(95)
-+#define CMX270_NANDIRQ IRQ_GPIO(89)
-+#define CMX270_MMC_IRQ IRQ_GPIO(83)
-+
-+/* LED macros */
-+#define CMX270_RED_ON() GPCR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
-+#define CMX270_RED_OFF() GPSR(GPIO_RED_LED) = GPIO_bit(GPIO_RED_LED)
-+#define CMX270_GREEN_ON() GPCR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
-+#define CMX270_GREEN_OFF() GPSR(GPIO_GREEN_LED) = GPIO_bit(GPIO_GREEN_LED)
-+
-+/* PCMCIA related definitions */
-+#define PCC_DETECT(x) (GPLR(84 - (x)) & GPIO_bit(84 - (x)))
-+#define PCC_READY(x) (GPLR(82 - (x)) & GPIO_bit(81 - (x)))
-+
-+#define PCMCIA_S0_CD_VALID IRQ_GPIO(84)
-+#define PCMCIA_S0_CD_VALID_EDGE GPIO_BOTH_EDGES
-+
-+#define PCMCIA_S1_CD_VALID IRQ_GPIO(83)
-+#define PCMCIA_S1_CD_VALID_EDGE GPIO_BOTH_EDGES
-+
-+#define PCMCIA_S0_RDYINT IRQ_GPIO(82)
-+#define PCMCIA_S1_RDYINT IRQ_GPIO(81)
-+
-+#define PCMCIA_RESET_GPIO 53
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-diff --git a/include/asm-arm/arch-pxa/hardware.h b/include/asm-arm/arch-pxa/hardware.h
-index 3861217..beb240e 100644
---- a/include/asm-arm/arch-pxa/hardware.h
-+++ b/include/asm-arm/arch-pxa/hardware.h
-@@ -126,4 +126,15 @@ extern unsigned int get_lcdclk_frequency_10khz(void);
-
- #endif
-
-+#if defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
-+#define HAVE_ARCH_PCI_SET_DMA_MASK
-+#ifndef __ASSEMBLY__
-+extern unsigned long armcore_pcibios_min_io;
-+extern unsigned long armcore_pcibios_min_mem;
-+#endif
-+#define PCIBIOS_MIN_IO (armcore_pcibios_min_io)
-+#define PCIBIOS_MIN_MEM (armcore_pcibios_min_mem)
-+#define pcibios_assign_all_busses() 1
-+#endif
-+
- #endif /* _ASM_ARCH_HARDWARE_H */
-diff --git a/include/asm-arm/arch-pxa/irqs.h b/include/asm-arm/arch-pxa/irqs.h
-index a07fe0f..efb3d42 100644
---- a/include/asm-arm/arch-pxa/irqs.h
-+++ b/include/asm-arm/arch-pxa/irqs.h
-@@ -216,3 +216,23 @@
- #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)
-+
-+/* ITE8152 irqs on CM-x2xx */
-+#ifdef CONFIG_MACH_ARMCORE
-+#define IT8152_IRQ(x) (IRQ_BOARD_START + (x))
-+#define PCISERR IT8152_IRQ(0)
-+#define H2PTADR IT8152_IRQ(1)
-+#define H2PMAR IT8152_IRQ(2)
-+#define PCI_INTA IT8152_IRQ(3)
-+#define PCI_INTB IT8152_IRQ(4)
-+#define PCI_INTC IT8152_IRQ(5)
-+#define PCI_INTD IT8152_IRQ(6)
-+#define USB_INT IT8152_IRQ(7)
-+#define AUDIO_INT IT8152_IRQ(8)
-+#define CDMA_INT IT8152_IRQ(9)
-+#define IRQ_ITESER IT8152_IRQ(10)
-+#define IT8152_IRQ_MAX IT8152_IRQ(10)
-+
-+#undef NR_IRQS
-+#define NR_IRQS IT8152_IRQ_MAX+1
-+#endif
-diff --git a/include/asm-arm/memory.h b/include/asm-arm/memory.h
-index d9bfb39..83db3cb 100644
---- a/include/asm-arm/memory.h
-+++ b/include/asm-arm/memory.h
-@@ -141,6 +141,16 @@
- * allocations. This must be the smallest DMA mask in the system,
- * so a successful GFP_DMA allocation will always satisfy this.
- */
-+
-+#ifdef CONFIG_PCI_HOST_ITE8152
-+void it8152_adjust_zones(int node, unsigned long *size, unsigned long *holes);
-+
-+#define arch_adjust_zones(node, size, holes) \
-+ it8152_adjust_zones(node, size, holes)
-+
-+#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_64M - 1)
-+#endif
-+
- #ifndef ISA_DMA_THRESHOLD
- #define ISA_DMA_THRESHOLD (0xffffffffULL)
- #endif
---
-1.5.2.5
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
deleted file mode 100644
index 68da301..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e566813cedb9f91724597df45c11075023a7b589 Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 18:58:27 -0400
-Subject: [PATCH] cm-x270-match-type
-
----
- arch/arm/boot/compressed/head-xscale.S | 5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/boot/compressed/head-xscale.S b/arch/arm/boot/compressed/head-xscale.S
-index 73c5d9e..dc89459 100644
---- a/arch/arm/boot/compressed/head-xscale.S
-+++ b/arch/arm/boot/compressed/head-xscale.S
-@@ -53,3 +53,8 @@ __XScale_start:
- str r1, [r0, #0x18]
- #endif
-
-+#if defined(CONFIG_MACH_ARMCORE)
-+ mov r7, #(MACH_TYPE_ARMCORE & 0xFF00)
-+ add r7, r7, #(MACH_TYPE_ARMCORE & 0xFF)
-+#endif
-+
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
deleted file mode 100644
index 0ff115e..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From f260d5fa4c99cd7df949e6408af59807f8ccf224 Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 18:59:39 -0400
-Subject: [PATCH] cm-x270-ide
-
----
- drivers/ide/Kconfig | 8 +++
- drivers/ide/arm/Makefile | 1 +
- drivers/ide/arm/cm-x270-ide.c | 135 +++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 144 insertions(+), 0 deletions(-)
- create mode 100644 drivers/ide/arm/cm-x270-ide.c
-
-diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
-index b1a9b81..7de4155 100644
---- a/drivers/ide/Kconfig
-+++ b/drivers/ide/Kconfig
-@@ -864,6 +864,14 @@ config BLK_DEV_IDE_BAST
- Say Y here if you want to support the onboard IDE channels on the
- Simtec BAST or the Thorcom VR1000
-
-+config BLK_DEV_IDE_CM_X270
-+ tristate "CompuLab CM-X270 IDE support"
-+ depends on ARM && (MACH_ARMCORE)
-+ help
-+ Say Y here if you want to support the onboard IDE channels on the
-+ CompuLab CM-X270 module
-+
-+
- config BLK_DEV_GAYLE
- bool "Amiga Gayle IDE interface support"
- depends on AMIGA
-diff --git a/drivers/ide/arm/Makefile b/drivers/ide/arm/Makefile
-index 6a78f07..e5cadb7 100644
---- a/drivers/ide/arm/Makefile
-+++ b/drivers/ide/arm/Makefile
-@@ -2,5 +2,6 @@
- obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o
- obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o
- obj-$(CONFIG_BLK_DEV_IDE_BAST) += bast-ide.o
-+obj-$(CONFIG_BLK_DEV_IDE_CM_X270) += cm-x270-ide.o
-
- EXTRA_CFLAGS := -Idrivers/ide
-diff --git a/drivers/ide/arm/cm-x270-ide.c b/drivers/ide/arm/cm-x270-ide.c
-new file mode 100644
-index 0000000..a8b15aa
---- /dev/null
-+++ b/drivers/ide/arm/cm-x270-ide.c
-@@ -0,0 +1,135 @@
-+/* linux/drivers/ide/arm/cm-x270-ide.c
-+ *
-+ * Copyright (c) 2006 CompuLab, Ltd
-+ * Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Based on linux/drivers/ide/arm/bast-ide.c
-+ * Copyright (c) 2003-2004 Simtec Electronics
-+ * Ben Dooks <ben@simtec.co.uk>
-+ *
-+ * 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/errno.h>
-+#include <linux/ide.h>
-+#include <linux/init.h>
-+#include <linux/irq.h>
-+
-+#include <asm/mach-types.h>
-+
-+#include <asm/io.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/cm-x270.h>
-+
-+#define CMX270_SB270_IDECS0_VIRT (CMX270_IDE104_VIRT + (1<<24) + (1<<25))
-+#define CMX270_SB270_IDECS1_VIRT (CMX270_IDE104_VIRT + (1<<25))
-+#define CMX270_ATX_IDECS0_VIRT (CMX270_IDE104_VIRT + (1<<25))
-+#define CMX270_ATX_IDECS1_VIRT (CMX270_IDE104_VIRT + (1<<25) + (1<<22))
-+
-+/* list of registered interfaces */
-+static ide_hwif_t *ifs[1];
-+
-+static int __init
-+cmx270_ide_register(unsigned int base, unsigned int aux, int irq,
-+ ide_hwif_t **hwif)
-+{
-+ hw_regs_t hw;
-+
-+ memset(&hw, 0, sizeof(hw));
-+
-+ if(!base || !aux) return -EINVAL;
-+
-+ printk(KERN_DEBUG "%s: base = %08x, aux = %08x\n", __FUNCTION__,
-+ base, aux);
-+
-+ /* Different mappings for local bus IDE and PCMCIA IDE */
-+ if(base == CMX270_SB270_IDECS0_VIRT) {
-+ hw.io_ports[IDE_DATA_OFFSET] = base + 0;
-+ hw.io_ports[IDE_ERROR_OFFSET] = base + (0x1<<3);
-+ hw.io_ports[IDE_NSECTOR_OFFSET]= base + (0x2<<3);
-+ hw.io_ports[IDE_SECTOR_OFFSET]= base + (0x3<<3);
-+ hw.io_ports[IDE_LCYL_OFFSET]= base + (0x4<<3);
-+ hw.io_ports[IDE_HCYL_OFFSET]= base + (0x5<<3);
-+ hw.io_ports[IDE_SELECT_OFFSET]= base + (0x6<<3);
-+ hw.io_ports[IDE_STATUS_OFFSET]= base + (0x7<<3);
-+ hw.io_ports[IDE_CONTROL_OFFSET] = aux+(0x6<<3);
-+ }
-+ else if (base == CMX270_ATX_IDECS0_VIRT) { /* atx base */
-+ hw.io_ports[IDE_DATA_OFFSET] = base + 0;
-+ hw.io_ports[IDE_ERROR_OFFSET] = base + 8;
-+ hw.io_ports[IDE_NSECTOR_OFFSET]= base + 2;
-+ hw.io_ports[IDE_SECTOR_OFFSET]= base + 10;
-+ hw.io_ports[IDE_LCYL_OFFSET]= base + 4;
-+ hw.io_ports[IDE_HCYL_OFFSET]= base + 12;
-+ hw.io_ports[IDE_SELECT_OFFSET]= base + 6; //6;
-+ hw.io_ports[IDE_STATUS_OFFSET]= base + 14;
-+ hw.io_ports[IDE_CONTROL_OFFSET] = (aux+0x6);
-+ } else {
-+ printk(KERN_DEBUG "%s: registering wrong IDE i/f\n", __FUNCTION__);
-+ hw.io_ports[IDE_DATA_OFFSET] = base + 8;
-+ hw.io_ports[IDE_ERROR_OFFSET] = base + 13;
-+ hw.io_ports[IDE_NSECTOR_OFFSET] = base + 2;
-+ hw.io_ports[IDE_SECTOR_OFFSET] = base + 3;
-+ hw.io_ports[IDE_LCYL_OFFSET] = base + 4;
-+ hw.io_ports[IDE_HCYL_OFFSET] = base + 5;
-+ hw.io_ports[IDE_SELECT_OFFSET] = base + 6;
-+ hw.io_ports[IDE_STATUS_OFFSET] = base + 7;
-+ hw.io_ports[IDE_CONTROL_OFFSET] = aux;
-+ }
-+
-+ hw.irq = irq;
-+
-+ return ide_register_hw(&hw, hwif);
-+}
-+
-+static int __init cmx270_ide_init(void)
-+{
-+ int retval = 0;
-+
-+ if (!(machine_is_armcore()))
-+ goto out;
-+
-+ printk("CM-X270: initializing IDE interface\n");
-+
-+ MSC1 = 0x7ffc7ff4;
-+
-+ /* Interrupts on rising edge: lines are inverted before they get to
-+ the PXA */
-+ pxa_gpio_mode(IRQ_TO_GPIO(CMX270_IDE_IRQ));
-+
-+ /* try SB-X270 */
-+ set_irq_type(CMX270_IDE_IRQ, IRQ_TYPE_EDGE_RISING);
-+ retval = cmx270_ide_register(CMX270_SB270_IDECS0_VIRT,
-+ CMX270_SB270_IDECS1_VIRT,
-+ CMX270_IDE_IRQ, &ifs[0]);
-+ if (retval >= 0) {
-+ printk(KERN_DEBUG "%s: found IDE interface on SB-X270\n",
-+ __FUNCTION__);
-+ goto out;
-+ }
-+
-+ /* SB-X270 detection failed, try ATX */
-+ set_irq_type(CMX270_IDE_IRQ, IRQ_TYPE_EDGE_FALLING);
-+ retval = cmx270_ide_register(CMX270_ATX_IDECS0_VIRT,
-+ CMX270_ATX_IDECS1_VIRT,
-+ CMX270_IDE_IRQ, &ifs[0]);
-+
-+ if ( retval >= 0 ) {
-+ printk(KERN_DEBUG "%s: found IDE interface on ATX\n",
-+ __FUNCTION__);
-+ goto out;
-+ }
-+
-+ out:
-+ return retval;
-+}
-+
-+module_init(cmx270_ide_init);
-+
-+MODULE_AUTHOR("CompuLab");
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("CompuLab CM-X270 IDE driver");
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
deleted file mode 100644
index 274eaf2..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
+++ /dev/null
@@ -1,496 +0,0 @@
-From 1306abec905df1ff5cf2b1d91ac0d94d18d96c5b Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 19:00:07 -0400
-Subject: [PATCH] cm-x270-it8152
-
----
- arch/arm/common/Makefile | 1 +
- arch/arm/common/it8152.c | 272 +++++++++++++++++++++++++++++++++++++
- arch/arm/kernel/bios32.c | 28 ++++-
- include/asm-arm/hardware/it8152.h | 104 ++++++++++++++
- include/asm-arm/pci.h | 7 +
- include/linux/pci_ids.h | 1 +
- 6 files changed, 410 insertions(+), 3 deletions(-)
- create mode 100644 arch/arm/common/it8152.c
- create mode 100644 include/asm-arm/hardware/it8152.h
-
-diff --git a/arch/arm/common/Makefile b/arch/arm/common/Makefile
-index e1289a2..3d0b9fa 100644
---- a/arch/arm/common/Makefile
-+++ b/arch/arm/common/Makefile
-@@ -17,3 +17,4 @@ obj-$(CONFIG_SHARPSL_PM) += sharpsl_pm.o
- obj-$(CONFIG_SHARP_SCOOP) += scoop.o
- obj-$(CONFIG_ARCH_IXP2000) += uengine.o
- obj-$(CONFIG_ARCH_IXP23XX) += uengine.o
-+obj-$(CONFIG_PCI_HOST_ITE8152) += it8152.o
-diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
-new file mode 100644
-index 0000000..8563610
---- /dev/null
-+++ b/arch/arm/common/it8152.c
-@@ -0,0 +1,272 @@
-+/*
-+ * arch/arm/common/it8152.c: PCI functions for IT8152
-+ *
-+ * Compulab Ltd, 2002-2006
-+ *
-+ * The DMA bouncing is taken from arch/arm/mach-ixp4xx/common-pci.c
-+ * (see this file for respective copyrights)
-+ *
-+ * 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/sched.h>
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include <linux/ptrace.h>
-+#include <linux/interrupt.h>
-+#include <linux/mm.h>
-+#include <linux/slab.h>
-+#include <linux/init.h>
-+#include <linux/ioport.h>
-+#include <asm/mach/map.h>
-+
-+
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/system.h>
-+#include <asm/mach/pci.h>
-+#include <asm/hardware/it8152.h>
-+
-+#define MAX_SLOTS 21
-+
-+static unsigned long
-+it8152_pci_dev_base_address(struct pci_bus *bus, unsigned int devfn)
-+{
-+ unsigned long addr = 0;
-+
-+ if (bus->number == 0) {
-+ if (devfn < PCI_DEVFN(MAX_SLOTS, 0))
-+ addr = (devfn << 8);
-+ } else
-+ addr = (bus->number << 16) | (devfn << 8);
-+
-+ return addr;
-+}
-+
-+static int
-+it8152_pci_read_config(struct pci_bus *bus, unsigned int devfn, int where,
-+ int size, u32 *value)
-+{
-+ unsigned long addr = it8152_pci_dev_base_address(bus, devfn);
-+ u32 v;
-+ int shift;
-+
-+#ifdef CONFIG_MACH_ARMCORE
-+ if(devfn!=0) IT8152_GPIO_GPLR=0x00;
-+#endif
-+ shift = (where & 3);
-+
-+ IT8152_PCI_CFG_ADDR = (addr + where);
-+ v = (IT8152_PCI_CFG_DATA >> (8 * (shift)));
-+
-+ *value = v;
-+
-+#ifdef CONFIG_MACH_ARMCORE
-+ if(devfn!=0) IT8152_GPIO_GPLR=0x20;
-+#endif
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+
-+static int
-+it8152_pci_write_config(struct pci_bus *bus, unsigned int devfn, int where,
-+ int size, u32 value)
-+{
-+ unsigned long addr = it8152_pci_dev_base_address(bus, devfn);
-+ u32 v, vtemp, mask=0;
-+ int shift;
-+
-+#ifdef CONFIG_MACH_ARMCORE
-+ if(devfn!=0) IT8152_GPIO_GPLR=0x00;
-+#endif
-+
-+ if(size==1) mask=0xff;
-+ if(size==2) mask=0xffff;
-+
-+ shift = (where & 3);
-+
-+ IT8152_PCI_CFG_ADDR = addr + where;
-+ vtemp = IT8152_PCI_CFG_DATA;
-+
-+ if(mask) vtemp &= ~(mask << (8 * shift));
-+ else vtemp = 0;
-+
-+ v = (value << (8 * shift));
-+ IT8152_PCI_CFG_ADDR = addr + where;
-+ IT8152_PCI_CFG_DATA = (v | vtemp);
-+
-+#ifdef CONFIG_MACH_ARMCORE
-+ if(devfn!=0) IT8152_GPIO_GPLR=0x20;
-+#endif
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static struct pci_ops it8152_ops = {
-+ .read = it8152_pci_read_config,
-+ .write = it8152_pci_write_config,
-+};
-+
-+static struct resource it8152_io = {
-+ .name = "IT8152 PCI I/O region",
-+ .flags = IORESOURCE_IO,
-+};
-+
-+static struct resource it8152_mem1 = {
-+ .name = "First IT8152 PCI memory region",
-+ .start = 0x10000000,
-+ .end = 0x13e00000,
-+ .flags = IORESOURCE_MEM,
-+};
-+
-+/*
-+ * The following functions are needed for DMA bouncing.
-+ * ITE8152 chip can addrees up to 64MByte, so all the devices
-+ * connected to ITE8152 (PCI and USB) should have limited DMA window
-+ */
-+
-+/*
-+ * Setup DMA mask to 64MB on devices connected to ITE8152. Ignore all
-+ * other devices.
-+ */
-+static int it8152_pci_platform_notify(struct device *dev)
-+{
-+ if ( dev->bus == &pci_bus_type ) {
-+ if ( dev->dma_mask )
-+ *dev->dma_mask = (SZ_64M - 1) | PHYS_OFFSET;
-+ dev->coherent_dma_mask = (SZ_64M - 1) | PHYS_OFFSET;
-+ dmabounce_register_dev(dev, 2048, 4096);
-+ }
-+ return 0;
-+}
-+
-+static int it8152_pci_platform_notify_remove(struct device *dev)
-+{
-+ if ( dev->bus == &pci_bus_type ) {
-+ dmabounce_unregister_dev(dev);
-+ }
-+ return 0;
-+}
-+
-+int dma_needs_bounce(struct device *dev, dma_addr_t dma_addr, size_t size)
-+{
-+ dev_dbg(dev, "%s: dma_addr %08x, size %08x\n",
-+ __FUNCTION__, dma_addr, size);
-+ return (dev->bus == &pci_bus_type ) &&
-+ ((dma_addr + size - PHYS_OFFSET) >= SZ_64M);
-+}
-+
-+/*
-+ * Only first 64MB of memory can be accessed via PCI.
-+ * We use GFP_DMA to allocate safe buffers to do map/unmap.
-+ * This is really ugly and we need a better way of specifying
-+ * DMA-capable regions of memory.
-+ */
-+void __init it8152_adjust_zones(int node, unsigned long *zone_size,
-+ unsigned long *zhole_size)
-+{
-+ unsigned int sz = SZ_64M >> PAGE_SHIFT;
-+
-+ /*
-+ * Only adjust if > 64M on current system
-+ */
-+ if (node || (zone_size[0] <= sz))
-+ return;
-+
-+ zone_size[1] = zone_size[0] - sz;
-+ zone_size[0] = sz;
-+ zhole_size[1] = zhole_size[0];
-+ zhole_size[0] = 0;
-+}
-+
-+/*
-+ * We override these so we properly do dmabounce otherwise drivers
-+ * are able to set the dma_mask to 0xffffffff and we can no longer
-+ * trap bounces. :(
-+ *
-+ * We just return true on everyhing except for < 64MB in which case
-+ * we will fail miseralby and die since we can't handle that case.
-+ */
-+int
-+pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-+{
-+ printk(KERN_INFO "===> %s: %s %x\n", __FUNCTION__, dev->dev.bus_id, mask);
-+ if (mask >= PHYS_OFFSET + SZ_64M - 1 )
-+ return 0;
-+
-+ return -EIO;
-+}
-+
-+int
-+pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
-+{
-+ printk(KERN_INFO "===> %s: %s %x\n", __FUNCTION__, dev->dev.bus_id, mask);
-+ if (mask >= PHYS_OFFSET + SZ_64M - 1 )
-+ return 0;
-+
-+ return -EIO;
-+}
-+
-+EXPORT_SYMBOL(pci_set_dma_mask);
-+EXPORT_SYMBOL(pci_set_consistent_dma_mask);
-+
-+
-+int __init it8152_pci_setup(int nr, struct pci_sys_data *sys)
-+{
-+ it8152_io.start = IT8152_IO_BASE + 0x12000;
-+ it8152_io.end = IT8152_IO_BASE + 0x100000;
-+
-+ if (request_resource(&ioport_resource, &it8152_io)) {
-+ printk(KERN_ERR "PCI: unable to allocate IO region\n");
-+ return -EBUSY;
-+ }
-+ if (request_resource(&iomem_resource, &it8152_mem1)) {
-+ printk(KERN_ERR "PCI: unable to allocate memory region\n");
-+ return -EBUSY;
-+ }
-+
-+ sys->resource[0] = &it8152_io;
-+ sys->resource[1] = &it8152_mem1;
-+
-+ if (platform_notify || platform_notify_remove) {
-+ printk(KERN_ERR "PCI: Can't use platform_notify\n");
-+ return -EBUSY;
-+ }
-+
-+ platform_notify = it8152_pci_platform_notify;
-+ platform_notify_remove = it8152_pci_platform_notify_remove;
-+
-+ return 1;
-+}
-+
-+/*
-+ * If we set up a device for bus mastering, we need to check the latency
-+ * timer as we don't have even crappy BIOSes to set it properly.
-+ * The implementation is from arch/i386/pci/i386.c
-+ */
-+unsigned int pcibios_max_latency = 255;
-+
-+void pcibios_set_master(struct pci_dev *dev)
-+{
-+ u8 lat;
-+
-+ pci_read_config_byte(dev, PCI_LATENCY_TIMER, &lat);
-+ if (lat < 16)
-+ lat = (64 <= pcibios_max_latency) ? 64 : pcibios_max_latency;
-+ else if (lat > pcibios_max_latency)
-+ lat = pcibios_max_latency;
-+ else
-+ return;
-+ printk(KERN_DEBUG "PCI: Setting latency timer of device %s to %d\n", pci_name(dev), lat);
-+ pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
-+}
-+
-+
-+struct pci_bus * __init it8152_pci_scan_bus(int nr, struct pci_sys_data *sys)
-+{
-+ return pci_scan_bus(nr, &it8152_ops, sys);
-+}
-+
-diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
-index 240c448..d8d2352 100644
---- a/arch/arm/kernel/bios32.c
-+++ b/arch/arm/kernel/bios32.c
-@@ -279,6 +279,25 @@ static void __devinit pci_fixup_cy82c693(struct pci_dev *dev)
- }
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693, pci_fixup_cy82c693);
-
-+static void __init pci_fixup_it8152(struct pci_dev *dev)
-+{
-+ int i;
-+ /* fixup for ITE 8152 devices */
-+ /* FIXME: add defines for class 0x68000 and 0x80103 */
-+ if ((dev->class >> 8) == PCI_CLASS_BRIDGE_HOST ||
-+ dev->class == 0x68000 ||
-+ dev->class == 0x80103) {
-+ for (i = 0; i < PCI_NUM_RESOURCES; i++) {
-+ dev->resource[i].start = 0;
-+ dev->resource[i].end = 0;
-+ dev->resource[i].flags = 0;
-+ }
-+ }
-+}
-+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_8152, pci_fixup_it8152);
-+
-+
-+
- void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)
- {
- if (debug_pci)
-@@ -292,9 +311,12 @@ void __devinit pcibios_update_irq(struct pci_dev *dev, int irq)
- */
- static inline int pdev_bad_for_parity(struct pci_dev *dev)
- {
-- return (dev->vendor == PCI_VENDOR_ID_INTERG &&
-- (dev->device == PCI_DEVICE_ID_INTERG_2000 ||
-- dev->device == PCI_DEVICE_ID_INTERG_2010));
-+ return ((dev->vendor == PCI_VENDOR_ID_INTERG &&
-+ (dev->device == PCI_DEVICE_ID_INTERG_2000 ||
-+ dev->device == PCI_DEVICE_ID_INTERG_2010)) ||
-+ (dev->vendor == PCI_VENDOR_ID_ITE &&
-+ dev->device == PCI_DEVICE_ID_ITE_8152));
-+
- }
-
- /*
-diff --git a/include/asm-arm/hardware/it8152.h b/include/asm-arm/hardware/it8152.h
-new file mode 100644
-index 0000000..d28210d
---- /dev/null
-+++ b/include/asm-arm/hardware/it8152.h
-@@ -0,0 +1,104 @@
-+/*
-+ * arch/arm/mach-pxa/it8152.h
-+ *
-+ * Compulab Ltd., 2006
-+ *
-+ * ITE 8152 companion chip definitions
-+ */
-+
-+
-+/* #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE) */
-+
-+
-+extern unsigned long it8152_base_address;
-+
-+#define IT8152_IO_BASE (it8152_base_address + 0x03e00000)
-+#define IT8152_CFGREG_BASE (it8152_base_address + 0x03f00000)
-+
-+/* #define IRQ_GPIO_IT8152_IRQ IRQ_GPIO(GPIO_IT8152_IRQ) */
-+
-+#define IT8152_SHORT_IO(x) (*((volatile unsigned short *)(IT8152_CFGREG_BASE+(x))))
-+#define IT8152_LONG_IO(x) (*((volatile unsigned long *)(IT8152_CFGREG_BASE+(x))))
-+
-+
-+#define IT8152_PCI_MEMBASE (*((volatile unsigned long *)(it8152_base_address)))
-+/* #define IT8152_PCI_IOBASE (*((volatile unsigned long *)(it8152_base_address + 0x3e00000))) */
-+
-+#define IT8152_PCI_IACK (*((volatile unsigned long *)(it8152_base_address + 0x3f00808)))
-+#define IT8152_PCI_CFG_ADDR (*((volatile unsigned long *)(it8152_base_address + 0x3f00800)))
-+#define IT8152_PCI_CFG_DATA (*((volatile unsigned long *)(it8152_base_address + 0x3f00804)))
-+
-+#define IT_BUSNUM_SHF 16
-+#define IT_DEVNUM_SHF 11
-+#define IT_FUNCNUM_SHF 8
-+#define IT_REGNUM_SHF 2
-+
-+/* Power management & PLL registers */
-+#define IT8152_PMPLL_DSR IT8152_LONG_IO(0x00)
-+#define IT8152_PMPLL_DSSR IT8152_LONG_IO(0x04)
-+#define IT8152_PMPLL_PLLCR IT8152_LONG_IO(0x20)
-+#define IT8152_PMPLL_MFSR IT8152_LONG_IO(0x24)
-+
-+/* Memory controller */
-+#define IT8152_MC_REG_OFFSET 0x100
-+
-+#define IT8152_MC_SDCR IT8152_LONG_IO(IT8152_MC_REG_OFFSET + 0x00)
-+#define IT8152_MC_PCICR IT8152_LONG_IO(IT8152_MC_REG_OFFSET + 0x04)
-+
-+/* Interrupt related definitions */
-+#define IT8152_INTC_REG_OFFSET 0x300
-+
-+#define IT8152_INTC_LDCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x00)
-+#define IT8152_INTC_LDPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x04)
-+#define IT8152_INTC_LDCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x08)
-+#define IT8152_INTC_LDPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x0C)
-+#define IT8152_INTC_LDNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x10)
-+#define IT8152_INTC_LDNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x14)
-+#define IT8152_INTC_LPCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x20)
-+#define IT8152_INTC_LPPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x24)
-+#define IT8152_INTC_LPCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x28)
-+#define IT8152_INTC_LPPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x2C)
-+#define IT8152_INTC_LPNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x30)
-+#define IT8152_INTC_LPNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x34)
-+#define IT8152_INTC_PDCNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x40)
-+#define IT8152_INTC_PDPNIRR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x44)
-+#define IT8152_INTC_PDCNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x48)
-+#define IT8152_INTC_PDPNIMR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x4C)
-+#define IT8152_INTC_PDNITR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x50)
-+#define IT8152_INTC_PDNIAR IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0x54)
-+#define IT8152_INTC_INTC_TYPER IT8152_LONG_IO(IT8152_INTC_REG_OFFSET + 0xFC)
-+
-+#define IT8152_UART_BASE IT8152_LONG_IO(0x200)
-+
-+#define IT8152_GPIO_REG_OFFSET 0x500
-+
-+#define IT8152_GPIO_GPLR IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET)
-+#define IT8152_GPIO_GPCR12 IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET + 0x04)
-+#define IT8152_GPIO_GPCR34 IT8152_LONG_IO(IT8152_GPIO_REG_OFFSET + 0x08)
-+
-+
-+/* Interrupt bit definitions */
-+#define PCISERR_BIT (1<<14)
-+#define H2PTADR_BIT (1<<13)
-+#define H2PMAR_BIT (1<<12)
-+#define PCI_INTD_BIT (1<<11)
-+#define PCI_INTC_BIT (1<<10)
-+#define PCI_INTB_BIT (1<<9)
-+#define PCI_INTA_BIT (1<<8)
-+#define CDMA_INT_BIT (1<<2)
-+#define USB_INT_BIT (1<<1)
-+#define AUDIO_INT_BIT (1<<0)
-+
-+/* IT8152 UART */
-+#define ITESER_BIT (1<<5)
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-diff --git a/include/asm-arm/pci.h b/include/asm-arm/pci.h
-index f21abd4..2cf30bf 100644
---- a/include/asm-arm/pci.h
-+++ b/include/asm-arm/pci.h
-@@ -8,10 +8,17 @@
-
- #define pcibios_scan_all_fns(a, b) 0
-
-+#ifdef CONFIG_PCI_HOST_ITE8152
-+/* ITE bridge requires setting latency timer to avoid early bus access
-+ termination by PIC bus mater devices
-+*/
-+extern void pcibios_set_master(struct pci_dev *dev);
-+#else
- static inline void pcibios_set_master(struct pci_dev *dev)
- {
- /* No special bus mastering setup handling */
- }
-+#endif
-
- static inline void pcibios_penalize_isa_irq(int irq, int active)
- {
-diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
-index 5b1c999..b4c81d5 100644
---- a/include/linux/pci_ids.h
-+++ b/include/linux/pci_ids.h
-@@ -1650,6 +1650,7 @@
- #define PCI_DEVICE_ID_ITE_8211 0x8211
- #define PCI_DEVICE_ID_ITE_8212 0x8212
- #define PCI_DEVICE_ID_ITE_8213 0x8213
-+#define PCI_DEVICE_ID_ITE_8152 0x8152
- #define PCI_DEVICE_ID_ITE_8872 0x8872
- #define PCI_DEVICE_ID_ITE_IT8330G_0 0xe886
-
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
deleted file mode 100644
index 7dceff5..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 338653da8f8afcdf8afc7e8a5a0104d5083597cc Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 19:01:27 -0400
-Subject: [PATCH] cm-x270-pcmcia
-
----
- drivers/pcmcia/Makefile | 1 +
- drivers/pcmcia/pxa2xx_cm_x270.c | 198 +++++++++++++++++++++++++++++++++++++++
- 2 files changed, 199 insertions(+), 0 deletions(-)
- create mode 100644 drivers/pcmcia/pxa2xx_cm_x270.c
-
-diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile
-index 4276965..353d5b7 100644
---- a/drivers/pcmcia/Makefile
-+++ b/drivers/pcmcia/Makefile
-@@ -69,4 +69,5 @@ sa1100_cs-$(CONFIG_SA1100_SIMPAD) += sa1100_simpad.o
- pxa2xx_cs-$(CONFIG_ARCH_LUBBOCK) += pxa2xx_lubbock.o sa1111_generic.o
- pxa2xx_cs-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o
- pxa2xx_cs-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o
-+pxa2xx_cs-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x270.o
-
-diff --git a/drivers/pcmcia/pxa2xx_cm_x270.c b/drivers/pcmcia/pxa2xx_cm_x270.c
-new file mode 100644
-index 0000000..25e369f
---- /dev/null
-+++ b/drivers/pcmcia/pxa2xx_cm_x270.c
-@@ -0,0 +1,198 @@
-+/*
-+ * linux/drivers/pcmcia/pxa/pxa_armcore.c
-+ *
-+ * 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.
-+ *
-+ * Compulab Ltd., 2003
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/platform_device.h>
-+#include <linux/irq.h>
-+
-+#include <pcmcia/ss.h>
-+#include <asm/delay.h>
-+#include <asm/hardware.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/cm-x270.h>
-+
-+#include "soc_common.h"
-+
-+
-+static struct pcmcia_irqs irqs[] = {
-+ { 0, PCMCIA_S0_CD_VALID, "PCMCIA0 CD" },
-+ { 1, PCMCIA_S1_CD_VALID, "PCMCIA1 CD" },
-+};
-+
-+
-+static int
-+cmx270_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
-+{
-+ int return_val=0;
-+
-+ GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
-+ GPIO_bit(GPIO49_nPWE) |
-+ GPIO_bit(GPIO50_nPIOR) |
-+ GPIO_bit(GPIO51_nPIOW) |
-+ GPIO_bit(GPIO85_nPCE_1) |
-+ GPIO_bit(GPIO54_nPCE_2);
-+
-+ pxa_gpio_mode(GPIO48_nPOE_MD);
-+ pxa_gpio_mode(GPIO49_nPWE_MD);
-+ pxa_gpio_mode(GPIO50_nPIOR_MD);
-+ pxa_gpio_mode(GPIO51_nPIOW_MD);
-+ pxa_gpio_mode(GPIO85_nPCE_1_MD);
-+ pxa_gpio_mode(GPIO54_nPCE_2_MD);
-+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD); /* REVISIT: s/b dependent on num sockets (on ATX base not routed)*/
-+ pxa_gpio_mode(GPIO55_nPREG_MD);
-+ pxa_gpio_mode(GPIO56_nPWAIT_MD);
-+ pxa_gpio_mode(GPIO57_nIOIS16_MD);
-+
-+ // Reset signal
-+ GPDR(GPIO53_nPCE_2) |= GPIO_bit(GPIO53_nPCE_2);
-+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
-+
-+ GPDR(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID));
-+ GPDR(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID));
-+
-+ set_irq_type(PCMCIA_S0_CD_VALID, IRQ_TYPE_EDGE_BOTH);
-+ set_irq_type(PCMCIA_S1_CD_VALID, IRQ_TYPE_EDGE_BOTH);
-+
-+ //irq's for slots:
-+ GPDR(IRQ_TO_GPIO(PCMCIA_S0_RDYINT)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S0_RDYINT));
-+ GPDR(IRQ_TO_GPIO(PCMCIA_S1_RDYINT)) &= ~GPIO_bit(IRQ_TO_GPIO(PCMCIA_S1_RDYINT));
-+
-+ set_irq_type(PCMCIA_S0_RDYINT, IRQ_TYPE_EDGE_FALLING);
-+ set_irq_type(PCMCIA_S1_RDYINT, IRQ_TYPE_EDGE_FALLING);
-+
-+ skt->irq = (skt->nr == 0) ? PCMCIA_S0_RDYINT : PCMCIA_S1_RDYINT;
-+ return_val = soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
-+
-+ return return_val;
-+}
-+
-+
-+static void cmx270_pcmcia_shutdown(struct soc_pcmcia_socket *skt)
-+{
-+ soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs));
-+
-+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S0_CD_VALID), IRQ_TYPE_NONE);
-+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S1_CD_VALID), IRQ_TYPE_NONE);
-+
-+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S0_RDYINT), IRQ_TYPE_NONE);
-+ set_irq_type(IRQ_TO_GPIO(PCMCIA_S1_RDYINT), IRQ_TYPE_NONE);
-+}
-+
-+
-+static void cmx270_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
-+ struct pcmcia_state *state)
-+{
-+
-+ state->detect = (PCC_DETECT(skt->nr) == 0) ? 1 : 0;
-+ state->ready = (PCC_READY(skt->nr) == 0) ? 0 : 1;
-+ state->bvd1 = 1;
-+ state->bvd2 = 1;
-+ state->vs_3v = 0;
-+ state->vs_Xv = 0;
-+ state->wrprot = 0; /* not available */
-+
-+}
-+
-+
-+static int
-+cmx270_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
-+ const socket_state_t *state)
-+{
-+
-+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
-+ pxa_gpio_mode(GPIO49_nPWE | GPIO_OUT);
-+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD | GPIO_OUT); /* For 2-socket mode */
-+
-+ switch(skt->nr){
-+ case 0:
-+ if(state->flags & SS_RESET) {
-+ //GPCR(GPIO79_pSKTSEL) = GPIO_bit(GPIO79_pSKTSEL); /* For 2-socket mode */
-+ //udelay(1);
-+ GPCR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
-+ GPSR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
-+ udelay(10);
-+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
-+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
-+ }
-+ break;
-+ case 1:
-+ if(state->flags & SS_RESET) {
-+ //GPCR(GPIO79_pSKTSEL) = GPIO_bit(GPIO79_pSKTSEL); /* For 2-socket mode */
-+ //udelay(1);
-+ GPCR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
-+ GPSR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
-+ udelay(10);
-+ GPCR(GPIO53_nPCE_2) = GPIO_bit(GPIO53_nPCE_2);
-+ GPSR(GPIO49_nPWE) = GPIO_bit(GPIO49_nPWE);
-+ }
-+ break;
-+ }
-+
-+ pxa_gpio_mode(GPIO49_nPWE_MD);
-+ //pxa_gpio_mode(GPIO79_pSKTSEL_MD); /* For 2-socket mode */
-+
-+
-+ return 0;
-+}
-+
-+static void cmx270_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
-+{
-+}
-+
-+static void cmx270_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
-+{
-+}
-+
-+
-+static struct pcmcia_low_level cmx270_pcmcia_ops = {
-+ .owner = THIS_MODULE,
-+ .hw_init = cmx270_pcmcia_hw_init,
-+ .hw_shutdown = cmx270_pcmcia_shutdown,
-+ .socket_state = cmx270_pcmcia_socket_state,
-+ .configure_socket = cmx270_pcmcia_configure_socket,
-+ .socket_init = cmx270_pcmcia_socket_init,
-+ .socket_suspend = cmx270_pcmcia_socket_suspend,
-+ .nr = 2,
-+};
-+
-+static struct platform_device *cmx270_pcmcia_device;
-+
-+static int __init cmx270_pcmcia_init(void)
-+{
-+ int ret;
-+
-+ cmx270_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
-+
-+ if (!cmx270_pcmcia_device)
-+ return -ENOMEM;
-+
-+ cmx270_pcmcia_device->dev.platform_data = &cmx270_pcmcia_ops;
-+
-+ printk ("Registering cm-x270 PCMCIA interface.\n");
-+ ret = platform_device_add(cmx270_pcmcia_device);
-+
-+ if (ret)
-+ platform_device_put(cmx270_pcmcia_device);
-+
-+ return ret;
-+}
-+
-+static void __exit cmx270_pcmcia_exit(void)
-+{
-+ platform_device_unregister(cmx270_pcmcia_device);
-+}
-+
-+module_init(cmx270_pcmcia_init);
-+module_exit(cmx270_pcmcia_exit);
-+
-+MODULE_LICENSE("GPL");
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
deleted file mode 100644
index aa25dd9..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From ca4508b1266109208f62e986b51397ce2788e255 Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 19:01:50 -0400
-Subject: [PATCH] ramdisk_load
-
----
- arch/arm/mach-pxa/cm-x270.c | 6 ++++++
- include/asm-arm/arch-pxa/cm-x270.h | 2 ++
- init/initramfs.c | 16 ++++++++++++++++
- 3 files changed, 24 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
-index 88b080d..c6ec489 100644
---- a/arch/arm/mach-pxa/cm-x270.c
-+++ b/arch/arm/mach-pxa/cm-x270.c
-@@ -308,6 +308,12 @@ static struct map_desc cmx270_io_desc[] __initdata = {
- .length = PXA_CS_SIZE,
- .type = MT_DEVICE
- },
-+ [2] = { /* NOR flash */
-+ .virtual = CMX270_FLASH_VIRT,
-+ .pfn = __phys_to_pfn(PXA_CS0_PHYS),
-+ .length = (8<<20), /* up to 8 MByte flash */
-+ .type = MT_DEVICE
-+ },
- };
-
- /*
-diff --git a/include/asm-arm/arch-pxa/cm-x270.h b/include/asm-arm/arch-pxa/cm-x270.h
-index 24613a5..aad152e 100644
---- a/include/asm-arm/arch-pxa/cm-x270.h
-+++ b/include/asm-arm/arch-pxa/cm-x270.h
-@@ -20,7 +20,9 @@
-
- #define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
- #define CMX270_IDE104_VIRT (CMX270_IT8152_VIRT + PXA_CS_SIZE)
-+#define CMX270_FLASH_VIRT (CMX270_IDE104_VIRT + PXA_CS_SIZE)
-
-+#define CMX270_FLASH_RAMDISK_VIRT (CMX270_FLASH_VIRT + 0x1c0000)
-
- /* GPIO related definitions */
- #define GPIO_IT8152_IRQ (22)
-diff --git a/init/initramfs.c b/init/initramfs.c
-index 00eff7a..0ecd40b 100644
---- a/init/initramfs.c
-+++ b/init/initramfs.c
-@@ -7,6 +7,9 @@
- #include <linux/string.h>
- #include <linux/syscalls.h>
-
-+// HACK for compulab cm-x270
-+#include <asm/arch/cm-x270.h>
-+
- static __initdata char *message;
- static void __init error(char *x)
- {
-@@ -550,7 +553,20 @@ static int __init populate_rootfs(void)
- #ifdef CONFIG_BLK_DEV_INITRD
- if (initrd_start) {
- #ifdef CONFIG_BLK_DEV_RAM
-+
-+ /* hack to make initramfs work because the
-+ * compulab BL does not zero out the
-+ * initrd memory. This only seems to affect loading
-+ * initramfs (cpio.gz) archives. Does not seem to
-+ * affect ramdisks.
-+ */
-+ int initrd_size = *(int *)(CMX270_FLASH_RAMDISK_VIRT);
- int fd;
-+
-+ initrd_end = initrd_start + initrd_size;
-+ //printk("CLIFF: initrd_start = 0x%x\n", initrd_start);
-+ //printk("CLIFF: initrd_end = 0x%x\n", initrd_end);
-+
- printk(KERN_INFO "checking if image is initramfs...");
- err = unpack_to_rootfs((char *)initrd_start,
- initrd_end - initrd_start, 1);
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
deleted file mode 100644
index 90e66b5..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 26638b93f7479dc597a58e2e2b2832c6ff4c8f7b Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 19:02:55 -0400
-Subject: [PATCH] mmcsd_large_cards-r0
-
----
- drivers/mmc/card/block.c | 6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
-index 540ff4b..1f8d67d 100644
---- a/drivers/mmc/card/block.c
-+++ b/drivers/mmc/card/block.c
-@@ -403,6 +403,7 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
- {
- struct mmc_blk_data *md;
- int devidx, ret;
-+ unsigned long cap;
-
- devidx = find_first_zero_bit(dev_use, MMC_NUM_MINORS);
- if (devidx >= MMC_NUM_MINORS)
-@@ -467,6 +468,11 @@ static struct mmc_blk_data *mmc_blk_alloc(struct mmc_card *card)
-
- sprintf(md->disk->disk_name, "mmcblk%d", devidx);
-
-+ if (card->csd.read_blkbits > 9)
-+ md->block_bits = 9;
-+ else
-+ md->block_bits = card->csd.read_blkbits;
-+
- blk_queue_hardsect_size(md->queue.queue, 1 << md->block_bits);
-
- if (!mmc_card_sd(card) && mmc_card_blockaddr(card)) {
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
deleted file mode 100644
index c07f049..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From e1a243564a40d7542a62d4684f2e6ce0b95fa267 Mon Sep 17 00:00:00 2001
-From: Cliff Brake <cbrake@happy.dev.bec-systems.com>
-Date: Fri, 20 Jul 2007 19:04:12 -0400
-Subject: [PATCH] cm-x270-nand-simplify-name
-
----
- drivers/mtd/nand/cmx270_nand.c | 2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/mtd/nand/cmx270_nand.c b/drivers/mtd/nand/cmx270_nand.c
-index cb663ef..3654ce4 100644
---- a/drivers/mtd/nand/cmx270_nand.c
-+++ b/drivers/mtd/nand/cmx270_nand.c
-@@ -191,6 +191,8 @@ static int cmx270_init(void)
- cmx270_nand_mtd->owner = THIS_MODULE;
- cmx270_nand_mtd->priv = this;
-
-+ cmx270_nand_mtd->name = "cm-x270-nand";
-+
- /* insert callbacks */
- this->IO_ADDR_R = cmx270_nand_io;
- this->IO_ADDR_W = cmx270_nand_io;
---
-1.5.1.6
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
deleted file mode 100644
index 6f038e3..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: linux-2.6.23/arch/arm/mach-pxa/cm-x270.c
-===================================================================
---- linux-2.6.23.orig/arch/arm/mach-pxa/cm-x270.c 2008-02-14 20:32:28.000000000 +0000
-+++ linux-2.6.23/arch/arm/mach-pxa/cm-x270.c 2008-02-14 20:27:55.000000000 +0000
-@@ -383,7 +383,7 @@
-
- static struct pxafb_mode_info generic_crt_640x480_mode = {
- .pixclock = 38461,
-- .bpp = 8,
-+ .bpp = 16,
- .xres = 640,
- .yres = 480,
- .hsync_len = 63,
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig b/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
deleted file mode 100644
index 273de85..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
+++ /dev/null
@@ -1,1204 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23
-# Thu Oct 11 15:47:57 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_ARCH_MTD_XIP=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION="-cm-x270"
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_SYSFS_DEPRECATED=y
-# CONFIG_RELAY is not set
-CONFIG_BLK_DEV_INITRD=y
-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_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_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-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
-CONFIG_MODULES=y
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_KMOD=y
-CONFIG_BLOCK=y
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-# CONFIG_BLK_DEV_BSG is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-
-#
-# System Type
-#
-# CONFIG_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 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_MXC 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_DAVINCI 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_MACH_EM_X270 is not set
-CONFIG_MACH_ARMCORE=y
-CONFIG_PXA27x=y
-
-#
-# Boot options
-#
-
-#
-# Power management
-#
-
-#
-# 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
-#
-# CONFIG_PCI is not set
-# CONFIG_PCI_SYSCALL is not set
-# 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 is not set
-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_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyS1,38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-
-#
-# Floating point emulation
-#
-
-#
-# 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
-
-#
-# Power management options
-#
-# CONFIG_PM is not set
-CONFIG_SUSPEND_UP_POSSIBLE=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-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_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=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_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_INET_XFRM_MODE_TRANSPORT=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# 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_AF_RXRPC is not set
-
-#
-# Wireless
-#
-# CONFIG_CFG80211 is not set
-# CONFIG_WIRELESS_EXT is not set
-# CONFIG_MAC80211 is not set
-# CONFIG_IEEE80211 is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P 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
-# CONFIG_CONNECTOR is not set
-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=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 is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# 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_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_START=0x0
-CONFIG_MTD_PHYSMAP_LEN=0x400000
-CONFIG_MTD_PHYSMAP_BANKWIDTH=2
-# 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_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=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS 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 is not set
-CONFIG_MTD_NAND_CM_X270=y
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# 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=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=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 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
-# 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 is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NETDEVICES_MULTIQUEUE is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_AX88796 is not set
-# CONFIG_SMC91X is not set
-CONFIG_DM9000=y
-CONFIG_DM9000_NOEPROM=y
-# CONFIG_SMC911X is not set
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 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=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-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 is not set
-# CONFIG_WAN is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_SHAPER is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN 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=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-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=m
-# CONFIG_INPUT_EVBUG 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_KEYBOARD_PXA27x is not set
-# CONFIG_KEYBOARD_GPIO is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-# CONFIG_MOUSE_PS2_ALPS is not set
-# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
-# CONFIG_MOUSE_PS2_SYNAPTICS is not set
-# CONFIG_MOUSE_PS2_LIFEBOOK is not set
-# CONFIG_MOUSE_PS2_TRACKPOINT is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_FUJITSU 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=m
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-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 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_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_I2C=m
-CONFIG_I2C_BOARDINFO=y
-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_GPIO 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_SIMTEC is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_DS1682 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_SENSORS_TSL2550 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
-# CONFIG_W1 is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# 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_LM93 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_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_THMC50 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
-CONFIG_MISC_DEVICES=y
-# CONFIG_EEPROM_93CX6 is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-CONFIG_LEDS_CM_X270=y
-# CONFIG_LEDS_GPIO is not set
-
-#
-# LED Triggers
-#
-# CONFIG_LEDS_TRIGGERS is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_DVB_CORE is not set
-# 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_VIDEO_OUTPUT_CONTROL 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_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_SYS_FOPS is not set
-CONFIG_FB_DEFERRED_IO=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_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_LOGO is not set
-
-#
-# 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_MIXER_OSS is not set
-# CONFIG_SND_PCM_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
-
-#
-# Generic devices
-#
-CONFIG_SND_AC97_CODEC=m
-# 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_PCM=m
-CONFIG_SND_PXA2XX_AC97=m
-
-#
-# USB devices
-#
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_CAIAQ is not set
-
-#
-# System on Chip audio support
-#
-# CONFIG_SND_SOC is not set
-
-#
-# SoC Audio support for SuperH
-#
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_DEBUG 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_SUPPORT=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_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_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
-# CONFIG_USB_R8A66597_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=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 is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK 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_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
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-CONFIG_MMC=m
-# CONFIG_MMC_DEBUG is not set
-# CONFIG_MMC_UNSAFE_RESUME is not set
-
-#
-# MMC/SD Card Drivers
-#
-CONFIG_MMC_BLOCK=m
-CONFIG_MMC_BLOCK_BOUNCE=y
-
-#
-# MMC/SD Host Controller Drivers
-#
-CONFIG_MMC_PXA=m
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS 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=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_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 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 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
-
-#
-# 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
-
-#
-# 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
-# CONFIG_CRYPTO is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig b/meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
deleted file mode 100644
index 3246136..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
+++ /dev/null
@@ -1,1354 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.23-rc9
-# Tue Oct 9 11:19:21 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_ARCH_MTD_XIP=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION="-em-x270"
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_AUDIT is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_SYSFS_DEPRECATED=y
-# CONFIG_RELAY is not set
-CONFIG_BLK_DEV_INITRD=y
-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_ANON_INODES=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_RT_MUTEXES=y
-# CONFIG_TINY_SHMEM is not set
-CONFIG_BASE_SMALL=0
-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
-CONFIG_BLOCK=y
-# CONFIG_LBD is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_LSF is not set
-# CONFIG_BLK_DEV_BSG 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"
-
-#
-# 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 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_MXC 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_DAVINCI 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_MACH_EM_X270=y
-CONFIG_PXA27x=y
-CONFIG_PXA_PWR_I2C=y
-
-#
-# Boot options
-#
-
-#
-# Power management
-#
-
-#
-# 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
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-
-#
-# PCCARD (PCMCIA/CardBus) support
-#
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_TICK_ONESHOT is not set
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-# CONFIG_PREEMPT 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
-# 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_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_ALIGNMENT_TRAP=y
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,115200"
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC 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_PXA=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=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND_UP_POSSIBLE=y
-CONFIG_SUSPEND=y
-CONFIG_APM_EMULATION=y
-
-#
-# Networking
-#
-CONFIG_NET=y
-
-#
-# Networking options
-#
-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_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=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_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-CONFIG_INET_XFRM_MODE_TRANSPORT=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# 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
-CONFIG_NET_SCH_FIFO=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 is not set
-CONFIG_BT_BNEP=m
-# CONFIG_BT_BNEP_MC_FILTER is not set
-# CONFIG_BT_BNEP_PROTO_FILTER is not set
-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 is not set
-# CONFIG_BT_HCIUART_BCSP is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_AF_RXRPC is not set
-
-#
-# Wireless
-#
-CONFIG_CFG80211=m
-CONFIG_WIRELESS_EXT=y
-CONFIG_MAC80211=m
-# CONFIG_MAC80211_LEDS is not set
-CONFIG_MAC80211_DEBUGFS=y
-# CONFIG_MAC80211_DEBUG 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 is not set
-# CONFIG_IEEE80211_SOFTMAC is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# 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
-# 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 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 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=y
-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=y
-CONFIG_MTD_CFI_STAA=y
-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_XIP is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-CONFIG_MTD_PHYSMAP=y
-CONFIG_MTD_PHYSMAP_START=0x0
-CONFIG_MTD_PHYSMAP_LEN=0x100000
-CONFIG_MTD_PHYSMAP_BANKWIDTH=2
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_IMPA7 is not set
-# CONFIG_MTD_SHARP_SL is not set
-# 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
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS 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 is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_ONENAND is not set
-
-#
-# UBI - Unsorted block images
-#
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-CONFIG_MTD_UBI_GLUEBI=y
-
-#
-# UBI debugging options
-#
-# CONFIG_MTD_UBI_DEBUG is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# 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=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=12000
-CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_SCSI_PROC_FS is not set
-
-#
-# 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
-# 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 is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NETDEVICES_MULTIQUEUE is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_AX88796 is not set
-# CONFIG_SMC91X is not set
-CONFIG_DM9000=y
-# CONFIG_SMC911X is not set
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-
-#
-# Wireless LAN
-#
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 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_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=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-# CONFIG_PPPOE is not set
-CONFIG_PPPOL2TP=m
-# 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
-# CONFIG_ISDN 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=y
-# 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
-
-#
-# 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_PXA27x=y
-# CONFIG_KEYBOARD_GPIO is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_FUJITSU 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_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_UCB1400 is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_SERPORT 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 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_IPMI_HANDLER is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=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_GPIO is not set
-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_SIMTEC is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_DS1337 is not set
-# CONFIG_SENSORS_DS1374 is not set
-# CONFIG_DS1682 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_SENSORS_TSL2550 is not set
-CONFIG_DA9030=y
-# 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
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_APM_POWER=y
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_EM_X270 is not set
-# CONFIG_HWMON is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_EEPROM_93CX6 is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_SM501 is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_EM_X270=m
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-# CONFIG_DVB_CORE is not set
-# CONFIG_DAB is not set
-
-#
-# Graphics support
-#
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_CORGI=y
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-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_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_SYS_FOPS is not set
-CONFIG_FB_DEFERRED_IO=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_DETECT_PRIMARY is not set
-# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
-
-#
-# Sound
-#
-CONFIG_SOUND=y
-
-#
-# Advanced Linux Sound Architecture
-#
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-# CONFIG_SND_SEQUENCER 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_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=m
-# 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_PCM=m
-CONFIG_SND_PXA2XX_AC97=m
-
-#
-# USB devices
-#
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_CAIAQ is not set
-
-#
-# System on Chip audio support
-#
-CONFIG_SND_SOC_AC97_BUS=y
-CONFIG_SND_SOC=y
-CONFIG_SND_PXA2XX_SOC=y
-CONFIG_SND_PXA2XX_SOC_AC97=y
-CONFIG_SND_PXA2XX_SOC_EM_X270=y
-
-#
-# SoC Audio support for SuperH
-#
-CONFIG_SND_SOC_WM9712=y
-
-#
-# Open Sound System
-#
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=y
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HID_DEBUG 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_SUPPORT=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_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_SUSPEND is not set
-# CONFIG_USB_PERSIST 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
-# CONFIG_USB_R8A66597_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_KARMA is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-# 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
-# CONFIG_USB_TEST is not set
-
-#
-# USB DSL modem support
-#
-
-#
-# USB Gadget Support
-#
-# CONFIG_USB_GADGET is not set
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-
-#
-# MMC/SD Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_BOUNCE=y
-
-#
-# MMC/SD Host Controller Drivers
-#
-CONFIG_MMC_PXA=y
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc1"
-# 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 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 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_STK17TA8 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-CONFIG_RTC_DRV_V3020=y
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_SA1100=y
-
-#
-# DMA Engine support
-#
-# CONFIG_DMA_ENGINE is not set
-
-#
-# DMA Clients
-#
-
-#
-# DMA Devices
-#
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4DEV_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_ROMFS_FS is not set
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-CONFIG_DNOTIFY=y
-# CONFIG_AUTOFS_FS 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=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_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 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=y
-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 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-# CONFIG_SUNRPC_BIND34 is not set
-# CONFIG_RPCSEC_GSS_KRB5 is not set
-# CONFIG_RPCSEC_GSS_SPKM3 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
-# CONFIG_AFS_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=y
-
-#
-# 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=y
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_DETECT_SOFTLOCKUP is not set
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_SLUB_DEBUG_ON 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_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT 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=y
-# 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_FAULT_INJECTION is not set
-CONFIG_DEBUG_USER=y
-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
-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 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=m
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_SERPENT is not set
-CONFIG_CRYPTO_AES=m
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_TEA is not set
-CONFIG_CRYPTO_ARC4=m
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_DEFLATE 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
-CONFIG_CRYPTO_HW=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=m
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_PLIST=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch b/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
deleted file mode 100644
index 51ec773..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Index: linux-2.6.23/arch/arm/mach-pxa/em-x270-pm.c
-===================================================================
---- linux-2.6.23.orig/arch/arm/mach-pxa/em-x270-pm.c 2008-02-21 14:30:06.000000000 +0000
-+++ linux-2.6.23/arch/arm/mach-pxa/em-x270-pm.c 2008-02-21 14:59:24.000000000 +0000
-@@ -461,6 +461,9 @@
- else {
- val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
- }
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
- }
- }
- else {
-@@ -547,8 +550,9 @@
- pr_debug("%s: MODEL = %s\n", __FUNCTION__, val->strval);
- break;
- default: break;
-+ return -1;
- }
--
-+
- return 0;
- }
-
-Index: linux-2.6.23/drivers/power/em_x270_battery.c
-===================================================================
---- linux-2.6.23.orig/drivers/power/em_x270_battery.c 2008-02-21 12:21:53.000000000 +0000
-+++ linux-2.6.23/drivers/power/em_x270_battery.c 2008-02-21 15:00:51.000000000 +0000
-@@ -418,8 +418,9 @@
- pr_debug("%s: MODEL = %s\n", __FUNCTION__, val->strval);
- break;
- default: break;
-+ return -1;
- }
--
-+
- return 0;
- }
-
diff --git a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch b/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
deleted file mode 100644
index 3c28be8..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
+++ /dev/null
@@ -1,12063 +0,0 @@
- arch/arm/Kconfig | 13 +-
- arch/arm/configs/em_x270_defconfig | 367 +++--
- arch/arm/mach-pxa/Kconfig | 8 +
- arch/arm/mach-pxa/Makefile | 9 +-
- arch/arm/mach-pxa/cpu-pxa.c | 442 ++++++
- arch/arm/mach-pxa/em-x270-devices.c | 331 +++++
- arch/arm/mach-pxa/em-x270-lcd.c | 223 +++
- arch/arm/mach-pxa/em-x270-pm.c | 892 ++++++++++++
- arch/arm/mach-pxa/em-x270.c | 127 ++-
- arch/arm/mach-pxa/pwr-i2c.c | 539 +++++++
- arch/arm/mach-pxa/pxa27x.c | 6 +-
- arch/arm/mach-pxa/spitz.c | 27 +
- drivers/i2c/chips/Kconfig | 13 +
- drivers/i2c/chips/Makefile | 1 +
- drivers/i2c/chips/da9030.c | 1213 ++++++++++++++++
- drivers/i2c/chips/da9030.h | 282 ++++
- drivers/input/touchscreen/Kconfig | 43 +
- drivers/input/touchscreen/Makefile | 14 +
- drivers/input/touchscreen/wm9705.c | 360 +++++
- drivers/input/touchscreen/wm9712.c | 464 ++++++
- drivers/input/touchscreen/wm9713.c | 461 ++++++
- drivers/input/touchscreen/wm97xx-core.c | 859 +++++++++++
- drivers/leds/Kconfig | 6 +
- drivers/leds/Makefile | 1 +
- drivers/leds/leds-em-x270.c | 99 ++
- drivers/mtd/chips/jedec_probe.c | 58 +-
- drivers/net/dm9000.c | 1 +
- drivers/power/Kconfig | 6 +
- drivers/power/Makefile | 1 +
- drivers/power/em_x270_battery.c | 579 ++++++++
- drivers/usb/gadget/Kconfig | 20 +
- drivers/usb/gadget/Makefile | 1 +
- drivers/usb/gadget/epautoconf.c | 9 +-
- drivers/usb/gadget/ether.c | 63 +-
- drivers/usb/gadget/file_storage.c | 11 +-
- drivers/usb/gadget/pxa27x_udc.c | 2387 +++++++++++++++++++++++++++++++
- drivers/usb/gadget/pxa27x_udc.h | 298 ++++
- drivers/usb/gadget/pxa2xx_udc.h | 7 +-
- drivers/usb/gadget/serial.c | 18 +-
- drivers/usb/gadget/zero.c | 13 +-
- drivers/video/backlight/Kconfig | 2 +-
- include/asm-arm/arch-pxa/pwr-i2c.h | 61 +
- include/linux/da9030.h | 118 ++
- include/linux/usb_gadget.h | 23 +-
- include/linux/wm97xx.h | 291 ++++
- sound/soc/pxa/Kconfig | 9 +
- sound/soc/pxa/Makefile | 2 +
- sound/soc/pxa/em-x270.c | 137 ++
- 48 files changed, 10742 insertions(+), 173 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 691aae3..cf1dbc2 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -858,7 +858,7 @@ config KEXEC
-
- endmenu
-
--if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX )
-+if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
-
- menu "CPU Frequency scaling"
-
-@@ -894,6 +894,15 @@ config CPU_FREQ_IMX
-
- If in doubt, say N.
-
-+config CPU_FREQ_PXA
-+ tristate "CPUfreq driver for PXA2xx CPUs"
-+ depends on CPU_FREQ && ARCH_PXA
-+ default y
-+ help
-+ Thes enables the CPUfreq driver for PXA2xx CPUs.
-+
-+ If in doubt, say Y.
-+
- endmenu
-
- endif
-@@ -1029,6 +1038,8 @@ source "drivers/spi/Kconfig"
-
- source "drivers/w1/Kconfig"
-
-+source "drivers/power/Kconfig"
-+
- source "drivers/hwmon/Kconfig"
-
- #source "drivers/l3/Kconfig"
-diff --git a/arch/arm/configs/em_x270_defconfig b/arch/arm/configs/em_x270_defconfig
-index 6bea090..3246136 100644
---- a/arch/arm/configs/em_x270_defconfig
-+++ b/arch/arm/configs/em_x270_defconfig
-@@ -1,13 +1,13 @@
- #
- # Automatically generated make config: don't edit
--# Linux kernel version: 2.6.22
--# Mon Jul 9 15:18:20 2007
-+# Linux kernel version: 2.6.23-rc9
-+# Tue Oct 9 11:19:21 2007
- #
- CONFIG_ARM=y
- CONFIG_SYS_SUPPORTS_APM_EMULATION=y
- CONFIG_GENERIC_GPIO=y
- CONFIG_GENERIC_TIME=y
--# CONFIG_GENERIC_CLOCKEVENTS is not set
-+CONFIG_GENERIC_CLOCKEVENTS=y
- CONFIG_MMU=y
- # CONFIG_NO_IOPORT is not set
- CONFIG_GENERIC_HARDIRQS=y
-@@ -27,25 +27,20 @@ CONFIG_VECTORS_BASE=0xffff0000
- CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-
- #
--# Code maturity level options
-+# General setup
- #
- CONFIG_EXPERIMENTAL=y
- CONFIG_BROKEN_ON_SMP=y
- CONFIG_INIT_ENV_ARG_LIMIT=32
--
--#
--# General setup
--#
- CONFIG_LOCALVERSION="-em-x270"
- # 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_USER_NS is not set
- # CONFIG_AUDIT is not set
- CONFIG_IKCONFIG=y
- CONFIG_IKCONFIG_PROC=y
-@@ -71,34 +66,27 @@ 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=y
--CONFIG_SLAB=y
--# CONFIG_SLUB is not set
-+CONFIG_SLUB_DEBUG=y
-+# CONFIG_SLAB is not set
-+CONFIG_SLUB=y
- # 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=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
-+# CONFIG_BLK_DEV_BSG is not set
-
- #
- # IO Schedulers
-@@ -139,6 +127,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
- # CONFIG_ARCH_L7200 is not set
- # CONFIG_ARCH_KS8695 is not set
- # CONFIG_ARCH_NS9XXX is not set
-+# CONFIG_ARCH_MXC is not set
- # CONFIG_ARCH_PNX4008 is not set
- CONFIG_ARCH_PXA=y
- # CONFIG_ARCH_RPC is not set
-@@ -160,6 +149,15 @@ CONFIG_ARCH_PXA=y
- # CONFIG_MACH_TRIZEPS4 is not set
- CONFIG_MACH_EM_X270=y
- CONFIG_PXA27x=y
-+CONFIG_PXA_PWR_I2C=y
-+
-+#
-+# Boot options
-+#
-+
-+#
-+# Power management
-+#
-
- #
- # Processor Type
-@@ -185,6 +183,7 @@ CONFIG_XSCALE_PMU=y
- #
- # Bus support
- #
-+# CONFIG_PCI_SYSCALL is not set
- # CONFIG_ARCH_SUPPORTS_MSI is not set
-
- #
-@@ -196,8 +195,9 @@ CONFIG_XSCALE_PMU=y
- # Kernel Features
- #
- # CONFIG_TICK_ONESHOT is not set
-+# CONFIG_NO_HZ is not set
-+# CONFIG_HIGH_RES_TIMERS is not set
- # CONFIG_PREEMPT is not set
--# CONFIG_NO_IDLE_HZ is not set
- CONFIG_HZ=100
- CONFIG_AEABI=y
- CONFIG_OABI_COMPAT=y
-@@ -212,6 +212,8 @@ CONFIG_FLAT_NODE_MEM_MAP=y
- CONFIG_SPLIT_PTLOCK_CPUS=4096
- # CONFIG_RESOURCES_64BIT is not set
- CONFIG_ZONE_DMA_FLAG=1
-+CONFIG_BOUNCE=y
-+CONFIG_VIRT_TO_BUS=y
- CONFIG_ALIGNMENT_TRAP=y
-
- #
-@@ -219,11 +221,28 @@ CONFIG_ALIGNMENT_TRAP=y
- #
- CONFIG_ZBOOT_ROM_TEXT=0x0
- CONFIG_ZBOOT_ROM_BSS=0x0
--CONFIG_CMDLINE=""
-+CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS0,115200"
- # CONFIG_XIP_KERNEL is not set
- # CONFIG_KEXEC 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_PXA=y
-+
-+#
- # Floating point emulation
- #
-
-@@ -238,8 +257,8 @@ CONFIG_FPE_NWFPE=y
- # 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
-
- #
- # Power management options
-@@ -247,8 +266,10 @@ CONFIG_BINFMT_ELF=y
- CONFIG_PM=y
- CONFIG_PM_LEGACY=y
- # CONFIG_PM_DEBUG is not set
--# CONFIG_PM_SYSFS_DEPRECATED is not set
--CONFIG_APM_EMULATION=m
-+CONFIG_PM_SLEEP=y
-+CONFIG_SUSPEND_UP_POSSIBLE=y
-+CONFIG_SUSPEND=y
-+CONFIG_APM_EMULATION=y
-
- #
- # Networking
-@@ -316,6 +337,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
- # QoS and/or fair queueing
- #
- # CONFIG_NET_SCHED is not set
-+CONFIG_NET_SCH_FIFO=y
-
- #
- # Network testing
-@@ -350,9 +372,12 @@ CONFIG_BT_HCIBFUSB=m
- #
- # Wireless
- #
--# CONFIG_CFG80211 is not set
--# CONFIG_WIRELESS_EXT is not set
--# CONFIG_MAC80211 is not set
-+CONFIG_CFG80211=m
-+CONFIG_WIRELESS_EXT=y
-+CONFIG_MAC80211=m
-+# CONFIG_MAC80211_LEDS is not set
-+CONFIG_MAC80211_DEBUGFS=y
-+# CONFIG_MAC80211_DEBUG is not set
- CONFIG_IEEE80211=m
- # CONFIG_IEEE80211_DEBUG is not set
- CONFIG_IEEE80211_CRYPT_WEP=m
-@@ -360,6 +385,7 @@ CONFIG_IEEE80211_CRYPT_CCMP=m
- # CONFIG_IEEE80211_CRYPT_TKIP is not set
- # CONFIG_IEEE80211_SOFTMAC is not set
- # CONFIG_RFKILL is not set
-+# CONFIG_NET_9P is not set
-
- #
- # Device Drivers
-@@ -374,10 +400,6 @@ 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
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
-@@ -402,11 +424,10 @@ CONFIG_MTD_BLOCK=y
- #
- # RAM/ROM/Flash chip drivers
- #
--# CONFIG_MTD_CFI is not set
--# CONFIG_MTD_JEDECPROBE is not set
--# CONFIG_MTD_CFI_NOSWAP is not set
--# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
--# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-+CONFIG_MTD_CFI=y
-+CONFIG_MTD_JEDECPROBE=y
-+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
-@@ -417,14 +438,25 @@ 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=y
-+CONFIG_MTD_CFI_STAA=y
-+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_XIP is not set
-
- #
- # Mapping drivers for chip access
- #
- # CONFIG_MTD_COMPLEX_MAPPINGS is not set
-+CONFIG_MTD_PHYSMAP=y
-+CONFIG_MTD_PHYSMAP_START=0x0
-+CONFIG_MTD_PHYSMAP_LEN=0x100000
-+CONFIG_MTD_PHYSMAP_BANKWIDTH=2
-+# CONFIG_MTD_ARM_INTEGRATOR is not set
-+# CONFIG_MTD_IMPA7 is not set
- # CONFIG_MTD_SHARP_SL is not set
- # CONFIG_MTD_PLATRAM is not set
-
-@@ -457,21 +489,17 @@ CONFIG_MTD_NAND_PLATFORM=y
- #
- # UBI - Unsorted block images
- #
--# CONFIG_MTD_UBI is not set
-+CONFIG_MTD_UBI=m
-+CONFIG_MTD_UBI_WL_THRESHOLD=4096
-+CONFIG_MTD_UBI_BEB_RESERVE=1
-+CONFIG_MTD_UBI_GLUEBI=y
-
- #
--# Parallel port support
-+# UBI debugging options
- #
-+# CONFIG_MTD_UBI_DEBUG is not set
- # CONFIG_PARPORT is not set
--
--#
--# Plug and Play support
--#
--# CONFIG_PNPACPI is not set
--
--#
--# Block devices
--#
-+CONFIG_BLK_DEV=y
- # CONFIG_BLK_DEV_COW_COMMON is not set
- CONFIG_BLK_DEV_LOOP=y
- # CONFIG_BLK_DEV_CRYPTOLOOP is not set
-@@ -490,6 +518,7 @@ CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
- #
- # CONFIG_RAID_ATTRS is not set
- CONFIG_SCSI=y
-+CONFIG_SCSI_DMA=y
- # CONFIG_SCSI_TGT is not set
- # CONFIG_SCSI_NETLINK is not set
- # CONFIG_SCSI_PROC_FS is not set
-@@ -519,36 +548,23 @@ CONFIG_SCSI_WAIT_SCAN=m
- # 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_SCSI_LOWLEVEL=y
- # CONFIG_ISCSI_TCP is not set
- # CONFIG_SCSI_DEBUG is not set
- # CONFIG_ATA is not set
--
--#
--# Multi-device support (RAID and LVM)
--#
- # CONFIG_MD is not set
--
--#
--# Network device support
--#
- CONFIG_NETDEVICES=y
-+# CONFIG_NETDEVICES_MULTIQUEUE is not set
- # CONFIG_DUMMY is not set
- # CONFIG_BONDING is not set
-+# CONFIG_MACVLAN is not set
- # CONFIG_EQUALIZER is not set
- # CONFIG_TUN is not set
- # CONFIG_PHYLIB is not set
--
--#
--# Ethernet (10 or 100Mbit)
--#
- CONFIG_NET_ETHERNET=y
- CONFIG_MII=y
-+# CONFIG_AX88796 is not set
- # CONFIG_SMC91X is not set
- CONFIG_DM9000=y
- # CONFIG_SMC911X is not set
-@@ -571,16 +587,22 @@ CONFIG_DM9000=y
- # CONFIG_USB_USBNET_MII is not set
- # CONFIG_USB_USBNET is not set
- # CONFIG_WAN is not set
--# CONFIG_PPP 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=m
-+CONFIG_PPP_DEFLATE=m
-+CONFIG_PPP_BSDCOMP=m
-+CONFIG_PPP_MPPE=m
-+# CONFIG_PPPOE is not set
-+CONFIG_PPPOL2TP=m
- # 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
-
- #
-@@ -612,16 +634,21 @@ CONFIG_INPUT_KEYBOARD=y
- # CONFIG_KEYBOARD_XTKBD is not set
- # CONFIG_KEYBOARD_NEWTON is not set
- # CONFIG_KEYBOARD_STOWAWAY is not set
--CONFIG_KEYBOARD_PXA27x=m
-+CONFIG_KEYBOARD_PXA27x=y
- # CONFIG_KEYBOARD_GPIO is not set
- # CONFIG_INPUT_MOUSE is not set
- # CONFIG_INPUT_JOYSTICK is not set
- # CONFIG_INPUT_TABLET is not set
- CONFIG_INPUT_TOUCHSCREEN=y
-+# CONFIG_TOUCHSCREEN_FUJITSU 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_PENMOUNT is not set
- # CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
- # CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-@@ -660,58 +687,91 @@ 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
--
--#
--# IPMI
--#
-+# CONFIG_LEGACY_PTYS is not set
- # CONFIG_IPMI_HANDLER is not set
- # CONFIG_WATCHDOG is not set
- CONFIG_HW_RANDOM=m
- # CONFIG_NVRAM is not set
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
-+# CONFIG_TCG_TPM is not set
-+CONFIG_I2C=y
-+CONFIG_I2C_BOARDINFO=y
-+# CONFIG_I2C_CHARDEV is not set
-
- #
--# TPM devices
-+# I2C Algorithms
- #
--# CONFIG_TCG_TPM is not set
--# CONFIG_I2C is not set
-+# CONFIG_I2C_ALGOBIT is not set
-+# CONFIG_I2C_ALGOPCF is not set
-+# CONFIG_I2C_ALGOPCA is not set
-
- #
--# SPI support
-+# I2C Hardware Bus support
- #
--# CONFIG_SPI is not set
--# CONFIG_SPI_MASTER is not set
-+# CONFIG_I2C_GPIO is not set
-+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_SIMTEC is not set
-+# CONFIG_I2C_TAOS_EVM is not set
-+# CONFIG_I2C_STUB is not set
-+# CONFIG_I2C_TINY_USB is not set
-
- #
--# Dallas's 1-wire bus
-+# Miscellaneous I2C Chip support
- #
--# CONFIG_W1 is not set
--# CONFIG_HWMON is not set
-+# CONFIG_SENSORS_DS1337 is not set
-+# CONFIG_SENSORS_DS1374 is not set
-+# CONFIG_DS1682 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_SENSORS_TSL2550 is not set
-+CONFIG_DA9030=y
-+# 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
-
- #
--# Misc devices
-+# SPI support
- #
-+# CONFIG_SPI is not set
-+# CONFIG_SPI_MASTER is not set
-+# CONFIG_W1 is not set
-+CONFIG_POWER_SUPPLY=y
-+# CONFIG_POWER_SUPPLY_DEBUG is not set
-+# CONFIG_PDA_POWER is not set
-+CONFIG_APM_POWER=y
-+# CONFIG_BATTERY_DS2760 is not set
-+# CONFIG_BATTERY_EM_X270 is not set
-+# CONFIG_HWMON is not set
-+CONFIG_MISC_DEVICES=y
-+# CONFIG_EEPROM_93CX6 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=m
-
- #
- # LED drivers
- #
-+CONFIG_LEDS_GPIO=m
-+CONFIG_LEDS_EM_X270=m
-
- #
- # LED Triggers
- #
-+CONFIG_LEDS_TRIGGERS=y
-+CONFIG_LEDS_TRIGGER_TIMER=m
-+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-
- #
- # Multimedia devices
-@@ -723,13 +783,17 @@ CONFIG_HW_RANDOM=m
- #
- # Graphics support
- #
--# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-+CONFIG_BACKLIGHT_LCD_SUPPORT=y
-+CONFIG_LCD_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_CLASS_DEVICE=y
-+CONFIG_BACKLIGHT_CORGI=y
-
- #
- # Display device support
- #
- # CONFIG_DISPLAY_SUPPORT is not set
- # CONFIG_VGASTATE is not set
-+CONFIG_VIDEO_OUTPUT_CONTROL=m
- CONFIG_FB=y
- # CONFIG_FIRMWARE_EDID is not set
- # CONFIG_FB_DDC is not set
-@@ -752,7 +816,7 @@ CONFIG_FB_DEFERRED_IO=y
- #
- # CONFIG_FB_S1D13XXX is not set
- CONFIG_FB_PXA=y
--# CONFIG_FB_PXA_PARAMETERS is not set
-+CONFIG_FB_PXA_PARAMETERS=y
- # CONFIG_FB_MBX is not set
- # CONFIG_FB_VIRTUAL is not set
-
-@@ -762,6 +826,7 @@ CONFIG_FB_PXA=y
- # CONFIG_VGA_CONSOLE is not set
- CONFIG_DUMMY_CONSOLE=y
- CONFIG_FRAMEBUFFER_CONSOLE=y
-+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
- # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
- # CONFIG_FONTS is not set
- CONFIG_FONT_8x8=y
-@@ -774,18 +839,18 @@ CONFIG_LOGO_LINUX_CLUT224=y
- #
- # Sound
- #
--CONFIG_SOUND=m
-+CONFIG_SOUND=y
-
- #
- # Advanced Linux Sound Architecture
- #
--CONFIG_SND=m
--CONFIG_SND_TIMER=m
--CONFIG_SND_PCM=m
-+CONFIG_SND=y
-+CONFIG_SND_TIMER=y
-+CONFIG_SND_PCM=y
- # CONFIG_SND_SEQUENCER is not set
- CONFIG_SND_OSSEMUL=y
--CONFIG_SND_MIXER_OSS=m
--CONFIG_SND_PCM_OSS=m
-+CONFIG_SND_MIXER_OSS=y
-+CONFIG_SND_PCM_OSS=y
- CONFIG_SND_PCM_OSS_PLUGINS=y
- # CONFIG_SND_DYNAMIC_MINORS is not set
- CONFIG_SND_SUPPORT_OLD_API=y
-@@ -817,17 +882,23 @@ CONFIG_SND_PXA2XX_AC97=m
- #
- # System on Chip audio support
- #
--# CONFIG_SND_SOC is not set
-+CONFIG_SND_SOC_AC97_BUS=y
-+CONFIG_SND_SOC=y
-+CONFIG_SND_PXA2XX_SOC=y
-+CONFIG_SND_PXA2XX_SOC_AC97=y
-+CONFIG_SND_PXA2XX_SOC_EM_X270=y
-
- #
--# Open Sound System
-+# SoC Audio support for SuperH
- #
--# CONFIG_SOUND_PRIME is not set
--CONFIG_AC97_BUS=m
-+CONFIG_SND_SOC_WM9712=y
-
- #
--# HID Devices
-+# Open Sound System
- #
-+# CONFIG_SOUND_PRIME is not set
-+CONFIG_AC97_BUS=y
-+CONFIG_HID_SUPPORT=y
- CONFIG_HID=y
- # CONFIG_HID_DEBUG is not set
-
-@@ -838,10 +909,7 @@ CONFIG_USB_HID=y
- # CONFIG_USB_HIDINPUT_POWERBOOK is not set
- # CONFIG_HID_FF is not set
- # CONFIG_USB_HIDDEV is not set
--
--#
--# USB support
--#
-+CONFIG_USB_SUPPORT=y
- CONFIG_USB_ARCH_HAS_HCD=y
- CONFIG_USB_ARCH_HAS_OHCI=y
- # CONFIG_USB_ARCH_HAS_EHCI is not set
-@@ -855,6 +923,7 @@ CONFIG_USB_DEVICEFS=y
- # CONFIG_USB_DEVICE_CLASS is not set
- # CONFIG_USB_DYNAMIC_MINORS is not set
- # CONFIG_USB_SUSPEND is not set
-+# CONFIG_USB_PERSIST is not set
- # CONFIG_USB_OTG is not set
-
- #
-@@ -866,12 +935,13 @@ CONFIG_USB_OHCI_HCD=y
- # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
- CONFIG_USB_OHCI_LITTLE_ENDIAN=y
- # CONFIG_USB_SL811_HCD is not set
-+# CONFIG_USB_R8A66597_HCD is not set
-
- #
- # USB Device Class drivers
- #
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
-+CONFIG_USB_ACM=m
-+CONFIG_USB_PRINTER=m
-
- #
- # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
-@@ -896,8 +966,8 @@ CONFIG_USB_STORAGE=y
- #
- # USB Imaging devices
- #
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_MICROTEK is not set
-+CONFIG_USB_MDC800=m
-+CONFIG_USB_MICROTEK=m
- # CONFIG_USB_MON is not set
-
- #
-@@ -940,25 +1010,25 @@ CONFIG_USB_STORAGE=y
- # USB Gadget Support
- #
- # CONFIG_USB_GADGET is not set
--CONFIG_MMC=m
-+CONFIG_MMC=y
- # CONFIG_MMC_DEBUG is not set
--# CONFIG_MMC_UNSAFE_RESUME is not set
-+CONFIG_MMC_UNSAFE_RESUME=y
-
- #
- # MMC/SD Card Drivers
- #
--CONFIG_MMC_BLOCK=m
-+CONFIG_MMC_BLOCK=y
-+CONFIG_MMC_BLOCK_BOUNCE=y
-
- #
- # MMC/SD Host Controller Drivers
- #
--CONFIG_MMC_PXA=m
--
--#
--# Real Time Clock
--#
-+CONFIG_MMC_PXA=y
- CONFIG_RTC_LIB=y
--CONFIG_RTC_CLASS=m
-+CONFIG_RTC_CLASS=y
-+CONFIG_RTC_HCTOSYS=y
-+CONFIG_RTC_HCTOSYS_DEVICE="rtc1"
-+# CONFIG_RTC_DEBUG is not set
-
- #
- # RTC interfaces
-@@ -972,6 +1042,15 @@ CONFIG_RTC_INTF_DEV=y
- #
- # I2C RTC drivers
- #
-+# CONFIG_RTC_DRV_DS1307 is not set
-+# CONFIG_RTC_DRV_DS1672 is not set
-+# CONFIG_RTC_DRV_MAX6900 is not set
-+# CONFIG_RTC_DRV_RS5C372 is not set
-+# CONFIG_RTC_DRV_ISL1208 is not set
-+# CONFIG_RTC_DRV_X1205 is not set
-+# CONFIG_RTC_DRV_PCF8563 is not set
-+# CONFIG_RTC_DRV_PCF8583 is not set
-+# CONFIG_RTC_DRV_M41T80 is not set
-
- #
- # SPI RTC drivers
-@@ -982,14 +1061,29 @@ CONFIG_RTC_INTF_DEV=y
- #
- # CONFIG_RTC_DRV_CMOS is not set
- # CONFIG_RTC_DRV_DS1553 is not set
-+# CONFIG_RTC_DRV_STK17TA8 is not set
- # CONFIG_RTC_DRV_DS1742 is not set
- # CONFIG_RTC_DRV_M48T86 is not set
--CONFIG_RTC_DRV_V3020=m
-+# CONFIG_RTC_DRV_M48T59 is not set
-+CONFIG_RTC_DRV_V3020=y
-
- #
- # on-CPU RTC drivers
- #
--CONFIG_RTC_DRV_SA1100=m
-+CONFIG_RTC_DRV_SA1100=y
-+
-+#
-+# DMA Engine support
-+#
-+# CONFIG_DMA_ENGINE is not set
-+
-+#
-+# DMA Clients
-+#
-+
-+#
-+# DMA Devices
-+#
-
- #
- # File systems
-@@ -1098,7 +1192,6 @@ CONFIG_SMB_FS=y
- # 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
-@@ -1167,20 +1260,22 @@ CONFIG_NLS_UTF8=y
- CONFIG_ENABLE_MUST_CHECK=y
- CONFIG_MAGIC_SYSRQ=y
- # CONFIG_UNUSED_SYMBOLS is not set
--# CONFIG_DEBUG_FS is not set
-+CONFIG_DEBUG_FS=y
- # CONFIG_HEADERS_CHECK is not set
- CONFIG_DEBUG_KERNEL=y
- # CONFIG_DEBUG_SHIRQ is not set
- # CONFIG_DETECT_SOFTLOCKUP is not set
-+CONFIG_SCHED_DEBUG=y
- # CONFIG_SCHEDSTATS is not set
- # CONFIG_TIMER_STATS is not set
--# CONFIG_DEBUG_SLAB is not set
-+# CONFIG_SLUB_DEBUG_ON 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_LOCK_ALLOC is not set
- # CONFIG_PROVE_LOCKING is not set
-+# CONFIG_LOCK_STAT is not set
- # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
- # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
- # CONFIG_DEBUG_KOBJECT is not set
-@@ -1202,10 +1297,6 @@ CONFIG_DEBUG_LL=y
- #
- # CONFIG_KEYS is not set
- # CONFIG_SECURITY is not set
--
--#
--# Cryptographic options
--#
- CONFIG_CRYPTO=y
- CONFIG_CRYPTO_ALGAPI=m
- CONFIG_CRYPTO_BLKCIPHER=m
-@@ -1215,7 +1306,7 @@ CONFIG_CRYPTO_MANAGER=m
- # CONFIG_CRYPTO_NULL is not set
- # CONFIG_CRYPTO_MD4 is not set
- # CONFIG_CRYPTO_MD5 is not set
--# CONFIG_CRYPTO_SHA1 is not set
-+CONFIG_CRYPTO_SHA1=m
- # CONFIG_CRYPTO_SHA256 is not set
- # CONFIG_CRYPTO_SHA512 is not set
- # CONFIG_CRYPTO_WP512 is not set
-@@ -1243,19 +1334,17 @@ CONFIG_CRYPTO_ARC4=m
- # CONFIG_CRYPTO_CRC32C is not set
- # CONFIG_CRYPTO_CAMELLIA is not set
- # CONFIG_CRYPTO_TEST is not set
--
--#
--# Hardware crypto devices
--#
-+CONFIG_CRYPTO_HW=y
-
- #
- # Library routines
- #
- CONFIG_BITREVERSE=y
--# CONFIG_CRC_CCITT is not set
-+CONFIG_CRC_CCITT=m
- # CONFIG_CRC16 is not set
- # CONFIG_CRC_ITU_T is not set
- CONFIG_CRC32=y
-+# CONFIG_CRC7 is not set
- # CONFIG_LIBCRC32C is not set
- CONFIG_ZLIB_INFLATE=y
- CONFIG_ZLIB_DEFLATE=y
-diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
-index 5ebec6d..2957cb9 100644
---- a/arch/arm/mach-pxa/Kconfig
-+++ b/arch/arm/mach-pxa/Kconfig
-@@ -148,4 +148,12 @@ config PXA_SSP
- tristate
- help
- Enable support for PXA2xx SSP ports
-+
-+config PXA_PWR_I2C
-+ bool "Simple Power I2C interface"
-+ depends on PXA27x
-+ help
-+ Enable support for PXA27x Power I2C interface. This driver
-+ enables very simple blocking access to Power I2C, which
-+ might be useful for early access to Power Management ICs.
- endif
-diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
-index 7d6ab5c..2d7a431 100644
---- a/arch/arm/mach-pxa/Makefile
-+++ b/arch/arm/mach-pxa/Makefile
-@@ -18,7 +18,7 @@ obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o corgi_ssp.o corgi_lcd.o sharpsl_pm.o sp
- obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o
- obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
- obj-$(CONFIG_MACH_TOSA) += tosa.o
--obj-$(CONFIG_MACH_EM_X270) += em-x270.o
-+obj-$(CONFIG_MACH_EM_X270) += em-x270.o em-x270-pm.o em-x270-lcd.o em-x270-devices.o
-
- # Support for blinky lights
- led-y := leds.o
-@@ -29,9 +29,16 @@ led-$(CONFIG_MACH_TRIZEPS4) += leds-trizeps4.o
-
- obj-$(CONFIG_LEDS) += $(led-y)
-
-+# CPU Frequency scaling
-+obj-$(CONFIG_CPU_FREQ_PXA) += cpu-pxa.o
-+
- # Misc features
- obj-$(CONFIG_PM) += pm.o sleep.o
- obj-$(CONFIG_PXA_SSP) += ssp.o
-+obj-$(CONFIG_PXA_PWR_I2C) += pwr-i2c.o
-+
-+#obj-m += da9030_asm.o
-+#da9030_asm-y += da9030.o da9030_c.o
-
- ifeq ($(CONFIG_PXA27x),y)
- obj-$(CONFIG_PM) += standby.o
-diff --git a/arch/arm/mach-pxa/cpu-pxa.c b/arch/arm/mach-pxa/cpu-pxa.c
-new file mode 100644
-index 0000000..7fa9703
---- /dev/null
-+++ b/arch/arm/mach-pxa/cpu-pxa.c
-@@ -0,0 +1,442 @@
-+/*
-+ * linux/arch/arm/mach-pxa/cpu-pxa.c
-+ *
-+ * Copyright (C) 2002,2003 Intrinsyc Software
-+ *
-+ * 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
-+ *
-+ * History:
-+ * 31-Jul-2002 : Initial version [FB]
-+ * 29-Jan-2003 : added PXA255 support [FB]
-+ * 20-Apr-2003 : ported to v2.5 (Dustin McIntire, Sensoria Corp.)
-+ * 11-Jan-2006 : v2.6, support for PXA27x processor up to 624MHz (Bill Reese, Hewlett Packard)
-+ *
-+ * Note:
-+ * This driver may change the memory bus clock rate, but will not do any
-+ * platform specific access timing changes... for example if you have flash
-+ * memory connected to CS0, you will need to register a platform specific
-+ * notifier which will adjust the memory access strobes to maintain a
-+ * minimum strobe width.
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/sched.h>
-+#include <linux/init.h>
-+#include <linux/cpufreq.h>
-+
-+#include <asm/hardware.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+
-+/*
-+ * This comes from generic.h in this directory.
-+ */
-+extern unsigned int get_clk_frequency_khz(int info);
-+
-+#define DEBUG 0
-+
-+#ifdef DEBUG
-+ static unsigned int freq_debug = DEBUG;
-+ module_param(freq_debug, int, 0644);
-+ MODULE_PARM_DESC(freq_debug, "Set the debug messages to on=1/off=0");
-+#else
-+ #define freq_debug 0
-+#endif
-+
-+typedef struct
-+{
-+ unsigned int khz; /* CPU frequency */
-+ unsigned int membus; /* memory bus frequency */
-+ unsigned int cccr; /* new CCLKCFG setting */
-+ unsigned int div2; /* alter memory controller settings to divide by 2 */
-+ unsigned int cclkcfg; /* new CCLKCFG setting */
-+} pxa_freqs_t;
-+
-+/* Define the refresh period in mSec for the SDRAM and the number of rows */
-+#define SDRAM_TREF 64 /* standard 64ms SDRAM */
-+#if defined(CONFIG_MACH_H4700) || defined(CONFIG_ARCH_H2200) || defined(CONFIG_MACH_MAGICIAN)
-+#define SDRAM_ROWS 8192 /* hx4700 uses 2 64Mb DRAMs, 8912 rows */
-+#else
-+#define SDRAM_ROWS 4096 /* 64MB=8192 32MB=4096 */
-+#endif
-+#define MDREFR_DRI(x) (((x*SDRAM_TREF/SDRAM_ROWS - 31)/32))
-+
-+#define CCLKCFG_TURBO 0x1
-+#define CCLKCFG_FCS 0x2
-+#define CCLKCFG_HALFTURBO 0x4
-+#define CCLKCFG_FASTBUS 0x8
-+#ifdef CONFIG_ARCH_H5400
-+/* H5400's SAMCOP chip does not like when K2DB2 touched */
-+#define MDREFR_DB2_MASK (MDREFR_K1DB2)
-+#else
-+#define MDREFR_DB2_MASK (MDREFR_K2DB2 | MDREFR_K1DB2)
-+#endif
-+#define MDREFR_DRI_MASK 0xFFF
-+#define PXA25x_CCLKCFG CCLKCFG_TURBO | CCLKCFG_FCS
-+
-+/*
-+ * For the PXA27x:
-+ * Control variables are A, L, 2N for CCCR; B, HT, T for CLKCFG.
-+ *
-+ * A = 0 => memory controller clock from table 3-7,
-+ * A = 1 => memory controller clock = system bus clock
-+ * Run mode frequency = 13 MHz * L
-+ * Turbo mode frequency = 13 MHz * L * N
-+ * System bus frequency = 13 MHz * L / (B + 1)
-+ * System initialized by bootldr to:
-+ *
-+ * In CCCR:
-+ * A = 1
-+ * L = 16 oscillator to run mode ratio
-+ * 2N = 6 2 * (turbo mode to run mode ratio)
-+ *
-+ * In CCLKCFG:
-+ * B = 1 Fast bus mode
-+ * HT = 0 Half-Turbo mode
-+ * T = 1 Turbo mode
-+ *
-+ * For now, just support some of the combinations in table 3-7 of
-+ * PXA27x Processor Family Developer's Manual to simplify frequency
-+ * change sequences.
-+ *
-+ * Specify 2N in the PXA27x_CCCR macro, not N!
-+ */
-+#define PXA27x_CCCR(A, L, N2) (A << 25 | N2 << 7 | L)
-+#define PXA27x_CCLKCFG(B, HT, T) (B << 3 | HT << 2 | CCLKCFG_FCS | T)
-+
-+#define PXA25x_CCCR(L, M, N) (L << 0 | M << 5 | N << 7)
-+
-+/*
-+ * Valid frequency assignments
-+ */
-+static pxa_freqs_t pxa2xx_freqs[] =
-+{
-+ /* CPU MEMBUS CCCR DIV2 */
-+#if defined(CONFIG_PXA25x)
-+#if defined(CONFIG_PXA25x_ALTERNATE_FREQS)
-+ { 99500, 99500, PXA25x_CCCR(1, 1, 2), 1, PXA25x_CCLKCFG}, /* run=99, turbo= 99, PXbus=50, SDRAM=50 */
-+ {199100, 99500, PXA25x_CCCR(1, 1, 4), 0, PXA25x_CCLKCFG}, /* run=99, turbo=199, PXbus=50, SDRAM=99 */
-+ {298500, 99500, PXA25x_CCCR(1, 1, 6), 0, PXA25x_CCLKCFG}, /* run=99, turbo=287, PXbus=50, SDRAM=99 */
-+ {298600, 99500, PXA25x_CCCR(1, 2, 3), 0, PXA25x_CCLKCFG}, /* run=199, turbo=287, PXbus=99, SDRAM=99 */
-+ {398100, 99500, PXA25x_CCCR(1, 2, 4), 0, PXA25x_CCLKCFG} /* run=199, turbo=398, PXbus=99, SDRAM=99 */
-+#else
-+ { 99500, 99500, PXA25x_CCCR(1, 1, 2), 1, PXA25x_CCLKCFG}, /* run= 99, turbo= 99, PXbus=50, SDRAM=50 */
-+ {132700, 132700, PXA25x_CCCR(3, 1, 2), 1, PXA25x_CCLKCFG}, /* run=133, turbo=133, PXbus=66, SDRAM=66 */
-+ {199100, 99500, PXA25x_CCCR(1, 2, 2), 0, PXA25x_CCLKCFG}, /* run=199, turbo=199, PXbus=99, SDRAM=99 */
-+ {265400, 132700, PXA25x_CCCR(3, 2, 2), 1, PXA25x_CCLKCFG}, /* run=265, turbo=265, PXbus=133, SDRAM=66 */
-+ {331800, 165900, PXA25x_CCCR(5, 2, 2), 1, PXA25x_CCLKCFG}, /* run=331, turbo=331, PXbus=166, SDRAM=83 */
-+ {398100, 99500, PXA25x_CCCR(1, 3, 2), 0, PXA25x_CCLKCFG} /* run=398, turbo=398, PXbus=196, SDRAM=99 */
-+#endif
-+#elif defined(CONFIG_PXA27x)
-+ {104000, 104000, PXA27x_CCCR(1, 8, 2), 0, PXA27x_CCLKCFG(1, 0, 1)},
-+ {156000, 104000, PXA27x_CCCR(1, 8, 6), 0, PXA27x_CCLKCFG(1, 1, 1)},
-+ {208000, 208000, PXA27x_CCCR(0, 16, 2), 1, PXA27x_CCLKCFG(0, 0, 1)},
-+ {312000, 208000, PXA27x_CCCR(1, 16, 3), 1, PXA27x_CCLKCFG(1, 0, 1)},
-+ {416000, 208000, PXA27x_CCCR(1, 16, 4), 1, PXA27x_CCLKCFG(1, 0, 1)},
-+ {520000, 208000, PXA27x_CCCR(1, 16, 5), 1, PXA27x_CCLKCFG(1, 0, 1)},
-+/* {624000, 208000, PXA27x_CCCR(1, 16, 6), 1, PXA27x_CCLKCFG(1, 0, 1)} */
-+#endif
-+};
-+#define NUM_FREQS (sizeof(pxa2xx_freqs)/sizeof(pxa_freqs_t))
-+
-+static struct cpufreq_frequency_table pxa2xx_freq_table[NUM_FREQS+1];
-+
-+/* Return the memory clock rate for a given cpu frequency. */
-+int pxa_cpufreq_memclk(int cpu_khz)
-+{
-+ int i;
-+ int freq_mem = 0;
-+
-+ for (i = 0; i < NUM_FREQS; i++) {
-+ if (pxa2xx_freqs[i].khz == cpu_khz) {
-+ freq_mem = pxa2xx_freqs[i].membus;
-+ break;
-+ }
-+ }
-+
-+ return freq_mem;
-+}
-+EXPORT_SYMBOL(pxa_cpufreq_memclk);
-+
-+
-+/* find a valid frequency point */
-+static int pxa_verify_policy(struct cpufreq_policy *policy)
-+{
-+ int ret;
-+
-+ ret=cpufreq_frequency_table_verify(policy, pxa2xx_freq_table);
-+
-+ if(freq_debug) {
-+ printk("Verified CPU policy: %dKhz min to %dKhz max\n",
-+ policy->min, policy->max);
-+ }
-+
-+ return ret;
-+}
-+
-+static int pxa_set_target(struct cpufreq_policy *policy,
-+ unsigned int target_freq,
-+ unsigned int relation)
-+{
-+ int idx;
-+ cpumask_t cpus_allowed, allowedcpuset;
-+ int cpu = policy->cpu;
-+ struct cpufreq_freqs freqs;
-+ unsigned long flags;
-+ unsigned int unused;
-+ unsigned int preset_mdrefr, postset_mdrefr, cclkcfg;
-+
-+ if(freq_debug) {
-+ printk ("CPU PXA: target freq %d\n", target_freq);
-+ printk ("CPU PXA: relation %d\n", relation);
-+ }
-+
-+ /*
-+ * Save this threads cpus_allowed mask.
-+ */
-+ cpus_allowed = current->cpus_allowed;
-+
-+ /*
-+ * Bind to the specified CPU. When this call returns,
-+ * we should be running on the right CPU.
-+ */
-+ cpus_clear (allowedcpuset);
-+ cpu_set (cpu, allowedcpuset);
-+ set_cpus_allowed(current, allowedcpuset);
-+ BUG_ON(cpu != smp_processor_id());
-+
-+ /* Lookup the next frequency */
-+ if (cpufreq_frequency_table_target(policy, pxa2xx_freq_table,
-+ target_freq, relation, &idx)) {
-+ return -EINVAL;
-+ }
-+
-+ freqs.old = policy->cur;
-+ freqs.new = pxa2xx_freqs[idx].khz;
-+ freqs.cpu = policy->cpu;
-+ if(freq_debug) {
-+ printk(KERN_INFO "Changing CPU frequency to %d Mhz, (SDRAM %d Mhz)\n",
-+ freqs.new/1000, (pxa2xx_freqs[idx].div2) ?
-+ (pxa2xx_freqs[idx].membus/2000) :
-+ (pxa2xx_freqs[idx].membus/1000));
-+ }
-+
-+ /*
-+ * Tell everyone what we're about to do...
-+ * you should add a notify client with any platform specific
-+ * Vcc changing capability
-+ */
-+ cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
-+
-+ /* Calculate the next MDREFR. If we're slowing down the SDRAM clock
-+ * we need to preset the smaller DRI before the change. If we're speeding
-+ * up we need to set the larger DRI value after the change.
-+ */
-+ preset_mdrefr = postset_mdrefr = MDREFR;
-+ if((MDREFR & MDREFR_DRI_MASK) > MDREFR_DRI(pxa2xx_freqs[idx].membus)) {
-+ preset_mdrefr = (preset_mdrefr & ~MDREFR_DRI_MASK) |
-+ MDREFR_DRI(pxa2xx_freqs[idx].membus);
-+ }
-+ postset_mdrefr = (postset_mdrefr & ~MDREFR_DRI_MASK) |
-+ MDREFR_DRI(pxa2xx_freqs[idx].membus);
-+
-+ /* If we're dividing the memory clock by two for the SDRAM clock, this
-+ * must be set prior to the change. Clearing the divide must be done
-+ * after the change.
-+ */
-+ if(pxa2xx_freqs[idx].div2) {
-+ /*
-+ * Potentially speeding up memory clock, so slow down the memory
-+ * before speeding up the clock.
-+ */
-+ preset_mdrefr |= MDREFR_DB2_MASK | MDREFR_K0DB4;
-+ preset_mdrefr &= ~MDREFR_K0DB2;
-+
-+ postset_mdrefr |= MDREFR_DB2_MASK | MDREFR_K0DB4;
-+ postset_mdrefr &= ~MDREFR_K0DB2;
-+ } else {
-+ /*
-+ * Potentially slowing down memory clock. Wait until after the change
-+ * to speed up the memory.
-+ */
-+ postset_mdrefr &= ~MDREFR_DB2_MASK;
-+ postset_mdrefr &= ~MDREFR_K0DB4;
-+ postset_mdrefr |= MDREFR_K0DB2;
-+ }
-+
-+ cclkcfg = pxa2xx_freqs[idx].cclkcfg;
-+
-+ if (freq_debug) {
-+ printk (KERN_INFO "CPU PXA writing 0x%08x to CCCR\n",
-+ pxa2xx_freqs[idx].cccr);
-+ printk (KERN_INFO "CPU PXA writing 0x%08x to CCLKCFG\n",
-+ pxa2xx_freqs[idx].cclkcfg);
-+ printk (KERN_INFO "CPU PXA writing 0x%08x to MDREFR before change\n",
-+ preset_mdrefr);
-+ printk (KERN_INFO "CPU PXA writing 0x%08x to MDREFR after change\n",
-+ postset_mdrefr);
-+ }
-+
-+ local_irq_save(flags);
-+
-+ /* Set new the CCCR */
-+ CCCR = pxa2xx_freqs[idx].cccr;
-+
-+ /*
-+ * Should really set both of PMCR[xIDAE] while changing the core frequency
-+ */
-+
-+ /*
-+ * TODO: On the PXA27x: If we're setting half-turbo mode and changing the
-+ * core frequency at the same time we must split it up into two operations.
-+ * The current values in the pxa2xx_freqs table don't do this, so the code
-+ * is unimplemented.
-+ */
-+
-+ __asm__ __volatile__(" \
-+ ldr r4, [%1] ; /* load MDREFR */ \
-+ b 2f ; \
-+ .align 5 ; \
-+1: \
-+ str %3, [%1] ; /* preset the MDREFR */ \
-+ mcr p14, 0, %2, c6, c0, 0 ; /* set CCLKCFG[FCS] */ \
-+ str %4, [%1] ; /* postset the MDREFR */ \
-+ \
-+ b 3f ; \
-+2: b 1b ; \
-+3: nop ; \
-+ "
-+ : "=&r" (unused)
-+ : "r" (&MDREFR), "r" (cclkcfg), \
-+ "r" (preset_mdrefr), "r" (postset_mdrefr)
-+ : "r4", "r5");
-+ local_irq_restore(flags);
-+
-+ if (freq_debug) {
-+ printk (KERN_INFO "CPU PXA Frequency change successful\n");
-+ printk (KERN_INFO "CPU PXA new CCSR 0x%08x\n", CCSR);
-+ }
-+
-+ /*
-+ * Restore the CPUs allowed mask.
-+ */
-+ set_cpus_allowed(current, cpus_allowed);
-+
-+ /*
-+ * Tell everyone what we've just done...
-+ * you should add a notify client with any platform specific
-+ * SDRAM refresh timer adjustments
-+ */
-+ cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-+
-+ return 0;
-+}
-+
-+static int pxa_cpufreq_init(struct cpufreq_policy *policy)
-+{
-+ cpumask_t cpus_allowed, allowedcpuset;
-+ unsigned int cpu = policy->cpu;
-+ int i;
-+ unsigned int cclkcfg;
-+
-+ cpus_allowed = current->cpus_allowed;
-+
-+ cpus_clear (allowedcpuset);
-+ cpu_set (cpu, allowedcpuset);
-+ set_cpus_allowed(current, allowedcpuset);
-+ BUG_ON(cpu != smp_processor_id());
-+
-+ /* set default governor and cpuinfo */
-+ policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-+ policy->cpuinfo.transition_latency = 1000; /* FIXME: 1 ms, assumed */
-+ policy->cur = get_clk_frequency_khz(0); /* current freq */
-+
-+ /* Generate the cpufreq_frequency_table struct */
-+ for(i=0;i<NUM_FREQS;i++) {
-+ pxa2xx_freq_table[i].frequency = pxa2xx_freqs[i].khz;
-+ pxa2xx_freq_table[i].index = i;
-+ }
-+ pxa2xx_freq_table[i].frequency = CPUFREQ_TABLE_END;
-+
-+ /*
-+ * Set the policy's minimum and maximum frequencies from the tables
-+ * just constructed. This sets cpuinfo.mxx_freq, min and max.
-+ */
-+ cpufreq_frequency_table_cpuinfo (policy, pxa2xx_freq_table);
-+
-+ set_cpus_allowed(current, cpus_allowed);
-+ printk(KERN_INFO "PXA CPU frequency change support initialized\n");
-+
-+ if (freq_debug) {
-+ printk (KERN_INFO "PXA CPU initial CCCR 0x%08x\n", CCCR);
-+ asm
-+ (
-+ "mrc p14, 0, %0, c6, c0, 0 ; /* read CCLKCFG from CP14 */ "
-+ : "=r" (cclkcfg) :
-+ );
-+ printk ("PXA CPU initial CCLKCFG 0x%08x\n", cclkcfg);
-+ printk ("PXA CPU initial MDREFR 0x%08x\n", MDREFR);
-+ }
-+
-+ return 0;
-+}
-+
-+static unsigned int pxa_cpufreq_get(unsigned int cpu)
-+{
-+ cpumask_t cpumask_saved;
-+ unsigned int cur_freq;
-+
-+ cpumask_saved = current->cpus_allowed;
-+ set_cpus_allowed(current, cpumask_of_cpu(cpu));
-+ BUG_ON(cpu != smp_processor_id());
-+
-+ cur_freq = get_clk_frequency_khz(0);
-+
-+ set_cpus_allowed(current, cpumask_saved);
-+
-+ return cur_freq;
-+}
-+
-+static struct cpufreq_driver pxa_cpufreq_driver = {
-+ .verify = pxa_verify_policy,
-+ .target = pxa_set_target,
-+ .init = pxa_cpufreq_init,
-+ .get = pxa_cpufreq_get,
-+#if defined(CONFIG_PXA25x)
-+ .name = "PXA25x",
-+#elif defined(CONFIG_PXA27x)
-+ .name = "PXA27x",
-+#endif
-+};
-+
-+static int __init pxa_cpu_init(void)
-+{
-+ return cpufreq_register_driver(&pxa_cpufreq_driver);
-+}
-+
-+static void __exit pxa_cpu_exit(void)
-+{
-+ cpufreq_unregister_driver(&pxa_cpufreq_driver);
-+}
-+
-+
-+MODULE_AUTHOR ("Intrinsyc Software Inc.");
-+MODULE_DESCRIPTION ("CPU frequency changing driver for the PXA architecture");
-+MODULE_LICENSE("GPL");
-+module_init(pxa_cpu_init);
-+module_exit(pxa_cpu_exit);
-+
-diff --git a/arch/arm/mach-pxa/em-x270-devices.c b/arch/arm/mach-pxa/em-x270-devices.c
-new file mode 100644
-index 0000000..d142930
---- /dev/null
-+++ b/arch/arm/mach-pxa/em-x270-devices.c
-@@ -0,0 +1,331 @@
-+/*
-+ * Support for CompuLab EM-X270 platfrom specific device
-+ * initialization, and per-device power management functions.
-+ *
-+ * Copyright (C) 2007 CompuLab, Ltd.
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * 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/platform_device.h>
-+#include <linux/sysfs.h>
-+#include <linux/ctype.h>
-+#include <linux/delay.h>
-+#include <linux/da9030.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+
-+#include "../../../drivers/i2c/chips/da9030.h"
-+
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+
-+struct em_x270_dev_data {
-+ int (*is_on)(struct device *dev);
-+ int (*set_on)(struct device *dev, int on);
-+ int (*get_opts)(struct device *dev,
-+ struct device_attribute *attr,
-+ char *buf);
-+ int (*set_opts)(struct device *dev, int opts);
-+};
-+
-+static void em_x270_dev_release(struct device * dev)
-+{
-+
-+}
-+
-+static ssize_t em_x270_dev_pm_show(struct device *dev,
-+ struct device_attribute *attr,
-+ char *buf)
-+{
-+ struct em_x270_dev_data *pm_data = dev->platform_data;
-+ int is_on = pm_data->is_on(dev);
-+
-+ return sprintf(buf, "%d\n", is_on);
-+}
-+
-+static ssize_t em_x270_dev_pm_store(struct device *dev,
-+ struct device_attribute *attr,
-+ const char *buf, size_t count)
-+{
-+ char *endp;
-+ int on = simple_strtoul(buf, &endp, 0);
-+ size_t size = endp - buf;
-+ struct em_x270_dev_data *pm_data = dev->platform_data;
-+
-+ pr_info("%s: %s\n", __FUNCTION__, buf);
-+
-+ if (*endp && isspace(*endp))
-+ size++;
-+ if (size != count)
-+ return -EINVAL;
-+
-+ pm_data->set_on(dev, on);
-+
-+ return count;
-+}
-+
-+static DEVICE_ATTR(pwr_on, S_IWUSR | S_IRUGO,
-+ em_x270_dev_pm_show, em_x270_dev_pm_store);
-+
-+static int gprs_is_on(struct device *dev)
-+{
-+ return !!(pxa_gpio_get_value(20));
-+}
-+
-+static int gprs_set_on(struct device *dev, int on)
-+{
-+ pr_info("%s: on = %d\n", __FUNCTION__, on);
-+ if (on) {
-+ pxa_gpio_mode(20 | GPIO_OUT | GPIO_DFLT_HIGH);
-+ mdelay(500);
-+ pxa_gpio_set_value(82, 0);
-+ mdelay(500);
-+ pxa_gpio_mode(82 | GPIO_OUT | GPIO_DFLT_HIGH);
-+ mdelay(1000);
-+ pxa_gpio_set_value(82, 0);
-+ }
-+ else {
-+ pxa_gpio_set_value(20, 0);
-+ pxa_gpio_mode(20 | GPIO_OUT);
-+ }
-+
-+ return 0;
-+}
-+
-+static struct em_x270_dev_data em_x270_gprs_data = {
-+ .is_on = gprs_is_on,
-+ .set_on = gprs_set_on,
-+};
-+
-+static struct platform_device em_x270_gprs = {
-+ .name = "gprs",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &em_x270_gprs_data,
-+ .release = em_x270_dev_release,
-+ },
-+};
-+
-+static int is_wlan_on;
-+
-+static int wlan_is_on(struct device *dev)
-+{
-+ return is_wlan_on;
-+}
-+
-+static int wlan_set_on(struct device *dev, int on)
-+{
-+ if (on) {
-+ /* WLAN power-up sequence */
-+ /* Mask LDO17 and LDO19 tolerance events */
-+ da9030_set_reg(IRQ_MASK_C,
-+ IRQ_MASK_C_LDO19 | IRQ_MASK_C_LDO17);
-+
-+ /* Force I2C control over LDO17, LDO19 */
-+ da9030_set_reg(SLEEP_CONTROL,
-+ APP_SLEEP_CTL_BYPASS_LDO19 |
-+ APP_SLEEP_CTL_BYPASS_LDO17);
-+
-+ /* Turn off LDO17 and LDO19 */
-+ da9030_set_reg(REG_CONTROL_1_17,
-+ RC1_LDO16_EN | RC1_LDO15_EN |
-+ RC1_LDO11_EN | RC1_LDO10_EN | RC1_BUCK2_EN);
-+ da9030_set_reg(REG_CONTROL_2_18, RC2_SIMCP_EN | RC2_LDO18_EN);
-+
-+ /* Set LDO17 voltage to 3V (VCC_WLAN_IO) */
-+ da9030_set_reg(LDO_17_SIMCP0, LDO_17_SIMCP0_LDO17_3V);
-+ mdelay(200);
-+
-+ /* Turn WLAN RF power on */
-+ pxa_gpio_mode(115 | GPIO_OUT | GPIO_DFLT_HIGH);
-+
-+ /* Turn LDO17 on */
-+ da9030_set_reg(REG_CONTROL_1_17,
-+ RC1_LDO17_EN| RC1_LDO16_EN | RC1_LDO15_EN |
-+ RC1_LDO11_EN | RC1_LDO10_EN | RC1_BUCK2_EN);
-+ mdelay(200);
-+
-+ /* Turn on LDO19 */
-+ da9030_set_reg(REG_CONTROL_2_18,
-+ RC2_SIMCP_EN | RC2_LDO18_EN | RC2_LDO19_EN);
-+
-+ }
-+ else {
-+ /* FIXME: implement BGW shutdown */
-+ }
-+ is_wlan_on = on;
-+
-+ return 0;
-+}
-+
-+static struct em_x270_dev_data em_x270_wlan_data = {
-+ .is_on = wlan_is_on,
-+ .set_on = wlan_set_on,
-+};
-+
-+static struct platform_device em_x270_wlan = {
-+ .name = "wlan",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &em_x270_wlan_data,
-+ .release = em_x270_dev_release,
-+ },
-+};
-+
-+static int gps_is_on(struct device *dev)
-+{
-+ int val = da9030_get_reg(REG_CONTROL_1_97);
-+ return !!(val & RC3_LDO3_EN);
-+}
-+
-+static int gps_set_on(struct device *dev, int on)
-+{
-+ int val = da9030_get_reg(REG_CONTROL_1_97);
-+
-+ if (on)
-+ val |= RC3_LDO3_EN;
-+ else
-+ val &= ~RC3_LDO3_EN;
-+ da9030_set_reg(REG_CONTROL_1_97, val);
-+
-+ return 0;
-+}
-+
-+static struct em_x270_dev_data em_x270_gps_data = {
-+ .is_on = gps_is_on,
-+ .set_on = gps_set_on,
-+};
-+
-+static struct platform_device em_x270_gps = {
-+ .name = "gps",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &em_x270_gps_data,
-+ .release = em_x270_dev_release,
-+ },
-+};
-+
-+static int usb_mode;
-+static int usb_host_is_on(struct device *dev)
-+{
-+ return usb_mode;
-+}
-+
-+static int usb_host_set_on(struct device *dev, int on)
-+{
-+ if (on) {
-+ da9030_set_reg(MISC_CONTROLB, MISCB_SESSION_VALID_ENABLE);
-+ da9030_set_reg(USBPUMP,
-+ USB_PUMP_EN_USBVEP |
-+ USB_PUMP_EN_USBVE |
-+ USB_PUMP_USBVE);
-+
-+ /* enable port 2 transiever */
-+ UP2OCR = UP2OCR_HXS | UP2OCR_HXOE;
-+ usb_mode = 1;
-+ }
-+ else {
-+ UP2OCR = UP2OCR_DPPUE | UP2OCR_DPPUBE | UP2OCR_HXOE;
-+ da9030_set_reg(USBPUMP,
-+ USB_PUMP_EN_USBVEP | USB_PUMP_EN_USBVE);
-+ usb_mode = 0;
-+ }
-+
-+ return 0;
-+}
-+
-+static struct em_x270_dev_data em_x270_usb_host_data = {
-+ .is_on = usb_host_is_on,
-+ .set_on = usb_host_set_on,
-+};
-+
-+static struct platform_device em_x270_usb_host = {
-+ .name = "usb_host",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &em_x270_usb_host_data,
-+ .release = em_x270_dev_release,
-+ },
-+};
-+
-+static struct platform_device *em_x270_devices[] = {
-+ &em_x270_gprs,
-+ &em_x270_wlan,
-+ &em_x270_gps,
-+ &em_x270_usb_host,
-+};
-+
-+static struct work_struct usb_work;
-+static void usb_worker(struct work_struct *work)
-+{
-+ usb_host_set_on(NULL, !pxa_gpio_get_value(21));
-+}
-+
-+static irqreturn_t usb_irq_handler(int irq, void *regs)
-+{
-+ schedule_work(&usb_work);
-+
-+ pr_info("%s\n", __FUNCTION__);
-+ return IRQ_HANDLED;
-+}
-+
-+static int em_x270_devices_init(void)
-+{
-+ int i, ret;
-+
-+ for (i = 0; i < ARRAY_SIZE(em_x270_devices); i++ ) {
-+ ret = platform_device_register(em_x270_devices[i]);
-+ if (ret) {
-+ dev_dbg(&em_x270_devices[i]->dev,
-+ "Registration failed: %d\n", ret);
-+ continue;
-+ }
-+
-+ ret = device_create_file(&em_x270_devices[i]->dev,
-+ &dev_attr_pwr_on);
-+ if (ret) {
-+ dev_dbg(&em_x270_devices[i]->dev,
-+ "PWR_ON attribute failed: %d\n", ret);
-+ }
-+
-+ dev_dbg(&em_x270_devices[i]->dev,
-+ "Registered PWR ON attribute\n");
-+ }
-+
-+ /* setup USB detection irq */
-+ INIT_WORK(&usb_work, usb_worker);
-+ set_irq_type(IRQ_GPIO(21), IRQT_BOTHEDGE);
-+ ret = request_irq(IRQ_GPIO(21), usb_irq_handler, IRQF_DISABLED,
-+ "usb detect", 0);
-+ if (ret) {
-+ pr_info("USB device detection disabled\n");
-+ }
-+ else {
-+ schedule_work(&usb_work);
-+ }
-+
-+ return 0;
-+}
-+
-+static void em_x270_devices_exit(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(em_x270_devices); i++ ) {
-+ device_remove_file(&em_x270_devices[i]->dev,
-+ &dev_attr_pwr_on);
-+ platform_device_unregister(em_x270_devices[i]);
-+ }
-+}
-+
-+late_initcall(em_x270_devices_init);
-+module_exit(em_x270_devices_exit);
-+
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_DESCRIPTION("Support for platfrom specific device attributes for EM-X270");
-+MODULE_LICENSE("GPL");
-diff --git a/arch/arm/mach-pxa/em-x270-lcd.c b/arch/arm/mach-pxa/em-x270-lcd.c
-new file mode 100644
-index 0000000..437efe1
---- /dev/null
-+++ b/arch/arm/mach-pxa/em-x270-lcd.c
-@@ -0,0 +1,223 @@
-+/*
-+ * LCD initialization and backlight managemnet for EM-X270
-+ *
-+ * Copyright (C) 2007 CompuLab, Ltd.
-+ * Author: Igor Vaisbein <igor@compulab.co.il>
-+ *
-+ * 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/platform_device.h>
-+#include <linux/da9030.h>
-+#include <linux/delay.h>
-+
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/sharpsl.h>
-+#include <asm/arch/ssp.h>
-+
-+#include "devices.h"
-+
-+#define GPIO87_nPCE_2 87 /* Card Enable for Card Space (PXA27x) */
-+#define GPIO87_nPCE_2_MD (87 | GPIO_ALT_FN_1_IN)
-+#define GPIO87_USB3_1_MD (87 | GPIO_ALT_FN_3_IN)
-+#define GPIO87_SSPTXD2_MD (87 | GPIO_ALT_FN_1_OUT)
-+#define GPIO87_SSFRM2_MD (87 | GPIO_ALT_FN_3_OUT)
-+
-+#define LCCR4 __REG(0x44000010)
-+
-+#define TD035STEE1_LCD_ID 0x2008
-+
-+static void em_x270_set_bl_intensity(int intensity)
-+{
-+ da9030_set_wled((intensity != 0), intensity);
-+}
-+
-+struct corgibl_machinfo em_x270_bl_machinfo = {
-+ .max_intensity = 0x7,
-+ .default_intensity = 0x3,
-+ .limit_mask = 0x1,
-+ .set_bl_intensity = em_x270_set_bl_intensity,
-+};
-+
-+static void em_x270_bl_release(struct device * dev)
-+{
-+
-+}
-+
-+static struct platform_device em_x270_bl = {
-+ .name = "corgi-bl",
-+ .dev = {
-+ .release = em_x270_bl_release,
-+ .parent = &pxa_device_fb.dev,
-+ .platform_data = &em_x270_bl_machinfo,
-+ },
-+ .id = -1,
-+};
-+
-+/*
-+ * Helper functions to access LCD throuhg SPI interface
-+ */
-+static void set_ssp_9bit(void)
-+{
-+ int temp;
-+ SSCR0 = 0xFF208;
-+ SSCR0 = 0xFF288;
-+ SSCR1 = 0x40000018;
-+
-+ while (SSSR & 0x8)
-+ temp = SSDR;
-+}
-+
-+static void set_ssp_18bit(void)
-+{
-+ int temp;
-+ SSCR0 = 0x1FF201;
-+ SSCR0 = 0x1FF281;
-+ SSCR1 = 0x40000018;
-+ while (SSSR & 0x8)
-+ temp = SSDR;
-+}
-+
-+static void set_ssp_rcv(void)
-+{
-+ int temp;
-+ SSCR0 = 0x1FF20F;
-+ SSCR0 = 0x1FF28F;
-+ SSCR1 = 0x40000018;
-+ while (SSSR & 0x8)
-+ temp = SSDR;
-+}
-+
-+static void send_ssp_9bit(unsigned int value)
-+{
-+ int temp;
-+ SSDR = (value);
-+
-+ asm volatile ("mcr p15, 0, r0, c7, c10, 4":::"r0");
-+
-+ if (!(SSSR & 0x4))
-+ while ((SSSR & 0xf00) == 0)
-+ ;
-+
-+ while ((SSSR & 0xf00) != 0)
-+ ;
-+ while (SSSR & 0x10)
-+ ;
-+ while (SSSR & 0x8)
-+ temp = SSDR;
-+}
-+
-+static void send_ssp_18bit(unsigned int value)
-+{
-+ int temp;
-+ SSDR = (value);
-+
-+ asm volatile ("mcr p15, 0, r0, c7, c10, 4":::"r0");
-+
-+ if (!(SSSR & 0x4))
-+ while ((SSSR & 0xf00) == 0)
-+ ;
-+
-+ while ((SSSR & 0xf00) != 0)
-+ ;
-+ while (SSSR & 0x10)
-+ ;
-+ while (SSSR & 0x8)
-+ temp = SSDR;
-+}
-+
-+static unsigned int rcv_ssp_18bit(void)
-+{
-+ SSDR = ((0x04) << 23);
-+ asm volatile ("mcr p15, 0, r0, c7, c10, 4":::"r0");
-+ if (!(SSSR & 0x4))
-+ while ((SSSR & 0xf00) == 0)
-+ ;
-+ while ((SSSR & 0xf00) != 0)
-+ ;
-+ while (SSSR & 0x10)
-+ ;
-+ return SSDR;
-+}
-+
-+/* LCD init sequence */
-+int em_x270_lcd_detect(void)
-+{
-+ unsigned int data;
-+
-+ /* Reset the LCD module */
-+ pxa_gpio_mode(GPIO87_nPCE_2 | GPIO_OUT);
-+ GPCR(GPIO87_nPCE_2) |= GPIO_bit(GPIO87_nPCE_2);
-+ mdelay(75);
-+ GPSR(GPIO87_nPCE_2) |= GPIO_bit(GPIO87_nPCE_2);
-+ mdelay(70);
-+
-+ /* TD035STEE1 LCD_SSP initialization commands */
-+ set_ssp_9bit();
-+ send_ssp_9bit(0x000);
-+ mdelay(5);
-+
-+ send_ssp_9bit(0x000);
-+ mdelay(5);
-+
-+ send_ssp_9bit(0x000);
-+ mdelay(5);
-+
-+ set_ssp_18bit();
-+ send_ssp_18bit(0x17980);
-+ mdelay(5);
-+
-+ send_ssp_18bit(0x17F10);
-+ mdelay(5);
-+
-+ set_ssp_9bit();
-+ send_ssp_9bit(0x011);
-+ mdelay(50);
-+
-+ send_ssp_9bit(0x029);
-+ mdelay(10);
-+
-+ set_ssp_rcv();
-+
-+ /* Check for LCD ID, to enable the back-light */
-+ data = rcv_ssp_18bit();
-+
-+ if ((data & 0xFFFF) != TD035STEE1_LCD_ID)
-+ return -ENODEV;
-+
-+ /* enable backlight */
-+ da9030_set_wled(1, 2);
-+ return 0;
-+}
-+
-+static int em_x270_lcd_init(void)
-+{
-+ int ret;
-+ pr_debug("%s\n", __FUNCTION__);
-+ ret = em_x270_lcd_detect();
-+ if (ret)
-+ return ret;
-+
-+ /* make sure we keep LCCR4 with PCD=0 */
-+ LCCR4 = 0x0;
-+
-+ return platform_device_register(&em_x270_bl);
-+}
-+
-+static void em_x270_lcd_exit(void)
-+{
-+ pr_debug("%s\n", __FUNCTION__);
-+ platform_device_unregister(&em_x270_bl);
-+}
-+
-+late_initcall(em_x270_lcd_init);
-+module_exit(em_x270_lcd_exit);
-+
-+MODULE_DESCRIPTION("EM-X270 backlight and LCD initialization driver");
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_LICENSE("GPL");
-diff --git a/arch/arm/mach-pxa/em-x270-pm.c b/arch/arm/mach-pxa/em-x270-pm.c
-new file mode 100644
-index 0000000..55ba4cd
---- /dev/null
-+++ b/arch/arm/mach-pxa/em-x270-pm.c
-@@ -0,0 +1,892 @@
-+/*
-+ * Support for CompuLab EM-X270 platform power management
-+ *
-+ * Copyright (C) 2007 CompuLab, Ltd.
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * 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/module.h>
-+#include <linux/sysfs.h>
-+#include <linux/pm.h>
-+#include <linux/da9030.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+#include <linux/delay.h>
-+#include <linux/ctype.h>
-+
-+#include <linux/apm-emulation.h>
-+#include <linux/platform_device.h>
-+#include <linux/power_supply.h>
-+
-+#include <linux/debugfs.h>
-+#include <linux/seq_file.h>
-+
-+#include "../../../drivers/i2c/chips/da9030.h"
-+
-+#include <asm/arch/pm.h>
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/pwr-i2c.h>
-+
-+#define DA9030_ADDR 0x92
-+
-+#define EM_X270_BATCHK_TIME_SUSPEND (10*60) /* 10 min */
-+
-+#define VOLTAGE_MAX_DESIGN 4200000 /* 4.2V in uV */
-+#define VOLTAGE_MIN_DESIGN 3000000 /* 3V in uV */
-+
-+#define REG2VOLT(x) ((((x) * 2650) >> 8) + 2650)
-+#define VOLT2REG(x) ((((x) - 2650) << 8) / 2650)
-+
-+#define REG2CURR(x) ((((x) * 24000) >> 8) / 15)
-+
-+#define VCHARGE_MIN_THRESHOLD VOLT2REG(3200)
-+#define VCHARGE_MAX_THRESHOLD VOLT2REG(5500)
-+
-+#define VBAT_LOW_THRESHOLD VOLT2REG(3600)
-+#define VBAT_CRIT_THRESHOLD VOLT2REG(3400)
-+
-+#define VBAT_CHARGE_START VOLT2REG(4100)
-+#define VBAT_CHARGE_STOP VOLT2REG(4200)
-+#define VBAT_CHARGE_RESTART VOLT2REG(4000)
-+
-+#define TBAT_LOW_THRESHOLD 197 /* 0oC */
-+#define TBAT_HIGH_THRESHOLD 78 /* 45oC */
-+#define TBAT_RESUME_THRESHOLD 100 /* 35oC */
-+
-+struct em_x270_charger;
-+
-+struct em_x270_charger_ops {
-+ void (*get_status)(struct em_x270_charger *charger);
-+ void (*set_charge)(struct em_x270_charger *charger, int on);
-+
-+ s32 (*da9030_get_reg)(u32 reg);
-+ s32 (*da9030_set_reg)(u32 reg, u8 val);
-+};
-+
-+struct em_x270_charger {
-+ struct device *dev;
-+
-+ struct power_supply bat;
-+ struct da9030_adc_res adc;
-+ struct delayed_work work;
-+
-+ int interval;
-+
-+ int da9030_status;
-+ int da9030_fault;
-+ int mA;
-+ int mV;
-+ int is_on;
-+
-+ struct em_x270_charger_ops *ops;
-+
-+#ifdef CONFIG_DEBUG_FS
-+ struct dentry *debug_file;
-+#endif
-+};
-+
-+static struct em_x270_charger *the_charger;
-+
-+static unsigned short tbat_readings[] = {
-+ 300, 244, 200, 178, 163, 152, 144, 137, 131,
-+ 126, 122, 118, 114, 111, 108, 105, 103, 101,
-+ 98, 96, 94, 93, 91, 89, 88, 86, 85,
-+ 83, 82, 81, 79, 78, 77, 76, 75, 74,
-+ 73, 72, 71, 70, 69, 68, 67, 67, 66,
-+ 65, 64, 63, 63, 62, 61, 60, 60, 59,
-+ 58, 58, 57, 57, 56, 55, 55, 54, 53,
-+ 53, 52, 52, 51, 51, 50, 50, 49, 49,
-+ 48, 48, 47, 47, 46, 46, 45, 45, 44,
-+ 44, 43, 43, 42, 42, 41, 41, 41, 40,
-+ 40, 39, 39, 38, 38, 38, 37, 37, 36,
-+ 36, 35, 35, 35, 34, 34, 34, 33, 33,
-+ 32, 32, 32, 31, 31, 30, 30, 30, 29,
-+ 29, 29, 28, 28, 28, 27, 27, 26, 26,
-+ 26, 25, 25, 25, 24, 24, 24, 23, 23,
-+ 23, 22, 22, 21, 21, 21, 20, 20, 20,
-+ 19, 19, 19, 18, 18, 18, 17, 17, 17,
-+ 16, 16, 16, 15, 15, 14, 14, 14, 13,
-+ 13, 13, 12, 12, 12, 11, 11, 11, 10,
-+ 10, 10, 9, 9, 8, 8, 8, 7, 7,
-+ 7, 6, 6, 5, 5, 5, 4, 4, 3,
-+ 3, 3, 2, 2, 1, 1, 1, 0, 0,
-+ -1, -1, -1, -2, -2, -3, -3, -4, -4,
-+ -5, -5, -6, -6, -6, -7, -7, -8, -9,
-+ -9, -10, -10, -11, -11, -12, -12, -13, -14,
-+ -14, -15, -16, -16, -17, -18, -18, -19, -20,
-+ -21, -21, -22, -23, -24, -25, -26, -27, -28,
-+ -30, -31, -32, -34, -35, -37, -39, -41, -44,
-+ -47, -50, -56, -64,
-+};
-+
-+static inline int usb_host_on(void)
-+{
-+ return !pxa_gpio_get_value(21);
-+}
-+
-+#ifdef CONFIG_DEBUG_FS
-+
-+static int debug_show(struct seq_file *s, void *data)
-+{
-+ struct em_x270_charger *charger = s->private;
-+
-+ seq_printf(s, "charger is %s\n", charger->is_on ? "on" : "off");
-+ if (charger->da9030_status & CHRG_CHARGER_ENABLE) {
-+ seq_printf(s, "iset = %dmA, vset = %dmV\n",
-+ charger->mA, charger->mV);
-+ }
-+
-+ seq_printf(s, "vbat_res = %d (%dmV)\n",
-+ charger->adc.vbat_res, REG2VOLT(charger->adc.vbat_res));
-+ seq_printf(s, "vbatmin_res = %d (%dmV)\n",
-+ charger->adc.vbatmin_res,
-+ REG2VOLT(charger->adc.vbatmin_res));
-+ seq_printf(s, "vbatmintxon = %d (%dmV)\n",
-+ charger->adc.vbatmintxon,
-+ REG2VOLT(charger->adc.vbatmintxon));
-+ seq_printf(s, "ichmax_res = %d (%dmA)\n",
-+ charger->adc.ichmax_res,
-+ REG2CURR(charger->adc.ichmax_res));
-+ seq_printf(s, "ichmin_res = %d (%dmA)\n",
-+ charger->adc.ichmin_res,
-+ REG2CURR(charger->adc.ichmin_res));
-+ seq_printf(s, "ichaverage_res = %d (%dmA)\n",
-+ charger->adc.ichaverage_res,
-+ REG2CURR(charger->adc.ichaverage_res));
-+ seq_printf(s, "vchmax_res = %d (%dmV)\n",
-+ charger->adc.vchmax_res,
-+ REG2VOLT(charger->adc.vchmax_res));
-+ seq_printf(s, "vchmin_res = %d (%dmV)\n",
-+ charger->adc.vchmin_res,
-+ REG2VOLT(charger->adc.vchmin_res));
-+ seq_printf(s, "tbat_res = %d (%doC)\n", charger->adc.tbat_res,
-+ tbat_readings[charger->adc.tbat_res]);
-+ seq_printf(s, "adc_in4_res = %d\n", charger->adc.adc_in4_res);
-+ seq_printf(s, "adc_in5_res = %d\n", charger->adc.adc_in5_res);
-+
-+ return 0;
-+}
-+
-+static int debug_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, debug_show, inode->i_private);
-+}
-+
-+static const struct file_operations debug_fops = {
-+ .open = debug_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static struct dentry* em_x270_create_debugfs(struct em_x270_charger *charger)
-+{
-+ charger->debug_file = debugfs_create_file("charger", 0666, 0, charger,
-+ &debug_fops);
-+ return charger->debug_file;
-+}
-+
-+static void em_x270_remove_debugfs(struct em_x270_charger *charger)
-+{
-+ debugfs_remove(charger->debug_file);
-+}
-+#else
-+#define em_x270_create_debugfs(x) NULL
-+#define em_x270_remove_debugfs(x) do {} while(0)
-+#endif
-+
-+/*********************************************************************/
-+/* DA9030 access functions for suspend/resume */
-+#define DA_ADDR 0x49
-+static inline s32 __da9030_get_reg(u32 reg)
-+{
-+ pr_info("%s: reg = %d\n", __FUNCTION__, reg);
-+ return pxa_pwr_i2c_reg_read(DA_ADDR, reg);
-+}
-+
-+static inline s32 __da9030_set_reg(u32 reg, u8 val)
-+{
-+ pr_info("%s: reg = %d, val = %d\n", __FUNCTION__, reg, val);
-+ return pxa_pwr_i2c_reg_write(DA_ADDR, reg, val);
-+}
-+
-+/*********************************************************************/
-+/* helpers for charger state monnitor. Different version for stready
-+ * state and suspended system
-+ */
-+static void em_x270_get_charger_status(struct em_x270_charger *charger)
-+{
-+ da9030_get_charger(&charger->is_on, &charger->mA, &charger->mV);
-+ da9030_read_adc(&charger->adc);
-+ charger->da9030_status = da9030_get_status();
-+ charger->da9030_fault = da9030_get_fault_log();
-+}
-+
-+static void em_x270_set_charge(struct em_x270_charger *charger, int on)
-+{
-+ if (on) {
-+ pr_debug("%s: enabling charger\n", __FUNCTION__);
-+ da9030_set_thresholds(TBAT_HIGH_THRESHOLD,
-+ TBAT_RESUME_THRESHOLD,
-+ TBAT_LOW_THRESHOLD,
-+ VBAT_LOW_THRESHOLD);
-+ da9030_set_reg(CCTR_CONTROL, CCTR_SET_8MIN);
-+ da9030_set_charger(1, 1000, 4200);
-+ da9030_set_led(3, 1, 0, 0, 0);
-+ charger->is_on = 1;
-+ }
-+ else {
-+ /* disable charger */
-+ pr_debug("%s: disabling charger\n", __FUNCTION__);
-+ da9030_set_charger(0, 0, 0);
-+ da9030_set_led(3, 0, 0, 0, 0);
-+ charger->is_on = 0;
-+ }
-+}
-+
-+static void em_x270_get_charger_status_suspend(struct em_x270_charger *charger)
-+{
-+ s32 val;
-+
-+ val = __da9030_get_reg(CHARGE_CONTROL);
-+ charger->is_on = (val & CHRG_CHARGER_ENABLE) ? 1 : 0;
-+ charger->mA = ((val >> 3) & 0xf) * 100;
-+ charger->mV = (val & 0x7) * 50 + 4000;
-+
-+ charger->adc.vbat_res = __da9030_get_reg(VBAT_RES);
-+ charger->adc.vchmax_res = __da9030_get_reg(VCHMAX_RES);
-+ charger->adc.vchmin_res = __da9030_get_reg(VCHMIN_RES);
-+ charger->adc.tbat_res = __da9030_get_reg(TBAT_RES);
-+
-+ charger->da9030_status = __da9030_get_reg(STATUS);
-+ charger->da9030_fault = __da9030_get_reg(FAULT_LOG);
-+}
-+
-+static void em_x270_set_charge_suspend(struct em_x270_charger *charger, int on)
-+{
-+ if (on) {
-+ u8 val = 0;
-+ int mA = 1000;
-+ int mV = 4200;
-+
-+ pr_debug("%s: enabling charger\n", __FUNCTION__);
-+ val = CHRG_CHARGER_ENABLE;
-+ val |= (mA / 100) << 3;
-+ val |= (mV - 4000) / 50;
-+
-+ __da9030_set_reg(CCTR_CONTROL, CCTR_SET_8MIN);
-+ __da9030_set_reg(VBATMON, VBAT_LOW_THRESHOLD);
-+ __da9030_set_reg(CHARGE_CONTROL, val);
-+ charger->is_on = 1;
-+ }
-+ else {
-+ /* disable charger */
-+ pr_debug("%s: disabling charger\n", __FUNCTION__);
-+ __da9030_set_reg(CHARGE_CONTROL, 0);
-+ charger->is_on = 0;
-+ }
-+}
-+
-+static struct em_x270_charger_ops em_x270_charger_ops = {
-+ .get_status = em_x270_get_charger_status,
-+ .set_charge = em_x270_set_charge,
-+ .da9030_get_reg = da9030_get_reg,
-+ .da9030_set_reg = da9030_set_reg,
-+};
-+
-+static struct em_x270_charger_ops em_x270_charger_ops_suspend = {
-+ .get_status = em_x270_get_charger_status_suspend,
-+ .set_charge = em_x270_set_charge_suspend,
-+ .da9030_get_reg = __da9030_get_reg,
-+ .da9030_set_reg = __da9030_set_reg,
-+};
-+
-+/*********************************************************************/
-+/* charging state machine */
-+static void em_x270_check_charger_state(struct em_x270_charger *charger)
-+{
-+ charger->ops->get_status(charger);
-+
-+/* we wake or boot with external power on */
-+ if (!charger->is_on) {
-+ if ((charger->da9030_status & STATUS_CHDET) &&
-+ (!usb_host_on()) &&
-+ (charger->adc.vbat_res < VBAT_CHARGE_START)) {
-+ pr_debug("%s: vbat_res <= 4100\n", __FUNCTION__);
-+ charger->ops->set_charge(charger, 1);
-+ }
-+ }
-+ else {
-+ if (charger->adc.vbat_res >= VBAT_CHARGE_STOP) {
-+ pr_debug("%s: vbat_res >= 4200\n", __FUNCTION__);
-+ charger->ops->set_charge(charger, 0);
-+ charger->ops->da9030_set_reg(VBATMON,
-+ VBAT_CHARGE_RESTART);
-+ }
-+ else if (charger->adc.vbat_res > VBAT_LOW_THRESHOLD) {
-+ /* we are charging and passed LOW_THRESH,
-+ so upate DA9030 VBAT threshold
-+ */
-+ pr_debug("%s: vbat_res >= %d\n", __FUNCTION__,
-+ REG2VOLT(VBAT_LOW_THRESHOLD));
-+ charger->ops->da9030_set_reg(VBATMON,
-+ VBAT_LOW_THRESHOLD);
-+ }
-+ if (charger->adc.vchmax_res > VCHARGE_MAX_THRESHOLD ||
-+ charger->adc.vchmin_res < VCHARGE_MIN_THRESHOLD ||
-+ /* Tempreture readings are negative */
-+ charger->adc.tbat_res < TBAT_HIGH_THRESHOLD ||
-+ charger->adc.tbat_res > TBAT_LOW_THRESHOLD ) {
-+ /* disable charger */
-+ pr_info("%s: thresholds fail\n", __FUNCTION__);
-+ charger->ops->set_charge(charger, 0);
-+ }
-+ }
-+}
-+
-+static void em_x270_charging_monitor(struct work_struct *work)
-+{
-+ struct em_x270_charger *charger;
-+
-+ charger = container_of(work, struct em_x270_charger, work.work);
-+
-+ em_x270_check_charger_state(charger);
-+
-+ /* reschedule for the next time */
-+ schedule_delayed_work(&charger->work, charger->interval);
-+}
-+
-+void em_x270_battery_release(struct device * dev)
-+{
-+}
-+
-+struct em_x270_battery_thresh {
-+ int voltage;
-+ int percentage;
-+};
-+
-+static struct em_x270_battery_thresh vbat_ranges[] = {
-+ { 150, 100},
-+ { 149, 99},
-+ { 148, 98},
-+ { 147, 98},
-+ { 146, 97},
-+ { 145, 96},
-+ { 144, 96},
-+ { 143, 95},
-+ { 142, 94},
-+ { 141, 93},
-+ { 140, 92},
-+ { 139, 91},
-+ { 138, 90},
-+ { 137, 90},
-+ { 136, 89},
-+ { 135, 88},
-+ { 134, 88},
-+ { 133, 87},
-+ { 132, 86},
-+ { 131, 85},
-+ { 130, 83},
-+ { 129, 82},
-+ { 128, 81},
-+ { 127, 81},
-+ { 126, 80},
-+ { 125, 75},
-+ { 124, 74},
-+ { 123, 73},
-+ { 122, 70},
-+ { 121, 66},
-+ { 120, 65},
-+ { 119, 64},
-+ { 118, 64},
-+ { 117, 63},
-+ { 116, 59},
-+ { 115, 58},
-+ { 114, 57},
-+ { 113, 57},
-+ { 112, 56},
-+ { 111, 50},
-+ { 110, 49},
-+ { 109, 49},
-+ { 108, 48},
-+ { 107, 48},
-+ { 106, 33},
-+ { 105, 32},
-+ { 104, 32},
-+ { 103, 32},
-+ { 102, 31},
-+ { 101, 16},
-+ { 100, 15},
-+ { 99, 15},
-+ { 98, 15},
-+ { 97, 10},
-+ { 96, 9},
-+ { 95, 7},
-+ { 94, 3},
-+ { 93, 0},
-+};
-+
-+static enum power_supply_property em_x270_bat_props[] = {
-+ POWER_SUPPLY_PROP_STATUS,
-+ POWER_SUPPLY_PROP_HEALTH,
-+ POWER_SUPPLY_PROP_TECHNOLOGY,
-+ POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
-+ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
-+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
-+ POWER_SUPPLY_PROP_CURRENT_AVG,
-+ POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
-+ POWER_SUPPLY_PROP_TEMP,
-+ POWER_SUPPLY_PROP_MANUFACTURER,
-+ POWER_SUPPLY_PROP_MODEL_NAME,
-+};
-+
-+static void em_x270_bat_check_status(struct em_x270_charger *charger,
-+ union power_supply_propval *val)
-+{
-+ /* FIXME: below code is very crude approximation of actual
-+ states, we need to take into account voltage and current
-+ measurements to determine actual charger state */
-+ if (charger->da9030_status & STATUS_CHDET) {
-+ if (!usb_host_on()) {
-+ if (charger->is_on) {
-+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
-+ }
-+ }
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
-+ }
-+}
-+
-+static void em_x270_bat_check_health(struct em_x270_charger *charger,
-+ union power_supply_propval *val)
-+{
-+ if (charger->da9030_fault & FAULT_LOG_OVER_TEMP) {
-+ val->intval = POWER_SUPPLY_HEALTH_OVERHEAT;
-+ }
-+ else if (charger->da9030_fault & FAULT_LOG_VBAT_OVER) {
-+ val->intval = POWER_SUPPLY_HEALTH_OVERVOLTAGE;
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_HEALTH_GOOD;
-+ }
-+}
-+
-+static int vbat_interpolate(int reg)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(vbat_ranges); i++ )
-+ if (vbat_ranges[i].voltage == reg) {
-+ pr_debug("%s: voltage = %d, percentage = %d\n",
-+ __FUNCTION__, vbat_ranges[i].voltage,
-+ vbat_ranges[i].percentage);
-+ return vbat_ranges[i].percentage;
-+ }
-+
-+ return 0;
-+}
-+
-+static int em_x270_bat_get_property(struct power_supply *psy,
-+ enum power_supply_property psp,
-+ union power_supply_propval *val)
-+{
-+ u32 reg;
-+ struct em_x270_charger *charger;
-+ charger = container_of(psy, struct em_x270_charger, bat);
-+
-+ switch(psp) {
-+ case POWER_SUPPLY_PROP_STATUS:
-+ em_x270_bat_check_status(charger, val);
-+ break;
-+ case POWER_SUPPLY_PROP_HEALTH:
-+ em_x270_bat_check_health(charger, val);
-+ break;
-+ case POWER_SUPPLY_PROP_TECHNOLOGY:
-+ val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
-+ val->intval = VOLTAGE_MAX_DESIGN;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
-+ val->intval = VOLTAGE_MIN_DESIGN;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
-+ reg = charger->adc.vbat_res;
-+ /* V = (reg / 256) * 2.65 + 2.65 (V) */
-+ val->intval = ((reg * 2650000) >> 8) + 2650000;
-+ break;
-+ case POWER_SUPPLY_PROP_CURRENT_AVG:
-+ reg = charger->adc.ichaverage_res;
-+ val->intval = reg; /* reg */
-+ break;
-+ case POWER_SUPPLY_PROP_CAPACITY:
-+ reg = charger->adc.vbat_res;
-+ val->intval = vbat_interpolate(reg);
-+ break;
-+ case POWER_SUPPLY_PROP_TEMP:
-+ reg = charger->adc.tbat_res;
-+ val->intval = tbat_readings[reg];
-+ break;
-+ case POWER_SUPPLY_PROP_MANUFACTURER:
-+ val->strval = "MaxPower";
-+ pr_debug("%s: MFG = %s\n", __FUNCTION__, val->strval);
-+ break;
-+ case POWER_SUPPLY_PROP_MODEL_NAME:
-+ val->strval = "LP555597P6H-FPS";
-+ pr_debug("%s: MODEL = %s\n", __FUNCTION__, val->strval);
-+ break;
-+ default: break;
-+ }
-+
-+ return 0;
-+}
-+
-+static void em_x270_setup_battery(struct power_supply *bat)
-+{
-+ bat->name = "em-x270-battery";
-+ bat->type = POWER_SUPPLY_TYPE_BATTERY;
-+ bat->properties = em_x270_bat_props;
-+ bat->num_properties = ARRAY_SIZE(em_x270_bat_props);
-+ bat->get_property = em_x270_bat_get_property;
-+ bat->use_for_apm = 1;
-+};
-+
-+static void em_x270_chiover_callback(int event, void *_charger)
-+{
-+ /* disable charger */
-+ struct em_x270_charger *charger = _charger;
-+/* pr_info("%s\n", __FUNCTION__); */
-+ em_x270_set_charge(charger, 0);
-+}
-+
-+static void em_x270_tbat_callback(int event, void *_charger)
-+{
-+ /* disable charger */
-+ struct em_x270_charger *charger = _charger;
-+/* pr_info("%s\n", __FUNCTION__); */
-+ em_x270_set_charge(charger, 0);
-+}
-+
-+static void em_x270_vbat_callback(int event, void *_charger)
-+{
-+ struct em_x270_charger *charger = _charger;
-+ da9030_read_adc(&charger->adc);
-+
-+ if (!charger->is_on) {
-+ if (charger->adc.vbat_res < VBAT_LOW_THRESHOLD) {
-+ /* set VBAT threshold for critical */
-+ da9030_set_reg(VBATMON, VBAT_CRIT_THRESHOLD);
-+ da9030_set_reg(VBATMON_1, VBAT_CRIT_THRESHOLD);
-+ apm_queue_event(APM_LOW_BATTERY);
-+ }
-+ else if (charger->adc.vbat_res < VBAT_CRIT_THRESHOLD) {
-+ /* notify the system of battery critical */
-+ apm_queue_event(APM_CRITICAL_SUSPEND);
-+ }
-+ }
-+}
-+
-+static void em_x270_chdet_callback(int event, void *_charger)
-+{
-+ struct em_x270_charger *charger = _charger;
-+ int status = da9030_get_status();
-+ pr_info("%s\n", __FUNCTION__);
-+
-+/* em_x270_check_charger_state(charger); */
-+
-+ /* check if we have "real" charger or our own USB pump */
-+ if (!usb_host_on())
-+ em_x270_set_charge(charger, !!(status & CHRG_CHARGER_ENABLE));
-+}
-+
-+static int em_x270_battery_probe(struct platform_device *pdev)
-+{
-+ struct em_x270_charger *charger;
-+
-+ pr_debug("%s\n", __FUNCTION__);
-+ charger = kzalloc(sizeof(*charger), GFP_KERNEL);
-+ if (charger == NULL) {
-+ return -ENOMEM;
-+ }
-+
-+ the_charger = charger;
-+
-+ charger->dev = &pdev->dev;
-+
-+ charger->ops = &em_x270_charger_ops;
-+
-+ charger->interval = 10 * HZ; /* 10 seconds between monotor runs */
-+ em_x270_setup_battery(&charger->bat);
-+
-+ platform_set_drvdata(pdev, charger);
-+
-+ da9030_enable_adc();
-+
-+ INIT_DELAYED_WORK(&charger->work, em_x270_charging_monitor);
-+ schedule_delayed_work(&charger->work, charger->interval);
-+
-+ charger->debug_file = em_x270_create_debugfs(charger);
-+
-+ em_x270_setup_battery(&charger->bat);
-+
-+ da9030_register_callback(DA9030_IRQ_CHDET,
-+ em_x270_chdet_callback,
-+ charger);
-+ da9030_register_callback(DA9030_IRQ_VBATMON,
-+ em_x270_vbat_callback,
-+ charger);
-+
-+ /* critical condition events */
-+ da9030_register_callback(DA9030_IRQ_CHIOVER,
-+ em_x270_chiover_callback,
-+ charger);
-+ da9030_register_callback(DA9030_IRQ_TBAT,
-+ em_x270_tbat_callback,
-+ charger);
-+
-+ da9030_set_thresholds(TBAT_HIGH_THRESHOLD,
-+ TBAT_RESUME_THRESHOLD,
-+ TBAT_LOW_THRESHOLD,
-+ VBAT_LOW_THRESHOLD);
-+
-+ power_supply_register(&pdev->dev, &charger->bat);
-+
-+ return 0;
-+}
-+
-+static int em_x270_battery_remove(struct platform_device *dev)
-+{
-+ struct em_x270_charger *charger = platform_get_drvdata(dev);
-+
-+ pr_debug("%s\n", __FUNCTION__);
-+ em_x270_remove_debugfs(charger);
-+ cancel_delayed_work(&charger->work);
-+ power_supply_unregister(&charger->bat);
-+
-+ kfree(charger);
-+ the_charger = NULL;
-+
-+ return 0;
-+}
-+
-+static int em_x270_battery_suspend(struct platform_device *pdev,
-+ pm_message_t state)
-+{
-+ pr_info("%s\n", __FUNCTION__);
-+ da9030_set_reg(REG_CONTROL_1_97, RC3_BUCK_EN | RC3_LDO6_EN);
-+ da9030_set_reg(REG_CONTROL_2_98, 0);
-+ da9030_set_reg(REG_CONTROL_2_18,RC2_LDO18_EN);
-+ da9030_set_reg(REG_CONTROL_1_17,
-+ RC1_LDO16_EN | RC1_LDO15_EN | RC1_BUCK2_EN);
-+ da9030_set_reg(WLED_CONTROL, 0);
-+
-+ da9030_set_reg(LED_1_CONTROL, 0);
-+ da9030_set_reg(LED_4_CONTROL, 0);
-+
-+ return 0;
-+}
-+
-+extern int em_x270_lcd_detect(void);
-+static int em_x270_battery_resume(struct platform_device *pdev)
-+{
-+ pr_info("%s\n", __FUNCTION__);
-+
-+ da9030_set_reg(LED_1_CONTROL, 0xff);
-+ da9030_set_reg(LED_4_CONTROL, 0xff);
-+
-+ da9030_set_reg(REG_CONTROL_1_97,
-+ RC3_BUCK_EN | RC3_LDO1_EN | RC3_LDO2_EN |
-+ RC3_LDO3_EN | RC3_LDO6_EN | RC3_LDO7_EN);
-+ da9030_set_reg(REG_CONTROL_2_98,
-+ RC4_SIMCP_ENABLE | RC4_LDO11_EN |
-+ RC4_LDO9_EN | RC4_LDO8_EN);
-+ da9030_set_reg(REG_CONTROL_2_18,
-+ RC2_SIMCP_EN | RC2_LDO18_EN | RC2_LDO19_EN);
-+ da9030_set_reg(REG_CONTROL_1_17,
-+ RC1_LDO17_EN| RC1_LDO16_EN | RC1_LDO15_EN |
-+ RC1_LDO11_EN | RC1_LDO10_EN | RC1_BUCK2_EN);
-+
-+ if (em_x270_lcd_detect() != 0)
-+ pr_info("%s: LCD resume failed\n", __FUNCTION__);
-+
-+ return 0;
-+}
-+
-+static struct platform_driver em_x270_battery_driver = {
-+ .driver = {
-+ .name = "em-x270-battery",
-+ .owner = THIS_MODULE,
-+ },
-+ .probe = em_x270_battery_probe,
-+ .remove = em_x270_battery_remove,
-+
-+ .suspend_late = em_x270_battery_suspend,
-+ .resume_early = em_x270_battery_resume,
-+};
-+
-+/**************************************************************************/
-+/* global patform power management */
-+/**************************************************************************/
-+/* suspend/resume button */
-+static irqreturn_t em_x270_suspend_irq(int irq, void *data)
-+{
-+ apm_queue_event(APM_USER_SUSPEND);
-+ return IRQ_HANDLED;
-+}
-+
-+static void em_x270_goto_sleep(suspend_state_t state,
-+ unsigned long alarm_time,
-+ unsigned int alarm_enable)
-+{
-+ pr_info("%s\n", __FUNCTION__);
-+
-+ the_charger->ops = &em_x270_charger_ops_suspend;
-+
-+ RTSR &= RTSR_ALE;
-+ RTAR = RCNR + EM_X270_BATCHK_TIME_SUSPEND;
-+
-+ pxa_pm_enter(state);
-+}
-+
-+static int em_x270_enter_suspend(unsigned long alarm_time,
-+ unsigned int alarm_enable)
-+{
-+ s32 status = 0;
-+ s32 event_a, event_b;
-+ int ret;
-+ int retry = 10;
-+ pr_info("%s\n", __FUNCTION__);
-+
-+ /* make sure power I2C state is consistent */
-+ PWRICR &= ~ICR_IUE;
-+
-+ if ((PEDR & PWER_GPIO1)) {
-+ /* button pressed */
-+ /* clear pending event to avoid interrupt*/
-+ PEDR &= ~PWER_GPIO1;
-+ GEDR0 &= ~GPIO_bit(1);
-+
-+ ret = 0;
-+ }
-+ else if ((PEDR & PWER_RTC)) {
-+ PEDR &= ~PWER_RTC;
-+ pr_debug("%s: timer alarm\n", __FUNCTION__);
-+ em_x270_check_charger_state(the_charger);
-+ ret = 1;
-+ }
-+ else if ((PEDR & PWER_GPIO0)) {
-+ PEDR &= ~PWER_GPIO0;
-+ GEDR0 &= ~GPIO_bit(0);
-+
-+ /* we woke up because of DA9030 event */
-+ do {
-+ status = the_charger->ops->da9030_get_reg(STATUS);
-+ udelay(1000);
-+ } while (status < 0 && retry--);
-+
-+ the_charger->da9030_status = status;
-+ event_a = the_charger->ops->da9030_get_reg(EVENT_A);
-+ event_b = the_charger->ops->da9030_get_reg(EVENT_B);
-+
-+ pr_info("%s: DA9030 wakeup: status: %x, ev_a: %x, ev_b: %x\n",
-+ __FUNCTION__, the_charger->da9030_status,
-+ event_a, event_b);
-+
-+/* if ((the_charger->da9030_status & STATUS_CHDET)) { */
-+ if (event_a & EVENT_A_CHDET) {
-+ pr_info("%s: EVENT_A_CHDET\n", __FUNCTION__);
-+ em_x270_check_charger_state(the_charger);
-+ }
-+ else {
-+ pr_info("%s: What the hell?\n", __FUNCTION__);
-+ }
-+
-+ ret = 1;
-+ }
-+ else {
-+ /* wake up is not DA9030, so continue and let battery
-+ driver check the charger state */
-+ ret = 0;
-+ }
-+
-+ /* get back to sleep */
-+ if (ret)
-+ em_x270_goto_sleep(PM_SUSPEND_MEM, alarm_time, alarm_enable);
-+
-+ return ret;
-+}
-+
-+static int em_x270_pm_enter(suspend_state_t state)
-+{
-+ unsigned long alarm_time = RTAR;
-+ unsigned int alarm_status = ((RTSR & RTSR_ALE) != 0);
-+
-+ /* pre-suspend */
-+ pr_info("suspending emma\n");
-+ pxa_gpio_mode(38 | GPIO_OUT | GPIO_DFLT_HIGH);
-+
-+ em_x270_goto_sleep(state, alarm_time, alarm_status);
-+
-+ /* check if we were resumed because of charger events */
-+ while (em_x270_enter_suspend(alarm_time, alarm_status))
-+ {}
-+
-+ /* make sure power I2C state is consistent */
-+ PWRICR &= ~ICR_IUE;
-+
-+ /* resume */
-+ pr_info("emma is resumed\n");
-+ the_charger->ops = &em_x270_charger_ops;
-+
-+ return 0;
-+}
-+
-+static struct pm_ops em_x270_pm_ops = {
-+ .enter = em_x270_pm_enter,
-+ .valid = pm_valid_only_mem,
-+};
-+
-+static int em_x270_pm_init(void)
-+{
-+ int ret;
-+ pm_set_ops(&em_x270_pm_ops);
-+
-+ set_irq_type(IRQ_GPIO(1), IRQT_RISING);
-+
-+ ret = platform_driver_register(&em_x270_battery_driver);
-+ if (ret)
-+ return ret;
-+
-+ ret = request_irq(IRQ_GPIO(1), em_x270_suspend_irq, IRQF_DISABLED,
-+ "suspend button", 0);
-+ if (ret) {
-+ platform_driver_unregister(&em_x270_battery_driver);
-+ }
-+
-+ return ret;
-+}
-+
-+static void em_x270_pm_exit(void)
-+{
-+ free_irq(IRQ_GPIO(1), em_x270_suspend_irq);
-+ platform_driver_unregister(&em_x270_battery_driver);
-+}
-+
-+/* make sure I2C is already running */
-+late_initcall(em_x270_pm_init);
-+module_exit(em_x270_pm_exit);
-+
-+MODULE_DESCRIPTION("EM-X270 power manager");
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_LICENSE("GPL");
-diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
-index 3d0ad50..402d792 100644
---- a/arch/arm/mach-pxa/em-x270.c
-+++ b/arch/arm/mach-pxa/em-x270.c
-@@ -18,20 +18,26 @@
- #include <linux/mtd/nand.h>
- #include <linux/mtd/partitions.h>
-
--#include <asm/mach-types.h>
-+#include <linux/i2c.h>
-+#include <linux/input.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/ohci.h>
- #include <asm/arch/mmc.h>
-+#include <asm/arch/pxa27x_keyboard.h>
- #include <asm/arch/bitfield.h>
-
-+#include <asm/arch/udc.h>
-+
-+#include <asm/arch/sharpsl.h>
-+
- #include "generic.h"
-
- /* GPIO IRQ usage */
--#define EM_X270_MMC_PD (105)
- #define EM_X270_ETHIRQ IRQ_GPIO(41)
- #define EM_X270_MMC_IRQ IRQ_GPIO(13)
-
-@@ -213,6 +219,68 @@ static struct platform_device em_x270_nand = {
- }
- };
-
-+/* DA9030 */
-+static struct i2c_board_info em_x270_pmic_info = {
-+ .driver_name = "da9030",
-+ .type = "pmic",
-+ .addr = 0x49,
-+ .irq = IRQ_GPIO(0),
-+};
-+
-+/* Keypad */
-+/* The Demo KeyPad has the following mapping:
-+ * (0,0) (1,2) (2,1)
-+ * (0,2) (1,1) (2,0)
-+ * (0,1) (1,0) (2,2)
-+ */
-+static struct pxa27x_keyboard_platform_data em_x270_kbd = {
-+ .nr_rows = 3,
-+ .nr_cols = 3,
-+ .keycodes = {
-+ { /* row 0 */
-+ -1,
-+ -1,
-+ KEY_LEFT,
-+ },
-+ { /* row 1 */
-+ KEY_UP,
-+ KEY_ENTER,
-+ KEY_DOWN
-+ },
-+ { /* row 2 */
-+ KEY_RIGHT,
-+ -1,
-+ -1
-+ },
-+ },
-+ .gpio_modes = {
-+ (100 | GPIO_ALT_FN_1_IN),
-+ (101 | GPIO_ALT_FN_1_IN),
-+ (102 | GPIO_ALT_FN_1_IN),
-+ (103 | GPIO_ALT_FN_2_OUT),
-+ (104 | GPIO_ALT_FN_2_OUT),
-+ (105 | GPIO_ALT_FN_2_OUT),
-+ },
-+};
-+
-+static struct platform_device em_x270_pxa_keypad = {
-+ .name = "pxa27x-keyboard",
-+ .id = -1,
-+ .dev = {
-+ .platform_data = &em_x270_kbd,
-+ },
-+};
-+
-+static struct platform_device em_x270_battery_device = {
-+ .name = "em-x270-battery",
-+ .id = -1,
-+};
-+
-+static struct platform_device em_x270_led_device = {
-+ .name = "em-x270-led",
-+ .id = -1,
-+};
-+
- /* platform devices */
- static struct platform_device *platform_devices[] __initdata = {
- &em_x270_dm9k,
-@@ -220,6 +288,9 @@ static struct platform_device *platform_devices[] __initdata = {
- &em_x270_ts,
- &em_x270_rtc,
- &em_x270_nand,
-+ &em_x270_pxa_keypad,
-+ &em_x270_battery_device,
-+ &em_x270_led_device,
- };
-
-
-@@ -241,6 +312,33 @@ static struct pxaohci_platform_data em_x270_ohci_platform_data = {
- .init = em_x270_ohci_init,
- };
-
-+/*
-+ * USB Client (Gadget/UDC)
-+ */
-+static void em_x270_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_HXS | UP2OCR_HXOE; */
-+ //UP2OCR = UP2OCR_HXOE | UP2OCR_DMPUE | UP2OCR_DMPUBE;
-+ break;
-+ }
-+}
-+
-+static int em_x270_udc_detect(void)
-+{
-+ return 1;
-+}
-+
-+static struct pxa2xx_udc_mach_info em_x270_udc_info __initdata = {
-+ .udc_is_connected = em_x270_udc_detect,
-+ .udc_command = em_x270_udc_command,
-+};
-+
-+
-
- static int em_x270_mci_init(struct device *dev,
- irq_handler_t em_x270_detect_int,
-@@ -256,9 +354,6 @@ static int em_x270_mci_init(struct device *dev,
- pxa_gpio_mode(GPIO110_MMCDAT2_MD);
- pxa_gpio_mode(GPIO111_MMCDAT3_MD);
-
-- /* EM-X270 uses GPIO13 as SD power enable */
-- pxa_gpio_mode(EM_X270_MMC_PD | GPIO_OUT);
--
- err = request_irq(EM_X270_MMC_IRQ, em_x270_detect_int,
- IRQF_DISABLED | IRQF_TRIGGER_FALLING,
- "MMC card detect", data);
-@@ -313,12 +408,19 @@ static struct pxafb_mach_info em_x270_lcd = {
- .num_modes = 1,
- .cmap_inverse = 0,
- .cmap_static = 0,
-- .lccr0 = LCCR0_PAS,
-- .lccr3 = LCCR3_PixClkDiv(0x01) | LCCR3_Acb(0xff),
-+
-+ .lccr0 = LCCR0_Act,
-+ .lccr3 = LCCR3_PixFlEdg,
- };
-
- static void __init em_x270_init(void)
- {
-+ /* register PMIC */
-+ i2c_register_board_info(1, &em_x270_pmic_info, 1);
-+
-+ /* setup DA9030 irq */
-+ set_irq_type(IRQ_GPIO(0), IRQT_FALLING);
-+
- /* setup LCD */
- set_pxa_fb_info(&em_x270_lcd);
-
-@@ -329,6 +431,8 @@ static void __init em_x270_init(void)
- pxa_set_mci_info(&em_x270_mci_platform_data);
- pxa_set_ohci_info(&em_x270_ohci_platform_data);
-
-+ pxa_set_udc_info(&em_x270_udc_info);
-+
- /* setup STUART GPIOs */
- pxa_gpio_mode(GPIO46_STRXD_MD);
- pxa_gpio_mode(GPIO47_STTXD_MD);
-@@ -341,9 +445,16 @@ static void __init em_x270_init(void)
-
- /* Setup interrupt for dm9000 */
- set_irq_type(EM_X270_ETHIRQ, IRQT_RISING);
-+
-+ PCFR = 0x6;
-+ PSLR = 0xff400000;
-+ PMCR = 0x00000005;
-+ PWER = 0x80000003;
-+ PFER = 0x00000003;
-+ PRER = 0x00000000;
- }
-
--MACHINE_START(EM_X270, "Compulab EM-x270")
-+MACHINE_START(EM_X270, "Compulab EM-X270")
- .boot_params = 0xa0000100,
- .phys_io = 0x40000000,
- .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
-diff --git a/arch/arm/mach-pxa/pwr-i2c.c b/arch/arm/mach-pxa/pwr-i2c.c
-new file mode 100644
-index 0000000..8a501c4
---- /dev/null
-+++ b/arch/arm/mach-pxa/pwr-i2c.c
-@@ -0,0 +1,539 @@
-+/*
-+ * (C) Copyrihgt 2007 CompuLab, Ltd.
-+ * Mike Rapoport <mike@compulab.co.il>
-+ * Adaptation of U-Boot I2C driver for PXA.
-+ *
-+ * (C) Copyright 2000
-+ * Paolo Scaffardi, AIRVENT SAM s.p.a - RIMINI(ITALY), arsenio@tin.it
-+ *
-+ * (C) Copyright 2000 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
-+ * Marius Groeger <mgroeger@sysgo.de>
-+ *
-+ * (C) Copyright 2003 Pengutronix e.K.
-+ * Robert Schwebel <r.schwebel@pengutronix.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
-+ *
-+ * Back ported to the 8xx platform (from the 8260 platform) by
-+ * Murray.Jensen@cmst.csiro.au, 27-Jan-01.
-+ */
-+
-+/* #define DEBUG */
-+
-+#include <linux/kernel.h>
-+#include <linux/delay.h>
-+#include <linux/module.h>
-+#include <linux/jiffies.h>
-+
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/pwr-i2c.h>
-+
-+#define I2C_ICR_INIT (ICR_BEIE | ICR_IRFIE | ICR_ITEIE | ICR_GCD | ICR_SCLE)
-+#define I2C_ISR_INIT 0x7FF
-+
-+/* Shall the current transfer have a start/stop condition? */
-+#define I2C_COND_NORMAL 0
-+#define I2C_COND_START 1
-+#define I2C_COND_STOP 2
-+
-+/* Shall the current transfer be ack/nacked or being waited for it? */
-+#define I2C_ACKNAK_WAITACK 1
-+#define I2C_ACKNAK_SENDACK 2
-+#define I2C_ACKNAK_SENDNAK 4
-+
-+/* Specify who shall transfer the data (master or slave) */
-+#define I2C_READ 0
-+#define I2C_WRITE 1
-+
-+/* All transfers are described by this data structure */
-+struct i2c_msg {
-+ u8 condition;
-+ u8 acknack;
-+ u8 direction;
-+ u8 data;
-+};
-+
-+/**
-+ * pxa_pwr_i2c_transfer: - reset the host controller
-+ *
-+ */
-+/* static void pxa_pwr_i2c_reset(void) */
-+/* { */
-+/* int i; */
-+
-+/* /\* CKEN |= CKEN_PWRI2C; *\/ */
-+/* /\* PWRICR |= PCFR_PI2C_EN; *\/ */
-+
-+/* /\* /\\* delay 250ms *\\/ *\/ */
-+/* /\* for (i = 0; i < 250; i++) *\/ */
-+/* /\* udelay(1000); *\/ */
-+
-+/* /\* PWRICR &= ~(ICR_MA | ICR_START | ICR_STOP); *\/ */
-+/* /\* PWRICR |= ICR_UR; *\/ */
-+/* /\* PWRISR = 0x7ff; *\/ */
-+
-+/* /\* PWRICR &= ~ICR_UR; *\/ */
-+/* /\* PWRICR = ICR_GCD | ICR_SCLE; *\/ */
-+/* /\* PWRICR |= ICR_IUE; *\/ */
-+/* /\* PWRICR |= 0x8000; *\/ */
-+
-+/* /\* udelay(1000); *\/ */
-+
-+/* return; */
-+
-+/* PWRICR &= ~ICR_IUE; /\* disable unit *\/ */
-+/* PWRICR |= ICR_UR; /\* reset the unit *\/ */
-+/* udelay(100); */
-+/* PWRICR &= ~ICR_IUE; /\* disable unit *\/ */
-+
-+/* CKEN |= CKEN_PWRI2C; */
-+/* PCFR |= PCFR_PI2C_EN; */
-+
-+/* PWRICR = I2C_ICR_INIT; /\* set control register values *\/ */
-+/* PWRISR = I2C_ISR_INIT; /\* set clear interrupt bits *\/ */
-+/* PWRICR |= ICR_IUE; /\* enable unit *\/ */
-+/* udelay(100); */
-+/* } */
-+
-+static void pwr_i2c_abort()
-+{
-+ unsigned long timeout = 250000;
-+ unsigned long time = 0;
-+
-+ while ((time < timeout) && (PWRIBMR & 0x1) == 0) {
-+ unsigned long icr = PWRICR;
-+
-+ icr &= ~ICR_START;
-+ icr |= ICR_ACKNAK | ICR_STOP | ICR_TB;
-+
-+ PWRICR = icr;
-+
-+ udelay(1000);
-+ time += 1000;
-+ }
-+
-+ PWRICR &= ~(ICR_MA | ICR_START | ICR_STOP);
-+}
-+
-+static void pxa_pwr_i2c_reset(void)
-+{
-+ pr_debug("Resetting I2C Controller Unit\n");
-+
-+ /* abort any transfer currently under way */
-+ pwr_i2c_abort();
-+
-+ /* reset according to 9.8 */
-+ PWRICR = ICR_UR;
-+ PWRISR = I2C_ISR_INIT;
-+ PWRISR &= ~ICR_UR;
-+
-+ /* set control register values */
-+ PWRICR = I2C_ICR_INIT;
-+
-+ /* enable unit */
-+ PWRICR |= ICR_IUE;
-+ udelay(100);
-+
-+/* CKEN |= CKEN_PWRI2C; */
-+/* PCFR |= PCFR_PI2C_EN; */
-+}
-+
-+/**
-+ * i2c_isr_set_cleared: - wait until certain bits of the I2C status register
-+ * are set and cleared
-+ *
-+ * @return: 1 in case of success, 0 means timeout (no match within 10 ms).
-+ */
-+static int pxa_pwr_i2c_isr_set_cleared(unsigned long set_mask,
-+ unsigned long cleared_mask)
-+{
-+ int timeout = 10000;
-+
-+ while (((PWRISR & set_mask) != set_mask)
-+ || ((PWRISR & cleared_mask) != 0)) {
-+ udelay(10);
-+ if (timeout-- < 0)
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+
-+/**
-+ * pxa_pwr_i2c_transfer: - Transfer one byte over the i2c bus
-+ *
-+ * This function can tranfer a byte over the i2c bus in both directions.
-+ * It is used by the public API functions.
-+ *
-+ * @return: 0: transfer successful
-+ * -EINVAL: message is empty
-+ * -ETIMEDOUT: transmit timeout
-+ * -E: ACK missing
-+ * -ETIMEDOUT: receive timeout
-+ * -EINVAL: illegal parameters
-+ * -EBUSY: bus is busy and couldn't be aquired
-+ */
-+int pxa_pwr_i2c_transfer(struct i2c_msg *msg)
-+{
-+ int ret;
-+
-+ if (!msg)
-+ goto transfer_error_msg_empty;
-+
-+ switch (msg->direction) {
-+ case I2C_WRITE:
-+ /* check if bus is not busy */
-+/* if (!pxa_pwr_i2c_isr_set_cleared(0, (ISR_IBB | ISR_UB))) */
-+/* goto transfer_error_bus_busy; */
-+
-+ /* start transmission */
-+ PWRICR &= ~ICR_START;
-+ PWRICR &= ~ICR_STOP;
-+ PWRIDBR = msg->data;
-+ if (msg->condition == I2C_COND_START)
-+ PWRICR |= ICR_START;
-+ if (msg->condition == I2C_COND_STOP)
-+ PWRICR |= ICR_STOP;
-+ if (msg->acknack == I2C_ACKNAK_SENDNAK)
-+ PWRICR |= ICR_ACKNAK;
-+ if (msg->acknack == I2C_ACKNAK_SENDACK)
-+ PWRICR &= ~ICR_ACKNAK;
-+ PWRICR &= ~ICR_ALDIE;
-+ PWRICR |= ICR_TB;
-+
-+ /* transmit register empty? */
-+ if (!pxa_pwr_i2c_isr_set_cleared(ISR_ITE, 0))
-+ goto transfer_error_transmit_timeout;
-+
-+ /* clear 'transmit empty' state */
-+ PWRISR |= ISR_ITE;
-+
-+ /* wait for ACK from slave */
-+ if (msg->acknack == I2C_ACKNAK_WAITACK)
-+ if (!pxa_pwr_i2c_isr_set_cleared(0, ISR_ACKNAK))
-+ goto transfer_error_ack_missing;
-+ break;
-+ case I2C_READ:
-+ /* check if bus is not busy */
-+/* if (!pxa_pwr_i2c_isr_set_cleared(0, ISR_IBB)) */
-+/* goto transfer_error_bus_busy; */
-+
-+ /* start receive */
-+ PWRICR &= ~ICR_START;
-+ PWRICR &= ~ICR_STOP;
-+ if (msg->condition == I2C_COND_START)
-+ PWRICR |= ICR_START;
-+ if (msg->condition == I2C_COND_STOP)
-+ PWRICR |= ICR_STOP;
-+ if (msg->acknack == I2C_ACKNAK_SENDNAK)
-+ PWRICR |= ICR_ACKNAK;
-+ if (msg->acknack == I2C_ACKNAK_SENDACK)
-+ PWRICR &= ~ICR_ACKNAK;
-+ PWRICR &= ~ICR_ALDIE;
-+ PWRICR |= ICR_TB;
-+
-+ /* receive register full? */
-+ if (!pxa_pwr_i2c_isr_set_cleared(ISR_IRF, 0))
-+ goto transfer_error_receive_timeout;
-+
-+ msg->data = PWRIDBR;
-+
-+ /* clear 'receive empty' state */
-+ PWRISR |= ISR_IRF;
-+
-+ break;
-+ default:
-+ goto transfer_error_illegal_param;
-+
-+ }
-+
-+ return 0;
-+
-+transfer_error_msg_empty:
-+ pr_debug("%s: error: 'msg' is empty\n", __FUNCTION__);
-+ ret = -1;
-+ goto i2c_transfer_finish;
-+
-+transfer_error_transmit_timeout:
-+ pr_debug("%s: error: transmit timeout\n", __FUNCTION__);
-+ ret = -2;
-+ goto i2c_transfer_finish;
-+
-+transfer_error_ack_missing:
-+ pr_debug("%s: error: ACK missing\n", __FUNCTION__);
-+ ret = -3;
-+ goto i2c_transfer_finish;
-+
-+transfer_error_receive_timeout:
-+ pr_debug("%s: error: receive timeout\n", __FUNCTION__);
-+ ret = -4;
-+ goto i2c_transfer_finish;
-+
-+transfer_error_illegal_param:
-+ pr_debug("%s: error: illegal parameters\n", __FUNCTION__);
-+ ret = -5;
-+ goto i2c_transfer_finish;
-+
-+transfer_error_bus_busy:
-+ pr_debug("%s: error: bus is busy\n", __FUNCTION__);
-+ ret = -6;
-+ goto i2c_transfer_finish;
-+
-+i2c_transfer_finish:
-+ pr_debug("%s: ISR: 0x%04x\n", __FUNCTION__, ISR);
-+ return ret;
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+/* API Functions */
-+/* ------------------------------------------------------------------------ */
-+/**
-+ * i2c_probe: - Test if a chip answers for a given i2c address
-+ *
-+ * @chip: address of the chip which is searched for
-+ * @return: 0 if a chip was found, -1 otherwhise
-+ */
-+int pxa_pwr_i2c_probe(u8 chip)
-+{
-+ struct i2c_msg msg;
-+ int ret;
-+
-+ pxa_pwr_i2c_reset();
-+
-+ msg.condition = I2C_COND_START;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = (chip << 1) + 1;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ msg.condition = I2C_COND_STOP;
-+ msg.acknack = I2C_ACKNAK_SENDNAK;
-+ msg.direction = I2C_READ;
-+ msg.data = 0x00;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ return 0;
-+}
-+
-+/**
-+ * i2c_read: - Read multiple bytes from an i2c device
-+ *
-+ * The higher level routines take into account that this function is only
-+ * called with len < page length of the device (see configuration file)
-+ *
-+ * @chip: address of the chip which is to be read
-+ * @addr: i2c data address within the chip
-+ * @alen: length of the i2c data address (1..2 bytes)
-+ * @buffer: where to write the data
-+ * @len: how much byte do we want to read
-+ * @return: 0 in case of success
-+ */
-+int pxa_pwr_i2c_read(u8 chip, uint addr, int alen, u8 * buffer, int len)
-+{
-+ struct i2c_msg msg;
-+ u8 addr_bytes[3]; /* lowest...highest byte of data address */
-+ int ret;
-+
-+ pr_debug("%s(chip=0x%02x, addr=0x%02x, alen=0x%02x, len=0x%02x)\n",
-+ __FUNCTION__, chip, addr, alen, len);
-+
-+ pxa_pwr_i2c_reset();
-+
-+ /* dummy chip address write */
-+ pr_debug("%s: dummy chip address write\n", __FUNCTION__);
-+ msg.condition = I2C_COND_START;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = (chip << 1);
-+ msg.data &= 0xFE;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ /*
-+ * send memory address bytes;
-+ * alen defines how much bytes we have to send.
-+ */
-+ /*addr &= ((1 << CFG_EEPROM_PAGE_WRITE_BITS)-1); */
-+ addr_bytes[0] = (u8) ((addr >> 0) & 0x000000FF);
-+ addr_bytes[1] = (u8) ((addr >> 8) & 0x000000FF);
-+ addr_bytes[2] = (u8) ((addr >> 16) & 0x000000FF);
-+
-+ while (--alen >= 0) {
-+ pr_debug("%s: send memory word address byte %1d\n",
-+ __FUNCTION__, alen);
-+ msg.condition = I2C_COND_NORMAL;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = addr_bytes[alen];
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+ }
-+
-+ /* start read sequence */
-+ pr_debug("%s: start read sequence\n", __FUNCTION__);
-+ msg.condition = I2C_COND_START;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = (chip << 1);
-+ msg.data |= 0x01;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ /* read bytes; send NACK at last byte */
-+ while (len--) {
-+ if (len == 0) {
-+ msg.condition = I2C_COND_STOP;
-+ msg.acknack = I2C_ACKNAK_SENDNAK;
-+ } else {
-+ msg.condition = I2C_COND_NORMAL;
-+ msg.acknack = I2C_ACKNAK_SENDACK;
-+ }
-+
-+ msg.direction = I2C_READ;
-+ msg.data = 0x00;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ *buffer = msg.data;
-+ pr_debug("%s: reading byte (0x%08x)=0x%02x\n",
-+ __FUNCTION__, (unsigned int)buffer, *buffer);
-+ buffer++;
-+ }
-+
-+ pxa_pwr_i2c_reset();
-+ return 0;
-+}
-+
-+/**
-+ * i2c_write: - Write multiple bytes to an i2c device
-+ *
-+ * The higher level routines take into account that this function is only
-+ * called with len < page length of the device (see configuration file)
-+ *
-+ * @chip: address of the chip which is to be written
-+ * @addr: i2c data address within the chip
-+ * @alen: length of the i2c data address (1..2 bytes)
-+ * @buffer: where to find the data to be written
-+ * @len: how much byte do we want to read
-+ * @return: 0 in case of success
-+ */
-+int pxa_pwr_i2c_write(u8 chip, uint addr, int alen, u8 * buffer, int len)
-+{
-+ struct i2c_msg msg;
-+ u8 addr_bytes[3]; /* lowest...highest byte of data address */
-+ int ret;
-+
-+ pr_debug("%s(chip=0x%02x, addr=0x%02x, alen=0x%02x, len=0x%02x)\n",
-+ __FUNCTION__, chip, addr, alen, len);
-+
-+ pxa_pwr_i2c_reset();
-+
-+ /* chip address write */
-+ pr_debug("%s: chip address write\n", __FUNCTION__);
-+ msg.condition = I2C_COND_START;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = (chip << 1);
-+ msg.data &= 0xFE;
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+
-+ /*
-+ * send memory address bytes;
-+ * alen defines how much bytes we have to send.
-+ */
-+ addr_bytes[0] = (u8) ((addr >> 0) & 0x000000FF);
-+ addr_bytes[1] = (u8) ((addr >> 8) & 0x000000FF);
-+ addr_bytes[2] = (u8) ((addr >> 16) & 0x000000FF);
-+
-+ while (--alen >= 0) {
-+ pr_debug("%s: send memory word address\n", __FUNCTION__);
-+ msg.condition = I2C_COND_NORMAL;
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = addr_bytes[alen];
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+ }
-+
-+ /* write bytes; send NACK at last byte */
-+ while (len--) {
-+ pr_debug("%s: writing byte (0x%08x)=0x%02x\n",
-+ __FUNCTION__, (unsigned int)buffer, *buffer);
-+
-+ if (len == 0)
-+ msg.condition = I2C_COND_STOP;
-+ else
-+ msg.condition = I2C_COND_NORMAL;
-+
-+ msg.acknack = I2C_ACKNAK_WAITACK;
-+ msg.direction = I2C_WRITE;
-+ msg.data = *(buffer++);
-+
-+ if ((ret = pxa_pwr_i2c_transfer(&msg)))
-+ return ret;
-+ }
-+
-+ pxa_pwr_i2c_reset();
-+ return 0;
-+}
-+
-+/**
-+ * pxa_pwr_i2c_reg_read: - Read single byte from an i2c device
-+ *
-+ * @chip: address of the chip which is to be read
-+ * @reg: i2c data address within the chip
-+ * @return: data in case of success, negative error code otherwise
-+ */
-+s32 pxa_pwr_i2c_reg_read(u8 chip, u8 reg)
-+{
-+ char buf;
-+ int ret;
-+
-+ pr_debug("%s(chip=0x%02x, reg=0x%02x)\n", __FUNCTION__, chip, reg);
-+ ret = pxa_pwr_i2c_read(chip, reg, 1, &buf, 1);
-+ if (ret == 0)
-+ ret = buf;
-+
-+ return ret;
-+}
-+
-+/**
-+ * pxa_pwr_i2c_reg_write: - Write multiple bytes to an i2c device
-+ *
-+ * The higher level routines take into account that this function is only
-+ * called with len < page length of the device (see configuration file)
-+ *
-+ * @chip: address of the chip which is to be written
-+ * @reg: i2c data address within the chip
-+ * @return: 0 in case of success, negative error code otherwise
-+ */
-+s32 pxa_pwr_i2c_reg_write(u8 chip, u8 reg, u8 val)
-+{
-+ pr_debug("%s(chip=0x%02x, reg=0x%02x, val=0x%02x)\n",
-+ __FUNCTION__, chip, reg, val);
-+ return pxa_pwr_i2c_write(chip, reg, 1, &val, 1);
-+}
-+
-+MODULE_DESCRIPTION("PXA Power I2C");
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_LICENSE("GPL");
-diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
-index 203371a..36b695f 100644
---- a/arch/arm/mach-pxa/pxa27x.c
-+++ b/arch/arm/mach-pxa/pxa27x.c
-@@ -243,7 +243,11 @@ void pxa27x_cpu_pm_enter(suspend_state_t state)
- case PM_SUSPEND_MEM:
- /* set resume return address */
- PSPR = virt_to_phys(pxa_cpu_resume);
-- pxa27x_cpu_suspend(PWRMODE_SLEEP);
-+#ifdef CONFIG_MACH_EM_X270
-+ pxa27x_cpu_suspend(PWRMODE_DEEPSLEEP);
-+#else
-+ pxa27x_cpu_suspend(PWRMODE_SLEEP);
-+#endif
- break;
- }
- }
-diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
-index bae47e1..a16e532 100644
---- a/arch/arm/mach-pxa/spitz.c
-+++ b/arch/arm/mach-pxa/spitz.c
-@@ -349,6 +349,32 @@ static struct pxamci_platform_data spitz_mci_platform_data = {
-
-
- /*
-+ * 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)
-@@ -499,6 +525,7 @@ static void __init common_init(void)
- 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);
-diff --git a/drivers/i2c/chips/Kconfig b/drivers/i2c/chips/Kconfig
-index 2e1c24f..f80f2b1 100644
---- a/drivers/i2c/chips/Kconfig
-+++ b/drivers/i2c/chips/Kconfig
-@@ -163,4 +163,17 @@ config MENELAUS
- and other features that are often used in portable devices like
- cell phones and PDAs.
-
-+config DA9030
-+ tristate "Dialog Semiconductor DA9030 power management chip"
-+ depends on EXPERIMENTAL && EMBEDDED
-+ help
-+ If you say yes here you get support for the Dialog
-+ Semiconductor DA9030 power management chip.
-+ This includes voltage regulators, lithium ion/polymer battery
-+ charging, and other features that are often used in portable
-+ devices like PDAs, cell phones and cameras.
-+
-+ This driver can also be built as a module. If so, the module
-+ will be called da9030.
-+
- endmenu
-diff --git a/drivers/i2c/chips/Makefile b/drivers/i2c/chips/Makefile
-index ca924e1..69f545c 100644
---- a/drivers/i2c/chips/Makefile
-+++ b/drivers/i2c/chips/Makefile
-@@ -15,6 +15,7 @@ obj-$(CONFIG_ISP1301_OMAP) += isp1301_omap.o
- obj-$(CONFIG_TPS65010) += tps65010.o
- obj-$(CONFIG_MENELAUS) += menelaus.o
- obj-$(CONFIG_SENSORS_TSL2550) += tsl2550.o
-+obj-$(CONFIG_DA9030) += da9030.o
-
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
-diff --git a/drivers/i2c/chips/da9030.c b/drivers/i2c/chips/da9030.c
-new file mode 100644
-index 0000000..9791272
---- /dev/null
-+++ b/drivers/i2c/chips/da9030.c
-@@ -0,0 +1,1213 @@
-+/*
-+ * Dialog Semiconductor DA9030 power management IC driver
-+ *
-+ * Copyright (C) 2007 Compulab, Ltd.
-+ * Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Some parts based on menelaus.c:
-+ * Copyright (C) 2004 Texas Instruments, Inc.
-+ * Copyright (C) 2005, 2006 Nokia Corporation
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file COPYING in the main directory of this archive for
-+ * more details.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/ctype.h>
-+#include <linux/uaccess.h>
-+#include <linux/i2c.h>
-+#include <linux/irq.h>
-+#include <linux/interrupt.h>
-+#include <linux/da9030.h>
-+#include <linux/kernel_stat.h>
-+#include <linux/random.h>
-+#include <linux/mutex.h>
-+
-+#include <linux/debugfs.h>
-+#include <linux/seq_file.h>
-+
-+#include "da9030.h"
-+
-+#define DRIVER_NAME "da9030"
-+
-+static unsigned short normal_i2c[] = { 0x49, I2C_CLIENT_END };
-+
-+I2C_CLIENT_INSMOD;
-+
-+struct da9030 {
-+ struct mutex lock;
-+ struct i2c_client *client;
-+
-+ struct work_struct event_work;
-+
-+ /* there are 24 interrupts */
-+ void (*callbacks[24])(int event, void *data);
-+ void *callbacks_data[24];
-+
-+ struct dentry *debug_file;
-+};
-+
-+/* I hardly believe there can be more than 1 such chip in the system,
-+ so keeping its global instance won't really hurt */
-+static struct da9030 *the_da9030;
-+
-+unsigned char defined_regs[] = {
-+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
-+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b,
-+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
-+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a,
-+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b,
-+ 0x50, 0x51,
-+ 0x60, 0x61, 0x62, 0x63,
-+ 0x80, 0x81,
-+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b,
-+ 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
-+ 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba,
-+};
-+
-+static inline int is_reg_valid(u32 reg)
-+{
-+ int i;
-+ for (i = 0; i < ARRAY_SIZE(defined_regs); i++)
-+ if (reg == defined_regs[i])
-+ return 1;
-+
-+ return 0;
-+}
-+
-+s32 da9030_get_reg(u32 reg)
-+{
-+ if (!is_reg_valid(reg))
-+ return -EINVAL;
-+
-+ return i2c_smbus_read_byte_data(the_da9030->client, reg);
-+}
-+EXPORT_SYMBOL(da9030_get_reg);
-+
-+s32 da9030_set_reg(u32 reg, u8 val)
-+{
-+ if (!is_reg_valid(reg))
-+ return -EINVAL;
-+
-+ return i2c_smbus_write_byte_data(the_da9030->client, reg, val);
-+}
-+EXPORT_SYMBOL(da9030_set_reg);
-+
-+static s32 da9030_update_reg_bits(u32 reg, int bits, int shift, int val)
-+{
-+ int ret;
-+ int new_val;
-+
-+ mutex_lock(&the_da9030->lock);
-+ ret = da9030_get_reg(reg);
-+ if (ret < 0)
-+ goto out;
-+
-+ new_val = reg & ~(((1 << bits) - 1) << shift);
-+ new_val |= (val << shift);
-+
-+ ret = da9030_set_reg(reg, new_val);
-+ mutex_unlock(&the_da9030->lock);
-+
-+out:
-+ return ret;
-+}
-+
-+int da9030_get_status(void)
-+{
-+ s32 ret;
-+
-+ mutex_lock(&the_da9030->lock);
-+ ret = da9030_get_reg(STATUS);
-+ mutex_unlock(&the_da9030->lock);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(da9030_get_status);
-+
-+int da9030_get_fault_log(void)
-+{
-+ s32 ret;
-+
-+ mutex_lock(&the_da9030->lock);
-+ ret = da9030_get_reg(FAULT_LOG);
-+ mutex_unlock(&the_da9030->lock);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(da9030_get_fault_log);
-+
-+void da9030_read_adc(struct da9030_adc_res *adc)
-+{
-+ mutex_lock(&the_da9030->lock);
-+
-+ adc->vbat_res = da9030_get_reg(VBAT_RES);
-+ adc->vbatmin_res = da9030_get_reg(VBATMIN_RES);
-+ adc->vbatmintxon = da9030_get_reg(VBATMINTXON_RES);
-+ adc->ichmax_res = da9030_get_reg(ICHMAX_RES);
-+ adc->ichmin_res = da9030_get_reg(ICHMIN_RES);
-+ adc->ichaverage_res = da9030_get_reg(ICHAVERAGE_RES);
-+ adc->vchmax_res = da9030_get_reg(VCHMAX_RES);
-+ adc->vchmin_res = da9030_get_reg(VCHMIN_RES);
-+ adc->tbat_res = da9030_get_reg(TBAT_RES);
-+ adc->adc_in4_res = da9030_get_reg(ADC_IN4_RES);
-+ adc->adc_in5_res = da9030_get_reg(ADC_IN5_RES);
-+
-+ mutex_unlock(&the_da9030->lock);
-+}
-+EXPORT_SYMBOL(da9030_read_adc);
-+
-+void da9030_enable_adc(void)
-+{
-+ /* enable automatic A/D measurements */
-+ mutex_lock(&the_da9030->lock);
-+
-+ da9030_set_reg(ADC_MAN_CONTROL,
-+ ADC_LDO_INT_ENABLE | ADC_TBATREF_ENABLE);
-+ da9030_set_reg(ADC_MAN_CONTROL_1,
-+ ADC_LDO_INT_ENABLE | ADC_TBATREF_ENABLE);
-+ da9030_set_reg(ADC_AUTO_CONTROL_1,
-+ ADC_TBAT_ENABLE | ADC_VBAT_IN_TXON | ADC_VCH_ENABLE |
-+ ADC_ICH_ENABLE | ADC_VBAT_ENABLE |
-+ ADC_AUTO_SLEEP_ENABLE);
-+ da9030_set_reg(ADC_AUTO_CONTROL,
-+ ADC_TBAT_ENABLE | ADC_VBAT_IN_TXON | ADC_VCH_ENABLE |
-+ ADC_ICH_ENABLE | ADC_VBAT_ENABLE |
-+ ADC_AUTO_SLEEP_ENABLE);
-+
-+ mutex_unlock(&the_da9030->lock);
-+}
-+EXPORT_SYMBOL(da9030_enable_adc);
-+
-+void da9030_set_wled(int on, unsigned int brightness)
-+{
-+ u8 val;
-+
-+ mutex_lock(&the_da9030->lock);
-+
-+ if (on)
-+ val = WLED_CP_ENABLE | (brightness & 0x7);
-+ else
-+ val = da9030_get_reg(WLED_CONTROL) & ~WLED_CP_ENABLE;
-+
-+ da9030_set_reg(WLED_CONTROL, val);
-+
-+ mutex_unlock(&the_da9030->lock);
-+}
-+EXPORT_SYMBOL(da9030_set_wled);
-+
-+int da9030_set_charger(int on, unsigned int mA, unsigned int mV)
-+{
-+ int ret;
-+ u8 val = 0;
-+ if (on) {
-+ if (mA >= 1500 || mV < 4000 || mV > 4350)
-+ return -EINVAL;
-+
-+ val = CHRG_CHARGER_ENABLE;
-+ val |= (mA / 100) << 3;
-+ val |= (mV - 4000) / 50;
-+ }
-+
-+ mutex_lock(&the_da9030->lock);
-+ ret = da9030_set_reg(CHARGE_CONTROL, val);
-+ mutex_unlock(&the_da9030->lock);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(da9030_set_charger);
-+
-+void da9030_get_charger(int *on, unsigned int *mA, unsigned int *mV)
-+{
-+ s32 val;
-+
-+ mutex_lock(&the_da9030->lock);
-+
-+ val = da9030_get_reg(CHARGE_CONTROL);
-+
-+ mutex_unlock(&the_da9030->lock);
-+
-+ if (on)
-+ *on = (val & CHRG_CHARGER_ENABLE) ? 1 : 0;
-+
-+ if (mA)
-+ *mA = ((val >> 3) & 0xf) * 100;
-+
-+ if (mV)
-+ *mV = (val & 0x7) * 50 + 4000;
-+}
-+EXPORT_SYMBOL(da9030_get_charger);
-+
-+int da9030_set_led(int led, int on,
-+ enum da9030_led_rate rate,
-+ enum da9030_led_duty_cycle duty,
-+ enum da9030_led_pwm_chop pwm_chop)
-+{
-+ int reg;
-+ int ret;
-+
-+ u8 val = 0;
-+
-+ if (led > 4)
-+ return -EINVAL;
-+
-+ reg = LED_1_CONTROL + led;
-+ if (on) {
-+ val = LED_ENABLE;
-+ val |= (rate & 0x3) << 5;
-+ val |= (duty & 0x3) << 3;
-+ val |= (pwm_chop & 0x7);
-+ }
-+
-+ mutex_lock(&the_da9030->lock);
-+ ret = da9030_set_reg(reg, val);
-+ mutex_unlock(&the_da9030->lock);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(da9030_set_led);
-+
-+void da9030_set_thresholds(unsigned int tbathighp, unsigned int tbathighn,
-+ unsigned int tbatlow, unsigned int vbatmon)
-+{
-+ mutex_lock(&the_da9030->lock);
-+
-+ da9030_set_reg(TBATHIGHP, tbathighp);
-+ da9030_set_reg(TBATHIGHN, tbathighn);
-+ da9030_set_reg(TBATLOW, tbatlow);
-+ da9030_set_reg(VBATMONTXON, vbatmon);
-+ da9030_set_reg(VBATMON, vbatmon);
-+
-+ da9030_set_reg(TBATHIGHP_1, tbathighp);
-+ da9030_set_reg(TBATHIGHN_1, tbathighn);
-+ da9030_set_reg(TBATLOW_1, tbatlow);
-+ da9030_set_reg(VBATMONTXMON_1, vbatmon);
-+ da9030_set_reg(VBATMON_1, vbatmon);
-+
-+ mutex_unlock(&the_da9030->lock);
-+}
-+EXPORT_SYMBOL(da9030_set_thresholds);
-+
-+struct da9030_vtg_value {
-+ u16 vtg;
-+ u16 val;
-+};
-+
-+struct da9030_vtg_value da9030_vtg_1V8_3V2[] = {
-+ {1800, 0x0},
-+ {1900, 0x1},
-+ {2000, 0x2},
-+ {2100, 0x3},
-+ {2200, 0x4},
-+ {2300, 0x5},
-+ {2400, 0x6},
-+ {2500, 0x7},
-+ {2600, 0x8},
-+ {2700, 0x9},
-+ {2800, 0xa},
-+ {2900, 0xb},
-+ {3000, 0xc},
-+ {3100, 0xd},
-+ {3200, 0xe},
-+ {3200, 0xf},
-+};
-+
-+struct da9030_vtg_value da9030_vtg_1V1_2V65[] = {
-+ {1100, 0x0},
-+ {1150, 0x1},
-+ {1200, 0x2},
-+ {1250, 0x3},
-+ {1300, 0x4},
-+ {1350, 0x5},
-+ {1400, 0x6},
-+ {1450, 0x7},
-+ {1500, 0x8},
-+ {1550, 0x9},
-+ {1600, 0xa},
-+ {1650, 0xb},
-+ {1700, 0xc},
-+ {1750, 0xd},
-+ {1800, 0xe},
-+ {1850, 0xf},
-+ {1900, 0x10},
-+ {1950, 0x11},
-+ {2000, 0x12},
-+ {2050, 0x13},
-+ {2100, 0x14},
-+ {2150, 0x15},
-+ {2200, 0x16},
-+ {2250, 0x17},
-+ {2300, 0x18},
-+ {2350, 0x19},
-+ {2400, 0x1a},
-+ {2450, 0x1b},
-+ {2500, 0x1c},
-+ {2550, 0x1d},
-+ {2600, 0x1e},
-+ {2650, 0x1f},
-+};
-+
-+struct da9030_vtg_value da9030_vtg_2V76_2V94[] = {
-+ {2760, 0x7},
-+ {2790, 0x6},
-+ {2820, 0x5},
-+ {2850, 0x4},
-+ {2850, 0x3},
-+ {2880, 0x1},
-+ {2910, 0x2},
-+ {2940, 0x3},
-+};
-+
-+struct da9030_vtg_value da9030_vtg_0V85_1V625[] = {
-+ {850, 0x0},
-+ {875, 0x1},
-+ {900, 0x2},
-+ {925, 0x3},
-+ {950, 0x4},
-+ {975, 0x5},
-+ {1000, 0x6},
-+ {1025, 0x7},
-+ {1050, 0x8},
-+ {1075, 0x9},
-+ {1100, 0xa},
-+ {1125, 0xb},
-+ {1150, 0xc},
-+ {1175, 0xd},
-+ {1200, 0xe},
-+ {1225, 0xf},
-+ {1250, 0x10},
-+ {1275, 0x11},
-+ {1300, 0x12},
-+ {1325, 0x13},
-+ {1350, 0x14},
-+ {1375, 0x15},
-+ {1400, 0x16},
-+ {1425, 0x17},
-+ {1450, 0x18},
-+ {1475, 0x19},
-+ {1500, 0x1a},
-+ {1525, 0x1b},
-+ {1550, 0x1c},
-+ {1575, 0x1d},
-+ {1600, 0x1e},
-+ {1625, 0x1f},
-+};
-+
-+struct ldo_param {
-+ u8 reg;
-+ u8 shift;
-+ u8 bits;
-+};
-+
-+struct da9030_ldo {
-+ const char *name;
-+
-+ struct ldo_param vtg;
-+ struct ldo_param sleep;
-+ struct ldo_param lock;
-+
-+ /* several LDOs have two enable/disable bits */
-+ struct ldo_param enable[2];
-+
-+ struct da9030_vtg_value *values;
-+ int values_count;
-+};
-+
-+static struct da9030_ldo da9030_ldos[] = {
-+ [0] = {
-+ .name = "LDO1",
-+ .vtg = {
-+ .reg = LDO_1,
-+ .shift = 0,
-+ .bits = 5,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 1,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = LDO_1,
-+ .shift = 5,
-+ .bits = 2,
-+ },
-+ .lock = {
-+ .reg = REG_SLEEP_CONTROL1,
-+ .shift = 0,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [1] = {
-+ .name = "LDO2",
-+ .vtg = {
-+ .reg = LDO_2_3,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 2,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL1,
-+ .shift = 2,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [2] = {
-+ .name = "LDO3",
-+ .vtg = {
-+ .reg = LDO_2_3,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 3,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL1,
-+ .shift = 4,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [3] = {
-+ .name = "LDO4",
-+ .vtg = {
-+ .reg = LDO_4_5,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 4,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL1,
-+ .shift = 6,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [4] = {
-+ .name = "LDO5",
-+ .vtg = {
-+ .reg = LDO_4_5,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 5,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL2,
-+ .shift = 0,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [5] = {
-+ .name = "LDO6",
-+ .vtg = {
-+ .reg = LDO_6_SIMCP,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 6,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [6] = {
-+ .name = "LDO7",
-+ .vtg = {
-+ .reg = LDO_7_8,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_97,
-+ .shift = 7,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL2,
-+ .shift = 2,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [7] = {
-+ .name = "LDO8",
-+ .vtg = {
-+ .reg = LDO_7_8,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_2_98,
-+ .shift = 0,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL2,
-+ .shift = 4,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [8] = {
-+ .name = "LDO9",
-+ .vtg = {
-+ .reg = LDO_9_12,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_2_98,
-+ .shift = 1,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL2,
-+ .shift = 6,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [9] = {
-+ .name = "LDO10",
-+ .vtg = {
-+ .reg = LDO_10_11,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 1,
-+ .bits = 1,
-+ },
-+ .enable[1] = {
-+ .reg = REG_CONTROL_2_98,
-+ .shift = 2,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [10] = {
-+ .name = "LDO11",
-+ .vtg = {
-+ .reg = LDO_10_11,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 2,
-+ .bits = 1,
-+ },
-+ .enable[1] = {
-+ .reg = REG_CONTROL_2_98,
-+ .shift = 3,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [11] = {
-+ .name = "LDO12",
-+ .vtg = {
-+ .reg = LDO_9_12,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_2_98,
-+ .shift = 4,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = REG_SLEEP_CONTROL3,
-+ .shift = 0,
-+ .bits = 2,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [12] = {
-+ .name = "LDO13",
-+ .vtg = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 3,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = NULL,
-+ .values_count = 0,
-+ },
-+ [13] = {
-+ .name = "LDO14",
-+ .vtg = {
-+ .reg = LDO_14_16,
-+ .shift = 0,
-+ .bits = 3,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17, /* FIXME: or 2_98? */
-+ .shift = 4,
-+ .bits = 1,
-+ },
-+ .enable[1] = {
-+ .reg = REG_CONTROL_2_98, /* FIXME: or 2_98? */
-+ .shift = 5,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_2V76_2V94,
-+ .values_count = ARRAY_SIZE(da9030_vtg_2V76_2V94),
-+ },
-+ [14] = {
-+ .name = "LDO15",
-+ .vtg = {
-+ .reg = LDO_15,
-+ .shift = 0,
-+ .bits = 5,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 5,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .lock = {
-+ .reg = LDO_15,
-+ .shift = 5,
-+ .bits = 3,
-+ },
-+ .values = da9030_vtg_1V1_2V65,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V1_2V65),
-+ },
-+ [15] = {
-+ .name = "LDO16",
-+ .vtg = {
-+ .reg = LDO_14_16,
-+ .shift = 3,
-+ .bits = 5,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 6,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V1_2V65,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V1_2V65),
-+ },
-+ [16] = {
-+ .name = "LDO17",
-+ .vtg = {
-+ .reg = LDO_17_SIMCP0,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_1_17,
-+ .shift = 7,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [17] = {
-+ .name = "LDO18",
-+ .vtg = {
-+ .reg = LDO_18_19,
-+ .shift = 0,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_2_18,
-+ .shift = 2,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+ [18] = {
-+ .name = "LDO19",
-+ .vtg = {
-+ .reg = LDO_18_19,
-+ .shift = 4,
-+ .bits = 4,
-+ },
-+ .enable[0] = {
-+ .reg = REG_CONTROL_2_18,
-+ .shift = 1,
-+ .bits = 1,
-+ },
-+ .sleep = {
-+ .reg = 0,
-+ .shift = 0,
-+ .bits = 0,
-+ },
-+ .values = da9030_vtg_1V8_3V2,
-+ .values_count = ARRAY_SIZE(da9030_vtg_1V8_3V2),
-+ },
-+};
-+
-+static int da9030_get_vtg_value(int vtg, const struct da9030_vtg_value *tbl,
-+ int n)
-+{
-+ int i;
-+
-+ for (i = 0; i < n; i++, tbl++)
-+ if (tbl->vtg == vtg)
-+ return tbl->val;
-+ return -EINVAL;
-+}
-+
-+static int da9030_set_ldo_volt(struct da9030_ldo *ldo, unsigned int mV)
-+{
-+ int val;
-+
-+ val = da9030_get_vtg_value(mV, ldo->values, ldo->values_count);
-+ if (val < 0)
-+ return val;
-+
-+ return da9030_update_reg_bits(ldo->vtg.reg, ldo->vtg.bits,
-+ ldo->vtg.shift, val);
-+}
-+
-+static int da9030_enable_ldo(struct da9030_ldo *ldo, int enable)
-+{
-+ int ret;
-+
-+ ret = da9030_update_reg_bits(ldo->enable[0].reg, ldo->enable[1].bits,
-+ ldo->enable[0].shift, enable);
-+
-+ if (ret < 0)
-+ return ret;
-+
-+ if (unlikely(ldo->enable[1].reg != 0))
-+ ret = da9030_update_reg_bits(ldo->enable[1].reg,
-+ ldo->enable[1].bits,
-+ ldo->enable[1].shift, enable);
-+
-+ return ret;
-+}
-+
-+static int da9030_set_ldo_sleep(struct da9030_ldo *ldo,
-+ enum da9030_ldo_sleep_mode sleep_mode)
-+{
-+ return da9030_update_reg_bits(ldo->sleep.reg, ldo->sleep.bits,
-+ ldo->sleep.shift, sleep_mode);
-+}
-+
-+int da9030_set_ldo(int ldo_num, int on, unsigned int mV,
-+ enum da9030_ldo_sleep_mode sleep_mode)
-+{
-+ struct da9030_ldo *ldo;
-+ int ret;
-+
-+ if (ldo_num < 0 || ldo_num > ARRAY_SIZE(da9030_ldos))
-+ return -EINVAL;
-+
-+ ldo = &da9030_ldos[ldo_num];
-+
-+ ret = da9030_set_ldo_volt(ldo, mV);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = da9030_enable_ldo(ldo, on);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = da9030_set_ldo_sleep(ldo, sleep_mode);
-+ if (ret < 0)
-+ return ret;
-+
-+ return 0;
-+}
-+EXPORT_SYMBOL(da9030_set_ldo);
-+
-+int da9030_set_buck(int buck, int on, unsigned int mV, int flags)
-+{
-+ /* FIXME: implement */
-+ return 0;
-+}
-+EXPORT_SYMBOL(da9030_set_buck);
-+
-+static void da9030_disable_irq(unsigned int irq)
-+{
-+ int reg, val;
-+
-+ if (irq < 8) {
-+ reg = IRQ_MASK_A;
-+ val = 1 << irq;
-+ } else if (irq < 16) {
-+ reg = IRQ_MASK_B;
-+ val = 1 << (irq - 8);
-+ } else {
-+ reg = IRQ_MASK_C;
-+ val = 1 << (irq - 16);
-+ }
-+
-+ i2c_smbus_write_byte_data(
-+ the_da9030->client, reg,
-+ i2c_smbus_read_byte_data(the_da9030->client, reg) | val);
-+}
-+
-+static void da9030_enable_irq(unsigned int irq)
-+{
-+ int reg, val;
-+
-+ if (irq < 8) {
-+ reg = IRQ_MASK_A;
-+ val = 1 << irq;
-+ } else if (irq < 16) {
-+ reg = IRQ_MASK_B;
-+ val = 1 << (irq - 8);
-+ } else {
-+ reg = IRQ_MASK_C;
-+ val = 1 << (irq - 16);
-+ }
-+
-+ i2c_smbus_write_byte_data(
-+ the_da9030->client, reg,
-+ i2c_smbus_read_byte_data(the_da9030->client, reg) & ~val);
-+}
-+
-+int da9030_register_callback(int event,
-+ void (*callback)(int event, void *data),
-+ void *data)
-+{
-+ int ret;
-+
-+ if (event < 0 || event > 23)
-+ return -EINVAL;
-+
-+ mutex_lock(&the_da9030->lock);
-+ if (the_da9030->callbacks[event])
-+ ret = -EBUSY;
-+ else {
-+ the_da9030->callbacks[event] = callback;
-+ the_da9030->callbacks_data[event] = data;
-+ da9030_enable_irq(event);
-+ ret = 0;
-+ }
-+ mutex_unlock(&the_da9030->lock);
-+
-+ return ret;
-+}
-+EXPORT_SYMBOL(da9030_register_callback);
-+
-+void da9030_unregister_callback(int event)
-+{
-+ mutex_lock(&the_da9030->lock);
-+
-+ da9030_disable_irq(event);
-+ the_da9030->callbacks[event] = NULL;
-+ the_da9030->callbacks_data[event] = 0;
-+
-+ mutex_unlock(&the_da9030->lock);
-+}
-+EXPORT_SYMBOL(da9030_unregister_callback);
-+
-+#ifdef CONFIG_DEBUG_FS
-+#define MAX_BUF 256
-+
-+static int da9030_debug_show(struct seq_file *s, void *data)
-+{
-+ int i, res = 0;
-+ struct da9030 *da9030 = s->private;
-+ struct i2c_client *client = da9030->client;
-+
-+ seq_printf(s, "DA9030 state: da = %p, cl = %p, s->private = %p\n",
-+ da9030, client, s->private);
-+
-+ for (i = 0; i < ARRAY_SIZE(defined_regs); i++) {
-+ res = i2c_smbus_read_byte_data(client, defined_regs[i]);
-+ seq_printf(s, "%02x %x\n", defined_regs[i], res);
-+ }
-+ return 0;
-+}
-+
-+static int da9030_debug_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, da9030_debug_show, inode->i_private);
-+}
-+
-+ssize_t da9030_debug_write(struct file *f, const char __user *buf, size_t len,
-+ loff_t *off)
-+{
-+ char buffer[MAX_BUF];
-+ int reg, val;
-+ char *endp;
-+ struct da9030 *da9030 = ((struct seq_file *)f->private_data)->private;
-+ struct i2c_client *client = da9030->client;
-+
-+ if (len > MAX_BUF) {
-+ printk(KERN_INFO "%s: large buffer\n", __FUNCTION__);
-+ len = MAX_BUF;
-+ }
-+
-+ if (copy_from_user(buffer, buf, len)) {
-+ printk(KERN_INFO "%s: copy_from_user failed\n", __FUNCTION__);
-+ return -EFAULT;
-+ }
-+ buffer[len] = '\0';
-+
-+ reg = simple_strtoul(buffer, &endp, 0);
-+ while (endp && isspace(*endp))
-+ endp++;
-+
-+ val = simple_strtoul(endp, 0, 0);
-+
-+ i2c_smbus_write_byte_data(client, reg, val);
-+
-+ return len;
-+}
-+
-+static const struct file_operations debug_fops = {
-+ .open = da9030_debug_open,
-+ .read = seq_read,
-+ .write = da9030_debug_write,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static struct dentry *da9030_create_debugfs(struct da9030 *da9030)
-+{
-+ da9030->debug_file = debugfs_create_file("da9030", 0666, 0, da9030,
-+ &debug_fops);
-+ return da9030->debug_file;
-+}
-+
-+static void da9030_remove_debugfs(struct da9030 *da9030)
-+{
-+ debugfs_remove(da9030->debug_file);
-+}
-+#else
-+#define da9030_create_debugfs(x) NULL
-+#define da9030_remove_debugfs(x) do {} while (0)
-+#endif
-+
-+static irqreturn_t da9030_irq(int irq, void *_da9030)
-+{
-+ struct da9030 *da9030 = _da9030;
-+
-+ (void)schedule_work(&da9030->event_work);
-+
-+ return IRQ_HANDLED;
-+}
-+
-+static void da9030_irq_worker(struct work_struct *work)
-+{
-+ struct da9030 *da9030 = container_of(work, struct da9030, event_work);
-+ void (*callback)(int event, void *data);
-+ u32 pending = 0;
-+ u32 mask = 0;
-+ int i;
-+
-+ while (1) {
-+ pending = (i2c_smbus_read_byte_data(da9030->client,
-+ EVENT_A)) |
-+ ((i2c_smbus_read_byte_data(da9030->client,
-+ EVENT_B)) << 8) |
-+ ((i2c_smbus_read_byte_data(da9030->client,
-+ EVENT_C)) << 16);
-+
-+ mask = (i2c_smbus_read_byte_data(da9030->client,
-+ IRQ_MASK_A)) |
-+ ((i2c_smbus_read_byte_data(da9030->client,
-+ IRQ_MASK_B)) << 8) |
-+ ((i2c_smbus_read_byte_data(da9030->client,
-+ IRQ_MASK_C)) << 16);
-+ pending &= ~mask;
-+
-+ if (!pending)
-+ return;
-+
-+ while (pending) {
-+ i = __ffs(pending);
-+ callback = da9030->callbacks[i];
-+ if (callback)
-+ callback(i, da9030->callbacks_data[i]);
-+ pending &= ~(1 << i);
-+ }
-+ }
-+}
-+
-+static inline void da9030_disable_interrupts(struct da9030 *da9030)
-+{
-+ /* clear pending interruts */
-+ (void)i2c_smbus_read_byte_data(da9030->client, EVENT_A);
-+ (void)i2c_smbus_read_byte_data(da9030->client, EVENT_B);
-+ (void)i2c_smbus_read_byte_data(da9030->client, EVENT_C);
-+
-+ /* disable interrupts */
-+ i2c_smbus_write_byte_data(da9030->client, IRQ_MASK_A, 0xff);
-+ i2c_smbus_write_byte_data(da9030->client, IRQ_MASK_B, 0xff);
-+ i2c_smbus_write_byte_data(da9030->client, IRQ_MASK_C, 0xff);
-+}
-+
-+static int da9030_probe(struct i2c_client *client)
-+{
-+ int ret;
-+ struct da9030 *da9030;
-+
-+ if (the_da9030) {
-+ dev_dbg(&client->dev, "only one %s for now\n",
-+ DRIVER_NAME);
-+ return -ENODEV;
-+ }
-+
-+ ret = i2c_smbus_read_byte_data(client, CHIP_ID);
-+
-+ dev_info(&client->dev, "initialized chip revision %x\n", ret);
-+
-+ da9030 = kzalloc(sizeof(struct da9030), GFP_KERNEL);
-+ if (da9030 == NULL) {
-+ dev_err(&client->dev, "insufficient memory\n");
-+ return -ENOMEM;
-+ }
-+ the_da9030 = da9030;
-+ da9030->client = client;
-+
-+ mutex_init(&the_da9030->lock);
-+
-+ da9030_disable_interrupts(da9030);
-+ INIT_WORK(&da9030->event_work, da9030_irq_worker);
-+
-+ ret = request_irq(client->irq, da9030_irq,
-+ IRQF_DISABLED, DRIVER_NAME, da9030);
-+
-+ if (ret) {
-+ kfree(da9030);
-+ dev_err(&client->dev,
-+ "failed to allocate irq %d\n",
-+ client->irq);
-+ return ret;
-+ }
-+
-+ i2c_set_clientdata(client, da9030);
-+
-+ da9030->debug_file = da9030_create_debugfs(da9030);
-+
-+ return 0;
-+}
-+
-+/* static int da9030_detach_adapter(struct i2c_adapter *a) */
-+static int da9030_remove(struct i2c_client *client)
-+{
-+ struct da9030 *da9030 = i2c_get_clientdata(client);
-+
-+ da9030_remove_debugfs(da9030);
-+
-+ free_irq(da9030->client->irq, da9030);
-+ kfree(da9030);
-+ i2c_set_clientdata(client, NULL);
-+ the_da9030 = NULL;
-+
-+ return 0;
-+}
-+
-+static struct i2c_driver da9030_driver = {
-+ .driver = {
-+ .name = "da9030",
-+ .owner = THIS_MODULE,
-+ },
-+
-+ .probe = da9030_probe,
-+ .remove = da9030_remove,
-+};
-+
-+static int da9030_init(void)
-+{
-+ i2c_add_driver(&da9030_driver);
-+ return 0;
-+}
-+
-+static void da9030_exit(void)
-+{
-+ i2c_del_driver(&da9030_driver);
-+}
-+
-+/* NOTE: this MUST be initialized before the other parts of the system
-+ * that rely on it ... but after the i2c bus on which this relies.
-+ * That is, much earlier than on PC-type systems, which don't often use
-+ * I2C as a core system bus.
-+ */
-+subsys_initcall(da9030_init);
-+module_exit(da9030_exit);
-+
-+MODULE_DESCRIPTION("DA9030 power manager driver");
-+MODULE_AUTHOR("Mike Rapoport, Compulab");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/i2c/chips/da9030.h b/drivers/i2c/chips/da9030.h
-new file mode 100644
-index 0000000..4163156
---- /dev/null
-+++ b/drivers/i2c/chips/da9030.h
-@@ -0,0 +1,282 @@
-+/* DA9030 Register definintions */
-+
-+#define CHIP_ID 0x00
-+
-+#define EVENT_A 0x01
-+#define EVENT_A_CHIOVER (1 << 7)
-+#define EVENT_A_VBAT_MON_TXON (1 << 6)
-+#define EVENT_A_VBAT_MON (1 << 5)
-+#define EVENT_A_TBAT (1 << 4)
-+#define EVENT_A_CHDET (1 << 3)
-+#define EVENT_A_EXTON (1 << 2)
-+#define EVENT_A_PWREN1 (1 << 1)
-+#define EVENT_A_ONKEY_N (1 << 0)
-+
-+#define EVENT_B 0x02
-+#define EVENT_B_WDOG_INT (1 << 7)
-+#define EVENT_B_SRP_DETECT (1 << 6)
-+#define EVENT_B_SESSION_VALID (1 << 5)
-+#define EVENT_B_VBUS_VALID_4_0 (1 << 4)
-+#define EVENT_B_VBUS_VALID_4_4 (1 << 3)
-+#define EVENT_B_ADC_READY (1 << 2)
-+#define EVENT_B_CCTO (1 << 1)
-+#define EVENT_B_TCTO (1 << 0)
-+
-+#define EVENT_C 0x03
-+#define EVENT_C_ADC_IN5 (1 << 7)
-+#define EVENT_C_ADC_IN4 (1 << 6)
-+#define EVENT_C_BUCK2 (1 << 5)
-+#define EVENT_C_LDO19 (1 << 4)
-+#define EVENT_C_LDO18 (1 << 3)
-+#define EVENT_C_LDO17 (1 << 2)
-+#define EVENT_C_LDO16 (1 << 1)
-+#define EVENT_C_LDO15 (1 << 0)
-+
-+#define STATUS 0x04
-+#define STATUS_MCLK_DETECT (1 << 7)
-+#define STATUS_VBAT_MON_TXON (1 << 6)
-+#define STATUS_VBAT_MON (1 << 5)
-+#define STATUS_TBAT (1 << 4)
-+#define STATUS_CHDET (1 << 3)
-+#define STATUS_EXTON (1 << 2)
-+#define STATUS_PWREN1 (1 << 1)
-+#define STATUS_ONKEY_N (1 << 0)
-+
-+#define IRQ_MASK_A 0x05
-+#define IRQ_MASK_A_CHIOVER (1 << 7)
-+#define IRQ_MASK_A_VBAT_MON_TXON (1 << 6)
-+#define IRQ_MASK_A_VBAT_MON (1 << 5)
-+#define IRQ_MASK_A_TBAT (1 << 4)
-+#define IRQ_MASK_A_CHDET (1 << 3)
-+#define IRQ_MASK_A_EXTON (1 << 2)
-+#define IRQ_MASK_A_PWREN1 (1 << 1)
-+#define IRQ_MASK_A_ONKEY_N (1 << 0)
-+
-+#define IRQ_MASK_B 0x06
-+#define IRQ_MASK_B_WDOG_INT (1 << 7)
-+#define IRQ_MASK_B_SRP_DETECT (1 << 6)
-+#define IRQ_MASK_B_SESSION_VALID (1 << 5)
-+#define IRQ_MASK_B_VBUS_VALID_4_0 (1 << 4)
-+#define IRQ_MASK_B_VBUS_VALID_4_4 (1 << 3)
-+#define IRQ_MASK_B_ADC_READY (1 << 2)
-+#define IRQ_MASK_B_CCTO (1 << 1)
-+#define IRQ_MASK_B_TCTO (1 << 0)
-+
-+#define IRQ_MASK_C 0x07
-+#define IRQ_MASK_C_ADC_IN5 (1 << 7)
-+#define IRQ_MASK_C_ADC_IN4 (1 << 6)
-+#define IRQ_MASK_C_BUCK2 (1 << 5)
-+#define IRQ_MASK_C_LDO19 (1 << 4)
-+#define IRQ_MASK_C_LDO18 (1 << 3)
-+#define IRQ_MASK_C_LDO17 (1 << 2)
-+#define IRQ_MASK_C_LDO16 (1 << 1)
-+#define IRQ_MASK_C_LDO15 (1 << 0)
-+
-+#define SYS_CTRL_A 0x08
-+#define SYS_CONTROL_A_SLEEP_N_PIN_ENABLE 0x1
-+#define SYS_CONTROL_A_SHUT_DOWN (1<<1)
-+#define SYS_CONTROL_A_HWRES_ENABLE (1<<2)
-+#define SYS_CONTROL_A_WDOG_ACTION (1<<3)
-+#define SYS_CONTROL_A_WATCHDOG (1<<7)
-+
-+#define SYS_CONTROL_B 0x09
-+#define SYS_CLTR_B_SLEEP_13MHZ_EN (1 << 4)
-+#define SYS_CLTR_B_AUTO_CLK_SWITCH (1 << 3)
-+
-+#define FAULT_LOG 0x0a
-+#define FAULT_LOG_OVER_TEMP (1 << 7)
-+#define FAULT_LOG_VBAT_OVER (1 << 4)
-+
-+#define LDO_10_11 0x10
-+#define LDO_10_11_LDO10_3V (0xc)
-+#define LDO_10_11_LDO11_3V2 (0xe << 4)
-+
-+#define LDO_15 0x11
-+#define LDO_14_16 0x12
-+#define LDO_18_19 0x13
-+#define LDO_18_19_LDO18_3V2 (0xe)
-+
-+#define LDO_17_SIMCP0 0x14
-+#define LDO_17_SIMCP0_LDO17_3V 0x0F
-+
-+#define BUCK_2_DVC1 0x15
-+#define BUCK_2_GO (1 << 7)
-+#define BUCK_2_SLEEP (1 << 6)
-+#define BUCK_2_TRIM_1V5 (0x1a)
-+
-+#define BUCK_2_DVC2 0x16
-+
-+#define REG_CONTROL_1_17 0x17
-+#define RC1_LDO17_EN (1 << 7)
-+#define RC1_LDO16_EN (1 << 6)
-+#define RC1_LDO15_EN (1 << 5)
-+#define RC1_LDO14_EN (1 << 4)
-+#define RC1_LDO13_EN (1 << 3)
-+#define RC1_LDO11_EN (1 << 2)
-+#define RC1_LDO10_EN (1 << 1)
-+#define RC1_BUCK2_EN (1 << 0)
-+
-+#define REG_CONTROL_2_18 0x18
-+#define RC2_SIMCP_EN (1 << 6)
-+#define RC2_LDO19_EN (1 << 1)
-+#define RC2_LDO18_EN (1 << 0)
-+
-+#define REG_CONTROL_3_
-+
-+#define USBPUMP 0x19
-+#define USB_PUMP_EN_USBVEP (1 << 7)
-+#define USB_PUMP_EN_USBVE (1 << 6)
-+#define USB_PUMP_SPR_DETECT (1 << 5)
-+#define USB_PUMP_SESSION_VALID (1 << 4)
-+#define USB_PUMP_VBUS_VALID_4_0 (1 << 3)
-+#define USB_PUMP_VBUS_VALID_4_4 (1 << 2)
-+#define USB_PUMP_USBVEP (1 << 1)
-+#define USB_PUMP_USBVE (1 << 0)
-+
-+#define SLEEP_CONTROL 0x1a
-+#define APP_SLEEP_CTL_PWR_EN (1 << 7)
-+#define APP_SLEEP_CTL_SYS_EN (1 << 6)
-+#define APP_SLEEP_CTL_BYPASS_LDO19 (1 << 2)
-+#define APP_SLEEP_CTL_BYPASS_LDO18 (1 << 1)
-+#define APP_SLEEP_CTL_BYPASS_LDO17 (1 << 0)
-+
-+#define STARTUP_CONTROL 0x1b
-+#define STARTUP_CTL_LDO11_PWR_SYS (1 << 3)
-+#define STARTUP_CTL_LDO10_PWR_SYS (1 << 2)
-+#define STARTUP_CTL_LDO11_START (1 << 1)
-+#define STARTUP_CTL_LDO10_START (1 << 0)
-+
-+#define LED_1_CONTROL 0x20
-+#define LED_2_CONTROL 0x21
-+#define LED_3_CONTROL 0x22
-+#define LED_4_CONTROL 0x23
-+#define LEDPC_CONTROL 0x24
-+#define LED_ENABLE (1 << 7)
-+
-+#define WLED_CONTROL 0x25
-+#define WLED_CP_ENABLE (1 << 6)
-+#define WLED_ISET_10 (3)
-+
-+#define MISC_CONTROLA 0x26
-+#define MISC_CONTROLB 0x27
-+#define MISCB_SESSION_VALID_ENABLE (1 << 3)
-+#define MISCB_USB_INT_RISING (1 << 2)
-+#define MISCB_I2C_ADDRESS (1 << 1)
-+#define MISCB_STARTUP_SEQUENCE (1 << 0)
-+
-+#define CHARGE_CONTROL 0x28
-+#define CHRG_CHARGER_ENABLE (1 << 7)
-+
-+#define CCTR_CONTROL 0x29
-+#define CCTR_SET_8MIN 0x01
-+
-+#define TCTR_CONTROL 0x2a
-+#define CHARGE_PULSE 0x2b
-+
-+#define ADC_MAN_CONTROL 0x30
-+
-+#define ADC_AUTO_CONTROL 0x31
-+#define ADC_IN5_EN (1 << 7)
-+#define ADC_IN4_EN (1 << 6)
-+#define ADC_TBAT_ENABLE (1 << 5)
-+#define ADC_VBAT_IN_TXON (1 << 4)
-+#define ADC_VCH_ENABLE (1 << 3)
-+#define ADC_ICH_ENABLE (1 << 2)
-+#define ADC_VBAT_ENABLE (1 << 1)
-+#define ADC_AUTO_SLEEP_ENABLE (1 << 0)
-+
-+#define VBATMON 0x32
-+#define VBATMONTXON 0x33
-+#define TBATHIGHP 0x34
-+#define TBATHIGHN 0x35
-+#define TBATLOW 0x36
-+#define ADC_IN4_MIN 0x37
-+#define ADC_IN4_MAX 0x38
-+#define ADC_IN5_MIN 0x39
-+#define ADC_IN5_MAX 0x3a
-+
-+#define VBAT_RES 0x41
-+#define VBATMIN_RES 0x42
-+#define VBATMINTXON 0x43
-+#define ICHMAX_RES 0x44
-+#define ICHMIN_RES 0x45
-+#define ICHAVERAGE_RES 0x46
-+#define VCHMAX_RES 0x47
-+#define VCHMIN_RES 0x48
-+#define TBAT_RES 0x49
-+#define ADC_IN4_RES 0x4a
-+#define ADC_IN5_RES 0x4b
-+
-+#define LDO_1 0x90
-+#define LDO_1_UNLOCK (0x5 << 5)
-+#define LDO_1_TRIM_3V (0x12)
-+
-+#define LDO_2_3 0x91
-+#define LDO_2_3_LDO2_3V2 (0xe << 4)
-+#define LDO_2_3_LDO3_3V (0xc)
-+
-+#define LDO_4_5 0x92
-+#define LDO_6_SIMCP 0x93
-+#define LDO_6_SIMCP_LDO6_3V2 (0xe)
-+
-+#define LDO_7_8 0x94
-+#define LDO_9_12 0x95
-+#define BUCK 0x96
-+#define REG_CONTROL_1_97 0x97
-+#define RC3_LDO7_EN (1 << 7)
-+#define RC3_LDO6_EN (1 << 6)
-+#define RC3_LDO5_EN (1 << 5)
-+#define RC3_LDO4_EN (1 << 4)
-+#define RC3_LDO3_EN (1 << 3)
-+#define RC3_LDO2_EN (1 << 2)
-+#define RC3_LDO1_EN (1 << 1)
-+#define RC3_BUCK_EN (1 << 0)
-+
-+#define REG_CONTROL_2_98 0x98
-+#define RC4_SLEEP (1 << 7)
-+#define RC4_SIMCP_ENABLE (1 << 6)
-+#define RC4_LDO14_EN (1 << 5)
-+#define RC4_LDO12_EN (1 << 4)
-+#define RC4_LDO11_EN (1 << 3)
-+#define RC4_LDO10_EN (1 << 2)
-+#define RC4_LDO9_EN (1 << 1)
-+#define RC4_LDO8_EN (1 << 0)
-+
-+#define REG_SLEEP_CONTROL1 0x99
-+#define REG_SLEEP_CONTROL2 0x9a
-+#define REG_SLEEP_CONTROL3 0x9b
-+
-+#define ADC_MAN_CONTROL_1 0xa0
-+#define ADC_DEBOUNCE_VBATMON_TXON (1 << 7)
-+#define ADC_DEBOUNCE_VBATMON (1 << 6)
-+#define ADC_TBATREF_ENABLE (1 << 5)
-+#define ADC_LDO_INT_ENABLE (1 << 4)
-+#define ADC_MAN_CONV (1 << 3)
-+#define ADC_MUX_VBAT (0)
-+
-+#define ADC_AUTO_CONTROL_1 0xa1
-+#define ADC_IN5_EN (1 << 7)
-+#define ADC_IN4_EN (1 << 6)
-+#define ADC_TBAT_ENABLE (1 << 5)
-+#define ADC_VBAT_IN_TXON (1 << 4)
-+#define ADC_VCH_ENABLE (1 << 3)
-+#define ADC_ICH_ENABLE (1 << 2)
-+#define ADC_VBAT_ENABLE (1 << 1)
-+#define ADC_AUTO_SLEEP_ENABLE (1 << 0)
-+
-+#define VBATMON_1 0xa2
-+#define VBATMONTXMON_1 0xa3
-+#define TBATHIGHP_1 0xa4
-+#define TBATHIGHN_1 0xa5
-+#define TBATLOW_1 0xa6
-+#define MAN_RES 0xb0
-+#define VBAT_RES_1 0xb1
-+#define VBATMIN_RES_1 0xb2
-+#define VBATMINTXON_RES 0xb3
-+#define ICHMAX_RES_1 0xb4
-+#define ICHMIN_RES_1 0xb5
-+#define ICHAVERAGE_RES_1 0xb6
-+#define VCHMAX_RES_1 0xb7
-+#define VCHMIN_RES_1 0xb8
-+#define TBAT_RES_1 0xb9
-+#define ADC_IN4_RES_1 0xba
-diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
-index f929fcd..174ea2e 100644
---- a/drivers/input/touchscreen/Kconfig
-+++ b/drivers/input/touchscreen/Kconfig
-@@ -126,6 +126,49 @@ config TOUCHSCREEN_HP600
- To compile this driver as a module, choose M here: the
- module will be called hp680_ts_input.
-
-+config TOUCHSCREEN_WM97XX
-+ tristate "Support for WM97xx AC97 touchscreen controllers"
-+ depends AC97_BUS
-+
-+choice
-+ prompt "WM97xx codec type"
-+ depends TOUCHSCREEN_WM97XX
-+
-+config TOUCHSCREEN_WM9705
-+ bool "WM9705 Touchscreen interface support"
-+ depends on TOUCHSCREEN_WM97XX
-+ help
-+ Say Y here if you have the wm9705 touchscreen.
-+
-+ If unsure, say N.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called wm9705.
-+
-+config TOUCHSCREEN_WM9712
-+ bool "WM9712 Touchscreen interface support"
-+ depends on TOUCHSCREEN_WM97XX
-+ help
-+ Say Y here if you have the wm9712 touchscreen.
-+
-+ If unsure, say N.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called wm9712.
-+
-+config TOUCHSCREEN_WM9713
-+ bool "WM9713 Touchscreen interface support"
-+ depends on TOUCHSCREEN_WM97XX
-+ help
-+ Say Y here if you have the wm9713 touchscreen.
-+
-+ If unsure, say N.
-+
-+ To compile this driver as a module, choose M here: the
-+ module will be called wm9713.
-+
-+endchoice
-+
- config TOUCHSCREEN_PENMOUNT
- tristate "Penmount serial touchscreen"
- select SERIO
-diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
-index 5de8933..3a059b1 100644
---- a/drivers/input/touchscreen/Makefile
-+++ b/drivers/input/touchscreen/Makefile
-@@ -3,6 +3,7 @@
- #
-
- # Each configuration option enables a list of files.
-+wm97xx-ts-objs := wm97xx-core.o
-
- obj-$(CONFIG_TOUCHSCREEN_ADS7846) += ads7846.o
- obj-$(CONFIG_TOUCHSCREEN_BITSY) += h3600_ts_input.o
-@@ -18,3 +19,16 @@ obj-$(CONFIG_TOUCHSCREEN_PENMOUNT) += penmount.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHRIGHT) += touchright.o
- obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
- obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
-+obj-$(CONFIG_TOUCHSCREEN_WM97XX) += wm97xx-ts.o
-+
-+ifeq ($(CONFIG_TOUCHSCREEN_WM9713),y)
-+wm97xx-ts-objs += wm9713.o
-+endif
-+
-+ifeq ($(CONFIG_TOUCHSCREEN_WM9712),y)
-+wm97xx-ts-objs += wm9712.o
-+endif
-+
-+ifeq ($(CONFIG_TOUCHSCREEN_WM9705),y)
-+wm97xx-ts-objs += wm9705.o
-+endif
-diff --git a/drivers/input/touchscreen/wm9705.c b/drivers/input/touchscreen/wm9705.c
-new file mode 100644
-index 0000000..1dae63d
---- /dev/null
-+++ b/drivers/input/touchscreen/wm9705.c
-@@ -0,0 +1,360 @@
-+/*
-+ * wm9705.c -- Codec driver for Wolfson WM9705 AC97 Codec.
-+ *
-+ * 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>
-+ * Andrew Zabolotny <zap@homelink.ru>
-+ * Russell King <rmk@arm.linux.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 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * Revision history
-+ * 6th Sep 2006 Mike Arthur <linux@wolfsonmicro.com>
-+ * Added pre and post sample calls.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/version.h>
-+#include <linux/kernel.h>
-+#include <linux/input.h>
-+#include <linux/delay.h>
-+#include <linux/bitops.h>
-+#include <linux/wm97xx.h>
-+
-+#define TS_NAME "wm97xx"
-+#define WM9705_VERSION "0.62"
-+#define DEFAULT_PRESSURE 0xb0c0
-+
-+/*
-+ * Debug
-+ */
-+#if 0
-+#define dbg(format, arg...) printk(KERN_DEBUG TS_NAME ": " format "\n" , ## arg)
-+#else
-+#define dbg(format, arg...)
-+#endif
-+#define err(format, arg...) printk(KERN_ERR TS_NAME ": " format "\n" , ## arg)
-+#define info(format, arg...) printk(KERN_INFO TS_NAME ": " format "\n" , ## arg)
-+#define warn(format, arg...) printk(KERN_WARNING TS_NAME ": " format "\n" , ## arg)
-+
-+/*
-+ * Module parameters
-+ */
-+
-+/*
-+ * Set current used for pressure measurement.
-+ *
-+ * Set pil = 2 to use 400uA
-+ * pil = 1 to use 200uA and
-+ * pil = 0 to disable pressure measurement.
-+ *
-+ * This is used to increase the range of values returned by the adc
-+ * when measureing touchpanel pressure.
-+ */
-+static int pil = 0;
-+module_param(pil, int, 0);
-+MODULE_PARM_DESC(pil, "Set current used for pressure measurement.");
-+
-+/*
-+ * Set threshold for pressure measurement.
-+ *
-+ * Pen down pressure below threshold is ignored.
-+ */
-+static int pressure = DEFAULT_PRESSURE & 0xfff;
-+module_param(pressure, int, 0);
-+MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement.");
-+
-+/*
-+ * Set adc sample delay.
-+ *
-+ * For accurate touchpanel measurements, some settling time may be
-+ * required between the switch matrix applying a voltage across the
-+ * touchpanel plate and the ADC sampling the signal.
-+ *
-+ * This delay can be set by setting delay = n, where n is the array
-+ * position of the delay in the array delay_table below.
-+ * Long delays > 1ms are supported for completeness, but are not
-+ * recommended.
-+ */
-+static int delay = 4;
-+module_param(delay, int, 0);
-+MODULE_PARM_DESC(delay, "Set adc sample delay.");
-+
-+/*
-+ * Pen detect comparator threshold.
-+ *
-+ * 0 to Vmid in 15 steps, 0 = use zero power comparator with Vmid threshold
-+ * i.e. 1 = Vmid/15 threshold
-+ * 15 = Vmid/1 threshold
-+ *
-+ * Adjust this value if you are having problems with pen detect not
-+ * detecting any down events.
-+ */
-+static int pdd = 8;
-+module_param(pdd, int, 0);
-+MODULE_PARM_DESC(pdd, "Set pen detect comparator threshold");
-+
-+/*
-+ * Set adc mask function.
-+ *
-+ * Sources of glitch noise, such as signals driving an LCD display, may feed
-+ * through to the touch screen plates and affect measurement accuracy. In
-+ * order to minimise this, a signal may be applied to the MASK pin to delay or
-+ * synchronise the sampling.
-+ *
-+ * 0 = No delay or sync
-+ * 1 = High on pin stops conversions
-+ * 2 = Edge triggered, edge on pin delays conversion by delay param (above)
-+ * 3 = Edge triggered, edge on pin starts conversion after delay param
-+ */
-+static int mask = 0;
-+module_param(mask, int, 0);
-+MODULE_PARM_DESC(mask, "Set adc mask function.");
-+
-+/*
-+ * ADC sample delay times in uS
-+ */
-+static const int delay_table[] = {
-+ 21, // 1 AC97 Link frames
-+ 42, // 2
-+ 84, // 4
-+ 167, // 8
-+ 333, // 16
-+ 667, // 32
-+ 1000, // 48
-+ 1333, // 64
-+ 2000, // 96
-+ 2667, // 128
-+ 3333, // 160
-+ 4000, // 192
-+ 4667, // 224
-+ 5333, // 256
-+ 6000, // 288
-+ 0 // No delay, switch matrix always on
-+};
-+
-+/*
-+ * Delay after issuing a POLL command.
-+ *
-+ * The delay is 3 AC97 link frames + the touchpanel settling delay
-+ */
-+static inline void poll_delay(int d)
-+{
-+ udelay (3 * AC97_LINK_FRAME + delay_table [d]);
-+}
-+
-+/*
-+ * set up the physical settings of the WM9705
-+ */
-+static void init_wm9705_phy(struct wm97xx* wm)
-+{
-+ u16 dig1 = 0, dig2 = WM97XX_RPR;
-+
-+ /*
-+ * mute VIDEO and AUX as they share X and Y touchscreen
-+ * inputs on the WM9705
-+ */
-+ wm97xx_reg_write(wm, AC97_AUX, 0x8000);
-+ wm97xx_reg_write(wm, AC97_VIDEO, 0x8000);
-+
-+ /* touchpanel pressure current*/
-+ if (pil == 2) {
-+ dig2 |= WM9705_PIL;
-+ dbg("setting pressure measurement current to 400uA.");
-+ } else if (pil)
-+ dbg("setting pressure measurement current to 200uA.");
-+ if(!pil)
-+ pressure = 0;
-+
-+ /* polling mode sample settling delay */
-+ if (delay!=4) {
-+ if (delay < 0 || delay > 15) {
-+ dbg("supplied delay out of range.");
-+ delay = 4;
-+ }
-+ }
-+ dig1 &= 0xff0f;
-+ dig1 |= WM97XX_DELAY(delay);
-+ dbg("setting adc sample delay to %d u Secs.", delay_table[delay]);
-+
-+ /* WM9705 pdd */
-+ dig2 |= (pdd & 0x000f);
-+ dbg("setting pdd to Vmid/%d", 1 - (pdd & 0x000f));
-+
-+ /* mask */
-+ dig2 |= ((mask & 0x3) << 4);
-+
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);
-+}
-+
-+static int wm9705_digitiser_ioctl(struct wm97xx* wm, int cmd)
-+{
-+ switch(cmd) {
-+ case WM97XX_DIG_START:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig[2] | WM97XX_PRP_DET_DIG);
-+ wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */
-+ break;
-+ case WM97XX_DIG_STOP:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig[2] & ~WM97XX_PRP_DET_DIG);
-+ break;
-+ case WM97XX_AUX_PREPARE:
-+ memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, 0);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, WM97XX_PRP_DET_DIG);
-+ break;
-+ case WM97XX_DIG_RESTORE:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, wm->dig_save[1]);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig_save[2]);
-+ break;
-+ case WM97XX_PHY_INIT:
-+ init_wm9705_phy(wm);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+
-+static inline int is_pden (struct wm97xx* wm)
-+{
-+ return wm->dig[2] & WM9705_PDEN;
-+}
-+
-+/*
-+ * Read a sample from the WM9705 adc in polling mode.
-+ */
-+static int wm9705_poll_sample (struct wm97xx* wm, int adcsel, int *sample)
-+{
-+ int timeout = 5 * delay;
-+
-+ if (!wm->pen_probably_down) {
-+ u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (!(data & WM97XX_PEN_DOWN))
-+ return RC_PENUP;
-+ wm->pen_probably_down = 1;
-+ }
-+
-+ /* set up digitiser */
-+ if (adcsel & 0x8000)
-+ adcsel = ((adcsel & 0x7fff) + 3) << 12;
-+
-+ if (wm->mach_ops && wm->mach_ops->pre_sample)
-+ wm->mach_ops->pre_sample(adcsel);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay));
-+
-+ /* wait 3 AC97 time slots + delay for conversion */
-+ poll_delay (delay);
-+
-+ /* wait for POLL to go low */
-+ while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) && timeout) {
-+ udelay(AC97_LINK_FRAME);
-+ timeout--;
-+ }
-+
-+ if (timeout <= 0) {
-+ /* If PDEN is set, we can get a timeout when pen goes up */
-+ if (is_pden(wm))
-+ wm->pen_probably_down = 0;
-+ else
-+ dbg ("adc sample timeout");
-+ return RC_PENUP;
-+ }
-+
-+ *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (wm->mach_ops && wm->mach_ops->post_sample)
-+ wm->mach_ops->post_sample(adcsel);
-+
-+ /* check we have correct sample */
-+ if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) {
-+ dbg ("adc wrong sample, read %x got %x", adcsel,
-+ *sample & WM97XX_ADCSEL_MASK);
-+ return RC_PENUP;
-+ }
-+
-+ if (!(*sample & WM97XX_PEN_DOWN)) {
-+ wm->pen_probably_down = 0;
-+ return RC_PENUP;
-+ }
-+
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Sample the WM9705 touchscreen in polling mode
-+ */
-+static int wm9705_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
-+{
-+ int rc;
-+
-+ if ((rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_X, &data->x)) != RC_VALID)
-+ return rc;
-+ if ((rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y)) != RC_VALID)
-+ return rc;
-+ if (pil) {
-+ if ((rc = wm9705_poll_sample(wm, WM97XX_ADCSEL_PRES, &data->p)) != RC_VALID)
-+ return rc;
-+ } else
-+ data->p = DEFAULT_PRESSURE;
-+
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Enable WM9705 continuous mode, i.e. touch data is streamed across an AC97 slot
-+ */
-+static int wm9705_acc_enable (struct wm97xx* wm, int enable)
-+{
-+ u16 dig1, dig2;
-+ int ret = 0;
-+
-+ dig1 = wm->dig[1];
-+ dig2 = wm->dig[2];
-+
-+ if (enable) {
-+ /* continous mode */
-+ if (wm->mach_ops->acc_startup && (ret = wm->mach_ops->acc_startup(wm)) < 0)
-+ return ret;
-+ dig1 &= ~(WM97XX_CM_RATE_MASK | WM97XX_ADCSEL_MASK |
-+ WM97XX_DELAY_MASK | WM97XX_SLT_MASK);
-+ dig1 |= WM97XX_CTC | WM97XX_COO | WM97XX_SLEN |
-+ WM97XX_DELAY (delay) |
-+ WM97XX_SLT (wm->acc_slot) |
-+ WM97XX_RATE (wm->acc_rate);
-+ if (pil)
-+ dig1 |= WM97XX_ADCSEL_PRES;
-+ dig2 |= WM9705_PDEN;
-+ } else {
-+ dig1 &= ~(WM97XX_CTC | WM97XX_COO | WM97XX_SLEN);
-+ dig2 &= ~WM9705_PDEN;
-+ if (wm->mach_ops->acc_shutdown)
-+ wm->mach_ops->acc_shutdown(wm);
-+ }
-+
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);
-+ return ret;
-+}
-+
-+struct wm97xx_codec_drv wm97xx_codec = {
-+ .id = WM9705_ID2,
-+ .name = "wm9705",
-+ .poll_sample = wm9705_poll_sample,
-+ .poll_touch = wm9705_poll_touch,
-+ .acc_enable = wm9705_acc_enable,
-+ .digitiser_ioctl = wm9705_digitiser_ioctl,
-+};
-+
-+EXPORT_SYMBOL_GPL(wm97xx_codec);
-+
-+/* Module information */
-+MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
-+MODULE_DESCRIPTION("WM9705 Touch Screen Driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/input/touchscreen/wm9712.c b/drivers/input/touchscreen/wm9712.c
-new file mode 100644
-index 0000000..99433e9
---- /dev/null
-+++ b/drivers/input/touchscreen/wm9712.c
-@@ -0,0 +1,464 @@
-+/*
-+ * wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs.
-+ *
-+ * 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>
-+ * Andrew Zabolotny <zap@homelink.ru>
-+ * Russell King <rmk@arm.linux.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 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * Revision history
-+ * 4th Jul 2005 Initial version.
-+ * 6th Sep 2006 Mike Arthur <linux@wolfsonmicro.com>
-+ * Added pre and post sample calls.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/version.h>
-+#include <linux/kernel.h>
-+#include <linux/input.h>
-+#include <linux/delay.h>
-+#include <linux/bitops.h>
-+#include <linux/wm97xx.h>
-+
-+#define TS_NAME "wm97xx"
-+#define WM9712_VERSION "0.61"
-+#define DEFAULT_PRESSURE 0xb0c0
-+
-+/*
-+ * Debug
-+ */
-+#if 0
-+#define dbg(format, arg...) printk(KERN_DEBUG TS_NAME ": " format "\n" , ## arg)
-+#else
-+#define dbg(format, arg...)
-+#endif
-+#define err(format, arg...) printk(KERN_ERR TS_NAME ": " format "\n" , ## arg)
-+#define info(format, arg...) printk(KERN_INFO TS_NAME ": " format "\n" , ## arg)
-+#define warn(format, arg...) printk(KERN_WARNING TS_NAME ": " format "\n" , ## arg)
-+
-+/*
-+ * Module parameters
-+ */
-+
-+/*
-+ * Set internal pull up for pen detect.
-+ *
-+ * Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
-+ * i.e. pull up resistance = 64k Ohms / rpu.
-+ *
-+ * Adjust this value if you are having problems with pen detect not
-+ * detecting any down event.
-+ */
-+static int rpu = 8;
-+module_param(rpu, int, 0);
-+MODULE_PARM_DESC(rpu, "Set internal pull up resitor for pen detect.");
-+
-+/*
-+ * Set current used for pressure measurement.
-+ *
-+ * Set pil = 2 to use 400uA
-+ * pil = 1 to use 200uA and
-+ * pil = 0 to disable pressure measurement.
-+ *
-+ * This is used to increase the range of values returned by the adc
-+ * when measureing touchpanel pressure.
-+ */
-+static int pil = 0;
-+module_param(pil, int, 0);
-+MODULE_PARM_DESC(pil, "Set current used for pressure measurement.");
-+
-+/*
-+ * Set threshold for pressure measurement.
-+ *
-+ * Pen down pressure below threshold is ignored.
-+ */
-+static int pressure = DEFAULT_PRESSURE & 0xfff;
-+module_param(pressure, int, 0);
-+MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement.");
-+
-+/*
-+ * Set adc sample delay.
-+ *
-+ * For accurate touchpanel measurements, some settling time may be
-+ * required between the switch matrix applying a voltage across the
-+ * touchpanel plate and the ADC sampling the signal.
-+ *
-+ * This delay can be set by setting delay = n, where n is the array
-+ * position of the delay in the array delay_table below.
-+ * Long delays > 1ms are supported for completeness, but are not
-+ * recommended.
-+ */
-+static int delay = 3;
-+module_param(delay, int, 0);
-+MODULE_PARM_DESC(delay, "Set adc sample delay.");
-+
-+/*
-+ * Set five_wire = 1 to use a 5 wire touchscreen.
-+ *
-+ * NOTE: Five wire mode does not allow for readback of pressure.
-+ */
-+static int five_wire;
-+module_param(five_wire, int, 0);
-+MODULE_PARM_DESC(five_wire, "Set to '1' to use 5-wire touchscreen.");
-+
-+/*
-+ * Set adc mask function.
-+ *
-+ * Sources of glitch noise, such as signals driving an LCD display, may feed
-+ * through to the touch screen plates and affect measurement accuracy. In
-+ * order to minimise this, a signal may be applied to the MASK pin to delay or
-+ * synchronise the sampling.
-+ *
-+ * 0 = No delay or sync
-+ * 1 = High on pin stops conversions
-+ * 2 = Edge triggered, edge on pin delays conversion by delay param (above)
-+ * 3 = Edge triggered, edge on pin starts conversion after delay param
-+ */
-+static int mask = 0;
-+module_param(mask, int, 0);
-+MODULE_PARM_DESC(mask, "Set adc mask function.");
-+
-+/*
-+ * Coordinate Polling Enable.
-+ *
-+ * Set to 1 to enable coordinate polling. e.g. x,y[,p] is sampled together
-+ * for every poll.
-+ */
-+static int coord = 0;
-+module_param(coord, int, 0);
-+MODULE_PARM_DESC(coord, "Polling coordinate mode");
-+
-+/*
-+ * ADC sample delay times in uS
-+ */
-+static const int delay_table[] = {
-+ 21, // 1 AC97 Link frames
-+ 42, // 2
-+ 84, // 4
-+ 167, // 8
-+ 333, // 16
-+ 667, // 32
-+ 1000, // 48
-+ 1333, // 64
-+ 2000, // 96
-+ 2667, // 128
-+ 3333, // 160
-+ 4000, // 192
-+ 4667, // 224
-+ 5333, // 256
-+ 6000, // 288
-+ 0 // No delay, switch matrix always on
-+};
-+
-+/*
-+ * Delay after issuing a POLL command.
-+ *
-+ * The delay is 3 AC97 link frames + the touchpanel settling delay
-+ */
-+static inline void poll_delay(int d)
-+{
-+ udelay (3 * AC97_LINK_FRAME + delay_table [d]);
-+}
-+
-+/*
-+ * set up the physical settings of the WM9712
-+ */
-+static void init_wm9712_phy(struct wm97xx* wm)
-+{
-+ u16 dig1 = 0;
-+ u16 dig2 = WM97XX_RPR | WM9712_RPU(1);
-+
-+ /* WM9712 rpu */
-+ if (rpu) {
-+ dig2 &= 0xffc0;
-+ dig2 |= WM9712_RPU(rpu);
-+ dbg("setting pen detect pull-up to %d Ohms",64000 / rpu);
-+ }
-+
-+ /* touchpanel pressure current*/
-+ if (pil == 2) {
-+ dig2 |= WM9712_PIL;
-+ dbg("setting pressure measurement current to 400uA.");
-+ } else if (pil)
-+ dbg("setting pressure measurement current to 200uA.");
-+ if(!pil)
-+ pressure = 0;
-+
-+ /* WM9712 five wire */
-+ if (five_wire) {
-+ dig2 |= WM9712_45W;
-+ dbg("setting 5-wire touchscreen mode.");
-+ }
-+
-+ /* polling mode sample settling delay */
-+ if (delay < 0 || delay > 15) {
-+ dbg("supplied delay out of range.");
-+ delay = 4;
-+ }
-+ dig1 &= 0xff0f;
-+ dig1 |= WM97XX_DELAY(delay);
-+ dbg("setting adc sample delay to %d u Secs.", delay_table[delay]);
-+
-+ /* mask */
-+ dig2 |= ((mask & 0x3) << 6);
-+ if (mask) {
-+ u16 reg;
-+ /* Set GPIO4 as Mask Pin*/
-+ reg = wm97xx_reg_read(wm, AC97_MISC_AFE);
-+ wm97xx_reg_write(wm, AC97_MISC_AFE, reg | WM97XX_GPIO_4);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_CFG);
-+ wm97xx_reg_write(wm, AC97_GPIO_CFG, reg | WM97XX_GPIO_4);
-+ }
-+
-+ /* wait - coord mode */
-+ if(coord)
-+ dig2 |= WM9712_WAIT;
-+
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);
-+}
-+
-+static int wm9712_digitiser_ioctl(struct wm97xx* wm, int cmd)
-+{
-+ u16 dig2 = wm->dig[2];
-+
-+ switch(cmd) {
-+ case WM97XX_DIG_START:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2 | WM97XX_PRP_DET_DIG);
-+ wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */
-+ break;
-+ case WM97XX_DIG_STOP:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2 & ~WM97XX_PRP_DET_DIG);
-+ break;
-+ case WM97XX_AUX_PREPARE:
-+ memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, 0);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, WM97XX_PRP_DET_DIG);
-+ break;
-+ case WM97XX_DIG_RESTORE:
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, wm->dig_save[1]);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig_save[2]);
-+ break;
-+ case WM97XX_PHY_INIT:
-+ init_wm9712_phy(wm);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+
-+static inline int is_pden (struct wm97xx* wm)
-+{
-+ return wm->dig[2] & WM9712_PDEN;
-+}
-+
-+/*
-+ * Read a sample from the WM9712 adc in polling mode.
-+ */
-+static int wm9712_poll_sample (struct wm97xx* wm, int adcsel, int *sample)
-+{
-+ int timeout = 5 * delay;
-+
-+ if (!wm->pen_probably_down) {
-+ u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (!(data & WM97XX_PEN_DOWN))
-+ return RC_PENUP;
-+ wm->pen_probably_down = 1;
-+ }
-+
-+ /* set up digitiser */
-+ if (adcsel & 0x8000)
-+ adcsel = ((adcsel & 0x7fff) + 3) << 12;
-+
-+ if (wm->mach_ops && wm->mach_ops->pre_sample)
-+ wm->mach_ops->pre_sample(adcsel);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay));
-+
-+ /* wait 3 AC97 time slots + delay for conversion */
-+ poll_delay (delay);
-+
-+ /* wait for POLL to go low */
-+ while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) && timeout) {
-+ udelay(AC97_LINK_FRAME);
-+ timeout--;
-+ }
-+
-+ if (timeout <= 0) {
-+ /* If PDEN is set, we can get a timeout when pen goes up */
-+ if (is_pden(wm))
-+ wm->pen_probably_down = 0;
-+ else
-+ dbg ("adc sample timeout");
-+ return RC_PENUP;
-+ }
-+
-+ *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (wm->mach_ops && wm->mach_ops->post_sample)
-+ wm->mach_ops->post_sample(adcsel);
-+
-+ /* check we have correct sample */
-+ if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) {
-+ dbg ("adc wrong sample, read %x got %x", adcsel,
-+ *sample & WM97XX_ADCSEL_MASK);
-+ return RC_PENUP;
-+ }
-+
-+ if (!(*sample & WM97XX_PEN_DOWN)) {
-+ wm->pen_probably_down = 0;
-+ return RC_PENUP;
-+ }
-+
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Read a coord from the WM9712 adc in polling mode.
-+ */
-+static int wm9712_poll_coord (struct wm97xx* wm, struct wm97xx_data *data)
-+{
-+ int timeout = 5 * delay;
-+
-+ if (!wm->pen_probably_down) {
-+ u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (!(data & WM97XX_PEN_DOWN))
-+ return RC_PENUP;
-+ wm->pen_probably_down = 1;
-+ }
-+
-+ /* set up digitiser */
-+ if (wm->mach_ops && wm->mach_ops->pre_sample)
-+ wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
-+
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1,
-+ WM97XX_COO | WM97XX_POLL | WM97XX_DELAY(delay));
-+
-+ /* wait 3 AC97 time slots + delay for conversion and read x */
-+ poll_delay(delay);
-+ data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ /* wait for POLL to go low */
-+ while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL) && timeout) {
-+ udelay(AC97_LINK_FRAME);
-+ timeout--;
-+ }
-+
-+ if (timeout <= 0) {
-+ /* If PDEN is set, we can get a timeout when pen goes up */
-+ if (is_pden(wm))
-+ wm->pen_probably_down = 0;
-+ else
-+ dbg ("adc sample timeout");
-+ return RC_PENUP;
-+ }
-+
-+ /* read back y data */
-+ data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (pil)
-+ data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ else
-+ data->p = DEFAULT_PRESSURE;
-+
-+ if (wm->mach_ops && wm->mach_ops->post_sample)
-+ wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
-+
-+ /* check we have correct sample */
-+ if (!(data->x & WM97XX_ADCSEL_X) || !(data->y & WM97XX_ADCSEL_Y))
-+ goto err;
-+ if(pil && !(data->p & WM97XX_ADCSEL_PRES))
-+ goto err;
-+
-+ if (!(data->x & WM97XX_PEN_DOWN)) {
-+ wm->pen_probably_down = 0;
-+ return RC_PENUP;
-+ }
-+ return RC_VALID;
-+err:
-+ return RC_PENUP;
-+}
-+
-+/*
-+ * Sample the WM9712 touchscreen in polling mode
-+ */
-+static int wm9712_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
-+{
-+ int rc;
-+
-+ if(coord) {
-+ if((rc = wm9712_poll_coord(wm, data)) != RC_VALID)
-+ return rc;
-+ } else {
-+ 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;
-+ } else
-+ data->p = DEFAULT_PRESSURE;
-+ }
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Enable WM9712 continuous mode, i.e. touch data is streamed across an AC97 slot
-+ */
-+static int wm9712_acc_enable (struct wm97xx* wm, int enable)
-+{
-+ u16 dig1, dig2;
-+ int ret = 0;
-+
-+ dig1 = wm->dig[1];
-+ dig2 = wm->dig[2];
-+
-+ if (enable) {
-+ /* continous mode */
-+ if (wm->mach_ops->acc_startup && (ret = wm->mach_ops->acc_startup(wm)) < 0)
-+ return ret;
-+ dig1 &= ~(WM97XX_CM_RATE_MASK | WM97XX_ADCSEL_MASK |
-+ WM97XX_DELAY_MASK | WM97XX_SLT_MASK);
-+ dig1 |= WM97XX_CTC | WM97XX_COO | WM97XX_SLEN |
-+ WM97XX_DELAY (delay) |
-+ WM97XX_SLT (wm->acc_slot) |
-+ WM97XX_RATE (wm->acc_rate);
-+ if (pil)
-+ dig1 |= WM97XX_ADCSEL_PRES;
-+ dig2 |= WM9712_PDEN;
-+ } else {
-+ dig1 &= ~(WM97XX_CTC | WM97XX_COO | WM97XX_SLEN);
-+ dig2 &= ~WM9712_PDEN;
-+ if (wm->mach_ops->acc_shutdown)
-+ wm->mach_ops->acc_shutdown(wm);
-+ }
-+
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);
-+ return 0;
-+}
-+
-+struct wm97xx_codec_drv wm97xx_codec = {
-+ .id = WM9712_ID2,
-+ .name = "wm9712",
-+ .poll_sample = wm9712_poll_sample,
-+ .poll_touch = wm9712_poll_touch,
-+ .acc_enable = wm9712_acc_enable,
-+ .digitiser_ioctl = wm9712_digitiser_ioctl,
-+};
-+
-+EXPORT_SYMBOL_GPL(wm97xx_codec);
-+
-+/* Module information */
-+MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
-+MODULE_DESCRIPTION("WM9712 Touch Screen Driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/input/touchscreen/wm9713.c b/drivers/input/touchscreen/wm9713.c
-new file mode 100644
-index 0000000..42f5f30
---- /dev/null
-+++ b/drivers/input/touchscreen/wm9713.c
-@@ -0,0 +1,461 @@
-+/*
-+ * wm9713.c -- Codec touch driver for Wolfson WM9713 AC97 Codec.
-+ *
-+ * 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>
-+ * Andrew Zabolotny <zap@homelink.ru>
-+ * Russell King <rmk@arm.linux.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 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * Revision history
-+ * 6th Sep 2006 Mike Arthur <linux@wolfsonmicro.com>
-+ * Added pre and post sample calls.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/version.h>
-+#include <linux/kernel.h>
-+#include <linux/input.h>
-+#include <linux/delay.h>
-+#include <linux/bitops.h>
-+#include <linux/wm97xx.h>
-+
-+#define TS_NAME "wm97xx"
-+#define WM9713_VERSION "0.53"
-+#define DEFAULT_PRESSURE 0xb0c0
-+
-+/*
-+ * Debug
-+ */
-+#if 0
-+#define dbg(format, arg...) printk(KERN_DEBUG TS_NAME ": " format "\n" , ## arg)
-+#else
-+#define dbg(format, arg...)
-+#endif
-+#define err(format, arg...) printk(KERN_ERR TS_NAME ": " format "\n" , ## arg)
-+#define info(format, arg...) printk(KERN_INFO TS_NAME ": " format "\n" , ## arg)
-+#define warn(format, arg...) printk(KERN_WARNING TS_NAME ": " format "\n" , ## arg)
-+
-+/*
-+ * Module parameters
-+ */
-+
-+/*
-+ * Set internal pull up for pen detect.
-+ *
-+ * Pull up is in the range 1.02k (least sensitive) to 64k (most sensitive)
-+ * i.e. pull up resistance = 64k Ohms / rpu.
-+ *
-+ * Adjust this value if you are having problems with pen detect not
-+ * detecting any down event.
-+ */
-+static int rpu = 8;
-+module_param(rpu, int, 0);
-+MODULE_PARM_DESC(rpu, "Set internal pull up resitor for pen detect.");
-+
-+/*
-+ * Set current used for pressure measurement.
-+ *
-+ * Set pil = 2 to use 400uA
-+ * pil = 1 to use 200uA and
-+ * pil = 0 to disable pressure measurement.
-+ *
-+ * This is used to increase the range of values returned by the adc
-+ * when measureing touchpanel pressure.
-+ */
-+static int pil = 0;
-+module_param(pil, int, 0);
-+MODULE_PARM_DESC(pil, "Set current used for pressure measurement.");
-+
-+/*
-+ * Set threshold for pressure measurement.
-+ *
-+ * Pen down pressure below threshold is ignored.
-+ */
-+static int pressure = DEFAULT_PRESSURE & 0xfff;
-+module_param(pressure, int, 0);
-+MODULE_PARM_DESC(pressure, "Set threshold for pressure measurement.");
-+
-+/*
-+ * Set adc sample delay.
-+ *
-+ * For accurate touchpanel measurements, some settling time may be
-+ * required between the switch matrix applying a voltage across the
-+ * touchpanel plate and the ADC sampling the signal.
-+ *
-+ * This delay can be set by setting delay = n, where n is the array
-+ * position of the delay in the array delay_table below.
-+ * Long delays > 1ms are supported for completeness, but are not
-+ * recommended.
-+ */
-+static int delay = 4;
-+module_param(delay, int, 0);
-+MODULE_PARM_DESC(delay, "Set adc sample delay.");
-+
-+/*
-+ * Set adc mask function.
-+ *
-+ * Sources of glitch noise, such as signals driving an LCD display, may feed
-+ * through to the touch screen plates and affect measurement accuracy. In
-+ * order to minimise this, a signal may be applied to the MASK pin to delay or
-+ * synchronise the sampling.
-+ *
-+ * 0 = No delay or sync
-+ * 1 = High on pin stops conversions
-+ * 2 = Edge triggered, edge on pin delays conversion by delay param (above)
-+ * 3 = Edge triggered, edge on pin starts conversion after delay param
-+ */
-+static int mask = 0;
-+module_param(mask, int, 0);
-+MODULE_PARM_DESC(mask, "Set adc mask function.");
-+
-+/*
-+ * Coordinate Polling Enable.
-+ *
-+ * Set to 1 to enable coordinate polling. e.g. x,y[,p] is sampled together
-+ * for every poll.
-+ */
-+static int coord = 0;
-+module_param(coord, int, 0);
-+MODULE_PARM_DESC(coord, "Polling coordinate mode");
-+
-+/*
-+ * ADC sample delay times in uS
-+ */
-+static const int delay_table[] = {
-+ 21, // 1 AC97 Link frames
-+ 42, // 2
-+ 84, // 4
-+ 167, // 8
-+ 333, // 16
-+ 667, // 32
-+ 1000, // 48
-+ 1333, // 64
-+ 2000, // 96
-+ 2667, // 128
-+ 3333, // 160
-+ 4000, // 192
-+ 4667, // 224
-+ 5333, // 256
-+ 6000, // 288
-+ 0 // No delay, switch matrix always on
-+};
-+
-+/*
-+ * Delay after issuing a POLL command.
-+ *
-+ * The delay is 3 AC97 link frames + the touchpanel settling delay
-+ */
-+static inline void poll_delay(int d)
-+{
-+ udelay (3 * AC97_LINK_FRAME + delay_table [d]);
-+}
-+
-+/*
-+ * set up the physical settings of the WM9713
-+ */
-+static void init_wm9713_phy(struct wm97xx* wm)
-+{
-+ u16 dig1 = 0, dig2, dig3;
-+
-+ /* default values */
-+ dig2 = WM97XX_DELAY(4) | WM97XX_SLT(5);
-+ dig3= WM9712_RPU(1);
-+
-+ /* rpu */
-+ if (rpu) {
-+ dig3 &= 0xffc0;
-+ dig3 |= WM9712_RPU(rpu);
-+ info("setting pen detect pull-up to %d Ohms",64000 / rpu);
-+ }
-+
-+ /* touchpanel pressure */
-+ if (pil == 2) {
-+ dig3 |= WM9712_PIL;
-+ info("setting pressure measurement current to 400uA.");
-+ } else if (pil)
-+ info ("setting pressure measurement current to 200uA.");
-+ if(!pil)
-+ pressure = 0;
-+
-+ /* sample settling delay */
-+ if (delay < 0 || delay > 15) {
-+ info ("supplied delay out of range.");
-+ delay = 4;
-+ info("setting adc sample delay to %d u Secs.", delay_table[delay]);
-+ }
-+ dig2 &= 0xff0f;
-+ dig2 |= WM97XX_DELAY(delay);
-+
-+ /* mask */
-+ dig3 |= ((mask & 0x3) << 4);
-+ if(coord)
-+ dig3 |= WM9713_WAIT;
-+
-+ wm->misc = wm97xx_reg_read(wm, 0x5a);
-+
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3);
-+ wm97xx_reg_write(wm, AC97_GPIO_STICKY, 0x0);
-+}
-+
-+static int wm9713_digitiser_ioctl(struct wm97xx* wm, int cmd)
-+{
-+ u16 val = 0;
-+
-+ switch(cmd){
-+ case WM97XX_DIG_START:
-+ val = wm97xx_reg_read(wm, AC97_EXTENDED_MID);
-+ wm97xx_reg_write(wm, AC97_EXTENDED_MID, val & 0x7fff);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] | WM97XX_PRP_DET_DIG);
-+ wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */
-+ break;
-+ case WM97XX_DIG_STOP:
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] & ~WM97XX_PRP_DET_DIG);
-+ val = wm97xx_reg_read(wm, AC97_EXTENDED_MID);
-+ wm97xx_reg_write(wm, AC97_EXTENDED_MID, val | 0x8000);
-+ break;
-+ case WM97XX_AUX_PREPARE:
-+ memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, 0);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG2, 0);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, WM97XX_PRP_DET_DIG);
-+ break;
-+ case WM97XX_DIG_RESTORE:
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig_save[0]);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG2, wm->dig_save[1]);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig_save[2]);
-+ break;
-+ case WM97XX_PHY_INIT:
-+ init_wm9713_phy(wm);
-+ break;
-+ default:
-+ return -EINVAL;
-+ }
-+ return 0;
-+}
-+
-+static inline int is_pden (struct wm97xx* wm)
-+{
-+ return wm->dig[2] & WM9713_PDEN;
-+}
-+
-+/*
-+ * Read a sample from the WM9713 adc in polling mode.
-+ */
-+static int wm9713_poll_sample (struct wm97xx* wm, int adcsel, int *sample)
-+{
-+ u16 dig1;
-+ int timeout = 5 * delay;
-+
-+ if (!wm->pen_probably_down) {
-+ u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (!(data & WM97XX_PEN_DOWN))
-+ return RC_PENUP;
-+ wm->pen_probably_down = 1;
-+ }
-+
-+ /* set up digitiser */
-+ if (adcsel & 0x8000)
-+ adcsel = 1 << ((adcsel & 0x7fff) + 3);
-+
-+ dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1);
-+ dig1 &= ~WM9713_ADCSEL_MASK;
-+
-+ if (wm->mach_ops && wm->mach_ops->pre_sample)
-+ wm->mach_ops->pre_sample(adcsel);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1 | adcsel |WM9713_POLL);
-+
-+ /* wait 3 AC97 time slots + delay for conversion */
-+ poll_delay(delay);
-+
-+ /* wait for POLL to go low */
-+ while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL) && timeout) {
-+ udelay(AC97_LINK_FRAME);
-+ timeout--;
-+ }
-+
-+ if (timeout <= 0) {
-+ /* If PDEN is set, we can get a timeout when pen goes up */
-+ if (is_pden(wm))
-+ wm->pen_probably_down = 0;
-+ else
-+ dbg ("adc sample timeout");
-+ return RC_PENUP;
-+ }
-+
-+ *sample =wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (wm->mach_ops && wm->mach_ops->post_sample)
-+ wm->mach_ops->post_sample(adcsel);
-+
-+ /* check we have correct sample */
-+ if ((*sample & WM97XX_ADCSRC_MASK) != ffs(adcsel >> 1) << 12) {
-+ dbg ("adc wrong sample, read %x got %x", adcsel,
-+ *sample & WM97XX_ADCSRC_MASK);
-+ return RC_PENUP;
-+ }
-+
-+ if (!(*sample & WM97XX_PEN_DOWN)) {
-+ wm->pen_probably_down = 0;
-+ return RC_PENUP;
-+ }
-+
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Read a coordinate from the WM9713 adc in polling mode.
-+ */
-+static int wm9713_poll_coord (struct wm97xx* wm, struct wm97xx_data *data)
-+{
-+ u16 dig1;
-+ int timeout = 5 * delay;
-+
-+ if (!wm->pen_probably_down) {
-+ u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (!(data & WM97XX_PEN_DOWN))
-+ return RC_PENUP;
-+ wm->pen_probably_down = 1;
-+ }
-+
-+ /* set up digitiser */
-+ dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1);
-+ dig1 &= ~WM9713_ADCSEL_MASK;
-+ if(pil)
-+ dig1 |= WM97XX_ADCSEL_PRES;
-+
-+ if (wm->mach_ops && wm->mach_ops->pre_sample)
-+ wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1 | WM9713_POLL | WM9713_COO);
-+
-+ /* wait 3 AC97 time slots + delay for conversion */
-+ poll_delay(delay);
-+ data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ /* wait for POLL to go low */
-+ while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL) && timeout) {
-+ udelay(AC97_LINK_FRAME);
-+ timeout--;
-+ }
-+
-+ if (timeout <= 0) {
-+ /* If PDEN is set, we can get a timeout when pen goes up */
-+ if (is_pden(wm))
-+ wm->pen_probably_down = 0;
-+ else
-+ dbg ("adc sample timeout");
-+ return RC_PENUP;
-+ }
-+
-+ /* read back data */
-+ data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ if (pil)
-+ data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
-+ else
-+ data->p = DEFAULT_PRESSURE;
-+
-+ if (wm->mach_ops && wm->mach_ops->post_sample)
-+ wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
-+
-+ /* check we have correct sample */
-+ if (!(data->x & WM97XX_ADCSEL_X) || !(data->y & WM97XX_ADCSEL_Y))
-+ goto err;
-+ if(pil && !(data->p & WM97XX_ADCSEL_PRES))
-+ goto err;
-+
-+ if (!(data->x & WM97XX_PEN_DOWN)) {
-+ wm->pen_probably_down = 0;
-+ return RC_PENUP;
-+ }
-+ return RC_VALID;
-+err:
-+ return RC_PENUP;
-+}
-+
-+/*
-+ * Sample the WM9713 touchscreen in polling mode
-+ */
-+static int wm9713_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
-+{
-+ int rc;
-+
-+ if(coord) {
-+ if((rc = wm9713_poll_coord(wm, data)) != RC_VALID)
-+ return rc;
-+ } else {
-+ if ((rc = wm9713_poll_sample(wm, WM9713_ADCSEL_X, &data->x)) != RC_VALID)
-+ return rc;
-+ if ((rc = wm9713_poll_sample(wm, WM9713_ADCSEL_Y, &data->y)) != RC_VALID)
-+ return rc;
-+ if (pil) {
-+ if ((rc = wm9713_poll_sample(wm, WM9713_ADCSEL_PRES, &data->p)) != RC_VALID)
-+ return rc;
-+ } else
-+ data->p = DEFAULT_PRESSURE;
-+ }
-+ return RC_VALID;
-+}
-+
-+/*
-+ * Enable WM9713 continuous mode, i.e. touch data is streamed across an AC97 slot
-+ */
-+static int wm9713_acc_enable (struct wm97xx* wm, int enable)
-+{
-+ u16 dig1, dig2, dig3;
-+ int ret = 0;
-+
-+ dig1 = wm->dig[0];
-+ dig2 = wm->dig[1];
-+ dig3 = wm->dig[2];
-+
-+ if (enable) {
-+ /* continous mode */
-+ if (wm->mach_ops->acc_startup &&
-+ (ret = wm->mach_ops->acc_startup(wm)) < 0)
-+ return ret;
-+
-+ dig1 &= ~WM9713_ADCSEL_MASK;
-+ dig1 |= WM9713_CTC | WM9713_COO | WM9713_ADCSEL_X | WM9713_ADCSEL_Y;
-+ if (pil)
-+ dig1 |= WM9713_ADCSEL_PRES;
-+ dig2 &= ~(WM97XX_DELAY_MASK | WM97XX_SLT_MASK | WM97XX_CM_RATE_MASK);
-+ dig2 |= WM97XX_SLEN | WM97XX_DELAY (delay) |
-+ WM97XX_SLT (wm->acc_slot) | WM97XX_RATE (wm->acc_rate);
-+ dig3 |= WM9713_PDEN;
-+ } else {
-+ dig1 &= ~(WM9713_CTC | WM9713_COO);
-+ dig2 &= ~WM97XX_SLEN;
-+ dig3 &= ~WM9713_PDEN;
-+ if (wm->mach_ops->acc_shutdown)
-+ wm->mach_ops->acc_shutdown(wm);
-+ }
-+
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3);
-+ return ret;
-+}
-+
-+struct wm97xx_codec_drv wm97xx_codec = {
-+ .id = WM9713_ID2,
-+ .name = "wm9713",
-+ .poll_sample = wm9713_poll_sample,
-+ .poll_touch = wm9713_poll_touch,
-+ .acc_enable = wm9713_acc_enable,
-+ .digitiser_ioctl = wm9713_digitiser_ioctl,
-+};
-+
-+EXPORT_SYMBOL_GPL(wm97xx_codec);
-+
-+/* Module information */
-+MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
-+MODULE_DESCRIPTION("WM9713 Touch Screen Driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/input/touchscreen/wm97xx-core.c b/drivers/input/touchscreen/wm97xx-core.c
-new file mode 100644
-index 0000000..87179d2
---- /dev/null
-+++ b/drivers/input/touchscreen/wm97xx-core.c
-@@ -0,0 +1,859 @@
-+/*
-+ * wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712
-+ * and WM9713 AC97 Codecs.
-+ *
-+ * 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>
-+ * Andrew Zabolotny <zap@homelink.ru>
-+ * Russell King <rmk@arm.linux.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 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * Notes:
-+ *
-+ * Features:
-+ * - supports WM9705, WM9712, WM9713
-+ * - polling mode
-+ * - continuous mode (arch-dependent)
-+ * - adjustable rpu/dpp settings
-+ * - adjustable pressure current
-+ * - adjustable sample settle delay
-+ * - 4 and 5 wire touchscreens (5 wire is WM9712 only)
-+ * - pen down detection
-+ * - battery monitor
-+ * - sample AUX adc's
-+ * - power management
-+ * - codec GPIO
-+ * - codec event notification
-+ * Todo
-+ * - Support for async sampling control for noisy LCD's.
-+ *
-+ * Revision history
-+ * 7th May 2003 Initial version.
-+ * 6th June 2003 Added non module support and AC97 registration.
-+ * 18th June 2003 Added AUX adc sampling.
-+ * 23rd June 2003 Did some minimal reformatting, fixed a couple of
-+ * codec_mutexing bugs and noted a race to fix.
-+ * 24th June 2003 Added power management and fixed race condition.
-+ * 10th July 2003 Changed to a misc device.
-+ * 31st July 2003 Moved TS_EVENT and TS_CAL to wm97xx.h
-+ * 8th Aug 2003 Added option for read() calling wm97xx_sample_touch()
-+ * because some ac97_read/ac_97_write call schedule()
-+ * 7th Nov 2003 Added Input touch event interface, stanley.cai@intel.com
-+ * 13th Nov 2003 Removed h3600 touch interface, added interrupt based
-+ * pen down notification and implemented continous mode
-+ * on XScale arch.
-+ * 16th Nov 2003 Ian Molton <spyro@f2s.com>
-+ * Modified so that it suits the new 2.6 driver model.
-+ * 25th Jan 2004 Andrew Zabolotny <zap@homelink.ru>
-+ * Implemented IRQ-driven pen down detection, implemented
-+ * the private API meant to be exposed to platform-specific
-+ * drivers, reorganized the driver so that it supports
-+ * an arbitrary number of devices.
-+ * 1st Feb 2004 Moved continuous mode handling to a separate
-+ * architecture-dependent file. For now only PXA
-+ * built-in AC97 controller is supported (pxa-ac97-wm97xx.c).
-+ * 11th Feb 2004 Reduced CPU usage by keeping a cached copy of both
-+ * digitizer registers instead of reading them every time.
-+ * A reorganization of the whole code for better
-+ * error handling.
-+ * 17th Apr 2004 Added BMON support.
-+ * 17th Nov 2004 Added codec GPIO, codec event handling (real and virtual
-+ * GPIOs) and 2.6 power management.
-+ * 29th Nov 2004 Added WM9713 support.
-+ * 4th Jul 2005 Moved codec specific code out to seperate files.
-+ * 6th Sep 2006 Mike Arthur <linux@wolfsonmicro.com>
-+ * Added bus interface.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/version.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <linux/string.h>
-+#include <linux/proc_fs.h>
-+#include <linux/pm.h>
-+#include <linux/interrupt.h>
-+#include <linux/bitops.h>
-+#include <linux/workqueue.h>
-+#include <linux/device.h>
-+#include <linux/freezer.h>
-+#include <linux/wm97xx.h>
-+#include <asm/uaccess.h>
-+#include <asm/io.h>
-+
-+#include <asm/arch/irqs.h>
-+
-+#define TS_NAME "wm97xx"
-+#define WM_CORE_VERSION "0.64"
-+#define DEFAULT_PRESSURE 0xb0c0
-+
-+
-+/*
-+ * Touchscreen absolute values
-+ *
-+ * These parameters are used to help the input layer discard out of
-+ * range readings and reduce jitter etc.
-+ *
-+ * o min, max:- indicate the min and max values your touch screen returns
-+ * o fuzz:- use a higher number to reduce jitter
-+ *
-+ * The default values correspond to Mainstone II in QVGA mode
-+ *
-+ * Please read
-+ * Documentation/input/input-programming.txt for more details.
-+ */
-+
-+static int abs_x[3] = {350,3900,5};
-+module_param_array(abs_x, int, NULL, 0);
-+MODULE_PARM_DESC(abs_x, "Touchscreen absolute X min, max, fuzz");
-+
-+static int abs_y[3] = {320,3750,40};
-+module_param_array(abs_y, int, NULL, 0);
-+MODULE_PARM_DESC(abs_y, "Touchscreen absolute Y min, max, fuzz");
-+
-+static int abs_p[3] = {0,150,4};
-+module_param_array(abs_p, int, NULL, 0);
-+MODULE_PARM_DESC(abs_p, "Touchscreen absolute Pressure min, max, fuzz");
-+
-+/*
-+ * Debug
-+ */
-+#if 0
-+#define dbg(format, arg...) printk(KERN_DEBUG TS_NAME ": " format "\n" , ## arg)
-+#else
-+#define dbg(format, arg...)
-+#endif
-+#define err(format, arg...) printk(KERN_ERR TS_NAME ": " format "\n" , ## arg)
-+#define info(format, arg...) printk(KERN_INFO TS_NAME ": " format "\n" , ## arg)
-+#define warn(format, arg...) printk(KERN_WARNING TS_NAME ": " format "\n" , ## arg)
-+
-+/*
-+ * wm97xx IO access, all IO locking done by AC97 layer
-+ */
-+int wm97xx_reg_read(struct wm97xx *wm, u16 reg)
-+{
-+ if (wm->ac97)
-+ return wm->ac97->bus->ops->read(wm->ac97, reg);
-+ else
-+ return -1;
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_reg_read);
-+
-+void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val)
-+{
-+ /* cache digitiser registers */
-+ if(reg >= AC97_WM9713_DIG1 && reg <= AC97_WM9713_DIG3)
-+ wm->dig[(reg - AC97_WM9713_DIG1) >> 1] = val;
-+
-+ /* cache gpio regs */
-+ if(reg >= AC97_GPIO_CFG && reg <= AC97_MISC_AFE)
-+ wm->gpio[(reg - AC97_GPIO_CFG) >> 1] = val;
-+
-+ /* wm9713 irq reg */
-+ if(reg == 0x5a)
-+ wm->misc = val;
-+
-+ if (wm->ac97)
-+ wm->ac97->bus->ops->write(wm->ac97, reg, val);
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_reg_write);
-+
-+/**
-+ * wm97xx_read_aux_adc - Read the aux adc.
-+ * @wm: wm97xx device.
-+ * @adcsel: codec ADC to be read
-+ *
-+ * Reads the selected AUX ADC.
-+ */
-+
-+int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel)
-+{
-+ int power_adc = 0, auxval;
-+ u16 power = 0;
-+
-+ /* get codec */
-+ mutex_lock(&wm->codec_mutex);
-+
-+ /* When the touchscreen is not in use, we may have to power up the AUX ADC
-+ * before we can use sample the AUX inputs->
-+ */
-+ if (wm->id == WM9713_ID2 &&
-+ (power = wm97xx_reg_read(wm, AC97_EXTENDED_MID)) & 0x8000) {
-+ power_adc = 1;
-+ wm97xx_reg_write(wm, AC97_EXTENDED_MID, power & 0x7fff);
-+ }
-+
-+ /* Prepare the codec for AUX reading */
-+ wm->codec->digitiser_ioctl(wm, WM97XX_AUX_PREPARE);
-+
-+ /* Turn polling mode on to read AUX ADC */
-+ wm->pen_probably_down = 1;
-+ wm->codec->poll_sample(wm, adcsel, &auxval);
-+
-+ if (power_adc)
-+ wm97xx_reg_write(wm, AC97_EXTENDED_MID, power | 0x8000);
-+
-+ wm->codec->digitiser_ioctl(wm, WM97XX_DIG_RESTORE);
-+
-+ wm->pen_probably_down = 0;
-+
-+ mutex_unlock(&wm->codec_mutex);
-+ return auxval & 0xfff;
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_read_aux_adc);
-+
-+/**
-+ * wm97xx_get_gpio - Get the status of a codec GPIO.
-+ * @wm: wm97xx device.
-+ * @gpio: gpio
-+ *
-+ * Get the status of a codec GPIO pin
-+ */
-+
-+wm97xx_gpio_status_t wm97xx_get_gpio(struct wm97xx *wm, u32 gpio)
-+{
-+ u16 status;
-+ wm97xx_gpio_status_t ret;
-+
-+ mutex_lock(&wm->codec_mutex);
-+ status = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
-+
-+ if (status & gpio)
-+ ret = WM97XX_GPIO_HIGH;
-+ else
-+ ret = WM97XX_GPIO_LOW;
-+
-+ mutex_unlock(&wm->codec_mutex);
-+ return ret;
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_get_gpio);
-+
-+/**
-+ * wm97xx_set_gpio - Set the status of a codec GPIO.
-+ * @wm: wm97xx device.
-+ * @gpio: gpio
-+ *
-+ *
-+ * Set the status of a codec GPIO pin
-+ */
-+
-+void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
-+ wm97xx_gpio_status_t status)
-+{
-+ u16 reg;
-+
-+ mutex_lock(&wm->codec_mutex);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
-+
-+ if (status & WM97XX_GPIO_HIGH)
-+ reg |= gpio;
-+ else
-+ reg &= ~gpio;
-+
-+ if (wm->id == WM9712_ID2)
-+ wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg << 1);
-+ else
-+ wm97xx_reg_write(wm, AC97_GPIO_STATUS, reg);
-+ mutex_unlock(&wm->codec_mutex);
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_set_gpio);
-+
-+/*
-+ * Codec GPIO pin configuration, this set's pin direction, polarity,
-+ * stickyness and wake up.
-+ */
-+void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio, wm97xx_gpio_dir_t dir,
-+ wm97xx_gpio_pol_t pol, wm97xx_gpio_sticky_t sticky,
-+ wm97xx_gpio_wake_t wake)
-+{
-+ u16 reg;
-+
-+ mutex_lock(&wm->codec_mutex);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_POLARITY);
-+
-+ if (pol == WM97XX_GPIO_POL_HIGH)
-+ reg |= gpio;
-+ else
-+ reg &= ~gpio;
-+
-+ wm97xx_reg_write(wm, AC97_GPIO_POLARITY, reg);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_STICKY);
-+
-+ if (sticky == WM97XX_GPIO_STICKY)
-+ reg |= gpio;
-+ else
-+ reg &= ~gpio;
-+
-+ wm97xx_reg_write(wm, AC97_GPIO_STICKY, reg);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_WAKEUP);
-+
-+ if (wake == WM97XX_GPIO_WAKE)
-+ reg |= gpio;
-+ else
-+ reg &= ~gpio;
-+
-+ wm97xx_reg_write(wm, AC97_GPIO_WAKEUP, reg);
-+ reg = wm97xx_reg_read(wm, AC97_GPIO_CFG);
-+
-+ if (dir == WM97XX_GPIO_IN)
-+ reg |= gpio;
-+ else
-+ reg &= ~gpio;
-+
-+ wm97xx_reg_write(wm, AC97_GPIO_CFG, reg);
-+ mutex_unlock(&wm->codec_mutex);
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_config_gpio);
-+
-+/*
-+ * Handle a pen down interrupt.
-+ */
-+static void wm97xx_pen_irq_worker(struct work_struct *w)
-+{
-+/* struct wm97xx *wm = (struct wm97xx *) ptr; */
-+ struct wm97xx *wm = container_of(w, struct wm97xx, pen_event_work);
-+
-+ /* do we need to enable the touch panel reader */
-+ if (wm->id == WM9705_ID2) {
-+ if (wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD) & WM97XX_PEN_DOWN)
-+ wm->pen_is_down = 1;
-+ else
-+ wm->pen_is_down = 0;
-+ wake_up_interruptible(&wm->pen_irq_wait);
-+ } else {
-+ u16 status, pol;
-+ mutex_lock(&wm->codec_mutex);
-+ status = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
-+ pol = wm97xx_reg_read(wm, AC97_GPIO_POLARITY);
-+
-+ if (WM97XX_GPIO_13 & pol & status) {
-+ wm->pen_is_down = 1;
-+ wm97xx_reg_write(wm, AC97_GPIO_POLARITY, pol & ~WM97XX_GPIO_13);
-+ } else {
-+ wm->pen_is_down = 0;
-+ wm97xx_reg_write(wm, AC97_GPIO_POLARITY, pol | WM97XX_GPIO_13);
-+ }
-+
-+ if (wm->id == WM9712_ID2)
-+ wm97xx_reg_write(wm, AC97_GPIO_STATUS, (status & ~WM97XX_GPIO_13) << 1);
-+ else
-+ wm97xx_reg_write(wm, AC97_GPIO_STATUS, status & ~WM97XX_GPIO_13);
-+ mutex_unlock(&wm->codec_mutex);
-+ wake_up_interruptible(&wm->pen_irq_wait);
-+ }
-+
-+ if (!wm->pen_is_down && wm->mach_ops && wm->mach_ops->acc_enabled)
-+ wm->mach_ops->acc_pen_up(wm);
-+ enable_irq(wm->pen_irq);
-+}
-+
-+/*
-+ * Codec PENDOWN irq handler
-+ *
-+ * We have to disable the codec interrupt in the handler because it can
-+ * take upto 1ms to clear the interrupt source. The interrupt is then enabled
-+ * again in the slow handler when the source has been cleared.
-+ */
-+static irqreturn_t wm97xx_pen_interrupt(int irq, void *dev_id)
-+{
-+ struct wm97xx *wm = (struct wm97xx *) dev_id;
-+ disable_irq(wm->pen_irq);
-+ queue_work(wm->pen_irq_workq, &wm->pen_event_work);
-+ return IRQ_HANDLED;
-+}
-+
-+/*
-+ * initialise pen IRQ handler and workqueue
-+ */
-+static int wm97xx_init_pen_irq(struct wm97xx *wm)
-+{
-+ u16 reg;
-+
-+ INIT_WORK(&wm->pen_event_work, wm97xx_pen_irq_worker/* , wm */);
-+ if ((wm->pen_irq_workq =
-+ create_singlethread_workqueue("kwm97pen")) == NULL) {
-+ err("could not create pen irq work queue");
-+ wm->pen_irq = 0;
-+ return -EINVAL;
-+ }
-+
-+
-+ wm->pen_irq = IRQ_GPIO(90);
-+ if (request_irq (wm->pen_irq, wm97xx_pen_interrupt, SA_SHIRQ, "wm97xx-pen", wm)) {
-+ err("could not register codec pen down interrupt, will poll for pen down");
-+ destroy_workqueue(wm->pen_irq_workq);
-+ wm->pen_irq = 0;
-+ return -EINVAL;
-+ }
-+
-+ /* enable PEN down on wm9712/13 */
-+ if (wm->id != WM9705_ID2) {
-+ reg = wm97xx_reg_read(wm, AC97_MISC_AFE);
-+ wm97xx_reg_write(wm, AC97_MISC_AFE, reg & 0xfffb);
-+ reg = wm97xx_reg_read(wm, 0x5a);
-+ wm97xx_reg_write(wm, 0x5a, reg & ~0x0001);
-+ }
-+
-+ return 0;
-+}
-+
-+/* Private struct for communication between struct wm97xx_tshread
-+ * and wm97xx_read_samples */
-+struct ts_state {
-+ int sleep_time;
-+ int min_sleep_time;
-+};
-+
-+static int wm97xx_read_samples(struct wm97xx *wm, struct ts_state *state)
-+{
-+ struct wm97xx_data data;
-+ int rc;
-+
-+ mutex_lock(&wm->codec_mutex);
-+
-+ if (wm->mach_ops && wm->mach_ops->acc_enabled)
-+ rc = wm->mach_ops->acc_pen_down(wm);
-+ else
-+ rc = wm->codec->poll_touch(wm, &data);
-+
-+ if (rc & RC_PENUP) {
-+ if (wm->pen_is_down) {
-+ wm->pen_is_down = 0;
-+ dbg("pen up");
-+ input_report_abs(wm->input_dev, ABS_PRESSURE, 0);
-+ input_sync(wm->input_dev);
-+ } else if (!(rc & RC_AGAIN)) {
-+ /* We need high frequency updates only while pen is down,
-+ * the user never will be able to touch screen faster than
-+ * a few times per second... On the other hand, when the
-+ * user is actively working with the touchscreen we don't
-+ * want to lose the quick response. So we will slowly
-+ * increase sleep time after the pen is up and quicky
-+ * restore it to ~one task switch when pen is down again.
-+ */
-+ if (state->sleep_time < HZ / 10)
-+ state->sleep_time++;
-+ }
-+
-+ } else if (rc & RC_VALID) {
-+ dbg("pen down: x=%x:%d, y=%x:%d, pressure=%x:%d\n",
-+ data.x >> 12, data.x & 0xfff, data.y >> 12,
-+ data.y & 0xfff, data.p >> 12, data.p & 0xfff);
-+ input_report_abs(wm->input_dev, ABS_X, data.x & 0xfff);
-+ input_report_abs(wm->input_dev, ABS_Y, data.y & 0xfff);
-+ input_report_abs(wm->input_dev, ABS_PRESSURE, data.p & 0xfff);
-+ input_sync(wm->input_dev);
-+ wm->pen_is_down = 1;
-+ state->sleep_time = state->min_sleep_time;
-+ } else if (rc & RC_PENDOWN) {
-+ dbg("pen down");
-+ wm->pen_is_down = 1;
-+ state->sleep_time = state->min_sleep_time;
-+ }
-+
-+ mutex_unlock(&wm->codec_mutex);
-+ return rc;
-+}
-+
-+/*
-+* The touchscreen sample reader thread.
-+*/
-+static int wm97xx_ts_read(void *data)
-+{
-+ int rc;
-+ struct ts_state state;
-+ struct wm97xx *wm = (struct wm97xx *) data;
-+
-+ /* set up thread context */
-+ wm->ts_task = current;
-+ daemonize("kwm97xxts");
-+
-+ if (wm->codec == NULL) {
-+ wm->ts_task = NULL;
-+ printk(KERN_ERR "codec is NULL, bailing\n");
-+ }
-+
-+ complete(&wm->ts_init);
-+ wm->pen_is_down = 0;
-+ state.min_sleep_time = HZ >= 100 ? HZ / 100 : 1;
-+ if (state.min_sleep_time < 1)
-+ state.min_sleep_time = 1;
-+ state.sleep_time = state.min_sleep_time;
-+
-+ /* touch reader loop */
-+ while (wm->ts_task) {
-+ do {
-+ try_to_freeze();
-+ rc = wm97xx_read_samples(wm, &state);
-+ } while (rc & RC_AGAIN);
-+ if (!wm->pen_is_down && wm->pen_irq) {
-+ /* Nice, we don't have to poll for pen down event */
-+ wait_event_interruptible(wm->pen_irq_wait, wm->pen_is_down);
-+ } else {
-+ set_task_state(current, TASK_INTERRUPTIBLE);
-+ schedule_timeout(state.sleep_time);
-+ }
-+ }
-+ complete_and_exit(&wm->ts_exit, 0);
-+}
-+
-+/**
-+ * wm97xx_ts_input_open - Open the touch screen input device.
-+ * @idev: Input device to be opened.
-+ *
-+ * Called by the input sub system to open a wm97xx touchscreen device.
-+ * Starts the touchscreen thread and touch digitiser.
-+ */
-+static int wm97xx_ts_input_open(struct input_dev *idev)
-+{
-+ int ret = 0;
-+ struct wm97xx *wm = (struct wm97xx *) idev->private;
-+
-+ mutex_lock(&wm->codec_mutex);
-+ /* first time opened ? */
-+ if (wm->ts_use_count++ == 0) {
-+ /* start touchscreen thread */
-+ init_completion(&wm->ts_init);
-+ init_completion(&wm->ts_exit);
-+ ret = kernel_thread(wm97xx_ts_read, wm, CLONE_KERNEL);
-+
-+ if (ret >= 0) {
-+ wait_for_completion(&wm->ts_init);
-+ if (wm->ts_task == NULL)
-+ ret = -EINVAL;
-+ } else {
-+ mutex_unlock(&wm->codec_mutex);
-+ return ret;
-+ }
-+
-+ /* start digitiser */
-+ if (wm->mach_ops && wm->mach_ops->acc_enabled)
-+ wm->codec->acc_enable(wm, 1);
-+ wm->codec->digitiser_ioctl(wm, WM97XX_DIG_START);
-+
-+ /* init pen down/up irq handling */
-+ if (wm->pen_irq) {
-+ wm97xx_init_pen_irq(wm);
-+
-+ if (wm->pen_irq == 0) {
-+ /* we failed to get an irq for pen down events,
-+ * so we resort to polling. kickstart the reader */
-+ wm->pen_is_down = 1;
-+ wake_up_interruptible(&wm->pen_irq_wait);
-+ }
-+ }
-+ }
-+
-+ mutex_unlock(&wm->codec_mutex);
-+ return 0;
-+}
-+
-+/**
-+ * wm97xx_ts_input_close - Close the touch screen input device.
-+ * @idev: Input device to be closed.
-+ *
-+ * Called by the input sub system to close a wm97xx touchscreen device.
-+ * Kills the touchscreen thread and stops the touch digitiser.
-+ */
-+
-+static void wm97xx_ts_input_close(struct input_dev *idev)
-+{
-+ struct wm97xx *wm = (struct wm97xx *) idev->private;
-+
-+ mutex_lock(&wm->codec_mutex);
-+ if (--wm->ts_use_count == 0) {
-+ /* destroy workqueues and free irqs */
-+ if (wm->pen_irq) {
-+ free_irq(wm->pen_irq, wm);
-+ destroy_workqueue(wm->pen_irq_workq);
-+ }
-+
-+ /* kill thread */
-+ if (wm->ts_task) {
-+ wm->ts_task = NULL;
-+ wm->pen_is_down = 1;
-+ mutex_unlock(&wm->codec_mutex);
-+ wake_up_interruptible(&wm->pen_irq_wait);
-+ wait_for_completion(&wm->ts_exit);
-+ wm->pen_is_down = 0;
-+ mutex_lock(&wm->codec_mutex);
-+ }
-+
-+ /* stop digitiser */
-+ wm->codec->digitiser_ioctl(wm, WM97XX_DIG_STOP);
-+ if (wm->mach_ops && wm->mach_ops->acc_enabled)
-+ wm->codec->acc_enable(wm, 0);
-+ }
-+ mutex_unlock(&wm->codec_mutex);
-+}
-+
-+/*
-+ * Bus interface to allow for client drivers codec access
-+ * e.g. battery monitor
-+ */
-+static int wm97xx_bus_match(struct device *dev, struct device_driver *drv)
-+{
-+ return !(strcmp(dev->bus_id,drv->name));
-+}
-+
-+/*
-+ * The AC97 audio driver will do all the Codec suspend and resume
-+ * tasks. This is just for anything machine specific or extra.
-+ */
-+static int wm97xx_bus_suspend(struct device *dev, pm_message_t state)
-+{
-+ int ret = 0;
-+
-+ if (dev->driver && dev->driver->suspend)
-+ ret = dev->driver->suspend(dev, state);
-+
-+ return ret;
-+}
-+
-+static int wm97xx_bus_resume(struct device *dev)
-+{
-+ int ret = 0;
-+
-+ if (dev->driver && dev->driver->resume)
-+ ret = dev->driver->resume(dev);
-+
-+ return ret;
-+}
-+
-+struct bus_type wm97xx_bus_type = {
-+ .name = "wm97xx",
-+ .match = wm97xx_bus_match,
-+ .suspend = wm97xx_bus_suspend,
-+ .resume = wm97xx_bus_resume,
-+};
-+EXPORT_SYMBOL_GPL(wm97xx_bus_type);
-+
-+static void wm97xx_release(struct device *dev)
-+{
-+ kfree(dev);
-+}
-+
-+static int wm97xx_probe(struct device *dev)
-+{
-+ struct wm97xx* wm;
-+ int ret = 0, id = 0;
-+
-+ if (!(wm = kzalloc(sizeof(struct wm97xx), GFP_KERNEL)))
-+ return -ENOMEM;
-+ mutex_init(&wm->codec_mutex);
-+
-+ init_waitqueue_head(&wm->pen_irq_wait);
-+ wm->dev = dev;
-+ dev->driver_data = wm;
-+ wm->ac97 = to_ac97_t(dev);
-+
-+ /* check that we have a supported codec */
-+ if ((id = wm97xx_reg_read(wm, AC97_VENDOR_ID1)) != WM97XX_ID1) {
-+ err("could not find a wm97xx, found a %x instead\n", id);
-+ kfree(wm);
-+ return -ENODEV;
-+ }
-+
-+ wm->id = wm97xx_reg_read(wm, AC97_VENDOR_ID2);
-+ if(wm->id != wm97xx_codec.id) {
-+ err("could not find a the selected codec, please build for wm97%2x", wm->id & 0xff);
-+ kfree(wm);
-+ return -ENODEV;
-+ }
-+
-+ if((wm->input_dev = input_allocate_device()) == NULL) {
-+ kfree(wm);
-+ return -ENOMEM;
-+ }
-+
-+ /* set up touch configuration */
-+ info("detected a wm97%2x codec", wm->id & 0xff);
-+ wm->input_dev->name = "wm97xx touchscreen";
-+ wm->input_dev->open = wm97xx_ts_input_open;
-+ wm->input_dev->close = wm97xx_ts_input_close;
-+ set_bit(EV_ABS, wm->input_dev->evbit);
-+ set_bit(ABS_X, wm->input_dev->absbit);
-+ set_bit(ABS_Y, wm->input_dev->absbit);
-+ set_bit(ABS_PRESSURE, wm->input_dev->absbit);
-+ wm->input_dev->absmax[ABS_X] = abs_x[1];
-+ wm->input_dev->absmax[ABS_Y] = abs_y[1];
-+ wm->input_dev->absmax[ABS_PRESSURE] = abs_p[1];
-+ wm->input_dev->absmin[ABS_X] = abs_x[0];
-+ wm->input_dev->absmin[ABS_Y] = abs_y[0];
-+ wm->input_dev->absmin[ABS_PRESSURE] = abs_p[0];
-+ wm->input_dev->absfuzz[ABS_X] = abs_x[2];
-+ wm->input_dev->absfuzz[ABS_Y] = abs_y[2];
-+ wm->input_dev->absfuzz[ABS_PRESSURE] = abs_p[2];
-+ wm->input_dev->private = wm;
-+ wm->codec = &wm97xx_codec;
-+ if((ret = input_register_device(wm->input_dev)) < 0) {
-+ kfree(wm);
-+ return -ENOMEM;
-+ }
-+
-+ /* set up physical characteristics */
-+ wm->codec->digitiser_ioctl(wm, WM97XX_PHY_INIT);
-+
-+ /* load gpio cache */
-+ wm->gpio[0] = wm97xx_reg_read(wm, AC97_GPIO_CFG);
-+ wm->gpio[1] = wm97xx_reg_read(wm, AC97_GPIO_POLARITY);
-+ wm->gpio[2] = wm97xx_reg_read(wm, AC97_GPIO_STICKY);
-+ wm->gpio[3] = wm97xx_reg_read(wm, AC97_GPIO_WAKEUP);
-+ wm->gpio[4] = wm97xx_reg_read(wm, AC97_GPIO_STATUS);
-+ wm->gpio[5] = wm97xx_reg_read(wm, AC97_MISC_AFE);
-+
-+ /* register our battery device */
-+ if (!(wm->battery_dev = kzalloc(sizeof(struct device), GFP_KERNEL))) {
-+ ret = -ENOMEM;
-+ goto batt_err;
-+ }
-+ wm->battery_dev->bus = &wm97xx_bus_type;
-+ strcpy(wm->battery_dev->bus_id,"wm97xx-battery");
-+ wm->battery_dev->driver_data = wm;
-+ wm->battery_dev->parent = dev;
-+ wm->battery_dev->release = wm97xx_release;
-+ if((ret = device_register(wm->battery_dev)) < 0)
-+ goto batt_reg_err;
-+
-+ /* register our extended touch device (for machine specific extensions) */
-+ if (!(wm->touch_dev = kzalloc(sizeof(struct device), GFP_KERNEL))) {
-+ ret = -ENOMEM;
-+ goto touch_err;
-+ }
-+ wm->touch_dev->bus = &wm97xx_bus_type;
-+ strcpy(wm->touch_dev->bus_id,"wm97xx-touchscreen");
-+ wm->touch_dev->driver_data = wm;
-+ wm->touch_dev->parent = dev;
-+ wm->touch_dev->release = wm97xx_release;
-+ if((ret = device_register(wm->touch_dev)) < 0)
-+ goto touch_reg_err;
-+
-+ return ret;
-+
-+touch_reg_err:
-+ kfree(wm->touch_dev);
-+touch_err:
-+ device_unregister(wm->battery_dev);
-+batt_reg_err:
-+ kfree(wm->battery_dev);
-+batt_err:
-+ input_unregister_device(wm->input_dev);
-+ kfree(wm);
-+ return ret;
-+}
-+
-+static int wm97xx_remove(struct device *dev)
-+{
-+ struct wm97xx *wm = dev_get_drvdata(dev);
-+
-+ /* Stop touch reader thread */
-+ if (wm->ts_task) {
-+ wm->ts_task = NULL;
-+ wm->pen_is_down = 1;
-+ wake_up_interruptible(&wm->pen_irq_wait);
-+ wait_for_completion(&wm->ts_exit);
-+ }
-+ device_unregister(wm->battery_dev);
-+ device_unregister(wm->touch_dev);
-+ input_unregister_device(wm->input_dev);
-+
-+ kfree(wm);
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PM
-+int wm97xx_resume(struct device* dev)
-+{
-+ struct wm97xx *wm = dev_get_drvdata(dev);
-+
-+ /* restore digitiser and gpio's */
-+ if(wm->id == WM9713_ID2) {
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig[0]);
-+ wm97xx_reg_write(wm, 0x5a, wm->misc);
-+ if(wm->ts_use_count) {
-+ u16 reg = wm97xx_reg_read(wm, AC97_EXTENDED_MID) & 0x7fff;
-+ wm97xx_reg_write(wm, AC97_EXTENDED_MID, reg);
-+ }
-+ }
-+
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG2, wm->dig[1]);
-+ wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2]);
-+
-+ wm97xx_reg_write(wm, AC97_GPIO_CFG, wm->gpio[0]);
-+ wm97xx_reg_write(wm, AC97_GPIO_POLARITY, wm->gpio[1]);
-+ wm97xx_reg_write(wm, AC97_GPIO_STICKY, wm->gpio[2]);
-+ wm97xx_reg_write(wm, AC97_GPIO_WAKEUP, wm->gpio[3]);
-+ wm97xx_reg_write(wm, AC97_GPIO_STATUS, wm->gpio[4]);
-+ wm97xx_reg_write(wm, AC97_MISC_AFE, wm->gpio[5]);
-+
-+ return 0;
-+}
-+
-+#else
-+#define wm97xx_resume NULL
-+#endif
-+
-+/*
-+ * Machine specific operations
-+ */
-+int wm97xx_register_mach_ops(struct wm97xx *wm, struct wm97xx_mach_ops *mach_ops)
-+{
-+ mutex_lock(&wm->codec_mutex);
-+ if(wm->mach_ops) {
-+ mutex_unlock(&wm->codec_mutex);
-+ return -EINVAL;
-+ }
-+ wm->mach_ops = mach_ops;
-+ mutex_unlock(&wm->codec_mutex);
-+ return 0;
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_register_mach_ops);
-+
-+void wm97xx_unregister_mach_ops(struct wm97xx *wm)
-+{
-+ mutex_lock(&wm->codec_mutex);
-+ wm->mach_ops = NULL;
-+ mutex_unlock(&wm->codec_mutex);
-+}
-+EXPORT_SYMBOL_GPL(wm97xx_unregister_mach_ops);
-+
-+static struct device_driver wm97xx_driver = {
-+ .name = "ac97",
-+ .bus = &ac97_bus_type,
-+ .owner = THIS_MODULE,
-+ .probe = wm97xx_probe,
-+ .remove = wm97xx_remove,
-+ .resume = wm97xx_resume,
-+};
-+
-+static int __init wm97xx_init(void)
-+{
-+ int ret;
-+
-+ info("version %s liam.girdwood@wolfsonmicro.com", WM_CORE_VERSION);
-+ if((ret = bus_register(&wm97xx_bus_type)) < 0)
-+ return ret;
-+ return driver_register(&wm97xx_driver);
-+}
-+
-+static void __exit wm97xx_exit(void)
-+{
-+ driver_unregister(&wm97xx_driver);
-+ bus_unregister(&wm97xx_bus_type);
-+}
-+
-+module_init(wm97xx_init);
-+module_exit(wm97xx_exit);
-+
-+/* Module information */
-+MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
-+MODULE_DESCRIPTION("WM97xx Core - Touch Screen / AUX ADC / GPIO Driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
-index 4468cb3..01b4828 100644
---- a/drivers/leds/Kconfig
-+++ b/drivers/leds/Kconfig
-@@ -101,6 +101,12 @@ config LEDS_GPIO
- outputs. To be useful the particular board must have LEDs
- and they must be connected to the GPIO lines.
-
-+config LEDS_EM_X270
-+ tristate "LED Support for the CompuLab EM-X270"
-+ depends on LEDS_CLASS && MACH_EM_X270
-+ help
-+ This option enables support for the LEDs on CompuLab EM-X270.
-+
- comment "LED Triggers"
-
- config LEDS_TRIGGERS
-diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
-index f8995c9..6d3941e 100644
---- a/drivers/leds/Makefile
-+++ b/drivers/leds/Makefile
-@@ -17,6 +17,7 @@ obj-$(CONFIG_LEDS_WRAP) += leds-wrap.o
- obj-$(CONFIG_LEDS_H1940) += leds-h1940.o
- obj-$(CONFIG_LEDS_COBALT) += leds-cobalt.o
- obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
-+obj-$(CONFIG_LEDS_EM_X270) += leds-em-x270.o
-
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
-diff --git a/drivers/leds/leds-em-x270.c b/drivers/leds/leds-em-x270.c
-new file mode 100644
-index 0000000..485e7da
---- /dev/null
-+++ b/drivers/leds/leds-em-x270.c
-@@ -0,0 +1,99 @@
-+/*
-+ * LED Triggers Core
-+ *
-+ * Copyright 2007 CompuLab, Ltd.
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Based on Corgi leds driver:
-+ * Copyright 2005-2006 Openedhand Ltd.
-+ * Author: Richard Purdie <rpurdie@openedhand.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/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/leds.h>
-+#include <linux/da9030.h>
-+
-+static void em_x270_led_orange_set(struct led_classdev *led_cdev,
-+ enum led_brightness value)
-+{
-+ int on = 1;
-+ int pwm_chop = 0;
-+
-+ pr_info("%s: value = %d\n", __FUNCTION__, value);
-+ if (value == LED_OFF)
-+ on = 0;
-+ else if (value == LED_HALF)
-+ pwm_chop = 4;
-+
-+ da9030_set_led(3, on, 0, 0, pwm_chop);
-+}
-+
-+static struct led_classdev em_x270_orange_led = {
-+ .name = "em_x270:orange",
-+ .default_trigger = "em-x270-battery.0-charging-or-full",
-+ .brightness_set = em_x270_led_orange_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int em_x270_led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+#ifdef CONFIG_LEDS_TRIGGERS
-+ if (em_x270_orange_led.trigger && strcmp(em_x270_orange_led.trigger->name, "em-x270-battery-charging-or-full"))
-+#endif
-+ led_classdev_suspend(&em_x270_orange_led);
-+ return 0;
-+}
-+
-+static int em_x270_led_resume(struct platform_device *dev)
-+{
-+ led_classdev_resume(&em_x270_orange_led);
-+ return 0;
-+}
-+#endif
-+
-+static int em_x270_led_probe(struct platform_device *pdev)
-+{
-+ return led_classdev_register(&pdev->dev, &em_x270_orange_led);
-+}
-+
-+static int em_x270_led_remove(struct platform_device *pdev)
-+{
-+ led_classdev_unregister(&em_x270_orange_led);
-+ return 0;
-+}
-+
-+static struct platform_driver em_x270_led_driver = {
-+ .probe = em_x270_led_probe,
-+ .remove = em_x270_led_remove,
-+#ifdef CONFIG_PM
-+ .suspend = em_x270_led_suspend,
-+ .resume = em_x270_led_resume,
-+#endif
-+ .driver = {
-+ .name = "em-x270-led",
-+ },
-+};
-+
-+static int __init em_x270_led_init(void)
-+{
-+ return platform_driver_register(&em_x270_led_driver);
-+}
-+
-+static void __exit em_x270_led_exit(void)
-+{
-+ platform_driver_unregister(&em_x270_led_driver);
-+}
-+
-+module_init(em_x270_led_init);
-+module_exit(em_x270_led_exit);
-+
-+MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
-+MODULE_DESCRIPTION("EX-X270 LED driver");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/mtd/chips/jedec_probe.c b/drivers/mtd/chips/jedec_probe.c
-index 58e561e..7050e71 100644
---- a/drivers/mtd/chips/jedec_probe.c
-+++ b/drivers/mtd/chips/jedec_probe.c
-@@ -38,7 +38,7 @@
- #define MANUFACTURER_ST 0x0020
- #define MANUFACTURER_TOSHIBA 0x0098
- #define MANUFACTURER_WINBOND 0x00da
--
-+#define CONTINUATION_CODE 0x007f
-
- /* AMD */
- #define AM29DL800BB 0x22C8
-@@ -68,6 +68,10 @@
- #define AT49BV32X 0x00C8
- #define AT49BV32XT 0x00C9
-
-+/* Eon */
-+#define EN29SL800BB 0x226B
-+#define EN29SL800BT 0x22EA
-+
- /* Fujitsu */
- #define MBM29F040C 0x00A4
- #define MBM29LV650UE 0x22D7
-@@ -632,6 +636,40 @@ static const struct amd_flash_info jedec_table[] = {
- ERASEINFO(0x02000,8)
- }
- }, {
-+ .mfr_id = 0x1c,
-+ .dev_id = EN29SL800BT,
-+ .name = "Eon EN29SL800BT",
-+ .uaddr = {
-+ [0] = MTD_UADDR_0x0555_0x02AA, /* x8 */
-+ [1] = MTD_UADDR_0x0555_0x02AA, /* x16 */
-+ },
-+ .DevSize = SIZE_1MiB,
-+ .CmdSet = P_ID_AMD_STD,
-+ .NumEraseRegions= 4,
-+ .regions = {
-+ ERASEINFO(0x10000, 15),
-+ ERASEINFO(0x08000, 1),
-+ ERASEINFO(0x02000, 2),
-+ ERASEINFO(0x04000, 1),
-+ }
-+ }, {
-+ .mfr_id = 0x1c,
-+ .dev_id = EN29SL800BB,
-+ .name = "Eon EN29SL800BB",
-+ .uaddr = {
-+ [0] = MTD_UADDR_0x0555_0x02AA, /* x8 */
-+ [1] = MTD_UADDR_0x0555_0x02AA, /* x16 */
-+ },
-+ .DevSize = SIZE_1MiB,
-+ .CmdSet = P_ID_AMD_STD,
-+ .NumEraseRegions= 4,
-+ .regions = {
-+ ERASEINFO(0x04000, 1),
-+ ERASEINFO(0x02000, 2),
-+ ERASEINFO(0x08000, 1),
-+ ERASEINFO(0x10000, 15),
-+ }
-+ }, {
- .mfr_id = MANUFACTURER_FUJITSU,
- .dev_id = MBM29F040C,
- .name = "Fujitsu MBM29F040C",
-@@ -1769,9 +1807,21 @@ static inline u32 jedec_read_mfr(struct map_info *map, __u32 base,
- {
- map_word result;
- unsigned long mask;
-- u32 ofs = cfi_build_cmd_addr(0, cfi_interleave(cfi), cfi->device_type);
-- mask = (1 << (cfi->device_type * 8)) -1;
-- result = map_read(map, base + ofs);
-+ int bank = 0;
-+
-+ /* According to JEDEC "Standard Manufacturer's Identification Code"
-+ * (http://www.jedec.org/download/search/jep106W.pdf)
-+ * several first banks can contain 0x7f instead of actual ID
-+ */
-+ do {
-+ u32 ofs = cfi_build_cmd_addr(0 + (bank << 8),
-+ cfi_interleave(cfi),
-+ cfi->device_type);
-+ mask = (1 << (cfi->device_type * 8)) -1;
-+ result = map_read(map, base + ofs);
-+ bank++;
-+ } while ((result.x[0] & mask) == CONTINUATION_CODE);
-+
- return result.x[0] & mask;
- }
-
-diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c
-index 738aa59..88dbbdf 100644
---- a/drivers/net/dm9000.c
-+++ b/drivers/net/dm9000.c
-@@ -546,6 +546,7 @@ dm9000_probe(struct platform_device *pdev)
-
- if (id_val != DM9000_ID) {
- printk("%s: wrong id: 0x%08x\n", CARDNAME, id_val);
-+ ret = -ENODEV;
- goto release;
- }
-
-diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
-index 58c806e..3a16d9c 100644
---- a/drivers/power/Kconfig
-+++ b/drivers/power/Kconfig
-@@ -49,4 +49,10 @@ config BATTERY_OLPC
- help
- Say Y to enable support for the battery on the OLPC laptop.
-
-+config BATTERY_EM_X270
-+ tristate "EM-X270 battery"
-+ depends on DA9030 && MACH_EM_X270
-+ help
-+ Say Y here to enable support for battery on EM-X270.
-+
- endif # POWER_SUPPLY
-diff --git a/drivers/power/Makefile b/drivers/power/Makefile
-index 6413ded..dc9585e 100644
---- a/drivers/power/Makefile
-+++ b/drivers/power/Makefile
-@@ -20,3 +20,4 @@ obj-$(CONFIG_APM_POWER) += apm_power.o
- obj-$(CONFIG_BATTERY_DS2760) += ds2760_battery.o
- obj-$(CONFIG_BATTERY_PMU) += pmu_battery.o
- obj-$(CONFIG_BATTERY_OLPC) += olpc_battery.o
-+obj-$(CONFIG_BATTERY_EM_X270) += em_x270_battery.o
-diff --git a/drivers/power/em_x270_battery.c b/drivers/power/em_x270_battery.c
-new file mode 100644
-index 0000000..2630c68
---- /dev/null
-+++ b/drivers/power/em_x270_battery.c
-@@ -0,0 +1,579 @@
-+/*
-+ * Power managemnet implementation for EM-X270
-+ *
-+ * Copyright (C) 2007 CompuLab, Ltd.
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#define DEBUG
-+
-+#include <linux/module.h>
-+#include <linux/platform_device.h>
-+#include <linux/pda_power.h>
-+#include <linux/apm-emulation.h>
-+#include <linux/da9030.h>
-+#include <linux/power_supply.h>
-+#include <linux/pm.h>
-+
-+#include <linux/debugfs.h>
-+#include <linux/seq_file.h>
-+
-+#include "../i2c/chips/da9030.h"
-+
-+#define VOLTAGE_MAX_DESIGN 4200000 /* 4.2V in uV */
-+#define VOLTAGE_MIN_DESIGN 3000000 /* 3V in uV */
-+
-+/* #define VCHARGE_MIN_THRESHOLD 72 /\* 4.5V *\/ */
-+
-+#define VCHARGE_MIN_THRESHOLD 60 /* ?.?V */
-+#define VCHARGE_MAX_THRESHOLD 89 /* 5.5V */
-+#define TBAT_LOW_THRESHOLD 197 /* 0oC */
-+#define TBAT_HIGH_THRESHOLD 78 /* 45oC */
-+#define TBAT_RESUME_THRESHOLD 100 /* 35oC */
-+#define VBAT_LOW_THRESHOLD 82 /* 3.498V */
-+#define VBAT_CRIT_THRESHOLD 62 /* 3.291V */
-+
-+struct da9030_charger {
-+ struct device *dev;
-+
-+ struct power_supply bat;
-+ struct da9030_adc_res adc;
-+ struct delayed_work work;
-+
-+ int interval;
-+ int status;
-+ int mA;
-+ int mV;
-+
-+ int is_charging:1;
-+
-+#ifdef CONFIG_DEBUG_FS
-+ struct dentry *debug_file;
-+#endif
-+};
-+
-+static unsigned short tbat_readings[] = {
-+ 300, 244, 200, 178, 163, 152, 144, 137, 131,
-+ 126, 122, 118, 114, 111, 108, 105, 103, 101,
-+ 98, 96, 94, 93, 91, 89, 88, 86, 85,
-+ 83, 82, 81, 79, 78, 77, 76, 75, 74,
-+ 73, 72, 71, 70, 69, 68, 67, 67, 66,
-+ 65, 64, 63, 63, 62, 61, 60, 60, 59,
-+ 58, 58, 57, 57, 56, 55, 55, 54, 53,
-+ 53, 52, 52, 51, 51, 50, 50, 49, 49,
-+ 48, 48, 47, 47, 46, 46, 45, 45, 44,
-+ 44, 43, 43, 42, 42, 41, 41, 41, 40,
-+ 40, 39, 39, 38, 38, 38, 37, 37, 36,
-+ 36, 35, 35, 35, 34, 34, 34, 33, 33,
-+ 32, 32, 32, 31, 31, 30, 30, 30, 29,
-+ 29, 29, 28, 28, 28, 27, 27, 26, 26,
-+ 26, 25, 25, 25, 24, 24, 24, 23, 23,
-+ 23, 22, 22, 21, 21, 21, 20, 20, 20,
-+ 19, 19, 19, 18, 18, 18, 17, 17, 17,
-+ 16, 16, 16, 15, 15, 14, 14, 14, 13,
-+ 13, 13, 12, 12, 12, 11, 11, 11, 10,
-+ 10, 10, 9, 9, 8, 8, 8, 7, 7,
-+ 7, 6, 6, 5, 5, 5, 4, 4, 3,
-+ 3, 3, 2, 2, 1, 1, 1, 0, 0,
-+ -1, -1, -1, -2, -2, -3, -3, -4, -4,
-+ -5, -5, -6, -6, -6, -7, -7, -8, -9,
-+ -9, -10, -10, -11, -11, -12, -12, -13, -14,
-+ -14, -15, -16, -16, -17, -18, -18, -19, -20,
-+ -21, -21, -22, -23, -24, -25, -26, -27, -28,
-+ -30, -31, -32, -34, -35, -37, -39, -41, -44,
-+ -47, -50, -56, -64,
-+};
-+
-+#ifdef CONFIG_DEBUG_FS
-+
-+#define REG2VOLT(x) ((((x) * 2650) >> 8) + 2650)
-+
-+static int debug_show(struct seq_file *s, void *data)
-+{
-+ struct da9030_charger *charger = s->private;
-+
-+ seq_printf(s, "charger is %s\n",
-+ charger->status & CHRG_CHARGER_ENABLE ? "on" : "off");
-+ if (charger->status & CHRG_CHARGER_ENABLE) {
-+ seq_printf(s, "iset = %dmA, vset = %dmV\n",
-+ charger->mA, charger->mV);
-+ }
-+
-+ seq_printf(s, "vbat_res = %d (%dmV)\n",
-+ charger->adc.vbat_res, REG2VOLT(charger->adc.vbat_res));
-+ seq_printf(s, "vbatmin_res = %d (%dmV)\n",
-+ charger->adc.vbatmin_res,
-+ REG2VOLT(charger->adc.vbatmin_res));
-+ seq_printf(s, "vbatmintxon = %d (%dmV)\n",
-+ charger->adc.vbatmintxon,
-+ REG2VOLT(charger->adc.vbatmintxon));
-+ seq_printf(s, "ichmax_res = %d\n", charger->adc.ichmax_res);
-+ seq_printf(s, "ichmin_res = %d\n", charger->adc.ichmin_res);
-+ seq_printf(s, "ichaverage_res = %d\n", charger->adc.ichaverage_res);
-+ seq_printf(s, "vchmax_res = %d (%dmV)\n",
-+ charger->adc.vchmax_res,
-+ REG2VOLT(charger->adc.vchmax_res));
-+ seq_printf(s, "vchmin_res = %d (%dmV)\n",
-+ charger->adc.vchmin_res,
-+ REG2VOLT(charger->adc.vchmin_res));
-+ seq_printf(s, "tbat_res = %d (%doC\n", charger->adc.tbat_res,
-+ tbat_readings[charger->adc.tbat_res]);
-+ seq_printf(s, "adc_in4_res = %d\n", charger->adc.adc_in4_res);
-+ seq_printf(s, "adc_in5_res = %d\n", charger->adc.adc_in5_res);
-+
-+ return 0;
-+}
-+
-+static int debug_open(struct inode *inode, struct file *file)
-+{
-+ return single_open(file, debug_show, inode->i_private);
-+}
-+
-+static const struct file_operations debug_fops = {
-+ .open = debug_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
-+};
-+
-+static struct dentry* da9030_create_debugfs(struct da9030_charger *charger)
-+{
-+ charger->debug_file = debugfs_create_file("charger", 0666, 0, charger,
-+ &debug_fops);
-+ return charger->debug_file;
-+}
-+
-+static void da9030_remove_debugfs(struct da9030_charger *charger)
-+{
-+ debugfs_remove(charger->debug_file);
-+}
-+#else
-+#define da9030_create_debugfs(x) NULL
-+#define da9030_remove_debugfs(x) do {} while(0)
-+#endif
-+
-+static void da9030_set_charge(struct da9030_charger *charger, int on)
-+{
-+/* int status = da9030_get_status(); */
-+ if (on) {
-+ pr_debug("%s: enabling charger\n", __FUNCTION__);
-+ da9030_set_thresholds(TBAT_HIGH_THRESHOLD,
-+ TBAT_RESUME_THRESHOLD,
-+ TBAT_LOW_THRESHOLD);
-+ da9030_set_charger(1, 1000, 4200);
-+ charger->is_charging = 1;
-+ }
-+ else {
-+ /* disable charger */
-+ pr_debug("%s: disabling charger\n", __FUNCTION__);
-+ da9030_set_charger(0, 0, 0);
-+ charger->is_charging = 0;
-+ }
-+}
-+
-+static void da9030_charging_monitor(struct work_struct *work)
-+{
-+ struct da9030_charger *charger;
-+ int is_on;
-+ unsigned int mA, mV;
-+
-+ charger = container_of(work, struct da9030_charger, work.work);
-+
-+ da9030_get_charger(&is_on, &mA, &mV);
-+ da9030_read_adc(&charger->adc);
-+
-+ charger->status = da9030_get_status();
-+ charger->mA = mA;
-+ charger->mV = mV;
-+
-+ /* we wake or boot with external power on */
-+ if (!is_on && (charger->status & STATUS_CHDET)) {
-+ da9030_set_charge(charger, 1);
-+ return;
-+ }
-+
-+ if (is_on) {
-+/* pr_info("%s: mA = %d, mV = %d\n", __FUNCTION__, mA, mV); */
-+/* pr_info("%s: vchmin_res = %d, vchmax_res = %d\n", */
-+/* __FUNCTION__, charger->adc.vchmin_res, */
-+/* charger->adc.vchmax_res); */
-+/* pr_info("%s: tbat_res = %d\n", */
-+/* __FUNCTION__, charger->adc.tbat_res); */
-+ if (charger->adc.vbat_res > VBAT_LOW_THRESHOLD) {
-+ /* update VBAT threshlods ? */
-+ da9030_set_reg(VBATMON, VBAT_LOW_THRESHOLD);
-+ }
-+ if (charger->adc.vchmax_res > VCHARGE_MAX_THRESHOLD ||
-+ charger->adc.vchmin_res < VCHARGE_MIN_THRESHOLD ||
-+ /* Tempreture readings are negative */
-+ charger->adc.tbat_res < TBAT_HIGH_THRESHOLD ||
-+ charger->adc.tbat_res > TBAT_LOW_THRESHOLD) {
-+ /* disable charger */
-+ da9030_set_charge(charger, 0);
-+ }
-+ }
-+
-+ /* reschedule for the next time */
-+ schedule_delayed_work(&charger->work, charger->interval);
-+}
-+
-+void da9030_battery_release(struct device * dev)
-+{
-+}
-+
-+static void da9030_external_power_changed(struct power_supply *psy)
-+{
-+/* struct da9030_charger *charger; */
-+
-+/* charger = container_of(psy, struct da9030_charger, bat); */
-+/* pr_info("%s:\n", __FUNCTION__); */
-+/* da9030_set_charge(charger); */
-+}
-+
-+struct da9030_battery_thresh {
-+ int voltage;
-+ int percentage;
-+};
-+
-+static struct da9030_battery_thresh vbat_ranges[] = {
-+ { 150, 100},
-+ { 149, 99},
-+ { 148, 98},
-+ { 147, 98},
-+ { 146, 97},
-+ { 145, 96},
-+ { 144, 96},
-+ { 143, 95},
-+ { 142, 94},
-+ { 141, 93},
-+ { 140, 92},
-+ { 139, 91},
-+ { 138, 90},
-+ { 137, 90},
-+ { 136, 89},
-+ { 135, 88},
-+ { 134, 88},
-+ { 133, 87},
-+ { 132, 86},
-+ { 131, 85},
-+ { 130, 83},
-+ { 129, 82},
-+ { 128, 81},
-+ { 127, 81},
-+ { 126, 80},
-+ { 125, 75},
-+ { 124, 74},
-+ { 123, 73},
-+ { 122, 70},
-+ { 121, 66},
-+ { 120, 65},
-+ { 119, 64},
-+ { 118, 64},
-+ { 117, 63},
-+ { 116, 59},
-+ { 115, 58},
-+ { 114, 57},
-+ { 113, 57},
-+ { 112, 56},
-+ { 111, 50},
-+ { 110, 49},
-+ { 109, 49},
-+ { 108, 48},
-+ { 107, 48},
-+ { 106, 33},
-+ { 105, 32},
-+ { 104, 32},
-+ { 103, 32},
-+ { 102, 31},
-+ { 101, 16},
-+ { 100, 15},
-+ { 99, 15},
-+ { 98, 15},
-+ { 97, 10},
-+ { 96, 9},
-+ { 95, 7},
-+ { 94, 3},
-+ { 93, 0},
-+};
-+
-+static enum power_supply_property da9030_bat_props[] = {
-+ POWER_SUPPLY_PROP_STATUS,
-+ POWER_SUPPLY_PROP_HEALTH,
-+ POWER_SUPPLY_PROP_TECHNOLOGY,
-+ POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
-+ POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
-+ POWER_SUPPLY_PROP_VOLTAGE_NOW,
-+ POWER_SUPPLY_PROP_CURRENT_AVG,
-+ POWER_SUPPLY_PROP_CAPACITY, /* in percents! */
-+ POWER_SUPPLY_PROP_TEMP,
-+ POWER_SUPPLY_PROP_MANUFACTURER,
-+ POWER_SUPPLY_PROP_MODEL_NAME,
-+};
-+
-+static void da9030_bat_check_status(union power_supply_propval *val)
-+{
-+ int charger_on;
-+ int status = da9030_get_status();
-+
-+ da9030_get_charger(&charger_on, 0, 0);
-+
-+ /* FIXME: below code is very crude approximation of actual
-+ states, we need to take into account voltage and current
-+ measurements to determine actual charger state */
-+ if (status & STATUS_CHDET) {
-+ if (charger_on) {
-+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
-+ }
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
-+ }
-+}
-+
-+static void da9030_bat_check_health(union power_supply_propval *val)
-+{
-+ int fault_log = da9030_get_fault_log();
-+
-+ if (fault_log & FAULT_LOG_OVER_TEMP) {
-+ val->intval = POWER_SUPPLY_HEALTH_OVERHEAT;
-+ }
-+ else if (fault_log & FAULT_LOG_VBAT_OVER) {
-+ val->intval = POWER_SUPPLY_HEALTH_OVERVOLTAGE;
-+ }
-+ else {
-+ val->intval = POWER_SUPPLY_HEALTH_GOOD;
-+ }
-+}
-+
-+static int vbat_interpolate(int reg)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(vbat_ranges); i++ )
-+ if (vbat_ranges[i].voltage == reg) {
-+ pr_debug("%s: voltage = %d, percentage = %d\n",
-+ __FUNCTION__, vbat_ranges[i].voltage,
-+ vbat_ranges[i].percentage);
-+ return vbat_ranges[i].percentage;
-+ }
-+
-+ return 0;
-+}
-+
-+static int da9030_bat_get_property(struct power_supply *psy,
-+ enum power_supply_property psp,
-+ union power_supply_propval *val)
-+{
-+ u32 reg;
-+ struct da9030_charger *charger;
-+ charger = container_of(psy, struct da9030_charger, bat);
-+
-+ switch(psp) {
-+ case POWER_SUPPLY_PROP_STATUS:
-+ da9030_bat_check_status(val);
-+ break;
-+ case POWER_SUPPLY_PROP_HEALTH:
-+ da9030_bat_check_health(val);
-+ break;
-+ case POWER_SUPPLY_PROP_TECHNOLOGY:
-+ val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
-+ val->intval = VOLTAGE_MAX_DESIGN;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
-+ val->intval = VOLTAGE_MIN_DESIGN;
-+ break;
-+ case POWER_SUPPLY_PROP_VOLTAGE_NOW:
-+ reg = charger->adc.vbat_res;
-+ /* V = (reg / 256) * 2.65 + 2.65 (V) */
-+ val->intval = ((reg * 2650000) >> 8) + 2650000;
-+ break;
-+ case POWER_SUPPLY_PROP_CURRENT_AVG:
-+ reg = charger->adc.ichaverage_res;
-+ val->intval = reg; /* reg */
-+ break;
-+ case POWER_SUPPLY_PROP_CAPACITY:
-+ reg = charger->adc.vbat_res;
-+ val->intval = vbat_interpolate(reg);
-+ break;
-+ case POWER_SUPPLY_PROP_TEMP:
-+ reg = charger->adc.tbat_res;
-+ val->intval = tbat_readings[reg];
-+ break;
-+ case POWER_SUPPLY_PROP_MANUFACTURER:
-+ val->strval = "MaxPower";
-+ pr_debug("%s: MFG = %s\n", __FUNCTION__, val->strval);
-+ break;
-+ case POWER_SUPPLY_PROP_MODEL_NAME:
-+ val->strval = "LP555597P6H-FPS";
-+ pr_debug("%s: MODEL = %s\n", __FUNCTION__, val->strval);
-+ break;
-+ default: break;
-+ }
-+
-+ return 0;
-+}
-+
-+static void da9030_setup_battery(struct power_supply *bat)
-+{
-+ bat->name = "em-x270-battery";
-+ bat->type = POWER_SUPPLY_TYPE_BATTERY;
-+ bat->properties = da9030_bat_props;
-+ bat->num_properties = ARRAY_SIZE(da9030_bat_props);
-+ bat->get_property = da9030_bat_get_property;
-+ bat->use_for_apm = 1;
-+ bat->external_power_changed = da9030_external_power_changed;
-+};
-+
-+static void da9030_chiover_callback(int event, void *_charger)
-+{
-+ /* disable charger */
-+ struct da9030_charger *charger = _charger;
-+ da9030_set_charge(charger, 0);
-+}
-+
-+static void da9030_tbat_callback(int event, void *_charger)
-+{
-+ /* disable charger */
-+ struct da9030_charger *charger = _charger;
-+ da9030_set_charge(charger, 0);
-+}
-+
-+static void da9030_vbat_callback(int event, void *_charger)
-+{
-+ struct da9030_charger *charger = _charger;
-+ da9030_read_adc(&charger->adc);
-+
-+ if (charger->is_charging) {
-+ if (charger->adc.vbat_res < VBAT_LOW_THRESHOLD) {
-+ /* set VBAT threshold for critical */
-+ da9030_set_reg(VBATMON, VBAT_CRIT_THRESHOLD);
-+ }
-+ else if (charger->adc.vbat_res < VBAT_CRIT_THRESHOLD) {
-+ /* notify the system of battery critical */
-+ apm_queue_event(APM_CRITICAL_SUSPEND);
-+ }
-+ }
-+}
-+
-+static void da9030_ccto_callback(int event, void *_charger)
-+{
-+ /* x3 */
-+}
-+
-+static void da9030_tcto_callback(int event, void *_charger)
-+{
-+ /* x3 */
-+}
-+
-+static void da9030_chdet_callback(int event, void *_charger)
-+{
-+ struct da9030_charger *charger = _charger;
-+ int status = da9030_get_status();
-+ da9030_set_charge(charger, !!(status & CHRG_CHARGER_ENABLE));
-+}
-+
-+static int da9030_battery_probe(struct platform_device *pdev)
-+{
-+ struct da9030_charger *charger;
-+
-+ pr_debug("%s\n", __FUNCTION__);
-+ charger = kzalloc(sizeof(*charger), GFP_KERNEL);
-+ if (charger == NULL) {
-+ return -ENOMEM;
-+ }
-+
-+ charger->dev = &pdev->dev;
-+
-+ charger->interval = 10 * HZ; /* 10 seconds between monotor runs */
-+ da9030_setup_battery(&charger->bat);
-+
-+ platform_set_drvdata(pdev, charger);
-+
-+ da9030_enable_adc();
-+
-+ INIT_DELAYED_WORK(&charger->work, da9030_charging_monitor);
-+ schedule_delayed_work(&charger->work, charger->interval);
-+
-+ charger->debug_file = da9030_create_debugfs(charger);
-+
-+ da9030_setup_battery(&charger->bat);
-+
-+ da9030_register_callback(DA9030_IRQ_CHDET,
-+ da9030_chdet_callback,
-+ charger);
-+ da9030_register_callback(DA9030_IRQ_VBATMON,
-+ da9030_vbat_callback,
-+ charger);
-+
-+ /* critical condition events */
-+ da9030_register_callback(DA9030_IRQ_CHIOVER,
-+ da9030_chiover_callback,
-+ charger);
-+ da9030_register_callback(DA9030_IRQ_TBAT,
-+ da9030_tbat_callback,
-+ charger);
-+
-+ /* timer events */
-+ da9030_register_callback(DA9030_IRQ_TCTO,
-+ da9030_tcto_callback,
-+ charger);
-+ da9030_register_callback(DA9030_IRQ_CCTO,
-+ da9030_ccto_callback,
-+ charger);
-+
-+ power_supply_register(&pdev->dev, &charger->bat);
-+
-+ return 0;
-+}
-+
-+static int da9030_battery_remove(struct platform_device *dev)
-+{
-+ struct da9030_charger *charger = platform_get_drvdata(dev);
-+
-+ pr_debug("%s\n", __FUNCTION__);
-+ da9030_remove_debugfs(charger);
-+ cancel_delayed_work(&charger->work);
-+ power_supply_unregister(&charger->bat);
-+ kfree(charger);
-+ return 0;
-+}
-+
-+static struct platform_driver da9030_battery_driver = {
-+ .driver = {
-+ .name = "da9030-battery",
-+ .owner = THIS_MODULE,
-+ },
-+ .probe = da9030_battery_probe,
-+ .remove = da9030_battery_remove,
-+};
-+
-+static int da9030_battery_init(void)
-+{
-+ pr_debug("%s\n", __FUNCTION__);
-+
-+ return platform_driver_register(&da9030_battery_driver);
-+}
-+
-+static void da9030_battery_exit(void)
-+{
-+ pr_debug("%s\n", __FUNCTION__);
-+
-+ platform_driver_unregister(&da9030_battery_driver);
-+}
-+
-+module_init(da9030_battery_init);
-+module_exit(da9030_battery_exit);
-+
-+MODULE_DESCRIPTION("DA9030 charger driver");
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_LICENSE("GPL");
-diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
-index 767aed5..4c44a7a 100644
---- a/drivers/usb/gadget/Kconfig
-+++ b/drivers/usb/gadget/Kconfig
-@@ -195,6 +195,26 @@ config USB_M66592
- default USB_GADGET
- select USB_GADGET_SELECTED
-
-+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
-diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
-index 1bc0f03..b8743bf 100644
---- a/drivers/usb/gadget/Makefile
-+++ b/drivers/usb/gadget/Makefile
-@@ -9,6 +9,7 @@ obj-$(CONFIG_USB_DUMMY_HCD) += dummy_hcd.o
- obj-$(CONFIG_USB_NET2280) += net2280.o
- obj-$(CONFIG_USB_AMD5536UDC) += amd5536udc.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
-diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
-index 3aa46cf..d7d5550 100644
---- a/drivers/usb/gadget/epautoconf.c
-+++ b/drivers/usb/gadget/epautoconf.c
-@@ -228,14 +228,19 @@ find_ep (struct usb_gadget *gadget, const char *name)
- *
- * 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.
-diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
-index 593e235..87aa9fb 100644
---- a/drivers/usb/gadget/ether.c
-+++ b/drivers/usb/gadget/ether.c
-@@ -1350,6 +1350,10 @@ static void rndis_response_complete (struct usb_ep *ep, struct usb_request *req)
- /* 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;
-@@ -1360,6 +1364,10 @@ static void rndis_command_complete (struct usb_ep *ep, struct usb_request *req)
- 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);
- }
-
-@@ -2287,7 +2295,8 @@ eth_bind (struct usb_gadget *gadget)
- 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;
-
-@@ -2386,7 +2395,30 @@ eth_bind (struct usb_gadget *gadget)
-
- /* 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;
-+#ifdef CONFIG_USB_GADGET_PXA27X
-+ ep_config[1].interface = 0;
-+#else
-+ ep_config[1].interface = rndis_data_intf.bInterfaceNumber;
-+#endif
-+ 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,
-@@ -2396,7 +2428,12 @@ autoconf_fail:
- }
- 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 */
-@@ -2406,7 +2443,25 @@ autoconf_fail:
- * 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) {
-diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
-index 965ad7b..b9cd8c9 100644
---- a/drivers/usb/gadget/file_storage.c
-+++ b/drivers/usb/gadget/file_storage.c
-@@ -3841,6 +3841,7 @@ static int __init fsg_bind(struct usb_gadget *gadget)
- 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);
-@@ -3911,21 +3912,25 @@ static int __init fsg_bind(struct usb_gadget *gadget)
- }
-
- /* 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
-diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
-new file mode 100644
-index 0000000..d4270d4
---- /dev/null
-+++ b/drivers/usb/gadget/pxa27x_udc.c
-@@ -0,0 +1,2387 @@
-+/*
-+ * 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);
-+}
-+
-+
-+/*-------------------------------------------------------------------------*/
-+
-+/*
-+ * 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,
-+
-+ .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(CKEN_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(CKEN_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(CKEN_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");
-diff --git a/drivers/usb/gadget/pxa27x_udc.h b/drivers/usb/gadget/pxa27x_udc.h
-new file mode 100644
-index 0000000..d4377cf
---- /dev/null
-+++ b/drivers/usb/gadget/pxa27x_udc.h
-@@ -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 */
-diff --git a/drivers/usb/gadget/pxa2xx_udc.h b/drivers/usb/gadget/pxa2xx_udc.h
-index 0e5d0e6..9483a49 100644
---- a/drivers/usb/gadget/pxa2xx_udc.h
-+++ b/drivers/usb/gadget/pxa2xx_udc.h
-@@ -206,7 +206,8 @@ dump_state(struct pxa2xx_udc *dev)
- 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");
-@@ -223,8 +224,8 @@ dump_state(struct pxa2xx_udc *dev)
- } 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",
-diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
-index ce4d2e0..5dac23f 100644
---- a/drivers/usb/gadget/serial.c
-+++ b/drivers/usb/gadget/serial.c
-@@ -1356,6 +1356,7 @@ static int __init gs_bind(struct usb_gadget *gadget)
- 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;
-@@ -1376,22 +1377,33 @@ static int __init gs_bind(struct usb_gadget *gadget)
- __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;
-diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
-index fcfe869..1e40d46 100644
---- a/drivers/usb/gadget/zero.c
-+++ b/drivers/usb/gadget/zero.c
-@@ -1142,6 +1142,7 @@ zero_bind (struct usb_gadget *gadget)
- 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.
-@@ -1154,7 +1155,15 @@ zero_bind (struct usb_gadget *gadget)
- * 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",
-@@ -1164,7 +1173,7 @@ autoconf_fail:
- 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;
-diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
-index 2580f5f..12e4b91 100644
---- a/drivers/video/backlight/Kconfig
-+++ b/drivers/video/backlight/Kconfig
-@@ -40,7 +40,7 @@ config BACKLIGHT_CLASS_DEVICE
-
- config BACKLIGHT_CORGI
- tristate "Sharp Corgi Backlight Driver (SL Series)"
-- depends on BACKLIGHT_CLASS_DEVICE && PXA_SHARPSL
-+ depends on BACKLIGHT_CLASS_DEVICE && (PXA_SHARPSL || MACH_EM_X270)
- default y
- help
- If you have a Sharp Zaurus SL-C7xx, SL-Cxx00 or SL-6000x say y to enable the
-diff --git a/include/asm-arm/arch-pxa/pwr-i2c.h b/include/asm-arm/arch-pxa/pwr-i2c.h
-new file mode 100644
-index 0000000..6bad486
---- /dev/null
-+++ b/include/asm-arm/arch-pxa/pwr-i2c.h
-@@ -0,0 +1,61 @@
-+/*
-+ * (C) Copyright 2007 CompuLab, Ltd
-+ * Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Simple Power I2C interface for PXA processors.
-+ * Based on U-Boot PXA I2C driver.
-+ *
-+ * 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 __PXA_PWR_I2C_H__
-+#define __PXA_PWR_I2C_H__
-+
-+/*
-+ * Configuration items.
-+ */
-+#define I2C_RXTX_LEN 128 /* maximum tx/rx buffer length */
-+
-+/*
-+ * Probe the given I2C chip address. Returns 0 if a chip responded,
-+ * not 0 on failure.
-+ */
-+extern int pxa_pwr_i2c_probe(u8 chip);
-+
-+/*
-+ * Read/Write interface:
-+ * chip: I2C chip address, range 0..127
-+ * addr: Memory (register) address within the chip
-+ * alen: Number of bytes to use for addr (typically 1, 2 for larger
-+ * memories, 0 for register type devices with only one
-+ * register)
-+ * buffer: Where to read/write the data
-+ * len: How many bytes to read/write
-+ *
-+ * Returns: 0 on success, not 0 on failure
-+ */
-+extern int pxa_pwr_i2c_read(u8 chip, uint addr, int alen, u8 *buffer, int len);
-+extern int pxa_pwr_i2c_write(u8 chip, uint addr, int alen,
-+ u8 *buffer, int len);
-+
-+/*
-+ * Utility routines to read/write registers.
-+ */
-+extern s32 pxa_pwr_i2c_reg_read (u8 chip, u8 reg);
-+extern s32 pxa_pwr_i2c_reg_write(u8 chip, u8 reg, u8 val);
-+
-+#endif /* __PXA_PWR_I2C_H___ */
-diff --git a/include/linux/da9030.h b/include/linux/da9030.h
-new file mode 100644
-index 0000000..6eb89e2
---- /dev/null
-+++ b/include/linux/da9030.h
-@@ -0,0 +1,118 @@
-+#ifndef _DA9030_H
-+#define _DA9030_H
-+
-+/* DA9030 has 24 possible interrupts */
-+#define DA9030_IRQ_COUNT 24
-+
-+/* EVENT A */
-+#define DA9030_IRQ_ONKEY_EN 0
-+#define DA9030_IRQ_PWREN1 1
-+#define DA9030_IRQ_EXTON 2
-+#define DA9030_IRQ_CHDET 3
-+#define DA9030_IRQ_TBAT 4
-+#define DA9030_IRQ_VBATMON 5
-+#define DA9030_IRQ_VBATMONTXON 6
-+#define DA9030_IRQ_CHIOVER 7
-+
-+/* EVENT B */
-+#define DA9030_IRQ_TCTO 8
-+#define DA9030_IRQ_CCTO 9
-+#define DA9030_IRQ_ADC_READY 10
-+#define DA9030_IRQ_VBUS_4_4 11
-+#define DA9030_IRQ_VBUS_4_0 12
-+#define DA9030_IRQ_SESSION_VALID 13
-+#define DA9030_IRQ_SRP_DETECT 14
-+#define DA9030_IRQ_WDOG_INTR 15
-+
-+/* EVENT C */
-+#define DA9030_IRQ_LDO15 16
-+#define DA9030_IRQ_LDO16 17
-+#define DA9030_IRQ_LDO17 18
-+#define DA9030_IRQ_LDO18 19
-+#define DA9030_IRQ_LDO19 20
-+#define DA9030_IRQ_BUCK2 21
-+#define DA9030_IRQ_ADC_IN4 22
-+#define DA9030_IRQ_ADC_IN5 23
-+
-+enum da9030_ldo_sleep_mode {
-+ DA9030_LDO_SLEEP_KEEP = 0x0,
-+ DA9030_LDO_SLEEP_SHUT_DOWN = 0x1,
-+ DA9030_LDO_SLEEP_POWER_UP = 0x2,
-+ DA9030_LDO_SLEEP_HIGH_Z = 0x3,
-+};
-+
-+enum da9030_led_rate {
-+ DA9030_LED_RATE_ON = 0x0,
-+ DA9030_LED_RATE_0_52 = 0x1,
-+ DA9030_LED_RATE_1_05 = 0x2,
-+ DA9030_LED_RATE_2_1 = 0x3,
-+};
-+
-+enum da9030_led_duty_cycle {
-+ DA9030_LED_DUTY_1_16 = 0x0,
-+ DA9030_LED_DUTY_1_8 = 0x1,
-+ DA9030_LED_DUTY_1_4 = 0x2,
-+ DA9030_LED_DUTY_1_2 = 0x3,
-+};
-+
-+enum da9030_led_pwm_chop {
-+ DA9030_LED_PWM_8_8 = 0x0,
-+ DA9030_LED_PWM_7_8 = 0x1,
-+ DA9030_LED_PWM_6_8 = 0x2,
-+ DA9030_LED_PWM_5_8 = 0x3,
-+ DA9030_LED_PWM_4_8 = 0x4,
-+ DA9030_LED_PWM_3_8 = 0x5,
-+ DA9030_LED_PWM_2_8 = 0x6,
-+ DA9030_LED_PWM_1_8 = 0x7,
-+};
-+
-+struct da9030_adc_res {
-+ int vbat_res;
-+ int vbatmin_res;
-+ int vbatmintxon;
-+ int ichmax_res;
-+ int ichmin_res;
-+ int ichaverage_res;
-+ int vchmax_res;
-+ int vchmin_res;
-+ int tbat_res;
-+ int adc_in4_res;
-+ int adc_in5_res;
-+};
-+
-+extern int da9030_get_status(void);
-+extern int da9030_get_fault_log(void);
-+
-+extern void da9030_enable_adc(void);
-+extern void da9030_read_adc(struct da9030_adc_res *adc);
-+
-+extern void da9030_set_wled(int on, unsigned int brightness);
-+
-+extern int da9030_set_led(int led, int on,
-+ enum da9030_led_rate rate,
-+ enum da9030_led_duty_cycle duty,
-+ enum da9030_led_pwm_chop pwm_chop);
-+
-+extern int da9030_set_charger(int on, unsigned int mA, unsigned int mV);
-+extern void da9030_get_charger(int *on, unsigned int *mA, unsigned int *mV);
-+
-+extern int da9030_set_ldo(int ldo, int on, unsigned int mV,
-+ enum da9030_ldo_sleep_mode sleep_mode);
-+extern int da9030_set_buck(int buck, int on, unsigned int mV, int flags);
-+
-+extern void da9030_set_thresholds(unsigned int tbathighp,
-+ unsigned int tbathighn,
-+ unsigned int tbatlow,
-+ unsigned int vbatmon);
-+
-+extern int da9030_register_callback(int event,
-+ void (*callback)(int event, void *data),
-+ void *data);
-+extern void da9030_unregister_callback(int event);
-+
-+/* Keep these for now, although they are unsafe. When I'll see what
-+ other methods are needed from DA9030, I'll remove these */
-+extern s32 da9030_get_reg(u32 reg);
-+extern s32 da9030_set_reg(u32 reg, u8 val);
-+
-+#endif
-diff --git a/include/linux/usb_gadget.h b/include/linux/usb_gadget.h
-index 4f59b2a..792c568 100644
---- a/include/linux/usb_gadget.h
-+++ b/include/linux/usb_gadget.h
-@@ -397,10 +397,28 @@ usb_ep_fifo_flush (struct usb_ep *ep)
-
- 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);
-@@ -824,7 +842,10 @@ int usb_gadget_config_buf(const struct usb_config_descriptor *config,
- /* 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/include/linux/wm97xx.h b/include/linux/wm97xx.h
-new file mode 100644
-index 0000000..354e533
---- /dev/null
-+++ b/include/linux/wm97xx.h
-@@ -0,0 +1,291 @@
-+
-+/*
-+ * Register bits and API for Wolfson WM97xx series of codecs
-+ */
-+
-+#ifndef _LINUX_WM97XX_H
-+#define _LINUX_WM97XX_H
-+
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/pcm.h>
-+#include <sound/ac97_codec.h>
-+#include <sound/initval.h>
-+#include <linux/types.h>
-+#include <linux/list.h>
-+#include <linux/input.h> /* Input device layer */
-+
-+/*
-+ * WM97xx AC97 Touchscreen registers
-+ */
-+#define AC97_WM97XX_DIGITISER1 0x76
-+#define AC97_WM97XX_DIGITISER2 0x78
-+#define AC97_WM97XX_DIGITISER_RD 0x7a
-+#define AC97_WM9713_DIG1 0x74
-+#define AC97_WM9713_DIG2 AC97_WM97XX_DIGITISER1
-+#define AC97_WM9713_DIG3 AC97_WM97XX_DIGITISER2
-+
-+/*
-+ * WM97xx register bits
-+ */
-+#define WM97XX_POLL 0x8000 /* initiate a polling measurement */
-+#define WM97XX_ADCSEL_X 0x1000 /* x coord measurement */
-+#define WM97XX_ADCSEL_Y 0x2000 /* y coord measurement */
-+#define WM97XX_ADCSEL_PRES 0x3000 /* pressure measurement */
-+#define WM97XX_ADCSEL_MASK 0x7000
-+#define WM97XX_COO 0x0800 /* enable coordinate mode */
-+#define WM97XX_CTC 0x0400 /* enable continuous mode */
-+#define WM97XX_CM_RATE_93 0x0000 /* 93.75Hz continuous rate */
-+#define WM97XX_CM_RATE_187 0x0100 /* 187.5Hz continuous rate */
-+#define WM97XX_CM_RATE_375 0x0200 /* 375Hz continuous rate */
-+#define WM97XX_CM_RATE_750 0x0300 /* 750Hz continuous rate */
-+#define WM97XX_CM_RATE_8K 0x00f0 /* 8kHz continuous rate */
-+#define WM97XX_CM_RATE_12K 0x01f0 /* 12kHz continuous rate */
-+#define WM97XX_CM_RATE_24K 0x02f0 /* 24kHz continuous rate */
-+#define WM97XX_CM_RATE_48K 0x03f0 /* 48kHz continuous rate */
-+#define WM97XX_CM_RATE_MASK 0x03f0
-+#define WM97XX_RATE(i) (((i & 3) << 8) | ((i & 4) ? 0xf0 : 0))
-+#define WM97XX_DELAY(i) ((i << 4) & 0x00f0) /* sample delay times */
-+#define WM97XX_DELAY_MASK 0x00f0
-+#define WM97XX_SLEN 0x0008 /* slot read back enable */
-+#define WM97XX_SLT(i) ((i - 5) & 0x7) /* touchpanel slot selection (5-11) */
-+#define WM97XX_SLT_MASK 0x0007
-+#define WM97XX_PRP_DETW 0x4000 /* pen detect on, digitiser off, wake up */
-+#define WM97XX_PRP_DET 0x8000 /* pen detect on, digitiser off, no wake up */
-+#define WM97XX_PRP_DET_DIG 0xc000 /* pen detect on, digitiser on */
-+#define WM97XX_RPR 0x2000 /* wake up on pen down */
-+#define WM97XX_PEN_DOWN 0x8000 /* pen is down */
-+#define WM97XX_ADCSRC_MASK 0x7000 /* ADC source mask */
-+
-+#define WM97XX_AUX_ID1 0x8001
-+#define WM97XX_AUX_ID2 0x8002
-+#define WM97XX_AUX_ID3 0x8003
-+#define WM97XX_AUX_ID4 0x8004
-+
-+
-+/* WM9712 Bits */
-+#define WM9712_45W 0x1000 /* set for 5-wire touchscreen */
-+#define WM9712_PDEN 0x0800 /* measure only when pen down */
-+#define WM9712_WAIT 0x0200 /* wait until adc is read before next sample */
-+#define WM9712_PIL 0x0100 /* current used for pressure measurement. set 400uA else 200uA */
-+#define WM9712_MASK_HI 0x0040 /* hi on mask pin (47) stops conversions */
-+#define WM9712_MASK_EDGE 0x0080 /* rising/falling edge on pin delays sample */
-+#define WM9712_MASK_SYNC 0x00c0 /* rising/falling edge on mask initiates sample */
-+#define WM9712_RPU(i) (i&0x3f) /* internal pull up on pen detect (64k / rpu) */
-+#define WM9712_PD(i) (0x1 << i) /* power management */
-+
-+/* WM9712 Registers */
-+#define AC97_WM9712_POWER 0x24
-+#define AC97_WM9712_REV 0x58
-+
-+/* WM9705 Bits */
-+#define WM9705_PDEN 0x1000 /* measure only when pen is down */
-+#define WM9705_PINV 0x0800 /* inverts sense of pen down output */
-+#define WM9705_BSEN 0x0400 /* BUSY flag enable, pin47 is 1 when busy */
-+#define WM9705_BINV 0x0200 /* invert BUSY (pin47) output */
-+#define WM9705_WAIT 0x0100 /* wait until adc is read before next sample */
-+#define WM9705_PIL 0x0080 /* current used for pressure measurement. set 400uA else 200uA */
-+#define WM9705_PHIZ 0x0040 /* set PHONE and PCBEEP inputs to high impedance */
-+#define WM9705_MASK_HI 0x0010 /* hi on mask stops conversions */
-+#define WM9705_MASK_EDGE 0x0020 /* rising/falling edge on pin delays sample */
-+#define WM9705_MASK_SYNC 0x0030 /* rising/falling edge on mask initiates sample */
-+#define WM9705_PDD(i) (i & 0x000f) /* pen detect comparator threshold */
-+
-+
-+/* WM9713 Bits */
-+#define WM9713_PDPOL 0x0400 /* Pen down polarity */
-+#define WM9713_POLL 0x0200 /* initiate a polling measurement */
-+#define WM9713_CTC 0x0100 /* enable continuous mode */
-+#define WM9713_ADCSEL_X 0x0002 /* X measurement */
-+#define WM9713_ADCSEL_Y 0x0004 /* Y measurement */
-+#define WM9713_ADCSEL_PRES 0x0008 /* Pressure measurement */
-+#define WM9713_COO 0x0001 /* enable coordinate mode */
-+#define WM9713_PDEN 0x0800 /* measure only when pen down */
-+#define WM9713_ADCSEL_MASK 0x00fe /* ADC selection mask */
-+#define WM9713_WAIT 0x0200 /* coordinate wait */
-+
-+/* AUX ADC ID's */
-+#define TS_COMP1 0x0
-+#define TS_COMP2 0x1
-+#define TS_BMON 0x2
-+#define TS_WIPER 0x3
-+
-+/* ID numbers */
-+#define WM97XX_ID1 0x574d
-+#define WM9712_ID2 0x4c12
-+#define WM9705_ID2 0x4c05
-+#define WM9713_ID2 0x4c13
-+
-+/* Codec GPIO's */
-+#define WM97XX_MAX_GPIO 16
-+#define WM97XX_GPIO_1 (1 << 1)
-+#define WM97XX_GPIO_2 (1 << 2)
-+#define WM97XX_GPIO_3 (1 << 3)
-+#define WM97XX_GPIO_4 (1 << 4)
-+#define WM97XX_GPIO_5 (1 << 5)
-+#define WM97XX_GPIO_6 (1 << 6)
-+#define WM97XX_GPIO_7 (1 << 7)
-+#define WM97XX_GPIO_8 (1 << 8)
-+#define WM97XX_GPIO_9 (1 << 9)
-+#define WM97XX_GPIO_10 (1 << 10)
-+#define WM97XX_GPIO_11 (1 << 11)
-+#define WM97XX_GPIO_12 (1 << 12)
-+#define WM97XX_GPIO_13 (1 << 13)
-+#define WM97XX_GPIO_14 (1 << 14)
-+#define WM97XX_GPIO_15 (1 << 15)
-+
-+
-+#define AC97_LINK_FRAME 21 /* time in uS for AC97 link frame */
-+
-+
-+/*---------------- Return codes from sample reading functions ---------------*/
-+
-+/* More data is available; call the sample gathering function again */
-+#define RC_AGAIN 0x00000001
-+/* The returned sample is valid */
-+#define RC_VALID 0x00000002
-+/* The pen is up (the first RC_VALID without RC_PENUP means pen is down) */
-+#define RC_PENUP 0x00000004
-+/* The pen is down (RC_VALID implies RC_PENDOWN, but sometimes it is helpful
-+ to tell the handler that the pen is down but we don't know yet his coords,
-+ so the handler should not sleep or wait for pendown irq) */
-+#define RC_PENDOWN 0x00000008
-+
-+/* The wm97xx driver provides a private API for writing platform-specific
-+ * drivers.
-+ */
-+
-+/* The structure used to return arch specific sampled data into */
-+struct wm97xx_data {
-+ int x;
-+ int y;
-+ int p;
-+};
-+
-+/* Codec GPIO status
-+ */
-+typedef enum {
-+ WM97XX_GPIO_HIGH,
-+ WM97XX_GPIO_LOW
-+} wm97xx_gpio_status_t;
-+
-+/* Codec GPIO direction
-+ */
-+typedef enum {
-+ WM97XX_GPIO_IN,
-+ WM97XX_GPIO_OUT
-+} wm97xx_gpio_dir_t;
-+
-+/* Codec GPIO polarity
-+ */
-+typedef enum {
-+ WM97XX_GPIO_POL_HIGH,
-+ WM97XX_GPIO_POL_LOW
-+} wm97xx_gpio_pol_t;
-+
-+/* Codec GPIO sticky
-+ */
-+typedef enum {
-+ WM97XX_GPIO_STICKY,
-+ WM97XX_GPIO_NOTSTICKY
-+} wm97xx_gpio_sticky_t;
-+
-+/* Codec GPIO wake
-+ */
-+typedef enum {
-+ WM97XX_GPIO_WAKE,
-+ WM97XX_GPIO_NOWAKE
-+} wm97xx_gpio_wake_t;
-+
-+
-+/*
-+ * Digitiser ioctl commands
-+ */
-+#define WM97XX_DIG_START 0x1
-+#define WM97XX_DIG_STOP 0x2
-+#define WM97XX_PHY_INIT 0x3
-+#define WM97XX_AUX_PREPARE 0x4
-+#define WM97XX_DIG_RESTORE 0x5
-+
-+struct wm97xx;
-+extern struct wm97xx_codec_drv wm97xx_codec;
-+
-+/*
-+ * Codec driver interface - allows mapping to WM9705/12/13 and newer codecs
-+ */
-+struct wm97xx_codec_drv {
-+ u16 id;
-+ char *name;
-+ int (*poll_sample) (struct wm97xx *, int adcsel, int *sample); /* read 1 sample */
-+ int (*poll_touch) (struct wm97xx *, struct wm97xx_data *); /* read X,Y,[P] in poll */
-+ int (*digitiser_ioctl) (struct wm97xx *, int cmd);
-+ int (*acc_enable) (struct wm97xx *, int enable);
-+};
-+
-+
-+/* Machine specific and accelerated touch operations */
-+struct wm97xx_mach_ops {
-+
-+ /* accelerated touch readback - coords are transmited on AC97 link */
-+ int acc_enabled;
-+ void (*acc_pen_up) (struct wm97xx *);
-+ int (*acc_pen_down) (struct wm97xx *);
-+ int (*acc_startup) (struct wm97xx *);
-+ void (*acc_shutdown) (struct wm97xx *);
-+
-+ /* pre and post sample - can be used to minimise any analog noise */
-+ void (*pre_sample) (int); /* function to run before sampling */
-+ void (*post_sample) (int); /* function to run after sampling */
-+};
-+
-+struct wm97xx {
-+ u16 dig[3], id, gpio[6], misc; /* Cached codec registers */
-+ u16 dig_save[3]; /* saved during aux reading */
-+ struct wm97xx_codec_drv *codec; /* attached codec driver*/
-+ struct input_dev* input_dev; /* touchscreen input device */
-+ struct snd_ac97 *ac97; /* ALSA codec access */
-+ struct device *dev; /* ALSA device */
-+ struct device *battery_dev;
-+ struct device *touch_dev;
-+ struct wm97xx_mach_ops *mach_ops;
-+ struct mutex codec_mutex;
-+ struct completion ts_init;
-+ struct completion ts_exit;
-+ struct task_struct *ts_task;
-+ unsigned int pen_irq; /* Pen IRQ number in use */
-+ wait_queue_head_t pen_irq_wait; /* Pen IRQ wait queue */
-+ struct workqueue_struct *pen_irq_workq;
-+ struct work_struct pen_event_work;
-+ u16 acc_slot; /* AC97 slot used for acc touch data */
-+ u16 acc_rate; /* acc touch data rate */
-+ unsigned int ts_use_count;
-+ unsigned pen_is_down:1; /* Pen is down */
-+ unsigned aux_waiting:1; /* aux measurement waiting */
-+ unsigned pen_probably_down:1; /* used in polling mode */
-+};
-+
-+/* Codec GPIO access (not supported on WM9705)
-+ * This can be used to set/get codec GPIO and Virtual GPIO status.
-+ */
-+wm97xx_gpio_status_t wm97xx_get_gpio(struct wm97xx *wm, u32 gpio);
-+void wm97xx_set_gpio(struct wm97xx *wm, u32 gpio,
-+ wm97xx_gpio_status_t status);
-+void wm97xx_config_gpio(struct wm97xx *wm, u32 gpio,
-+ wm97xx_gpio_dir_t dir,
-+ wm97xx_gpio_pol_t pol,
-+ wm97xx_gpio_sticky_t sticky,
-+ wm97xx_gpio_wake_t wake);
-+
-+/* codec AC97 IO access */
-+int wm97xx_reg_read(struct wm97xx *wm, u16 reg);
-+void wm97xx_reg_write(struct wm97xx *wm, u16 reg, u16 val);
-+
-+/* aux adc readback */
-+int wm97xx_read_aux_adc(struct wm97xx *wm, u16 adcsel);
-+
-+/* machine ops */
-+int wm97xx_register_mach_ops(struct wm97xx *, struct wm97xx_mach_ops *);
-+void wm97xx_unregister_mach_ops(struct wm97xx *);
-+
-+extern struct bus_type wm97xx_bus_type;
-+#endif
-diff --git a/sound/soc/pxa/Kconfig b/sound/soc/pxa/Kconfig
-index a83e229..89b5730 100644
---- a/sound/soc/pxa/Kconfig
-+++ b/sound/soc/pxa/Kconfig
-@@ -53,3 +53,12 @@ config SND_PXA2XX_SOC_TOSA
- help
- Say Y if you want to add support for SoC audio on Sharp
- Zaurus SL-C6000x models (Tosa).
-+
-+config SND_PXA2XX_SOC_EM_X270
-+ tristate "SoC Audio support for CompuLab EM-x270"
-+ depends on SND_PXA2XX_SOC && MACH_EM_X270
-+ select SND_PXA2XX_SOC_AC97
-+ select SND_SOC_WM9712
-+ help
-+ Say Y if you want to add support for SoC audio on
-+ CompuLab EM-x270.
-diff --git a/sound/soc/pxa/Makefile b/sound/soc/pxa/Makefile
-index 78e0d6b..32375ac 100644
---- a/sound/soc/pxa/Makefile
-+++ b/sound/soc/pxa/Makefile
-@@ -12,9 +12,11 @@ snd-soc-corgi-objs := corgi.o
- snd-soc-poodle-objs := poodle.o
- snd-soc-tosa-objs := tosa.o
- snd-soc-spitz-objs := spitz.o
-+snd-soc-em-x270-objs := em-x270.o
-
- obj-$(CONFIG_SND_PXA2XX_SOC_CORGI) += snd-soc-corgi.o
- obj-$(CONFIG_SND_PXA2XX_SOC_POODLE) += snd-soc-poodle.o
- obj-$(CONFIG_SND_PXA2XX_SOC_TOSA) += snd-soc-tosa.o
- obj-$(CONFIG_SND_PXA2XX_SOC_SPITZ) += snd-soc-spitz.o
-+obj-$(CONFIG_SND_PXA2XX_SOC_EM_X270) += snd-soc-em-x270.o
-
-diff --git a/sound/soc/pxa/em-x270.c b/sound/soc/pxa/em-x270.c
-new file mode 100644
-index 0000000..9e891d0
---- /dev/null
-+++ b/sound/soc/pxa/em-x270.c
-@@ -0,0 +1,137 @@
-+/*
-+ * em-x270.c -- SoC audio for EM-X270
-+ *
-+ * Copyright 2007 CompuLab, Ltd.
-+ *
-+ * Author: Mike Rapoport <mike@compulab.co.il>
-+ *
-+ * Copied from tosa.c:
-+ * Copyright 2005 Wolfson Microelectronics PLC.
-+ * Copyright 2005 Openedhand Ltd.
-+ *
-+ * Authors: Liam Girdwood <liam.girdwood@wolfsonmicro.com>
-+ * Richard Purdie <richard@openedhand.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.
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/moduleparam.h>
-+#include <linux/device.h>
-+
-+#include <sound/driver.h>
-+#include <sound/core.h>
-+#include <sound/pcm.h>
-+#include <sound/soc.h>
-+#include <sound/soc-dapm.h>
-+
-+#include <asm/mach-types.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/audio.h>
-+
-+#include "../codecs/wm9712.h"
-+#include "pxa2xx-pcm.h"
-+#include "pxa2xx-ac97.h"
-+
-+static struct snd_soc_machine em_x270;
-+
-+#define EM_X270_HP 0
-+#define EM_X270_MIC_INT 1
-+#define EM_X270_HEADSET 2
-+#define EM_X270_HP_OFF 3
-+#define EM_X270_SPK_ON 0
-+#define EM_X270_SPK_OFF 1
-+
-+
-+static struct snd_soc_ops em_x270_ops = {
-+};
-+
-+static const struct snd_kcontrol_new em_x270_controls[] = {
-+};
-+
-+static int em_x270_ac97_init(struct snd_soc_codec *codec)
-+{
-+ int i, err;
-+
-+ /* add em_x270 specific controls */
-+ for (i = 0; i < ARRAY_SIZE(em_x270_controls); i++) {
-+ err = snd_ctl_add(codec->card,
-+ snd_soc_cnew(&em_x270_controls[i],codec, NULL));
-+ if (err < 0)
-+ return err;
-+ }
-+
-+ snd_soc_dapm_sync_endpoints(codec);
-+ return 0;
-+}
-+
-+static struct snd_soc_dai_link em_x270_dai[] = {
-+ {
-+ .name = "AC97",
-+ .stream_name = "AC97 HiFi",
-+ .cpu_dai = &pxa_ac97_dai[PXA2XX_DAI_AC97_HIFI],
-+ .codec_dai = &wm9712_dai[WM9712_DAI_AC97_HIFI],
-+ .init = em_x270_ac97_init,
-+ .ops = &em_x270_ops,
-+ },
-+ {
-+ .name = "AC97 Aux",
-+ .stream_name = "AC97 Aux",
-+ .cpu_dai = &pxa_ac97_dai[PXA2XX_DAI_AC97_AUX],
-+ .codec_dai = &wm9712_dai[WM9712_DAI_AC97_AUX],
-+ .ops = &em_x270_ops,
-+ },
-+};
-+
-+static struct snd_soc_machine em_x270 = {
-+ .name = "EM-X270",
-+ .dai_link = em_x270_dai,
-+ .num_links = ARRAY_SIZE(em_x270_dai),
-+};
-+
-+static struct snd_soc_device em_x270_snd_devdata = {
-+ .machine = &em_x270,
-+ .platform = &pxa2xx_soc_platform,
-+ .codec_dev = &soc_codec_dev_wm9712,
-+};
-+
-+static struct platform_device *em_x270_snd_device;
-+
-+static int __init em_x270_init(void)
-+{
-+ int ret;
-+
-+ if (!machine_is_em_x270())
-+ return -ENODEV;
-+
-+ em_x270_snd_device = platform_device_alloc("soc-audio", -1);
-+ if (!em_x270_snd_device)
-+ return -ENOMEM;
-+
-+ platform_set_drvdata(em_x270_snd_device, &em_x270_snd_devdata);
-+ em_x270_snd_devdata.dev = &em_x270_snd_device->dev;
-+ ret = platform_device_add(em_x270_snd_device);
-+
-+ if (ret)
-+ platform_device_put(em_x270_snd_device);
-+
-+ return ret;
-+}
-+
-+static void __exit em_x270_exit(void)
-+{
-+ platform_device_unregister(em_x270_snd_device);
-+}
-+
-+module_init(em_x270_init);
-+module_exit(em_x270_exit);
-+
-+/* Module information */
-+MODULE_AUTHOR("Mike Rapoport");
-+MODULE_DESCRIPTION("ALSA SoC EM-X270");
-+MODULE_LICENSE("GPL");
diff --git a/meta/recipes-kernel/linux/linux_2.6.23.bb b/meta/recipes-kernel/linux/linux_2.6.23.bb
deleted file mode 100644
index 4ced980..0000000
--- a/meta/recipes-kernel/linux/linux_2.6.23.bb
+++ /dev/null
@@ -1,83 +0,0 @@
-require linux.inc
-
-# Mark archs/machines that this kernel supports
-DEFAULT_PREFERENCE = "-1"
-DEFAULT_PREFERENCE_cm-x270 = "1"
-DEFAULT_PREFERENCE_em-x270 = "1"
-DEFAULT_PREFERENCE_mpc8313e-rdb = "1"
-DEFAULT_PREFERENCE_mpc8323e-rdb = "1"
-
-PR = "r7"
-
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-2.6.23.tar.bz2 \
- file://binutils-buildid-arm.patch;patch=1 \
- file://1300-fix-gcc-4.3-false-modulo-optimization.patch.patch;patch=1 \
- file://defconfig \
- "
-
-SRC_URI_append_em-x270 = "\
- file://em-x270.patch;patch=1 \
- file://em-x270-battery-sysfs-fix.patch;patch=1 "
-
-SRC_URI_append_cm-x270 = "\
- file://0001-cm-x270-base2.patch;patch=1 \
- file://0002-cm-x270-match-type.patch;patch=1 \
- file://0003-cm-x270-ide.patch;patch=1 \
- file://0004-cm-x270-it8152.patch;patch=1 \
- file://0005-cm-x270-pcmcia.patch;patch=1 \
- file://0006-ramdisk_load.patch;patch=1 \
- file://0007-mmcsd_large_cards-r0.patch;patch=1 \
- file://0008-cm-x270-nand-simplify-name.patch;patch=1 \
- file://16bpp.patch;patch=1"
-
-CMDLINE_cm-x270 = "console=${CMX270_CONSOLE_SERIAL_PORT},38400 monitor=8 bpp=16 mem=64M mtdparts=physmap-flash.0:256k(boot)ro,0x180000(kernel),-(root);cm-x270-nand:64m(app),-(data) rdinit=/sbin/init root=mtd3 rootfstype=jffs2"
-
-FILES_kernel-image_cm-x270 = ""
-
-python compulab_image() {
- import os
- import os.path
- import struct
-
- machine = bb.data.getVar('MACHINE', d, 1)
- if machine == "cm-x270":
- deploy_dir = bb.data.getVar('DEPLOYDIR', d, 1)
- kernel_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.bin')
- img_file = os.path.join(deploy_dir, bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.cmx270')
-
- fo = open(img_file, 'wb')
-
- image_data = open(kernel_file, 'rb').read()
-
- # first write size into first 4 bytes
- size_s = struct.pack('i', len(image_data))
-
- # truncate size if we are running on a 64-bit host
- size_s = size_s[:4]
-
- fo.write(size_s)
- fo.write(image_data)
- fo.close()
-
- os.chdir(deploy_dir)
- link_file = bb.data.expand('${KERNEL_IMAGE_SYMLINK_NAME}', d) + '.cmx270'
- img_file = bb.data.expand('${KERNEL_IMAGE_BASE_NAME}', d) + '.cmx270'
- try:
- os.unlink(link_file)
- except:
- pass
- os.symlink(img_file, link_file)
-}
-do_deploy[postfuncs] += "compulab_image"
-
-do_kernel_image() {
-
- if [ "${MACHINE}" = "em-x270" ]
- then
- mkdir -p ${WORKDIR}/t
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_SYMLINK_NAME}.bin ${WORKDIR}/t/uImage
- mkfs.jffs2 --eraseblock=0x20000 --pad --no-cleanmarkers --faketime --root=${WORKDIR}/t --output=${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGE_BASE_NAME}.jffs2
- cd ${DEPLOY_DIR_IMAGE} && ln -sf ${KERNEL_IMAGE_BASE_NAME}.jffs2 uImage-em-x270.jffs2
- fi
-}
-addtask kernel_image after do_deploy
--
1.7.0.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/4] linux-2.6.33.2: remove linux-2.6.33.2 recipe
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
` (2 preceding siblings ...)
2011-02-19 0:46 ` [PATCH 1/4] zaurus: remove zaurus linux includes Darren Hart
@ 2011-02-19 0:46 ` Darren Hart
2011-02-19 0:51 ` [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:46 UTC (permalink / raw)
To: poky, richard.purdie, tom.zanussi, bruce.ashfield; +Cc: Darren Hart
From: Darren Hart <dvhart@linux.intel.com>
The one machine listed for this kernel recipe does not have a machine config.
This recipe uses some older mechanism which are being phased out. Remove it to
avoid confusion and clean up the kernel recipes metadata.
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
---
.../linux/linux-2.6.33.2/mpc8313erdb/defconfig | 1780 ----------------
.../linux/linux-2.6.33.2/qemuarm/defconfig | 1837 -----------------
.../linux/linux-2.6.33.2/qemumips/defconfig | 1825 -----------------
.../linux/linux-2.6.33.2/qemuppc/defconfig | 1780 ----------------
.../linux/linux-2.6.33.2/qemux86/defconfig | 2160 --------------------
meta/recipes-kernel/linux/linux_2.6.33.2.bb | 15 -
6 files changed, 0 insertions(+), 9397 deletions(-)
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
delete mode 100644 meta/recipes-kernel/linux/linux_2.6.33.2.bb
diff --git a/meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig b/meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
deleted file mode 100644
index edabeff..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
+++ /dev/null
@@ -1,1780 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32
-# Tue Dec 15 13:01:02 2009
-#
-# CONFIG_PPC64 is not set
-
-#
-# Processor support
-#
-CONFIG_PPC_BOOK3S_32=y
-# CONFIG_PPC_85xx is not set
-# CONFIG_PPC_8xx is not set
-# CONFIG_40x is not set
-# CONFIG_44x is not set
-# CONFIG_E200 is not set
-CONFIG_PPC_BOOK3S=y
-CONFIG_6xx=y
-CONFIG_PPC_FPU=y
-# CONFIG_FSL_EMB_PERFMON is not set
-# CONFIG_ALTIVEC is not set
-CONFIG_PPC_STD_MMU=y
-CONFIG_PPC_STD_MMU_32=y
-# CONFIG_PPC_MM_SLICES is not set
-CONFIG_PPC_HAVE_PMU_SUPPORT=y
-# CONFIG_SMP is not set
-CONFIG_PPC32=y
-CONFIG_WORD_SIZE=32
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_MMU=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
-# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
-CONFIG_IRQ_PER_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_ILOG2_U32=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
-CONFIG_PPC=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_GENERIC_NVRAM=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_PPC_OF=y
-CONFIG_OF=y
-CONFIG_PPC_UDBG_16550=y
-# CONFIG_GENERIC_TBSYNC is not set
-CONFIG_AUDIT_ARCH=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DTC=y
-CONFIG_DEFAULT_UIMAGE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_PPC_DCR_NATIVE is not set
-# CONFIG_PPC_DCR_MMIO is not set
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_GROUP_SCHED=y
-# CONFIG_FAIR_GROUP_SCHED is not set
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_USER_SCHED=y
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EMBEDDED=y
-CONFIG_SYSCTL_SYSCALL=y
-# 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_EPOLL is not set
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_SLUB_DEBUG=y
-CONFIG_COMPAT_BRK=y
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_SLOW_WORK is not set
-# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY 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"
-# CONFIG_FREEZER is not set
-
-#
-# Platform support
-#
-# CONFIG_PPC_CHRP is not set
-# CONFIG_MPC5121_ADS is not set
-# CONFIG_MPC5121_GENERIC is not set
-# CONFIG_PPC_MPC52xx is not set
-# CONFIG_PPC_PMAC is not set
-# CONFIG_PPC_CELL is not set
-# CONFIG_PPC_CELL_NATIVE is not set
-# CONFIG_PPC_82xx is not set
-# CONFIG_PQ2ADS is not set
-CONFIG_PPC_83xx=y
-CONFIG_MPC831x_RDB=y
-# CONFIG_MPC832x_MDS is not set
-# CONFIG_MPC832x_RDB is not set
-# CONFIG_MPC834x_MDS is not set
-# CONFIG_MPC834x_ITX is not set
-# CONFIG_MPC836x_MDS is not set
-# CONFIG_MPC836x_RDK is not set
-# CONFIG_MPC837x_MDS is not set
-# CONFIG_MPC837x_RDB is not set
-# CONFIG_SBC834x is not set
-# CONFIG_ASP834x is not set
-# CONFIG_KMETER1 is not set
-CONFIG_PPC_MPC831x=y
-# CONFIG_PPC_86xx is not set
-# CONFIG_EMBEDDED6xx is not set
-# CONFIG_AMIGAONE is not set
-CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
-CONFIG_IPIC=y
-# CONFIG_MPIC is not set
-# CONFIG_MPIC_WEIRD is not set
-# CONFIG_PPC_I8259 is not set
-# CONFIG_PPC_RTAS is not set
-# CONFIG_MMIO_NVRAM is not set
-# CONFIG_PPC_MPC106 is not set
-# CONFIG_PPC_970_NAP is not set
-# CONFIG_PPC_INDIRECT_IO is not set
-# CONFIG_GENERIC_IOMAP is not set
-# CONFIG_CPU_FREQ is not set
-# CONFIG_TAU is not set
-# CONFIG_QUICC_ENGINE is not set
-# CONFIG_FSL_ULI1575 is not set
-# CONFIG_MPC8xxx_GPIO is not set
-# CONFIG_SIMPLE_GPIO is not set
-# CONFIG_MCU_MPC8349EMITX is not set
-
-#
-# Kernel options
-#
-# CONFIG_HIGHMEM is not set
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=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_SCHED_HRTICK=y
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_HAVE_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_IOMMU_HELPER is not set
-# CONFIG_SWIOTLB is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_HAS_WALK_MEMORY=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_MAX_ACTIVE_REGIONS=32
-CONFIG_ARCH_FLATMEM_ENABLE=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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_PPC_4K_PAGES=y
-# CONFIG_PPC_16K_PAGES is not set
-# CONFIG_PPC_64K_PAGES is not set
-# CONFIG_PPC_256K_PAGES is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_PROC_DEVICETREE=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_EXTRA_TARGETS=""
-# CONFIG_PM is not set
-CONFIG_SECCOMP=y
-CONFIG_ISA_DMA_API=y
-
-#
-# Bus options
-#
-CONFIG_ZONE_DMA=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_PPC_INDIRECT_PCI=y
-CONFIG_FSL_SOC=y
-CONFIG_FSL_PCI=y
-CONFIG_PPC_PCI_CHOICE=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_SYSCALL=y
-# CONFIG_PCIEPORTBUS is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
-# CONFIG_PCI_LEGACY is not set
-# CONFIG_PCI_DEBUG is not set
-# CONFIG_PCI_STUB is not set
-# CONFIG_PCI_IOV is not set
-# CONFIG_PCCARD is not set
-# CONFIG_HOTPLUG_PCI is not set
-# CONFIG_HAS_RAPIDIO is not set
-
-#
-# Advanced setup
-#
-# CONFIG_ADVANCED_OPTIONS is not set
-
-#
-# Default settings for advanced configuration options are used
-#
-CONFIG_LOWMEM_SIZE=0x30000000
-CONFIG_PAGE_OFFSET=0xc0000000
-CONFIG_KERNEL_START=0xc0000000
-CONFIG_PHYSICAL_START=0x00000000
-CONFIG_TASK_SIZE=0xc0000000
-CONFIG_NET=y
-
-#
-# Networking options
-#
-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_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# 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=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_LRO 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_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA 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
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-# CONFIG_CFG80211 is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-# CONFIG_WIRELESS_EXT is not set
-# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS 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_OF_PARTS=y
-# CONFIG_MTD_AR7_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
-# CONFIG_MTD_OOPS 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 is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# 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 is not set
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_PHYSMAP_OF=y
-# CONFIG_MTD_INTEL_VR_NOR is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L 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=y
-CONFIG_MTD_NAND_VERIFY_WRITE=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_CAFE is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_FSL_ELBC=y
-# CONFIG_MTD_NAND_FSL_UPM is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
-CONFIG_OF_DEVICE=y
-CONFIG_OF_I2C=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD 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=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=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=32768
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_CB710_CORE is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=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 is not set
-# 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
-# CONFIG_SCSI_MULTI_LUN is not set
-# 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=y
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_CXGB3_ISCSI is not set
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI 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_AIC94XX is not set
-# CONFIG_SCSI_MVSAS is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS 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_MPT2SAS is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_FCOE is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH 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_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_PMCRAID is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_BFA_FC is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=y
-CONFIG_MD_RAID0=y
-CONFIG_MD_RAID1=y
-# CONFIG_MD_RAID10 is not set
-# CONFIG_MD_RAID456 is not set
-# CONFIG_MD_MULTIPATH is not set
-# CONFIG_MD_FAULTY is not set
-# CONFIG_BLK_DEV_DM is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-# CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-CONFIG_CICADA_PHY=y
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-CONFIG_FIXED_PHY=y
-# CONFIG_MDIO_BITBANG 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_ENC28J60 is not set
-# CONFIG_ETHOC is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR 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_E100=y
-# 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_R6040 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SMSC9420 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_ATL2 is not set
-# CONFIG_XILINX_EMACLITE is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_E1000E is not set
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF 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_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-CONFIG_FSL_PQ_MDIO=y
-CONFIG_GIANFAR=y
-# CONFIG_MV643XX_ETH is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-CONFIG_NETDEV_10000=y
-# CONFIG_CHELSIO_T1 is not set
-CONFIG_CHELSIO_T3_DEPENDS=y
-# CONFIG_CHELSIO_T3 is not set
-# CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-# CONFIG_VXGE is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
-# CONFIG_NIU is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
-# CONFIG_TEHUTI is not set
-# CONFIG_BNX2X is not set
-# CONFIG_QLGE is not set
-# CONFIG_SFC is not set
-# CONFIG_BE2NET is not set
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# 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_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_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE 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_EVDEV is not set
-# 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 is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_PCI=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_MAX3100 is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_OF_PLATFORM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_HVC_UDBG is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# 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_I801 is not set
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_MPC=y
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_SIMTEC is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-# CONFIG_I2C_VOODOO3 is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_STUB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_TSL2550 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_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_MPC8xxx is not set
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# 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_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7473 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A 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_LM93 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_MAX1111 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_PCF8591 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 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_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_THERMAL is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_8xxx_WDT is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13783 is not set
-# CONFIG_AB3100_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_AGP is not set
-CONFIG_VGA_ARB=y
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-# CONFIG_FB is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_SOUND is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-# CONFIG_USB_HID is not set
-# CONFIG_HID_PID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
-# Special HID drivers
-#
-CONFIG_USB_SUPPORT=y
-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
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_XHCI_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_EHCI_FSL=y
-CONFIG_USB_EHCI_HCD_PPC_OF=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
-# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
-CONFIG_USB_OHCI_HCD_PPC_OF=y
-CONFIG_USB_OHCI_HCD_PCI=y
-CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
-CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=y
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-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_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 is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# 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_SEVSEG 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_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
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_ATMEL_USBA is not set
-# CONFIG_USB_GADGET_FSL_USB2 is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_PXA25X is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA27X is not set
-# CONFIG_USB_GADGET_S3C_HSOTG is not set
-# CONFIG_USB_GADGET_IMX is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_FSL_QE is not set
-# CONFIG_USB_GADGET_CI13XXX is not set
-CONFIG_USB_GADGET_NET2280=y
-CONFIG_USB_NET2280=y
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=y
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM 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
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-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=y
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=y
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_RTC_DRV_GENERIC is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING 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_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4_FS is not set
-CONFIG_JBD=y
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS 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_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# 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_FS_WBUF_VERIFY is not set
-# 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 is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-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
-
-#
-# 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
-CONFIG_NLS=y
-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
-# CONFIG_DLM is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_HAVE_LMB=y
-CONFIG_NLATTR=y
-CONFIG_GENERIC_ATOMIC64=y
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_STRIP_ASM_SYMS 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_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK 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_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT 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_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-# CONFIG_BOOT_TRACER is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_KMEMTRACE is not set
-# CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_PPC_DISABLE_WERROR is not set
-CONFIG_PPC_WERROR=y
-CONFIG_PRINT_STACK_DEPTH=64
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_CODE_PATCHING_SELFTEST is not set
-# CONFIG_FTR_FIXUP_SELFTEST is not set
-# CONFIG_MSI_BITMAP_SELFTEST is not set
-# CONFIG_XMON is not set
-# CONFIG_IRQSTACKS is not set
-# CONFIG_BDI_SWITCH is not set
-# CONFIG_BOOTX_TEXT is not set
-# CONFIG_PPC_EARLY_DEBUG is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-# CONFIG_CRYPTO_AES is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-# CONFIG_CRYPTO_DEV_TALITOS is not set
-# CONFIG_PPC_CLOCK is not set
-# CONFIG_VIRTUALIZATION is not set
diff --git a/meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig b/meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
deleted file mode 100644
index 5786476..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
+++ /dev/null
@@ -1,1837 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32
-# Fri May 14 14:45:43 2010
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_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_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_GROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-# CONFIG_RELAY is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=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_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_COMPAT_BRK=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_OPROFILE=m
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_CLK=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_SLOW_WORK=y
-# CONFIG_SLOW_WORK_DEBUG is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY 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"
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_AAEC2000 is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_VERSATILE=y
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_STMP3XXX is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_NOMADIK 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 is not set
-# CONFIG_ARCH_L7200 is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LOKI is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5PC1XX is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCMRING is not set
-
-#
-# Versatile platform type
-#
-CONFIG_ARCH_VERSATILE_PB=y
-# CONFIG_MACH_VERSATILE_AB is not set
-
-#
-# Processor Type
-#
-CONFIG_CPU_32=y
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=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
-
-#
-# 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_CPU_CACHE_ROUND_ROBIN is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_VIC=y
-CONFIG_ARM_VIC_NR=2
-CONFIG_ICST307=y
-CONFIG_COMMON_CLKDEV=y
-
-#
-# Bus support
-#
-CONFIG_ARM_AMBA=y
-CONFIG_PCI=y
-CONFIG_PCI_SYSCALL=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_DEBUG is not set
-# CONFIG_PCI_STUB is not set
-# CONFIG_PCI_IOV is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-# CONFIG_PREEMPT_NONE is not set
-# CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
-CONFIG_HZ=100
-CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-# CONFIG_HIGHMEM 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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4096
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_LEDS=y
-CONFIG_LEDS_CPU=y
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-
-#
-# Boot options
-#
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE="console=ttyAMA0,115200n8 console=tty1 noinitrd root=/dev/mtdblock2 rootfstype=jffs2 dyntick=enable debug"
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-
-#
-# CPU Power Management
-#
-# CONFIG_CPU_IDLE 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
-CONFIG_VFP=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-
-#
-# Power management options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-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_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=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=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_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=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-# CONFIG_INET_LRO is not set
-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
-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_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-
-#
-# Core Netfilter Configuration
-#
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-# CONFIG_NF_CONNTRACK is not set
-# CONFIG_NETFILTER_TPROXY is not set
-CONFIG_NETFILTER_XTABLES=m
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-CONFIG_NETFILTER_XT_TARGET_HL=m
-# CONFIG_NETFILTER_XT_TARGET_LED is not set
-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-CONFIG_NETFILTER_XT_MATCH_HL=m
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-# CONFIG_NF_DEFRAG_IPV4 is not set
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_TTL=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_MANGLE=m
-CONFIG_IP_NF_TARGET_ECN=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
-#
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA 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
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_DROP_MONITOR is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN 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
-#
-# CONFIG_KINGSUN_DONGLE is not set
-# CONFIG_KSDAZZLE_DONGLE is not set
-# CONFIG_KS959_DONGLE is not set
-
-#
-# FIR device drivers
-#
-# CONFIG_USB_IRDA is not set
-# CONFIG_SIGMATEL_FIR is not set
-# CONFIG_TOSHIBA_FIR is not set
-# CONFIG_VLSI_FIR is not set
-# 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_HCIBTUSB is not set
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-# CONFIG_BT_HCIUART_LL is not set
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIVHCI=m
-# CONFIG_BT_MRVL is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-# CONFIG_CFG80211 is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-# CONFIG_WIRELESS_OLD_REGULATORY is not set
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS 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=y
-# CONFIG_MTD_AR7_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
-# CONFIG_MTD_OOPS 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 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_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 is not set
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_ARM_INTEGRATOR is not set
-# CONFIG_MTD_INTEL_VR_NOR 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=m
-CONFIG_MTD_NAND_VERIFY_WRITE=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-CONFIG_MTD_NAND_IDS=m
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_CAFE is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# 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=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=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=51200
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_CB710_CORE is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=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 is not set
-# CONFIG_CHR_DEV_SCH is not set
-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=y
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI 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_AIC94XX is not set
-# CONFIG_SCSI_MVSAS is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS 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_MPT2SAS is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_FCOE 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=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_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_PMCRAID is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_BFA_FC is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-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_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-# CONFIG_DM_MULTIPATH_QL is not set
-# CONFIG_DM_MULTIPATH_ST is not set
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-# CONFIG_VETH is not set
-# CONFIG_ARCNET is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-# CONFIG_AX88796 is not set
-# 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
-# CONFIG_ETHOC is not set
-# CONFIG_SMC911X is not set
-# CONFIG_SMSC911X is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_NET_PCI is not set
-# CONFIG_B44 is not set
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_ATL2 is not set
-# CONFIG_NETDEV_1000 is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-# CONFIG_LIBERTAS is not set
-# CONFIG_ATMEL is not set
-# CONFIG_PRISM54 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_PLX is not set
-# CONFIG_HOSTAP_PCI is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# 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_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 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_PPPOL2TP is not set
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE 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=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_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TABLET=y
-# CONFIG_TABLET_USB_ACECAD is not set
-# CONFIG_TABLET_USB_AIPTEK is not set
-# CONFIG_TABLET_USB_GTCO is not set
-# CONFIG_TABLET_USB_KBTAB is not set
-CONFIG_TABLET_USB_WACOM=y
-# CONFIG_INPUT_TOUCHSCREEN is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_ATI_REMOTE is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-CONFIG_INPUT_UINPUT=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_SERPORT 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
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-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_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-# CONFIG_I2C is not set
-# CONFIG_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
-# CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-CONFIG_VGA_ARB=y
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# 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_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_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_S3 is not set
-# CONFIG_FB_SAVAGE is not set
-# CONFIG_FB_SIS is not set
-# CONFIG_FB_VIA 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_VT8623 is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-# CONFIG_FB_CARMINE is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-# CONFIG_FB_BROADSHEET is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
-# CONFIG_LCD_PLATFORM is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=m
-CONFIG_BACKLIGHT_GENERIC=m
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-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
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-# CONFIG_LOGO_LINUX_CLUT224 is not set
-# CONFIG_SOUND is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=m
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-CONFIG_USB_KBD=m
-CONFIG_USB_MOUSE=m
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_USB_SUPPORT=y
-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
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_XHCI_HCD is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_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 is not set
-CONFIG_USB_SL811_HCD=m
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-# CONFIG_USB_MUSB_HDRC is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-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_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 is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-CONFIG_USB_SERIAL_GENERIC=y
-# CONFIG_USB_SERIAL_AIRCABLE is not set
-# CONFIG_USB_SERIAL_ARK3116 is not set
-CONFIG_USB_SERIAL_BELKIN=m
-# CONFIG_USB_SERIAL_CH341 is not set
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP210X 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_IUU is not set
-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_MOTOROLA is not set
-# CONFIG_USB_SERIAL_NAVMAN is not set
-CONFIG_USB_SERIAL_PL2303=m
-# CONFIG_USB_SERIAL_OTI6858 is not set
-# CONFIG_USB_SERIAL_QUALCOMM is not set
-# CONFIG_USB_SERIAL_SPCP8X5 is not set
-# CONFIG_USB_SERIAL_HP4X is not set
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
-# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
-# CONFIG_USB_SERIAL_SYMBOL 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_OPTICON is not set
-# CONFIG_USB_SERIAL_DEBUG is not set
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-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_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
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_VST is not set
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-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 is not set
-# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
-# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-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
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_RTC_DRV_PL030 is not set
-# CONFIG_RTC_DRV_PL031 is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING 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_DEFAULTS_TO_ORDERED is not set
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4_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_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE 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_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# 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_FS_WBUF_VERIFY is not set
-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_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-# CONFIG_NFSD_V4 is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=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=y
-# 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 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
-
-#
-# 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
-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
-# CONFIG_DLM is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_DETECT_SOFTLOCKUP is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_KMEMLEAK 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_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_KOBJECT is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_PREEMPT_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-# CONFIG_BOOT_TRACER is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_KMEMTRACE is not set
-# CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-CONFIG_DEBUG_ERRORS=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-# CONFIG_CRYPTO_FIPS is not set
-CONFIG_CRYPTO_ALGAPI=m
-CONFIG_CRYPTO_ALGAPI2=m
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=m
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_BLKCIPHER2=m
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_HASH2=m
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=m
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_MANAGER2=m
-# CONFIG_CRYPTO_GF128MUL is not set
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_WORKQUEUE=m
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=m
-# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_GHASH is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-# CONFIG_CRYPTO_TGR192 is not set
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-# CONFIG_CRYPTO_FCRYPT is not set
-CONFIG_CRYPTO_KHAZAD=m
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_ZLIB is not set
-CONFIG_CRYPTO_LZO=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-# CONFIG_CRYPTO_HW is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=m
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
diff --git a/meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig b/meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
deleted file mode 100644
index a4578e7..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
+++ /dev/null
@@ -1,1825 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32
-# Fri May 14 15:43:51 2010
-#
-CONFIG_MIPS=y
-
-#
-# Machine selection
-#
-CONFIG_ZONE_DMA=y
-# CONFIG_MACH_ALCHEMY is not set
-# CONFIG_AR7 is not set
-# CONFIG_BASLER_EXCITE is not set
-# CONFIG_BCM47XX is not set
-# CONFIG_BCM63XX is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_LASAT is not set
-# CONFIG_MACH_LOONGSON is not set
-CONFIG_MIPS_MALTA=y
-# CONFIG_MIPS_SIM is not set
-# CONFIG_NEC_MARKEINS is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_NXP_STB220 is not set
-# CONFIG_NXP_STB225 is not set
-# CONFIG_PNX8550_JBS is not set
-# CONFIG_PNX8550_STB810 is not set
-# CONFIG_PMC_MSP is not set
-# CONFIG_PMC_YOSEMITE is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP28 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_SWARM is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_BIGSUR is not set
-# CONFIG_SNI_RM is not set
-# CONFIG_MACH_TX39XX is not set
-# CONFIG_MACH_TX49XX is not set
-# CONFIG_MIKROTIK_RB532 is not set
-# CONFIG_WR_PPMC is not set
-# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
-# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
-# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_ARCH_HAS_ILOG2_U32 is not set
-# CONFIG_ARCH_HAS_ILOG2_U64 is not set
-CONFIG_ARCH_SUPPORTS_OPROFILE=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_BOOT_RAW=y
-CONFIG_CEVT_R4K_LIB=y
-CONFIG_CEVT_R4K=y
-CONFIG_CSRC_R4K_LIB=y
-CONFIG_CSRC_R4K=y
-CONFIG_DMA_NONCOHERENT=y
-CONFIG_DMA_NEED_PCI_MAP_STATE=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_SYS_HAS_EARLY_PRINTK=y
-CONFIG_I8259=y
-CONFIG_MIPS_BONITO64=y
-CONFIG_MIPS_MSC=y
-# CONFIG_NO_IOPORT is not set
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_CPU_BIG_ENDIAN=y
-# CONFIG_CPU_LITTLE_ENDIAN is not set
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-CONFIG_IRQ_CPU=y
-CONFIG_IRQ_GIC=y
-CONFIG_MIPS_BOARDS_GEN=y
-CONFIG_PCI_GT64XXX_PCI0=y
-CONFIG_SWAP_IO_SPACE=y
-CONFIG_BOOT_ELF32=y
-CONFIG_MIPS_L1_CACHE_SHIFT=6
-
-#
-# CPU selection
-#
-# CONFIG_CPU_LOONGSON2E is not set
-# CONFIG_CPU_MIPS32_R1 is not set
-CONFIG_CPU_MIPS32_R2=y
-# CONFIG_CPU_MIPS64_R1 is not set
-# CONFIG_CPU_MIPS64_R2 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R5500 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_RM9000 is not set
-# CONFIG_CPU_SB1 is not set
-# CONFIG_CPU_CAVIUM_OCTEON is not set
-CONFIG_SYS_HAS_CPU_MIPS32_R1=y
-CONFIG_SYS_HAS_CPU_MIPS32_R2=y
-CONFIG_SYS_HAS_CPU_MIPS64_R1=y
-CONFIG_SYS_HAS_CPU_NEVADA=y
-CONFIG_SYS_HAS_CPU_RM7000=y
-CONFIG_CPU_MIPS32=y
-CONFIG_CPU_MIPSR2=y
-CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
-CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
-CONFIG_HARDWARE_WATCHPOINTS=y
-
-#
-# Kernel type
-#
-CONFIG_32BIT=y
-# CONFIG_64BIT is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_32KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_BOARD_SCACHE=y
-CONFIG_MIPS_CPU_SCACHE=y
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_MIPS_MT_DISABLED is not set
-CONFIG_MIPS_MT_SMP=y
-# CONFIG_MIPS_MT_SMTC is not set
-CONFIG_MIPS_MT=y
-# CONFIG_SCHED_SMT is not set
-CONFIG_SYS_SUPPORTS_SCHED_SMT=y
-CONFIG_SYS_SUPPORTS_MULTITHREADING=y
-CONFIG_MIPS_MT_FPAFF=y
-# CONFIG_MIPS_VPE_LOADER is not set
-# CONFIG_MIPS_CMP is not set
-# CONFIG_CPU_HAS_SMARTMIPS is not set
-CONFIG_CPU_MIPSR2_IRQ_VI=y
-CONFIG_CPU_MIPSR2_IRQ_EI=y
-CONFIG_CPU_HAS_SYNC=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_IRQ_PER_CPU=y
-CONFIG_CPU_SUPPORTS_HIGHMEM=y
-CONFIG_SYS_SUPPORTS_SMARTMIPS=y
-CONFIG_ARCH_FLATMEM_ENABLE=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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_SMP=y
-CONFIG_SMP_UP=y
-CONFIG_SYS_SUPPORTS_MIPS_CMP=y
-CONFIG_SYS_SUPPORTS_SMP=y
-CONFIG_NR_CPUS_DEFAULT_2=y
-CONFIG_NR_CPUS=2
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-# CONFIG_HZ_48 is not set
-CONFIG_HZ_100=y
-# CONFIG_HZ_128 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_256 is not set
-# CONFIG_HZ_1000 is not set
-# CONFIG_HZ_1024 is not set
-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
-CONFIG_HZ=100
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-# CONFIG_KEXEC is not set
-CONFIG_SECCOMP=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=15
-# CONFIG_GROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-CONFIG_RELAY=y
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-# CONFIG_USER_NS is not set
-CONFIG_PID_NS=y
-# CONFIG_NET_NS is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EMBEDDED=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_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_SLOW_WORK is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY 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"
-# CONFIG_FREEZER is not set
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_HW_HAS_PCI=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_STUB is not set
-# CONFIG_PCI_IOV is not set
-CONFIG_MMU=y
-CONFIG_I8253=y
-# CONFIG_PCCARD is not set
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_HAVE_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-CONFIG_TRAD_SIGNALS=y
-
-#
-# Power management options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_NET=y
-
-#
-# Networking options
-#
-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_XFRM_MIGRATE=y
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=y
-CONFIG_NET_KEY_MIGRATE=y
-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_FIB_HASH=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=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=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE=y
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# 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=y
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-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_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=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 is not set
-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_TPROXY=m
-CONFIG_NETFILTER_XTABLES=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-CONFIG_NETFILTER_XT_TARGET_HL=m
-# CONFIG_NETFILTER_XT_TARGET_LED is not set
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=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_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-# CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT is not set
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=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_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# CONFIG_NETFILTER_XT_MATCH_OSF is not set
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_TTL=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_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=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_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=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
-#
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-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_IP6=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_BRIDGE_EBT_NFLOG=m
-# CONFIG_IP_DCCP is not set
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX 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
-CONFIG_PHONET=m
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# 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_MULTIQ is not set
-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_DRR is not set
-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 is not set
-# CONFIG_CLS_U32_MARK is not set
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-# CONFIG_NET_EMATCH is not set
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=y
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEFAULT_PS_VALUE=1
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT="pid"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-# CONFIG_WIMAX is not set
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-# CONFIG_RFKILL_INPUT is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=m
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS 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_AR7_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
-CONFIG_MTD_OOPS=m
-
-#
-# 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=y
-CONFIG_MTD_CFI_STAA=y
-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 is not set
-CONFIG_MTD_PHYSMAP=y
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_INTEL_VR_NOR 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
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-CONFIG_MTD_UBI_GLUEBI=m
-
-#
-# UBI debugging options
-#
-# CONFIG_MTD_UBI_DEBUG is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-CONFIG_BLK_DEV_FD=m
-# 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=m
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_SX8 is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=4096
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-# CONFIG_BLK_DEV_HD is not set
-# CONFIG_MISC_DEVICES is not set
-CONFIG_HAVE_IDE=y
-CONFIG_IDE=y
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_ATAPI=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=y
-CONFIG_IDE_GD_ATA=y
-# CONFIG_IDE_GD_ATAPI is not set
-CONFIG_BLK_DEV_IDECD=y
-CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_PLATFORM is not set
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-CONFIG_IDEPCI_PCIBUS_ORDER=y
-# CONFIG_BLK_DEV_OFFBOARD is not set
-CONFIG_BLK_DEV_GENERIC=y
-# CONFIG_BLK_DEV_OPTI621 is not set
-CONFIG_BLK_DEV_IDEDMA_PCI=y
-# CONFIG_BLK_DEV_AEC62XX is not set
-# CONFIG_BLK_DEV_ALI15X3 is not set
-# CONFIG_BLK_DEV_AMD74XX is not set
-# CONFIG_BLK_DEV_CMD64X is not set
-# CONFIG_BLK_DEV_TRIFLEX is not set
-# CONFIG_BLK_DEV_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_JMICRON is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-CONFIG_BLK_DEV_PIIX=y
-# CONFIG_BLK_DEV_IT8172 is not set
-CONFIG_BLK_DEV_IT8213=m
-# 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_SLC90E66 is not set
-# CONFIG_BLK_DEV_TRM290 is not set
-# CONFIG_BLK_DEV_VIA82CXXX is not set
-CONFIG_BLK_DEV_TC86C001=m
-CONFIG_BLK_DEV_IDEDMA=y
-
-#
-# SCSI device support
-#
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=m
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_TGT=m
-CONFIG_SCSI_NETLINK=y
-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=y
-CONFIG_CHR_DEV_SG=m
-# CONFIG_CHR_DEV_SCH is not set
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-CONFIG_SCSI_SPI_ATTRS=m
-CONFIG_SCSI_FC_ATTRS=m
-# CONFIG_SCSI_FC_TGT_ATTRS is not set
-CONFIG_SCSI_ISCSI_ATTRS=m
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-# CONFIG_SCSI_CXGB3_ISCSI is not set
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI is not set
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_3W_9XXX=m
-CONFIG_SCSI_ACARD=m
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-# CONFIG_SCSI_AIC79XX is not set
-# CONFIG_SCSI_AIC94XX is not set
-# CONFIG_SCSI_MVSAS is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS 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_MPT2SAS is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_FCOE 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_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_PMCRAID is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_BFA_FC is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-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_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-# CONFIG_ASYNC_RAID6_TEST is not set
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-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_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-# CONFIG_DM_MULTIPATH_QL is not set
-# CONFIG_DM_MULTIPATH_ST is not set
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
-CONFIG_BONDING=m
-CONFIG_MACVLAN=m
-CONFIG_EQUALIZER=m
-CONFIG_TUN=m
-CONFIG_VETH=m
-# CONFIG_ARCNET is not set
-CONFIG_PHYLIB=m
-
-#
-# MII PHY device drivers
-#
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=y
-CONFIG_AX88796=m
-# CONFIG_AX88796_93CX6 is not set
-# 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
-# CONFIG_ETHOC is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=y
-# CONFIG_AMD8111_ETH is not set
-# CONFIG_ADAPTEC_STARFIRE is not set
-# CONFIG_B44 is not set
-# CONFIG_FORCEDETH is not set
-CONFIG_TC35815=m
-# 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_R6040 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SMSC9420 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_ATL2 is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_E1000E is not set
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF 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_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-# CONFIG_CHELSIO_T1 is not set
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-# CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-# CONFIG_VXGE is not set
-# CONFIG_MYRI10GE is not set
-CONFIG_NETXEN_NIC=m
-# CONFIG_NIU is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
-# CONFIG_TEHUTI is not set
-# CONFIG_BNX2X is not set
-# CONFIG_QLGE is not set
-# CONFIG_SFC is not set
-# CONFIG_BE2NET is not set
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-CONFIG_WLAN_PRE80211=y
-CONFIG_STRIP=m
-CONFIG_WLAN_80211=y
-CONFIG_LIBERTAS=m
-# CONFIG_LIBERTAS_DEBUG is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PRISM54=m
-# CONFIG_RTL8180 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-CONFIG_IPW2100=m
-CONFIG_IPW2100_MONITOR=y
-# CONFIG_IPW2100_DEBUG is not set
-CONFIG_IPW2200=m
-CONFIG_IPW2200_MONITOR=y
-CONFIG_IPW2200_RADIOTAP=y
-CONFIG_IPW2200_PROMISCUOUS=y
-CONFIG_IPW2200_QOS=y
-# CONFIG_IPW2200_DEBUG is not set
-CONFIG_LIBIPW=m
-# CONFIG_LIBIPW_DEBUG is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_RT2X00 is not set
-CONFIG_HERMES=m
-CONFIG_HERMES_CACHE_FW_ON_INIT=y
-CONFIG_PLX_HERMES=m
-CONFIG_TMD_HERMES=m
-CONFIG_NORTEL_HERMES=m
-CONFIG_PCI_HERMES=m
-# CONFIG_WL12XX is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-# 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_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE 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=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# 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 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PCIPS2 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_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_PCI=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_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-# CONFIG_I2C is not set
-# CONFIG_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_HWMON is not set
-# CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-CONFIG_VGA_ARB=y
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-# CONFIG_FB is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
-# Console display driver support
-#
-# CONFIG_VGA_CONSOLE is not set
-CONFIG_DUMMY_CONSOLE=y
-# CONFIG_SOUND is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=m
-# CONFIG_HIDRAW is not set
-# CONFIG_HID_PID is not set
-
-#
-# Special HID drivers
-#
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-
-#
-# LED drivers
-#
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGERS=y
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_IDE_DISK=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-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
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=y
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_CIF=m
-# CONFIG_UIO_PDRV is not set
-# CONFIG_UIO_PDRV_GENIRQ is not set
-# CONFIG_UIO_SMX is not set
-# CONFIG_UIO_AEC is not set
-# CONFIG_UIO_SERCOS3 is not set
-# CONFIG_UIO_PCI_GENERIC is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING 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_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4_FS is not set
-CONFIG_JBD=y
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_DEBUG is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_QUOTA=y
-# CONFIG_QUOTA_NETLINK_INTERFACE is not set
-CONFIG_PRINT_QUOTA_WARNING=y
-CONFIG_QUOTA_TREE=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=y
-# CONFIG_AUTOFS4_FS is not set
-CONFIG_FUSE_FS=m
-# CONFIG_CUSE is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# 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="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-CONFIG_AFFS_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-# CONFIG_JFFS2_LZO is not set
-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_UBIFS_FS is not set
-CONFIG_CRAMFS=m
-# CONFIG_SQUASHFS is not set
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-# CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_NFSD=y
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-# CONFIG_NFSD_V4 is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=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
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-CONFIG_NLS=m
-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
-# CONFIG_DLM is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_STRIP_ASM_SYMS 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_MEMORY_INIT is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_CMDLINE=""
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=m
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_GHASH is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-# CONFIG_CRC_CCITT is not set
-CONFIG_CRC16=m
-# CONFIG_CRC_T10DIF is not set
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-CONFIG_LIBCRC32C=m
-CONFIG_ZLIB_INFLATE=m
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
diff --git a/meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig b/meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
deleted file mode 100644
index edabeff..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
+++ /dev/null
@@ -1,1780 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32
-# Tue Dec 15 13:01:02 2009
-#
-# CONFIG_PPC64 is not set
-
-#
-# Processor support
-#
-CONFIG_PPC_BOOK3S_32=y
-# CONFIG_PPC_85xx is not set
-# CONFIG_PPC_8xx is not set
-# CONFIG_40x is not set
-# CONFIG_44x is not set
-# CONFIG_E200 is not set
-CONFIG_PPC_BOOK3S=y
-CONFIG_6xx=y
-CONFIG_PPC_FPU=y
-# CONFIG_FSL_EMB_PERFMON is not set
-# CONFIG_ALTIVEC is not set
-CONFIG_PPC_STD_MMU=y
-CONFIG_PPC_STD_MMU_32=y
-# CONFIG_PPC_MM_SLICES is not set
-CONFIG_PPC_HAVE_PMU_SUPPORT=y
-# CONFIG_SMP is not set
-CONFIG_PPC32=y
-CONFIG_WORD_SIZE=32
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_MMU=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
-# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
-CONFIG_IRQ_PER_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_ARCH_HAS_ILOG2_U32=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
-CONFIG_PPC=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_GENERIC_NVRAM=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_ARCH_MAY_HAVE_PC_FDC=y
-CONFIG_PPC_OF=y
-CONFIG_OF=y
-CONFIG_PPC_UDBG_16550=y
-# CONFIG_GENERIC_TBSYNC is not set
-CONFIG_AUDIT_ARCH=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DTC=y
-CONFIG_DEFAULT_UIMAGE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_PPC_DCR_NATIVE is not set
-# CONFIG_PPC_DCR_MMIO is not set
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
-CONFIG_GROUP_SCHED=y
-# CONFIG_FAIR_GROUP_SCHED is not set
-# CONFIG_RT_GROUP_SCHED is not set
-CONFIG_USER_SCHED=y
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EMBEDDED=y
-CONFIG_SYSCTL_SYSCALL=y
-# 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_EPOLL is not set
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_HAVE_PERF_EVENTS=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_SLUB_DEBUG=y
-CONFIG_COMPAT_BRK=y
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_SLOW_WORK is not set
-# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY 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"
-# CONFIG_FREEZER is not set
-
-#
-# Platform support
-#
-# CONFIG_PPC_CHRP is not set
-# CONFIG_MPC5121_ADS is not set
-# CONFIG_MPC5121_GENERIC is not set
-# CONFIG_PPC_MPC52xx is not set
-# CONFIG_PPC_PMAC is not set
-# CONFIG_PPC_CELL is not set
-# CONFIG_PPC_CELL_NATIVE is not set
-# CONFIG_PPC_82xx is not set
-# CONFIG_PQ2ADS is not set
-CONFIG_PPC_83xx=y
-CONFIG_MPC831x_RDB=y
-# CONFIG_MPC832x_MDS is not set
-# CONFIG_MPC832x_RDB is not set
-# CONFIG_MPC834x_MDS is not set
-# CONFIG_MPC834x_ITX is not set
-# CONFIG_MPC836x_MDS is not set
-# CONFIG_MPC836x_RDK is not set
-# CONFIG_MPC837x_MDS is not set
-# CONFIG_MPC837x_RDB is not set
-# CONFIG_SBC834x is not set
-# CONFIG_ASP834x is not set
-# CONFIG_KMETER1 is not set
-CONFIG_PPC_MPC831x=y
-# CONFIG_PPC_86xx is not set
-# CONFIG_EMBEDDED6xx is not set
-# CONFIG_AMIGAONE is not set
-CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
-CONFIG_IPIC=y
-# CONFIG_MPIC is not set
-# CONFIG_MPIC_WEIRD is not set
-# CONFIG_PPC_I8259 is not set
-# CONFIG_PPC_RTAS is not set
-# CONFIG_MMIO_NVRAM is not set
-# CONFIG_PPC_MPC106 is not set
-# CONFIG_PPC_970_NAP is not set
-# CONFIG_PPC_INDIRECT_IO is not set
-# CONFIG_GENERIC_IOMAP is not set
-# CONFIG_CPU_FREQ is not set
-# CONFIG_TAU is not set
-# CONFIG_QUICC_ENGINE is not set
-# CONFIG_FSL_ULI1575 is not set
-# CONFIG_MPC8xxx_GPIO is not set
-# CONFIG_SIMPLE_GPIO is not set
-# CONFIG_MCU_MPC8349EMITX is not set
-
-#
-# Kernel options
-#
-# CONFIG_HIGHMEM is not set
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=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_SCHED_HRTICK=y
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-# CONFIG_HAVE_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_IOMMU_HELPER is not set
-# CONFIG_SWIOTLB is not set
-CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-CONFIG_ARCH_HAS_WALK_MEMORY=y
-CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_MAX_ACTIVE_REGIONS=32
-CONFIG_ARCH_FLATMEM_ENABLE=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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_PPC_4K_PAGES=y
-# CONFIG_PPC_16K_PAGES is not set
-# CONFIG_PPC_64K_PAGES is not set
-# CONFIG_PPC_256K_PAGES is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_PROC_DEVICETREE=y
-# CONFIG_CMDLINE_BOOL is not set
-CONFIG_EXTRA_TARGETS=""
-# CONFIG_PM is not set
-CONFIG_SECCOMP=y
-CONFIG_ISA_DMA_API=y
-
-#
-# Bus options
-#
-CONFIG_ZONE_DMA=y
-CONFIG_GENERIC_ISA_DMA=y
-CONFIG_PPC_INDIRECT_PCI=y
-CONFIG_FSL_SOC=y
-CONFIG_FSL_PCI=y
-CONFIG_PPC_PCI_CHOICE=y
-CONFIG_PCI=y
-CONFIG_PCI_DOMAINS=y
-CONFIG_PCI_SYSCALL=y
-# CONFIG_PCIEPORTBUS is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
-# CONFIG_PCI_LEGACY is not set
-# CONFIG_PCI_DEBUG is not set
-# CONFIG_PCI_STUB is not set
-# CONFIG_PCI_IOV is not set
-# CONFIG_PCCARD is not set
-# CONFIG_HOTPLUG_PCI is not set
-# CONFIG_HAS_RAPIDIO is not set
-
-#
-# Advanced setup
-#
-# CONFIG_ADVANCED_OPTIONS is not set
-
-#
-# Default settings for advanced configuration options are used
-#
-CONFIG_LOWMEM_SIZE=0x30000000
-CONFIG_PAGE_OFFSET=0xc0000000
-CONFIG_KERNEL_START=0xc0000000
-CONFIG_PHYSICAL_START=0x00000000
-CONFIG_TASK_SIZE=0xc0000000
-CONFIG_NET=y
-
-#
-# Networking options
-#
-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_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# 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=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_LRO 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_NETWORK_SECMARK is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA 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
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-# CONFIG_CFG80211 is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-# CONFIG_WIRELESS_EXT is not set
-# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-# CONFIG_MTD_TESTS 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_OF_PARTS=y
-# CONFIG_MTD_AR7_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
-# CONFIG_MTD_OOPS 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 is not set
-CONFIG_MTD_CFI_AMDSTD=y
-# 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 is not set
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_PHYSMAP_OF=y
-# CONFIG_MTD_INTEL_VR_NOR is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L 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=y
-CONFIG_MTD_NAND_VERIFY_WRITE=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_CAFE is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_NAND_FSL_ELBC=y
-# CONFIG_MTD_NAND_FSL_UPM is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-
-#
-# UBI - Unsorted block images
-#
-# CONFIG_MTD_UBI is not set
-CONFIG_OF_DEVICE=y
-CONFIG_OF_I2C=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_FD 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=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=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=32768
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_CB710_CORE is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=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 is not set
-# 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
-# CONFIG_SCSI_MULTI_LUN is not set
-# 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=y
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_CXGB3_ISCSI is not set
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI 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_AIC94XX is not set
-# CONFIG_SCSI_MVSAS is not set
-# CONFIG_SCSI_DPT_I2O is not set
-# CONFIG_SCSI_ADVANSYS 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_MPT2SAS is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_FCOE is not set
-# CONFIG_SCSI_DMX3191D is not set
-# CONFIG_SCSI_EATA is not set
-# CONFIG_SCSI_FUTURE_DOMAIN is not set
-# CONFIG_SCSI_GDTH 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_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_PMCRAID is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_BFA_FC is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=y
-CONFIG_MD_AUTODETECT=y
-CONFIG_MD_LINEAR=y
-CONFIG_MD_RAID0=y
-CONFIG_MD_RAID1=y
-# CONFIG_MD_RAID10 is not set
-# CONFIG_MD_RAID456 is not set
-# CONFIG_MD_MULTIPATH is not set
-# CONFIG_MD_FAULTY is not set
-# CONFIG_BLK_DEV_DM is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-# CONFIG_FIREWIRE is not set
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-# CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-CONFIG_CICADA_PHY=y
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-CONFIG_FIXED_PHY=y
-# CONFIG_MDIO_BITBANG 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_ENC28J60 is not set
-# CONFIG_ETHOC is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR 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_E100=y
-# 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_R6040 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SMSC9420 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_ATL2 is not set
-# CONFIG_XILINX_EMACLITE is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_E1000E is not set
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF 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_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-CONFIG_FSL_PQ_MDIO=y
-CONFIG_GIANFAR=y
-# CONFIG_MV643XX_ETH is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-CONFIG_NETDEV_10000=y
-# CONFIG_CHELSIO_T1 is not set
-CONFIG_CHELSIO_T3_DEPENDS=y
-# CONFIG_CHELSIO_T3 is not set
-# CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGB is not set
-# CONFIG_S2IO is not set
-# CONFIG_VXGE is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
-# CONFIG_NIU is not set
-# CONFIG_MLX4_EN is not set
-# CONFIG_MLX4_CORE is not set
-# CONFIG_TEHUTI is not set
-# CONFIG_BNX2X is not set
-# CONFIG_QLGE is not set
-# CONFIG_SFC is not set
-# CONFIG_BE2NET is not set
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-# CONFIG_WLAN_80211 is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# 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_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_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE 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_EVDEV is not set
-# 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 is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-CONFIG_DEVKMEM=y
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_PCI=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_MAX3100 is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-# CONFIG_SERIAL_OF_PLATFORM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-CONFIG_LEGACY_PTYS=y
-CONFIG_LEGACY_PTY_COUNT=256
-# CONFIG_HVC_UDBG is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# 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_I801 is not set
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-CONFIG_I2C_MPC=y
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_SIMTEC is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-# CONFIG_I2C_VOODOO3 is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_STUB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_DS1682 is not set
-# CONFIG_SENSORS_TSL2550 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_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-CONFIG_SPI_BITBANG=y
-# CONFIG_SPI_MPC8xxx is not set
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# 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_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7473 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A 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_LM93 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_MAX1111 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_PCF8591 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 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_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_THERMAL is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_8xxx_WDT is not set
-
-#
-# PCI-based Watchdog Cards
-#
-# CONFIG_PCIPCWATCHDOG is not set
-# CONFIG_WDTPCI is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13783 is not set
-# CONFIG_AB3100_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_AGP is not set
-CONFIG_VGA_ARB=y
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-# CONFIG_FB is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-# CONFIG_SOUND is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-# CONFIG_USB_HID is not set
-# CONFIG_HID_PID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-
-#
-# Special HID drivers
-#
-CONFIG_USB_SUPPORT=y
-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
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_XHCI_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_EHCI_FSL=y
-CONFIG_USB_EHCI_HCD_PPC_OF=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
-# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
-CONFIG_USB_OHCI_HCD_PPC_OF=y
-CONFIG_USB_OHCI_HCD_PCI=y
-CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
-CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=y
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-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_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 is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# 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_SEVSEG 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_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
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_VST is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_SELECTED=y
-# CONFIG_USB_GADGET_AT91 is not set
-# CONFIG_USB_GADGET_ATMEL_USBA is not set
-# CONFIG_USB_GADGET_FSL_USB2 is not set
-# CONFIG_USB_GADGET_LH7A40X is not set
-# CONFIG_USB_GADGET_OMAP is not set
-# CONFIG_USB_GADGET_PXA25X is not set
-# CONFIG_USB_GADGET_R8A66597 is not set
-# CONFIG_USB_GADGET_PXA27X is not set
-# CONFIG_USB_GADGET_S3C_HSOTG is not set
-# CONFIG_USB_GADGET_IMX is not set
-# CONFIG_USB_GADGET_S3C2410 is not set
-# CONFIG_USB_GADGET_M66592 is not set
-# CONFIG_USB_GADGET_AMD5536UDC is not set
-# CONFIG_USB_GADGET_FSL_QE is not set
-# CONFIG_USB_GADGET_CI13XXX is not set
-CONFIG_USB_GADGET_NET2280=y
-CONFIG_USB_NET2280=y
-# CONFIG_USB_GADGET_GOKU is not set
-# CONFIG_USB_GADGET_LANGWELL is not set
-# CONFIG_USB_GADGET_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=y
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM 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
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-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=y
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=y
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_RTC_DRV_GENERIC is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING 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_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-# CONFIG_EXT4_FS is not set
-CONFIG_JBD=y
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_FS_POSIX_ACL is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS 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_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# 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_FS_WBUF_VERIFY is not set
-# 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 is not set
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-# CONFIG_NFS_V3_ACL is not set
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-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
-
-#
-# 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
-CONFIG_NLS=y
-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
-# CONFIG_DLM is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_HAVE_LMB=y
-CONFIG_NLATTR=y
-CONFIG_GENERIC_ATOMIC64=y
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_STRIP_ASM_SYMS 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_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
-CONFIG_DETECT_HUNG_TASK=y
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK 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_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT 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_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-# CONFIG_BOOT_TRACER is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_KMEMTRACE is not set
-# CONFIG_WORKQUEUE_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_PPC_DISABLE_WERROR is not set
-CONFIG_PPC_WERROR=y
-CONFIG_PRINT_STACK_DEPTH=64
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_CODE_PATCHING_SELFTEST is not set
-# CONFIG_FTR_FIXUP_SELFTEST is not set
-# CONFIG_MSI_BITMAP_SELFTEST is not set
-# CONFIG_XMON is not set
-# CONFIG_IRQSTACKS is not set
-# CONFIG_BDI_SWITCH is not set
-# CONFIG_BOOTX_TEXT is not set
-# CONFIG_PPC_EARLY_DEBUG is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-# CONFIG_CRYPTO_AES is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-# CONFIG_CRYPTO_DEV_TALITOS is not set
-# CONFIG_PPC_CLOCK is not set
-# CONFIG_VIRTUALIZATION is not set
diff --git a/meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig b/meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
deleted file mode 100644
index 93e4be4..0000000
--- a/meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
+++ /dev/null
@@ -1,2160 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.33.2
-# Thu Jun 10 09:50:31 2010
-#
-# CONFIG_64BIT is not set
-CONFIG_X86_32=y
-# CONFIG_X86_64 is not set
-CONFIG_X86=y
-CONFIG_OUTPUT_FORMAT="elf32-i386"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=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_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-# CONFIG_GENERIC_TIME_VSYSCALL is not set
-CONFIG_ARCH_HAS_CPU_RELAX=y
-CONFIG_ARCH_HAS_DEFAULT_IDLE=y
-CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
-CONFIG_HAVE_SETUP_PER_CPU_AREA=y
-CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
-CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ZONE_DMA32 is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-# CONFIG_AUDIT_ARCH is not set
-CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
-CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
-CONFIG_X86_32_SMP=y
-CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
-CONFIG_X86_32_LAZY_GS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_BZIP2=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_BZIP2 is not set
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-CONFIG_AUDIT=y
-CONFIG_AUDITSYSCALL=y
-CONFIG_AUDIT_TREE=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
-# CONFIG_TINY_RCU is not set
-# CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=15
-CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
-# CONFIG_GROUP_SCHED is not set
-# CONFIG_CGROUPS is not set
-# CONFIG_SYSFS_DEPRECATED_V2 is not set
-# CONFIG_RELAY is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-# CONFIG_RD_BZIP2 is not set
-# CONFIG_RD_LZMA is not set
-# CONFIG_RD_LZO is not set
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=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_PCSPKR_PLATFORM=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
-CONFIG_COMPAT_BRK=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=y
-# CONFIG_OPROFILE_IBS is not set
-# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-CONFIG_HAVE_USER_RETURN_NOTIFIER=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_SLOW_WORK=y
-# CONFIG_SLOW_WORK_DEBUG is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-# CONFIG_MODULE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_STOP_MACHINE=y
-CONFIG_BLOCK=y
-# CONFIG_LBDAF is not set
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-CONFIG_MUTEX_SPIN_ON_OWNER=y
-CONFIG_FREEZER=y
-
-#
-# Processor type and features
-#
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_SMP=y
-# CONFIG_SPARSE_IRQ is not set
-CONFIG_X86_MPPARSE=y
-# CONFIG_X86_BIGSMP is not set
-# CONFIG_X86_EXTENDED_PLATFORM is not set
-CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-# CONFIG_PARAVIRT_GUEST is not set
-# CONFIG_MEMTEST 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_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_MVIAC7 is not set
-# CONFIG_MPSC is not set
-# CONFIG_MCORE2 is not set
-# CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
-CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_INTERNODE_CACHE_SHIFT=6
-# CONFIG_X86_CMPXCHG is not set
-CONFIG_X86_L1_CACHE_SHIFT=6
-CONFIG_X86_PPRO_FENCE=y
-CONFIG_X86_F00F_BUG=y
-CONFIG_X86_INTEL_USERCOPY=y
-CONFIG_X86_MINIMUM_CPU_FAMILY=3
-# CONFIG_PROCESSOR_SELECT is not set
-CONFIG_CPU_SUP_INTEL=y
-CONFIG_CPU_SUP_CYRIX_32=y
-CONFIG_CPU_SUP_AMD=y
-CONFIG_CPU_SUP_CENTAUR=y
-CONFIG_CPU_SUP_TRANSMETA_32=y
-CONFIG_CPU_SUP_UMC_32=y
-# CONFIG_HPET_TIMER is not set
-CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-# CONFIG_IOMMU_API 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_X86_LOCAL_APIC=y
-CONFIG_X86_IO_APIC=y
-# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
-CONFIG_X86_MCE=y
-CONFIG_X86_MCE_INTEL=y
-# CONFIG_X86_MCE_AMD is not set
-# CONFIG_X86_ANCIENT_MCE is not set
-CONFIG_X86_MCE_THRESHOLD=y
-# CONFIG_X86_MCE_INJECT is not set
-CONFIG_X86_THERMAL_VECTOR=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
-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_2G_OPT is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-# CONFIG_X86_PAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_SELECT_MEMORY_MODEL=y
-CONFIG_ILLEGAL_POINTER_VALUE=0
-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_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=1
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
-# CONFIG_MEMORY_FAILURE is not set
-# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
-# CONFIG_MATH_EMULATION is not set
-CONFIG_MTRR=y
-CONFIG_MTRR_SANITIZER=y
-CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
-CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
-# CONFIG_X86_PAT is not set
-# CONFIG_EFI is not set
-CONFIG_SECCOMP=y
-# CONFIG_CC_STACKPROTECTOR is not set
-# 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_SCHED_HRTICK is not set
-CONFIG_KEXEC=y
-CONFIG_PHYSICAL_START=0x100000
-# CONFIG_RELOCATABLE is not set
-CONFIG_PHYSICAL_ALIGN=0x100000
-CONFIG_HOTPLUG_CPU=y
-CONFIG_COMPAT_VDSO=y
-# CONFIG_CMDLINE_BOOL is not set
-
-#
-# Power management and ACPI options
-#
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_HIBERNATION is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_ACPI=y
-CONFIG_ACPI_SLEEP=y
-# CONFIG_ACPI_PROCFS is not set
-CONFIG_ACPI_PROCFS_POWER=y
-# CONFIG_ACPI_POWER_METER is not set
-CONFIG_ACPI_SYSFS_POWER=y
-CONFIG_ACPI_PROC_EVENT=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_HOTPLUG_CPU=y
-# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set
-CONFIG_ACPI_THERMAL=y
-# CONFIG_ACPI_CUSTOM_DSDT is not set
-CONFIG_ACPI_BLACKLIST_YEAR=0
-# CONFIG_ACPI_DEBUG is not set
-# CONFIG_ACPI_PCI_SLOT is not set
-CONFIG_X86_PM_TIMER=y
-CONFIG_ACPI_CONTAINER=y
-# CONFIG_ACPI_SBS is not set
-# CONFIG_SFI is not set
-# CONFIG_APM is not set
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-
-#
-# Bus options (PCI etc.)
-#
-CONFIG_PCI=y
-# CONFIG_PCI_GOBIOS is not set
-# CONFIG_PCI_GOMMCONFIG is not set
-# CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
-CONFIG_PCI_GOANY=y
-CONFIG_PCI_BIOS=y
-CONFIG_PCI_DIRECT=y
-CONFIG_PCI_MMCONFIG=y
-CONFIG_PCI_DOMAINS=y
-# CONFIG_PCIEPORTBUS is not set
-CONFIG_ARCH_SUPPORTS_MSI=y
-# CONFIG_PCI_MSI is not set
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_STUB is not set
-CONFIG_HT_IRQ=y
-# CONFIG_PCI_IOV is not set
-CONFIG_PCI_IOAPIC=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_OLPC is not set
-# CONFIG_PCCARD is not set
-# CONFIG_HOTPLUG_PCI is not set
-
-#
-# Executable file formats / Emulations
-#
-CONFIG_BINFMT_ELF=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=y
-CONFIG_BINFMT_MISC=y
-CONFIG_HAVE_ATOMIC_IOMAP=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=m
-# 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_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# 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=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
-CONFIG_NF_CONNTRACK_MARK=y
-# CONFIG_NF_CONNTRACK_EVENTS is not set
-# CONFIG_NF_CT_PROTO_DCCP is not set
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=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_TPROXY is not set
-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_HL=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
-# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=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_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-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_MULTIPORT=m
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-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_TIME is not set
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# CONFIG_NETFILTER_XT_MATCH_OSF is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_TTL=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_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=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_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=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
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA 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
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-CONFIG_NET_CLS_ROUTE=y
-# CONFIG_DCB is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-# CONFIG_CFG80211 is not set
-# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=m
-# CONFIG_FIRMWARE_IN_KERNEL is not set
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-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_AX88796 is not set
-# CONFIG_PARPORT_1284 is not set
-CONFIG_PNP=y
-CONFIG_PNP_DEBUG_MESSAGES=y
-
-#
-# Protocols
-#
-# CONFIG_ISAPNP is not set
-# CONFIG_PNPBIOS is not set
-CONFIG_PNPACPI=y
-CONFIG_BLK_DEV=y
-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_DRBD 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_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_HD is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_IBM_ASM is not set
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-# CONFIG_TIFM_CORE is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_CS5535_MFGPT is not set
-# CONFIG_HP_ILO is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_CB710_CORE is not set
-CONFIG_HAVE_IDE=y
-CONFIG_IDE=y
-
-#
-# Please see Documentation/ide/ide.txt for help/info on IDE drives
-#
-CONFIG_IDE_XFER_MODE=y
-CONFIG_IDE_TIMINGS=y
-CONFIG_IDE_ATAPI=y
-# CONFIG_BLK_DEV_IDE_SATA is not set
-CONFIG_IDE_GD=y
-CONFIG_IDE_GD_ATA=y
-# CONFIG_IDE_GD_ATAPI is not set
-CONFIG_BLK_DEV_IDECD=y
-# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
-# CONFIG_BLK_DEV_IDETAPE is not set
-# CONFIG_BLK_DEV_IDEACPI is not set
-# CONFIG_IDE_TASK_IOCTL is not set
-CONFIG_IDE_PROC_FS=y
-
-#
-# IDE chipset support/bugfixes
-#
-CONFIG_IDE_GENERIC=y
-# CONFIG_BLK_DEV_PLATFORM is not set
-CONFIG_BLK_DEV_CMD640=y
-# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-# CONFIG_BLK_DEV_IDEPNP is not set
-CONFIG_BLK_DEV_IDEDMA_SFF=y
-
-#
-# PCI IDE chipsets support
-#
-CONFIG_BLK_DEV_IDEPCI=y
-CONFIG_IDEPCI_PCIBUS_ORDER=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_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_CS5520 is not set
-# CONFIG_BLK_DEV_CS5530 is not set
-# CONFIG_BLK_DEV_CS5535 is not set
-# CONFIG_BLK_DEV_CS5536 is not set
-# CONFIG_BLK_DEV_HPT366 is not set
-# CONFIG_BLK_DEV_JMICRON is not set
-# CONFIG_BLK_DEV_SC1200 is not set
-CONFIG_BLK_DEV_PIIX=y
-# CONFIG_BLK_DEV_IT8172 is not set
-# CONFIG_BLK_DEV_IT8213 is not set
-# 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_BLK_DEV_TC86C001 is not set
-
-#
-# Other IDE chipsets support
-#
-
-#
-# Note: most of these also require special kernel boot parameters
-#
-# CONFIG_BLK_DEV_4DRIVES is not set
-# CONFIG_BLK_DEV_ALI14XX is not set
-# CONFIG_BLK_DEV_DTC2278 is not set
-# CONFIG_BLK_DEV_HT6560B is not set
-# CONFIG_BLK_DEV_QD65XX is not set
-# CONFIG_BLK_DEV_UMC8672 is not set
-CONFIG_BLK_DEV_IDEDMA=y
-
-#
-# SCSI device support
-#
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=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
-# CONFIG_SCSI_MULTI_LUN is not set
-# 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 is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_SCSI_BNX2_ISCSI is not set
-# CONFIG_BE2ISCSI is not set
-# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-# CONFIG_SCSI_HPSA is not set
-# CONFIG_SCSI_3W_9XXX is not set
-# CONFIG_SCSI_3W_SAS 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_MVSAS is not set
-CONFIG_SCSI_DPT_I2O=m
-# 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_MPT2SAS is not set
-# CONFIG_SCSI_HPTIOP is not set
-# CONFIG_SCSI_BUSLOGIC is not set
-# CONFIG_VMWARE_PVSCSI is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_FCOE is not set
-# CONFIG_FCOE_FNIC 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_STEX is not set
-# CONFIG_SCSI_SYM53C8XX_2 is not set
-# CONFIG_SCSI_PAS16 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_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_PMCRAID is not set
-# CONFIG_SCSI_PM8001 is not set
-# CONFIG_SCSI_SRP is not set
-# CONFIG_SCSI_BFA_FC is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-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_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-# CONFIG_DM_MULTIPATH_QL is not set
-# CONFIG_DM_MULTIPATH_ST is not set
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-# CONFIG_FUSION is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# The newer stack is recommended.
-#
-# CONFIG_FIREWIRE is not set
-CONFIG_IEEE1394=y
-CONFIG_IEEE1394_OHCI1394=y
-# CONFIG_IEEE1394_PCILYNX is not set
-# CONFIG_IEEE1394_SBP2 is not set
-# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
-# CONFIG_IEEE1394_ETH1394 is not set
-CONFIG_IEEE1394_RAWIO=y
-# CONFIG_IEEE1394_VIDEO1394 is not set
-# CONFIG_IEEE1394_DV1394 is not set
-# CONFIG_IEEE1394_VERBOSEDEBUG is not set
-# CONFIG_I2O is not set
-# CONFIG_MACINTOSH_DRIVERS is not set
-CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
-# CONFIG_EQUALIZER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-# CONFIG_NET_SB1000 is not set
-# CONFIG_ARCNET is not set
-# CONFIG_PHYLIB 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_LANCE is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_ETHOC is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP 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_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR 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_E100=y
-# CONFIG_FEALNX is not set
-# CONFIG_NATSEMI is not set
-CONFIG_NE2K_PCI=y
-CONFIG_8139CP=y
-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_R6040 is not set
-# CONFIG_SIS900 is not set
-# CONFIG_EPIC100 is not set
-# CONFIG_SMSC9420 is not set
-# CONFIG_SUNDANCE is not set
-# CONFIG_TLAN is not set
-# CONFIG_KS8842 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_VIA_RHINE is not set
-# CONFIG_SC92031 is not set
-# CONFIG_NET_POCKET is not set
-# CONFIG_ATL2 is not set
-CONFIG_NETDEV_1000=y
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-CONFIG_E1000=y
-CONFIG_E1000E=y
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF 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_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-# CONFIG_QLA3XXX is not set
-# CONFIG_ATL1 is not set
-# CONFIG_ATL1E is not set
-# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-# CONFIG_NETDEV_10000 is not set
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_AIRO is not set
-# CONFIG_ATMEL is not set
-# CONFIG_PRISM54 is not set
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_HOSTAP is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-
-#
-# 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_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_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VMXNET3=y
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-CONFIG_INPUT_TABLET=y
-# CONFIG_TABLET_USB_ACECAD is not set
-# CONFIG_TABLET_USB_AIPTEK is not set
-# CONFIG_TABLET_USB_GTCO is not set
-# CONFIG_TABLET_USB_KBTAB is not set
-CONFIG_TABLET_USB_WACOM=y
-# 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_SERIO_ALTERA_PS2 is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-# CONFIG_DEVKMEM is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_CONSOLE is not set
-CONFIG_FIX_EARLYCON_MEM=y
-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_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_PRINTER=y
-# CONFIG_LP_CONSOLE is not set
-# CONFIG_PPDEV is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_NVRAM is not set
-CONFIG_RTC=y
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-# CONFIG_SONYPI 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
-# CONFIG_TCG_TPM is not set
-# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-# CONFIG_I2C_CHARDEV is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# PC SMBus host controller drivers
-#
-# 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_I801 is not set
-# CONFIG_I2C_ISCH is not set
-# CONFIG_I2C_PIIX4 is not set
-# CONFIG_I2C_NFORCE2 is not set
-# CONFIG_I2C_SIS5595 is not set
-# CONFIG_I2C_SIS630 is not set
-# CONFIG_I2C_SIS96X is not set
-# CONFIG_I2C_VIA is not set
-# CONFIG_I2C_VIAPRO is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_I2C_SCMI is not set
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_SIMTEC is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_PCA_ISA is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_STUB is not set
-# CONFIG_SCx200_ACB is not set
-
-#
-# Miscellaneous I2C Chip support
-#
-# CONFIG_SENSORS_TSL2550 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_SPI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_ABITUGURU is not set
-# CONFIG_SENSORS_ABITUGURU3 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# 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_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7473 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_K8TEMP is not set
-# CONFIG_SENSORS_K10TEMP is not set
-# CONFIG_SENSORS_ASB100 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_I5K_AMB is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_FSCHMD is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_CORETEMP is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM73 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_LM93 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LM95241 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_PCF8591 is not set
-# CONFIG_SENSORS_SIS5595 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VIA_CPUTEMP is not set
-# CONFIG_SENSORS_VIA686A is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_VT8231 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_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_HDAPS is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-# CONFIG_SENSORS_APPLESMC is not set
-
-#
-# ACPI drivers
-#
-# CONFIG_SENSORS_ATK0110 is not set
-# CONFIG_SENSORS_LIS3LV02D is not set
-CONFIG_THERMAL=y
-# CONFIG_THERMAL_HWMON is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_AB3100_CORE is not set
-# CONFIG_MFD_88PM8607 is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-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_VGA_ARB=y
-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_VGASTATE is not set
-CONFIG_VIDEO_OUTPUT_CONTROL=m
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=m
-CONFIG_FB_CFB_COPYAREA=m
-CONFIG_FB_CFB_IMAGEBLIT=m
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# 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 is not set
-CONFIG_FB_UVESA=m
-# CONFIG_FB_VESA is not set
-# CONFIG_FB_N411 is not set
-# 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_LE80578 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_VIA 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_VT8623 is not set
-# CONFIG_FB_TRIDENT is not set
-# CONFIG_FB_ARK is not set
-# CONFIG_FB_PM3 is not set
-# CONFIG_FB_CARMINE is not set
-# CONFIG_FB_GEODE is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_MB862XX is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT 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_DETECT_PRIMARY is not set
-# 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
-# CONFIG_LOGO is not set
-CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set
-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_RTCTIMER 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_VMASTER=y
-CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_AC97_CODEC=y
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_MTS64 is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_PORTMAN2X4 is not set
-# CONFIG_SND_AC97_POWER_SAVE is not set
-# CONFIG_SND_ISA is not set
-CONFIG_SND_PCI=y
-# 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_AW2 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_OXYGEN is not set
-# CONFIG_SND_CS4281 is not set
-# CONFIG_SND_CS46XX is not set
-# CONFIG_SND_CS5530 is not set
-# CONFIG_SND_CS5535AUDIO is not set
-# CONFIG_SND_CTXFI 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_INDIGOIOX is not set
-# CONFIG_SND_INDIGODJX 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_HIFIER 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_LX6464ES 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_SIS7019 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_VIRTUOSO is not set
-# CONFIG_SND_VX222 is not set
-# CONFIG_SND_YMFPCI is not set
-CONFIG_SND_USB=y
-# CONFIG_SND_USB_AUDIO is not set
-# CONFIG_SND_USB_USX2Y is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_US122L is not set
-# CONFIG_SND_SOC is not set
-# CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=y
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_ZEROPLUS is not set
-CONFIG_USB_SUPPORT=y
-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
-# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-# CONFIG_USB_SUSPEND is not set
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_XHCI_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_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
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_WHCI_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-CONFIG_USB_PRINTER=y
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-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_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 is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-# 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_SEVSEG 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=m
-# 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
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_VST is not set
-# CONFIG_USB_GADGET is not set
-
-#
-# OTG and related infrastructure
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_UWB is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-# CONFIG_EDAC is not set
-# CONFIG_RTC_CLASS is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# TI VLYNQ
-#
-# CONFIG_STAGING is not set
-CONFIG_X86_PLATFORM_DEVICES=y
-# CONFIG_ASUS_LAPTOP is not set
-# CONFIG_TC1100_WMI is not set
-# CONFIG_THINKPAD_ACPI is not set
-# CONFIG_INTEL_MENLOW is not set
-# CONFIG_ACPI_WMI is not set
-# CONFIG_ACPI_ASUS is not set
-# CONFIG_TOPSTAR_LAPTOP is not set
-# CONFIG_ACPI_TOSHIBA is not set
-# CONFIG_TOSHIBA_BT_RFKILL is not set
-# CONFIG_ACPI_CMPC is not set
-
-#
-# Firmware Drivers
-#
-# CONFIG_EDD is not set
-CONFIG_FIRMWARE_MEMMAP=y
-# CONFIG_DELL_RBU is not set
-# CONFIG_DCDBAS is not set
-CONFIG_DMIID=y
-# CONFIG_ISCSI_IBFT_FIND 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_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-# CONFIG_EXT3_FS_POSIX_ACL is not set
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_XATTR=y
-# CONFIG_EXT4_FS_POSIX_ACL is not set
-# CONFIG_EXT4_FS_SECURITY is not set
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_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_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-CONFIG_AUTOFS4_FS=y
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-CONFIG_FSCACHE=y
-# CONFIG_FSCACHE_STATS is not set
-# CONFIG_FSCACHE_HISTOGRAM is not set
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-# CONFIG_CACHEFILES 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_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=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_CONFIGFS_FS is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-# CONFIG_NFS_V3 is not set
-# CONFIG_NFS_V4 is not set
-CONFIG_ROOT_NFS=y
-CONFIG_NFS_FSCACHE=y
-CONFIG_NFSD=y
-# CONFIG_NFSD_V3 is not set
-# CONFIG_NFSD_V4 is not set
-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
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-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
-# CONFIG_DLM is not set
-
-#
-# Kernel hacking
-#
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-# CONFIG_PRINTK_TIME is not set
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_STRIP_ASM_SYMS is not set
-CONFIG_UNUSED_SYMBOLS=y
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_KERNEL is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_MEMORY_INIT is not set
-CONFIG_ARCH_WANT_FRAME_POINTERS=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
-CONFIG_LATENCYTOP=y
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-CONFIG_USER_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
-CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_RING_BUFFER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_HAVE_ARCH_KMEMCHECK=y
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_X86_VERBOSE_BOOTUP=y
-CONFIG_EARLY_PRINTK=y
-# CONFIG_EARLY_PRINTK_DBGP is not set
-# CONFIG_4KSTACKS is not set
-CONFIG_DOUBLEFAULT=y
-# CONFIG_IOMMU_STRESS is not set
-CONFIG_HAVE_MMIOTRACE_SUPPORT=y
-CONFIG_IO_DELAY_TYPE_0X80=0
-CONFIG_IO_DELAY_TYPE_0XED=1
-CONFIG_IO_DELAY_TYPE_UDELAY=2
-CONFIG_IO_DELAY_TYPE_NONE=3
-CONFIG_IO_DELAY_0X80=y
-# CONFIG_IO_DELAY_0XED is not set
-# CONFIG_IO_DELAY_UDELAY is not set
-# CONFIG_IO_DELAY_NONE is not set
-CONFIG_DEFAULT_IO_DELAY_TYPE=0
-# CONFIG_OPTIMIZE_INLINING is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-# CONFIG_CRYPTO_FIPS is not set
-CONFIG_CRYPTO_ALGAPI=m
-CONFIG_CRYPTO_ALGAPI2=m
-CONFIG_CRYPTO_AEAD2=m
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_BLKCIPHER2=m
-CONFIG_CRYPTO_HASH=m
-CONFIG_CRYPTO_HASH2=m
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=m
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_MANAGER2=m
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_WORKQUEUE=m
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=m
-# CONFIG_CRYPTO_LRW is not set
-CONFIG_CRYPTO_PCBC=m
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=m
-# CONFIG_CRYPTO_CRC32C_INTEL is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-# CONFIG_CRYPTO_AES_586 is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SALSA20_586 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-# CONFIG_CRYPTO_TWOFISH_586 is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_PADLOCK=m
-CONFIG_CRYPTO_DEV_PADLOCK_AES=m
-CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
-CONFIG_CRYPTO_DEV_GEODE=m
-# CONFIG_CRYPTO_DEV_HIFN_795X is not set
-CONFIG_HAVE_KVM=y
-CONFIG_VIRTUALIZATION=y
-# CONFIG_KVM is not set
-# CONFIG_LGUEST is not set
-# CONFIG_VIRTIO_PCI is not set
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
-# CONFIG_CRC_CCITT is not set
-CONFIG_CRC16=y
-# CONFIG_CRC_T10DIF is not set
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-# CONFIG_CRC7 is not set
-CONFIG_LIBCRC32C=m
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
diff --git a/meta/recipes-kernel/linux/linux_2.6.33.2.bb b/meta/recipes-kernel/linux/linux_2.6.33.2.bb
deleted file mode 100644
index 2c9817f..0000000
--- a/meta/recipes-kernel/linux/linux_2.6.33.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require linux.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-
-
-# Mark archs/machines that this kernel supports
-DEFAULT_PREFERENCE = "-1"
-DEFAULT_PREFERENCE_mpc8313erdb = "1"
-
-PR = "r2"
-
-SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
- file://defconfig \
- "
-
--
1.7.0.4
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] recipes-kernel: follow-up cleanup
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
` (3 preceding siblings ...)
2011-02-19 0:46 ` [PATCH 3/4] linux-2.6.33.2: remove linux-2.6.33.2 recipe Darren Hart
@ 2011-02-19 0:51 ` Darren Hart
2011-02-19 1:10 ` Bruce Ashfield
2011-02-21 18:00 ` Richard Purdie
6 siblings, 0 replies; 8+ messages in thread
From: Darren Hart @ 2011-02-19 0:51 UTC (permalink / raw)
To: Darren Hart; +Cc: poky
On 02/18/2011 04:46 PM, Darren Hart wrote:
> From: Darren Hart<dvhart@linux.intel.com>
>
> The following patches perform some additional cleanup of the kernel metadata.
> Obsolete kernel recipes are removed. Unused machine config fragments are
> removed. Finally, linux.inc is removed.
>
> This cleans the slate and prepares the way for the next stage of kernel recipe
> cleanup which will include refactoring the kernel.bbclass and reworking
> linux-dummy to provide a good current example of how to create a custom linux
> kernel recipe.
>
> Pull URL: git://git.pokylinux.org/poky-contrib.git
> Branch: dvhart/linux
> Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/linux
>
> Thanks,
> Darren Hart<dvhart@linux.intel.com>
> ---
>
>
> Darren Hart (4):
> zaurus: remove zaurus linux includes
> linux-2.6.23: remove the linux-2.6.23 recipe
> linux-2.6.33.2: remove linux-2.6.33.2 recipe
These two patches were 250k and 500k and are pending moderator approval,
their content can be mostly divined from the "delete mode" lines below.
--
Darren
> linux.inc: remove the obsolete linux.inc kernel recipe include
>
> meta/conf/machine/include/zaurus-2.6.inc | 72 -
> meta/conf/machine/include/zaurus-clamshell.inc | 15 -
> ...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 -
> .../linux/linux-2.6.23/binutils-buildid-arm.patch | 16 -
> .../linux-2.6.23/cm-x270/0001-cm-x270-base2.patch | 2851 -----
> .../cm-x270/0002-cm-x270-match-type.patch | 25 -
> .../linux-2.6.23/cm-x270/0003-cm-x270-ide.patch | 186 -
> .../linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch | 496 -
> .../linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch | 228 -
> .../linux-2.6.23/cm-x270/0006-ramdisk_load.patch | 80 -
> .../cm-x270/0007-mmcsd_large_cards-r0.patch | 36 -
> .../cm-x270/0008-cm-x270-nand-simplify-name.patch | 25 -
> .../linux/linux-2.6.23/cm-x270/16bpp.patch | 13 -
> .../linux/linux-2.6.23/cm-x270/defconfig | 1204 --
> .../linux/linux-2.6.23/em-x270/defconfig | 1354 ---
> .../em-x270/em-x270-battery-sysfs-fix.patch | 40 -
> .../linux/linux-2.6.23/em-x270/em-x270.patch |12063 --------------------
> .../linux/linux-2.6.33.2/mpc8313erdb/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemuarm/defconfig | 1837 ---
> .../linux/linux-2.6.33.2/qemumips/defconfig | 1825 ---
> .../linux/linux-2.6.33.2/qemuppc/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemux86/defconfig | 2160 ----
> meta/recipes-kernel/linux/linux.inc | 95 -
> meta/recipes-kernel/linux/linux_2.6.23.bb | 83 -
> meta/recipes-kernel/linux/linux_2.6.33.2.bb | 15 -
> 25 files changed, 0 insertions(+), 28327 deletions(-)
> delete mode 100644 meta/conf/machine/include/zaurus-2.6.inc
> delete mode 100644 meta/conf/machine/include/zaurus-clamshell.inc
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux.inc
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.23.bb
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.33.2.bb
>
> _______________________________________________
> poky mailing list
> poky@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/poky
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] recipes-kernel: follow-up cleanup
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
` (4 preceding siblings ...)
2011-02-19 0:51 ` [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
@ 2011-02-19 1:10 ` Bruce Ashfield
2011-02-21 18:00 ` Richard Purdie
6 siblings, 0 replies; 8+ messages in thread
From: Bruce Ashfield @ 2011-02-19 1:10 UTC (permalink / raw)
To: Darren Hart; +Cc: poky
On 11-02-18 7:46 PM, Darren Hart wrote:
> From: Darren Hart<dvhart@linux.intel.com>
>
> The following patches perform some additional cleanup of the kernel metadata.
> Obsolete kernel recipes are removed. Unused machine config fragments are
> removed. Finally, linux.inc is removed.
Looks great to me, I've been wanting to do this myself,
but haven't had the time.
Acked-by: Bruce Ashfield <bruce.ashfield@windriver.com>
>
> This cleans the slate and prepares the way for the next stage of kernel recipe
> cleanup which will include refactoring the kernel.bbclass and reworking
> linux-dummy to provide a good current example of how to create a custom linux
> kernel recipe.
>
> Pull URL: git://git.pokylinux.org/poky-contrib.git
> Branch: dvhart/linux
> Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/linux
>
> Thanks,
> Darren Hart<dvhart@linux.intel.com>
> ---
>
>
> Darren Hart (4):
> zaurus: remove zaurus linux includes
> linux-2.6.23: remove the linux-2.6.23 recipe
> linux-2.6.33.2: remove linux-2.6.33.2 recipe
> linux.inc: remove the obsolete linux.inc kernel recipe include
>
> meta/conf/machine/include/zaurus-2.6.inc | 72 -
> meta/conf/machine/include/zaurus-clamshell.inc | 15 -
> ...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 -
> .../linux/linux-2.6.23/binutils-buildid-arm.patch | 16 -
> .../linux-2.6.23/cm-x270/0001-cm-x270-base2.patch | 2851 -----
> .../cm-x270/0002-cm-x270-match-type.patch | 25 -
> .../linux-2.6.23/cm-x270/0003-cm-x270-ide.patch | 186 -
> .../linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch | 496 -
> .../linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch | 228 -
> .../linux-2.6.23/cm-x270/0006-ramdisk_load.patch | 80 -
> .../cm-x270/0007-mmcsd_large_cards-r0.patch | 36 -
> .../cm-x270/0008-cm-x270-nand-simplify-name.patch | 25 -
> .../linux/linux-2.6.23/cm-x270/16bpp.patch | 13 -
> .../linux/linux-2.6.23/cm-x270/defconfig | 1204 --
> .../linux/linux-2.6.23/em-x270/defconfig | 1354 ---
> .../em-x270/em-x270-battery-sysfs-fix.patch | 40 -
> .../linux/linux-2.6.23/em-x270/em-x270.patch |12063 --------------------
> .../linux/linux-2.6.33.2/mpc8313erdb/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemuarm/defconfig | 1837 ---
> .../linux/linux-2.6.33.2/qemumips/defconfig | 1825 ---
> .../linux/linux-2.6.33.2/qemuppc/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemux86/defconfig | 2160 ----
> meta/recipes-kernel/linux/linux.inc | 95 -
> meta/recipes-kernel/linux/linux_2.6.23.bb | 83 -
> meta/recipes-kernel/linux/linux_2.6.33.2.bb | 15 -
> 25 files changed, 0 insertions(+), 28327 deletions(-)
> delete mode 100644 meta/conf/machine/include/zaurus-2.6.inc
> delete mode 100644 meta/conf/machine/include/zaurus-clamshell.inc
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux.inc
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.23.bb
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.33.2.bb
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/4] recipes-kernel: follow-up cleanup
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
` (5 preceding siblings ...)
2011-02-19 1:10 ` Bruce Ashfield
@ 2011-02-21 18:00 ` Richard Purdie
6 siblings, 0 replies; 8+ messages in thread
From: Richard Purdie @ 2011-02-21 18:00 UTC (permalink / raw)
To: Darren Hart; +Cc: poky
On Fri, 2011-02-18 at 16:46 -0800, Darren Hart wrote:
> From: Darren Hart <dvhart@linux.intel.com>
>
> The following patches perform some additional cleanup of the kernel metadata.
> Obsolete kernel recipes are removed. Unused machine config fragments are
> removed. Finally, linux.inc is removed.
>
> This cleans the slate and prepares the way for the next stage of kernel recipe
> cleanup which will include refactoring the kernel.bbclass and reworking
> linux-dummy to provide a good current example of how to create a custom linux
> kernel recipe.
>
> Pull URL: git://git.pokylinux.org/poky-contrib.git
> Branch: dvhart/linux
> Browse: http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=dvhart/linux
>
> Thanks,
> Darren Hart <dvhart@linux.intel.com>
> ---
>
>
> Darren Hart (4):
> zaurus: remove zaurus linux includes
> linux-2.6.23: remove the linux-2.6.23 recipe
> linux-2.6.33.2: remove linux-2.6.33.2 recipe
> linux.inc: remove the obsolete linux.inc kernel recipe include
>
> meta/conf/machine/include/zaurus-2.6.inc | 72 -
> meta/conf/machine/include/zaurus-clamshell.inc | 15 -
> ...x-gcc-4.3-false-modulo-optimization.patch.patch | 48 -
> .../linux/linux-2.6.23/binutils-buildid-arm.patch | 16 -
> .../linux-2.6.23/cm-x270/0001-cm-x270-base2.patch | 2851 -----
> .../cm-x270/0002-cm-x270-match-type.patch | 25 -
> .../linux-2.6.23/cm-x270/0003-cm-x270-ide.patch | 186 -
> .../linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch | 496 -
> .../linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch | 228 -
> .../linux-2.6.23/cm-x270/0006-ramdisk_load.patch | 80 -
> .../cm-x270/0007-mmcsd_large_cards-r0.patch | 36 -
> .../cm-x270/0008-cm-x270-nand-simplify-name.patch | 25 -
> .../linux/linux-2.6.23/cm-x270/16bpp.patch | 13 -
> .../linux/linux-2.6.23/cm-x270/defconfig | 1204 --
> .../linux/linux-2.6.23/em-x270/defconfig | 1354 ---
> .../em-x270/em-x270-battery-sysfs-fix.patch | 40 -
> .../linux/linux-2.6.23/em-x270/em-x270.patch |12063 --------------------
> .../linux/linux-2.6.33.2/mpc8313erdb/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemuarm/defconfig | 1837 ---
> .../linux/linux-2.6.33.2/qemumips/defconfig | 1825 ---
> .../linux/linux-2.6.33.2/qemuppc/defconfig | 1780 ---
> .../linux/linux-2.6.33.2/qemux86/defconfig | 2160 ----
> meta/recipes-kernel/linux/linux.inc | 95 -
> meta/recipes-kernel/linux/linux_2.6.23.bb | 83 -
> meta/recipes-kernel/linux/linux_2.6.33.2.bb | 15 -
> 25 files changed, 0 insertions(+), 28327 deletions(-)
> delete mode 100644 meta/conf/machine/include/zaurus-2.6.inc
> delete mode 100644 meta/conf/machine/include/zaurus-clamshell.inc
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/1300-fix-gcc-4.3-false-modulo-optimization.patch.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/binutils-buildid-arm.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0001-cm-x270-base2.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0002-cm-x270-match-type.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0003-cm-x270-ide.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0004-cm-x270-it8152.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0005-cm-x270-pcmcia.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0006-ramdisk_load.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0007-mmcsd_large_cards-r0.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/0008-cm-x270-nand-simplify-name.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/16bpp.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/cm-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270-battery-sysfs-fix.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.23/em-x270/em-x270.patch
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/mpc8313erdb/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuarm/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemumips/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemuppc/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux-2.6.33.2/qemux86/defconfig
> delete mode 100644 meta/recipes-kernel/linux/linux.inc
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.23.bb
> delete mode 100644 meta/recipes-kernel/linux/linux_2.6.33.2.bb
Merged to master.
Cheers,
Richard
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-02-21 18:00 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-02-19 0:46 [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
2011-02-19 0:46 ` [PATCH 2/4] linux-2.6.23: remove the linux-2.6.23 recipe Darren Hart
2011-02-19 0:46 ` [PATCH 4/4] linux.inc: remove the obsolete linux.inc kernel recipe include Darren Hart
2011-02-19 0:46 ` [PATCH 1/4] zaurus: remove zaurus linux includes Darren Hart
2011-02-19 0:46 ` [PATCH 3/4] linux-2.6.33.2: remove linux-2.6.33.2 recipe Darren Hart
2011-02-19 0:51 ` [PATCH 0/4] recipes-kernel: follow-up cleanup Darren Hart
2011-02-19 1:10 ` Bruce Ashfield
2011-02-21 18:00 ` Richard Purdie
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.