diff -ruN -X X hnd-linux-trunk/arch/arm/armboot/armboot-asm.S hnd-cleanup/arch/arm/armboot/armboot-asm.S
--- hnd-linux-trunk/arch/arm/armboot/armboot-asm.S	2007-09-17 22:44:24.000000000 +0400
+++ hnd-cleanup/arch/arm/armboot/armboot-asm.S	1970-01-01 03:00:00.000000000 +0300
@@ -1,115 +0,0 @@
-@
-@  lab/modules/armboot-asm.S
-@
-@  Copyright (C) 2003 Joshua Wise
-@  Bootloader port to Linux Kernel, October 07, 2003
-@
-@  ARMBoot kernel loader
-@  assembler routines
-
-	.globl	armboot_asm
-	.globl	relocdone
-
-armboot_asm:
-	mov	r7,r0		@ Backup registers.
-	mov	r8,r1
-	mov	r10,r2
-	mov	r9,r3
-	
-	msr 	cpsr, #0xd3	@ Disable IRQs
-
-	mov	r0,#0x4000	@ MMU stuff taken from Demo's code.
-	sub	r0,r0,#1
-	mcr	p15, 0, r0, c7, c10, 4
-	mrc	p15, 0, r0, c2, c0, 0
-	mov	r0, r0
-	mrc	p15, 0, r3, c1, c0, 0
-	mov	r3, #0x120
-	mcr	p15, 0, r3, c1, c0, 0
-	mrc	p15, 0, r0, c2, c0, 0
-	mov	r0,r0		@ MMU is now disabled.
-	mov	pc,r8		@ Jump into our relocated self.
-
-relocdone:			@ Welcome to relocatedland - the MMU is off.
-	mov	r0,r7		@ Restore zapped register
-	
-	@ At this point, the MMU is off, and in r0 is the address
-	@ of a list of blocks we need to relocate.
-	ldr	r1,[r0],#4
-	ldr	r2,[r0],#4
-	ldr	r3,[r0],#4
-	ldr	r4,[r0],#4
-	
-	@ r1 == old address
-	@ r2 == new address
-	@ r3 == size
-	@ r4 == if this is the last block
-	
-cploop:	cmp	r3,#0		@ Out of bytes to relocate?
-	beq	cpdone		@ All done!
-	ldr	r5,[r1],#4	@ Copy a word...
-	str	r5,[r2],#4
-	sub	r3,r3,#1	@ Subtract from bytes remaining...
-	b	cploop		@ And go loop again.
-	
-cpdone:	cmp	r4,#0		@ We're all done copying words - are we done relocating?
-	bne	rldone		@ Yeah? Stop.
-	
-	ldr	r1,[r0],#4	@ No? Load more values and go again!
-	ldr	r2,[r0],#4
-	ldr	r3,[r0],#4
-	ldr	r4,[r0],#4
-	b	cploop
-	
-rldone:	@ At this point we're done relocating.
-	mov	r0, #0
-	mcr	p15, 0, r0, c7, c7, 0		@ flush I-cache, D-cache and BTB
-	mcr	p15, 0, r0, c7, c10, 4		@ drain write buffer
-
-	mrc	p15, 0, r0, c2, c0, 0
-	mov	r0,r0
-
-	mcr	p15, 0, r0, c8, c7, 0		@ flush I-TLB and D-TLB
-	mrc	p15, 0, r0, c2, c0, 0
-	mov	r0,r0
-
-	@ Print a character
-	mov	r2,	#0x40000000
-	orr	r2,r2,	#0x00100000
-1:
-	ldr	r0,[r2,#0x14]
-	tst	r0,#(1<<6)
-	beq	1b
-	mov	r0,#'B'
-	str	r0,[r2]
-1:
-	ldr	r0,[r2,#0x14]
-	tst	r0,#(1<<6)
-	beq	1b
-	mov	r0,#'O'
-	str	r0,[r2]
-1:
-	ldr	r0,[r2,#0x14]
-	tst	r0,#(1<<6)
-	beq	1b
-	mov	r0,#'O'
-	str	r0,[r2]
-1:
-	ldr	r0,[r2,#0x14]
-	tst	r0,#(1<<6)
-	beq	1b
-	mov	r0,#'T'
-	str	r0,[r2]
-1:
-	ldr	r0,[r2,#0x14]
-	tst	r0,#(1<<6)
-	beq	1b
-	mov	r0,#':'
-	str	r0,[r2]
-
-	@ Now all that's left to do is to jump into the kernel.
-
-	mov	r0,#0	@ r0 must be 0 for jumping into kernel
-	mov	r1,r9	@ r1 must be archtype
-	
-	mov	pc,r10
diff -ruN -X X hnd-linux-trunk/arch/arm/armboot/armboot.c hnd-cleanup/arch/arm/armboot/armboot.c
--- hnd-linux-trunk/arch/arm/armboot/armboot.c	2007-09-17 22:44:24.000000000 +0400
+++ hnd-cleanup/arch/arm/armboot/armboot.c	1970-01-01 03:00:00.000000000 +0300
@@ -1,427 +0,0 @@
-/*
- *  ARMBoot interface based on the code from LAB
- *
- *  by Vladimir "Farcaller" Pouzanov <farcaller@gmail.com>
- *
- *  Original Copyright (C) 2003 Joshua Wise
- *  Bootloader port to Linux Kernel, October 07, 2003
- *
- */
-
-#include <linux/stat.h>
-#include <linux/slab.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/mm.h>
-#include <linux/vmalloc.h>
-#include <linux/fs.h>
-
-#include <asm/types.h>
-#include <asm/setup.h>
-#include <asm/mach-types.h>
-
-#ifndef CONFIG_ARM
-#	error "ARMBoot must be compiled on an ARM system. Duh."
-#endif
-
-#ifdef CONFIG_ARCH_PXA
-#include <asm/hardware.h>
-#	define HAVE_APPROPRIATE_ARCH
-#	define TAGBASE 0xA0000100
-#	define MEMSTART 0xA0000000
-#endif
-
-#ifdef CONFIG_ARCH_SA1100
-#	define HAVE_APPROPRIATE_ARCH
-#	define TAGBASE 0xC0000100
-#	define MEMSTART 0xC0000000
-#endif
-
-#ifdef CONFIG_ARCH_OMAP
-#	define HAVE_APPROPRIATE_ARCH
-#	define TAGBASE 0x10000100
-#	define MEMSTART 0x10000000
-#endif
-
-#ifndef HAVE_APPROPRIATE_ARCH
-#	error "Your ARM architecture is not supported."
-#endif
-
-#ifdef CONFIG_DISCONTIGMEM
-#	error "Memory is discontiguous - can't help you. Sorry."
-#endif
-
-#define DEBUG_ARMBOOT
-
-#ifdef DEBUG_ARMBOOT
-#define DBGK(x, ...) printk(KERN_ERR "ARMBoot: " x "\n", ##__VA_ARGS__)
-#else
-#define DBGK
-#endif
-
-struct physlist {		// 128bit == 16byte
-	int	physaddr;	// old address
-	int	newphysaddr;	// address to relocate to
-	int	size;		// size of block to relocate
-	int	last;		// is this the last block?
-};
-
-extern void armboot_asm(int listaddr, int myaddr, int rambase, int machtype);
-void(*armboot_ptr)(int listaddr, int myaddr, int rambase, int machtype);
-
-extern char* relocdone;
-
-/* This shouldn't return. */
-int armboot(unsigned char* kerneladdr, int size, unsigned char* cmdline,
-		unsigned char* initrd, int size_initrd)
-{
-	struct physlist* addrmap;
-	struct tag* t;
-	unsigned int* asmaddr;
-	int mappos;
-	unsigned int kernaddr, initrdaddr;
-	
-	/* At this point, we will allocate 64k for a list of things that need to be mapped later. */
-	addrmap = (struct physlist*)kmalloc(64 * 1024, GFP_KERNEL);
-	if (!addrmap) {
-		DBGK("kmalloc for addrmap failed");
-		return -ENOMEM;
-	}
-	
-	/* We start at the first element of the map. */
-	mappos = 0;
-	
-	/* Now we need to allocate 64kbytes for our tagged list. */
-	t = (struct tag*)kmalloc(64*1024, GFP_KERNEL);
-	if (!t) {
-		DBGK("kmalloc for t failed");
-		return -ENOMEM;
-	}
-	
-	/* Set up our tagged list reloc block. */
-	addrmap[mappos].physaddr = virt_to_phys(t);
-	addrmap[mappos].newphysaddr = TAGBASE;
-	addrmap[mappos].last = 0;
-	
-	/* Now set up the tagged list. */
-	t->hdr.tag = ATAG_CORE;
-	t->hdr.size = tag_size(tag_core);
-	t->u.core.flags = 1;
-	t->u.core.pagesize = 0x1000;
-	t->u.core.rootdev = 0x100;
-	t = tag_next(t);
-	
-	
-	if (cmdline[0] != '\0') {
-	    t->hdr.tag = ATAG_CMDLINE;
-	    t->hdr.size = (sizeof(struct tag_header)+strlen(cmdline)+4) >> 2;
-	    strcpy(t->u.cmdline.cmdline, cmdline);
-	    t = tag_next(t);
-	}
-	
-	t->hdr.tag = ATAG_MEM;			/* We assume that memory is contiguous,       */
-	t->hdr.size = tag_size(tag_mem32);	/* and we won't let anyone tell us otherwise. */
-	t->u.mem.size = (num_physpages >> (20-PAGE_SHIFT)) * 1024*1024;
-	t->u.mem.start = MEMSTART;
-	t = tag_next(t);
-
-	if(size_initrd) {
-		DBGK("using intrd");
-		t->hdr.tag = ATAG_INITRD2;
-		t->hdr.size = tag_size(tag_initrd);
-		t->u.initrd.start = MEMSTART + 0x0400000;
-		t->u.initrd.size = size_initrd;
-		t = tag_next(t);
-	}
-	
-	t->hdr.tag = ATAG_NONE;
-	t->hdr.size = 0;
-	t = tag_next(t);
-	
-	/* Now just fill in the size, and we can begin relocating the kernel. */
-	addrmap[mappos].size = virt_to_phys(t) - addrmap[mappos].physaddr;
-	mappos++;
-	
-	kernaddr = MEMSTART+0x8000;
-	initrdaddr = MEMSTART+0x0400000;
-	DBGK("kernel PA: %lx\ninitrd PA:%lx", virt_to_phys(kerneladdr), virt_to_phys(initrd));
-	
-	printk(KERN_EMERG "armboot: Placing new kernel %sinto temporary RAM...\n",
-			(size_initrd?"and initrd ":""));
-	
-	/* Begin relocating. We're going to have to trust that the kernel won't give us any addresses in the first few megs of RAM. */
-	while(size) {
-		int relocsize;
-		unsigned char* block;
-		
-		/* Make sure it fits within our block... */
-		relocsize = (size > 64*1024) ? 64*1024 : size;
-		size -= relocsize;
-		
-		/* Allocate said block... (always 64k to please your kmallocness) */
-		block = (unsigned char*)kmalloc(64*1024, GFP_KERNEL);
-		if (!block) {
-			printk(KERN_ERR "Failed to grab mem chunk for kernel.\n"
-					"Still %d bytes waiting\n", size);
-			return -ENOMEM;
-		}
-	
-		/* Copy kernel into said block... */
-		memcpy(block, kerneladdr, relocsize);
-		
-		/* Set up our allocation tables. */
-		addrmap[mappos].physaddr = virt_to_phys(block);
-		addrmap[mappos].newphysaddr = kernaddr;
-		addrmap[mappos].size = relocsize;
-		addrmap[mappos].last = 0;
-		
-		mappos++;
-		kernaddr += relocsize;
-		kerneladdr += relocsize;
-	}
-	DBGK("done moving kernel");
-
-	while(size_initrd) {
-		int relocsize;
-		unsigned char* block;
-		
-		/* Make sure it fits within our block... */
-		relocsize = (size_initrd > 64*1024) ? 64*1024 : size_initrd;
-		size_initrd -= relocsize;
-		
-		/* Allocate said block... (always 64k to please your kmallocness) */
-		block = (unsigned char*)kmalloc(64*1024, GFP_KERNEL);
-		if (!block) {
-			printk(KERN_ERR "Failed to grab mem chunk for initrd.\n"
-					"Still %d bytes waiting\n", size_initrd);
-			return -ENOMEM;
-		}
-		
-		/* Copy kernel into said block... */
-		memcpy(block, initrd, relocsize);
-		
-		/* Set up our allocation tables. */
-		addrmap[mappos].physaddr = virt_to_phys(block);
-		addrmap[mappos].newphysaddr = initrdaddr;
-		addrmap[mappos].size = relocsize;
-		addrmap[mappos].last = 0;
-		
-		mappos++;
-		initrd += relocsize;
-		initrdaddr += relocsize;
-	}
-	DBGK("done moving initrd");
-	
-	addrmap[mappos-1].last = 1;
-	
-	/* Nowadays we get an address from the kernel. */
-	asmaddr = (unsigned int*)kmalloc(64*1024, GFP_KERNEL);
-	memcpy(asmaddr, &armboot_asm, 16384); // 16kb
-	armboot_ptr = (void(*)(int,int,int,int))asmaddr;
-	
-	cpu_proc_fin ();
-
-	printk(KERN_EMERG "armboot: Booting new kernel...\n");
-	armboot_ptr(virt_to_phys(addrmap), ((int)&relocdone) - ((int)&armboot_asm) + virt_to_phys(asmaddr), MEMSTART+0x8000, machine_arch_type);
-	
-	return 0;
-}
-
-// FIXME: clean this hell
-#include <linux/proc_fs.h>
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/stat.h>
-#include <linux/slab.h>
-#include <linux/vmalloc.h>
-#include <linux/fs.h>
-#include <linux/syscalls.h>
-#include <asm/uaccess.h>
-#include <linux/string.h>
-
-static struct proc_dir_entry *proc_intf;
-#define PROCFS_NAME		"armboot"
-#define MAX_BUF_SIZE		202
-#define ARG_MAX_SIZE		200
-
-static char kernel_path	[ARG_MAX_SIZE];
-static char cmdline	[ARG_MAX_SIZE];
-static char initrd_path	[ARG_MAX_SIZE];
-
-static unsigned long procfs_buffer_size = 0;
-
-static unsigned char* get_my_file(int* count, char* filename)
-{
-	unsigned char* ptr, *ptr2;
-	struct stat sstat;
-	int fd;
-	int remaining;
-	int sz, total=0;
-	set_fs(KERNEL_DS);
-	
-	if (sys_newstat(filename, &sstat) < 0)
-		return 0;
-	
-	*count = remaining = sstat.st_size;
-	
-	ptr = ptr2 = vmalloc(sstat.st_size+32);
-	if (!ptr)
-	{
-		printk("lab: AIIIIIIIIIIIIIIIIIGHHH!! out of memory!!\n");
-		printk("lab: I guess we just can't allocate 0x%08x bytes???\n", (unsigned int)sstat.st_size+32);
-		return 0;
- 	}
-	
-	if ((fd=sys_open(filename,O_RDONLY,0)) < 0)
-	{
-		printk("lab: uh. couldn't open the file.\n");
-		vfree(ptr);
-		return 0;
-	}
-	
-	while (remaining)
-	{
-		sz = (1048576 < remaining) ? 1048576 : remaining;
-		total += sz;
-		if (sys_read(fd,ptr2,sz) < sz)
-		{
-			printk("lab: uh. couldn't read from the file.\n");
-			sys_close(fd);
-			vfree(ptr);
-			return 0;
-		}
-		ptr2 += sz;
-		remaining -= sz;
-	}
-	
-	sys_close(fd);
-	return ptr;
-}
-
-static void handle_proc_rq(void)
-{
-	int count;
-	int count_initrd = 0;
-	int retval = 667;
-	unsigned char* data;
-	unsigned char* initrd = 0;
-
-	data = get_my_file(&count,kernel_path);
-	if(initrd_path[0] != '\0')
-		initrd = get_my_file(&count_initrd, initrd_path);
-	if(data!=0)
-		retval = armboot(data, count, cmdline, initrd, count_initrd);
-	printk(KERN_EMERG "ARMBoot failed to boot - system may be in an unstable state (return %d)\n", retval);
-}
-
-int procfile_read(char *buffer, char **buffer_location,
-		off_t offset, int buffer_length, int *eof, void *data)
-{
-	int ret;
-	
-	if (offset > 0) {
-		/* we have finished to read, return 0 */
-		ret  = 0;
-	} else {
-		char out[ARG_MAX_SIZE*3+200];
-		sprintf(out, "Kernel: %s\nCmdline: %s\nInitrd: %s\n", kernel_path,
-				cmdline, initrd_path);
-		/* fill the buffer, return the buffer size */
-		memcpy(buffer, out, strlen(out)+1);
-		ret = strlen(out)+1;
-	}
-
-	return ret;
-}
-
-#define CHECK_LEN(t) if(strlen(procfs_buffer)<3) { \
-	printk(KERN_ERR "ARMBoot: argument for %s is too short\n", t); \
-	return procfs_buffer_size; \
-}
-int procfile_write(struct file *file, const char *buffer, unsigned long count, void *data)
-{
-	char procfs_buffer[MAX_BUF_SIZE];
-	char *shift;
-	/* get buffer size */
-	procfs_buffer_size = count;
-	if (procfs_buffer_size > MAX_BUF_SIZE-1 ) {
-		procfs_buffer_size = MAX_BUF_SIZE-1;
-	}
-	
-	/* write data to the buffer */
-	if ( copy_from_user(procfs_buffer, buffer, procfs_buffer_size) ) {
-		return -EFAULT;
-	}
-	procfs_buffer[procfs_buffer_size+1] = '\0';
-
-	if(procfs_buffer[0] == '\0') {
-		printk(KERN_ERR "ARMBoot: emty call to /proc/%s\n", PROCFS_NAME);
-		return procfs_buffer_size;
-	}
-	
-	shift = strchr(procfs_buffer, '\n');
-	if(shift) *shift = '\0';
-
-	shift = procfs_buffer+2;
-
-	switch(procfs_buffer[0]) {
-		case 'k':
-			CHECK_LEN("kernel_path");
-			strncpy(kernel_path, shift, ARG_MAX_SIZE);
-			break;
-		case 'i':
-			CHECK_LEN("initrd_path");
-			strncpy(initrd_path, shift, ARG_MAX_SIZE);
-			break;
-		case 'c':
-			CHECK_LEN("cmdline");
-			strncpy(cmdline, shift, ARG_MAX_SIZE);
-			break;
-		case 'b':
-			printk(KERN_ERR "\nARMBoot running...\n");
-			handle_proc_rq();
-			break;
-		default:
-			printk(KERN_ERR "ARMBoot: bad request\n");
-			break;
-	}
-	
-	return procfs_buffer_size;
-}
-
-
-int init_module()
-{
-	kernel_path[0] = '\0';
-	cmdline[0] = '\0';
-	initrd_path[0] = '\0';
-	/* create the /proc file */
-	proc_intf = create_proc_entry(PROCFS_NAME, 0644, NULL);
-	
-	if (proc_intf == NULL) {
-		remove_proc_entry(PROCFS_NAME, &proc_root);
-		printk(KERN_ALERT "Error: Could not initialize /proc/%s\n",
-			PROCFS_NAME);
-		return -ENOMEM;
-	}
-
-	proc_intf->write_proc = procfile_write;
-	proc_intf->read_proc  = procfile_read;
-	proc_intf->owner 	  = THIS_MODULE;
-	proc_intf->mode 	  = S_IFREG | S_IWUSR | S_IRUSR;
-	proc_intf->uid 	  = 0;
-	proc_intf->gid 	  = 0;
-	proc_intf->size 	  = 37;
-
-	printk(KERN_INFO "ARMBoot interface v0.2 loaded\n");	
-	return 0;	/* everything is ok */
-}
-
-// INFO: no need for cleanup, because armboot-asm.S make impossible modularization
-module_init(init_module);
-
-MODULE_AUTHOR("Vladimir \"Farcaller\" Pouzanov");
-MODULE_DESCRIPTION("ARMBoot kernel loader");
-MODULE_LICENSE("GPL");
diff -ruN -X X hnd-linux-trunk/arch/arm/armboot/Kconfig hnd-cleanup/arch/arm/armboot/Kconfig
--- hnd-linux-trunk/arch/arm/armboot/Kconfig	2007-09-17 22:44:24.000000000 +0400
+++ hnd-cleanup/arch/arm/armboot/Kconfig	1970-01-01 03:00:00.000000000 +0300
@@ -1,8 +0,0 @@
-config ARMBOOT_PROC
-	bool "ARMBoot Linux booting Linux"
-	depends on ARM
-	help
-	  ARMBoot allows you to boot another kernel using
-	  interface in /proc/armboot.
-	  
-	  Usage: echo -ne '/zImage\0' > /proc/armboot
diff -ruN -X X hnd-linux-trunk/arch/arm/armboot/Makefile hnd-cleanup/arch/arm/armboot/Makefile
--- hnd-linux-trunk/arch/arm/armboot/Makefile	2007-09-17 22:44:24.000000000 +0400
+++ hnd-cleanup/arch/arm/armboot/Makefile	1970-01-01 03:00:00.000000000 +0300
@@ -1 +0,0 @@
-obj-$(CONFIG_ARMBOOT_PROC)             += armboot.o armboot-asm.o
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/asus620_static_defconfig hnd-cleanup/arch/arm/configs/asus620_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/asus620_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/asus620_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:06 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:40 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -171,8 +171,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -402,58 +401,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -486,21 +443,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -554,17 +509,15 @@
 #
 # NAND Flash Device Drivers
 #
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
 # CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_H1900 is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_DISKONCHIP=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_DISKONCHIP=m
 # CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
 CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
 # CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
 # CONFIG_MTD_NAND_SHARPSL is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
 
 #
 # OneNAND Flash Device Drivers
@@ -585,7 +538,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -668,6 +622,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
@@ -782,12 +737,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -807,6 +774,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -814,6 +782,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -899,7 +868,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1106,8 +1075,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
@@ -1190,7 +1159,7 @@
 # CONFIG_CRC16 is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
-CONFIG_REED_SOLOMON=y
+CONFIG_REED_SOLOMON=m
 CONFIG_REED_SOLOMON_DEC16=y
 CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/asus730_static_defconfig hnd-cleanup/arch/arm/configs/asus730_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/asus730_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/asus730_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:07 2007
+# Linux kernel version: 2.6.21-hh15
+# Tue Sep 11 04:54:55 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -167,6 +167,10 @@
 # CONFIG_MACH_MAGICIAN is not set
 # CONFIG_MACH_HTCAPACHE is not set
 # CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
 # CONFIG_MACH_HTCBEETLES is not set
 # CONFIG_MACH_HW6900 is not set
 # CONFIG_MACH_HTCATHENA is not set
@@ -408,68 +412,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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 is not set
-# 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_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -518,8 +462,14 @@
 #
 # RAM/ROM/Flash chip drivers
 #
-# CONFIG_MTD_CFI is not set
+CONFIG_MTD_CFI=y
 # CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_GEN_PROBE=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+CONFIG_MTD_CFI_NOSWAP=y
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_GEOMETRY=y
 CONFIG_MTD_MAP_BANK_WIDTH_1=y
 CONFIG_MTD_MAP_BANK_WIDTH_2=y
 CONFIG_MTD_MAP_BANK_WIDTH_4=y
@@ -530,15 +480,24 @@
 CONFIG_MTD_CFI_I2=y
 # CONFIG_MTD_CFI_I4 is not set
 # CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
 # CONFIG_MTD_RAM is not set
 # CONFIG_MTD_ROM is not set
 # CONFIG_MTD_ABSENT is not set
 # CONFIG_MTD_OBSOLETE_CHIPS is not set
+# CONFIG_MTD_XIP is not set
 
 #
 # Mapping drivers for chip access
 #
 # CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+# CONFIG_MTD_IPAQ is not set
 # CONFIG_MTD_SHARP_SL is not set
 # CONFIG_MTD_PLATRAM is not set
 
@@ -562,14 +521,7 @@
 #
 # NAND Flash Device Drivers
 #
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
-# CONFIG_MTD_NAND_H1900 is not set
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_SHARPSL is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND is not set
 
 #
 # OneNAND Flash Device Drivers
@@ -590,7 +542,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -695,6 +648,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_PXA27x is not set
 # CONFIG_KEYBOARD_GPIO is not set
@@ -847,12 +801,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -872,6 +838,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -880,6 +847,7 @@
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
 # CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1005,8 +973,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1155,7 +1122,18 @@
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
+CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_VXFS_FS is not set
 # CONFIG_HPFS_FS is not set
@@ -1218,8 +1196,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
@@ -1302,6 +1280,8 @@
 # CONFIG_CRC16 is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
 CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/aximx50_static_defconfig hnd-cleanup/arch/arm/configs/aximx50_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/aximx50_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/aximx50_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:07 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:41 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,8 +166,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -402,64 +401,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -484,21 +427,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -573,7 +514,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -656,6 +598,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_PXA27x=y
 CONFIG_KEYBOARD_GPIO=y
@@ -780,12 +723,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -805,6 +760,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -812,6 +768,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -897,8 +854,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1104,8 +1060,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/eteng500_static_defconfig hnd-cleanup/arch/arm/configs/eteng500_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/eteng500_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/eteng500_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:08 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:41 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -395,63 +395,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -476,21 +421,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -543,16 +486,15 @@
 #
 # NAND Flash Device Drivers
 #
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
 # CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_S3C2410=m
 # CONFIG_MTD_NAND_S3C2410_DEBUG is not set
 CONFIG_MTD_NAND_S3C2410_HWECC=y
 CONFIG_MTD_NAND_S3C2410_CLKSTOP=y
 # CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
 
 #
 # OneNAND Flash Device Drivers
@@ -573,7 +515,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -656,6 +599,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
@@ -776,12 +720,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -800,6 +756,7 @@
 # LED drivers
 #
 CONFIG_LEDS_S3C24XX=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -807,6 +764,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -892,8 +850,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1098,8 +1055,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h1910_static_defconfig hnd-cleanup/arch/arm/configs/h1910_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h1910_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h1910_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:08 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:42 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -168,8 +168,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -400,64 +399,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -482,21 +425,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -571,7 +512,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -654,6 +596,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
 # CONFIG_KEYBOARD_GPIO is not set
@@ -808,12 +751,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -834,6 +789,7 @@
 # LED drivers
 #
 # CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -841,6 +797,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -960,8 +917,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1174,8 +1130,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h2200_static_defconfig hnd-cleanup/arch/arm/configs/h2200_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h2200_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h2200_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:08 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:43 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -167,8 +167,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -408,13 +407,13 @@
 #
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
+CONFIG_IRDA=m
 
 #
 # IrDA protocols
 #
-CONFIG_IRLAN=y
-CONFIG_IRCOMM=y
+CONFIG_IRLAN=m
+CONFIG_IRCOMM=m
 CONFIG_IRDA_ULTRA=y
 
 #
@@ -431,7 +430,7 @@
 #
 # SIR device drivers
 #
-CONFIG_IRTTY_SIR=y
+CONFIG_IRTTY_SIR=m
 
 #
 # Dongle support
@@ -452,17 +451,17 @@
 #
 # CONFIG_USB_IRDA is not set
 # CONFIG_SIGMATEL_FIR is not set
-CONFIG_PXA_FICP=y
+CONFIG_PXA_FICP=m
 # CONFIG_MCS_FIR is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -600,7 +599,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
@@ -706,6 +706,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_H2200=y
 CONFIG_KEYBOARD_GPIO=y
@@ -888,12 +889,24 @@
 CONFIG_ADC_SAMCOP=y
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 CONFIG_SOC_HAMCOP=y
@@ -916,6 +929,7 @@
 # LED drivers
 #
 CONFIG_LEDS_HAMCOP=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -924,6 +938,7 @@
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
 # CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1057,7 +1072,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1386,8 +1401,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h3600_static_defconfig hnd-cleanup/arch/arm/configs/h3600_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h3600_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h3600_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:09 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:43 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -383,64 +383,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_SA1100_FIR is not set
-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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -554,7 +498,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -637,6 +582,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_MICRO=y
 CONFIG_KEYBOARD_GPIO=y
@@ -764,13 +710,25 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 CONFIG_IPAQ_MICRO=y
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -793,6 +751,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -800,6 +759,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -884,8 +844,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1089,8 +1048,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h3800_static_defconfig hnd-cleanup/arch/arm/configs/h3800_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h3800_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h3800_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:09 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:44 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -381,64 +381,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_SA1100_FIR is not set
-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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -552,7 +496,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -635,6 +580,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_ASIC2=y
 CONFIG_KEYBOARD_GPIO=y
@@ -762,12 +708,24 @@
 CONFIG_ADC_ASIC2=y
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 CONFIG_HTC_ASIC2=y
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -790,6 +748,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -797,6 +756,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -881,8 +841,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1086,8 +1045,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h3900_static_defconfig hnd-cleanup/arch/arm/configs/h3900_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h3900_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h3900_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:10 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:44 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -169,8 +169,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -401,58 +400,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -572,7 +529,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -655,6 +613,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_ASIC2=y
 # CONFIG_KEYBOARD_ASIC3 is not set
@@ -817,12 +776,24 @@
 CONFIG_ADC_ASIC2=y
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 CONFIG_HTC_ASIC2=y
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -843,6 +814,7 @@
 # LED drivers
 #
 # CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -850,6 +822,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -966,7 +939,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1191,8 +1164,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h4000_static_defconfig hnd-cleanup/arch/arm/configs/h4000_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h4000_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h4000_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh13
-# Thu Jul 26 04:01:26 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:45 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -175,8 +175,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -763,6 +762,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -929,6 +929,16 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
@@ -936,6 +946,7 @@
 CONFIG_HTC_ASIC3=y
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -956,6 +967,7 @@
 # LED drivers
 #
 CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/h5000_static_defconfig hnd-cleanup/arch/arm/configs/h5000_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/h5000_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/h5000_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:11 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:45 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -164,16 +164,13 @@
 CONFIG_IPAQ_H5400_BT=y
 CONFIG_IPAQ_H5400_LCD=y
 CONFIG_IPAQ_H5400_BL=y
-CONFIG_IPAQ_H5400_POWER=y
-CONFIG_IPAQ_H5400_LEDS=y
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -403,13 +400,13 @@
 #
 # CONFIG_NET_PKTGEN is not set
 # CONFIG_HAMRADIO is not set
-CONFIG_IRDA=y
+CONFIG_IRDA=m
 
 #
 # IrDA protocols
 #
-CONFIG_IRLAN=y
-CONFIG_IRCOMM=y
+CONFIG_IRLAN=m
+CONFIG_IRCOMM=m
 CONFIG_IRDA_ULTRA=y
 
 #
@@ -426,7 +423,7 @@
 #
 # SIR device drivers
 #
-CONFIG_IRTTY_SIR=y
+CONFIG_IRTTY_SIR=m
 
 #
 # Dongle support
@@ -445,16 +442,16 @@
 #
 # FIR device drivers
 #
-CONFIG_PXA_FICP=y
+CONFIG_PXA_FICP=m
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -592,7 +589,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -675,6 +673,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
 CONFIG_GPIODEV_DIAGONAL=y
 # CONFIG_KEYBOARD_GPIO is not set
 CONFIG_INPUT_MOUSE=y
@@ -813,12 +812,25 @@
 CONFIG_ADC_SAMCOP=y
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+# CONFIG_IPAQ_SAMCOP_FSI is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 CONFIG_SOC_SAMCOP=y
 # CONFIG_SOC_HAMCOP is not set
@@ -841,6 +853,7 @@
 # LED drivers
 #
 CONFIG_LEDS_SAMCOP=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -848,6 +861,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -933,7 +947,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1151,8 +1165,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcalpine_static_defconfig hnd-cleanup/arch/arm/configs/htcalpine_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcalpine_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcalpine_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:12 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:47 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -168,8 +168,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -400,58 +399,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -484,21 +441,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -573,7 +528,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -656,6 +612,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_PXA27x is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -775,12 +732,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -800,6 +769,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -807,6 +777,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -892,7 +863,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1099,8 +1070,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcapache_static_defconfig hnd-cleanup/arch/arm/configs/htcapache_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcapache_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcapache_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:12 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:48 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,8 +166,7 @@
 # CONFIG_MACH_MAGICIAN is not set
 CONFIG_MACH_HTCAPACHE=y
 # CONFIG_MACH_BLUEANGEL is not set
-# CONFIG_MACH_HTCBEETLES is not set
-# CONFIG_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -400,58 +399,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -485,21 +442,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -574,7 +529,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -706,6 +662,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_PXA27x=y
 CONFIG_KEYBOARD_GPIO=y
@@ -860,12 +817,24 @@
 CONFIG_ADC_AD7877=y
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 CONFIG_HTC_EGPIO=y
+CONFIG_HTC_BBKEYS=y
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -885,6 +854,7 @@
 #
 # LED drivers
 #
+CONFIG_LEDS_GPIO=y
 
 #
 # LED Triggers
@@ -892,6 +862,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1011,7 +982,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1224,8 +1195,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcbeetles_static_defconfig hnd-cleanup/arch/arm/configs/htcbeetles_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcbeetles_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcbeetles_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh13
-# Thu Jul 26 03:30:38 2007
+# Linux kernel version: 2.6.21-hh15
+# Tue Sep 11 04:23:34 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,9 +166,17 @@
 # CONFIG_MACH_MAGICIAN is not set
 # CONFIG_MACH_HTCAPACHE is not set
 # CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
 CONFIG_MACH_HTCBEETLES=y
-# CONFIG_HTCBEETLES_TS is not set
 # CONFIG_MACH_HW6900 is not set
+# CONFIG_HTCSABLE_LCD is not set
+# CONFIG_HTCSABLE_BACKLIGHT is not set
+# CONFIG_HTCSABLE_ROM is not set
+# CONFIG_HTCSABLE_BT is not set
+# CONFIG_HTCSABLE_PHONE is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -613,9 +621,10 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
-# CONFIG_KEYBOARD_PXA27x is not set
+CONFIG_KEYBOARD_PXA27x=y
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
 # CONFIG_MOUSE_PS2 is not set
@@ -733,6 +742,16 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
@@ -740,6 +759,7 @@
 CONFIG_HTC_ASIC3=y
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -760,6 +780,7 @@
 # LED drivers
 #
 # CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcblueangel_static_defconfig hnd-cleanup/arch/arm/configs/htcblueangel_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcblueangel_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcblueangel_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:13 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:49 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -178,8 +178,7 @@
 CONFIG_MACH_BLUEANGEL_ROM=y
 CONFIG_MACH_BLUEANGEL_DPRAM=y
 CONFIG_MACH_BLUEANGEL_PHONE=m
-# CONFIG_MACH_HTCBEETLES is not set
-# CONFIG_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -421,58 +420,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -609,7 +566,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -766,6 +724,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_ASIC3=y
 CONFIG_KEYBOARD_TSC2200=y
@@ -948,12 +907,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -974,6 +945,7 @@
 # LED drivers
 #
 CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -981,6 +953,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1146,7 +1119,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1377,8 +1350,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htchimalaya_static_defconfig hnd-cleanup/arch/arm/configs/htchimalaya_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htchimalaya_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htchimalaya_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh13
-# Thu Jul 26 00:45:12 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:49 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -169,8 +169,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -615,6 +614,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -734,6 +734,16 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
@@ -741,6 +751,7 @@
 CONFIG_HTC_ASIC3=y
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -761,6 +772,7 @@
 # LED drivers
 #
 # CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcsable_static_defconfig hnd-cleanup/arch/arm/configs/htcsable_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcsable_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcsable_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:13 2007
+# Linux kernel version: 2.6.21-hh15
+# Tue Sep 11 04:23:35 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,10 +166,17 @@
 # CONFIG_MACH_MAGICIAN is not set
 # CONFIG_MACH_HTCAPACHE is not set
 # CONFIG_MACH_BLUEANGEL is not set
+
+#
+# HTC_HW6X00
+#
 # CONFIG_MACH_HTCBEETLES is not set
 CONFIG_MACH_HW6900=y
 CONFIG_HTCSABLE_LCD=y
 CONFIG_HTCSABLE_BACKLIGHT=y
+# CONFIG_HTCSABLE_ROM is not set
+# CONFIG_HTCSABLE_BT is not set
+# CONFIG_HTCSABLE_PHONE is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -401,58 +408,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -486,21 +451,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -510,9 +473,9 @@
 #
 # RAM/ROM/Flash chip drivers
 #
-CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI=m
 # CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
+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
@@ -583,7 +546,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -716,6 +680,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
 CONFIG_KEYBOARD_PXA27x=y
@@ -871,12 +836,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -897,6 +874,7 @@
 # LED drivers
 #
 # CONFIG_LEDS_ASIC3 is not set
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -904,6 +882,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1023,7 +1002,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1174,7 +1153,7 @@
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS=m
 CONFIG_JFFS2_FS_DEBUG=0
 CONFIG_JFFS2_FS_WRITEBUFFER=y
 # CONFIG_JFFS2_SUMMARY is not set
@@ -1248,8 +1227,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
@@ -1332,8 +1311,8 @@
 # CONFIG_CRC16 is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
 CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcuniversal_static_defconfig hnd-cleanup/arch/arm/configs/htcuniversal_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcuniversal_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcuniversal_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:14 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:51 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -177,8 +177,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -410,58 +409,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -495,21 +452,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -584,7 +539,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -717,6 +673,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_ASIC3=y
 CONFIG_KEYBOARD_PXA27x=y
@@ -891,12 +848,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 CONFIG_HTC_ASIC3_DS1WM=y
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -917,6 +886,7 @@
 # LED drivers
 #
 CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -924,6 +894,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1042,7 +1013,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1259,8 +1230,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/htcwallaby_static_defconfig hnd-cleanup/arch/arm/configs/htcwallaby_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/htcwallaby_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/htcwallaby_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:14 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:51 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -380,64 +380,8 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_SA1100_FIR is not set
-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 is not set
-# CONFIG_BT_HCIVHCI is not set
+# CONFIG_IRDA is not set
+# CONFIG_BT is not set
 # CONFIG_IEEE80211 is not set
 
 #
@@ -462,21 +406,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -486,9 +428,9 @@
 #
 # RAM/ROM/Flash chip drivers
 #
-CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI=m
 # CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
+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
@@ -514,7 +456,6 @@
 # CONFIG_MTD_COMPLEX_MAPPINGS is not set
 # CONFIG_MTD_PHYSMAP is not set
 # CONFIG_MTD_ARM_INTEGRATOR is not set
-CONFIG_MTD_SA1100=y
 # CONFIG_MTD_IPAQ is not set
 # CONFIG_MTD_PLATRAM is not set
 
@@ -560,7 +501,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -643,6 +585,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
@@ -767,12 +710,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -795,6 +750,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -802,6 +758,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -886,8 +843,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
-# CONFIG_HID_DEBUG is not set
+# CONFIG_HID is not set
 
 #
 # USB support
@@ -1017,7 +973,7 @@
 # CONFIG_BEFS_FS is not set
 # CONFIG_BFS_FS is not set
 # CONFIG_EFS_FS is not set
-CONFIG_JFFS2_FS=y
+CONFIG_JFFS2_FS=m
 CONFIG_JFFS2_FS_DEBUG=0
 CONFIG_JFFS2_FS_WRITEBUFFER=y
 # CONFIG_JFFS2_SUMMARY is not set
@@ -1091,8 +1047,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
@@ -1175,8 +1131,8 @@
 # CONFIG_CRC16 is not set
 CONFIG_CRC32=y
 # CONFIG_LIBCRC32C is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=m
+CONFIG_ZLIB_DEFLATE=m
 CONFIG_PLIST=y
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/hx4700_static_defconfig hnd-cleanup/arch/arm/configs/hx4700_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/hx4700_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/hx4700_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh13
-# Thu Jul 26 04:01:27 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:46 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -173,8 +173,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -800,6 +799,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_ASIC3 is not set
 # CONFIG_KEYBOARD_PXA27x is not set
@@ -982,6 +982,16 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
@@ -989,6 +999,7 @@
 CONFIG_HTC_ASIC3=y
 # CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 CONFIG_HTC_ASIC3_DS1WM=y
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -1009,6 +1020,7 @@
 # LED drivers
 #
 CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/looxc550_static_defconfig hnd-cleanup/arch/arm/configs/looxc550_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/looxc550_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/looxc550_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:15 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:52 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -166,8 +166,7 @@
 # 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_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -398,58 +397,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -482,21 +439,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -571,7 +526,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -654,6 +610,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_PXA27x is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -778,12 +735,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -803,6 +772,7 @@
 #
 # LED drivers
 #
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -810,6 +780,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -895,7 +866,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1102,8 +1073,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/magician_static_defconfig hnd-cleanup/arch/arm/configs/magician_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/magician_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/magician_static_defconfig	2007-09-17 23:22:48.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:11 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:47 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -170,8 +170,7 @@
 CONFIG_MAGICIAN_PHONE=m
 # CONFIG_MACH_HTCAPACHE is not set
 # CONFIG_MACH_BLUEANGEL is not set
-# CONFIG_MACH_HTCBEETLES is not set
-# CONFIG_MACH_HW6900 is not set
+# CONFIG_HTC_HW6X00 is not set
 # CONFIG_MACH_HTCATHENA is not set
 # CONFIG_ARCH_AXIMX3 is not set
 # CONFIG_ARCH_AXIMX5 is not set
@@ -405,61 +404,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-
-#
-# Old SIR device drivers
-#
-# CONFIG_IRPORT_SIR is not set
-
-#
-# Old Serial dongle support
-#
-
-#
-# FIR device drivers
-#
-# CONFIG_USB_IRDA is not set
-# CONFIG_SIGMATEL_FIR is not set
-CONFIG_PXA_FICP=y
-# CONFIG_MCS_FIR is not set
+# CONFIG_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -598,7 +552,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
@@ -682,6 +637,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 CONFIG_GPIODEV_KEYS=y
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 # CONFIG_KEYBOARD_PXA27x is not set
 CONFIG_KEYBOARD_GPIO=y
@@ -855,6 +811,16 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
@@ -862,6 +828,7 @@
 # CONFIG_HTC_ASIC3 is not set
 CONFIG_HTC_PASIC3=y
 CONFIG_HTC_EGPIO=y
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -883,6 +850,7 @@
 #
 CONFIG_LEDS_MAGICIAN=y
 CONFIG_LEDS_PASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -890,6 +858,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 CONFIG_LEDS_TRIGGER_HWTIMER=y
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1381,8 +1350,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/rx1950_static_defconfig hnd-cleanup/arch/arm/configs/rx1950_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/rx1950_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/rx1950_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:15 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:52 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -397,57 +397,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -480,21 +439,19 @@
 #
 # Memory Technology Devices (MTD)
 #
-CONFIG_MTD=y
+CONFIG_MTD=m
 CONFIG_MTD_DEBUG=y
 CONFIG_MTD_DEBUG_VERBOSE=0
-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
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_PARTITIONS is not set
 
 #
 # User Modules And Translation Layers
 #
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=m
+# CONFIG_MTD_BLKDEVS 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
@@ -547,16 +504,15 @@
 #
 # NAND Flash Device Drivers
 #
-CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND=m
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
 # CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_S3C2410=y
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_S3C2410=m
 # CONFIG_MTD_NAND_S3C2410_DEBUG is not set
 # CONFIG_MTD_NAND_S3C2410_HWECC is not set
 # CONFIG_MTD_NAND_S3C2410_CLKSTOP is not set
 # CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
 
 #
 # OneNAND Flash Device Drivers
@@ -577,7 +533,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -662,6 +619,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_GPIO=y
 CONFIG_INPUT_MOUSE=y
@@ -788,12 +746,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 # CONFIG_HTC_ASIC3 is not set
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 # CONFIG_HTC_ASIC3_DS1WM is not set
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -812,6 +782,7 @@
 # LED drivers
 #
 CONFIG_LEDS_S3C24XX=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -819,6 +790,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -934,7 +906,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1140,8 +1112,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/configs/rx3000_static_defconfig hnd-cleanup/arch/arm/configs/rx3000_static_defconfig
--- hnd-linux-trunk/arch/arm/configs/rx3000_static_defconfig	2007-09-17 22:44:27.000000000 +0400
+++ hnd-cleanup/arch/arm/configs/rx3000_static_defconfig	2007-09-17 23:22:49.000000000 +0400
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.21-hh12
-# Tue Jul 17 20:51:16 2007
+# Linux kernel version: 2.6.21-hh15
+# Mon Sep 10 20:36:53 2007
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -404,57 +404,16 @@
 #
 # 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=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=y
-
-#
-# 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_IRDA is not set
 CONFIG_BT=y
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
+CONFIG_BT_RFCOMM=y
 CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP=y
 CONFIG_BT_BNEP_MC_FILTER=y
 CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
+CONFIG_BT_HIDP=y
 
 #
 # Bluetooth device drivers
@@ -585,7 +544,8 @@
 # Block devices
 #
 # CONFIG_BLK_DEV_COW_COMMON is not set
-# CONFIG_BLK_DEV_LOOP is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
 # CONFIG_BLK_DEV_NBD is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=4
@@ -718,6 +678,7 @@
 # CONFIG_KEYBOARD_NEWTON is not set
 # CONFIG_KEYBOARD_STOWAWAY is not set
 # CONFIG_GPIODEV_KEYS is not set
+# CONFIG_GPIODEV_KEYS2 is not set
 # CONFIG_GPIODEV_DIAGONAL is not set
 CONFIG_KEYBOARD_ASIC3=y
 CONFIG_KEYBOARD_GPIO=y
@@ -893,12 +854,24 @@
 # CONFIG_ADC_AD7877 is not set
 
 #
+# Compaq/iPAQ Drivers
+#
+
+#
+# Compaq/HP iPAQ Drivers
+#
+# CONFIG_IPAQ_SLEEVE is not set
+# CONFIG_SLEEVE_DEBUG is not set
+
+#
 # Multifunction device drivers
 #
 # CONFIG_MFD_SM501 is not set
 # CONFIG_HTC_ASIC2 is not set
 CONFIG_HTC_ASIC3=y
+# CONFIG_HTC_PASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_BBKEYS is not set
 CONFIG_HTC_ASIC3_DS1WM=y
 # CONFIG_SOC_SAMCOP is not set
 # CONFIG_SOC_HAMCOP is not set
@@ -918,6 +891,7 @@
 #
 # CONFIG_LEDS_S3C24XX is not set
 CONFIG_LEDS_ASIC3=y
+# CONFIG_LEDS_GPIO is not set
 
 #
 # LED Triggers
@@ -925,6 +899,7 @@
 CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=y
 # CONFIG_LEDS_TRIGGER_HWTIMER is not set
+# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
 # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
 CONFIG_LEDS_TRIGGER_SHARED=y
 
@@ -1080,7 +1055,7 @@
 #
 # HID Devices
 #
-CONFIG_HID=m
+CONFIG_HID=y
 # CONFIG_HID_DEBUG is not set
 
 #
@@ -1293,8 +1268,8 @@
 # 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_CODEPAGE_1250 is not set
+CONFIG_NLS_CODEPAGE_1251=m
 # CONFIG_NLS_ASCII is not set
 CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_ISO8859_2 is not set
diff -ruN -X X hnd-linux-trunk/arch/arm/Kconfig hnd-cleanup/arch/arm/Kconfig
--- hnd-linux-trunk/arch/arm/Kconfig	2007-09-17 22:44:34.000000000 +0400
+++ hnd-cleanup/arch/arm/Kconfig	2007-09-17 23:22:57.000000000 +0400
@@ -460,8 +460,6 @@
 	  Enable support for iWMMXt context switching at run time if
 	  running on a CPU that supports it.
 
-source arch/arm/armboot/Kconfig
-
 #  bool 'Use XScale PMU as timer source' CONFIG_XSCALE_PMU_TIMER
 config XSCALE_PMU
 	bool
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/asus730/a730_flash.c hnd-cleanup/arch/arm/mach-pxa/asus730/a730_flash.c
--- hnd-linux-trunk/arch/arm/mach-pxa/asus730/a730_flash.c	2007-09-17 22:44:29.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/asus730/a730_flash.c	2007-09-17 23:22:51.000000000 +0400
@@ -117,9 +117,8 @@
 static struct mtd_info *mtds_concat = NULL;
 static int mtds_found = 0;
 
-#ifdef CONFIG_MTD_PARTITIONS
 static const char *part_probes[] = {"cmdlinepart", "RedBoot", NULL};
-#endif
+
 static int mphysmap_map_device(struct map_info *map)
 {
         static const char *rom_probe_types[] = {"cfi_probe", "jedec_probe", "map_rom", NULL};
@@ -184,10 +183,9 @@
 static int a730_physmap_flash_probe(struct device *dev)
 {
 	int i;
-#ifdef CONFIG_MTD_PARTITIONS
 	struct mtd_partition* mtd_parts;
 	int mtd_parts_nb;
-#endif
+
 	for (i = 0; i < ARRAY_SIZE(mphysmap_static_maps); i++)
 	{
 		if (strcmp(mphysmap_static_maps[i].name, "") != 0 && mphysmap_static_maps[i].size != 0 && mphysmap_static_maps[i].bankwidth != 0)
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/generic.c hnd-cleanup/arch/arm/mach-pxa/generic.c
--- hnd-linux-trunk/arch/arm/mach-pxa/generic.c	2007-09-17 22:44:32.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/generic.c	2007-09-17 23:22:54.000000000 +0400
@@ -233,6 +233,21 @@
 
 #include <linux/gpiodev2.h>
 struct gpio_ops gpio_desc[16];
+
+int gpio_direction_input(unsigned gpio)
+{
+	if (gpio < GPIO_BASE_INCREMENT)
+		return pxa_gpio_mode(gpio | GPIO_IN);
+	return -EINVAL;
+}
+
+int gpio_direction_output(unsigned gpio)
+{
+	if (gpio < GPIO_BASE_INCREMENT)
+		return pxa_gpio_mode(gpio | GPIO_OUT);
+	return -EINVAL;
+}
+
 /*
  * Return GPIO level
  */
@@ -252,7 +267,8 @@
 {
 	if (gpio < GPIO_BASE_INCREMENT)
 		__gpio_set_value(gpio, value);
-	gpiodev2_set_value(gpio, value);
+	else
+		gpiodev2_set_value(gpio, value);
 }
 
 EXPORT_SYMBOL(pxa_gpio_set_value);
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/h5400/h5400.c hnd-cleanup/arch/arm/mach-pxa/h5400/h5400.c
--- hnd-linux-trunk/arch/arm/mach-pxa/h5400/h5400.c	2007-09-17 22:44:28.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/h5400/h5400.c	2007-09-17 23:22:49.000000000 +0400
@@ -38,8 +38,7 @@
 #include <linux/input_pda.h>
 #include <linux/adc.h>
 #include <linux/mfd/samcop_adc.h>
-#include <linux/gpiodev_keys.h>
-#include <linux/gpiodev_diagonal.h>
+#include <linux/gpiodev_keys2.h>
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/partitions.h>
 #include <linux/mtd/physmap.h>
@@ -508,7 +507,7 @@
 	GPIO_NR_H5400_IRDA_SD | GPIO_OUT,			/* GPIO58 */
 	59 | GPIO_OUT,						/* GPIO59 XXX docs say "usb charge on" input */
 	GPIO_NR_H5400_POWER_SD_N | GPIO_OUT,			/* GPIO60 XXX not really active low? */
-	GPIO_NR_H5400_POWER_RS232_N | GPIO_OUT | GPIO_DFLT_HIGH,
+	GPIO_NR_H5400_POWER_RS232_N_OR_FS | GPIO_OUT | GPIO_DFLT_HIGH,
 	GPIO_NR_H5400_POWER_ACCEL_N | GPIO_OUT | GPIO_DFLT_HIGH,
 	63 | GPIO_OUT,						/* GPIO63 NC */
 	GPIO_NR_H5400_OPT_NVRAM | GPIO_OUT ,
@@ -649,8 +648,8 @@
 		.gpacon2 = 0x5a,
 		.gpadat = 0x0,
 		.gpaup = 0x0,
-		.gpioint = { 0x66666666, 0x60006, 0x0, },
-		.gpioflt = { 0x3fff0000, 0x3fff3fff, 0x3fff, 0, 0, 0x3fff3fff, 0, },
+		.gpioint = { 0xeeeeeeee, 0x6766eeee, 0x0444444f, },
+		.gpioflt = { 0x3fff0001, 0x3fff3fff, 0x3fff3fff, 0x3fff3fff, 0x3fff3fff, 0x3fff3fff, 0x000f3fff, },
 		.gpioenint = { 0x3f, 0x7f, },
 	},
 	.child_devs = samcop_child_devs,
@@ -669,52 +668,68 @@
 };
 EXPORT_SYMBOL(h5400_samcop);
 
-static struct gpiodev_keys_button h5400_button_table[] = {
-	{ KEY_POWER,      { &pxagpio_device.dev, GPIO_NR_H5400_POWER_BUTTON }, 1, "Power button" },
-	{ _KEY_RECORD,    { &h5400_samcop.dev, SAMCOP_GPA_RECORD },	1, "Record button" },
-	{ _KEY_CALENDAR,  { &h5400_samcop.dev, SAMCOP_GPA_APPBTN1 },	1, "Calendar button" },
-	{ _KEY_CONTACTS,  { &h5400_samcop.dev, SAMCOP_GPA_APPBTN2 },	1, "Contacts button" },
-	{ _KEY_MAIL,      { &h5400_samcop.dev, SAMCOP_GPA_APPBTN3 },	1, "Mail button" },
-	{ _KEY_HOMEPAGE,  { &h5400_samcop.dev, SAMCOP_GPA_APPBTN4 },	1, "Homepage button" },
-	{ KEY_VOLUMEUP,	  { &h5400_samcop.dev, SAMCOP_GPA_TOGGLEUP },		1, "Volume up" },
-	{ KEY_VOLUMEDOWN, { &h5400_samcop.dev, SAMCOP_GPA_TOGGLEDOWN },		1, "Volume down" },
+static struct gpiodev_keys2_gpio h5000_gpiodev_keys2_gpios[] = {
+	{ "Power button",   	{ &pxagpio_device.dev, GPIO_NR_H5400_POWER_BUTTON }, 0, },
+	{ "Record button",  	{ &h5400_samcop.dev, SAMCOP_GPA_RECORD },	1, },
+	{ "Calendar button",	{ &h5400_samcop.dev, SAMCOP_GPA_APPBTN1 },	1, },
+	{ "Contacts button",	{ &h5400_samcop.dev, SAMCOP_GPA_APPBTN2 },	1, },
+	{ "Mail button",    	{ &h5400_samcop.dev, SAMCOP_GPA_APPBTN3 },	1, },
+	{ "Homepage button",	{ &h5400_samcop.dev, SAMCOP_GPA_APPBTN4 },	1, },
+	{ "Volume up",	    	{ &h5400_samcop.dev, SAMCOP_GPA_TOGGLEUP },	1, },
+	{ "Volume down",    	{ &h5400_samcop.dev, SAMCOP_GPA_TOGGLEDOWN },	1, },
+	{ "Joypad NW",      	{ &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK1 }, 1, },
+	{ "Joypad NE",      	{ &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK2 }, 1, },
+	{ "Joypad SE",      	{ &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK3 }, 1, },
+	{ "Joypad SW",      	{ &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK4 }, 1, },
+	{ "Joypad action", 	{ &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK5 }, 1, },
+};
+
+static struct gpiodev_keys2_button h5000_gpiodev_keys2_buttons[] = {
+	{ KEY_POWER,      	{ "Power button", NULL }, 0, 0, },
+	{ _KEY_CALENDAR,	{ "Calendar button", NULL }, 0, 0, },
+	{ _KEY_CONTACTS,	{ "Contacts button", NULL }, 0, 0, },
+	{ _KEY_MAIL,    	{ "Mail button", NULL }, 0, 0, },
+	{ _KEY_HOMEPAGE,	{ "Homepage button", NULL }, 0, 0, },
+	/* Side buttons */
+	{ _KEY_RECORD,  	{ "Record button", "Volume up", "Volume down", NULL }, 75, 1, },
+	{ KEY_VOLUMEUP, 	{ "Volume up", NULL }, 75, 0, },
+	{ KEY_VOLUMEDOWN,	{ "Volume down", "Record button", NULL }, 75, 0, },
+	/* Diagonal joypad */
+	{ KEY_ENTER,     	{ "Joypad action", NULL }, 0, 0},
+	/* One diagonal pressed */
+	/* NE */
+	{ KEY_UP,       	{ "Joypad NE", "Joypad action", NULL}, 0, 1},
+	{ KEY_RIGHT,       	{ "Joypad NE", "Joypad action", NULL}, 0, 1},
+	/* NW */
+	{ KEY_UP,       	{ "Joypad NW", "Joypad action", NULL}, 0, 1},
+	{ KEY_LEFT,       	{ "Joypad NW", "Joypad action", NULL}, 0, 1},
+	/* SE */
+	{ KEY_DOWN,       	{ "Joypad SE", "Joypad action", NULL}, 0, 1},
+	{ KEY_RIGHT,       	{ "Joypad SE", "Joypad action", NULL}, 0, 1},
+	/* SW */
+	{ KEY_DOWN,       	{ "Joypad SW", "Joypad action", NULL}, 0, 1},
+	{ KEY_LEFT,       	{ "Joypad SW", "Joypad action", NULL}, 0, 1},
+	/* Two diagonals pressed */
+	{ KEY_UP,        	{ "Joypad NE", "Joypad NW", "Joypad action", NULL }, 0, 2},
+	{ KEY_LEFT,        	{ "Joypad NW", "Joypad SW", "Joypad action", NULL }, 0, 2},
+	{ KEY_DOWN,        	{ "Joypad SW", "Joypad SE", "Joypad action", NULL }, 0, 2},
+	{ KEY_RIGHT,        	{ "Joypad SE", "Joypad NE", "Joypad action", NULL }, 0, 2},
+};
+
+static struct gpiodev_keys2_platform_data h5000_gpiodev_keys2_platform_data = {
+	.gpios  =  	h5000_gpiodev_keys2_gpios,
+	.ngpios =  	ARRAY_SIZE(h5000_gpiodev_keys2_gpios),
+	.buttons = 	h5000_gpiodev_keys2_buttons,
+	.nbuttons = 	ARRAY_SIZE(h5000_gpiodev_keys2_buttons),
 };
 
-
-static struct gpiodev_keys_platform_data h5400_pxa_keys_data = {
-	.buttons = h5400_button_table,
-	.nbuttons = ARRAY_SIZE(h5400_button_table),
-};
-
-static struct platform_device h5400_pxa_keys = {
-	.name = "gpiodev-keys",
-	.dev = {
-		.platform_data = &h5400_pxa_keys_data,
-	},
-};
-
-static struct gpiodev_diagonal_button h5400_joypad_table[] = {
-	{ { &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK1 }, 1, GPIODEV_DIAG_LEFT | GPIODEV_DIAG_UP, "Joypad left-up" },
-	{ { &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK2 }, 1, GPIODEV_DIAG_RIGHT | GPIODEV_DIAG_UP, "Joypad right-up" },
-	{ { &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK3 }, 1, GPIODEV_DIAG_RIGHT | GPIODEV_DIAG_DOWN, "Joypad right-down" },
-	{ { &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK4 }, 1, GPIODEV_DIAG_LEFT | GPIODEV_DIAG_DOWN, "Joypad left-down" },
-	{ { &h5400_samcop.dev, SAMCOP_GPA_JOYSTICK5 }, 1, GPIODEV_DIAG_ACTION, "Joypad action" },
-};
-
-static struct gpiodev_diagonal_platform_data h5400_pxa_joypad_data = {
-	.buttons = h5400_joypad_table,
-	.nbuttons = ARRAY_SIZE(h5400_joypad_table),
-	.dir_disables_enter = 1,
-};
-
-static struct platform_device h5400_pxa_joypad = {
-	.name = "gpiodev-diagonal",
+static struct platform_device h5000_gpiodev_keys2 = {
+	.name = "gpiodev-keys2",
 	.dev = {
-		.platform_data = &h5400_pxa_joypad_data,
+		.platform_data = &h5000_gpiodev_keys2_platform_data,
 	},
 };
 
-
 static void __init
 h5400_init (void)
 {
@@ -723,8 +738,7 @@
 	platform_device_register (&h5000_flash[0]);
 	platform_device_register (&h5000_flash[1]);
 	platform_device_register (&h5400_samcop);
-	platform_device_register (&h5400_pxa_keys);
-	platform_device_register (&h5400_pxa_joypad);
+	platform_device_register (&h5000_gpiodev_keys2);
 	pxa_set_udc_info (&h5400_udc_mach_info);
 	pxa_set_dma_needs_bounce (h5400_dma_needs_bounce);
 }
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/htcapache/htcapache.c hnd-cleanup/arch/arm/mach-pxa/htcapache/htcapache.c
--- hnd-linux-trunk/arch/arm/mach-pxa/htcapache/htcapache.c	2007-09-17 22:44:28.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/htcapache/htcapache.c	2007-09-17 23:22:50.000000000 +0400
@@ -8,34 +8,32 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/init.h>
-#include <linux/device.h>
-#include <linux/fb.h>
-#include <linux/platform_device.h>
 #include <linux/delay.h> // mdelay
-#include <linux/input.h>
-#include <linux/ad7877.h>
-#include <linux/touchscreen-adc.h>
-#include <linux/gpio_keys.h>
-#include <linux/adc_battery.h>
-#include <linux/pda_power.h>
-#include <linux/mfd/htc-egpio.h>
-
-#include <asm/mach-types.h>
-#include <asm/mach/arch.h>
-
-#include <asm/arch/hardware.h>
-#include <asm/arch/pxafb.h>
-#include <asm/arch/pxa-regs.h>
-#include <asm/arch/udc.h>
-#include <asm/arch/htcapache-gpio.h>
-#include <asm/arch/mmc.h>
-#include <asm/arch/serial.h>
-#include <asm/arch/pxa27x_keyboard.h>
+#include <linux/input.h> // KEY_*
+#include <linux/ad7877.h> // struct ad7877_data
+#include <linux/touchscreen-adc.h> // struct tsadc
+#include <linux/gpio_keys.h> // struct gpio_keys_button
+#include <linux/adc_battery.h> // struct battery_info
+#include <linux/pda_power.h> // struct pda_power_pdata
+#include <linux/mfd/htc-egpio.h> // struct htc_egpio_platform_data
+#include <linux/mfd/htc-bbkeys.h> // struct htc_bbkeys_platform_data
+#include <linux/leds.h> // struct gpio_led
+#include <linux/platform_device.h> // struct platform_device
+
+#include <asm/gpio.h> // gpio_set_value
+#include <asm/mach-types.h> // MACH_TYPE_HTCAPACHE
+#include <asm/mach/arch.h> // MACHINE_START
+
+#include <asm/arch/pxafb.h> // struct pxafb_mach_info
+#include <asm/arch/udc.h> // PXA2XX_UDC_CMD_DISCONNECT
+#include <asm/arch/htcapache-gpio.h> // GPIO_NR_HTCAPACHE_*
+#include <asm/arch/mmc.h> // MMC_VDD_32_33
+#include <asm/arch/serial.h> // PXA_UART_CFG_POST_STARTUP
+#include <asm/arch/pxa27x_keyboard.h> // struct pxa27x_keyboard_platform_data
 #include <asm/arch/irda.h> // struct pxaficp_platform_data
 
-#include "../generic.h"
-#include "../../../../drivers/net/wireless/acx/acx_hw.h"
+#include "../generic.h" // pxa_map_io
+#include "../../../../drivers/net/wireless/acx/acx_hw.h" // acx_hardware_data
 
 
 /****************************************************************
@@ -60,20 +58,20 @@
 
 struct htc_egpio_pinInfo pins[] = {
 	// Input pins with IRQs
-	{.pin_nr = EGPIO_NR_HTCAPACHE_PWR_IN_PWR
+	{.gpio = EGPIO_NR_HTCAPACHE_PWR_IN_PWR
 	 , .type = HTC_EGPIO_TYPE_INPUT
 	 , .input_irq = EGPIO_NR_HTCAPACHE_PWR_IN_PWR+8},
-	{.pin_nr = EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR
+	{.gpio = EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR
 	 , .type = HTC_EGPIO_TYPE_INPUT
 	 , .input_irq = EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR+8},
-	{.pin_nr = EGPIO_NR_HTCAPACHE_SND_IN_JACK
+	{.gpio = EGPIO_NR_HTCAPACHE_SND_IN_JACK
 	 , .type = HTC_EGPIO_TYPE_INPUT
 	 , .input_irq = EGPIO_NR_HTCAPACHE_SND_IN_JACK+8},
-	{.pin_nr = EGPIO_NR_HTCAPACHE_WIFI_IN_IRQ
+	{.gpio = EGPIO_NR_HTCAPACHE_WIFI_IN_IRQ
 	 , .type = HTC_EGPIO_TYPE_INPUT
 	 , .input_irq = EGPIO_NR_HTCAPACHE_WIFI_IN_IRQ+8},
 	// Output pins that default on
-	{.pin_nr = EGPIO_NR_HTCAPACHE_PWR_CHARGE
+	{.gpio = EGPIO_NR_HTCAPACHE_PWR_CHARGE
 	 , .type = HTC_EGPIO_TYPE_OUTPUT
 	 , .output_initial = 1},  // Disable charger
 };
@@ -81,7 +79,7 @@
 struct htc_egpio_platform_data egpio_data = {
 	.invertAcks = 1,
 	.irq_base = IRQ_BOARD_START,
-	.gpio_base = GPIO_BASE_INCREMENT,
+	.gpio_base = HTCAPACHE_EGPIO_BASE,
 	.nrRegs = 3,
 	.pins = pins,
 	.nr_pins = ARRAY_SIZE(pins),
@@ -98,53 +96,87 @@
 };
 
 // Compatibility wrappers
-#define IRQ_EGPIO(x)   (IRQ_BOARD_START + (x) + 8)
-int htcapache_egpio_get(int bit) {
-	return egpio_data.ops.get(&egpio.dev, bit);
-}
-EXPORT_SYMBOL(htcapache_egpio_get);
-void htcapache_egpio_set(int bit, int value) {
-	egpio_data.ops.set(&egpio.dev, bit, value);
-}
-EXPORT_SYMBOL(htcapache_egpio_set);
-int htcapache_egpio_to_irq(int bit) {
-	return egpio_data.ops.to_irq(&egpio.dev, bit);
-}
-EXPORT_SYMBOL(htcapache_egpio_to_irq);
+#define IRQ_EGPIO(x)   (IRQ_BOARD_START + (x) - HTCAPACHE_EGPIO_BASE + 8)
 
 
 /****************************************************************
- * LCD power
+ * Front keypad
+ ****************************************************************/
+
+#define HTCAPACHE_BBKEYS_BASE (HTCAPACHE_EGPIO_BASE + GPIO_BASE_INCREMENT)
+#define BBKEYS_GPIO(reg,bit) (HTCAPACHE_BBKEYS_BASE + 8*(reg) + (bit))
+
+static struct resource bbkeys_resources[] = {
+	[0] = {
+		.start  = IRQ_GPIO(GPIO_NR_HTCAPACHE_MC_IRQ),
+		.end    = IRQ_GPIO(GPIO_NR_HTCAPACHE_MC_IRQ),
+		.flags  = IORESOURCE_IRQ,
+	},
+};
+
+static struct htc_bbkeys_platform_data bbkeys_data = {
+	.sda_gpio = GPIO_NR_HTCAPACHE_MC_SDA,
+	.scl_gpio = GPIO_NR_HTCAPACHE_MC_SCL,
+	.gpio_base = HTCAPACHE_BBKEYS_BASE,
+
+	.ackreg = 3,
+	.key1reg = 4,
+	.key2reg = 5,
+	.buttons = {
+		-1, -1, -1,
+		KEY_ENTER,     // Joystick press
+		KEY_DOWN,      // Joystick down
+		KEY_LEFT,      // Joystick left
+		KEY_UP,        // Joystick up
+		KEY_RIGHT,     // Joystick right
+		-1, -1,
+		KEY_LEFTMETA,  // Windows key
+		KEY_OK,        // Ok
+		KEY_RIGHTCTRL, // Right menu
+		KEY_ESC,       // Hangup
+		KEY_LEFTCTRL,  // Left menu
+		KEY_PHONE,     // Call button
+	}
+};
+
+static struct platform_device bbkeys = {
+	.name   = "htc-bbkeys",
+	.id     = -1,
+	.resource = bbkeys_resources,
+	.num_resources = ARRAY_SIZE(bbkeys_resources),
+	.dev	=  {
+		.platform_data	= &bbkeys_data,
+	},
+};
+
+
+/****************************************************************
+ * LCD
  ****************************************************************/
 
 static void lcd_power(int on, struct fb_var_screeninfo *si)
 {
 	if (on) {
 		printk(KERN_DEBUG "lcd power on\n");
-		htcapache_write_mc_reg(0, 0x40);
+		gpio_set_value(BBKEYS_GPIO(0, 6), 1);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0xc0);
+		gpio_set_value(BBKEYS_GPIO(0, 7), 1);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0xd0);
+		gpio_set_value(BBKEYS_GPIO(0, 4), 1);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0xf0);
+		gpio_set_value(BBKEYS_GPIO(0, 5), 1);
 	} else {
 		printk(KERN_DEBUG "lcd power off\n");
-		htcapache_write_mc_reg(0, 0xd0);
+		gpio_set_value(BBKEYS_GPIO(0, 5), 0);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0xc0);
+		gpio_set_value(BBKEYS_GPIO(0, 4), 0);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0x40);
+		gpio_set_value(BBKEYS_GPIO(0, 7), 0);
 		udelay(2000);
-		htcapache_write_mc_reg(0, 0x00);
+		gpio_set_value(BBKEYS_GPIO(0, 6), 0);
 	}
 }
 
-
-/****************************************************************
- * Frame buffer
- ****************************************************************/
-
 static struct pxafb_mode_info lcd_mode = {
 	.pixclock		= 192307,
 	.xres			= 240,
@@ -220,8 +252,8 @@
 
 static void set_charge(int flags)
 {
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_USB_PWR
-			    , flags == PDA_POWER_CHARGE_USB);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_USB_PWR
+		       , flags == PDA_POWER_CHARGE_USB);
 
 	// XXX - enable/disable battery charger once charge complete
 	// detection available.
@@ -229,15 +261,15 @@
 
 static int ac_on(void)
 {
-	int haspower = !htcapache_egpio_get(EGPIO_NR_HTCAPACHE_PWR_IN_PWR);
-	int hashigh = !htcapache_egpio_get(EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR);
+	int haspower = !gpio_get_value(EGPIO_NR_HTCAPACHE_PWR_IN_PWR);
+	int hashigh = !gpio_get_value(EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR);
 	return haspower && hashigh;
 }
 
 static int usb_on(void)
 {
-	int haspower = !htcapache_egpio_get(EGPIO_NR_HTCAPACHE_PWR_IN_PWR);
-	int hashigh = !htcapache_egpio_get(EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR);
+	int haspower = !gpio_get_value(EGPIO_NR_HTCAPACHE_PWR_IN_PWR);
+	int hashigh = !gpio_get_value(EGPIO_NR_HTCAPACHE_PWR_IN_HIGHPWR);
 	return haspower && !hashigh;
 }
 
@@ -301,8 +333,33 @@
  * LEDS
  ****************************************************************/
 
+struct gpio_led apache_leds[] = {
+	{ .name = "apache:vibra", .gpio = EGPIO_NR_HTCAPACHE_LED_VIBRA },
+	{ .name = "apache:kbd_bl",
+	  .gpio = EGPIO_NR_HTCAPACHE_LED_KBD_BACKLIGHT },
+	{ .name = "apache:flashlight",
+	  .gpio = GPIO_NR_HTCAPACHE_LED_FLASHLIGHT },
+	{ .name = "apache:phone_bl", .gpio = BBKEYS_GPIO(1, 5) },
+
+	{ .name = "apacheLeft:green", .gpio = BBKEYS_GPIO(2, 2) },
+	{ .name = "apacheLeft:blue", .gpio = BBKEYS_GPIO(2, 3) },
+	{ .name = "apacheLeft:alter", .gpio = BBKEYS_GPIO(2, 4) },
+	{ .name = "apacheRight:green", .gpio = BBKEYS_GPIO(2, 5) },
+	{ .name = "apacheRight:red", .gpio = BBKEYS_GPIO(2, 6) },
+	{ .name = "apacheRight:alter", .gpio = BBKEYS_GPIO(2, 7) },
+};
+
+static struct gpio_led_platform_data apache_led_info = {
+	.leds = apache_leds,
+	.num_leds = ARRAY_SIZE(apache_leds),
+};
+
 static struct platform_device leds = {
-	.name = "htcapache-leds",
+	.name = "leds-gpio",
+	.id = -1,
+	.dev = {
+		.platform_data = &apache_led_info,
+	}
 };
 
 
@@ -320,9 +377,9 @@
 		pxa_gpio_mode(GPIO44_BTCTS_MD);
 		pxa_gpio_mode(GPIO45_BTRTS_MD);
 
-		htcapache_egpio_set(EGPIO_NR_HTCAPACHE_BT_POWER, 1);
+		gpio_set_value(EGPIO_NR_HTCAPACHE_BT_POWER, 1);
 		mdelay(5);
-		htcapache_egpio_set(EGPIO_NR_HTCAPACHE_BT_RESET, 1);
+		gpio_set_value(EGPIO_NR_HTCAPACHE_BT_RESET, 1);
 		/*
 		 * BRF6150's RTS goes low when firmware is ready
 		 * so check for CTS=1 (nCTS=0 -> CTS=1). Typical 150ms
@@ -334,8 +391,8 @@
 		printk("btuart: post_startup (%d)\n", tries);
 		break;
 	case PXA_UART_CFG_PRE_SHUTDOWN:
-		htcapache_egpio_set(EGPIO_NR_HTCAPACHE_BT_POWER, 0);
-		htcapache_egpio_set(EGPIO_NR_HTCAPACHE_BT_RESET, 0);
+		gpio_set_value(EGPIO_NR_HTCAPACHE_BT_POWER, 0);
+		gpio_set_value(EGPIO_NR_HTCAPACHE_BT_RESET, 0);
 		printk("btuart: pre_shutdown\n");
 		break;
 	}
@@ -370,23 +427,23 @@
 static int
 wlan_start(void)
 {
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER1, 1);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER2, 1);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER3, 1);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER1, 1);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER2, 1);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER3, 1);
 	mdelay(250);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_RESET, 1);
-        mdelay(100);
-        return 0;
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_RESET, 1);
+	mdelay(100);
+	return 0;
 }
 
 static int
 wlan_stop(void)
 {
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER1, 0);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER2, 0);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_POWER3, 0);
-	htcapache_egpio_set(EGPIO_NR_HTCAPACHE_WIFI_RESET, 0);
-        return 0;
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER1, 0);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER2, 0);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_POWER3, 0);
+	gpio_set_value(EGPIO_NR_HTCAPACHE_WIFI_RESET, 0);
+	return 0;
 }
 
 enum {
@@ -546,38 +603,6 @@
 
 
 /****************************************************************
- * Buttons on front
- ****************************************************************/
-
-static struct gpio_keys_button front_button_list[] = {
-	{ .gpio = 15, .keycode = KEY_PHONE},     // Call button
-	{ .gpio = 14, .keycode = KEY_LEFTCTRL},  // Left menu
-	{ .gpio = 13, .keycode = KEY_ESC},       // Hangup
-	{ .gpio = 12, .keycode = KEY_RIGHTCTRL}, // Right menu
-	{ .gpio = 11, .keycode = KEY_OK},        // Ok
-	{ .gpio = 10, .keycode = KEY_LEFTMETA},  // Windows key
-	{ .gpio = 7,  .keycode = KEY_RIGHT},     // Joystick right
-	{ .gpio = 6,  .keycode = KEY_UP},        // Joystick up
-	{ .gpio = 5,  .keycode = KEY_LEFT},      // Joystick left
-	{ .gpio = 4,  .keycode = KEY_DOWN},      // Joystick down
-	{ .gpio = 3,  .keycode = KEY_ENTER},     // Joystick press
-};
-
-static struct gpio_keys_platform_data front_buttons_data = {
-	.buttons = front_button_list,
-	.nbuttons = ARRAY_SIZE(front_button_list),
-};
-
-static struct platform_device front_buttons = {
-	.name   = "htcapache-frontkeys",
-	.id     = -1,
-	.dev	=  {
-		.platform_data	= &front_buttons_data,
-	},
-};
-
-
-/****************************************************************
  * USB client controller
  ****************************************************************/
 
@@ -660,6 +685,7 @@
 
 static struct platform_device *devices[] __initdata = {
 	&egpio,
+	&bbkeys,
 	&htcapache_keyboard,
 	&htcapache_buttons,
 	&ad7877,
@@ -669,15 +695,14 @@
 	&htcapache_bl,
 	&leds,
 	&acx_device,
-	&front_buttons,
 };
 
 void htcapache_ll_pm_init(void);
 
 static void __init htcapache_init(void)
 {
-	set_pxa_fb_info(&lcd);
 	platform_add_devices(devices, ARRAY_SIZE(devices));
+	set_pxa_fb_info(&lcd);
 	pxa_set_btuart_info(&btuart_funcs);
 	pxa_set_udc_info(&htcapache_udc_mach_info);
 	pxa_set_mci_info(&htcapache_mci_platform_data);
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/htcapache/Kconfig hnd-cleanup/arch/arm/mach-pxa/htcapache/Kconfig
--- hnd-linux-trunk/arch/arm/mach-pxa/htcapache/Kconfig	2007-09-17 22:44:28.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/htcapache/Kconfig	2007-09-17 23:22:50.000000000 +0400
@@ -9,6 +9,8 @@
         select LEDS_CLASS
         select ADC
         select HTC_EGPIO
+        select HTC_BBKEYS
+        select LEDS_GPIO
 	help
 		Say Y here if you intend to run this kernel on a
 		HTC Apache. Currently there is only basic support
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/htcapache/Makefile hnd-cleanup/arch/arm/mach-pxa/htcapache/Makefile
--- hnd-linux-trunk/arch/arm/mach-pxa/htcapache/Makefile	2007-09-17 22:44:28.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/htcapache/Makefile	2007-09-17 23:22:50.000000000 +0400
@@ -4,7 +4,4 @@
 
 obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache.o
 obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache-bl.o
-obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache-mc.o
-obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache-leds.o
-obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache-frontkeys.o
 obj-$(CONFIG_MACH_HTCAPACHE)        += htcapache-pm.o
diff -ruN -X X hnd-linux-trunk/arch/arm/mach-pxa/Kconfig hnd-cleanup/arch/arm/mach-pxa/Kconfig
--- hnd-linux-trunk/arch/arm/mach-pxa/Kconfig	2007-09-17 22:44:32.000000000 +0400
+++ hnd-cleanup/arch/arm/mach-pxa/Kconfig	2007-09-17 23:22:54.000000000 +0400
@@ -54,6 +54,7 @@
 source "arch/arm/mach-pxa/palmt650/Kconfig"
 source "arch/arm/mach-pxa/palmt680/Kconfig"
 source "arch/arm/mach-pxa/palmt700wx/Kconfig"
+source "arch/arm/mach-pxa/plat-recon/Kconfig"
 
 config MA