***************************************************
tracking-linaro-android-3.6 has 18 conflicts

--------------------------------------------------
diff --cc arch/arm/include/asm/smp.h
index 2e3be16,7f74b59..0000000
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@@ -80,37 -89,10 +80,41 @@@ extern void cpu_die(void)
  extern void arch_send_call_function_single_ipi(int cpu);
  extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
  
++<<<<<<< HEAD
 +struct smp_operations {
 +#ifdef CONFIG_SMP
 +	/*
 +	 * Setup the set of possible CPUs (via set_cpu_possible)
 +	 */
 +	void (*smp_init_cpus)(void);
 +	/*
 +	 * Initialize cpu_possible map, and enable coherency
 +	 */
 +	void (*smp_prepare_cpus)(unsigned int max_cpus);
 +
 +	/*
 +	 * Perform platform specific initialisation of the specified CPU.
 +	 */
 +	void (*smp_secondary_init)(unsigned int cpu);
 +	/*
 +	 * Boot a secondary CPU, and assign it the specified idle task.
 +	 * This also gives us the initial stack to use for this CPU.
 +	 */
 +	int  (*smp_boot_secondary)(unsigned int cpu, struct task_struct *idle);
 +#ifdef CONFIG_HOTPLUG_CPU
 +	int  (*cpu_kill)(unsigned int cpu);
 +	void (*cpu_die)(unsigned int cpu);
 +	int  (*cpu_disable)(unsigned int cpu);
 +#endif
 +#endif
 +};
 +
 +/*
 + * set platform specific SMP operations
 + */
 +extern void smp_set_ops(struct smp_operations *);
++=======
+ extern void smp_send_all_cpu_backtrace(void);
++>>>>>>> tracking-linaro-android-3.6
  
  #endif /* ifndef __ASM_ARM_SMP_H */
--------------------------------------------------
diff --cc arch/arm/kernel/process.c
index 90084a6,4fff006..0000000
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@@ -31,7 -31,7 +31,11 @@@
  #include <linux/random.h>
  #include <linux/hw_breakpoint.h>
  #include <linux/cpuidle.h>
++<<<<<<< HEAD
 +#include <linux/leds.h>
++=======
+ #include <linux/console.h>
++>>>>>>> tracking-linaro-android-3.6
  
  #include <asm/cacheflush.h>
  #include <asm/processor.h>
@@@ -187,9 -224,9 +228,13 @@@ void cpu_idle(void
  
  	/* endless idle loop with no priority at all */
  	while (1) {
+ 		idle_notifier_call_chain(IDLE_START);
  		tick_nohz_idle_enter();
  		rcu_idle_enter();
++<<<<<<< HEAD
 +		ledtrig_cpu(CPU_LED_IDLE_START);
++=======
++>>>>>>> tracking-linaro-android-3.6
  		while (!need_resched()) {
  #ifdef CONFIG_HOTPLUG_CPU
  			if (cpu_is_offline(smp_processor_id()))
@@@ -220,9 -257,9 +265,13 @@@
  			} else
  				local_irq_enable();
  		}
++<<<<<<< HEAD
 +		ledtrig_cpu(CPU_LED_IDLE_END);
++=======
++>>>>>>> tracking-linaro-android-3.6
  		rcu_idle_exit();
  		tick_nohz_idle_exit();
+ 		idle_notifier_call_chain(IDLE_END);
  		schedule_preempt_disabled();
  	}
  }
--------------------------------------------------
diff --cc drivers/base/power/main.c
index a3c1404,fcda997..0000000
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@@ -1073,8 -1087,13 +1107,18 @@@ static int __device_suspend(struct devi
  		goto Complete;
  	}
  
++<<<<<<< HEAD
 +	if (dev->power.syscore)
 +		goto Complete;
++=======
+ 	data.dev = dev;
+ 	data.tsk = get_current();
+ 	init_timer_on_stack(&timer);
+ 	timer.expires = jiffies + HZ * 12;
+ 	timer.function = dpm_drv_timeout;
+ 	timer.data = (unsigned long)&data;
+ 	add_timer(&timer);
++>>>>>>> tracking-linaro-android-3.6
  
  	device_lock(dev);
  
--------------------------------------------------
diff --cc drivers/hid/hid-input.c
index d917c0d,6fc7bd9..0000000
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@@ -1229,8 -1228,9 +1229,14 @@@ int hidinput_connect(struct hid_device 
  				 * UGCI) cram a lot of unrelated inputs into the
  				 * same interface. */
  				hidinput->report = report;
++<<<<<<< HEAD
 +				if (drv->input_configured)
 +					drv->input_configured(hid, hidinput);
++=======
+ 				if (hid->driver->input_register &&
+ 						hid->driver->input_register(hid, hidinput))
+ 					goto out_cleanup;
++>>>>>>> tracking-linaro-android-3.6
  				if (input_register_device(hidinput->input))
  					goto out_cleanup;
  				hidinput = NULL;
@@@ -1238,12 -1238,12 +1244,21 @@@
  		}
  	}
  
++<<<<<<< HEAD
 +	if (hidinput) {
 +		if (drv->input_configured)
 +			drv->input_configured(hid, hidinput);
 +		if (input_register_device(hidinput->input))
 +			goto out_cleanup;
 +	}
++=======
+ 	if (hidinput && hid->driver->input_register &&
+ 			hid->driver->input_register(hid, hidinput))
+ 		goto out_cleanup;
+ 
+ 	if (hidinput && input_register_device(hidinput->input))
+ 		goto out_cleanup;
++>>>>>>> tracking-linaro-android-3.6
  
  	return 0;
  
--------------------------------------------------
diff --cc drivers/input/evdev.c
index 6ae2ac4,9f90ab1..0000000
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@@ -23,7 -23,7 +23,11 @@@
  #include <linux/input/mt.h>
  #include <linux/major.h>
  #include <linux/device.h>
++<<<<<<< HEAD
 +#include <linux/cdev.h>
