summaryrefslogtreecommitdiff
path: root/packages/linux
diff options
context:
space:
mode:
authorErik Hovland <erik@hovland.org>2006-08-30 18:42:42 +0000
committerErik Hovland <erik@hovland.org>2006-08-30 18:42:42 +0000
commit4d36c0d6c6c4e6ed9f148d70588fdb16798e9b9c (patch)
treee1e2d433887f193ea6be861ece68309e7d667619 /packages/linux
parentff49b42aedb3c09f71cb35456140b9afcf6b40b8 (diff)
parent71bd0cd9cf4addbc38028705674fb56c2a644071 (diff)
merge of 'd0e2c30b999cbef32c26717651606b8411ad02d6'
and 'ffac2606c1f6116f54c1871ff55c69f027252547'
Diffstat (limited to 'packages/linux')
-rw-r--r--packages/linux/handhelds-pxa-2.6/h4000/.mtn2git_empty0
-rw-r--r--packages/linux/handhelds-pxa-2.6/h4000/defconfig1343
-rw-r--r--packages/linux/handhelds-pxa-2.6_2.6.16-hh5.bb67
-rw-r--r--packages/linux/handhelds-pxa-2.6_cvs.bb4
-rw-r--r--packages/linux/linux-ezx/a780-leds-r0.patch185
-rw-r--r--packages/linux/linux-ezx/e680-disable-boomer-HACK.patch16
-rw-r--r--packages/linux/linux-ezx/e680-fix-keypad.patch152
-rw-r--r--packages/linux/linux-ezx/e680-leds-r0.patch336
-rw-r--r--packages/linux/linux-ezx/e680-leds-r1.patch374
-rw-r--r--packages/linux/linux-ezx/ezx-backlight-r0.patch212
-rw-r--r--packages/linux/linux-ezx/ezx-backlight-r1.patch277
-rw-r--r--packages/linux/linux-ezx/pxa-serial-gcc4.diff11
-rw-r--r--packages/linux/linux-ezx/pxakbd-fix-directkeys.patch83
-rw-r--r--packages/linux/linux-ezx/sa1100-rtc-gcc4.diff11
-rw-r--r--packages/linux/linux-ezx/touchscreen-fix-r0.patch19
-rw-r--r--packages/linux/linux-ezx_2.6.16.13.bb36
-rw-r--r--packages/linux/linux-omap1_2.6.12-rc2.bb20
-rw-r--r--packages/linux/linux-omap1_2.6.x+git.bb39
-rw-r--r--packages/linux/linux-openzaurus-2.6.17/tosa-lcdnoise-r0.patch157
-rw-r--r--packages/linux/linux-openzaurus-2.6.17/wm97xx-lcdnoise-r0.patch208
-rw-r--r--packages/linux/linux-openzaurus_2.6.17+git.bb48
-rw-r--r--packages/linux/linux-openzaurus_2.6.17.bb13
22 files changed, 1898 insertions, 1713 deletions
diff --git a/packages/linux/handhelds-pxa-2.6/h4000/.mtn2git_empty b/packages/linux/handhelds-pxa-2.6/h4000/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/linux/handhelds-pxa-2.6/h4000/.mtn2git_empty
diff --git a/packages/linux/handhelds-pxa-2.6/h4000/defconfig b/packages/linux/handhelds-pxa-2.6/h4000/defconfig
new file mode 100644
index 0000000000..2bba0377eb
--- /dev/null
+++ b/packages/linux/handhelds-pxa-2.6/h4000/defconfig
@@ -0,0 +1,1343 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.16-hh2
+# Sat Jun 24 13:09:54 2006
+#
+CONFIG_ARM=y
+CONFIG_MMU=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_ARCH_MTD_XIP=y
+
+#
+# Code maturity level options
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+# CONFIG_POSIX_MQUEUE is not set
+# CONFIG_BSD_PROCESS_ACCT is not set
+CONFIG_SYSCTL=y
+# CONFIG_AUDIT is not set
+CONFIG_IKCONFIG=y
+# CONFIG_MINIMAL_OOPS is not set
+CONFIG_IKCONFIG_PROC=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_UID16=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_EMBEDDED=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SHMEM=y
+CONFIG_USELIB=y
+CONFIG_CORE_DUMP=y
+CONFIG_CC_ALIGN_FUNCTIONS=0
+CONFIG_CC_ALIGN_LABELS=0
+CONFIG_CC_ALIGN_LOOPS=0
+CONFIG_CC_ALIGN_JUMPS=0
+CONFIG_SLAB=y
+# CONFIG_TINY_SHMEM is not set
+CONFIG_BASE_SMALL=0
+# CONFIG_SLOB is not set
+CONFIG_OBSOLETE_INTERMODULE=m
+
+#
+# Loadable module support
+#
+CONFIG_MODULES=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_OBSOLETE_MODPARM=y
+# CONFIG_MODVERSIONS is not set
+CONFIG_MODULE_SRCVERSION_ALL=y
+# CONFIG_KMOD is not set
+
+#
+# Block layer
+#
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+# CONFIG_IOSCHED_CFQ is not set
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="anticipatory"
+
+#
+# System Type
+#
+# CONFIG_ARCH_CLPS7500 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CO285 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP3XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_L7200 is not set
+CONFIG_ARCH_PXA=y
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_IMX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_AT91RM9200 is not set
+
+#
+# Intel PXA2xx Implementations
+#
+# CONFIG_ARCH_LUBBOCK is not set
+# CONFIG_MACH_MAINSTONE is not set
+# CONFIG_ARCH_PXA_IDP is not set
+# CONFIG_ARCH_ESERIES is not set
+# CONFIG_MACH_A620 is not set
+# CONFIG_MACH_A716 is not set
+# CONFIG_ARCH_H1900 is not set
+# CONFIG_ARCH_H2200 is not set
+# CONFIG_ARCH_H3900 is not set
+CONFIG_MACH_H4000=y
+CONFIG_IPAQ_H4000_SERIAL=m
+CONFIG_IPAQ_H4000_UDC=y
+CONFIG_IPAQ_H4000_LCD=y
+CONFIG_IPAQ_H4000_TS=y
+CONFIG_IPAQ_H4000_PCMCIA=y
+CONFIG_IPAQ_H4000_BUTTONS=y
+CONFIG_IPAQ_H4000_BATT=y
+CONFIG_IPAQ_H4300_KBD=m
+# CONFIG_MACH_H4700 is not set
+# CONFIG_MACH_HX2750 is not set
+# CONFIG_ARCH_H5400 is not set
+# CONFIG_MACH_HIMALAYA is not set
+# CONFIG_MACH_HTCUNIVERSAL is not set
+# CONFIG_MACH_HTCALPINE is not set
+# CONFIG_MACH_MAGICIAN is not set
+# CONFIG_MACH_HTCAPACHE is not set
+# CONFIG_MACH_BLUEANGEL is not set
+# CONFIG_MACH_HTCBEETLES is not set
+# CONFIG_ARCH_AXIMX5 is not set
+# CONFIG_ARCH_AXIMX3 is not set
+# CONFIG_MACH_X30 is not set
+# CONFIG_ARCH_ROVERP1 is not set
+# CONFIG_ARCH_ROVERP5P is not set
+# CONFIG_MACH_XSCALE_PALMLD is not set
+# CONFIG_MACH_T3XSCALE is not set
+# CONFIG_PXA_SHARPSL is not set
+CONFIG_PXA25x=y
+# CONFIG_SA1100_H3100 is not set
+# CONFIG_SA1100_H3600 is not set
+# CONFIG_SA1100_H3800 is not set
+
+#
+# Linux As Bootloader
+#
+# CONFIG_LAB is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_32=y
+CONFIG_CPU_XSCALE=y
+CONFIG_CPU_32v5=y
+CONFIG_CPU_ABRT_EV5T=y
+CONFIG_CPU_CACHE_VIVT=y
+CONFIG_CPU_TLB_V4WBI=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+CONFIG_XSCALE_PMU=y
+CONFIG_KEXEC=y
+
+#
+# Compaq/iPAQ Platforms
+#
+CONFIG_PXA_IPAQ=y
+
+#
+# XScale-based iPAQ
+#
+CONFIG_IPAQ_HANDHELD=y
+
+#
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_IPAQ_SAMCOP is not set
+# CONFIG_IPAQ_HAMCOP is not set
+
+#
+# Bus support
+#
+
+#
+# PCCARD (PCMCIA/CardBus) support
+#
+CONFIG_PCCARD=y
+CONFIG_PCMCIA_DEBUG=y
+CONFIG_PCMCIA=y
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_IOCTL=y
+
+#
+# PC-card bridges
+#
+CONFIG_PCMCIA_PXA2XX=y
+
+#
+# Kernel Features
+#
+# CONFIG_PREEMPT is not set
+CONFIG_NO_IDLE_HZ=y
+# CONFIG_AEABI is not set
+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_SPARSEMEM_STATIC is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_ALIGNMENT_TRAP=y
+
+#
+# Boot options
+#
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_CMDLINE="keepinitrd"
+# CONFIG_XIP_KERNEL is not set
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_DEBUG=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_PXA=y
+CONFIG_PXA25x_ALTERNATE_FREQS=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+# CONFIG_FPE_FASTFPE is not set
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+# CONFIG_ARTHUR is not set
+
+#
+# Power management options
+#
+CONFIG_PM=y
+CONFIG_PM_LEGACY=y
+CONFIG_PM_DEBUG=y
+CONFIG_APM=y
+
+#
+# Networking
+#
+CONFIG_NET=y
+
+#
+# Networking options
+#
+# CONFIG_NETDEBUG is not set
+CONFIG_PACKET=m
+CONFIG_PACKET_MMAP=y
+CONFIG_UNIX=y
+# CONFIG_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 is not set
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_RARP is not set
+# CONFIG_NET_IPIP is not set
+# CONFIG_NET_IPGRE is not set
+# CONFIG_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_TUNNEL is not set
+# CONFIG_INET_DIAG is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_TCP_CONG_BIC=y
+
+#
+# IP: Virtual Server Configuration
+#
+# CONFIG_IP_VS is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_IPV6_TUNNEL is not set
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+# CONFIG_NETFILTER_NETLINK is not set
+# CONFIG_NETFILTER_XTABLES is not set
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_IP_NF_CONNTRACK=m
+# CONFIG_IP_NF_CT_ACCT is not set
+# CONFIG_IP_NF_CONNTRACK_MARK is not set
+# CONFIG_IP_NF_CONNTRACK_EVENTS is not set
+# CONFIG_IP_NF_CT_PROTO_SCTP is not set
+CONFIG_IP_NF_FTP=m
+CONFIG_IP_NF_IRC=m
+# CONFIG_IP_NF_NETBIOS_NS is not set
+# CONFIG_IP_NF_TFTP is not set
+# CONFIG_IP_NF_AMANDA is not set
+# CONFIG_IP_NF_PPTP is not set
+# CONFIG_IP_NF_QUEUE is not set
+
+#
+# IPv6: Netfilter Configuration (EXPERIMENTAL)
+#
+# CONFIG_IP6_NF_QUEUE is not set
+
+#
+# Bridge: Netfilter Configuration
+#
+# CONFIG_BRIDGE_NF_EBTABLES 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=m
+# CONFIG_VLAN_8021Q is not set
+# CONFIG_DECNET is not set
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_NET_DIVERT is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+
+#
+# QoS and/or fair queueing
+#
+# CONFIG_NET_SCHED is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_IRDA=y
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=y
+CONFIG_IRCOMM=y
+# 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=y
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+# CONFIG_DONGLE is not set
+
+#
+# Old SIR device drivers
+#
+# CONFIG_IRPORT_SIR is not set
+
+#
+# Old Serial dongle support
+#
+
+#
+# FIR device drivers
+#
+CONFIG_PXA_FICP=y
+CONFIG_BT=y
+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_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+# CONFIG_BT_HCIDTL1 is not set
+# CONFIG_BT_HCIBT3C is not set
+# CONFIG_BT_HCIBLUECARD is not set
+# CONFIG_BT_HCIBTUART is not set
+# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IEEE80211 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
+
+#
+# Connector - unified userspace <-> kernelspace linker
+#
+# CONFIG_CONNECTOR is not set
+
+#
+# Memory Technology Devices (MTD)
+#
+CONFIG_MTD=y
+CONFIG_MTD_DEBUG=y
+CONFIG_MTD_DEBUG_VERBOSE=3
+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 is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+
+#
+# RAM/ROM/Flash chip drivers
+#
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_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=m
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=m
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+# CONFIG_MTD_OBSOLETE_CHIPS is not set
+CONFIG_MTD_XIP=y
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_IPAQ is not set
+# CONFIG_MTD_SHARP_SL is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLKMTD is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+
+#
+# NAND Flash Device Drivers
+#
+# CONFIG_MTD_NAND is not set
+
+#
+# OneNAND Flash Device Drivers
+#
+# CONFIG_MTD_ONENAND is not set
+
+#
+# Parallel port support
+#
+# CONFIG_PARPORT is not set
+
+#
+# Plug and Play support
+#
+
+#
+# Block devices
+#
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_BLK_DEV_INITRD=y
+# CONFIG_CDROM_PKTCDVD is not set
+# CONFIG_ATA_OVER_ETH is not set
+
+#
+# ATA/ATAPI/MFM/RLL support
+#
+CONFIG_IDE=m
+CONFIG_BLK_DEV_IDE=m
+
+#
+# Please see Documentation/ide.txt for help/info on IDE drives
+#
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_IDEDISK=m
+# CONFIG_IDEDISK_MULTI_MODE is not set
+CONFIG_BLK_DEV_IDECS=m
+# CONFIG_BLK_DEV_IDECD is not set
+# CONFIG_BLK_DEV_IDETAPE is not set
+# CONFIG_BLK_DEV_IDEFLOPPY is not set
+# CONFIG_IDE_TASK_IOCTL is not set
+
+#
+# IDE chipset support/bugfixes
+#
+# CONFIG_IDE_GENERIC is not set
+# CONFIG_IDE_ARM is not set
+# CONFIG_BLK_DEV_IDEDMA is not set
+# CONFIG_IDEDMA_AUTO is not set
+# CONFIG_BLK_DEV_HD is not set
+
+#
+# SCSI device support
+#
+# CONFIG_RAID_ATTRS is not set
+# CONFIG_SCSI is not set
+
+#
+# Multi-device support (RAID and LVM)
+#
+# CONFIG_MD is not set
+
+#
+# Fusion MPT device support
+#
+# CONFIG_FUSION is not set
+
+#
+# IEEE 1394 (FireWire) support
+#
+
+#
+# I2O device support
+#
+
+#
+# Network device support
+#
+CONFIG_NETDEVICES=y
+# CONFIG_DUMMY is not set
+# CONFIG_BONDING is not set
+# CONFIG_EQUALIZER is not set
+# CONFIG_TUN is not set
+
+#
+# PHY device support
+#
+
+#
+# Ethernet (10 or 100Mbit)
+#
+# CONFIG_NET_ETHERNET is not set
+
+#
+# Ethernet (1000 Mbit)
+#
+
+#
+# Ethernet (10000 Mbit)
+#
+
+#
+# Token Ring devices
+#
+
+#
+# Wireless LAN (non-hamradio)
+#
+CONFIG_NET_RADIO=y
+
+#
+# Obsolete Wireless cards support (pre-802.11)
+#
+# CONFIG_STRIP is not set
+# CONFIG_PCMCIA_WAVELAN is not set
+# CONFIG_PCMCIA_NETWAVE is not set
+
+#
+# Wireless 802.11 Frequency Hopping cards support
+#
+# CONFIG_PCMCIA_RAYCS is not set
+
+#
+# Wireless 802.11b ISA/PCI cards support
+#
+# CONFIG_HERMES is not set
+# CONFIG_ATMEL is not set
+
+#
+# Wireless 802.11b Pcmcia/Cardbus cards support
+#
+# CONFIG_AIRO_CS is not set
+# CONFIG_PCMCIA_WL3501 is not set
+# CONFIG_HOSTAP is not set
+CONFIG_ACX=y
+CONFIG_ACX_MEM=y
+CONFIG_NET_WIRELESS=y
+
+#
+# PCMCIA network device support
+#
+# CONFIG_NET_PCMCIA is not set
+
+#
+# Wan interfaces
+#
+# 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
+
+#
+# ISDN subsystem
+#
+# CONFIG_ISDN is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+
+#
+# Userland interfaces
+#
+# CONFIG_INPUT_MOUSEDEV is not set
+# CONFIG_INPUT_JOYDEV is not set
+CONFIG_INPUT_TSDEV=y
+CONFIG_INPUT_TSDEV_SCREEN_X=240
+CONFIG_INPUT_TSDEV_SCREEN_Y=320
+CONFIG_INPUT_EVDEV=y
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_INPUT_MISC is not set
+
+#
+# Hardware I/O ports
+#
+# CONFIG_SERIO is not set
+# CONFIG_GAMEPORT is not set
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_VT_CONSOLE=y
+CONFIG_HW_CONSOLE=y
+# CONFIG_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_PXA_COUNT=4
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=256
+
+#
+# I2C support
+#
+CONFIG_I2C=y
+CONFIG_I2C_CHARDEV=y
+
+#
+# I2C Algorithms
+#
+# CONFIG_I2C_ALGOBIT is not set
+# CONFIG_I2C_ALGOPCF is not set
+# CONFIG_I2C_ALGOPCA is not set
+
+#
+# I2C Hardware Bus support
+#
+# CONFIG_I2C_ELV is not set
+CONFIG_I2C_PXA=m
+CONFIG_I2C_PXA_SLAVE=y
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_PCA_ISA is not set
+
+#
+# Miscellaneous I2C Chip support
+#
+# CONFIG_SENSORS_DS1337 is not set
+# CONFIG_SENSORS_DS1374 is not set
+# CONFIG_SENSORS_EEPROM is not set
+# CONFIG_SENSORS_PCF8574 is not set
+# CONFIG_SENSORS_PCA9539 is not set
+# CONFIG_SENSORS_PCA9535 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_RTC8564 is not set
+# CONFIG_SENSORS_MAX6875 is not set
+# CONFIG_RTC_X1205_I2C is not set
+# CONFIG_I2C_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
+
+#
+# L3 serial bus support
+#
+# CONFIG_L3 is not set
+
+#
+# Mice
+#
+# CONFIG_BUSMOUSE is not set
+
+#
+# IPMI
+#
+# CONFIG_IPMI_HANDLER is not set
+
+#
+# Watchdog Cards
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_NVRAM is not set
+CONFIG_SA1100_RTC=y
+# CONFIG_DTLK is not set
+# CONFIG_R3964 is not set
+
+#
+# Ftape, the floppy tape device driver
+#
+
+#
+# PCMCIA character devices
+#
+# CONFIG_SYNCLINK_CS is not set
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_RAW_DRIVER is not set
+
+#
+# TPM devices
+#
+# CONFIG_TCG_TPM is not set
+# CONFIG_TELCLOCK is not set
+
+#
+# SPI support
+#
+CONFIG_SPI=y
+CONFIG_SPI_DEBUG=y
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_BITBANG is not set
+
+#
+# SPI Protocol Masters
+#
+
+#
+# Dallas's 1-wire bus
+#
+# CONFIG_W1 is not set
+
+#
+# Hardware Monitoring support
+#
+CONFIG_HWMON=y
+# CONFIG_HWMON_VID is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1026 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_ADM9240 is not set
+# CONFIG_SENSORS_ASB100 is not set
+# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_F71805F is not set
+# CONFIG_SENSORS_FSCHER is not set
+# CONFIG_SENSORS_FSCPOS is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_GL520SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM63 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM87 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_LM92 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PC87360 is not set
+# CONFIG_SENSORS_SMSC47M1 is not set
+# CONFIG_SENSORS_SMSC47B397 is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83792D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83627EHF is not set
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# SoC drivers
+#
+# CONFIG_SOC_MQ11XX is not set
+# CONFIG_SOC_T7L66XB is not set
+# CONFIG_SOC_TC6387XB is not set
+# CONFIG_SOC_TC6393XB is not set
+# CONFIG_HTC_ASIC2 is not set
+CONFIG_HTC_ASIC3=y
+# CONFIG_SOC_TSC2101 is not set
+
+#
+# Misc devices
+#
+CONFIG_BATTERY_MONITOR=y
+
+#
+# Multimedia Capabilities Port drivers
+#
+# CONFIG_MCP is not set
+
+#
+# Multimedia Capabilities Port drivers
+#
+
+#
+# Multimedia devices
+#
+# CONFIG_VIDEO_DEV is not set
+
+#
+# Digital Video Broadcasting Devices
+#
+# CONFIG_DVB is not set
+
+#
+# Graphics support
+#
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MODE_HELPERS is not set
+CONFIG_FB_TILEBLITTING=y
+# CONFIG_FB_IMAGEON is not set
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_PXA=y
+CONFIG_FB_PXA_PARAMETERS=y
+# CONFIG_FB_VIRTUAL is not set
+
+#
+# Console display driver support
+#
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+# CONFIG_FONT_8x8 is not set
+# CONFIG_FONT_8x16 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+CONFIG_FONT_MINI_4x6=y
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
+
+#
+# Logo configuration
+#
+# CONFIG_LOGO is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DEVICE=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_DEVICE=y
+
+#
+# Sound
+#
+CONFIG_SOUND=y
+
+#
+# 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_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+
+#
+# Generic devices
+#
+# CONFIG_SND_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_A716 is not set
+# CONFIG_SND_H1910 is not set
+# CONFIG_SND_H2200 is not set
+# CONFIG_SND_HTCMAGICIAN is not set
+# CONFIG_SND_HX4700 is not set
+# CONFIG_SND_H5XXX_AK4535 is not set
+# CONFIG_SND_PXA2XX_AC97 is not set
+
+#
+# PCMCIA devices
+#
+
+#
+# Open Sound System
+#
+# CONFIG_SOUND_PRIME is not set
+
+#
+# USB support
+#
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB is not set
+
+#
+# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
+#
+
+#
+# USB Gadget Support
+#
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DEBUG_FILES=y
+CONFIG_USB_GADGET_SELECTED=y
+# CONFIG_USB_GADGET_NET2280 is not set
+CONFIG_USB_GADGET_PXA2XX=y
+CONFIG_USB_PXA2XX=y
+# CONFIG_USB_PXA2XX_SMALL is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_MQ11XX is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+# CONFIG_USB_ZERO is not set
+CONFIG_USB_ETH=y
+# CONFIG_USB_ETH_RNDIS is not set
+# CONFIG_USB_GADGETFS is not set
+# CONFIG_USB_FILE_STORAGE is not set
+# CONFIG_USB_G_SERIAL is not set
+# CONFIG_USB_G_CHAR is not set
+
+#
+# MMC/SD Card support
+#
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_BLOCK=y
+# CONFIG_MMC_PXA is not set
+# CONFIG_MMC_TMIO is not set
+# CONFIG_MMC_SAMCOP is not set
+CONFIG_MMC_ASIC3=y
+
+#
+# LED devices
+#
+CONFIG_CLASS_LEDS=y
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+# CONFIG_EXT2_FS_XATTR is not set
+# CONFIG_EXT2_FS_XIP is not set
+# CONFIG_EXT3_FS is not set
+# CONFIG_REISERFS_FS is not set
+# CONFIG_JFS_FS is not set
+# CONFIG_FS_POSIX_ACL is not set
+# CONFIG_XFS_FS is not set
+# CONFIG_OCFS2_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_ROMFS_FS is not set
+CONFIG_INOTIFY=y
+# CONFIG_QUOTA is not set
+CONFIG_DNOTIFY=y
+# CONFIG_AUTOFS_FS is not set
+# CONFIG_AUTOFS4_FS is not set
+# CONFIG_FUSE_FS 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_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_RAMFS=y
+# CONFIG_RELAYFS_FS is not set
+# CONFIG_CONFIGFS_FS is not set
+
+#
+# Miscellaneous filesystems
+#
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+# CONFIG_JFFS_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=1
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_CRAMFS 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=y
+CONFIG_NLS_CODEPAGE_852=y
+# 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=y
+CONFIG_NLS_CODEPAGE_1251=y
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+CONFIG_NLS_ISO8859_2=y
+# 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
+
+#
+# Profiling support
+#
+# CONFIG_PROFILING is not set
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_DEBUG_KERNEL=y
+CONFIG_LOG_BUF_SHIFT=15
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_DEBUG_SLAB is not set
+CONFIG_DEBUG_MUTEXES=y
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_BUGVERBOSE is not set
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_FS is not set
+CONFIG_DEBUG_VM=y
+CONFIG_FRAME_POINTER=y
+CONFIG_FORCED_INLINING=y
+# CONFIG_RCU_TORTURE_TEST is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_WAITQ is not set
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_LL is not set
+
+#
+# Security options
+#
+# CONFIG_KEYS is not set
+# CONFIG_SECURITY is not set
+
+#
+# Cryptographic options
+#
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_HMAC=y
+# CONFIG_CRYPTO_NULL is not set
+# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_SHA1=y
+# 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_DES=y
+# CONFIG_CRYPTO_BLOWFISH is not set
+# CONFIG_CRYPTO_TWOFISH is not set
+# CONFIG_CRYPTO_SERPENT is not set
+# CONFIG_CRYPTO_AES is not set
+# CONFIG_CRYPTO_CAST5 is not set
+# CONFIG_CRYPTO_CAST6 is not set
+# CONFIG_CRYPTO_TEA is not set
+# CONFIG_CRYPTO_ARC4 is not set
+# CONFIG_CRYPTO_KHAZAD is not set
+# CONFIG_CRYPTO_ANUBIS is not set
+CONFIG_CRYPTO_DEFLATE=y
+# CONFIG_CRYPTO_MICHAEL_MIC is not set
+# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Hardware crypto devices
+#
+
+#
+# Library routines
+#
+CONFIG_CRC_CCITT=y
+# CONFIG_CRC16 is not set
+CONFIG_CRC32=y
+# CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/linux/handhelds-pxa-2.6_2.6.16-hh5.bb b/packages/linux/handhelds-pxa-2.6_2.6.16-hh5.bb
new file mode 100644
index 0000000000..a5cc4073e4
--- /dev/null
+++ b/packages/linux/handhelds-pxa-2.6_2.6.16-hh5.bb
@@ -0,0 +1,67 @@
+SECTION = "kernel"
+DESCRIPTION = "handhelds.org Linux kernel for PXA based devices."
+LICENSE = "GPL"
+
+COMPATIBLE_HOST = "arm.*-linux"
+COMPATIBLE_MACHINE = '(h3900|h2200|h4000|h5xxx|htcuniversal|ipaq-pxa270)'
+
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/handhelds-pxa-${PV}"
+
+SRC_URI = "${HANDHELDS_CVS};module=linux/kernel26;tag=${@'K' + bb.data.getVar('PV',d,1).replace('.', '-')} \
+ file://defconfig"
+
+S = "${WORKDIR}/kernel26"
+
+inherit kernel
+
+FILES_kernel-image_ipaq-pxa270 = ""
+ALLOW_EMPTY_ipaq_pxa270 = 1
+FILES_kernel-image_htcuniversal = ""
+ALLOW_EMPTY_htcuniversal = 1
+
+
+
+K_MAJOR = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[0]}"
+K_MINOR = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[1]}"
+K_MICRO = "${@bb.data.getVar('PV',d,1).split('-')[0].split('.')[2]}"
+HHV = "${@bb.data.getVar('PV',d,1).split('-')[1].split('hh')[-1]}"
+
+KERNEL_PRIORITY = "${@'%d' % (int(bb.data.getVar('K_MAJOR',d,1)) * 100000000 + int(bb.data.getVar('K_MINOR',d,1)) * 1000000 + int(bb.data.getVar('K_MICRO',d,1)) * 10000 + float(bb.data.getVar('HHV',d,1)))}"
+
+do_configure() {
+
+ if [ `grep EXTRAVERSION Makefile | grep hh | awk '{print $3}' | sed s/-hh//` != ${HHV} ]; then
+ die "-hh version mismatch"
+ fi
+
+ rm -f ${S}/.config
+
+ if [ ! -e ${WORKDIR}/defconfig ]; then
+ die "No default configuration for ${MACHINE} available."
+ fi
+
+
+ if [ "${TARGET_OS}" == "linux-gnueabi" ]; then
+ echo "CONFIG_AEABI=y" >> ${S}/.config
+ echo "CONFIG_OABI_COMPAT=y" >> ${S}/.config
+ else
+ echo "# CONFIG_AEABI is not set" >> ${S}/.config
+ echo "# CONFIG_OABI_COMPAT is not set" >> ${S}/.config
+ fi
+
+ sed -e '/CONFIG_AEABI/d' \
+ -e '/CONFIG_OABI_COMPAT=/d' \
+ '${WORKDIR}/defconfig' >>'${S}/.config'
+
+ yes '' | oe_runmake oldconfig
+
+}
+
+do_deploy() {
+ install -d ${DEPLOY_DIR_IMAGE}
+ install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${PV}-${MACHINE}-${DATETIME}
+}
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile
diff --git a/packages/linux/handhelds-pxa-2.6_cvs.bb b/packages/linux/handhelds-pxa-2.6_cvs.bb
index 7dfcb4d237..75f4425638 100644
--- a/packages/linux/handhelds-pxa-2.6_cvs.bb
+++ b/packages/linux/handhelds-pxa-2.6_cvs.bb
@@ -27,8 +27,8 @@ ALLOW_EMPTY_htcuniversal = 1
K_MAJOR = "2"
K_MINOR = "6"
-K_MICRO = "16"
-HHV = "5"
+K_MICRO = "17"
+HHV = "0"
#
KERNEL_PRIORITY = "${@'%d' % (int(bb.data.getVar('K_MAJOR',d,1)) * 100000000 + int(bb.data.getVar('K_MINOR',d,1)) * 1000000 + int(bb.data.getVar('K_MICRO',d,1)) * 10000 + float(bb.data.getVar('HHV',d,1)))}"
diff --git a/packages/linux/linux-ezx/a780-leds-r0.patch b/packages/linux/linux-ezx/a780-leds-r0.patch
deleted file mode 100644
index 31fdfc635b..0000000000
--- a/packages/linux/linux-ezx/a780-leds-r0.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/leds/Kconfig~a780-leds-r0.patch 2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig 2006-06-05 18:05:32.000000000 +0200
-@@ -66,6 +66,13 @@
- This options enables support for the LEDs on the
- Motorola E680(i) GSM Phone.
-
-+config LEDS_A780
-+ tristate "LED Support for the Motorola A780 GSM Phone"
-+ depends LEDS_CLASS && PXA_EZX_A780
-+ help
-+ This option enables support for the LEDs on the
-+ Motorola A780 GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
- tristate "LED Timer Trigger"
- depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~a780-leds-r0.patch 2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-05 18:05:32.000000000 +0200
-@@ -11,6 +11,7 @@
- obj-$(CONFIG_LEDS_IXP4XX) += leds-ixp4xx-gpio.o
- obj-$(CONFIG_LEDS_TOSA) += leds-tosa.o
- obj-$(CONFIG_LEDS_E680) += leds-e680.o
-+obj-$(CONFIG_LEDS_A780) += leds-a780.o
-
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~a780-leds-r0.patch 2006-06-05 18:05:32.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-05 18:05:32.000000000 +0200
-@@ -367,6 +367,15 @@
- };
- #endif
-
-+#ifdef CONFIG_PXA_EZX_A780
-+/*
-+ * A780 LEDs
-+ */
-+static struct platform_device a780led_device = {
-+ .name = "a780-led",
-+ .id = -1,
-+};
-+#endif
-
- /* keyboard */
-
-@@ -780,6 +789,9 @@
- #ifdef CONFIG_PXA_EZX_E680
- &e680led_device,
- #endif
-+#ifdef CONFIG_PXA_EZX_A780
-+ &a780led_device,
-+#endif
- };
-
- static void __init
---- /dev/null 2006-06-05 13:59:28.329930680 +0200
-+++ linux-2.6.16/drivers/leds/leds-a780.c 2006-06-05 18:27:13.000000000 +0200
-@@ -0,0 +1,123 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola A780 GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on keylight.c by Motorola and leds-corgi.c by Richard Purdie
-+ *
-+ * 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/config.h>
-+#include <linux/kernel.h>
-+#include <linux/platform_device.h>
-+#include <linux/leds.h>
-+#include <asm/arch/ezx-pcap.h>
-+
-+static void a780led_main_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ if ( value > 31 ) value = 31;
-+ printk( KERN_DEBUG "a780led_main_set: %d\n", value );
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL0, value & 0x01);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL1, value & 0x02);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL2, value & 0x04);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL3, value & 0x08);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL_CTRL4, value & 0x10);
-+}
-+
-+static void a780led_aux_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ if ( value > 31 ) value = 31;
-+ printk( KERN_DEBUG "a780led_aux_set: %d\n", value );
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL0, value & 0x01);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL1, value & 0x02);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL2, value & 0x04);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL3, value & 0x08);
-+ ezx_pcap_bit_set(SSP_PCAP_ADJ_BIT_PERIPH_BL2_CTRL4, value & 0x10);
-+}
-+
-+static struct led_classdev a780_main_led = {
-+ .name = "a780:main",
-+ .default_trigger = "none",
-+ .brightness_set = a780led_main_set,
-+};
-+
-+static struct led_classdev a780_aux_led = {
-+ .name = "a780:aux",
-+ .default_trigger = "none",
-+ .brightness_set = a780led_aux_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int a780led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ led_classdev_suspend(&a780_main_led);
-+ led_classdev_suspend(&a780_aux_led);
-+ return 0;
-+}
-+
-+static int a780led_resume(struct platform_device *dev)
-+{
-+ led_classdev_resume(&a780_main_led);
-+ led_classdev_resume(&a780_aux_led);
-+ return 0;
-+}
-+#endif
-+
-+static int a780led_probe(struct platform_device *pdev)
-+{
-+ int ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &a780_main_led);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &a780_aux_led);
-+ if (ret < 0)
-+ led_classdev_unregister(&a780_main_led);
-+
-+ return ret;
-+}
-+
-+static int a780led_remove(struct platform_device *pdev)
-+{
-+ led_classdev_unregister(&a780_main_led);
-+ led_classdev_unregister(&a780_aux_led);
-+ return 0;
-+}
-+
-+static struct platform_driver a780led_driver = {
-+ .probe = a780led_probe,
-+ .remove = a780led_remove,
-+#ifdef CONFIG_PM
-+ .suspend = a780led_suspend,
-+ .resume = a780led_resume,
-+#endif
-+ .driver = {
-+ .name = "a780-led",
-+ },
-+};
-+
-+static int __init a780led_init(void)
-+{
-+ return platform_driver_register(&a780led_driver);
-+}
-+
-+static void __exit a780led_exit(void)
-+{
-+ a780led_main_set( &a780_main_led, 0 );
-+ a780led_aux_set( &a780_aux_led, 0 );
-+ platform_driver_unregister(&a780led_driver);
-+}
-+
-+module_init(a780led_init);
-+module_exit(a780led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola A780 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/e680-disable-boomer-HACK.patch b/packages/linux/linux-ezx/e680-disable-boomer-HACK.patch
deleted file mode 100644
index a0d953ddfb..0000000000
--- a/packages/linux/linux-ezx/e680-disable-boomer-HACK.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/i2c/chips/Makefile~e680-disable-boomer 2006-05-31 18:52:44.000000000 +0200
-+++ linux-2.6.16/drivers/i2c/chips/Makefile 2006-05-31 18:56:38.000000000 +0200
-@@ -17,7 +17,7 @@
-
- obj-$(CONFIG_I2C_ADCM2700) += e680_camera.o
- obj-$(CONFIG_I2C_A780_CAMERA) += a780_camera.o
--obj-$(CONFIG_PXA_EZX_E680) += boomer.o
-+//obj-$(CONFIG_PXA_EZX_E680) += boomer.o
-
- ifeq ($(CONFIG_I2C_DEBUG_CHIP),y)
- EXTRA_CFLAGS += -DDEBUG
diff --git a/packages/linux/linux-ezx/e680-fix-keypad.patch b/packages/linux/linux-ezx/e680-fix-keypad.patch
deleted file mode 100644
index ca06052803..0000000000
--- a/packages/linux/linux-ezx/e680-fix-keypad.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-fix-keypad.patch 2006-06-11 00:47:33.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-12 16:13:28.000000000 +0200
-@@ -341,71 +341,25 @@
- };
- #endif
-
--/* keyboard */
--
--#if defined(CONFIG_PXA_EZX_V700)
--#error "kbd matrix still needs to be converted to new row/col layout"
--static unsigned char ezx_keycode[] = {
-- /* col 0 */
-- KEY_UP, KEY_DOWN, KEY_LEFT, KEY_RIGHT,
-- KEYPAD_POUND, KEY_0, KEY_9, 0,
-- /* col 1 */
-- KEY_2, KEY_4, KEY_6, KEY_8,
-- KEY_7, KEYPAD_SLEFT, KEYPAD_SRIGHT, 0,
-- /* col 2 */
-- KEY_MENU, KEY_1, KEY_3, KEY_5,
-- KEY_KPASTERISK, KEY_VOLUMEUP, KEY_VOLUMEDOWN, 0,
-- /* col 3 */
-- KEY_CAMERA, KEYPAD_CLEAR, KEYPAD_CARRIER, KEYPAD_ACTIVATE,
-- KEYPAD_SEND, KEYPAD_SMART, KEYPAD_VAVR, 0,
--};
--static unsigned char ezx_direct_keycode[] = {
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
--};
--#elif defined(CONFIG_PXA_EZX_E680_P4A)
--#error "kbd matrix still needs to be converted to new row/col layout"
--static unsigned char ezx_keycode[] = {
-- /* col 0 */
-- KEY_UP, KEY_DOWN, KEY_LEFT, 0, 0, 0, 0, 0,
-- /* col 1 */
-- KEY_RIGHT, KEY_CENTER, KEY_HOME, 0, 0, 0, 0, 0,
-- /* col 2 */
-- KEYPAD_GAME_R, 0, KEYPAD_GAME_L, 0, 0, 0, 0, 0,
-- /* col 3 */
-- KEY_A, KEY_B, 0, 0, 0, 0, 0, 0,
--};
--static unsigned char ezx_direct_keycode[] = {
-- KEY_CAMERA,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEY_POWER,
-- KEYPAD_NONE,
--};
--#elif defined(CONFIG_PXA_EZX_E680)
--#error "kbd matrix still needs to be converted to new row/col layout"
-+/*
-+ * PXA Keyboard
-+ */
-+#if defined(CONFIG_PXA_EZX_E680)
- static unsigned char ezx_keycode[] = {
-- /* col 0 */
-- KEY_UP, KEY_DOWN, 0, 0, 0, 0, 0, 0,
-- /* col 1 */
-- KEY_RIGHT, KEY_LEFT, 0, 0, 0, 0, 0, 0,
-- /* col 2 */
-- 0, KEYPAD_GAME_R, 0, 0, 0, 0, 0, 0,
-- /* col 3 */
-- KEYPAD_HOME, KEYPAD_GAME_L, KEYPAD_CENTER, 0, 0, 0, 0, 0,
-+ /* row 0 */
-+ KEY_UP, KEY_RIGHT, KEY_RESERVED, KEY_PHONE,
-+ /* row 1 */
-+ KEY_DOWN, KEY_LEFT, KEY_VOLUMEUP, KEY_VOLUMEDOWN,
-+ /* row 2 */
-+ KEY_RESERVED, KEY_RESERVED, KEY_RESERVED, KEY_KPENTER,
- };
- static unsigned char ezx_direct_keycode[] = {
- KEY_CAMERA,
-- KEYPAD_NONE,
-- KEYPAD_NONE,
-- KEYPAD_A,
-+ KEY_RESERVED,
-+ KEY_RESERVED,
-+ KEY_HOME,
- KEY_POWER,
-- KEYPAD_B,
-+ KEY_MENU,
- };
- #elif defined(CONFIG_PXA_EZX_A780)
- static unsigned char ezx_keycode[] = {
-@@ -424,22 +378,12 @@
- KEY_CAMERA,
- };
- #else
--#error "no EZX subarchitecture defined !?!"
-+#error "no EZX subarchitecture defined"
- #endif
-
- static int ezx_kbd_init(void)
- {
--#if defined(CONFIG_PXA_EZX_E680_P4A)
-- pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, VR Key */
-- pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN); /* KP_DKIN<4>, power key */
-- pxa_gpio_mode(100 | GPIO_ALT_FN_1_IN); /* KP_MKIN<0> */
-- pxa_gpio_mode(101 | GPIO_ALT_FN_1_IN); /* KP_MKIN<1> */
-- pxa_gpio_mode(102 | GPIO_ALT_FN_1_IN); /* KP_MKIN<2> */
-- pxa_gpio_mode(103 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<0> */
-- pxa_gpio_mode(104 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<1> */
-- pxa_gpio_mode(105 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<2> */
-- pxa_gpio_mode(106 | GPIO_ALT_FN_2_OUT); /* KP_MKOUT<3> */
--#elif defined(CONFIG_PXA_EZX_E680)
-+#if defined(CONFIG_PXA_EZX_E680)
- pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, VR Key */
- pxa_gpio_mode(96 | GPIO_ALT_FN_1_IN); /* KP_DKIN<3>, GAME_A */
- pxa_gpio_mode(97 | GPIO_ALT_FN_1_IN); /* KP_DKIN<4>, power key */
-@@ -455,7 +399,7 @@
- GPDR(GPIO_TC_MM_EN) |= GPIO_bit(GPIO_TC_MM_EN);
- GPSR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN);
- PGSR3 |= GPIO_bit(GPIO_TC_MM_EN);
--#elif defined (CONFIG_PXA_EZX_A780)
-+#elif defined(CONFIG_PXA_EZX_A780)
- pxa_gpio_mode(93 | GPIO_ALT_FN_1_IN); /* KP_DKIN<0>, voice_rec */
- pxa_gpio_mode(97 | GPIO_ALT_FN_3_IN); /* KP_MKIN<3> */
- pxa_gpio_mode(98 | GPIO_ALT_FN_3_IN); /* KP_MKIN<4> */
-@@ -476,10 +420,7 @@
- .scan_interval = HZ/40,
- .matrix = {
- .keycode = &ezx_keycode,
--#if defined(CONFIG_ARCH_EXZ_E680_P4A)
-- .cols = 4,
-- .rows = 3,
--#elif defined(CONFIG_PXA_EZX_E680)
-+#if defined(CONFIG_PXA_EZX_E680)
- .cols = 4,
- .rows = 3,
- #elif defined(CONFIG_PXA_EZX_A780)
-@@ -489,10 +430,8 @@
- },
- .direct = {
- .keycode = &ezx_direct_keycode,
--#if defined(CONFIG_PXA_EZX_E680_P4A)
-- .num = 4,
--#elif defined(CONFIG_PXA_EZX_E680)
-- .num = 5,
-+#if defined(CONFIG_PXA_EZX_E680)
-+ .num = 6,
- #elif defined(CONFIG_PXA_EZX_A780)
- .num = 1,
- #endif
diff --git a/packages/linux/linux-ezx/e680-leds-r0.patch b/packages/linux/linux-ezx/e680-leds-r0.patch
deleted file mode 100644
index b6d2413dc1..0000000000
--- a/packages/linux/linux-ezx/e680-leds-r0.patch
+++ /dev/null
@@ -1,336 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~led_ezx-r0.patch 2006-06-03 15:17:43.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-05 15:14:59.000000000 +0200
-@@ -357,6 +357,17 @@
- .num_resources = ARRAY_SIZE(ezx_backlight_resources),
- };
-
-+#ifdef CONFIG_PXA_EZX_E680
-+/*
-+ * E680 LEDs
-+ */
-+static struct platform_device e680led_device = {
-+ .name = "e680-led",
-+ .id = -1,
-+};
-+#endif
-+
-+
- /* keyboard */
-
- #if defined(CONFIG_PXA_EZX_V700)
-@@ -770,6 +781,9 @@
-
- static struct platform_device *devices[] __initdata = {
- &ezx_bp_device,
-+#ifdef CONFIG_PXA_EZX_E680
-+ &e680led_device,
-+#endif
- };
-
- static void __init
---- linux-2.6.16/drivers/leds/Kconfig~led_ezx-r0.patch 2006-06-03 15:17:47.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig 2006-06-03 15:17:47.000000000 +0200
-@@ -59,6 +59,13 @@
- This option enables support for the LEDs on Sharp Zaurus
- SL-6000 series.
-
-+config LEDS_E680
-+ tristate "LED Support for the Motorola E680(i) GSM Phone"
-+ depends LEDS_CLASS && PXA_EZX_E680
-+ help
-+ This options enables support for the LEDs on the
-+ Motorola E680(i) GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
- tristate "LED Timer Trigger"
- depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~led_ezx-r0.patch 2006-06-03 15:17:47.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-03 15:17:47.000000000 +0200
-@@ -10,7 +10,8 @@
- obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o
- obj-$(CONFIG_LEDS_IXP4XX) += leds-ixp4xx-gpio.o
- obj-$(CONFIG_LEDS_TOSA) += leds-tosa.o
-+obj-$(CONFIG_LEDS_E680) += leds-e680.o
-
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
--obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
-\ Kein Zeilenumbruch am Dateiende.
-+obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
---- /dev/null 2006-06-05 13:59:28.329930680 +0200
-+++ linux-2.6.16/drivers/leds/leds-e680.c 2006-06-05 15:11:42.000000000 +0200
-@@ -0,0 +1,269 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola E680(i) GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on the Motorola 2.4 leds-e680.c and leds-corgi.c by Richard Purdie
-+ *
-+ * 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/config.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+//FIXME this belongs to somewhere else, please
-+// adjust when ssp_pcap.h reached its final destination
-+#include "../misc/ezx/ssp_pcap.h"
-+
-+//FIXME move defines to header file
-+#define IND_CNTL_R_BUL 46
-+#define IND_CNTL_G_BUL 47
-+#define SSP_PCAP_LED_MASK 0x000fffe0
-+#define SSP_PCAP_LED_SHIFT 5
-+
-+static enum led_brightness old_red;
-+static enum led_brightness old_green;
-+static enum led_brightness old_blue;
-+
-+typedef struct {
-+ unsigned char ind_GPIO_red; /*Indicator Red control GPIO 46: 0 active, 1 disactive*/
-+ unsigned char ind_GPIO_green; /*Indicator Green control GPIO 47: 0 active, 1 disactive*/
-+ unsigned char pcap_LEDR_en; /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
-+ unsigned char pcap_LEDG_en; /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
-+ unsigned char pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
-+ unsigned char pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
-+ unsigned char pcap_LEDR_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
-+ unsigned char pcap_LEDG_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
-+ unsigned char pcap_SKIP_on; /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
-+} PCAP2_LED_REGISTER_VALUE;
-+
-+const PCAP2_LED_REGISTER_VALUE led_register_value[]=
-+{
-+ /* on/off pulsepower timing intensity */
-+ {0x1,0x1, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0}, /* OFF */
-+ {0x0,0x1, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* RED */
-+ {0x1,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* GREEN */
-+ {0x0,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* ORANGE = RED + GREEN */
-+ {0x1,0x1, 0x0,0x1, 0x0,0xc, 0x0,0x0,0x0}, /* BLUE */
-+ {0x0,0x1, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_RED = RED + BLUE */
-+ {0x1,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_GREEN = GREEN + BLUE */
-+ {0x0,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* WHITE = RED + GREEN + BLUE */
-+};
-+
-+static void e680led_led_set( enum led_brightness red, enum led_brightness green, enum led_brightness blue )
-+{
-+ printk( KERN_DEBUG "e680led_led_set: red=%d, green=%d, blue=%d", red, green, blue );
-+ unsigned int tempValue = 0;
-+ unsigned int value = 0;
-+ unsigned int stateIndex = 0;
-+ unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl, ledg_ctrl, ledr_i, ledg_i,skip;
-+
-+ stateIndex = ( ( blue << 2 ) | ( green << 1 ) | ( red ) ) & 0x7;
-+ printk( KERN_DEBUG "LED stateIndex is %d", stateIndex );
-+ gpio_red = led_register_value[stateIndex].ind_GPIO_red & 0x1;
-+ gpio_green = led_register_value[stateIndex].ind_GPIO_green & 0x1;
-+ ledr_en = led_register_value[stateIndex].pcap_LEDR_en & 0x1;
-+ ledg_en = led_register_value[stateIndex].pcap_LEDG_en & 0x1;
-+ ledr_ctrl = led_register_value[stateIndex].pcap_LEDR_CTRL & 0xf;
-+ ledg_ctrl = led_register_value[stateIndex].pcap_LEDG_CTRL & 0xf;
-+ ledr_i = led_register_value[stateIndex].pcap_LEDR_I & 0x3;
-+ ledg_i = led_register_value[stateIndex].pcap_LEDG_I & 0x3;
-+ skip = led_register_value[stateIndex].pcap_SKIP_on & 0x1;
-+
-+ /* disable LEDs */
-+ if( ezx_pcap_read(SSP_PCAP_ADJ_PERIPH_REGISTER,&tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Read Failed\n" );
-+ return;
-+ }
-+ tempValue &= (~SSP_PCAP_LED_MASK);
-+ if( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Write Failed (Clear Data)\n" );
-+ return;
-+ }
-+
-+ /* configure GPIOs as output */
-+ pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
-+ pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
-+
-+ //FIXME: Simplify this logic
-+ if ( (gpio_green && gpio_red) )
-+ {
-+ /*Disable Red & Green signal*/
-+ set_GPIO(IND_CNTL_R_BUL); /*IND_CNTL_R_BUL Low active*/
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ clr_GPIO(IND_CNTL_G_BUL); /*IND_CNTL_G_BUL High active*/
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green & Red Disable\n");
-+ } else if ( gpio_green && !gpio_red )
-+ {
-+ /*Green Disable, Red Enable*/
-+ clr_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ clr_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green Disable, Red Enable\n");
-+ } else if (gpio_red && !gpio_green )
-+ {
-+ /*Red Disable, Green Enable*/
-+ set_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ set_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red Disable, Green Enable");
-+ }else
-+ {
-+ /*Red & Green enable*/
-+ clr_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ set_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red & Green Enable\n");
-+ }
-+
-+ /* Write PCAP LED Peripheral Control Register*/
-+ value = ( ledr_en | (ledg_en <<1) | (ledr_ctrl <<2) | (ledg_ctrl <<6) |
-+ (ledr_i << 10) | (ledg_i <<12) | (skip <<14) ) & 0x7fff;
-+ tempValue |= (value <<SSP_PCAP_LED_SHIFT);
-+
-+ if ( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) == SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_DEBUG "LED PCAP Write Success (0x%x :0x%x)\n",tempValue,value);
-+ old_red = red;
-+ old_green = green;
-+ old_blue = blue;
-+ return;
-+ } else {
-+ printk( KERN_DEBUG "LED PCAP Write Failed (State Change)\n");
-+ return;
-+ }
-+}
-+
-+static void e680led_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_red_set: %d\n", value );
-+ e680led_led_set( 1 && value, old_green, old_blue );
-+}
-+
-+static void e680led_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_green_set: %d\n", value );
-+ e680led_led_set( old_red, 1 && value, old_blue );
-+}
-+
-+static void e680led_blue_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_blue_set: %d\n", value );
-+ e680led_led_set( old_red, old_green, 1 && value );
-+}
-+
-+static struct led_classdev e680_red_led = {
-+ .name = "e680:red",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_red_set,
-+};
-+
-+static struct led_classdev e680_green_led = {
-+ .name = "e680:green",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_green_set,
-+};
-+
-+static struct led_classdev e680_blue_led = {
-+ .name = "e680:blue",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_blue_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int e680led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ led_classdev_suspend(&e680_red_led);
-+ led_classdev_suspend(&e680_green_led);
-+ led_classdev_suspend(&e680_blue_led);
-+ return 0;
-+}
-+
-+static int e680led_resume(struct platform_device *dev)
-+{
-+ led_classdev_resume(&e680_red_led);
-+ led_classdev_resume(&e680_green_led);
-+ led_classdev_resume(&e680_blue_led);
-+ return 0;
-+}
-+#endif
-+
-+static int e680led_probe(struct platform_device *pdev)
-+{
-+ int ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_red_led);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_green_led);
-+ if (ret < 0)
-+ led_classdev_unregister(&e680_red_led);
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_blue_led);
-+ if (ret < 0) {
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ }
-+ return ret;
-+}
-+
-+static int e680led_remove(struct platform_device *pdev)
-+{
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ led_classdev_unregister(&e680_blue_led);
-+ return 0;
-+}
-+
-+static struct platform_driver e680led_driver = {
-+ .probe = e680led_probe,
-+ .remove = e680led_remove,
-+#ifdef CONFIG_PM
-+ .suspend = e680led_suspend,
-+ .resume = e680led_resume,
-+#endif
-+ .driver = {
-+ .name = "e680-led",
-+ },
-+};
-+
-+static int __init e680led_init(void)
-+{
-+ return platform_driver_register(&e680led_driver);
-+}
-+
-+static void __exit e680led_exit(void)
-+{
-+ e680led_led_set( 0, 0, 0 );
-+ platform_driver_unregister(&e680led_driver);
-+}
-+
-+module_init(e680led_init);
-+module_exit(e680led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola E680 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/e680-leds-r1.patch b/packages/linux/linux-ezx/e680-leds-r1.patch
deleted file mode 100644
index abbab2937d..0000000000
--- a/packages/linux/linux-ezx/e680-leds-r1.patch
+++ /dev/null
@@ -1,374 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~e680-leds-r0.patch 2006-06-06 17:14:06.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-06 17:23:14.000000000 +0200
-@@ -357,6 +357,17 @@
- .num_resources = ARRAY_SIZE(ezx_backlight_resources),
- };
-
-+#ifdef CONFIG_PXA_EZX_E680
-+/*
-+ * E680 LEDs
-+ */
-+static struct platform_device e680led_device = {
-+ .name = "e680-led",
-+ .id = -1,
-+};
-+#endif
-+
-+
- /* keyboard */
-
- #if defined(CONFIG_PXA_EZX_V700)
-@@ -766,6 +777,9 @@
-
- static struct platform_device *devices[] __initdata = {
- &ezx_bp_device,
-+#ifdef CONFIG_PXA_EZX_E680
-+ &e680led_device,
-+#endif
- };
-
- static void __init
---- linux-2.6.16/drivers/leds/Kconfig~e680-leds-r0.patch 2006-06-06 17:14:05.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Kconfig 2006-06-06 17:23:14.000000000 +0200
-@@ -59,6 +59,13 @@
- This option enables support for the LEDs on Sharp Zaurus
- SL-6000 series.
-
-+config LEDS_E680
-+ tristate "LED Support for the Motorola E680(i) GSM Phone"
-+ depends LEDS_CLASS && PXA_EZX_E680
-+ help
-+ This options enables support for the LEDs on the
-+ Motorola E680(i) GSM Phone.
-+
- config LEDS_TRIGGER_TIMER
- tristate "LED Timer Trigger"
- depends LEDS_TRIGGERS
---- linux-2.6.16/drivers/leds/Makefile~e680-leds-r0.patch 2006-06-06 17:14:05.000000000 +0200
-+++ linux-2.6.16/drivers/leds/Makefile 2006-06-06 17:23:14.000000000 +0200
-@@ -10,7 +10,8 @@
- obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o
- obj-$(CONFIG_LEDS_IXP4XX) += leds-ixp4xx-gpio.o
- obj-$(CONFIG_LEDS_TOSA) += leds-tosa.o
-+obj-$(CONFIG_LEDS_E680) += leds-e680.o
-
- # LED Triggers
- obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
--obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
-\ Kein Zeilenumbruch am Dateiende.
-+obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
---- /dev/null 2006-06-06 16:58:36.577045136 +0200
-+++ linux-2.6.16/drivers/leds/leds-e680.c 2006-06-06 17:55:46.000000000 +0200
-@@ -0,0 +1,307 @@
-+/*
-+ * EZX Platform LED Driver for the Motorola E680(i) GSM Phone
-+ *
-+ * Copyright 2006 Vanille-Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * Based on the Motorola 2.4 leds-e680.c and leds-corgi.c by Richard Purdie
-+ *
-+ * 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/config.h>
-+#include <linux/delay.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/arch/hardware.h>
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/ezx-pcap.h>
-+
-+//FIXME move defines to a common header file
-+#define IND_CNTL_R_BUL 46
-+#define IND_CNTL_G_BUL 47
-+#define SSP_PCAP_LED_MASK 0x000fffe0
-+#define SSP_PCAP_LED_SHIFT 5
-+#define GPIO_TC_MM_EN 99
-+
-+static enum led_brightness old_red;
-+static enum led_brightness old_green;
-+static enum led_brightness old_blue;
-+
-+typedef struct {
-+ unsigned char ind_GPIO_red; /*Indicator Red control GPIO 46: 0 active, 1 disactive*/
-+ unsigned char ind_GPIO_green; /*Indicator Green control GPIO 47: 0 active, 1 disactive*/
-+ unsigned char pcap_LEDR_en; /*pcap LEDR_EN bit value: 1 =Red LED(&Green) sink circuit enabled*/
-+ unsigned char pcap_LEDG_en; /*pcap LEDG_EN bit value:1 =Green(->Blue)LED sink circuit enabled*/
-+ unsigned char pcap_LEDR_CTRL; /* 4bits Sets the timing for the red(&Green) LED sink circuit*/
-+ unsigned char pcap_LEDG_CTRL; /* 4bits Sets the timing for the GREEN (->Blue) LED sink circuit*/
-+ unsigned char pcap_LEDR_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDR*/
-+ unsigned char pcap_LEDG_I; /* 2 bits 00 3mA,01 4mA, 10 5mA, 11 9mA, sets the pulsed current level for LEDG*/
-+ unsigned char pcap_SKIP_on; /*1=The ON timing sequence defined by LEDx_CTRL is executed on every other cycle*/
-+} PCAP2_LED_REGISTER_VALUE;
-+
-+const PCAP2_LED_REGISTER_VALUE led_register_value[]=
-+{
-+ /* on/off pulsepower timing intensity */
-+ {0x1,0x1, 0x0,0x0, 0x0,0x0, 0x0,0x0,0x0}, /* OFF */
-+ {0x0,0x1, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* RED */
-+ {0x1,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* GREEN */
-+ {0x0,0x0, 0x1,0x0, 0xc,0x0, 0x1,0x0,0x0}, /* ORANGE = RED + GREEN */
-+ {0x1,0x1, 0x0,0x1, 0x0,0xc, 0x0,0x0,0x0}, /* BLUE */
-+ {0x0,0x1, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_RED = RED + BLUE */
-+ {0x1,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* LIGHT_GREEN = GREEN + BLUE */
-+ {0x0,0x0, 0x1,0x1, 0xc,0xc, 0x1,0x0,0x0}, /* WHITE = RED + GREEN + BLUE */
-+};
-+
-+static void e680led_led_set( enum led_brightness red, enum led_brightness green, enum led_brightness blue )
-+{
-+ printk( KERN_DEBUG "e680led_led_set: red=%d, green=%d, blue=%d", red, green, blue );
-+ unsigned int tempValue = 0;
-+ unsigned int value = 0;
-+ unsigned int stateIndex = 0;
-+ unsigned char gpio_red, gpio_green, ledr_en, ledg_en, ledr_ctrl, ledg_ctrl, ledr_i, ledg_i,skip;
-+
-+ stateIndex = ( ( blue << 2 ) | ( green << 1 ) | ( red ) ) & 0x7;
-+ printk( KERN_DEBUG "LED stateIndex is %d", stateIndex );
-+ gpio_red = led_register_value[stateIndex].ind_GPIO_red & 0x1;
-+ gpio_green = led_register_value[stateIndex].ind_GPIO_green & 0x1;
-+ ledr_en = led_register_value[stateIndex].pcap_LEDR_en & 0x1;
-+ ledg_en = led_register_value[stateIndex].pcap_LEDG_en & 0x1;
-+ ledr_ctrl = led_register_value[stateIndex].pcap_LEDR_CTRL & 0xf;
-+ ledg_ctrl = led_register_value[stateIndex].pcap_LEDG_CTRL & 0xf;
-+ ledr_i = led_register_value[stateIndex].pcap_LEDR_I & 0x3;
-+ ledg_i = led_register_value[stateIndex].pcap_LEDG_I & 0x3;
-+ skip = led_register_value[stateIndex].pcap_SKIP_on & 0x1;
-+
-+ /* disable LEDs */
-+ if( ezx_pcap_read(SSP_PCAP_ADJ_PERIPH_REGISTER,&tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Read Failed\n" );
-+ return;
-+ }
-+ tempValue &= (~SSP_PCAP_LED_MASK);
-+ if( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) != SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_WARNING "LED PCAP Write Failed (Clear Data)\n" );
-+ return;
-+ }
-+
-+ /* configure GPIOs as output */
-+ pxa_gpio_mode(IND_CNTL_R_BUL | GPIO_OUT);
-+ pxa_gpio_mode(IND_CNTL_G_BUL | GPIO_OUT);
-+
-+ //FIXME: Simplify this logic
-+ if ( (gpio_green && gpio_red) )
-+ {
-+ /*Disable Red & Green signal*/
-+ set_GPIO(IND_CNTL_R_BUL); /*IND_CNTL_R_BUL Low active*/
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ clr_GPIO(IND_CNTL_G_BUL); /*IND_CNTL_G_BUL High active*/
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green & Red Disable\n");
-+ } else if ( gpio_green && !gpio_red )
-+ {
-+ /*Green Disable, Red Enable*/
-+ clr_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ clr_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) & (~GPIO_bit(IND_CNTL_G_BUL));
-+
-+ printk( KERN_DEBUG "LED GPIO Green Disable, Red Enable\n");
-+ } else if (gpio_red && !gpio_green )
-+ {
-+ /*Red Disable, Green Enable*/
-+ set_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) | GPIO_bit(IND_CNTL_R_BUL);
-+
-+ set_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red Disable, Green Enable");
-+ }else
-+ {
-+ /*Red & Green enable*/
-+ clr_GPIO(IND_CNTL_R_BUL);
-+ PGSR(IND_CNTL_R_BUL) = PGSR(IND_CNTL_R_BUL) & (~GPIO_bit(IND_CNTL_R_BUL));
-+
-+ set_GPIO(IND_CNTL_G_BUL);
-+ PGSR(IND_CNTL_G_BUL) = PGSR(IND_CNTL_G_BUL) | GPIO_bit(IND_CNTL_G_BUL);
-+ printk( KERN_DEBUG "LED GPIO Red & Green Enable\n");
-+ }
-+
-+ /* Write PCAP LED Peripheral Control Register*/
-+ value = ( ledr_en | (ledg_en <<1) | (ledr_ctrl <<2) | (ledg_ctrl <<6) |
-+ (ledr_i << 10) | (ledg_i <<12) | (skip <<14) ) & 0x7fff;
-+ tempValue |= (value <<SSP_PCAP_LED_SHIFT);
-+
-+ if ( ezx_pcap_write(SSP_PCAP_ADJ_PERIPH_REGISTER,tempValue) == SSP_PCAP_SUCCESS )
-+ {
-+ printk( KERN_DEBUG "LED PCAP Write Success (0x%x :0x%x)\n",tempValue,value);
-+ old_red = red;
-+ old_green = green;
-+ old_blue = blue;
-+ return;
-+ } else {
-+ printk( KERN_DEBUG "LED PCAP Write Failed (State Change)\n");
-+ return;
-+ }
-+}
-+
-+static void e680led_red_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_red_set: %d\n", value );
-+ e680led_led_set( 1 && value, old_green, old_blue );
-+}
-+
-+static void e680led_green_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_green_set: %d\n", value );
-+ e680led_led_set( old_red, 1 && value, old_blue );
-+}
-+
-+static void e680led_blue_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ printk( KERN_DEBUG "e680led_blue_set: %d\n", value );
-+ e680led_led_set( old_red, old_green, 1 && value );
-+}
-+
-+static void e680led_keypad_set(struct led_classdev *led_cdev, enum led_brightness value)
-+{
-+ /* this is not working yet, as there is something else missing */
-+#if 0
-+ printk( KERN_DEBUG "e680led_keypad_set: %d\n", value );
-+
-+ pxa_gpio_mode(GPIO_TC_MM_EN);
-+ GPDR(GPIO_TC_MM_EN) |= GPIO_bit(GPIO_TC_MM_EN);
-+ GPSR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN);
-+
-+ udelay( 100 );
-+
-+ if ( value ) {
-+ GPCR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN);
-+ PGSR3 &= ~GPIO_bit(GPIO_TC_MM_EN);
-+ } else {
-+ GPSR(GPIO_TC_MM_EN) = GPIO_bit(GPIO_TC_MM_EN);
-+ PGSR3 |= GPIO_bit(GPIO_TC_MM_EN);
-+ }
-+#endif
-+}
-+
-+static struct led_classdev e680_red_led = {
-+ .name = "e680:red",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_red_set,
-+};
-+
-+static struct led_classdev e680_green_led = {
-+ .name = "e680:green",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_green_set,
-+};
-+
-+static struct led_classdev e680_blue_led = {
-+ .name = "e680:blue",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_blue_set,
-+};
-+
-+static struct led_classdev e680_keypad_led = {
-+ .name = "e680:keypad",
-+ .default_trigger = "none",
-+ .brightness_set = e680led_keypad_set,
-+};
-+
-+#ifdef CONFIG_PM
-+static int e680led_suspend(struct platform_device *dev, pm_message_t state)
-+{
-+ led_classdev_suspend(&e680_red_led);
-+ led_classdev_suspend(&e680_green_led);
-+ led_classdev_suspend(&e680_blue_led);
-+ led_classdev_suspend(&e680_keypad_led);
-+ return 0;
-+}
-+
-+static int e680led_resume(struct platform_device *dev)
-+{
-+ led_classdev_resume(&e680_red_led);
-+ led_classdev_resume(&e680_green_led);
-+ led_classdev_resume(&e680_blue_led);
-+ led_classdev_resume(&e680_keypad_led);
-+ return 0;
-+}
-+#endif
-+
-+static int e680led_probe(struct platform_device *pdev)
-+{
-+ int ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_red_led);
-+ if (ret < 0)
-+ return ret;
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_green_led);
-+ if (ret < 0)
-+ led_classdev_unregister(&e680_red_led);
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_blue_led);
-+ if (ret < 0) {
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ }
-+
-+ ret = led_classdev_register(&pdev->dev, &e680_keypad_led);
-+ if (ret < 0) {
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ led_classdev_unregister(&e680_blue_led);
-+ }
-+ return ret;
-+}
-+
-+static int e680led_remove(struct platform_device *pdev)
-+{
-+ led_classdev_unregister(&e680_red_led);
-+ led_classdev_unregister(&e680_green_led);
-+ led_classdev_unregister(&e680_blue_led);
-+ led_classdev_unregister(&e680_keypad_led);
-+ return 0;
-+}
-+
-+static struct platform_driver e680led_driver = {
-+ .probe = e680led_probe,
-+ .remove = e680led_remove,
-+#ifdef CONFIG_PM
-+ .suspend = e680led_suspend,
-+ .resume = e680led_resume,
-+#endif
-+ .driver = {
-+ .name = "e680-led",
-+ },
-+};
-+
-+static int __init e680led_init(void)
-+{
-+ return platform_driver_register(&e680led_driver);
-+}
-+
-+static void __exit e680led_exit(void)
-+{
-+ e680led_led_set( 0, 0, 0 );
-+ platform_driver_unregister(&e680led_driver);
-+}
-+
-+module_init(e680led_init);
-+module_exit(e680led_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Motorola E680 LED driver");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/ezx-backlight-r0.patch b/packages/linux/linux-ezx/ezx-backlight-r0.patch
deleted file mode 100644
index db917300c2..0000000000
--- a/packages/linux/linux-ezx/ezx-backlight-r0.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~ezx-backlight-r0.patch 2006-06-07 16:00:29.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-07 16:21:09.000000000 +0200
-@@ -344,17 +344,12 @@
- .pxafb_lcd_power = &pxafb_lcd_power,
- };
-
--
--/* backlight for lcd */
--
--static struct resource ezx_backlight_resources[] = {
--};
--
--static struct platform_device ezx_backlight_device = {
-- .name = "ezx-lcd-backlight",
-+/*
-+ * EZX LCD Backlight
-+ */
-+static struct platform_device ezxbacklight_device = {
-+ .name = "ezx-bl",
- .id = -1,
-- .resource = ezx_backlight_resources,
-- .num_resources = ARRAY_SIZE(ezx_backlight_resources),
- };
-
- #ifdef CONFIG_PXA_EZX_E680
-@@ -786,6 +781,7 @@
-
- static struct platform_device *devices[] __initdata = {
- &ezx_bp_device,
-+ &ezxbacklight_device,
- #ifdef CONFIG_PXA_EZX_E680
- &e680led_device,
- #endif
---- linux-2.6.16/drivers/video/backlight/Kconfig~ezx-backlight-r0.patch 2006-06-07 16:00:28.000000000 +0200
-+++ linux-2.6.16/drivers/video/backlight/Kconfig 2006-06-07 16:00:30.000000000 +0200
-@@ -58,3 +58,12 @@
- If you have a HP Jornada 680, say y to enable the
- backlight driver.
-
-+config BACKLIGHT_EZX
-+ tristate "Motorola EXZ Backlight Driver (A780/E680/E680i)"
-+ depends on BACKLIGHT_DEVICE && PXA_EZX
-+ default y
-+ help
-+ If you have a Motorola A780 or E680(i), say y to enable the
-+ backlight driver.
-+
-+
---- linux-2.6.16/drivers/video/backlight/Makefile~ezx-backlight-r0.patch 2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16/drivers/video/backlight/Makefile 2006-06-07 16:00:30.000000000 +0200
-@@ -5,3 +5,5 @@
- obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
- obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
- obj-$(CONFIG_SHARP_LOCOMO) += locomolcd.o
-+obj-$(CONFIG_BACKLIGHT_EZX) += ezx_bl.o
-+
---- /dev/null 2006-06-07 15:54:31.503752232 +0200
-+++ linux-2.6.16/drivers/video/backlight/ezx_bl.c 2006-06-07 16:51:14.000000000 +0200
-@@ -0,0 +1,148 @@
-+/*
-+ * Backlight Driver for Motorola A780 and E680(i) GSM Phones.
-+ *
-+ * Copyright 2006 Vanille Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * 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/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/spinlock.h>
-+#include <linux/fb.h>
-+#include <linux/backlight.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/ezx.h>
-+
-+#define EZX_MAX_INTENSITY 50
-+#define EZX_DEFAULT_INTENSITY 25
-+
-+static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED;
-+static struct backlight_properties ezxbl_data;
-+static struct backlight_device *ezx_backlight_device;
-+static int current_intensity;
-+
-+static int ezx_send_intensity(struct backlight_device *bd)
-+{
-+ unsigned long flags;
-+ int intensity = bd->props->brightness;
-+
-+ printk( KERN_DEBUG "ezx_set_intensity to %d", intensity );
-+
-+ if (bd->props->power != FB_BLANK_UNBLANK)
-+ intensity = 0;
-+ if (bd->props->fb_blank != FB_BLANK_UNBLANK)
-+ intensity = 0;
-+
-+ spin_lock_irqsave(&bl_lock, flags);
-+
-+ PWM_CTRL0 = 2; /* pre-scaler */
-+ PWM_PWDUTY0 = intensity; /* duty cycle */
-+ PWM_PERVAL0 = 49; /* period */
-+
-+ if (intensity) {
-+ //pxa_set_cken(CKEN0_PWM0, 1);
-+ //FIXME: Set PWM0 GPIO as output
-+ } else {
-+ //pxa_set_cken(CKEN0_PWM0, 0);
-+ //FIXME: Set PWM0 GPIO as input
-+ }
-+
-+ spin_unlock_irqrestore(&bl_lock, flags);
-+ current_intensity = intensity;
-+ return 0;
-+}
-+
-+static int ezx_get_intensity(struct backlight_device *bd)
-+{
-+ return current_intensity;
-+}
-+
-+static int ezx_set_intensity(struct backlight_device *bd)
-+{
-+ return ezx_send_intensity(ezx_backlight_device);
-+}
-+
-+#ifdef CONFIG_PM
-+static int ezx_bl_suspend(struct platform_device *pdev, pm_message_t state)
-+{
-+ //set suspend flag
-+ ezx_set_intensity(ezx_backlight_device);
-+ return 0;
-+}
-+
-+static int ezx_bl_resume(struct platform_device *pdev)
-+{
-+ // set resume flag
-+ ezx_set_intensity(ezx_backlight_device);
-+ return 0;
-+}
-+#else
-+#define ezx_bl_suspend NULL
-+#define ezx_bl_resume NULL
-+#endif
-+
-+static struct backlight_properties ezx_bl_data = {
-+ .owner = THIS_MODULE,
-+ .get_brightness = ezx_get_intensity,
-+ .max_brightness = EZX_MAX_INTENSITY,
-+ .update_status = ezx_set_intensity,
-+};
-+
-+static int __init ezx_bl_probe(struct platform_device *pdev)
-+{
-+ ezx_backlight_device = backlight_device_register ("ezx-bl",
-+ NULL, &ezx_bl_data);
-+ if (IS_ERR (ezx_backlight_device))
-+ return PTR_ERR (ezx_backlight_device);
-+
-+ //ezx_bl_data.requested_brightness = EZX_DEFAULT_INTENSITY;
-+ //ezx_bl_data.requested_power = FB_BLANK_UNBLANK;
-+ //ezx_set_intensity(ezx_backlight_device, ezx_bl_data.requested_brightness);
-+
-+ printk("EZX Backlight Driver Initialized.\n");
-+ return 0;
-+}
-+
-+static int ezx_bl_remove(struct platform_device *pdev)
-+{
-+ backlight_device_unregister(ezx_backlight_device);
-+
-+ printk("EZX Backlight Driver Unloaded.\n");
-+ return 0;
-+}
-+
-+static struct platform_driver ezx_bl_driver = {
-+ .probe = ezx_bl_probe,
-+ .remove = ezx_bl_remove,
-+ .suspend = ezx_bl_suspend,
-+ .resume = ezx_bl_resume,
-+ .driver = {
-+ .name = "ezx-bl",
-+ },
-+};
-+
-+static int __init ezx_bl_init(void)
-+{
-+ return platform_driver_register(&ezx_bl_driver);
-+}
-+
-+static void __exit ezx_bl_exit(void)
-+{
-+ platform_driver_unregister(&ezx_bl_driver);
-+}
-+
-+module_init(ezx_bl_init);
-+module_exit(ezx_bl_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Backlight Driver for Motorola A780|E680(i)");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/ezx-backlight-r1.patch b/packages/linux/linux-ezx/ezx-backlight-r1.patch
deleted file mode 100644
index a277f19344..0000000000
--- a/packages/linux/linux-ezx/ezx-backlight-r1.patch
+++ /dev/null
@@ -1,277 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/arch/arm/mach-pxa/ezx.c~ezx-backlight-r1.patch 2006-06-08 19:33:36.000000000 +0200
-+++ linux-2.6.16/arch/arm/mach-pxa/ezx.c 2006-06-08 19:33:37.000000000 +0200
-@@ -274,34 +274,9 @@
- .udc_command = ezx_udc_command,
- };
-
--/* pxafb */
--
--#define BKLIGHT_PRESCALE 2
--#define BKLIGHT_PERIOD 49
--#define DEFAULT_DUTYCYCLE 25
--#define MAX_DUTYCYCLE (BKLIGHT_PERIOD+1)
--#define MIN_DUTYCYCLE 0
--
--static void pxafb_backlight_power(int on)
--{
-- if (on) {
-- CKEN |= CKEN0_PWM0;
-- PWM_CTRL0 = BKLIGHT_PRESCALE;
-- PWM_PERVAL0 = BKLIGHT_PERIOD;
-- PWM_PWDUTY0 = DEFAULT_DUTYCYCLE;
--
-- GPDR0 |= 0x00010000; //PWM0 is GPIO16
-- pxa_gpio_mode(GPIO16_PWM0_MD);
-- } else {
-- PWM_PWDUTY0 = 0;
-- GAFR0_U &= 0xfffffffc;
-- GPDR0 &= 0xfffeffff; /* set gpio16 (pwm0) as input */
-- CKEN &= ~CKEN0_PWM0;
-- PWM_PWDUTY0 = MIN_DUTYCYCLE;
-- }
--}
--
--//#define mdelay(x) udelay((x)*1000)
-+/*
-+ * EZX PXA Framebuffer
-+ */
-
- static void pxafb_lcd_power(int on)
- {
-@@ -326,35 +301,24 @@
- .xres = 240,
- .yres = 320,
- .bpp = 16,
--
- .hsync_len = 10,
- .left_margin = 20,
- .right_margin = 10,
--
- .vsync_len = 2,
- .upper_margin = 3,
- .lower_margin = 2,
--
- .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
--
- .lccr0 = 0x002008F8,
- .lccr3 = 0x0430FF09,
--
-- .pxafb_backlight_power = &pxafb_backlight_power,
-- .pxafb_lcd_power = &pxafb_lcd_power,
--};
--
--
--/* backlight for lcd */
--
--static struct resource ezx_backlight_resources[] = {
-+ .pxafb_lcd_power= &pxafb_lcd_power,
- };
-
--static struct platform_device ezx_backlight_device = {
-- .name = "ezx-lcd-backlight",
-+/*
-+ * EZX LCD Backlight
-+ */
-+static struct platform_device ezxbacklight_device = {
-+ .name = "ezx-bl",
- .id = -1,
-- .resource = ezx_backlight_resources,
-- .num_resources = ARRAY_SIZE(ezx_backlight_resources),
- };
-
- #ifdef CONFIG_PXA_EZX_E680
-@@ -786,6 +750,7 @@
-
- static struct platform_device *devices[] __initdata = {
- &ezx_bp_device,
-+ &ezxbacklight_device,
- #ifdef CONFIG_PXA_EZX_E680
- &e680led_device,
- #endif
---- linux-2.6.16/drivers/video/backlight/Kconfig~ezx-backlight-r1.patch 2006-06-08 19:33:34.000000000 +0200
-+++ linux-2.6.16/drivers/video/backlight/Kconfig 2006-06-08 19:33:37.000000000 +0200
-@@ -58,3 +58,12 @@
- If you have a HP Jornada 680, say y to enable the
- backlight driver.
-
-+config BACKLIGHT_EZX
-+ tristate "Motorola EXZ Backlight Driver (A780/E680/E680i)"
-+ depends on BACKLIGHT_DEVICE && PXA_EZX
-+ default y
-+ help
-+ If you have a Motorola A780 or E680(i), say y to enable the
-+ backlight driver.
-+
-+
---- linux-2.6.16/drivers/video/backlight/Makefile~ezx-backlight-r1.patch 2006-03-20 06:53:29.000000000 +0100
-+++ linux-2.6.16/drivers/video/backlight/Makefile 2006-06-08 19:33:37.000000000 +0200
-@@ -5,3 +5,5 @@
- obj-$(CONFIG_BACKLIGHT_CORGI) += corgi_bl.o
- obj-$(CONFIG_BACKLIGHT_HP680) += hp680_bl.o
- obj-$(CONFIG_SHARP_LOCOMO) += locomolcd.o
-+obj-$(CONFIG_BACKLIGHT_EZX) += ezx_bl.o
-+
---- /dev/null 2006-06-08 19:04:31.354926880 +0200
-+++ linux-2.6.16/drivers/video/backlight/ezx_bl.c 2006-06-08 20:52:33.000000000 +0200
-@@ -0,0 +1,156 @@
-+/*
-+ * Backlight Driver for Motorola A780 and E680(i) GSM Phones.
-+ *
-+ * Copyright 2006 Vanille Media
-+ *
-+ * Author: Michael Lauer <mickey@Vanille.de>
-+ *
-+ * 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/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/spinlock.h>
-+#include <linux/fb.h>
-+#include <linux/backlight.h>
-+
-+#include <asm/arch/pxa-regs.h>
-+#include <asm/arch/ezx.h>
-+
-+#define EZX_MIN_INTENSITY 00
-+#define EZX_MAX_INTENSITY 50
-+#define EZX_DEFAULT_INTENSITY 25
-+
-+static spinlock_t bl_lock = SPIN_LOCK_UNLOCKED;
-+static struct backlight_device *ezx_backlight_device;
-+static int last_intensity;
-+
-+static int ezxbl_send_intensity(struct backlight_device *bd)
-+{
-+ unsigned long flags;
-+ int intensity = bd->props->brightness;
-+
-+ printk( KERN_DEBUG "ezx_set_intensity to %d\n", intensity );
-+
-+ if (bd->props->power != FB_BLANK_UNBLANK)
-+ intensity = 0;
-+ if (bd->props->fb_blank != FB_BLANK_UNBLANK)
-+ intensity = 0;
-+
-+ spin_lock_irqsave(&bl_lock, flags);
-+
-+ printk( KERN_DEBUG "backlight last intensity was %d, new intensity is %d\n", last_intensity, intensity );
-+
-+ if ( !last_intensity && intensity ) {
-+ printk( KERN_DEBUG "backlight power ON\n" );
-+ PWM_CTRL0 = 2; /* pre-scaler */
-+ PWM_PWDUTY0 = intensity; /* duty cycle */
-+ PWM_PERVAL0 = 49; /* period */
-+ pxa_gpio_mode(GPIO16_PWM0_MD); /* set GPIO16 as alternate function + output */
-+ pxa_set_cken(CKEN0_PWM0, 1); /* clock enable */
-+ }
-+ else if ( last_intensity && !intensity ) {
-+ printk( KERN_DEBUG "backlight power OFF\n" );
-+ PWM_PWDUTY0 = 0;
-+ GAFR0_U &= 0xFFFFFFFC; /* ??? */
-+ pxa_set_cken(CKEN0_PWM0, 0); /* clock disable */
-+ pxa_gpio_mode(GPIO16_PWM0); /* set GPIO16 as input */
-+ } else if ( last_intensity && intensity ) {
-+ printk( KERN_DEBUG "backlight adjusting duty cycle\n" );
-+ PWM_PWDUTY0 = intensity; /* duty cycle */
-+ }
-+ spin_unlock_irqrestore(&bl_lock, flags);
-+ last_intensity = intensity;
-+ return 0;
-+}
-+
-+static int ezxbl_get_intensity(struct backlight_device *bd)
-+{
-+ return last_intensity;
-+}
-+
-+static int ezxbl_set_intensity(struct backlight_device *bd)
-+{
-+ return ezxbl_send_intensity(ezx_backlight_device);
-+}
-+
-+#ifdef CONFIG_PM
-+static int ezxbl_suspend(struct platform_device *pdev, pm_message_t state)
-+{
-+ //set suspend flag
-+ ezxbl_set_intensity(ezx_backlight_device);
-+ return 0;
-+}
-+
-+static int ezxbl_resume(struct platform_device *pdev)
-+{
-+ // set resume flag
-+ ezxbl_set_intensity(ezx_backlight_device);
-+ return 0;
-+}
-+#else
-+#define ezxbl_suspend NULL
-+#define ezxbl_resume NULL
-+#endif
-+
-+static struct backlight_properties ezxbl_data = {
-+ .owner = THIS_MODULE,
-+ .get_brightness = ezxbl_get_intensity,
-+ .max_brightness = EZX_MAX_INTENSITY,
-+ .update_status = ezxbl_set_intensity,
-+};
-+
-+static int __init ezxbl_probe(struct platform_device *pdev)
-+{
-+ ezx_backlight_device = backlight_device_register ("ezx-bl",
-+ NULL, &ezxbl_data);
-+ if (IS_ERR (ezx_backlight_device))
-+ return PTR_ERR (ezx_backlight_device);
-+
-+ ezxbl_data.power = FB_BLANK_UNBLANK;
-+ ezxbl_data.brightness = EZX_DEFAULT_INTENSITY;
-+ ezxbl_set_intensity(ezx_backlight_device);
-+
-+ printk("EZX Backlight Driver Initialized.\n");
-+ return 0;
-+}
-+
-+static int ezxbl_remove(struct platform_device *pdev)
-+{
-+ backlight_device_unregister(ezx_backlight_device);
-+
-+ printk("EZX Backlight Driver Unloaded.\n");
-+ return 0;
-+}
-+
-+static struct platform_driver ezxbl_driver = {
-+ .probe = ezxbl_probe,
-+ .remove = ezxbl_remove,
-+ .suspend = ezxbl_suspend,
-+ .resume = ezxbl_resume,
-+ .driver = {
-+ .name = "ezx-bl",
-+ },
-+};
-+
-+static int __init ezxbl_init(void)
-+{
-+ return platform_driver_register(&ezxbl_driver);
-+}
-+
-+static void __exit ezxbl_exit(void)
-+{
-+ platform_driver_unregister(&ezxbl_driver);
-+}
-+
-+module_init(ezxbl_init);
-+module_exit(ezxbl_exit);
-+
-+MODULE_AUTHOR("Michael Lauer <mickey@Vanille.de>");
-+MODULE_DESCRIPTION("Backlight Driver for Motorola A780|E680(i)");
-+MODULE_LICENSE("GPL");
diff --git a/packages/linux/linux-ezx/pxa-serial-gcc4.diff b/packages/linux/linux-ezx/pxa-serial-gcc4.diff
new file mode 100644
index 0000000000..7f827965e9
--- /dev/null
+++ b/packages/linux/linux-ezx/pxa-serial-gcc4.diff
@@ -0,0 +1,11 @@
+--- /tmp/pxa.c 2006-08-29 10:51:57.000000000 +0200
++++ linux-2.6.16/drivers/serial/pxa.c 2006-08-29 10:52:38.545780000 +0200
+@@ -241,7 +241,7 @@
+ /*
+ * This handles the interrupt from one port.
+ */
+-static inline irqreturn_t
++inline irqreturn_t
+ serial_pxa_irq(int irq, void *dev_id, struct pt_regs *regs)
+ {
+ struct uart_pxa_port *up = (struct uart_pxa_port *)dev_id;
diff --git a/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch b/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch
deleted file mode 100644
index 1dedb981bd..0000000000
--- a/packages/linux/linux-ezx/pxakbd-fix-directkeys.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/input/keyboard/pxakbd.c~pxakbd-fix-directkeys.patch 2006-06-11 00:47:25.000000000 +0200
-+++ linux-2.6.16/drivers/input/keyboard/pxakbd.c 2006-06-12 16:10:03.000000000 +0200
-@@ -20,7 +20,7 @@
- #include <asm/arch/irqs.h>
- #include <asm/arch/pxa-regs.h>
-
--#if 0
-+#if 1
- #define DEBUGP(x, args ...) printk(x, ## args)
- #else
- #define DEBUGP(x, args ...)
-@@ -44,8 +44,7 @@
- unsigned int i;
- int num_pressed = 0;
-
-- kpdk = KPDK & 0x0000000f;
--
-+ kpdk = KPDK & 0x000000ff;
- for (i = 0; i < pxakbd->pd->direct.num; i++) {
- int pressed = 0;
-
-@@ -54,11 +53,12 @@
- num_pressed++;
- DEBUGP("pxakbd: pressed: direct %u\n", i);
- }
--
-- input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i],
-- pressed);
-+ if (pxakbd->pd->direct.keycode[i] != KEY_RESERVED) {
-+ DEBUGP( "pxakbd: sending to input layer: keycode = %d, pressed = %d\n", pxakbd->pd->direct.keycode[i], pressed );
-+ input_report_key(pxakbd->input, pxakbd->pd->direct.keycode[i],
-+ pressed);
-+ }
- }
--
- return num_pressed;
- }
-
-@@ -248,16 +248,6 @@
- set_bit(pxakbd->pd->matrix.keycode[i], input_dev->keybit);
- clear_bit(0, input_dev->keybit);
-
--#if 0
-- input_dev2->evbit[0] = ;
-- input_dev2->keycode = pxakbd->pd->direct.keycode;
-- input_dev2->keycodesize = sizeof(unsigned char);
-- input_dev2->keycodemax = pxakbd->pd->direct.num;
--
-- for (i = 0; i < input_dev2->keycodemax; i++)
-- set_bit(ezxkbd->keycode[i], input_dev2->keybit);
--#endif
--
- if (request_irq(pxakbd->irq, pxakbd_interrupt, 0, "pxakbd", pxakbd)) {
- printk(KERN_ERR "pxakbd: can't request irq %d\n", pxakbd->irq);
- ret = -EBUSY;
-@@ -279,6 +269,7 @@
- KPC_ME | KPC_DE | /* matrix and direct keypad enabled */
- ((pxakbd->pd->matrix.cols-1)<<23) | /* columns */
- ((pxakbd->pd->matrix.rows-1)<<26) | /* rows */
-+ ((pxakbd->pd->direct.num-1)<<6) | /* direct keys */
- KPC_MS_ALL); /* scan all columns */
-
- pxa_set_cken(CKEN19_KEYPAD, 1);
-@@ -375,13 +366,11 @@
- static int pxakbd_remove(struct platform_device *pdev)
- {
- struct pxakbd *pxakbd = platform_get_drvdata(pdev);
--
-+ input_unregister_device(pxakbd->input);
- platform_set_drvdata(pdev, NULL);
- release_resource(pxakbd->res);
- free_irq(pxakbd->irq, pxakbd);
-- input_unregister_device(pxakbd->input);
- kfree(pxakbd);
--
- return 0;
- }
-
diff --git a/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff b/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff
new file mode 100644
index 0000000000..6fd54ece3a
--- /dev/null
+++ b/packages/linux/linux-ezx/sa1100-rtc-gcc4.diff
@@ -0,0 +1,11 @@
+--- /tmp/sa1100-rtc.c 2006-08-29 10:51:48.000000000 +0200
++++ linux-2.6.16/drivers/char/sa1100-rtc.c 2006-08-29 10:52:14.995780000 +0200
+@@ -126,7 +126,7 @@
+ tval->tm_mday = days + 1;
+ }
+
+-static irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
++irqreturn_t rtc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+ {
+ unsigned int rtsr = RTSR;
+
diff --git a/packages/linux/linux-ezx/touchscreen-fix-r0.patch b/packages/linux/linux-ezx/touchscreen-fix-r0.patch
deleted file mode 100644
index 7d19a887fc..0000000000
--- a/packages/linux/linux-ezx/touchscreen-fix-r0.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.6.16/drivers/input/touchscreen/pcap_ts.c~touchscreen-fix-r0 2006-05-30 23:18:22.000000000 +0200
-+++ linux-2.6.16/drivers/input/touchscreen/pcap_ts.c 2006-05-30 23:29:34.000000000 +0200
-@@ -126,10 +126,7 @@
- if (ret < 0)
- return ret;
-
-- if (tmp & 0x00400000)
-- return -EIO;
--
-- if (pcap_ts->read_state == COORDINATE) {
-+ if (pcap_ts->read_state == COORDINATE && !(tmp & 0x00400000)) {
- pcap_ts->x = (tmp & SSP_PCAP_ADD1_VALUE_MASK);
- pcap_ts->y = (tmp & SSP_PCAP_ADD2_VALUE_MASK)
- >>SSP_PCAP_ADD2_VALUE_SHIFT;
diff --git a/packages/linux/linux-ezx_2.6.16.13.bb b/packages/linux/linux-ezx_2.6.16.13.bb
index f326321217..6da8a32a21 100644
--- a/packages/linux/linux-ezx_2.6.16.13.bb
+++ b/packages/linux/linux-ezx_2.6.16.13.bb
@@ -5,8 +5,8 @@ HOMEPAGE = "http://www.openezx.org"
MAINTAINER = "Michael 'Mickey' Lauer <mickey@vanille.de>"
LICENSE = "GPL"
DEPENDS += "quilt-native"
-EZX = "ezx6"
-PR = "${EZX}-r13"
+EZX = "ezx7"
+PR = "${EZX}-r0"
inherit kernel
@@ -17,33 +17,12 @@ RPSRC = "http://www.rpsys.net/openzaurus/patches/archive"
# source and patches
#
SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2 \
- http://people.openezx.org/stefan/patches/patches-2.6.16-2.6.16.13-exz6-symlink-fix.tar.bz2 \
+ http://people.openezx.org/stefan/patches/patches-2.6.16-2.6.16.13-ezx7.tar.bz2 \
\
- ${RPSRC}/led_core-r15.patch;patch=1 \
- ${RPSRC}/led_triggers-r14.patch;patch=1 \
- ${RPSRC}/led_trig_timer-r8.patch;patch=1 \
- ${RPSRC}/led_trig_sharpsl_pm-r5.patch;patch=1 \
- ${RPSRC}/led_zaurus-r10.patch;patch=1 \
- ${RPSRC}/led_locomo-r7.patch;patch=1 \
- ${RPSRC}/led_ixp4xx-r2.patch;patch=1 \
- ${RPSRC}/led_tosa-r5.patch;patch=1 \
- ${RPSRC}/led_ide-r6.patch;patch=1 \
- ${RPSRC}/led_nand-r3.patch;patch=1 \
- ${RPSRC}/corgi_bl_cleanup-r3.patch;patch=1 \
- ${RPSRC}/corgi_bl_generic-r3.patch;patch=1 \
- ${RPSRC}/backlight_sysfs_fix-r0.patch;patch=1 \
- \
- file://touchscreen-fix-r0.patch;patch=1 \
- \
- file://e680-disable-boomer-HACK.patch;patch=1 \
- \
- file://e680-leds-r1.patch;patch=1 \
- file://a780-leds-r0.patch;patch=1 \
- file://ezx-backlight-r1.patch;patch=1 \
- file://e680-fix-keypad.patch;patch=1 \
- file://pxakbd-fix-directkeys.patch;patch=1 \
- \
- file://logo_linux_clut224.ppm \
+ file://sa1100-rtc-gcc4.diff;patch=1 \
+ file://pxa-serial-gcc4.diff;patch=1 \
+ \
+ file://logo_linux_clut224.ppm \
file://defconfig-a780 \
file://defconfig-e680"
S = "${WORKDIR}/linux-2.6.16"
@@ -79,7 +58,6 @@ do_ezxpatch() {
}
do_configure() {
- mv ${S}/.config harald.config
install -m 0644 ${WORKDIR}/logo_linux_clut224.ppm drivers/video/logo/logo_linux_clut224.ppm
if [ ! -e ${WORKDIR}/defconfig-${MACHINE} ]; then
diff --git a/packages/linux/linux-omap1_2.6.12-rc2.bb b/packages/linux/linux-omap1_2.6.12-rc2.bb
index 7ea9e16091..46e7d0ba95 100644
--- a/packages/linux/linux-omap1_2.6.12-rc2.bb
+++ b/packages/linux/linux-omap1_2.6.12-rc2.bb
@@ -14,7 +14,7 @@ KERNEL_IMAGETYPE = "vmlinux"
KERNEL_OUTPUT = "arch/${ARCH}/boot/compressed/${KERNEL_IMAGETYPE}"
KERNEL_CCSUFFIX = "-3.3.4"
-#DEPENDS = "uboot"
+DEPENDS = "u-boot"
inherit kernel
@@ -25,13 +25,17 @@ do_configure_prepend() {
oe_runmake oldconfig
}
-do_deploy_omap5912osk() {
- install -d ${DEPLOY_DIR_IMAGE}
- arm-linux-objcopy -O binary -R .note -R .comment -S arch/arm/boot/compressed/vmlinux ${DEPLOY_DIR}/linux.bin
- gzip -f -9 ${DEPLOY_DIR}/linux.bin
- mkimage -A arm -O linux -T kernel -C gzip -a 0x10c08000 -e 0x10c08000 -n "OE" -d ${DEPLOY_DIR}/linux.bin.gz ${DEPLOY_DIR}/uImage_bb.cc
- cp ${DEPLOY_DIR}/uImage_bb.cc /tftpboot
-# install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+do_deploy() {
+ if [ "${MACHINE}" == "omap5912osk" ]; then
+ install -d ${DEPLOY_DIR_IMAGE}
+ arm-linux-objcopy -O binary -R .note -R .comment -S arch/arm/boot/compressed/vmlinux ${DEPLOY_DIR_IMAGE}/linux.bin
+ gzip -f -9 ${DEPLOY_DIR_IMAGE}/linux.bin
+ mkimage -A arm -O linux -T kernel -C gzip -a 0x10c08000 -e 0x10c08000 -n "OE" -d ${DEPLOY_DIR_IMAGE}/linux.bin.gz ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+ rm ${DEPLOY_DIR_IMAGE}/linux.bin.gz
+
+# cp ${DEPLOY_DIR}/uImage_bb.cc /tftpboot
+# install -m 0644 arch/${ARCH}/boot/${KERNEL_IMAGETYPE} ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+ fi
}
diff --git a/packages/linux/linux-omap1_2.6.x+git.bb b/packages/linux/linux-omap1_2.6.x+git.bb
new file mode 100644
index 0000000000..7a5ff66af2
--- /dev/null
+++ b/packages/linux/linux-omap1_2.6.x+git.bb
@@ -0,0 +1,39 @@
+PR = "r0"
+SECTION = "kernel"
+DESCRIPTION = "Linux kernel for OMAP processors"
+LICENSE = "GPL"
+
+SRC_URI = "git://source.mvista.com/git/linux-omap-2.6.git;protocol=git"
+
+S = "${WORKDIR}/git"
+
+KERNEL_IMAGETYPE = "vmlinux"
+KERNEL_OUTPUT = "arch/${ARCH}/boot/compressed/${KERNEL_IMAGETYPE}"
+
+DEPENDS = "u-boot"
+
+inherit kernel
+
+COMPATIBLE_HOST = 'arm.*-linux'
+
+do_configure_prepend() {
+ if [ "${MACHINE}" == "omap5912osk" ] ; then
+ oe_runmake omap_osk_5912_defconfig
+ fi
+
+}
+
+do_deploy() {
+ if [ "${MACHINE}" == "omap5912osk" ]; then
+ install -d ${DEPLOY_DIR_IMAGE}
+ arm-linux-objcopy -O binary -R .note -R .comment -S arch/arm/boot/compressed/vmlinux ${DEPLOY_DIR_IMAGE}/linux.bin
+ gzip -f -9 ${DEPLOY_DIR_IMAGE}/linux.bin
+ mkimage -A arm -O linux -T kernel -C gzip -a 0x10c08000 -e 0x10c08000 -n "OE" -d ${DEPLOY_DIR_IMAGE}/linux.bin.gz ${DEPLOY_DIR_IMAGE}/${KERNEL_IMAGETYPE}-${MACHINE}-${DATETIME}.bin
+ rm ${DEPLOY_DIR_IMAGE}/linux.bin.gz
+ fi
+}
+
+
+do_deploy[dirs] = "${S}"
+
+addtask deploy before do_build after do_compile
diff --git a/packages/linux/linux-openzaurus-2.6.17/tosa-lcdnoise-r0.patch b/packages/linux/linux-openzaurus-2.6.17/tosa-lcdnoise-r0.patch
new file mode 100644
index 0000000000..cb014fb8bc
--- /dev/null
+++ b/packages/linux/linux-openzaurus-2.6.17/tosa-lcdnoise-r0.patch
@@ -0,0 +1,157 @@
+Index: linux-tosa/arch/arm/mach-pxa/tosa.c
+===================================================================
+--- linux-tosa.orig/arch/arm/mach-pxa/tosa.c 2006-08-29 16:52:59.000000000 +0100
++++ linux-tosa/arch/arm/mach-pxa/tosa.c 2006-08-29 16:55:25.959706776 +0100
+@@ -2,6 +2,7 @@
+ * Support for Sharp SL-C6000x PDAs
+ * Model: (Tosa)
+ *
++ * Copyright (c) 2006 Wolfson Microelectronics PLC.
+ * Copyright (c) 2005 Dirk Opfer
+ *
+ * Based on code written by Sharp/Lineo for 2.4 kernels
+@@ -46,6 +47,8 @@
+ #include <asm/hardware/tmio.h>
+ #include <asm/mach/sharpsl_param.h>
+
++#include <linux/wm97xx.h>
++
+ #include "generic.h"
+
+ /*
+@@ -428,6 +431,16 @@
+ },
+ };
+
++
++/*
++ * Tosa Touchscreen device
++ */
++
++static struct wm97xx_machinfo tosa_ts_machinfo = {
++ .get_hsync_time = tosa_get_hsync_time,
++ .wait_hsync = tosa_wait_hsync,
++};
++
+ /*
+ * Tosa Blueooth
+ */
+@@ -457,6 +470,7 @@
+ GPSR(TOSA_GPIO_ON_RESET) = GPIO_bit(TOSA_GPIO_ON_RESET);
+
+ mdelay(1000);
++ wm97xx_unset_machinfo();
+ }
+
+ static void tosa_restart(void)
+@@ -501,6 +515,8 @@
+ platform_scoop_config = &tosa_pcmcia_config;
+
+ platform_add_devices(devices, ARRAY_SIZE(devices));
++
++ wm97xx_set_machinfo(&tosa_ts_machinfo);
+ }
+
+ static void __init fixup_tosa(struct machine_desc *desc,
+Index: linux-tosa/arch/arm/mach-pxa/tosa_lcd.c
+===================================================================
+--- linux-tosa.orig/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:52:59.000000000 +0100
++++ linux-tosa/arch/arm/mach-pxa/tosa_lcd.c 2006-08-29 16:55:32.818664056 +0100
+@@ -1,6 +1,7 @@
+ /*
+ * LCD / Backlight control code for Sharp SL-6000x (tosa)
+ *
++ * Copyright (c) 2006 Wolfson Microelectronics PLC.
+ * Copyright (c) 2005 Dirk Opfer
+ *
+ * This program is free software; you can redistribute it and/or modify
+@@ -59,6 +60,8 @@
+ static struct ssp_dev tosa_nssp_dev;
+ static struct ssp_state tosa_nssp_state;
+ static spinlock_t tosa_nssp_lock;
++static int blanked;
++static unsigned long hsync_time;
+
+ static unsigned short normal_i2c[] = {
+ DAC_BASE,
+@@ -130,6 +133,17 @@
+ pxa_nssp_output(TG_GPOSR,0x02); /* GPOS0=powercontrol, GPOS1=GPIO, GPOS2=TCTL */
+ }
+
++static unsigned long calc_hsync_time(const struct fb_videomode *mode) {
++ /* The 25 and 44 'magic numbers' are from Sharp's 2.4 patches */
++ if (mode->yres == 640) {
++ return 25;
++ }
++ if (mode->yres == 320) {
++ return 44;
++ }
++ return 0;
++}
++
+ static void tosa_lcd_tg_on(struct device *dev, const struct fb_videomode *mode)
+ {
+ const int value = TG_REG0_COLOR | TG_REG0_UD | TG_REG0_LR;
+@@ -154,6 +168,8 @@
+ /* set common voltage */
+ i2c_smbus_write_byte_data(tosa_i2c_dac, DAC_CH1, comadj);
+
++ blanked = 0;
++ hsync_time = calc_hsync_time(mode);
+ }
+
+ static void tosa_lcd_tg_off(struct device *dev)
+@@ -172,6 +188,8 @@
+
+ /* L3V Off */
+ reset_scoop_gpio( &tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC3693_L3V_ON);
++
++ blanked = 1;
+ }
+
+ static int tosa_detect_client(struct i2c_adapter* adapter, int address, int kind) {
+@@ -238,6 +256,23 @@
+ return 0;
+ }
+
++unsigned long tosa_get_hsync_time(void)
++{
++/* This method should eventually contain the correct algorithm for calculating
++ the hsync_time */
++ if (blanked)
++ return 0;
++ else
++ return hsync_time;
++}
++
++void tosa_wait_hsync(void)
++{
++ /* Waits for a rising edge on the VGA line */
++ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) == 0);
++ while((GPLR(TOSA_GPIO_VGA_LINE) & GPIO_bit(TOSA_GPIO_VGA_LINE)) != 0);
++}
++
+ static struct i2c_driver tosa_driver={
+ .id = TOSA_LCD_I2C_DEVICEID,
+ .attach_adapter = tosa_attach_adapter,
+Index: linux-tosa/include/asm-arm/arch-pxa/tosa.h
+===================================================================
+--- linux-tosa.orig/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:52:59.000000000 +0100
++++ linux-tosa/include/asm-arm/arch-pxa/tosa.h 2006-08-29 16:55:12.442761664 +0100
+@@ -1,6 +1,7 @@
+ /*
+ * Hardware specific definitions for Sharp SL-C6000x series of PDAs
+ *
++ * Copyright (c) 2006 Wolfson Microelectronics PLC.
+ * Copyright (c) 2005 Dirk Opfer
+ *
+ * Based on Sharp's 2.4 kernel patches
+@@ -187,4 +188,8 @@
+ extern struct platform_device tosascoop_jc_device;
+ extern struct platform_device tosascoop_device;
+ extern struct platform_device tc6393_device;
++
++unsigned long tosa_get_hsync_time(void);
++void tosa_wait_hsync(void);
++
+ #endif /* _ASM_ARCH_TOSA_H_ */
diff --git a/packages/linux/linux-openzaurus-2.6.17/wm97xx-lcdnoise-r0.patch b/packages/linux/linux-openzaurus-2.6.17/wm97xx-lcdnoise-r0.patch
new file mode 100644
index 0000000000..191de3af22
--- /dev/null
+++ b/packages/linux/linux-openzaurus-2.6.17/wm97xx-lcdnoise-r0.patch
@@ -0,0 +1,208 @@
+Index: linux-tosa/drivers/input/touchscreen/wm9712.c
+===================================================================
+--- linux-tosa.orig/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:36.008543280 +0100
++++ linux-tosa/drivers/input/touchscreen/wm9712.c 2006-08-29 16:52:50.923275896 +0100
+@@ -1,7 +1,7 @@
+ /*
+ * wm9712.c -- Codec driver for Wolfson WM9712 AC97 Codecs.
+ *
+- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
++ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
+ * Author: Liam Girdwood
+ * liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
+ * Parts Copyright : Ian Molton <spyro@f2s.com>
+@@ -13,6 +13,12 @@
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
++ * Revision history
++ * 4th Jul 2005 Initial version.
++ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
++ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
++ * touchscreen interference.
++ *
+ */
+
+ #include <linux/module.h>
+@@ -28,6 +34,10 @@
+ #define WM9705_VERSION "0.60"
+ #define DEFAULT_PRESSURE 0xb0c0
+
++#define CCNT(a) asm volatile ("mrc p14, 0, %0, C1, C1, 0" : "=r"(a))
++#define CCNT_ON() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
++#define CCNT_OFF() asm("mcr p14, 0, %0, C0, C0, 0" : : "r"(1))
++
+ /*
+ * Debug
+ */
+@@ -243,6 +253,36 @@
+ return wm->dig[2] & WM9712_PDEN;
+ }
+
++
++#ifdef CONFIG_MACH_TOSA
++/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
++ * before sampling the Y axis of the touchscreen */
++static inline void wm9712_lcd_sync_on(struct wm97xx* wm, int adcsel) {
++ unsigned long timer1 = 0, timer2 = 0, wait_time = 0;
++ if (adcsel == WM97XX_ADCSEL_Y) {
++ wait_time = wm97xx_calc_lcd_waittime(wm);
++
++ CCNT_ON();
++
++ if (wait_time) {
++ /* wait for LCD rising edge */
++ wm_machinfo->wait_hsync();
++ /* get clock */
++ CCNT(timer1);
++ CCNT(timer2);
++
++ while ((timer2 - timer1) < wait_time) {
++ CCNT(timer2);
++ }
++ }
++ }
++}
++
++static inline void wm9712_lcd_sync_off(void) {
++ CCNT_OFF();
++}
++#endif
++
+ /*
+ * Read a sample from the WM9712 adc in polling mode.
+ */
+@@ -260,6 +300,9 @@
+ /* set up digitiser */
+ if (adcsel & 0x8000)
+ adcsel = ((adcsel & 0x7fff) + 3) << 12;
++ #ifdef CONFIG_MACH_TOSA
++ wm9712_lcd_sync_on(wm, adcsel);
++ #endif
+ wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, adcsel | WM97XX_POLL | WM97XX_DELAY(delay));
+
+ /* wait 3 AC97 time slots + delay for conversion */
+@@ -282,6 +325,10 @@
+
+ *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
+
++ #ifdef CONFIG_MACH_TOSA
++ wm9712_lcd_sync_off();
++ #endif
++
+ /* check we have correct sample */
+ if ((*sample & WM97XX_ADCSEL_MASK) != adcsel) {
+ dbg ("adc wrong sample, read %x got %x", adcsel,
+@@ -303,11 +350,12 @@
+ static int wm9712_poll_touch(struct wm97xx* wm, struct wm97xx_data *data)
+ {
+ int rc;
+-
+ if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X, &data->x)) != RC_VALID)
+ return rc;
++
+ if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y)) != RC_VALID)
+ return rc;
++
+ if (pil && !five_wire) {
+ if ((rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES, &data->p)) != RC_VALID)
+ return rc;
+Index: linux-tosa/drivers/input/touchscreen/wm97xx-core.c
+===================================================================
+--- linux-tosa.orig/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:36.008543280 +0100
++++ linux-tosa/drivers/input/touchscreen/wm97xx-core.c 2006-08-29 16:52:50.924275744 +0100
+@@ -2,7 +2,7 @@
+ * wm97xx-core.c -- Touch screen driver core for Wolfson WM9705, WM9712
+ * and WM9713 AC97 Codecs.
+ *
+- * Copyright 2003, 2004, 2005 Wolfson Microelectronics PLC.
++ * Copyright 2003, 2004, 2005, 2006 Wolfson Microelectronics PLC.
+ * Author: Liam Girdwood
+ * liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
+ * Parts Copyright : Ian Molton <spyro@f2s.com>
+@@ -67,6 +67,9 @@
+ * GPIOs) and 2.6 power management.
+ * 29th Nov 2004 Added WM9713 support.
+ * 4th Jul 2005 Moved codec specific code out to seperate files.
++ * 29th Aug 2006 Mike Arthur <mike@mikearthur.co.uk>
++ * Added fixes for Sharp SL-6000 (Tosa) LCD noise causing
++ * touchscreen interference.
+ */
+
+ #include <linux/module.h>
+@@ -94,6 +97,7 @@
+ static DECLARE_MUTEX(gpio_sem);
+ static LIST_HEAD(wm97xx_misc_list);
+ static struct wm97xx* wm_codec = NULL;
++struct wm97xx_machinfo *wm_machinfo;
+
+ /*
+ * WM97xx - enable/disable AUX ADC sysfs
+@@ -832,6 +836,23 @@
+ mdev->remove(wm_codec);
+ }
+
++#ifdef CONFIG_MACH_TOSA
++/* On the Sharp SL-6000 (Tosa), due to a noisy LCD, we need to perform a wait
++ * before sampling the Y axis of the touchscreen */
++unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm) {
++ unsigned long hsync_time = wm_machinfo->get_hsync_time();
++ return hsync_time;
++}
++
++void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo) {
++ wm_machinfo = machinfo;
++}
++
++void wm97xx_unset_machinfo() {
++ wm_machinfo = NULL;
++}
++#endif
++
+ static struct device_driver wm97xx_driver = {
+ .name = "ac97",
+ .bus = &ac97_bus_type,
+@@ -861,6 +882,9 @@
+ EXPORT_SYMBOL_GPL(wm97xx_reg_write);
+ EXPORT_SYMBOL_GPL(wm97xx_register_misc_dev);
+ EXPORT_SYMBOL_GPL(wm97xx_unregister_misc_dev);
++EXPORT_SYMBOL_GPL(wm97xx_calc_lcd_waittime);
++EXPORT_SYMBOL_GPL(wm97xx_set_machinfo);
++EXPORT_SYMBOL_GPL(wm97xx_unset_machinfo);
+
+ module_init(wm97xx_init);
+ module_exit(wm97xx_exit);
+Index: linux-tosa/include/linux/wm97xx.h
+===================================================================
+--- linux-tosa.orig/include/linux/wm97xx.h 2006-08-29 16:52:36.008543280 +0100
++++ linux-tosa/include/linux/wm97xx.h 2006-08-29 16:52:50.924275744 +0100
+@@ -207,6 +207,7 @@
+
+ struct wm97xx;
+ extern struct wm97xx_codec_drv wm97xx_codec;
++extern struct wm97xx_machinfo *wm_machinfo;
+
+ /*
+ * Codec driver interface - allows mapping to WM9705/12/13 and newer codecs
+@@ -253,6 +254,11 @@
+ struct list_head list;
+ };
+
++struct wm97xx_machinfo {
++ unsigned long (*get_hsync_time)(void);
++ void (*wait_hsync)(void);
++};
++
+ int wm97xx_register_misc_dev(struct wm97xx_misc_dev* mdev);
+ void wm97xx_unregister_misc_dev(struct wm97xx_misc_dev* mdev);
+
+@@ -281,4 +287,9 @@
+ int wm97xx_acc_startup(struct wm97xx* wm);
+ void wm97xx_acc_shutdown(struct wm97xx* wm);
+
++
++unsigned long wm97xx_calc_lcd_waittime(struct wm97xx *wm);
++void wm97xx_set_machinfo(struct wm97xx_machinfo *machinfo);
++void wm97xx_unset_machinfo(void);
++
+ #endif
diff --git a/packages/linux/linux-openzaurus_2.6.17+git.bb b/packages/linux/linux-openzaurus_2.6.17+git.bb
index f8fd9432ec..1ebd1023fb 100644
--- a/packages/linux/linux-openzaurus_2.6.17+git.bb
+++ b/packages/linux/linux-openzaurus_2.6.17+git.bb
@@ -1,6 +1,6 @@
require linux-openzaurus.inc
-PR = "r8"
+PR = "r10"
DEFAULT_PREFERENCE = "-1"
@@ -15,15 +15,19 @@ DEFAULT_PREFERENCE = "-1"
# Patches submitted upstream are towards top of this list
# Hacks should clearly named and at the bottom
# ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc2/2.6.14-rc2-mm1/2.6.14-rc2-mm1.bz2;patch=1 \
-SRC_URI = "git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;tag=ab36ce8c77403da4362de0447d188cd049d52d81 \
- ${RPSRC}/alsa/asoc-v0.11pre2.patch;patch=1 \
- ${RPSRC}/asoc_updates-r1.patch;patch=1 \
- ${RPSRC}/hx2750_base-r25.patch;patch=1 \
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git;protocol=git;tag=ef7d1b244fa6c94fb76d5f787b8629df64ea4046 \
+ ${RPSRC}/mtd_fix_chipops_locking-r0.patch;patch=1 \
+ ${RPSRC}/spectrumcs_fix-r0.patch;patch=1 \
+ ${RPSRC}/alsa/asoc-v0.11pre12.patch;patch=1 \
+ ${RPSRC}/asoc_makefile-r1.patch;patch=1 \
+ ${RPSRC}/alsa/asoc_platform_dev_fix-r0.patch;patch=1 \
+ ${RPSRC}/asoc_poodle_morehack-r0.patch;patch=1 \
+ ${RPSRC}/hx2750_base-r27.patch;patch=1 \
${RPSRC}/hx2750_bl-r7.patch;patch=1 \
${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \
${RPSRC}/pxa_keys-r5.patch;patch=1 \
${RPSRC}/tsc2101-r12.patch;patch=1 \
- ${RPSRC}/hx2750_test1-r3.patch;patch=1 \
+ ${RPSRC}/hx2750_test1-r4.patch;patch=1 \
${RPSRC}/pxa_timerfix-r0.patch;patch=1 \
${RPSRC}/input_power-r5.patch;patch=1 \
${RPSRC}/pxa25x_cpufreq-r1.patch;patch=1 \
@@ -35,7 +39,7 @@ SRC_URI = "git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gi
${RPSRC}/locomo_kbd_tweak-r0.patch;patch=1 \
${RPSRC}/poodle_pm-r1.patch;patch=1 \
${RPSRC}/pxafb_changeres-r1.patch;patch=1 \
- ${RPSRC}/poodle_audio-r0.patch;patch=1 \
+ ${RPSRC}/poodle_audio-r1.patch;patch=1 \
${RPSRC}/nand_sharpsl_fix-r0.patch;patch=1 \
file://serial-add-support-for-non-standard-xtals-to-16c950-driver.patch;patch=1 \
file://hrw-pcmcia-ids-r4.patch;patch=1 \
@@ -72,27 +76,39 @@ SRC_URI = "git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gi
# (Pavel Machek's git tree has updated versions of this?)
# ${JLSRC}/zaurus-lcd-2.6.11.diff.gz;patch=1
+# These patches are extracted from Pavel Machek's git tree
+# (diff against vanilla kernel)
+SRC_URI_append_collie = "\
+ ${DOSRC}/collie/mtd-sharp-flash-hack-r0.patch;patch=1 \
+ ${DOSRC}/collie/collie-r0.patch;patch=1 \
+ ${DOSRC}/collie/locomolcd-backlight-r0.patch;patch=1 \
+ ${DOSRC}/collie/ucb1x00-touch-audio-r0.patch;patch=1 \
+ ${DOSRC}/collie/collie-mcp-r0.patch;patch=1 \
+ ${DOSRC}/collie/sa1100-udc-r0.patch;patch=1 \
+# ${DOSRC}/collie/collie-pm-r1.patch;patch=1 \
+ "
+
SRC_URI_append_tosa = "\
${CHSRC}/usb-ohci-hooks-r1.patch;patch=1 \
${CHSRC}/tmio-core-r4.patch;patch=1 \
- ${CHSRC}/tmio-tc6393-r5.patch;patch=1 \
+ ${DOSRC}/temp/tmio-tc6393-r6.patch;patch=1 \
${CHSRC}/tmio-nand-r5.patch;patch=1 \
- ${CHSRC}/tmio-ohci-r3.patch;patch=1 \
+ ${DOSRC}/temp/tmio-ohci-r4.patch;patch=1 \
${CHSRC}/tmio-fb-r6.patch;patch=1 \
- ${DOSRC}/tosa-keyboard-r14.patch;patch=1 \
+ ${DOSRC}/tosa-keyboard-r17.patch;patch=1 \
${DOSRC}/tosa-pxaac97-r6.patch;patch=1 \
${DOSRC}/tosa-tmio-r6.patch;patch=1 \
- ${DOSRC}/tosa-power-r15.patch;patch=1 \
- ${DOSRC}/tosa-tmio-lcd-r7.patch;patch=1 \
- ${DOSRC}/tosa-bluetooth-r6.patch;patch=1 \
+ ${DOSRC}/tosa-power-r17.patch;patch=1 \
+ ${DOSRC}/tosa-tmio-lcd-r8.patch;patch=1 \
+ ${DOSRC}/tosa-bluetooth-r8.patch;patch=1 \
${DOSRC}/wm97xx-lg7-r0.patch;patch=1 \
- ${DOSRC}/wm9712-suspend-cold-res-r0.patch;patch=1 \
+ ${DOSRC}/wm9712-suspend-cold-res-r1.patch;patch=1 \
${DOSRC}/sharpsl-pm-postresume-r0.patch;patch=1 \
${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \
${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \
- ${DOSRC}/wm9712-reset-loop-r0.patch;patch=1 \
- ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
+ ${DOSRC}/wm9712-reset-loop-r1.patch;patch=1"
+# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
S = "${WORKDIR}/git"
diff --git a/packages/linux/linux-openzaurus_2.6.17.bb b/packages/linux/linux-openzaurus_2.6.17.bb
index 950f9fd787..ef03c0e434 100644
--- a/packages/linux/linux-openzaurus_2.6.17.bb
+++ b/packages/linux/linux-openzaurus_2.6.17.bb
@@ -1,6 +1,6 @@
require linux-openzaurus.inc
-PR = "r16"
+PR = "r21"
# Handy URLs
# git://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git \
@@ -25,10 +25,13 @@ SRC_URI = "http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.17.tar.bz2 \
${RPSRC}/logo_rotate_fix-r1.patch;patch=1;status=merged \
${RPSRC}/collie_frontlight-r6.patch;patch=1;status=merged \
${RPSRC}/input_modalias_fix-r0.patch;patch=1;status=merged \
+ ${RPSRC}/spectrumcs_fix-r0.patch;patch=1 \
file://00-hostap.patch;patch=1;status=merged \
file://10-pcnet.patch;patch=1;status=merged \
- ${RPSRC}/asoc-v0.11pre5-oz.patch;patch=1 \
- ${RPSRC}/asoc_fixes2-r2.patch;patch=1 \
+ ${RPSRC}/alsa/asoc-v0.11pre12.patch;patch=1 \
+ ${RPSRC}/asoc_makefile-r0.patch;patch=1 \
+ ${RPSRC}/alsa/asoc_platform_dev_fix-r0.patch;patch=1 \
+ ${RPSRC}/asoc_poodle_morehack-r0.patch;patch=1 \
${RPSRC}/hx2750_base-r27.patch;patch=1 \
${RPSRC}/hx2750_bl-r7.patch;patch=1 \
${RPSRC}/hx2750_pcmcia-r2.patch;patch=1 \
@@ -112,7 +115,9 @@ SRC_URI_append_tosa = "\
${DOSRC}/sharpsl-pm-postresume-r0.patch;patch=1 \
${DOSRC}/wm97xx-dig-restore-r0.patch;patch=1 \
${DOSRC}/wm97xx-miscdevs-resume-r0.patch;patch=1 \
- ${DOSRC}/wm9712-reset-loop-r1.patch;patch=1"
+ ${DOSRC}/wm9712-reset-loop-r1.patch;patch=1 \
+ file://tosa-lcdnoise-r0.patch;patch=1 \
+ file://wm97xx-lcdnoise-r0.patch;patch=1 "
# ${DOSRC}/tosa-asoc-r1.patch;patch=1 "
S = "${WORKDIR}/linux-2.6.17"