++=======
+ #include <linux/wakelock.h>
++>>>>>>> tracking-linaro-android-3.6
  #include "input-compat.h"
  
  struct evdev {
@@@ -75,38 -90,12 +84,40 @@@ static void __pass_event(struct evdev_c
  
  	if (event->type == EV_SYN && event->code == SYN_REPORT) {
  		client->packet_head = client->head;
+ 		if (client->use_wake_lock)
+ 			wake_lock(&client->wake_lock);
  		kill_fasync(&client->fasync, SIGIO, POLL_IN);
  	}
 +}
 +
 +static void evdev_pass_values(struct evdev_client *client,
 +			const struct input_value *vals, unsigned int count,
 +			ktime_t mono, ktime_t real)
 +{
 +	struct evdev *evdev = client->evdev;
 +	const struct input_value *v;
 +	struct input_event event;
 +	bool wakeup = false;
 +
 +	event.time = ktime_to_timeval(client->clkid == CLOCK_MONOTONIC ?
 +				      mono : real);
 +
 +	/* Interrupts are disabled, just acquire the lock. */
 +	spin_lock(&client->buffer_lock);
 +
 +	for (v = vals; v != vals + count; v++) {
 +		event.type = v->type;
 +		event.code = v->code;
 +		event.value = v->value;
 +		__pass_event(client, &event);
 +		if (v->type == EV_SYN && v->code == SYN_REPORT)
 +			wakeup = true;
 +	}
  
  	spin_unlock(&client->buffer_lock);
 +
 +	if (wakeup)
 +		wake_up_interruptible(&evdev->wait);
  }
  
  /*
@@@ -316,11 -304,33 +329,15 @@@ static int evdev_open(struct inode *ino
  	client = kzalloc(sizeof(struct evdev_client) +
  				bufsize * sizeof(struct input_event),
  			 GFP_KERNEL);
 -	if (!client) {
 -		error = -ENOMEM;
 -		goto err_put_evdev;
 -	}
 +	if (!client)
 +		return -ENOMEM;
  
+ 	client->clkid = CLOCK_MONOTONIC;
+ 
  	client->bufsize = bufsize;
  	spin_lock_init(&client->buffer_lock);
+ 	snprintf(client->name, sizeof(client->name), "%s-%d",
+ 			dev_name(&evdev->dev), task_tgid_vnr(current));
  	client->evdev = evdev;
  	evdev_attach_client(evdev, client);
  
--------------------------------------------------
diff --cc drivers/mmc/core/core.c
index 06c42cf,06bd481..0000000
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@@ -26,7 -26,7 +26,11 @@@
  #include <linux/suspend.h>
  #include <linux/fault-inject.h>
  #include <linux/random.h>
++<<<<<<< HEAD
 +#include <linux/slab.h>
++=======
+ #include <linux/wakelock.h>
++>>>>>>> tracking-linaro-android-3.6
  
  #include <linux/mmc/card.h>
  #include <linux/mmc/host.h>
@@@ -2506,21 -2475,17 +2568,26 @@@ int mmc_pm_notify(struct notifier_bloc
  	switch (mode) {
  	case PM_HIBERNATION_PREPARE:
  	case PM_SUSPEND_PREPARE:
 +		if (host->card && mmc_card_mmc(host->card) &&
 +		    mmc_card_doing_bkops(host->card)) {
 +			err = mmc_stop_bkops(host->card);
 +			if (err) {
 +				pr_err("%s: didn't stop bkops\n",
 +					mmc_hostname(host));
 +				return err;
 +			}
 +			mmc_card_clr_doing_bkops(host->card);
 +		}
  
  		spin_lock_irqsave(&host->lock, flags);
+ 		if (mmc_bus_needs_resume(host)) {
+ 			spin_unlock_irqrestore(&host->lock, flags);
+ 			break;
+ 		}
  		host->rescan_disable = 1;
 -		host->power_notify_type = MMC_HOST_PW_NOTIFY_SHORT;
  		spin_unlock_irqrestore(&host->lock, flags);
- 		cancel_delayed_work_sync(&host->detect);
+ 		if (cancel_delayed_work_sync(&host->detect))
+ 			wake_unlock(&host->detect_wake_lock);
  
  		if (!host->bus_ops || host->bus_ops->suspend)
  			break;
@@@ -2541,7 -2506,12 +2608,11 @@@
  	case PM_POST_RESTORE:
  
  		spin_lock_irqsave(&host->lock, flags);
+ 		if (mmc_bus_manual_resume(host)) {
+ 			spin_unlock_irqrestore(&host->lock, flags);
+ 			break;
+ 		}
  		host->rescan_disable = 0;
 -		host->power_notify_type = MMC_HOST_PW_NOTIFY_LONG;
  		spin_unlock_irqrestore(&host->lock, flags);
  		mmc_detect_change(host, 0);
  
--------------------------------------------------
diff --cc drivers/staging/android/ashmem.c
index 634b9ae,ecb2f55..0000000
--- a/drivers/staging/android/ashmem.c
+++ b/drivers/staging/android/ashmem.c
@@@ -317,21 -317,14 +317,21 @@@ static int ashmem_mmap(struct file *fil
  	}
  	get_file(asma->file);
  
- 	/*
- 	 * XXX - Reworked to use shmem_zero_setup() instead of
- 	 * shmem_set_file while we're in staging. -jstultz
- 	 */
- 	if (vma->vm_flags & VM_SHARED) {
- 		ret = shmem_zero_setup(vma);
- 		if (ret) {
- 			fput(asma->file);
- 			goto out;
- 		}
+ 	if (vma->vm_flags & VM_SHARED)
+ 		shmem_set_file(vma, asma->file);
+ 	else {
+ 		if (vma->vm_file)
+ 			fput(vma->vm_file);
+ 		vma->vm_file = asma->file;
  	}
++<<<<<<< HEAD
 +
 +	if (vma->vm_file)
 +		fput(vma->vm_file);
 +	vma->vm_file = asma->file;
++=======
+ 	vma->vm_flags |= VM_CAN_NONLINEAR;
++>>>>>>> tracking-linaro-android-3.6
  
  out:
  	mutex_unlock(&ashmem_mutex);
--------------------------------------------------
diff --cc drivers/staging/android/logger.c
index 1d5ed47,9a9ce7a..0000000
--- a/drivers/staging/android/logger.c
+++ b/drivers/staging/android/logger.c
@@@ -73,9 -61,11 +73,17 @@@ static LIST_HEAD(log_list)
   * reference counting. The structure is protected by log->mutex.
   */
  struct logger_reader {
++<<<<<<< HEAD
 +	struct logger_log	*log;
 +	struct list_head	list;
 +	size_t			r_off;
++=======
+ 	struct logger_log	*log;	/* associated log */
+ 	struct list_head	list;	/* entry in logger_log's list */
+ 	size_t			r_off;	/* current read head offset */
+ 	bool			r_all;	/* reader can read all entries */
+ 	int			r_ver;	/* reader ABI version */
++>>>>>>> tracking-linaro-android-3.6
  };
  
  /* logger_offset - returns index 'n' into the log via (optimized) modulus */
--------------------------------------------------
diff --cc drivers/staging/android/logger.h
index 9b929a8,3f612a3..0000000
--- a/drivers/staging/android/logger.h
+++ b/drivers/staging/android/logger.h
@@@ -20,24 -20,35 +20,56 @@@
  #include <linux/types.h>
  #include <linux/ioctl.h>
  
++<<<<<<< HEAD
 +/**
 + * struct logger_entry - defines a single entry that is given to a logger
 + * @len:	The length of the payload
 + * @__pad:	Two bytes of padding that appear to be required
 + * @pid:	The generating process' process ID
 + * @tid:	The generating process' thread ID
 + * @sec:	The number of seconds that have elapsed since the Epoch
 + * @nsec:	The number of nanoseconds that have elapsed since @sec
 + * @msg:	The message that is to be logged
 + */
 +struct logger_entry {
 +	__u16		len;
 +	__u16		__pad;
 +	__s32		pid;
 +	__s32		tid;
 +	__s32		sec;
 +	__s32		nsec;
 +	char		msg[0];
++=======
+ /*
+  * The userspace structure for version 1 of the logger_entry ABI.
+  * This structure is returned to userspace unless the caller requests
+  * an upgrade to a newer ABI version.
+  */
+ struct user_logger_entry_compat {
+ 	__u16		len;	/* length of the payload */
+ 	__u16		__pad;	/* no matter what, we get 2 bytes of padding */
+ 	__s32		pid;	/* generating process's pid */
+ 	__s32		tid;	/* generating process's tid */
+ 	__s32		sec;	/* seconds since Epoch */
+ 	__s32		nsec;	/* nanoseconds */
+ 	char		msg[0];	/* the entry's payload */
++>>>>>>> tracking-linaro-android-3.6
+ };
+ 
+ /*
+  * The structure for version 2 of the logger_entry ABI.
+  * This structure is returned to userspace if ioctl(LOGGER_SET_VERSION)
+  * is called with version >= 2
+  */
+ struct logger_entry {
+ 	__u16		len;		/* length of the payload */
+ 	__u16		hdr_size;	/* sizeof(struct logger_entry_v2) */
+ 	__s32		pid;		/* generating process's pid */
+ 	__s32		tid;		/* generating process's tid */
+ 	__s32		sec;		/* seconds since Epoch */
+ 	__s32		nsec;		/* nanoseconds */
+ 	uid_t		euid;		/* effective UID of logger */
+ 	char		msg[0];		/* the entry's payload */
  };
  
  #define LOGGER_LOG_RADIO	"log_radio"	/* radio-related messages */
--------------------------------------------------
diff --cc fs/fat/fat.h
index 623f36f,26c4a7c..0000000
--- a/fs/fat/fat.h
+++ b/fs/fat/fat.h
@@@ -76,11 -73,12 +76,20 @@@ struct msdos_sb_info 
  	unsigned int free_clusters;  /* -1 if undefined */
  	unsigned int free_clus_valid; /* is free_clusters valid? */
  	struct fat_mount_options options;
++<<<<<<< HEAD
 +	struct nls_table *nls_disk;   /* Codepage used on disk */
 +	struct nls_table *nls_io;     /* Charset used for input and display */
 +	const void *dir_ops;	      /* Opaque; default directory operations */
 +	int dir_per_block;	      /* dir entries per block */
 +	int dir_per_block_bits;	      /* log2(dir_per_block) */
++=======
+ 	struct nls_table *nls_disk;  /* Codepage used on disk */
+ 	struct nls_table *nls_io;    /* Charset used for input and display */
+ 	const void *dir_ops;		     /* Opaque; default directory operations */
+ 	int dir_per_block;	     /* dir entries per block */
+ 	int dir_per_block_bits;	     /* log2(dir_per_block) */
+ 	unsigned long vol_id;        /* volume ID */
++>>>>>>> tracking-linaro-android-3.6
  
  	int fatent_shift;
  	struct fatent_operations *fatent_ops;
--------------------------------------------------
diff --cc fs/proc/base.c
index 144a967,b39aa87..0000000
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@@ -137,6 -136,14 +137,17 @@@ struct pid_entry 
  		NULL, &proc_single_file_operations,	\
  		{ .proc_show = show } )
  
++<<<<<<< HEAD
++=======
+ static int proc_fd_permission(struct inode *inode, int mask);
+ 
+ /* ANDROID is for special files in /proc. */
+ #define ANDROID(NAME, MODE, OTYPE)			\
+ 	NOD(NAME, (S_IFREG|(MODE)),			\
+ 		&proc_##OTYPE##_inode_operations,	\
+ 		&proc_##OTYPE##_operations, {})
+ 
++>>>>>>> tracking-linaro-android-3.6
  /*
   * Count the number of hardlinks for the pid_entry table, excluding the .
   * and .. links.
@@@ -873,6 -880,140 +884,143 @@@ static const struct file_operations pro
  	.release	= mem_release,
  };
  
++<<<<<<< HEAD
++=======
+ static ssize_t oom_adjust_read(struct file *file, char __user *buf,
+ 				size_t count, loff_t *ppos)
+ {
+ 	struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
+ 	char buffer[PROC_NUMBUF];
+ 	size_t len;
+ 	int oom_adjust = OOM_DISABLE;
+ 	unsigned long flags;
+ 
+ 	if (!task)
+ 		return -ESRCH;
+ 
+ 	if (lock_task_sighand(task, &flags)) {
+ 		oom_adjust = task->signal->oom_adj;
+ 		unlock_task_sighand(task, &flags);
+ 	}
+ 
+ 	put_task_struct(task);
+ 
+ 	len = snprintf(buffer, sizeof(buffer), "%i\n", oom_adjust);
+ 
+ 	return simple_read_from_buffer(buf, count, ppos, buffer, len);
+ }
+ 
+ static ssize_t oom_adjust_write(struct file *file, const char __user *buf,
+ 				size_t count, loff_t *ppos)
+ {
+ 	struct task_struct *task;
+ 	char buffer[PROC_NUMBUF];
+ 	int oom_adjust;
+ 	unsigned long flags;
+ 	int err;
+ 
+ 	memset(buffer, 0, sizeof(buffer));
+ 	if (count > sizeof(buffer) - 1)
+ 		count = sizeof(buffer) - 1;
+ 	if (copy_from_user(buffer, buf, count)) {
+ 		err = -EFAULT;
+ 		goto out;
+ 	}
+ 
+ 	err = kstrtoint(strstrip(buffer), 0, &oom_adjust);
+ 	if (err)
+ 		goto out;
+ 	if ((oom_adjust < OOM_ADJUST_MIN || oom_adjust > OOM_ADJUST_MAX) &&
+ 	     oom_adjust != OOM_DISABLE) {
+ 		err = -EINVAL;
+ 		goto out;
+ 	}
+ 
+ 	task = get_proc_task(file->f_path.dentry->d_inode);
+ 	if (!task) {
+ 		err = -ESRCH;
+ 		goto out;
+ 	}
+ 
+ 	task_lock(task);
+ 	if (!task->mm) {
+ 		err = -EINVAL;
+ 		goto err_task_lock;
+ 	}
+ 
+ 	if (!lock_task_sighand(task, &flags)) {
+ 		err = -ESRCH;
+ 		goto err_task_lock;
+ 	}
+ 
+ 	if (oom_adjust < task->signal->oom_adj && !capable(CAP_SYS_RESOURCE)) {
+ 		err = -EACCES;
+ 		goto err_sighand;
+ 	}
+ 
+ 	/*
+ 	 * Warn that /proc/pid/oom_adj is deprecated, see
+ 	 * Documentation/feature-removal-schedule.txt.
+ 	 */
+ 	printk_once(KERN_WARNING "%s (%d): /proc/%d/oom_adj is deprecated, please use /proc/%d/oom_score_adj instead.\n",
+ 		  current->comm, task_pid_nr(current), task_pid_nr(task),
+ 		  task_pid_nr(task));
+ 	task->signal->oom_adj = oom_adjust;
+ 	/*
+ 	 * Scale /proc/pid/oom_score_adj appropriately ensuring that a maximum
+ 	 * value is always attainable.
+ 	 */
+ 	if (task->signal->oom_adj == OOM_ADJUST_MAX)
+ 		task->signal->oom_score_adj = OOM_SCORE_ADJ_MAX;
+ 	else
+ 		task->signal->oom_score_adj = (oom_adjust * OOM_SCORE_ADJ_MAX) /
+ 								-OOM_DISABLE;
+ 	trace_oom_score_adj_update(task);
+ err_sighand:
+ 	unlock_task_sighand(task, &flags);
+ err_task_lock:
+ 	task_unlock(task);
+ 	put_task_struct(task);
+ out:
+ 	return err < 0 ? err : count;
+ }
+ 
+ static int oom_adjust_permission(struct inode *inode, int mask)
+ {
+ 	uid_t uid;
+ 	struct task_struct *p;
+ 
+ 	p = get_proc_task(inode);
+ 	if(p) {
+ 		uid = task_uid(p);
+ 		put_task_struct(p);
+ 	}
+ 
+ 	/*
+ 	 * System Server (uid == 1000) is granted access to oom_adj of all 
+ 	 * android applications (uid > 10000) as and services (uid >= 1000)
+ 	 */
+ 	if (p && (current_fsuid() == 1000) && (uid >= 1000)) {
+ 		if (inode->i_mode >> 6 & mask) {
+ 			return 0;
+ 		}
+ 	}
+ 
+ 	/* Fall back to default. */
+ 	return generic_permission(inode, mask);
+ }
+ 
+ static const struct inode_operations proc_oom_adjust_inode_operations = {
+ 	.permission	= oom_adjust_permission,
+ };
+ 
+ static const struct file_operations proc_oom_adjust_operations = {
+ 	.read		= oom_adjust_read,
+ 	.write		= oom_adjust_write,
+ 	.llseek		= generic_file_llseek,
+ };
+ 
++>>>>>>> tracking-linaro-android-3.6
  static ssize_t oom_score_adj_read(struct file *file, char __user *buf,
  					size_t count, loff_t *ppos)
  {
@@@ -2598,6 -3119,7 +2746,10 @@@ static const struct pid_entry tgid_base
  	REG("cgroup",  S_IRUGO, proc_cgroup_operations),
  #endif
  	INF("oom_score",  S_IRUGO, proc_oom_score),
++<<<<<<< HEAD
++=======
+ 	ANDROID("oom_adj",S_IRUGO|S_IWUSR, oom_adjust),
++>>>>>>> tracking-linaro-android-3.6
  	REG("oom_score_adj", S_IRUGO|S_IWUSR, proc_oom_score_adj_operations),
  #ifdef CONFIG_AUDITSYSCALL
  	REG("loginuid",   S_IWUSR|S_IRUGO, proc_loginuid_operations),
--------------------------------------------------
diff --cc include/linux/Kbuild
index 7fe2dae,577aa75..0000000
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@@ -1,5 -1,416 +1,404 @@@
  header-y += dvb/
  header-y += hdlc/
  header-y += hsi/
 -header-y += isdn/
 -header-y += mmc/
 -header-y += nfsd/
  header-y += raid/
 -header-y += spi/
 -header-y += sunrpc/
 -header-y += tc_act/
 -header-y += tc_ematch/
 -header-y += netfilter/
 -header-y += netfilter_arp/
 -header-y += netfilter_bridge/
 -header-y += netfilter_ipv4/
 -header-y += netfilter_ipv6/
  header-y += usb/
++<<<<<<< HEAD
++=======
+ header-y += wimax/
+ 
+ objhdr-y += version.h
+ 
+ ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
+ 		  $(srctree)/include/asm-$(SRCARCH)/a.out.h \
+ 		  $(INSTALL_HDR_PATH)/include/asm-*/a.out.h),)
+ header-y += a.out.h
+ endif
+ ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
+ 		  $(srctree)/include/asm-$(SRCARCH)/kvm.h \
+ 		  $(INSTALL_HDR_PATH)/include/asm-*/kvm.h),)
+ header-y += kvm.h
+ endif
+ ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm_para.h \
+ 		  $(srctree)/include/asm-$(SRCARCH)/kvm_para.h \
+ 		  $(INSTALL_HDR_PATH)/include/asm-*/kvm_para.h),)
+ header-y += kvm_para.h
+ endif
+ 
+ header-y += acct.h
+ header-y += adb.h
+ header-y += adfs_fs.h
+ header-y += affs_hardblocks.h
+ header-y += agpgart.h
+ header-y += aio_abi.h
+ header-y += apm_bios.h
+ header-y += arcfb.h
+ header-y += atalk.h
+ header-y += atm.h
+ header-y += atm_eni.h
+ header-y += atm_he.h
+ header-y += atm_idt77105.h
+ header-y += atm_nicstar.h
+ header-y += atm_tcp.h
+ header-y += atm_zatm.h
+ header-y += atmapi.h
+ header-y += atmarp.h
+ header-y += atmbr2684.h
+ header-y += atmclip.h
+ header-y += atmdev.h
+ header-y += atmioc.h
+ header-y += atmlec.h
+ header-y += atmmpc.h
+ header-y += atmppp.h
+ header-y += atmsap.h
+ header-y += atmsvc.h
+ header-y += audit.h
+ header-y += auto_fs.h
+ header-y += auto_fs4.h
+ header-y += auxvec.h
+ header-y += ax25.h
+ header-y += b1lli.h
+ header-y += baycom.h
+ header-y += bfs_fs.h
+ header-y += binfmts.h
+ header-y += blk_types.h
+ header-y += blkpg.h
+ header-y += blktrace_api.h
+ header-y += bpqether.h
+ header-y += bsg.h
+ header-y += can.h
+ header-y += capability.h
+ header-y += capi.h
+ header-y += cciss_defs.h
+ header-y += cciss_ioctl.h
+ header-y += cdk.h
+ header-y += cdrom.h
+ header-y += cgroupstats.h
+ header-y += chio.h
+ header-y += cm4000_cs.h
+ header-y += cn_proc.h
+ header-y += coda.h
+ header-y += coda_psdev.h
+ header-y += coff.h
+ header-y += comstats.h
+ header-y += connector.h
+ header-y += const.h
+ header-y += cramfs_fs.h
+ header-y += cuda.h
+ header-y += cyclades.h
+ header-y += cycx_cfm.h
+ header-y += dcbnl.h
+ header-y += dccp.h
+ header-y += dlm.h
+ header-y += dlm_device.h
+ header-y += dlm_netlink.h
+ header-y += dlm_plock.h
+ header-y += dlmconstants.h
+ header-y += dm-ioctl.h
+ header-y += dm-log-userspace.h
+ header-y += dn.h
+ header-y += dqblk_xfs.h
+ header-y += edd.h
+ header-y += efs_fs_sb.h
+ header-y += elf-em.h
+ header-y += elf-fdpic.h
+ header-y += elf.h
+ header-y += elfcore.h
+ header-y += errno.h
+ header-y += errqueue.h
+ header-y += ethtool.h
+ header-y += eventpoll.h
+ header-y += fadvise.h
+ header-y += falloc.h
+ header-y += fanotify.h
+ header-y += fb.h
+ header-y += fcntl.h
+ header-y += fd.h
+ header-y += fdreg.h
+ header-y += fib_rules.h
+ header-y += fiemap.h
+ header-y += filter.h
+ header-y += firewire-cdev.h
+ header-y += firewire-constants.h
+ header-y += flat.h
+ header-y += fs.h
+ header-y += fsl_hypervisor.h
+ header-y += fuse.h
+ header-y += futex.h
+ header-y += gameport.h
+ header-y += gen_stats.h
+ header-y += generic_serial.h
+ header-y += genetlink.h
+ header-y += gfs2_ondisk.h
+ header-y += gigaset_dev.h
+ header-y += hdlc.h
+ header-y += hdlcdrv.h
+ header-y += hdreg.h
+ header-y += hid.h
+ header-y += hiddev.h
+ header-y += hidraw.h
+ header-y += hpet.h
+ header-y += hysdn_if.h
+ header-y += i2c-dev.h
+ header-y += i2c.h
+ header-y += i2o-dev.h
+ header-y += i8k.h
+ header-y += icmp.h
+ header-y += icmpv6.h
+ header-y += if.h
+ header-y += if_addr.h
+ header-y += if_addrlabel.h
+ header-y += if_alg.h
+ header-y += if_arcnet.h
+ header-y += if_arp.h
+ header-y += if_bonding.h
+ header-y += if_bridge.h
+ header-y += if_cablemodem.h
+ header-y += if_eql.h
+ header-y += if_ether.h
+ header-y += if_fc.h
+ header-y += if_fddi.h
+ header-y += if_frad.h
+ header-y += if_hippi.h
+ header-y += if_infiniband.h
+ header-y += if_link.h
+ header-y += if_ltalk.h
+ header-y += if_packet.h
+ header-y += if_phonet.h
+ header-y += if_plip.h
+ header-y += if_ppp.h
+ header-y += if_pppol2tp.h
+ header-y += if_pppox.h
+ header-y += if_pppolac.h
+ header-y += if_pppopns.h
+ header-y += if_slip.h
+ header-y += if_team.h
+ header-y += if_tun.h
+ header-y += if_tunnel.h
+ header-y += if_vlan.h
+ header-y += if_x25.h
+ header-y += igmp.h
+ header-y += in.h
+ header-y += in6.h
+ header-y += in_route.h
+ header-y += sock_diag.h
+ header-y += inet_diag.h
+ header-y += unix_diag.h
+ header-y += inotify.h
+ header-y += input.h
+ header-y += ioctl.h
+ header-y += ip.h
+ header-y += ip6_tunnel.h
+ header-y += ip_vs.h
+ header-y += ipc.h
+ header-y += ipmi.h
+ header-y += ipmi_msgdefs.h
+ header-y += ipsec.h
+ header-y += ipv6.h
+ header-y += ipv6_route.h
+ header-y += ipx.h
+ header-y += irda.h
+ header-y += irqnr.h
+ header-y += isdn.h
+ header-y += isdn_divertif.h
+ header-y += isdn_ppp.h
+ header-y += isdnif.h
+ header-y += iso_fs.h
+ header-y += ivtv.h
+ header-y += ivtvfb.h
+ header-y += ixjuser.h
+ header-y += jffs2.h
+ header-y += joystick.h
+ header-y += kd.h
+ header-y += kdev_t.h
+ header-y += kernel.h
+ header-y += kernelcapi.h
+ header-y += kernel-page-flags.h
+ header-y += kexec.h
+ header-y += keyboard.h
+ header-y += keyctl.h
+ header-y += l2tp.h
+ header-y += limits.h
+ header-y += llc.h
+ header-y += loop.h
+ header-y += lp.h
+ header-y += magic.h
+ header-y += major.h
+ header-y += map_to_7segment.h
+ header-y += matroxfb.h
+ header-y += mdio.h
+ header-y += media.h
+ header-y += mei.h
+ header-y += mempolicy.h
+ header-y += meye.h
+ header-y += mii.h
+ header-y += minix_fs.h
+ header-y += mman.h
+ header-y += mmtimer.h
+ header-y += mqueue.h
+ header-y += mroute.h
+ header-y += mroute6.h
+ header-y += msdos_fs.h
+ header-y += msg.h
+ header-y += mtio.h
+ header-y += n_r3964.h
+ header-y += nbd.h
+ header-y += ncp.h
+ header-y += ncp_fs.h
+ header-y += ncp_mount.h
+ header-y += ncp_no.h
+ header-y += neighbour.h
+ header-y += net.h
+ header-y += net_dropmon.h
+ header-y += net_tstamp.h
+ header-y += netdevice.h
+ header-y += netfilter.h
+ header-y += netfilter_arp.h
+ header-y += netfilter_bridge.h
+ header-y += netfilter_decnet.h
+ header-y += netfilter_ipv4.h
+ header-y += netfilter_ipv6.h
+ header-y += netlink.h
+ header-y += netrom.h
+ header-y += nfc.h
+ header-y += nfs.h
+ header-y += nfs2.h
+ header-y += nfs3.h
+ header-y += nfs4.h
+ header-y += nfs4_mount.h
+ header-y += nfs_fs.h
+ header-y += nfs_idmap.h
+ header-y += nfs_mount.h
+ header-y += nfsacl.h
+ header-y += nl80211.h
+ header-y += nubus.h
+ header-y += nvram.h
+ header-y += omap3isp.h
+ header-y += omapfb.h
+ header-y += oom.h
+ header-y += param.h
+ header-y += parport.h
+ header-y += patchkey.h
+ header-y += pci.h
+ header-y += pci_regs.h
+ header-y += perf_event.h
+ header-y += personality.h
+ header-y += pfkeyv2.h
+ header-y += pg.h
+ header-y += phantom.h
+ header-y += phonet.h
+ header-y += pkt_cls.h
+ header-y += pkt_sched.h
+ header-y += pktcdvd.h
+ header-y += pmu.h
+ header-y += poll.h
+ header-y += posix_types.h
+ header-y += ppdev.h
+ header-y += ppp-comp.h
+ header-y += ppp-ioctl.h
+ header-y += ppp_defs.h
+ header-y += pps.h
+ header-y += prctl.h
+ header-y += ptp_clock.h
+ header-y += ptrace.h
+ header-y += qnx4_fs.h
+ header-y += qnxtypes.h
+ header-y += quota.h
+ header-y += radeonfb.h
+ header-y += random.h
+ header-y += raw.h
+ header-y += rds.h
+ header-y += reboot.h
+ header-y += reiserfs_fs.h
+ header-y += reiserfs_xattr.h
+ header-y += resource.h
+ header-y += rfkill.h
+ header-y += romfs_fs.h
+ header-y += rose.h
+ header-y += route.h
+ header-y += rtc.h
+ header-y += rtnetlink.h
+ header-y += scc.h
+ header-y += sched.h
+ header-y += screen_info.h
+ header-y += sdla.h
+ header-y += seccomp.h
+ header-y += securebits.h
+ header-y += selinux_netlink.h
+ header-y += sem.h
+ header-y += serial.h
+ header-y += serial_core.h
+ header-y += serial_reg.h
+ header-y += serio.h
+ header-y += shm.h
+ header-y += signal.h
+ header-y += signalfd.h
+ header-y += snmp.h
+ header-y += socket.h
+ header-y += sockios.h
+ header-y += som.h
+ header-y += sonet.h
+ header-y += sonypi.h
+ header-y += sound.h
+ header-y += soundcard.h
+ header-y += stat.h
+ header-y += stddef.h
+ header-y += string.h
+ header-y += suspend_ioctls.h
+ header-y += swab.h
+ header-y += synclink.h
+ header-y += sysctl.h
+ header-y += sysinfo.h
+ header-y += taskstats.h
+ header-y += tcp.h
+ header-y += telephony.h
+ header-y += termios.h
+ header-y += time.h
+ header-y += times.h
+ header-y += timex.h
+ header-y += tiocl.h
+ header-y += tipc.h
+ header-y += tipc_config.h
+ header-y += toshiba.h
+ header-y += tty.h
+ header-y += types.h
+ header-y += udf_fs_i.h
+ header-y += udp.h
+ header-y += uhid.h
+ header-y += uinput.h
+ header-y += uio.h
+ header-y += ultrasound.h
+ header-y += un.h
+ header-y += unistd.h
+ header-y += usbdevice_fs.h
+ header-y += utime.h
+ header-y += utsname.h
+ header-y += uuid.h
+ header-y += uvcvideo.h
+ header-y += v4l2-common.h
+ header-y += v4l2-dv-timings.h
+ header-y += v4l2-mediabus.h
+ header-y += v4l2-subdev.h
+ header-y += veth.h
+ header-y += vhost.h
+ header-y += videodev2.h
+ header-y += virtio_9p.h
+ header-y += virtio_balloon.h
+ header-y += virtio_blk.h
+ header-y += virtio_config.h
+ header-y += virtio_console.h
+ header-y += virtio_ids.h
+ header-y += virtio_net.h
+ header-y += virtio_pci.h
+ header-y += virtio_ring.h
+ header-y += virtio_rng.h
+ header-y += vt.h
+ header-y += wait.h
+ header-y += wanrouter.h
+ header-y += watchdog.h
+ header-y += wimax.h
+ header-y += wireless.h
+ header-y += x25.h
+ header-y += xattr.h
+ header-y += xfrm.h
++>>>>>>> tracking-linaro-android-3.6
--------------------------------------------------
diff --cc include/linux/if_pppox.h
index aff7ad8,9590cde..0000000
--- a/include/linux/if_pppox.h
+++ b/include/linux/if_pppox.h
@@@ -18,8 -19,150 +18,147 @@@
  #include <linux/if.h>
  #include <linux/netdevice.h>
  #include <linux/ppp_channel.h>
++<<<<<<< HEAD
++=======
+ #endif /* __KERNEL__ */
+ #include <linux/if_pppol2tp.h>
+ #include <linux/if_pppolac.h>
+ #include <linux/if_pppopns.h>
+ 
+ /* For user-space programs to pick up these definitions
+  * which they wouldn't get otherwise without defining __KERNEL__
+  */
+ #ifndef AF_PPPOX
+ #define AF_PPPOX	24
+ #define PF_PPPOX	AF_PPPOX
+ #endif /* !(AF_PPPOX) */
+ 
+ /************************************************************************ 
+  * PPPoE addressing definition 
+  */ 
+ typedef __be16 sid_t;
+ struct pppoe_addr {
+ 	sid_t         sid;                    /* Session identifier */
+ 	unsigned char remote[ETH_ALEN];       /* Remote address */
+ 	char          dev[IFNAMSIZ];          /* Local device to use */
+ }; 
+  
+ /************************************************************************ 
+  * PPTP addressing definition
+  */
+ struct pptp_addr {
+ 	__be16		call_id;
+ 	struct in_addr	sin_addr;
+ };
+ 
+ /************************************************************************
+  * Protocols supported by AF_PPPOX
+  */
+ #define PX_PROTO_OE    0 /* Currently just PPPoE */
+ #define PX_PROTO_OL2TP 1 /* Now L2TP also */
+ #define PX_PROTO_PPTP  2
+ #define PX_PROTO_OLAC  3
+ #define PX_PROTO_OPNS  4
+ #define PX_MAX_PROTO   5
+ 
+ struct sockaddr_pppox {
+ 	__kernel_sa_family_t sa_family;       /* address family, AF_PPPOX */
+ 	unsigned int    sa_protocol;          /* protocol identifier */
+ 	union {
+ 		struct pppoe_addr  pppoe;
+ 		struct pptp_addr   pptp;
+ 	} sa_addr;
+ } __packed;
+ 
+ /* The use of the above union isn't viable because the size of this
+  * struct must stay fixed over time -- applications use sizeof(struct
+  * sockaddr_pppox) to fill it. We use a protocol specific sockaddr
+  * type instead.
+  */
+ struct sockaddr_pppol2tp {
+ 	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
+ 	unsigned int    sa_protocol;    /* protocol identifier */
+ 	struct pppol2tp_addr pppol2tp;
+ } __packed;
+ 
+ struct sockaddr_pppol2tpin6 {
+ 	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
+ 	unsigned int    sa_protocol;    /* protocol identifier */
+ 	struct pppol2tpin6_addr pppol2tp;
+ } __packed;
+ 
+ /* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
+  * bits. So we need a different sockaddr structure.
+  */
+ struct sockaddr_pppol2tpv3 {
+ 	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
+ 	unsigned int    sa_protocol;    /* protocol identifier */
+ 	struct pppol2tpv3_addr pppol2tp;
+ } __packed;
+ 
+ struct sockaddr_pppol2tpv3in6 {
+ 	__kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
+ 	unsigned int    sa_protocol;    /* protocol identifier */
+ 	struct pppol2tpv3in6_addr pppol2tp;
+ } __packed;
+ 
+ /*********************************************************************
+  *
+  * ioctl interface for defining forwarding of connections
+  *
+  ********************************************************************/
+ 
+ #define PPPOEIOCSFWD	_IOW(0xB1 ,0, size_t)
+ #define PPPOEIOCDFWD	_IO(0xB1 ,1)
+ /*#define PPPOEIOCGFWD	_IOWR(0xB1,2, size_t)*/
+ 
+ /* Codes to identify message types */
+ #define PADI_CODE	0x09
+ #define PADO_CODE	0x07
+ #define PADR_CODE	0x19
+ #define PADS_CODE	0x65
+ #define PADT_CODE	0xa7
+ struct pppoe_tag {
+ 	__be16 tag_type;
+ 	__be16 tag_len;
+ 	char tag_data[0];
+ } __attribute__ ((packed));
+ 
+ /* Tag identifiers */
+ #define PTT_EOL		__cpu_to_be16(0x0000)
+ #define PTT_SRV_NAME	__cpu_to_be16(0x0101)
+ #define PTT_AC_NAME	__cpu_to_be16(0x0102)
+ #define PTT_HOST_UNIQ	__cpu_to_be16(0x0103)
+ #define PTT_AC_COOKIE	__cpu_to_be16(0x0104)
+ #define PTT_VENDOR 	__cpu_to_be16(0x0105)
+ #define PTT_RELAY_SID	__cpu_to_be16(0x0110)
+ #define PTT_SRV_ERR     __cpu_to_be16(0x0201)
+ #define PTT_SYS_ERR  	__cpu_to_be16(0x0202)
+ #define PTT_GEN_ERR  	__cpu_to_be16(0x0203)
+ 
+ struct pppoe_hdr {
+ #if defined(__LITTLE_ENDIAN_BITFIELD)
+ 	__u8 ver : 4;
+ 	__u8 type : 4;
+ #elif defined(__BIG_ENDIAN_BITFIELD)
+ 	__u8 type : 4;
+ 	__u8 ver : 4;
+ #else
+ #error	"Please fix <asm/byteorder.h>"
+ #endif
+ 	__u8 code;
+ 	__be16 sid;
+ 	__be16 length;
+ 	struct pppoe_tag tag[0];
+ } __packed;
+ 
+ /* Length of entire PPPoE + PPP header */
+ #define PPPOE_SES_HLEN	8
+ 
+ #ifdef __KERNEL__
++>>>>>>> tracking-linaro-android-3.6
  #include <linux/skbuff.h>
 +#include <uapi/linux/if_pppox.h>
  
  static inline struct pppoe_hdr *pppoe_hdr(const struct sk_buff *skb)
  {
--------------------------------------------------
diff --cc include/linux/input.h
index cab994b,b99ea26..0000000
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@@ -5,12 -8,819 +5,824 @@@
   * under the terms of the GNU General Public License version 2 as published by
   * the Free Software Foundation.
   */
 +#ifndef _INPUT_H
 +#define _INPUT_H
  
 -#ifdef __KERNEL__
  #include <linux/time.h>
  #include <linux/list.h>
++<<<<<<< HEAD
 +#include <uapi/linux/input.h>
++=======
+ #else
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <linux/types.h>
+ #endif
+ 
+ /*
+  * The event structure itself
+  */
+ 
+ struct input_event {
+ 	struct timeval time;
+ 	__u16 type;
+ 	__u16 code;
+ 	__s32 value;
+ };
+ 
+ /*
+  * Protocol version.
+  */
+ 
+ #define EV_VERSION		0x010001
+ 
+ /*
+  * IOCTLs (0x00 - 0x7f)
+  */
+ 
+ struct input_id {
+ 	__u16 bustype;
+ 	__u16 vendor;
+ 	__u16 product;
+ 	__u16 version;
+ };
+ 
+ /**
+  * struct input_absinfo - used by EVIOCGABS/EVIOCSABS ioctls
+  * @value: latest reported value for the axis.
+  * @minimum: specifies minimum value for the axis.
+  * @maximum: specifies maximum value for the axis.
+  * @fuzz: specifies fuzz value that is used to filter noise from
+  *	the event stream.
+  * @flat: values that are within this value will be discarded by
+  *	joydev interface and reported as 0 instead.
+  * @resolution: specifies resolution for the values reported for
+  *	the axis.
+  *
+  * Note that input core does not clamp reported values to the
+  * [minimum, maximum] limits, such task is left to userspace.
+  *
+  * Resolution for main axes (ABS_X, ABS_Y, ABS_Z) is reported in
+  * units per millimeter (units/mm), resolution for rotational axes
+  * (ABS_RX, ABS_RY, ABS_RZ) is reported in units per radian.
+  */
+ struct input_absinfo {
+ 	__s32 value;
+ 	__s32 minimum;
+ 	__s32 maximum;
+ 	__s32 fuzz;
+ 	__s32 flat;
+ 	__s32 resolution;
+ };
+ 
+ /**
+  * struct input_keymap_entry - used by EVIOCGKEYCODE/EVIOCSKEYCODE ioctls
+  * @scancode: scancode represented in machine-endian form.
+  * @len: length of the scancode that resides in @scancode buffer.
+  * @index: index in the keymap, may be used instead of scancode
+  * @flags: allows to specify how kernel should handle the request. For
+  *	example, setting INPUT_KEYMAP_BY_INDEX flag indicates that kernel
+  *	should perform lookup in keymap by @index instead of @scancode
+  * @keycode: key code assigned to this scancode
+  *
+  * The structure is used to retrieve and modify keymap data. Users have
+  * option of performing lookup either by @scancode itself or by @index
+  * in keymap entry. EVIOCGKEYCODE will also return scancode or index
+  * (depending on which element was used to perform lookup).
+  */
+ struct input_keymap_entry {
+ #define INPUT_KEYMAP_BY_INDEX	(1 << 0)
+ 	__u8  flags;
+ 	__u8  len;
+ 	__u16 index;
+ 	__u32 keycode;
+ 	__u8  scancode[32];
+ };
+ 
+ #define EVIOCGVERSION		_IOR('E', 0x01, int)			/* get driver version */
+ #define EVIOCGID		_IOR('E', 0x02, struct input_id)	/* get device ID */
+ #define EVIOCGREP		_IOR('E', 0x03, unsigned int[2])	/* get repeat settings */
+ #define EVIOCSREP		_IOW('E', 0x03, unsigned int[2])	/* set repeat settings */
+ 
+ #define EVIOCGKEYCODE		_IOR('E', 0x04, unsigned int[2])        /* get keycode */
+ #define EVIOCGKEYCODE_V2	_IOR('E', 0x04, struct input_keymap_entry)
+ #define EVIOCSKEYCODE		_IOW('E', 0x04, unsigned int[2])        /* set keycode */
+ #define EVIOCSKEYCODE_V2	_IOW('E', 0x04, struct input_keymap_entry)
+ 
+ #define EVIOCGNAME(len)		_IOC(_IOC_READ, 'E', 0x06, len)		/* get device name */
+ #define EVIOCGPHYS(len)		_IOC(_IOC_READ, 'E', 0x07, len)		/* get physical location */
+ #define EVIOCGUNIQ(len)		_IOC(_IOC_READ, 'E', 0x08, len)		/* get unique identifier */
+ #define EVIOCGPROP(len)		_IOC(_IOC_READ, 'E', 0x09, len)		/* get device properties */
+ 
+ /**
+  * EVIOCGMTSLOTS(len) - get MT slot values
+  * @len: size of the data buffer in bytes
+  *
+  * The ioctl buffer argument should be binary equivalent to
+  *
+  * struct input_mt_request_layout {
+  *	__u32 code;
+  *	__s32 values[num_slots];
+  * };
+  *
+  * where num_slots is the (arbitrary) number of MT slots to extract.
+  *
+  * The ioctl size argument (len) is the size of the buffer, which
+  * should satisfy len = (num_slots + 1) * sizeof(__s32).  If len is
+  * too small to fit all available slots, the first num_slots are
+  * returned.
+  *
+  * Before the call, code is set to the wanted ABS_MT event type. On
+  * return, values[] is filled with the slot values for the specified
+  * ABS_MT code.
+  *
+  * If the request code is not an ABS_MT value, -EINVAL is returned.
+  */
+ #define EVIOCGMTSLOTS(len)	_IOC(_IOC_READ, 'E', 0x0a, len)
+ 
+ #define EVIOCGKEY(len)		_IOC(_IOC_READ, 'E', 0x18, len)		/* get global key state */
+ #define EVIOCGLED(len)		_IOC(_IOC_READ, 'E', 0x19, len)		/* get all LEDs */
+ #define EVIOCGSND(len)		_IOC(_IOC_READ, 'E', 0x1a, len)		/* get all sounds status */
+ #define EVIOCGSW(len)		_IOC(_IOC_READ, 'E', 0x1b, len)		/* get all switch states */
+ 
+ #define EVIOCGBIT(ev,len)	_IOC(_IOC_READ, 'E', 0x20 + (ev), len)	/* get event bits */
+ #define EVIOCGABS(abs)		_IOR('E', 0x40 + (abs), struct input_absinfo)	/* get abs value/limits */
+ #define EVIOCSABS(abs)		_IOW('E', 0xc0 + (abs), struct input_absinfo)	/* set abs value/limits */
+ 
+ #define EVIOCSFF		_IOC(_IOC_WRITE, 'E', 0x80, sizeof(struct ff_effect))	/* send a force effect to a force feedback device */
+ #define EVIOCRMFF		_IOW('E', 0x81, int)			/* Erase a force effect */
+ #define EVIOCGEFFECTS		_IOR('E', 0x84, int)			/* Report number of effects playable at the same time */
+ 
+ #define EVIOCGRAB		_IOW('E', 0x90, int)			/* Grab/Release device */
+ 
+ #define EVIOCGSUSPENDBLOCK	_IOR('E', 0x91, int)			/* get suspend block enable */
+ #define EVIOCSSUSPENDBLOCK	_IOW('E', 0x91, int)			/* set suspend block enable */
+ 
+ #define EVIOCSCLOCKID		_IOW('E', 0xa0, int)			/* Set clockid to be used for timestamps */
+ 
+ /*
+  * Device properties and quirks
+  */
+ 
+ #define INPUT_PROP_POINTER		0x00	/* needs a pointer */
+ #define INPUT_PROP_DIRECT		0x01	/* direct input devices */
+ #define INPUT_PROP_BUTTONPAD		0x02	/* has button(s) under pad */
+ #define INPUT_PROP_SEMI_MT		0x03	/* touch rectangle only */
+ 
+ #define INPUT_PROP_MAX			0x1f
+ #define INPUT_PROP_CNT			(INPUT_PROP_MAX + 1)
+ 
+ /*
+  * Event types
+  */
+ 
+ #define EV_SYN			0x00
+ #define EV_KEY			0x01
+ #define EV_REL			0x02
+ #define EV_ABS			0x03
+ #define EV_MSC			0x04
+ #define EV_SW			0x05
+ #define EV_LED			0x11
+ #define EV_SND			0x12
+ #define EV_REP			0x14
+ #define EV_FF			0x15
+ #define EV_PWR			0x16
+ #define EV_FF_STATUS		0x17
+ #define EV_MAX			0x1f
+ #define EV_CNT			(EV_MAX+1)
+ 
+ /*
+  * Synchronization events.
+  */
+ 
+ #define SYN_REPORT		0
+ #define SYN_CONFIG		1
+ #define SYN_MT_REPORT		2
+ #define SYN_DROPPED		3
+ 
+ /*
+  * Keys and buttons
+  *
+  * Most of the keys/buttons are modeled after USB HUT 1.12
+  * (see http://www.usb.org/developers/hidpage).
+  * Abbreviations in the comments:
+  * AC - Application Control
+  * AL - Application Launch Button
+  * SC - System Control
+  */
+ 
+ #define KEY_RESERVED		0
+ #define KEY_ESC			1
+ #define KEY_1			2
+ #define KEY_2			3
+ #define KEY_3			4
+ #define KEY_4			5
+ #define KEY_5			6
+ #define KEY_6			7
+ #define KEY_7			8
+ #define KEY_8			9
+ #define KEY_9			10
+ #define KEY_0			11
+ #define KEY_MINUS		12
+ #define KEY_EQUAL		13
+ #define KEY_BACKSPACE		14
+ #define KEY_TAB			15
+ #define KEY_Q			16
+ #define KEY_W			17
+ #define KEY_E			18
+ #define KEY_R			19
+ #define KEY_T			20
+ #define KEY_Y			21
+ #define KEY_U			22
+ #define KEY_I			23
+ #define KEY_O			24
+ #define KEY_P			25
+ #define KEY_LEFTBRACE		26
+ #define KEY_RIGHTBRACE		27
+ #define KEY_ENTER		28
+ #define KEY_LEFTCTRL		29
+ #define KEY_A			30
+ #define KEY_S			31
+ #define KEY_D			32
+ #define KEY_F			33
+ #define KEY_G			34
+ #define KEY_H			35
+ #define KEY_J			36
+ #define KEY_K			37
+ #define KEY_L			38
+ #define KEY_SEMICOLON		39
+ #define KEY_APOSTROPHE		40
+ #define KEY_GRAVE		41
+ #define KEY_LEFTSHIFT		42
+ #define KEY_BACKSLASH		43
+ #define KEY_Z			44
+ #define KEY_X			45
+ #define KEY_C			46
+ #define KEY_V			47
+ #define KEY_B			48
+ #define KEY_N			49
+ #define KEY_M			50
+ #define KEY_COMMA		51
+ #define KEY_DOT			52
+ #define KEY_SLASH		53
+ #define KEY_RIGHTSHIFT		54
+ #define KEY_KPASTERISK		55
+ #define KEY_LEFTALT		56
+ #define KEY_SPACE		57
+ #define KEY_CAPSLOCK		58
+ #define KEY_F1			59
+ #define KEY_F2			60
+ #define KEY_F3			61
+ #define KEY_F4			62
+ #define KEY_F5			63
+ #define KEY_F6			64
+ #define KEY_F7			65
+ #define KEY_F8			66
+ #define KEY_F9			67
+ #define KEY_F10			68
+ #define KEY_NUMLOCK		69
+ #define KEY_SCROLLLOCK		70
+ #define KEY_KP7			71
+ #define KEY_KP8			72
+ #define KEY_KP9			73
+ #define KEY_KPMINUS		74
+ #define KEY_KP4			75
+ #define KEY_KP5			76
+ #define KEY_KP6			77
+ #define KEY_KPPLUS		78
+ #define KEY_KP1			79
+ #define KEY_KP2			80
+ #define KEY_KP3			81
+ #define KEY_KP0			82
+ #define KEY_KPDOT		83
+ 
+ #define KEY_ZENKAKUHANKAKU	85
+ #define KEY_102ND		86
+ #define KEY_F11			87
+ #define KEY_F12			88
+ #define KEY_RO			89
+ #define KEY_KATAKANA		90
+ #define KEY_HIRAGANA		91
+ #define KEY_HENKAN		92
+ #define KEY_KATAKANAHIRAGANA	93
+ #define KEY_MUHENKAN		94
+ #define KEY_KPJPCOMMA		95
+ #define KEY_KPENTER		96
+ #define KEY_RIGHTCTRL		97
+ #define KEY_KPSLASH		98
+ #define KEY_SYSRQ		99
+ #define KEY_RIGHTALT		100
+ #define KEY_LINEFEED		101
+ #define KEY_HOME		102
+ #define KEY_UP			103
+ #define KEY_PAGEUP		104
+ #define KEY_LEFT		105
+ #define KEY_RIGHT		106
+ #define KEY_END			107
+ #define KEY_DOWN		108
+ #define KEY_PAGEDOWN		109
+ #define KEY_INSERT		110
+ #define KEY_DELETE		111
+ #define KEY_MACRO		112
+ #define KEY_MUTE		113
+ #define KEY_VOLUMEDOWN		114
+ #define KEY_VOLUMEUP		115
+ #define KEY_POWER		116	/* SC System Power Down */
+ #define KEY_KPEQUAL		117
+ #define KEY_KPPLUSMINUS		118
+ #define KEY_PAUSE		119
+ #define KEY_SCALE		120	/* AL Compiz Scale (Expose) */
+ 
+ #define KEY_KPCOMMA		121
+ #define KEY_HANGEUL		122
+ #define KEY_HANGUEL		KEY_HANGEUL
+ #define KEY_HANJA		123
+ #define KEY_YEN			124
+ #define KEY_LEFTMETA		125
+ #define KEY_RIGHTMETA		126
+ #define KEY_COMPOSE		127
+ 
+ #define KEY_STOP		128	/* AC Stop */
+ #define KEY_AGAIN		129
+ #define KEY_PROPS		130	/* AC Properties */
+ #define KEY_UNDO		131	/* AC Undo */
+ #define KEY_FRONT		132
+ #define KEY_COPY		133	/* AC Copy */
+ #define KEY_OPEN		134	/* AC Open */
+ #define KEY_PASTE		135	/* AC Paste */
+ #define KEY_FIND		136	/* AC Search */
+ #define KEY_CUT			137	/* AC Cut */
+ #define KEY_HELP		138	/* AL Integrated Help Center */
+ #define KEY_MENU		139	/* Menu (show menu) */
+ #define KEY_CALC		140	/* AL Calculator */
+ #define KEY_SETUP		141
+ #define KEY_SLEEP		142	/* SC System Sleep */
+ #define KEY_WAKEUP		143	/* System Wake Up */
+ #define KEY_FILE		144	/* AL Local Machine Browser */
+ #define KEY_SENDFILE		145
+ #define KEY_DELETEFILE		146
+ #define KEY_XFER		147
+ #define KEY_PROG1		148
+ #define KEY_PROG2		149
+ #define KEY_WWW			150	/* AL Internet Browser */
+ #define KEY_MSDOS		151
+ #define KEY_COFFEE		152	/* AL Terminal Lock/Screensaver */
+ #define KEY_SCREENLOCK		KEY_COFFEE
+ #define KEY_DIRECTION		153
+ #define KEY_CYCLEWINDOWS	154
+ #define KEY_MAIL		155
+ #define KEY_BOOKMARKS		156	/* AC Bookmarks */
+ #define KEY_COMPUTER		157
+ #define KEY_BACK		158	/* AC Back */
+ #define KEY_FORWARD		159	/* AC Forward */
+ #define KEY_CLOSECD		160
+ #define KEY_EJECTCD		161
+ #define KEY_EJECTCLOSECD	162
+ #define KEY_NEXTSONG		163
+ #define KEY_PLAYPAUSE		164
+ #define KEY_PREVIOUSSONG	165
+ #define KEY_STOPCD		166
+ #define KEY_RECORD		167
+ #define KEY_REWIND		168
+ #define KEY_PHONE		169	/* Media Select Telephone */
+ #define KEY_ISO			170
+ #define KEY_CONFIG		171	/* AL Consumer Control Configuration */
+ #define KEY_HOMEPAGE		172	/* AC Home */
+ #define KEY_REFRESH		173	/* AC Refresh */
+ #define KEY_EXIT		174	/* AC Exit */
+ #define KEY_MOVE		175
+ #define KEY_EDIT		176
+ #define KEY_SCROLLUP		177
+ #define KEY_SCROLLDOWN		178
+ #define KEY_KPLEFTPAREN		179
+ #define KEY_KPRIGHTPAREN	180
+ #define KEY_NEW			181	/* AC New */
+ #define KEY_REDO		182	/* AC Redo/Repeat */
+ 
+ #define KEY_F13			183
+ #define KEY_F14			184
+ #define KEY_F15			185
+ #define KEY_F16			186
+ #define KEY_F17			187
+ #define KEY_F18			188
+ #define KEY_F19			189
+ #define KEY_F20			190
+ #define KEY_F21			191
+ #define KEY_F22			192
+ #define KEY_F23			193
+ #define KEY_F24			194
+ 
+ #define KEY_PLAYCD		200
+ #define KEY_PAUSECD		201
+ #define KEY_PROG3		202
+ #define KEY_PROG4		203
+ #define KEY_DASHBOARD		204	/* AL Dashboard */
+ #define KEY_SUSPEND		205
+ #define KEY_CLOSE		206	/* AC Close */
+ #define KEY_PLAY		207
+ #define KEY_FASTFORWARD		208
+ #define KEY_BASSBOOST		209
+ #define KEY_PRINT		210	/* AC Print */
+ #define KEY_HP			211
+ #define KEY_CAMERA		212
+ #define KEY_SOUND		213
+ #define KEY_QUESTION		214
+ #define KEY_EMAIL		215
+ #define KEY_CHAT		216
+ #define KEY_SEARCH		217
+ #define KEY_CONNECT		218
+ #define KEY_FINANCE		219	/* AL Checkbook/Finance */
+ #define KEY_SPORT		220
+ #define KEY_SHOP		221
+ #define KEY_ALTERASE		222
+ #define KEY_CANCEL		223	/* AC Cancel */
+ #define KEY_BRIGHTNESSDOWN	224
+ #define KEY_BRIGHTNESSUP	225
+ #define KEY_MEDIA		226
+ 
+ #define KEY_SWITCHVIDEOMODE	227	/* Cycle between available video
+ 					   outputs (Monitor/LCD/TV-out/etc) */
+ #define KEY_KBDILLUMTOGGLE	228
+ #define KEY_KBDILLUMDOWN	229
+ #define KEY_KBDILLUMUP		230
+ 
+ #define KEY_SEND		231	/* AC Send */
+ #define KEY_REPLY		232	/* AC Reply */
+ #define KEY_FORWARDMAIL		233	/* AC Forward Msg */
+ #define KEY_SAVE		234	/* AC Save */
+ #define KEY_DOCUMENTS		235
+ 
+ #define KEY_BATTERY		236
+ 
+ #define KEY_BLUETOOTH		237
+ #define KEY_WLAN		238
+ #define KEY_UWB			239
+ 
+ #define KEY_UNKNOWN		240
+ 
+ #define KEY_VIDEO_NEXT		241	/* drive next video source */
+ #define KEY_VIDEO_PREV		242	/* drive previous video source */
+ #define KEY_BRIGHTNESS_CYCLE	243	/* brightness up, after max is min */
+ #define KEY_BRIGHTNESS_ZERO	244	/* brightness off, use ambient */
+ #define KEY_DISPLAY_OFF		245	/* display device to off state */
+ 
+ #define KEY_WIMAX		246
+ #define KEY_RFKILL		247	/* Key that controls all radios */
+ 
+ #define KEY_MICMUTE		248	/* Mute / unmute the microphone */
+ 
+ /* Code 255 is reserved for special needs of AT keyboard driver */
+ 
+ #define BTN_MISC		0x100
+ #define BTN_0			0x100
+ #define BTN_1			0x101
+ #define BTN_2			0x102
+ #define BTN_3			0x103
+ #define BTN_4			0x104
+ #define BTN_5			0x105
+ #define BTN_6			0x106
+ #define BTN_7			0x107
+ #define BTN_8			0x108
+ #define BTN_9			0x109
+ 
+ #define BTN_MOUSE		0x110
+ #define BTN_LEFT		0x110
+ #define BTN_RIGHT		0x111
+ #define BTN_MIDDLE		0x112
+ #define BTN_SIDE		0x113
+ #define BTN_EXTRA		0x114
+ #define BTN_FORWARD		0x115
+ #define BTN_BACK		0x116
+ #define BTN_TASK		0x117
+ 
+ #define BTN_JOYSTICK		0x120
+ #define BTN_TRIGGER		0x120
+ #define BTN_THUMB		0x121
+ #define BTN_THUMB2		0x122
+ #define BTN_TOP			0x123
+ #define BTN_TOP2		0x124
+ #define BTN_PINKIE		0x125
+ #define BTN_BASE		0x126
+ #define BTN_BASE2		0x127
+ #define BTN_BASE3		0x128
+ #define BTN_BASE4		0x129
+ #define BTN_BASE5		0x12a
+ #define BTN_BASE6		0x12b
+ #define BTN_DEAD		0x12f
+ 
+ #define BTN_GAMEPAD		0x130
+ #define BTN_A			0x130
+ #define BTN_B			0x131
+ #define BTN_C			0x132
+ #define BTN_X			0x133
+ #define BTN_Y			0x134
+ #define BTN_Z			0x135
+ #define BTN_TL			0x136
+ #define BTN_TR			0x137
+ #define BTN_TL2			0x138
+ #define BTN_TR2			0x139
+ #define BTN_SELECT		0x13a
+ #define BTN_START		0x13b
+ #define BTN_MODE		0x13c
+ #define BTN_THUMBL		0x13d
+ #define BTN_THUMBR		0x13e
+ 
+ #define BTN_DIGI		0x140
+ #define BTN_TOOL_PEN		0x140
+ #define BTN_TOOL_RUBBER		0x141
+ #define BTN_TOOL_BRUSH		0x142
+ #define BTN_TOOL_PENCIL		0x143
+ #define BTN_TOOL_AIRBRUSH	0x144
+ #define BTN_TOOL_FINGER		0x145
+ #define BTN_TOOL_MOUSE		0x146
+ #define BTN_TOOL_LENS		0x147
+ #define BTN_TOOL_QUINTTAP	0x148	/* Five fingers on trackpad */
+ #define BTN_TOUCH		0x14a
+ #define BTN_STYLUS		0x14b
+ #define BTN_STYLUS2		0x14c
+ #define BTN_TOOL_DOUBLETAP	0x14d
+ #define BTN_TOOL_TRIPLETAP	0x14e
+ #define BTN_TOOL_QUADTAP	0x14f	/* Four fingers on trackpad */
+ 
+ #define BTN_WHEEL		0x150
+ #define BTN_GEAR_DOWN		0x150
+ #define BTN_GEAR_UP		0x151
+ 
+ #define KEY_OK			0x160
+ #define KEY_SELECT		0x161
+ #define KEY_GOTO		0x162
+ #define KEY_CLEAR		0x163
+ #define KEY_POWER2		0x164
+ #define KEY_OPTION		0x165
+ #define KEY_INFO		0x166	/* AL OEM Features/Tips/Tutorial */
+ #define KEY_TIME		0x167
+ #define KEY_VENDOR		0x168
+ #define KEY_ARCHIVE		0x169
+ #define KEY_PROGRAM		0x16a	/* Media Select Program Guide */
+ #define KEY_CHANNEL		0x16b
+ #define KEY_FAVORITES		0x16c
+ #define KEY_EPG			0x16d
+ #define KEY_PVR			0x16e	/* Media Select Home */
+ #define KEY_MHP			0x16f
+ #define KEY_LANGUAGE		0x170
+ #define KEY_TITLE		0x171
+ #define KEY_SUBTITLE		0x172
+ #define KEY_ANGLE		0x173
+ #define KEY_ZOOM		0x174
+ #define KEY_MODE		0x175
+ #define KEY_KEYBOARD		0x176
+ #define KEY_SCREEN		0x177
+ #define KEY_PC			0x178	/* Media Select Computer */
+ #define KEY_TV			0x179	/* Media Select TV */
+ #define KEY_TV2			0x17a	/* Media Select Cable */
+ #define KEY_VCR			0x17b	/* Media Select VCR */
+ #define KEY_VCR2		0x17c	/* VCR Plus */
+ #define KEY_SAT			0x17d	/* Media Select Satellite */
+ #define KEY_SAT2		0x17e
+ #define KEY_CD			0x17f	/* Media Select CD */
+ #define KEY_TAPE		0x180	/* Media Select Tape */
+ #define KEY_RADIO		0x181
+ #define KEY_TUNER		0x182	/* Media Select Tuner */
+ #define KEY_PLAYER		0x183
+ #define KEY_TEXT		0x184
+ #define KEY_DVD			0x185	/* Media Select DVD */
+ #define KEY_AUX			0x186
+ #define KEY_MP3			0x187
+ #define KEY_AUDIO		0x188	/* AL Audio Browser */
+ #define KEY_VIDEO		0x189	/* AL Movie Browser */
+ #define KEY_DIRECTORY		0x18a
+ #define KEY_LIST		0x18b
+ #define KEY_MEMO		0x18c	/* Media Select Messages */
+ #define KEY_CALENDAR		0x18d
+ #define KEY_RED			0x18e
+ #define KEY_GREEN		0x18f
+ #define KEY_YELLOW		0x190
+ #define KEY_BLUE		0x191
+ #define KEY_CHANNELUP		0x192	/* Channel Increment */
+ #define KEY_CHANNELDOWN		0x193	/* Channel Decrement */
+ #define KEY_FIRST		0x194
+ #define KEY_LAST		0x195	/* Recall Last */
+ #define KEY_AB			0x196
+ #define KEY_NEXT		0x197
+ #define KEY_RESTART		0x198
+ #define KEY_SLOW		0x199
+ #define KEY_SHUFFLE		0x19a
+ #define KEY_BREAK		0x19b
+ #define KEY_PREVIOUS		0x19c
+ #define KEY_DIGITS		0x19d
+ #define KEY_TEEN		0x19e
+ #define KEY_TWEN		0x19f
+ #define KEY_VIDEOPHONE		0x1a0	/* Media Select Video Phone */
+ #define KEY_GAMES		0x1a1	/* Media Select Games */
+ #define KEY_ZOOMIN		0x1a2	/* AC Zoom In */
+ #define KEY_ZOOMOUT		0x1a3	/* AC Zoom Out */
+ #define KEY_ZOOMRESET		0x1a4	/* AC Zoom */
+ #define KEY_WORDPROCESSOR	0x1a5	/* AL Word Processor */
+ #define KEY_EDITOR		0x1a6	/* AL Text Editor */
+ #define KEY_SPREADSHEET		0x1a7	/* AL Spreadsheet */
+ #define KEY_GRAPHICSEDITOR	0x1a8	/* AL Graphics Editor */
+ #define KEY_PRESENTATION	0x1a9	/* AL Presentation App */
+ #define KEY_DATABASE		0x1aa	/* AL Database App */
+ #define KEY_NEWS		0x1ab	/* AL Newsreader */
+ #define KEY_VOICEMAIL		0x1ac	/* AL Voicemail */
+ #define KEY_ADDRESSBOOK		0x1ad	/* AL Contacts/Address Book */
+ #define KEY_MESSENGER		0x1ae	/* AL Instant Messaging */
+ #define KEY_DISPLAYTOGGLE	0x1af	/* Turn display (LCD) on and off */
+ #define KEY_SPELLCHECK		0x1b0   /* AL Spell Check */
+ #define KEY_LOGOFF		0x1b1   /* AL Logoff */
+ 
+ #define KEY_DOLLAR		0x1b2
+ #define KEY_EURO		0x1b3
+ 
+ #define KEY_FRAMEBACK		0x1b4	/* Consumer - transport controls */
+ #define KEY_FRAMEFORWARD	0x1b5
+ #define KEY_CONTEXT_MENU	0x1b6	/* GenDesc - system context menu */
+ #define KEY_MEDIA_REPEAT	0x1b7	/* Consumer - transport control */
+ #define KEY_10CHANNELSUP	0x1b8	/* 10 channels up (10+) */
+ #define KEY_10CHANNELSDOWN	0x1b9	/* 10 channels down (10-) */
+ #define KEY_IMAGES		0x1ba	/* AL Image Browser */
+ 
+ #define KEY_DEL_EOL		0x1c0
+ #define KEY_DEL_EOS		0x1c1
+ #define KEY_INS_LINE		0x1c2
+ #define KEY_DEL_LINE		0x1c3
+ 
+ #define KEY_FN			0x1d0
+ #define KEY_FN_ESC		0x1d1
+ #define KEY_FN_F1		0x1d2
+ #define KEY_FN_F2		0x1d3
+ #define KEY_FN_F3		0x1d4
+ #define KEY_FN_F4		0x1d5
+ #define KEY_FN_F5		0x1d6
+ #define KEY_FN_F6		0x1d7
+ #define KEY_FN_F7		0x1d8
+ #define KEY_FN_F8		0x1d9
+ #define KEY_FN_F9		0x1da
+ #define KEY_FN_F10		0x1db
+ #define KEY_FN_F11		0x1dc
+ #define KEY_FN_F12		0x1dd
+ #define KEY_FN_1		0x1de
+ #define KEY_FN_2		0x1df
+ #define KEY_FN_D		0x1e0
+ #define KEY_FN_E		0x1e1
+ #define KEY_FN_F		0x1e2
+ #define KEY_FN_S		0x1e3
+ #define KEY_FN_B		0x1e4
+ 
+ #define KEY_BRL_DOT1		0x1f1
+ #define KEY_BRL_DOT2		0x1f2
+ #define KEY_BRL_DOT3		0x1f3
+ #define KEY_BRL_DOT4		0x1f4
+ #define KEY_BRL_DOT5		0x1f5
+ #define KEY_BRL_DOT6		0x1f6
+ #define KEY_BRL_DOT7		0x1f7
+ #define KEY_BRL_DOT8		0x1f8
+ #define KEY_BRL_DOT9		0x1f9
+ #define KEY_BRL_DOT10		0x1fa
+ 
+ #define KEY_NUMERIC_0		0x200	/* used by phones, remote controls, */
+ #define KEY_NUMERIC_1		0x201	/* and other keypads */
+ #define KEY_NUMERIC_2		0x202
+ #define KEY_NUMERIC_3		0x203
+ #define KEY_NUMERIC_4		0x204
+ #define KEY_NUMERIC_5		0x205
+ #define KEY_NUMERIC_6		0x206
+ #define KEY_NUMERIC_7		0x207
+ #define KEY_NUMERIC_8		0x208
+ #define KEY_NUMERIC_9		0x209
+ #define KEY_NUMERIC_STAR	0x20a
+ #define KEY_NUMERIC_POUND	0x20b
+ 
+ #define KEY_CAMERA_FOCUS	0x210
+ #define KEY_WPS_BUTTON		0x211	/* WiFi Protected Setup key */
+ 
+ #define KEY_TOUCHPAD_TOGGLE	0x212	/* Request switch touchpad on or off */
+ #define KEY_TOUCHPAD_ON		0x213
+ #define KEY_TOUCHPAD_OFF	0x214
+ 
+ #define KEY_CAMERA_ZOOMIN	0x215
+ #define KEY_CAMERA_ZOOMOUT	0x216
+ #define KEY_CAMERA_UP		0x217
+ #define KEY_CAMERA_DOWN		0x218
+ #define KEY_CAMERA_LEFT		0x219
+ #define KEY_CAMERA_RIGHT	0x21a
+ 
+ #define BTN_TRIGGER_HAPPY		0x2c0
+ #define BTN_TRIGGER_HAPPY1		0x2c0
+ #define BTN_TRIGGER_HAPPY2		0x2c1
+ #define BTN_TRIGGER_HAPPY3		0x2c2
+ #define BTN_TRIGGER_HAPPY4		0x2c3
+ #define BTN_TRIGGER_HAPPY5		0x2c4
+ #define BTN_TRIGGER_HAPPY6		0x2c5
+ #define BTN_TRIGGER_HAPPY7		0x2c6
+ #define BTN_TRIGGER_HAPPY8		0x2c7
+ #define BTN_TRIGGER_HAPPY9		0x2c8
+ #define BTN_TRIGGER_HAPPY10		0x2c9
+ #define BTN_TRIGGER_HAPPY11		0x2ca
+ #define BTN_TRIGGER_HAPPY12		0x2cb
+ #define BTN_TRIGGER_HAPPY13		0x2cc
+ #define BTN_TRIGGER_HAPPY14		0x2cd
+ #define BTN_TRIGGER_HAPPY15		0x2ce
+ #define BTN_TRIGGER_HAPPY16		0x2cf
+ #define BTN_TRIGGER_HAPPY17		0x2d0
+ #define BTN_TRIGGER_HAPPY18		0x2d1
+ #define BTN_TRIGGER_HAPPY19		0x2d2
+ #define BTN_TRIGGER_HAPPY20		0x2d3
+ #define BTN_TRIGGER_HAPPY21		0x2d4
+ #define BTN_TRIGGER_HAPPY22		0x2d5
+ #define BTN_TRIGGER_HAPPY23		0x2d6
+ #define BTN_TRIGGER_HAPPY24		0x2d7
+ #define BTN_TRIGGER_HAPPY25		0x2d8
+ #define BTN_TRIGGER_HAPPY26		0x2d9
+ #define BTN_TRIGGER_HAPPY27		0x2da
+ #define BTN_TRIGGER_HAPPY28		0x2db
+ #define BTN_TRIGGER_HAPPY29		0x2dc
+ #define BTN_TRIGGER_HAPPY30		0x2dd
+ #define BTN_TRIGGER_HAPPY31		0x2de
+ #define BTN_TRIGGER_HAPPY32		0x2df
+ #define BTN_TRIGGER_HAPPY33		0x2e0
+ #define BTN_TRIGGER_HAPPY34		0x2e1
+ #define BTN_TRIGGER_HAPPY35		0x2e2
+ #define BTN_TRIGGER_HAPPY36		0x2e3
+ #define BTN_TRIGGER_HAPPY37		0x2e4
+ #define BTN_TRIGGER_HAPPY38		0x2e5
+ #define BTN_TRIGGER_HAPPY39		0x2e6
+ #define BTN_TRIGGER_HAPPY40		0x2e7
+ 
+ /* We avoid low common keys in module aliases so they don't get huge. */
+ #define KEY_MIN_INTERESTING	KEY_MUTE
+ #define KEY_MAX			0x2ff
+ #define KEY_CNT			(KEY_MAX+1)
+ 
+ /*
+  * Relative axes
+  */
+ 
+ #define REL_X			0x00
+ #define REL_Y			0x01
+ #define REL_Z			0x02
+ #define REL_RX			0x03
+ #define REL_RY			0x04
+ #define REL_RZ			0x05
+ #define REL_HWHEEL		0x06
+ #define REL_DIAL		0x07
+ #define REL_WHEEL		0x08
+ #define REL_MISC		0x09
+ #define REL_MAX			0x0f
+ #define REL_CNT			(REL_MAX+1)
+ 
+ /*
+  * Absolute axes
+  */
+ 
+ #define ABS_X			0x00
+ #define ABS_Y			0x01
+ #define ABS_Z			0x02
+ #define ABS_RX			0x03
+ #define ABS_RY			0x04
+ #define ABS_RZ			0x05
+ #define ABS_THROTTLE		0x06
+ #define ABS_RUDDER		0x07
+ #define ABS_WHEEL		0x08
+ #define ABS_GAS			0x09
+ #define ABS_BRAKE		0x0a
+ #define ABS_HAT0X		0x10
+ #define ABS_HAT0Y		0x11
+ #define ABS_HAT1X		0x12
+ #define ABS_HAT1Y		0x13
+ #define ABS_HAT2X		0x14
+ #define ABS_HAT2Y		0x15
+ #define ABS_HAT3X		0x16
+ #define ABS_HAT3Y		0x17
+ #define ABS_PRESSURE		0x18
+ #define ABS_DISTANCE		0x19
+ #define ABS_TILT_X		0x1a
+ #define ABS_TILT_Y		0x1b
+ #define ABS_TOOL_WIDTH		0x1c
+ 
+ #define ABS_VOLUME		0x20
+ 
+ #define ABS_MISC		0x28
+ 
+ #define ABS_MT_SLOT		0x2f	/* MT slot being modified */
+ #define ABS_MT_TOUCH_MAJOR	0x30	/* Major axis of touching ellipse */
+ #define ABS_MT_TOUCH_MINOR	0x31	/* Minor axis (omit if circular) */
+ #define ABS_MT_WIDTH_MAJOR	0x32	/* Major axis of approaching ellipse */
+ #define ABS_MT_WIDTH_MINOR	0x33	/* Minor axis (omit if circular) */
+ #define ABS_MT_ORIENTATION	0x34	/* Ellipse orientation */
+ #define ABS_MT_POSITION_X	0x35	/* Center X touch position */
+ #define ABS_MT_POSITION_Y	0x36	/* Center Y touch position */
+ #define ABS_MT_TOOL_TYPE	0x37	/* Type of touching device */
+ #define ABS_MT_BLOB_ID		0x38	/* Group a set of packets as a blob */
+ #define ABS_MT_TRACKING_ID	0x39	/* Unique ID of initiated contact */
+ #define ABS_MT_PRESSURE		0x3a	/* Pressure on contact area */
+ #define ABS_MT_DISTANCE		0x3b	/* Contact hover distance */
+ #define ABS_MT_TOOL_X		0x3c	/* Center X tool position */
+ #define ABS_MT_TOOL_Y		0x3d	/* Center Y tool position */
+ 
+ #ifdef __KERNEL__
++>>>>>>> tracking-linaro-android-3.6
  /* Implementation details, userspace should not care about these */
  #define ABS_MT_FIRST		ABS_MT_TOUCH_MAJOR
  #define ABS_MT_LAST		ABS_MT_TOOL_Y
--------------------------------------------------
diff --cc include/linux/kernel.h
index a123b13,2645bf2..0000000
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@@ -708,4 -708,9 +708,12 @@@ static inline void ftrace_dump(enum ftr
  
  extern int do_sysinfo(struct sysinfo *info);
  
++<<<<<<< HEAD
++=======
+ /* To identify board information in panic logs, set this */
+ extern char *mach_panic_string;
+ 
+ #endif /* __KERNEL__ */
+ 
++>>>>>>> tracking-linaro-android-3.6
  #endif
--------------------------------------------------
diff --cc include/linux/msdos_fs.h
index e1b163f,e425625..0000000
--- a/include/linux/msdos_fs.h
+++ b/include/linux/msdos_fs.h
@@@ -1,8 -1,182 +1,183 @@@
  #ifndef _LINUX_MSDOS_FS_H
  #define _LINUX_MSDOS_FS_H
  
 -#include <linux/types.h>
 -#include <linux/magic.h>
 -#include <asm/byteorder.h>
 +#include <uapi/linux/msdos_fs.h>
  
++<<<<<<< HEAD
++=======
+ /*
+  * The MS-DOS filesystem constants/structures
+  */
+ 
+ #define SECTOR_SIZE	512		/* sector size (bytes) */
+ #define SECTOR_BITS	9		/* log2(SECTOR_SIZE) */
+ #define MSDOS_DPB	(MSDOS_DPS)	/* dir entries per block */
+ #define MSDOS_DPB_BITS	4		/* log2(MSDOS_DPB) */
+ #define MSDOS_DPS	(SECTOR_SIZE / sizeof(struct msdos_dir_entry))
+ #define MSDOS_DPS_BITS	4		/* log2(MSDOS_DPS) */
+ #define MSDOS_LONGNAME	256		/* maximum name length */
+ #define CF_LE_W(v)	le16_to_cpu(v)
+ #define CF_LE_L(v)	le32_to_cpu(v)
+ #define CT_LE_W(v)	cpu_to_le16(v)
+ #define CT_LE_L(v)	cpu_to_le32(v)
+ 
+ #define MSDOS_ROOT_INO	 1	/* The root inode number */
+ #define MSDOS_FSINFO_INO 2	/* Used for managing the FSINFO block */
+ 
+ #define MSDOS_DIR_BITS	5	/* log2(sizeof(struct msdos_dir_entry)) */
+ 
+ /* directory limit */
+ #define FAT_MAX_DIR_ENTRIES	(65536)
+ #define FAT_MAX_DIR_SIZE	(FAT_MAX_DIR_ENTRIES << MSDOS_DIR_BITS)
+ 
+ #define ATTR_NONE	0	/* no attribute bits */
+ #define ATTR_RO		1	/* read-only */
+ #define ATTR_HIDDEN	2	/* hidden */
+ #define ATTR_SYS	4	/* system */
+ #define ATTR_VOLUME	8	/* volume label */
+ #define ATTR_DIR	16	/* directory */
+ #define ATTR_ARCH	32	/* archived */
+ 
+ /* attribute bits that are copied "as is" */
+ #define ATTR_UNUSED	(ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN)
+ /* bits that are used by the Windows 95/Windows NT extended FAT */
+ #define ATTR_EXT	(ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME)
+ 
+ #define CASE_LOWER_BASE	8	/* base is lower case */
+ #define CASE_LOWER_EXT	16	/* extension is lower case */
+ 
+ #define DELETED_FLAG	0xe5	/* marks file as deleted when in name[0] */
+ #define IS_FREE(n)	(!*(n) || *(n) == DELETED_FLAG)
+ 
+ #define FAT_LFN_LEN	255	/* maximum long name length */
+ #define MSDOS_NAME	11	/* maximum name length */
+ #define MSDOS_SLOTS	21	/* max # of slots for short and long names */
+ #define MSDOS_DOT	".          "	/* ".", padded to MSDOS_NAME chars */
+ #define MSDOS_DOTDOT	"..         "	/* "..", padded to MSDOS_NAME chars */
+ 
+ #define FAT_FIRST_ENT(s, x)	((MSDOS_SB(s)->fat_bits == 32 ? 0x0FFFFF00 : \
+ 	MSDOS_SB(s)->fat_bits == 16 ? 0xFF00 : 0xF00) | (x))
+ 
+ /* start of data cluster's entry (number of reserved clusters) */
+ #define FAT_START_ENT	2
+ 
+ /* maximum number of clusters */
+ #define MAX_FAT12	0xFF4
+ #define MAX_FAT16	0xFFF4
+ #define MAX_FAT32	0x0FFFFFF6
+ #define MAX_FAT(s)	(MSDOS_SB(s)->fat_bits == 32 ? MAX_FAT32 : \
+ 	MSDOS_SB(s)->fat_bits == 16 ? MAX_FAT16 : MAX_FAT12)
+ 
+ /* bad cluster mark */
+ #define BAD_FAT12	0xFF7
+ #define BAD_FAT16	0xFFF7
+ #define BAD_FAT32	0x0FFFFFF7
+ 
+ /* standard EOF */
+ #define EOF_FAT12	0xFFF
+ #define EOF_FAT16	0xFFFF
+ #define EOF_FAT32	0x0FFFFFFF
+ 
+ #define FAT_ENT_FREE	(0)
+ #define FAT_ENT_BAD	(BAD_FAT32)
+ #define FAT_ENT_EOF	(EOF_FAT32)
+ 
+ #define FAT_FSINFO_SIG1	0x41615252
+ #define FAT_FSINFO_SIG2	0x61417272
+ #define IS_FSINFO(x)	(le32_to_cpu((x)->signature1) == FAT_FSINFO_SIG1 \
+ 			 && le32_to_cpu((x)->signature2) == FAT_FSINFO_SIG2)
+ 
+ struct __fat_dirent {
+ 	long		d_ino;
+ 	__kernel_off_t	d_off;
+ 	unsigned short	d_reclen;
+ 	char		d_name[256]; /* We must not include limits.h! */
+ };
+ 
+ /*
+  * ioctl commands
+  */
+ #define VFAT_IOCTL_READDIR_BOTH		_IOR('r', 1, struct __fat_dirent[2])
+ #define VFAT_IOCTL_READDIR_SHORT	_IOR('r', 2, struct __fat_dirent[2])
+ /* <linux/videotext.h> has used 0x72 ('r') in collision, so skip a few */
+ #define FAT_IOCTL_GET_ATTRIBUTES	_IOR('r', 0x10, __u32)
+ #define FAT_IOCTL_SET_ATTRIBUTES	_IOW('r', 0x11, __u32)
+ #define VFAT_IOCTL_GET_VOLUME_ID	_IOR('r', 0x12, __u32)
+ 
+ struct fat_boot_sector {
+ 	__u8	ignored[3];	/* Boot strap short or near jump */
+ 	__u8	system_id[8];	/* Name - can be used to special case
+ 				   partition manager volumes */
+ 	__u8	sector_size[2];	/* bytes per logical sector */
+ 	__u8	sec_per_clus;	/* sectors/cluster */
+ 	__le16	reserved;	/* reserved sectors */
+ 	__u8	fats;		/* number of FATs */
+ 	__u8	dir_entries[2];	/* root directory entries */
+ 	__u8	sectors[2];	/* number of sectors */
+ 	__u8	media;		/* media code */
+ 	__le16	fat_length;	/* sectors/FAT */
+ 	__le16	secs_track;	/* sectors per track */
+ 	__le16	heads;		/* number of heads */
+ 	__le32	hidden;		/* hidden sectors (unused) */
+ 	__le32	total_sect;	/* number of sectors (if sectors == 0) */
+ 
+ 	/* The following fields are only used by FAT32 */
+ 	__le32	fat32_length;	/* sectors/FAT */
+ 	__le16	flags;		/* bit 8: fat mirroring, low 4: active fat */
+ 	__u8	version[2];	/* major, minor filesystem version */
+ 	__le32	root_cluster;	/* first cluster in root directory */
+ 	__le16	info_sector;	/* filesystem info sector */
+ 	__le16	backup_boot;	/* backup boot sector */
+ 	__le16	reserved2[6];	/* Unused */
+ };
+ 
+ struct fat_boot_fsinfo {
+ 	__le32   signature1;	/* 0x41615252L */
+ 	__le32   reserved1[120];	/* Nothing as far as I can tell */
+ 	__le32   signature2;	/* 0x61417272L */
+ 	__le32   free_clusters;	/* Free cluster count.  -1 if unknown */
+ 	__le32   next_cluster;	/* Most recently allocated cluster */
+ 	__le32   reserved2[4];
+ };
+ 
+ struct fat_boot_bsx {
+ 	__u8     drive;		    /* drive number */
+ 	__u8     reserved1;
+ 	__u8     signature;	    /* extended boot signature */
+ 	__u8     vol_id[4];     /* volume ID */
+ 	__u8     vol_label[11]; /* volume label */
+ 	__u8     type[8];       /* file system type */
+ };
+ #define FAT16_BSX_OFFSET	36 /* offset of fat_boot_bsx in FAT12 and FAT16 */
+ #define FAT32_BSX_OFFSET	64 /* offset of fat_boot_bsx in FAT32 */
+ 
+ struct msdos_dir_entry {
+ 	__u8	name[MSDOS_NAME];/* name and extension */
+ 	__u8	attr;		/* attribute bits */
+ 	__u8    lcase;		/* Case for base and extension */
+ 	__u8	ctime_cs;	/* Creation time, centiseconds (0-199) */
+ 	__le16	ctime;		/* Creation time */
+ 	__le16	cdate;		/* Creation date */
+ 	__le16	adate;		/* Last access date */
+ 	__le16	starthi;	/* High 16 bits of cluster in FAT32 */
+ 	__le16	time,date,start;/* time, date and first cluster */
+ 	__le32	size;		/* file size (in bytes) */
+ };
+ 
+ /* Up to 13 characters of the name */
+ struct msdos_dir_slot {
+ 	__u8    id;		/* sequence number for slot */
+ 	__u8    name0_4[10];	/* first 5 characters in name */
+ 	__u8    attr;		/* attribute byte */
+ 	__u8    reserved;	/* always 0 */
+ 	__u8    alias_checksum;	/* checksum for 8.3 alias */
+ 	__u8    name5_10[12];	/* 6 more characters in name */
+ 	__le16   start;		/* starting cluster number, 0 in long slots */
+ 	__u8    name11_12[4];	/* last 2 characters in name */
+ };
+ 
+ #ifdef __KERNEL__
++>>>>>>> tracking-linaro-android-3.6
  /* media of boot sector */
  static inline int fat_valid_media(u8 media)
  {
--------------------------------------------------
diff --cc mm/shmem.c
index 67afba5,5f7a045..0000000
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@@ -2834,10 -2986,7 +2843,14 @@@ int shmem_zero_setup(struct vm_area_str
  	if (IS_ERR(file))
  		return PTR_ERR(file);
  
++<<<<<<< HEAD
 +	if (vma->vm_file)
 +		fput(vma->vm_file);
 +	vma->vm_file = file;
 +	vma->vm_ops = &shmem_vm_ops;
++=======
+ 	shmem_set_file(vma, file);
++>>>>>>> tracking-linaro-android-3.6
  	return 0;
  }
  
--------------------------------------------------
* Unmerged path arch/arm/kernel/leds.c
