Skip to content
Browse files

Finaly cleanup of HTC 2.04 changes

  • Loading branch information...
1 parent 3df320f commit ce15e0fa5e91f73276cf00565756eee648732d45 @zarboz zarboz committed Apr 9, 2013
Showing with 460 additions and 3,801 deletions.
  1. +5 −0 .gitignore
  2. +0 −65 arch/arm/boot/compressed/mmcif-sh7372.c.rej
  3. BIN arch/arm/boot/compressed/piggy.xzkern
  4. +100 −30 arch/arm/include/asm/mutex.h
  5. +0 −17 block/blk-core.c.rej
  6. +0 −20 block/blk.h.rej
  7. +0 −23 block/elevator.c.rej
  8. +0 −15 block/genhd.c.rej
  9. +0 −20 block/scsi_ioctl.c.rej
  10. BIN dna/out/Blackout-Viverrine-B5.4.zip
  11. +0 −36 drivers/base/cpu.c.rej
  12. +0 −17 drivers/base/power/runtime.c.rej
  13. +0 −63 drivers/base/power/wakeup.c.rej
  14. +0 −25 drivers/base/regmap/regmap-debugfs.c.rej
  15. +0 −10 drivers/base/topology.c.rej
  16. +0 −17 drivers/block/loop.c.rej
  17. +0 −144 drivers/cpufreq/cpufreq.c.rej
  18. +0 −17 drivers/cpufreq/cpufreq_ondemand.c.rej
  19. +6 −0 drivers/gpu/msm/adreno.c
  20. +0 −37 drivers/gpu/msm/adreno.c.rej
  21. +0 −73 drivers/gpu/msm/adreno_a3xx.c.rej
  22. +213 −177 drivers/input/touchscreen/synaptics_3200.c
  23. +0 −494 drivers/input/touchscreen/synaptics_3200.c.rej
  24. +0 −11 drivers/md/dm-table.c.rej
  25. +0 −111 drivers/md/dm.c.rej
  26. +0 −17 drivers/media/video/msm/msm.c.rej
  27. +0 −12 drivers/misc/cable_detect_8xxx.c.rej
  28. +0 −35 drivers/net/tun.c.rej
  29. +0 −166 drivers/net/usb/asix.c.rej
  30. +0 −14 drivers/scsi/scsi_sysfs.c.rej
  31. +0 −29 drivers/staging/android/lowmemorykiller.c.rej
  32. +0 −37 drivers/thermal/msm8960_tsens.c.rej
  33. +0 −26 drivers/thermal/msm_thermal.c.rej
  34. +120 −188 drivers/usb/class/cdc-acm.c
  35. +0 −281 drivers/usb/class/cdc-acm.c.rej
  36. +0 −14 drivers/usb/core/devices.c.rej
  37. +0 −73 drivers/usb/core/driver.c.rej
  38. +0 −40 drivers/usb/core/hcd.c.rej
  39. +0 −176 drivers/usb/core/hub.c.rej
  40. +0 −12 drivers/usb/core/message.c.rej
  41. +0 −192 drivers/usb/core/quirks.c.rej
  42. +0 −42 drivers/usb/gadget/f_mtp.c.rej
  43. +0 −16 drivers/usb/host/ehci-hub.c.rej
  44. +0 −190 drivers/usb/host/ehci-msm-hsic.c.rej
  45. +0 −52 drivers/usb/storage/transport.c.rej
  46. +0 −168 drivers/usb/storage/unusual_devs.h.rej
  47. +16 −15 drivers/video/msm/mdp4_overlay_dsi_video.c
  48. +0 −41 drivers/video/msm/mdp4_overlay_dsi_video.c.rej
  49. +0 −225 fs/buffer.c.rej
  50. +0 −48 fs/dcache.c.rej
  51. +0 −36 fs/eventpoll.c.rej
  52. +0 −14 fs/exec.c.rej
  53. +0 −84 fs/sync.c.rej
  54. +0 −136 include/sound/core.h.rej
View
5 .gitignore
@@ -33,6 +33,11 @@ modules.builtin
*.patch
*.gcno
*.xzkern
+*.rej
+*.back
+*.bak
+*.orig
+*.zip
#
# Top-level generic files
View
65 arch/arm/boot/compressed/mmcif-sh7372.c.rej
@@ -1,65 +0,0 @@
---- arch/arm/boot/compressed/mmcif-sh7372.c 2013-01-04 04:01:38.000000000 -0800
-+++ arch/arm/boot/compressed/mmcif-sh7372.c 2013-03-19 04:01:03.000000000 -0700
-@@ -28,28 +28,11 @@
-
- #define SMSTPCR3 (void __iomem *)0xe615013c
-
--/* SH7372 specific MMCIF loader
-- *
-- * loads the zImage from an MMC card starting from block 1.
-- *
-- * The image must be start with a vrl4 header and
-- * the zImage must start at offset 512 of the image. That is,
-- * at block 2 (=byte 1024) on the media
-- *
-- * Use the following line to write the vrl4 formated zImage
-- * to an MMC card
-- * # dd if=vrl4.out of=/dev/sdx bs=512 seek=1
-- */
- asmlinkage void mmc_loader(unsigned char *buf, unsigned long len)
- {
- mmc_init_progress();
- mmc_update_progress(MMC_PROGRESS_ENTER);
-
-- /* Initialise MMC
-- * registers: PORT84CR-PORT92CR
-- * (MMCD0_0-MMCD0_7,MMCCMD0 Control)
-- * value: 0x04 - select function 4
-- */
- __raw_writeb(0x04, PORT84CR);
- __raw_writeb(0x04, PORT85CR);
- __raw_writeb(0x04, PORT86CR);
-@@ -60,28 +43,24 @@
- __raw_writeb(0x04, PORT91CR);
- __raw_writeb(0x04, PORT92CR);
-
-- /* Initialise MMC
-- * registers: PORT99CR (MMCCLK0 Control)
-- * value: 0x10 | 0x04 - enable output | select function 4
-- */
- __raw_writeb(0x14, PORT99CR);
-
-- /* Enable clock to MMC hardware block */
-+
- __raw_writel(__raw_readl(SMSTPCR3) & ~(1 << 12), SMSTPCR3);
-
- mmc_update_progress(MMC_PROGRESS_INIT);
-
-- /* setup MMCIF hardware */
-+
- sh_mmcif_boot_init(MMCIF_BASE);
-
- mmc_update_progress(MMC_PROGRESS_LOAD);
-
-- /* load kernel via MMCIF interface */
-- sh_mmcif_boot_do_read(MMCIF_BASE, 2, /* Kernel is at block 2 */
-+
-+ sh_mmcif_boot_do_read(MMCIF_BASE, 2,
- (len + SH_MMCIF_BBS - 1) / SH_MMCIF_BBS, buf);
-
-
-- /* Disable clock to MMC hardware block */
-+
- __raw_writel(__raw_readl(SMSTPCR3) | (1 << 12), SMSTPCR3);
-
- mmc_update_progress(MMC_PROGRESS_DONE);
View
BIN arch/arm/boot/compressed/piggy.xzkern
Binary file not shown.
View
130 arch/arm/include/asm/mutex.h
@@ -1,31 +1,101 @@
+#ifndef _ASM_MUTEX_H
+#define _ASM_MUTEX_H
- #ifndef _ASM_MUTEX_H
- #define _ASM_MUTEX_H
-
- #if __LINUX_ARM_ARCH__ < 6
- # include <asm-generic/mutex-xchg.h>
- #else
-
-
- static inline void
- __mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
- {
-@@ -69,11 +51,6 @@
- return __res;
- }
-
-
- static inline void
- __mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
- {
-@@ -95,19 +72,8 @@
- fail_fn(count);
- }
-
-
- #define __mutex_slowpath_needs_to_unlock() 1
-
-
- static inline int
- __mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
- {
+#if __LINUX_ARM_ARCH__ < 6
+# include <asm-generic/mutex-xchg.h>
+#else
+
+static inline void
+__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
+{
+ int __ex_flag, __res;
+
+ __asm__ (
+
+ "ldrex %0, [%2] \n\t"
+ "sub %0, %0, #1 \n\t"
+ "strex %1, %0, [%2] "
+
+ : "=&r" (__res), "=&r" (__ex_flag)
+ : "r" (&(count)->counter)
+ : "cc","memory" );
+
+ __res |= __ex_flag;
+ if (unlikely(__res != 0))
+ fail_fn(count);
+ else
+ smp_rmb();
+}
+
+static inline int
+__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
+{
+ int __ex_flag, __res;
+
+ __asm__ (
+
+ "ldrex %0, [%2] \n\t"
+ "sub %0, %0, #1 \n\t"
+ "strex %1, %0, [%2] "
+
+ : "=&r" (__res), "=&r" (__ex_flag)
+ : "r" (&(count)->counter)
+ : "cc","memory" );
+
+ __res |= __ex_flag;
+ if (unlikely(__res != 0))
+ __res = fail_fn(count);
+ else
+ smp_rmb();
+
+ return __res;
+}
+
+static inline void
+__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
+{
+ int __ex_flag, __res, __orig;
+
+ smp_wmb();
+ __asm__ (
+
+ "ldrex %0, [%3] \n\t"
+ "add %1, %0, #1 \n\t"
+ "strex %2, %1, [%3] "
+
+ : "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
+ : "r" (&(count)->counter)
+ : "cc","memory" );
+
+ __orig |= __ex_flag;
+ if (unlikely(__orig != 0))
+ fail_fn(count);
+}
+
+#define __mutex_slowpath_needs_to_unlock() 1
+
+static inline int
+__mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
+{
+ int __ex_flag, __res, __orig;
+
+ __asm__ (
+
+ "1: ldrex %0, [%3] \n\t"
+ "subs %1, %0, #1 \n\t"
+ "strexeq %2, %1, [%3] \n\t"
+ "movlt %0, #0 \n\t"
+ "cmpeq %2, #0 \n\t"
+ "bgt 1b "
+
+ : "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
+ : "r" (&count->counter)
+ : "cc", "memory" );
+ if (__orig)
+ smp_rmb();
+
+ return __orig;
+}
+
+#endif
+#endif
View
17 block/blk-core.c.rej
@@ -1,17 +0,0 @@
---- block/blk-core.c 2013-01-04 04:01:34.000000000 -0800
-+++ block/blk-core.c 2013-03-19 04:00:54.000000000 -0700
-@@ -217,14 +137,6 @@
- }
- EXPORT_SYMBOL(blk_sync_queue);
-
--/**
-- * __blk_run_queue - run a single device queue
-- * @q: The queue to run
-- *
-- * Description:
-- * See @blk_run_queue. This variant must be called with the queue lock
-- * held and interrupts disabled.
-- */
- void __blk_run_queue(struct request_queue *q)
- {
- if (unlikely(blk_queue_stopped(q)))
View
20 block/blk.h.rej
@@ -1,20 +0,0 @@
---- block/blk.h 2013-01-04 04:01:34.000000000 -0800
-+++ block/blk.h 2013-03-19 04:00:54.000000000 -0700
-@@ -32,17 +30,10 @@
- void blk_add_timer(struct request *);
- void __generic_unplug_device(struct request_queue *);
-
--/*
-- * Internal atomic flags for request handling
-- */
- enum rq_atomic_flags {
- REQ_ATOM_COMPLETE = 0,
- };
-
--/*
-- * EH timer and IO completion will both attempt to 'grab' the request, make
-- * sure that only one of them succeeds
-- */
- static inline int blk_mark_rq_complete(struct request *rq)
- {
- return test_and_set_bit(REQ_ATOM_COMPLETE, &rq->atomic_flags);
View
23 block/elevator.c.rej
@@ -1,23 +0,0 @@
---- block/elevator.c 2013-01-04 04:01:34.000000000 -0800
-+++ block/elevator.c 2013-03-19 04:00:54.000000000 -0700
-@@ -49,10 +46,6 @@
- #define ELV_HASH_ENTRIES (1 << elv_hash_shift)
- #define rq_hash_key(rq) (blk_rq_pos(rq) + blk_rq_sectors(rq))
-
--/*
-- * Query io scheduler to see if the current process issuing bio may be
-- * merged with rq.
-- */
- static int elv_iosched_allow_merge(struct request *rq, struct bio *bio)
- {
- struct request_queue *q = rq->q;
-@@ -684,9 +585,6 @@
- {
- struct elevator_queue *e = q->elevator;
-
-- /*
-- * request is released from the driver, io must be done
-- */
- if (blk_account_rq(rq)) {
- q->in_flight[rq_is_sync(rq)]--;
- if ((rq->cmd_flags & REQ_SORTED) &&
View
15 block/genhd.c.rej
@@ -1,15 +0,0 @@
---- block/genhd.c 2013-01-04 04:01:34.000000000 -0800
-+++ block/genhd.c 2013-03-19 04:00:54.000000000 -0700
-@@ -21,12 +18,8 @@
- static DEFINE_MUTEX(block_class_lock);
- struct kobject *block_depr;
-
--/* for extended dynamic devt allocation, currently only one major is used */
- #define MAX_EXT_DEVT (1 << MINORBITS)
-
--/* For extended devt allocation. ext_devt_mutex prevents look up
-- * results from going away underneath its user.
-- */
- static DEFINE_MUTEX(ext_devt_mutex);
- static DEFINE_IDR(ext_devt_idr);
-
View
20 block/scsi_ioctl.c.rej
@@ -1,20 +0,0 @@
---- block/scsi_ioctl.c 2013-01-04 04:01:34.000000000 -0800
-+++ block/scsi_ioctl.c 2013-03-19 04:00:54.000000000 -0700
-@@ -645,16 +578,12 @@
- case SG_EMULATED_HOST:
- return 0;
- case CDROM_GET_CAPABILITY:
-- /* Keep this until we remove the printk below. udev sends it
-- * and we do not want to spam dmesg about it. CD-ROMs do
-- * not have partitions, so we get here only for disks.
-- */
- return -ENOIOCTLCMD;
- default:
- break;
- }
-
-- /* In particular, rule out all resets and host-specific ioctls. */
-+
- printk_ratelimited(KERN_WARNING
- "%s: sending ioctl %x to a partition!\n", current->comm, cmd);
-
View
BIN dna/out/Blackout-Viverrine-B5.4.zip
Binary file not shown.
View
36 drivers/base/cpu.c.rej
@@ -1,36 +0,0 @@
---- drivers/base/cpu.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/base/cpu.c 2013-03-19 04:01:00.000000000 -0700
-@@ -220,31 +203,8 @@
-
- static void cpu_device_release(struct device *dev)
- {
-- /*
-- * This is an empty function to prevent the driver core from spitting a
-- * warning at us. Yes, I know this is directly opposite of what the
-- * documentation for the driver core and kobjects say, and the author
-- * of this code has already been publically ridiculed for doing
-- * something as foolish as this. However, at this point in time, it is
-- * the only way to handle the issue of statically allocated cpu
-- * devices. The different architectures will have their cpu device
-- * code reworked to properly handle this in the near future, so this
-- * function will then be changed to correctly free up the memory held
-- * by the cpu device.
-- *
-- * Never copy this way of doing things, or you too will be made fun of
-- * on the linux-kerenl list, you have been warned.
-- */
--}
--
--/*
-- * register_cpu - Setup a sysfs device for a CPU.
-- * @cpu - cpu->hotpluggable field set to 1 will generate a control file in
-- * sysfs for this CPU.
-- * @num - CPU number to use when creating the device.
-- *
-- * Initialize and register the CPU device.
-- */
-+}
-+
- int __cpuinit register_cpu(struct cpu *cpu, int num)
- {
- int error;
View
17 drivers/base/power/runtime.c.rej
@@ -1,17 +0,0 @@
---- drivers/base/power/runtime.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/base/power/runtime.c 2013-03-19 04:01:00.000000000 -0700
-@@ -533,12 +392,12 @@
- || dev->parent->power.runtime_status == RPM_ACTIVE) {
- atomic_inc(&dev->parent->power.child_count);
- spin_unlock(&dev->parent->power.lock);
-- goto no_callback; /* Assume success. */
-+ goto no_callback;
- }
- spin_unlock(&dev->parent->power.lock);
- }
-
-- /* Carry out an asynchronous or a synchronous resume. */
-+
- if (rpmflags & RPM_ASYNC) {
- dev->power.request = RPM_REQ_RESUME;
- if (!dev->power.request_pending) {
View
63 drivers/base/power/wakeup.c.rej
@@ -1,63 +0,0 @@
---- drivers/base/power/wakeup.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/base/power/wakeup.c 2013-03-19 04:01:00.000000000 -0700
-@@ -232,58 +128,17 @@
- }
- EXPORT_SYMBOL_GPL(device_set_wakeup_enable);
-
--/*
-- * The functions below use the observation that each wakeup event starts a
-- * period in which the system should not be suspended. The moment this period
-- * will end depends on how the wakeup event is going to be processed after being
-- * detected and all of the possible cases can be divided into two distinct
-- * groups.
-- *
-- * First, a wakeup event may be detected by the same functional unit that will
-- * carry out the entire processing of it and possibly will pass it to user space
-- * for further processing. In that case the functional unit that has detected
-- * the event may later "close" the "no suspend" period associated with it
-- * directly as soon as it has been dealt with. The pair of pm_stay_awake() and
-- * pm_relax(), balanced with each other, is supposed to be used in such
-- * situations.
-- *
-- * Second, a wakeup event may be detected by one functional unit and processed
-- * by another one. In that case the unit that has detected it cannot really
-- * "close" the "no suspend" period associated with it, unless it knows in
-- * advance what's going to happen to the event during processing. This
-- * knowledge, however, may not be available to it, so it can simply specify time
-- * to wait before the system can be suspended and pass it as the second
-- * argument of pm_wakeup_event().
-- *
-- * It is valid to call pm_relax() after pm_wakeup_event(), in which case the
-- * "no suspend" period will be ended either by the pm_relax(), or by the timer
-- * function executed when the timer expires, whichever comes first.
-- */
--
--/**
-- * wakup_source_activate - Mark given wakeup source as active.
-- * @ws: Wakeup source to handle.
-- *
-- * Update the @ws' statistics and, if @ws has just been activated, notify the PM
-- * core of the event by incrementing the counter of of wakeup events being
-- * processed.
-- */
-+
- static void wakeup_source_activate(struct wakeup_source *ws)
- {
- ws->active = true;
- ws->active_count++;
- ws->last_time = ktime_get();
-
-- /* Increment the counter of events in progress. */
-+
- atomic_inc(&combined_event_count);
- }
-
--/**
-- * __pm_stay_awake - Notify the PM core of a wakeup event.
-- * @ws: Wakeup source object associated with the source of the event.
-- *
-- * It is safe to call this function from interrupt context.
-- */
- void __pm_stay_awake(struct wakeup_source *ws)
- {
- unsigned long flags;
View
25 drivers/base/regmap/regmap-debugfs.c.rej
@@ -1,25 +0,0 @@
---- drivers/base/regmap/regmap-debugfs.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/base/regmap/regmap-debugfs.c 2013-03-19 04:01:00.000000000 -0700
-@@ -86,18 +85,18 @@
- if (regmap_precious(map, i))
- continue;
-
-- /* If we're in the region the user is trying to read */
-+
- if (p >= *ppos) {
-- /* ...but not beyond it */
-+
- if (buf_pos >= count - 1 - tot_len)
- break;
-
-- /* Format the register */
-+
- snprintf(buf + buf_pos, count - buf_pos, "%.*x: ",
- reg_len, i);
- buf_pos += reg_len + 2;
-
-- /* Format the value, write all X if we can't read */
-+
- ret = regmap_read(map, i, &val);
- if (ret == 0)
- snprintf(buf + buf_pos, count - buf_pos,
View
10 drivers/base/topology.c.rej
@@ -1,10 +0,0 @@
---- drivers/base/topology.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/base/topology.c 2013-03-19 04:01:00.000000000 -0700
-@@ -142,7 +142,6 @@
- .name = "topology"
- };
-
--/* Add/Remove cpu_topology interface for CPU device */
- static int __cpuinit topology_add_dev(unsigned int cpu)
- {
- struct device *dev = get_cpu_device(cpu);
View
17 drivers/block/loop.c.rej
@@ -1,17 +0,0 @@
---- drivers/block/loop.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/block/loop.c 2013-03-19 04:01:00.000000000 -0700
-@@ -1173,12 +1086,12 @@
- if (unlikely(err))
- goto out;
- sec = get_capacity(lo->lo_disk);
-- /* the width of sector_t may be narrow for bit-shift */
-+
- sz = sec;
- sz <<= 9;
- mutex_lock(&bdev->bd_mutex);
- bd_set_size(bdev, sz);
-- /* let user-space know about the new size */
-+
- kobject_uevent(&disk_to_dev(bdev->bd_disk)->kobj, KOBJ_CHANGE);
- mutex_unlock(&bdev->bd_mutex);
-
View
144 drivers/cpufreq/cpufreq.c.rej
@@ -1,144 +0,0 @@
---- drivers/cpufreq/cpufreq.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/cpufreq/cpufreq.c 2013-03-19 04:01:00.000000000 -0700
-@@ -32,15 +32,9 @@
-
- #include <trace/events/power.h>
-
--/**
-- * The "cpufreq driver" - the arch- or hardware-dependent low
-- * level driver of CPUFreq support, and its spinlock. This lock
-- * also protects the cpufreq_cpu_data array.
-- */
- static struct cpufreq_driver *cpufreq_driver;
- static DEFINE_PER_CPU(struct cpufreq_policy *, cpufreq_cpu_data);
- #ifdef CONFIG_HOTPLUG_CPU
--/* This one keeps track of the previously set governor of a removed CPU */
- struct cpufreq_cpu_save_data {
- char gov[CPUFREQ_NAME_LEN];
- unsigned int max, min;
-@@ -124,7 +91,7 @@
- if (cpu >= nr_cpu_ids)
- goto err_out;
-
-- /* get the cpufreq driver */
-+
- spin_lock_irqsave(&cpufreq_driver_lock, flags);
-
- if (!cpufreq_driver)
-@@ -210,10 +158,6 @@
- switch (state) {
-
- case CPUFREQ_PRECHANGE:
-- /* detect if the driver reported a value as "old frequency"
-- * which is not equal to what the cpufreq core thinks is
-- * "old frequency".
-- */
- if (!(cpufreq_driver->flags & CPUFREQ_CONST_LOOPS)) {
- if ((policy) && (policy->cpu == freqs->cpu) &&
- (policy->cur) && (policy->cur != freqs->old)) {
-@@ -430,17 +339,11 @@
- return count;
- }
-
--/**
-- * show_scaling_driver - show the cpufreq driver currently loaded
-- */
- static ssize_t show_scaling_driver(struct cpufreq_policy *policy, char *buf)
- {
- return scnprintf(buf, CPUFREQ_NAME_LEN, "%s\n", cpufreq_driver->name);
- }
-
--/**
-- * show_scaling_available_governors - show the available CPUfreq governors
-- */
- static ssize_t show_scaling_available_governors(struct cpufreq_policy *policy,
- char *buf)
- {
-@@ -767,13 +643,13 @@
- int ret = 0;
- unsigned int j;
-
-- /* prepare interface data */
-+
- ret = kobject_init_and_add(&policy->kobj, &ktype_cpufreq,
- &dev->kobj, "cpufreq");
- if (ret)
- return ret;
-
-- /* set up files for this cpu device */
-+
- drv_attr = cpufreq_driver->attr;
- while ((drv_attr) && (*drv_attr)) {
- ret = sysfs_create_file(&policy->kobj, &((*drv_attr)->attr));
-@@ -811,10 +687,10 @@
- goto err_out_kobj_put;
-
- memcpy(&new_policy, policy, sizeof(struct cpufreq_policy));
-- /* assure that the starting sequence is run in __cpufreq_set_policy */
-+
- policy->governor = NULL;
-
-- /* set default policy */
-+
- ret = __cpufreq_set_policy(policy, &new_policy);
- policy->user_policy.policy = policy->policy;
- policy->user_policy.governor = policy->governor;
-@@ -898,9 +763,6 @@
- #endif
- if (!found)
- policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
-- /* call driver. From then on the cpufreq must be able
-- * to accept all calls to ->verify and ->setpolicy for this CPU
-- */
- ret = cpufreq_driver->init(policy);
- if (ret) {
- pr_debug("initialization failed\n");
-@@ -1159,8 +974,6 @@
-
- if (ret_freq && policy->cur &&
- !(cpufreq_driver->flags & CPUFREQ_CONST_LOOPS)) {
-- /* verify no discrepancy between actual and
-- saved value exists */
- if (unlikely(ret_freq != policy->cur)) {
- cpufreq_out_of_sync(cpu, policy->cur, ret_freq);
- schedule_work(&policy->update);
-@@ -1509,26 +1252,24 @@
- goto error_out;
- }
-
-- /* verify the cpu speed can be set within this limit */
-+
- ret = cpufreq_driver->verify(policy);
- if (ret)
- goto error_out;
-
-- /* adjust if necessary - all reasons */
-+
- blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
- CPUFREQ_ADJUST, policy);
-
-- /* adjust if necessary - hardware incompatibility*/
-+
- blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
- CPUFREQ_INCOMPATIBLE, policy);
-
-- /* verify the cpu speed can be set within this limit,
-- which might be different to the first one */
- ret = cpufreq_driver->verify(policy);
- if (ret)
- goto error_out;
-
-- /* notification of the new policy */
-+
- blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
- CPUFREQ_NOTIFY, policy);
-
-@@ -1600,8 +1334,6 @@
- policy.policy = data->user_policy.policy;
- policy.governor = data->user_policy.governor;
-
-- /* BIOS might change freq behind our back
-- -> ask driver for current freq and notify governors about a change */
- if (cpufreq_driver->get) {
- policy.cur = cpufreq_driver->get(cpu);
- if (!data->cur) {
View
17 drivers/cpufreq/cpufreq_ondemand.c.rej
@@ -1,17 +0,0 @@
---- drivers/cpufreq/cpufreq_ondemand.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/cpufreq/cpufreq_ondemand.c 2013-03-19 04:01:00.000000000 -0700
-@@ -961,12 +871,12 @@
-
- if ((dbs_tuners_ins.powersave_bias == POWERSAVE_BIAS_MAXLEVEL) ||
- (dbs_tuners_ins.powersave_bias == POWERSAVE_BIAS_MINLEVEL)) {
-- /* nothing to do */
-+
- return;
- }
-
- for_each_online_cpu(i) {
-- /* Only allow queue work when cpufreq initialization has finished */
-+
- if (per_cpu(cpufreq_init_done, i))
- queue_work_on(i, input_wq, &per_cpu(dbs_refresh_work, i));
- else
View
6 drivers/gpu/msm/adreno.c
@@ -359,6 +359,8 @@ static void adreno_iommu_setstate(struct kgsl_device *device,
KGSL_IOMMU_CONTEXT_PRIV,
device->mmu.setstate_memory.gpuaddr +
KGSL_IOMMU_SETSTATE_NOP_OFFSET);
+
+ cmds += adreno_add_idle_cmds(adreno_dev, cmds);
sizedwords += (cmds - &link[0]);
if (sizedwords) {
@@ -374,6 +376,10 @@ static void adreno_iommu_setstate(struct kgsl_device *device,
kgsl_mmu_disable_clk_on_ts(&device->mmu,
adreno_dev->ringbuffer.timestamp[KGSL_MEMSTORE_GLOBAL], true);
}
+ if (sizedwords > (sizeof(link)/sizeof(unsigned int))) {
+ KGSL_DRV_ERR(device, "Temp command buffer overflow\n");
+ BUG();
+ }
done:
if (num_iommu_units)
kfree(reg_map_array);
View
37 drivers/gpu/msm/adreno.c.rej
@@ -1,37 +0,0 @@
---- drivers/gpu/msm/adreno.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/gpu/msm/adreno.c 2013-03-19 04:01:00.000000000 -0700
-@@ -360,27 +331,27 @@
- device->mmu.setstate_memory.gpuaddr +
- KGSL_IOMMU_SETSTATE_NOP_OFFSET);
-
-+ cmds += adreno_add_idle_cmds(adreno_dev, cmds);
-+
- sizedwords += (cmds - &link[0]);
- if (sizedwords) {
-- /* invalidate all base pointers */
-+
- *cmds++ = cp_type3_packet(CP_INVALIDATE_STATE, 1);
- *cmds++ = 0x7fff;
- sizedwords += 2;
-- /*
-- * add an interrupt at the end of commands so that the smmu
-- * disable clock off function will get called
-- */
- *cmds++ = cp_type3_packet(CP_INTERRUPT, 1);
- *cmds++ = CP_INT_CNTL__RB_INT_MASK;
- sizedwords += 2;
-- /* This returns the per context timestamp but we need to
-- * use the global timestamp for iommu clock disablement */
- adreno_ringbuffer_issuecmds(device, adreno_ctx,
- KGSL_CMD_FLAGS_PMODE,
- &link[0], sizedwords);
- kgsl_mmu_disable_clk_on_ts(&device->mmu,
- adreno_dev->ringbuffer.timestamp[KGSL_MEMSTORE_GLOBAL], true);
- }
-+ if (sizedwords > (sizeof(link)/sizeof(unsigned int))) {
-+ KGSL_DRV_ERR(device, "Temp command buffer overflow\n");
-+ BUG();
-+ }
- done:
- if (num_iommu_units)
- kfree(reg_map_array);
View
73 drivers/gpu/msm/adreno_a3xx.c.rej
@@ -1,73 +0,0 @@
---- drivers/gpu/msm/adreno_a3xx.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/gpu/msm/adreno_a3xx.c 2013-03-19 04:01:00.000000000 -0700
-@@ -2469,7 +2237,7 @@
- {
- struct kgsl_device *device = &adreno_dev->dev;
-
-- /* Set up 16 deep read/write request queues */
-+
-
- adreno_regwrite(device, A3XX_VBIF_IN_RD_LIM_CONF0, 0x10101010);
- adreno_regwrite(device, A3XX_VBIF_IN_RD_LIM_CONF1, 0x10101010);
-@@ -2479,52 +2247,47 @@
- adreno_regwrite(device, A3XX_VBIF_IN_WR_LIM_CONF0, 0x10101010);
- adreno_regwrite(device, A3XX_VBIF_IN_WR_LIM_CONF1, 0x10101010);
-
-- /* Enable WR-REQ */
-+
- adreno_regwrite(device, A3XX_VBIF_GATE_OFF_WRREQ_EN, 0x000000FF);
-
-- /* Set up round robin arbitration between both AXI ports */
-+
- adreno_regwrite(device, A3XX_VBIF_ARB_CTL, 0x00000030);
-
-- /* Set up AOOO */
-+
- adreno_regwrite(device, A3XX_VBIF_OUT_AXI_AOOO_EN, 0x0000003C);
- adreno_regwrite(device, A3XX_VBIF_OUT_AXI_AOOO, 0x003C003C);
-
- if (cpu_is_apq8064()) {
-- /* Enable 1K sort */
-+
- adreno_regwrite(device, A3XX_VBIF_ABIT_SORT, 0x000000FF);
- adreno_regwrite(device, A3XX_VBIF_ABIT_SORT_CONF, 0x000000A4);
- }
-- /* Make all blocks contribute to the GPU BUSY perf counter */
-+
- adreno_regwrite(device, A3XX_RBBM_GPU_BUSY_MASKED, 0xFFFFFFFF);
-
-- /* Tune the hystersis counters for SP and CP idle detection */
-+
- adreno_regwrite(device, A3XX_RBBM_SP_HYST_CNT, 0x10);
- adreno_regwrite(device, A3XX_RBBM_WAIT_IDLE_CLOCKS_CTL, 0x10);
-
-- /* Enable the RBBM error reporting bits. This lets us get
-- useful information on failure */
-
- adreno_regwrite(device, A3XX_RBBM_AHB_CTL0, 0x00000001);
-
-- /* Enable AHB error reporting */
-+
- adreno_regwrite(device, A3XX_RBBM_AHB_CTL1, 0xA6FFFFFF);
-
-- /* Turn on the power counters */
-+
- adreno_regwrite(device, A3XX_RBBM_RBBM_CTL, 0x00030000);
-
-- /* Turn on hang detection - this spews a lot of useful information
-- * into the RBBM registers on a hang */
-
- adreno_regwrite(device, A3XX_RBBM_INTERFACE_HANG_INT_CTL,
- (1 << 16) | 0xFFF);
-
-- /* Enable Clock gating */
-+
- adreno_regwrite(device, A3XX_RBBM_CLOCK_CTL,
- A3XX_RBBM_CLOCK_CTL_DEFAULT);
-
- }
-
--/* Defined in adreno_a3xx_snapshot.c */
- void *a3xx_snapshot(struct adreno_device *adreno_dev, void *snapshot,
- int *remain, int hang);
-
View
390 drivers/input/touchscreen/synaptics_3200.c
@@ -7,8 +7,6 @@
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
- * Synaptics sweep2wake mods based off of showp1984's endeavoru mod
- *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@@ -37,12 +35,9 @@
#include <linux/ctype.h>
#endif
#define SYN_I2C_RETRY_TIMES 10
+#define SHIFT_BITS 10
#define SYN_WIRELESS_DEBUG
-// #define SYN_CABLE_CONTROL
#define SYN_CALIBRATION_CONTROL
-/* #define SYN_FILTER_CONTROL */
-/* #define SYN_FLASH_PROGRAMMING_LOG */
-/* #define SYN_DISABLE_CONFIG_UPDATE */
struct synaptics_ts_data {
uint16_t addr;
@@ -144,7 +139,6 @@ static int syn_pdt_scan(struct synaptics_ts_data *ts, int num_page);
static int synaptics_init_panel(struct synaptics_ts_data *ts);
static irqreturn_t synaptics_irq_thread(int irq, void *ptr);
-
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
int s2w_switch = 1;
bool scr_suspended = false, exec_count = true;
@@ -1015,89 +1009,98 @@ static ssize_t syn_unlock_store(struct device *dev,
ts->psensor_resume_enable = 0;
}
}
+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
#ifdef SYN_CALIBRATION_CONTROL
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, 0x0);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:1", __func__);
-
- if (ts->energy_ratio_relaxation) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE), 0x0);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:2", __func__);
- }
- if (ts->saturation_bef_unlock) {
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_aft_unlock & 0xFF);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:3", __func__);
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_aft_unlock & 0xFF00) >> 8);
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, 0x0);
if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:4", __func__);
- printk(KERN_INFO "[TP] %s: unlock confirmed. set saturation: %x\n"
- , __func__, ts->saturation_aft_unlock);
- }
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:1", __func__);
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:5", __func__);
-
- if (ts->multitouch_calibration) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:6", __func__);
- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
- }
-#endif
- if (ts->large_obj_check) {
- if (ts->package_id == 2200) {
+ if (ts->energy_ratio_relaxation) {
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj);
+ get_address_base(ts, 0x54, CONTROL_BASE), 0x0);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:2", __func__);
+ }
- } else {
+ if (ts->saturation_bef_unlock) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_aft_unlock & 0xFF);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:3", __func__);
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj);
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_aft_unlock & 0xFF00) >> 8);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:4", __func__);
+ printk(KERN_INFO "[TP] %s: unlock confirmed. set saturation: %x\n"
+ , __func__, ts->saturation_aft_unlock);
}
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:7", __func__);
- printk(KERN_INFO "[TP] %s: unlock confirmed. set large obj suppression: %x\n"
- , __func__, ts->default_large_obj);
- }
- if (ts->segmentation_bef_unlock) {
- if (ts->package_id == 2200) {
+ if ( ts->PixelTouchThreshold_bef_unlock ) {
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_aft_unlock);
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x04, ts->PixelTouchThreshold_aft_unlock);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "F54_ANALOG_CTRL03 Pixel Touch Threshold", __func__);
+ printk(KERN_INFO "[TP] %s: set F54_ANALOG_CTRL03 Pixel Touch Threshold: %x\n", __func__, ts->PixelTouchThreshold_aft_unlock);
+ }
- } else {
+
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:5", __func__);
+
+ if (ts->multitouch_calibration) {
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_aft_unlock);
+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:6", __func__);
+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
}
- if (ret < 0)
+#endif
+ if (ts->large_obj_check) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj);
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:8", __func__);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj);
+ }
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:7", __func__);
+ printk(KERN_INFO "[TP] %s: unlock confirmed. set large obj suppression: %x\n"
+ , __func__, ts->default_large_obj);
+ }
- printk(KERN_INFO "[TP] %s: unlock confirmed. set segmentation aggressiveness: %x\n"
- , __func__, ts->segmentation_aft_unlock);
- }
+ if (ts->segmentation_bef_unlock) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_aft_unlock);
- if (ts->threshold_bef_unlock) {
- if (ts->package_id == 2200) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_aft_unlock);
- } else {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_aft_unlock);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_aft_unlock);
+ }
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:8", __func__);
+ printk(KERN_INFO "[TP] %s: unlock confirmed. set segmentation aggressiveness: %x\n"
+ , __func__, ts->segmentation_aft_unlock);
}
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:9", __func__);
- printk(KERN_INFO "[TP] %s: unlock confirmed. set Z Touch threshold: %x\n"
- , __func__, ts->threshold_aft_unlock);
+ if (ts->threshold_bef_unlock) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_aft_unlock);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_aft_unlock);
+ }
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:9", __func__);
+ printk(KERN_INFO "[TP] %s: unlock confirmed. set Z Touch threshold: %x\n"
+ , __func__, ts->threshold_aft_unlock);
+ }
}
}
@@ -1478,7 +1481,6 @@ static DEVICE_ATTR(sweep2wake, (S_IWUSR|S_IRUGO),
synaptics_sweep2wake_show, synaptics_sweep2wake_dump);
#endif
-
static struct kobject *android_touch_kobj;
static int synaptics_touch_sysfs_init(void)
@@ -1514,7 +1516,6 @@ static int synaptics_touch_sysfs_init(void)
if (get_address_base(gl_ts, 0x54, FUNCTION))
if (sysfs_create_file(android_touch_kobj, &dev_attr_diag.attr))
return -ENOMEM;
-
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
ret = sysfs_create_file(android_touch_kobj, &dev_attr_sweep2wake.attr);
if (ret) {
@@ -1718,7 +1719,6 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
ts->grip_b_suppression &= ~BIT(i);
}
#endif
-
}
if (ts->finger_pressed != finger_pressed
) {
@@ -1799,7 +1799,7 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
#endif
if (ts->reduce_report_level[0])
ts->tap_suppression = 0;
- if (ts->debug_log_level & 0x2)
+ if (ts->debug_log_level & BIT(1))
printk(KERN_INFO "[TP] Finger leave\n");
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
/* if finger released, reset count & barriers */
@@ -1823,6 +1823,7 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
}
if (ts->pre_finger_data[0][0] < 2 || finger_pressed) {
+ base = (ts->finger_support + 3) / 4;
for (i = 0; i < ts->finger_support; i++) {
uint32_t flip_flag = SYNAPTICS_FLIP_X;
if ((finger_pressed | finger_release_changed) & BIT(i)) {
@@ -1849,7 +1850,7 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
if (!ts->first_pressed) {
if (ts->finger_count == 0)
ts->first_pressed = 1;
- printk(KERN_INFO "[TP1] E%d@%d, %d\n", i + 1,
+ printk(KERN_INFO "[TP] E%d@%d, %d\n", i + 1,
finger_data[i][0], finger_data[i][1]);
}
}
@@ -1888,13 +1889,11 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
ts->tap_suppression &= ~BIT(i);
} else {
finger_pressed &= ~BIT(i);
-
-
- if (ts->debug_log_level & 0x2)
- printk(KERN_INFO
- "[TP2] Filtered Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
- i + 1, finger_data[i][0], finger_data[i][1],
- finger_data[i][2], finger_data[i][3]);
+ if (ts->debug_log_level & (BIT(1) | BIT(3)))
+ printk(KERN_INFO
+ "[TP] Filtered Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
+ i + 1, finger_data[i][0], finger_data[i][1],
+ finger_data[i][2], finger_data[i][3]);
}
}
}
@@ -1951,6 +1950,21 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
(finger_pressed == 0) << 31 |
finger_data[i][0] << 16 | finger_data[i][1]);
}
+
+ if ((finger_press_changed & BIT(i)) && ts->debug_log_level & BIT(3)) {
+ if(ts->width_factor && ts->height_factor){
+ printk(KERN_INFO
+ "[TP] Screen:F[%02d]:Down, X=%d, Y=%d, W=%d, Z=%d\n",
+ i+1, (finger_data[i][0]*ts->width_factor)>>SHIFT_BITS,
+ (finger_data[i][1]*ts->height_factor)>>SHIFT_BITS,
+ finger_data[i][2], finger_data[i][3]);
+ } else {
+ printk(KERN_INFO
+ "[TP] Raw:F[%02d]:Down, X=%d, Y=%d, W=%d, Z=%d\n",
+ i+1, finger_data[i][0], finger_data[i][1],
+ finger_data[i][2], finger_data[i][3]);
+ }
+ }
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
// printk(KERN_INFO "[SWEEP2WAKE_DEBUG]: TOUCH at x = %d\n", finger_data[i][0]);
@@ -2022,25 +2036,29 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
}
}
#endif
+
if (ts->pre_finger_data[0][0] < 2) {
if (finger_press_changed & BIT(i)) {
ts->pre_finger_data[i + 1][0] = finger_data[i][0];
ts->pre_finger_data[i + 1][1] = finger_data[i][1];
+
if (!ts->first_pressed)
printk(KERN_INFO "[TP] S%d@%d, %d\n", i + 1,
finger_data[i][0], finger_data[i][1]);
+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
#ifdef SYN_CALIBRATION_CONTROL
- if (ts->multitouch_calibration) {
- if (ts->finger_count == ts->finger_support) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_1", __func__);
- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
- } else if (!ts->pre_finger_data[0][0] && ts->finger_count > 1)
- ts->pre_finger_data[0][0] = 1;
- }
+ if (ts->multitouch_calibration) {
+ if (ts->finger_count == ts->finger_support) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_1", __func__);
+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
+ } else if (!ts->pre_finger_data[0][0] && ts->finger_count > 1)
+ ts->pre_finger_data[0][0] = 1;
+ }
#endif
+ }
}
}
@@ -2053,25 +2071,27 @@ static void synaptics_ts_finger_func(struct synaptics_ts_data *ts)
if (ts->reduce_report_level[TAP_TIMEOUT] && (ts->tap_suppression))
ts->tap_timeout[i] = jiffies + msecs_to_jiffies(ts->reduce_report_level[TAP_TIMEOUT]);
}
-
}
- if (ts->debug_log_level & 0x2)
+
+ if (ts->debug_log_level & BIT(1))
printk(KERN_INFO
- "[TP3] Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
+ "[TP] Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
i + 1, finger_data[i][0], finger_data[i][1],
finger_data[i][2], finger_data[i][3]);
}
+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
#ifdef SYN_CALIBRATION_CONTROL
- if (ts->multitouch_calibration) {
- if ((finger_release_changed & BIT(i)) && ts->pre_finger_data[0][0] == 1) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_2", __func__);
- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
+ if (ts->multitouch_calibration) {
+ if ((finger_release_changed & BIT(i)) && ts->pre_finger_data[0][0] == 1) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_2", __func__);
+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
+ }
}
- }
#endif
+ }
if (!ts->finger_count)
ts->pre_finger_data[0][0] = 0;
}
@@ -3031,7 +3051,6 @@ static int synaptics_ts_suspend(struct i2c_client *client, pm_message_t mesg)
{
int ret;
struct synaptics_ts_data *ts = i2c_get_clientdata(client);
-
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
if (s2w_switch > 0) {
scr_suspended = true;
@@ -3044,7 +3063,6 @@ static int synaptics_ts_suspend(struct i2c_client *client, pm_message_t mesg)
}
}
#endif
-
printk(KERN_INFO "[TP] %s: enter\n", __func__);
if (ts->use_irq) {
@@ -3077,101 +3095,120 @@ static int synaptics_ts_suspend(struct i2c_client *client, pm_message_t mesg)
if (ts->psensor_status == 0) {
ts->pre_finger_data[0][0] = 0;
- ts->first_pressed = 0;
+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
+ ts->first_pressed = 0;
#ifdef SYN_CALIBRATION_CONTROL
- if (ts->mfg_flag != 1) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, ts->relaxation);
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "fast relaxation", __func__);
-
- if (ts->energy_ratio_relaxation) {
+ if (ts->mfg_flag != 1) {
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE), 0x20);
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, ts->relaxation);
if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "energy ratio relaxation", __func__);
- }
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "fast relaxation", __func__);
+
+ if (ts->energy_ratio_relaxation) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, CONTROL_BASE), 0x20);
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "energy ratio relaxation", __func__);
+ }
+
+ if (ts->saturation_bef_unlock) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_bef_unlock & 0xFF);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_bef_unlock & 0xFF00) >> 8);
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
+ printk(KERN_INFO "[TP] touch suspend, saturation capacitance: %x\n", ts->saturation_bef_unlock);
+ }
+
+ if ( ts->PixelTouchThreshold_bef_unlock ) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x04, ts->PixelTouchThreshold_bef_unlock );
+ if (ret < 0)
+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "F54_ANALOG_CTRL03 Pixel Touch Threshold", __func__);
+ printk(KERN_INFO "[TP] touch suspend, set F54_ANALOG_CTRL03 Pixel Touch Threshold: %x\n", ts->PixelTouchThreshold_bef_unlock);
+ }
- if (ts->saturation_bef_unlock) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_bef_unlock & 0xFF);
- if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_bef_unlock & 0xFF00) >> 8);
+ get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
if (ret < 0)
- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
- printk(KERN_INFO "[TP] touch suspend, saturation capacitance: %x\n", ts->saturation_bef_unlock);
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "force update", __func__);
+ printk(KERN_INFO "[TP] touch suspend, fast relasxation: %x\n", ts->relaxation);
}
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "force update", __func__);
- printk(KERN_INFO "[TP] touch suspend, fast relasxation: %x\n", ts->relaxation);
- }
#endif
- if (ts->large_obj_check) {
- if (ts->package_id == 2200) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj & 0x7F);
+ if (ts->large_obj_check) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj & 0x7F);
- } else {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj & 0x7F);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj & 0x7F);
+ }
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "large obj suppression", __func__);
+ printk(KERN_INFO "[TP] touch suspend, set large obj suppression: %x\n", ts->default_large_obj & 0x7F);
}
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "large obj suppression", __func__);
- printk(KERN_INFO "[TP] touch suspend, set large obj suppression: %x\n", ts->default_large_obj & 0x7F);
- }
- if (ts->segmentation_bef_unlock) {
- if (ts->package_id == 2200) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_bef_unlock);
- } else {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_bef_unlock);
+ if (ts->segmentation_bef_unlock) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_bef_unlock);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_bef_unlock);
+ }
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "segmentation aggressiveness", __func__);
+ printk(KERN_INFO "[TP] touch suspend, set segmentation aggressiveness: %x\n", ts->segmentation_bef_unlock);
}
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "segmentation aggressiveness", __func__);
- printk(KERN_INFO "[TP] touch suspend, set segmentation aggressiveness: %x\n", ts->segmentation_bef_unlock);
- }
- if (ts->threshold_bef_unlock) {
- if (ts->package_id == 2200) {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_bef_unlock);
+ if (ts->threshold_bef_unlock) {
+ if (ts->package_id == 2200) {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_bef_unlock);
- } else {
- ret = i2c_syn_write_byte_data(ts->client,
- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_bef_unlock);
+ } else {
+ ret = i2c_syn_write_byte_data(ts->client,
+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_bef_unlock);
+ }
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "Z Touch threshold", __func__);
+ printk(KERN_INFO "[TP] touch suspend, set Z Touch threshold: %x\n", ts->threshold_bef_unlock);
}
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "Z Touch threshold", __func__);
- printk(KERN_INFO "[TP] touch suspend, set Z Touch threshold: %x\n", ts->threshold_bef_unlock);
}
}
else if(ts->psensor_detection)
- ts->psensor_phone_enable = 1;
+ ts->psensor_phone_enable = 1;
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
if (s2w_switch == 0) {
#endif
- printk(KERN_INFO "[TP][PWR][STATE] get power key state = %d\n", getPowerKeyState());
+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT)
+ printk(KERN_INFO "[TP][PWR][STATE] get power key state = %d\n", getPowerKeyState());
if (ts->power)
ts->power(0);
else {
- if (ts->psensor_status > 0 && getPowerKeyState() == 0) {
- ret = i2c_syn_write_byte_data(client,
- get_address_base(ts, 0x01, CONTROL_BASE), 0x02); /* sleep without calibration*/
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x02", __func__);
- } else {
+ if (ts->packrat_number >= SYNAPTICS_FW_NOCAL_PACKRAT) {
ret = i2c_syn_write_byte_data(client,
- get_address_base(ts, 0x01, CONTROL_BASE), 0x01); /* sleep */
+ get_address_base(ts, 0x01, CONTROL_BASE), 0x01);
if (ret < 0)
i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x01", __func__);
+ } else {
+ if (ts->psensor_status > 0 && getPowerKeyState() == 0) {
+ ret = i2c_syn_write_byte_data(client,
+ get_address_base(ts, 0x01, CONTROL_BASE), 0x02);
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x02", __func__);
+ } else {
+ ret = i2c_syn_write_byte_data(client,
+ get_address_base(ts, 0x01, CONTROL_BASE), 0x01);
+ if (ret < 0)
+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x01", __func__);
+ }
}
}
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
@@ -3227,8 +3264,7 @@ static int synaptics_ts_resume(struct i2c_client *client)
input_report_abs(ts->input_dev, ABS_MT_AMPLITUDE, 0);
input_report_abs(ts->input_dev, ABS_MT_POSITION, 1 << 31);
}
-
- if(ts->psensor_detection) {
+ if (ts->psensor_detection) {
if(ts->psensor_status == 0) {
ts->psensor_resume_enable = 1;
printk(KERN_INFO "[TP] %s: Enable P-sensor by Touch\n", __func__);
@@ -3251,7 +3287,7 @@ static int synaptics_ts_resume(struct i2c_client *client)
else
hrtimer_start(&ts->timer, ktime_set(1, 0), HRTIMER_MODE_REL);
#ifdef CONFIG_TOUCHSCREEN_SYNAPTICS_SWEEP2WAKE
- }
+ }
#endif
return 0;
}
@@ -3304,4 +3340,4 @@ module_init(synaptics_ts_init);
module_exit(synaptics_ts_exit);
MODULE_DESCRIPTION("Synaptics Touchscreen Driver");
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL");
View
494 drivers/input/touchscreen/synaptics_3200.c.rej
@@ -1,494 +0,0 @@
---- drivers/input/touchscreen/synaptics_3200.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/input/touchscreen/synaptics_3200.c 2013-03-19 04:01:00.000000000 -0700
-@@ -33,12 +33,9 @@
- #include <linux/pl_sensor.h>
-
- #define SYN_I2C_RETRY_TIMES 10
-+#define SHIFT_BITS 10
- #define SYN_WIRELESS_DEBUG
--/* #define SYN_CABLE_CONTROL */
- #define SYN_CALIBRATION_CONTROL
--/* #define SYN_FILTER_CONTROL */
--/* #define SYN_FLASH_PROGRAMMING_LOG */
--/* #define SYN_DISABLE_CONFIG_UPDATE */
-
- struct synaptics_ts_data {
- uint16_t addr;
-@@ -950,87 +965,98 @@
- ts->psensor_resume_enable = 0;
- }
- }
-+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
- #ifdef SYN_CALIBRATION_CONTROL
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, 0x0);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:1", __func__);
--
-- if (ts->energy_ratio_relaxation) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE), 0x0);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:2", __func__);
-- }
--
-- if (ts->saturation_bef_unlock) {
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_aft_unlock & 0xFF);
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, 0x0);
- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:3", __func__);
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_aft_unlock & 0xFF00) >> 8);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:4", __func__);
-- printk(KERN_INFO "[TP] %s: unlock confirmed. set saturation: %x\n"
-- , __func__, ts->saturation_aft_unlock);
-- }
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:1", __func__);
-
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:5", __func__);
-+ if (ts->energy_ratio_relaxation) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE), 0x0);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:2", __func__);
-+ }
-
-- if (ts->multitouch_calibration) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:6", __func__);
-- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-- }
--#endif
-- if (ts->large_obj_check) {
-- if (ts->package_id == 2200) {
-+ if (ts->saturation_bef_unlock) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_aft_unlock & 0xFF);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:3", __func__);
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj);
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_aft_unlock & 0xFF00) >> 8);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:4", __func__);
-+ printk(KERN_INFO "[TP] %s: unlock confirmed. set saturation: %x\n"
-+ , __func__, ts->saturation_aft_unlock);
-+ }
-
-- } else {
-+ if ( ts->PixelTouchThreshold_bef_unlock ) {
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj);
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x04, ts->PixelTouchThreshold_aft_unlock);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "F54_ANALOG_CTRL03 Pixel Touch Threshold", __func__);
-+ printk(KERN_INFO "[TP] %s: set F54_ANALOG_CTRL03 Pixel Touch Threshold: %x\n", __func__, ts->PixelTouchThreshold_aft_unlock);
- }
-+
-+
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:7", __func__);
-- printk(KERN_INFO "[TP] %s: unlock confirmed. set large obj suppression: %x\n"
-- , __func__, ts->default_large_obj);
-- }
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:5", __func__);
-
-- if (ts->segmentation_bef_unlock) {
-- if (ts->package_id == 2200) {
-+ if (ts->multitouch_calibration) {
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_aft_unlock);
-+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:6", __func__);
-+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-+ }
-+#endif
-+ if (ts->large_obj_check) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj);
-
-- } else {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_aft_unlock);
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj);
-+ }
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:7", __func__);
-+ printk(KERN_INFO "[TP] %s: unlock confirmed. set large obj suppression: %x\n"
-+ , __func__, ts->default_large_obj);
- }
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:8", __func__);
-- printk(KERN_INFO "[TP] %s: unlock confirmed. set segmentation aggressiveness: %x\n"
-- , __func__, ts->segmentation_aft_unlock);
-- }
-
-- if (ts->threshold_bef_unlock) {
-- if (ts->package_id == 2200) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_aft_unlock);
-- } else {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_aft_unlock);
-+ if (ts->segmentation_bef_unlock) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_aft_unlock);
-+
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_aft_unlock);
-+ }
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:8", __func__);
-+ printk(KERN_INFO "[TP] %s: unlock confirmed. set segmentation aggressiveness: %x\n"
-+ , __func__, ts->segmentation_aft_unlock);
-+ }
-+
-+ if (ts->threshold_bef_unlock) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_aft_unlock);
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_aft_unlock);
-+ }
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:9", __func__);
-+ printk(KERN_INFO "[TP] %s: unlock confirmed. set Z Touch threshold: %x\n"
-+ , __func__, ts->threshold_aft_unlock);
- }
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:9", __func__);
-- printk(KERN_INFO "[TP] %s: unlock confirmed. set Z Touch threshold: %x\n"
-- , __func__, ts->threshold_aft_unlock);
- }
- }
-
-@@ -1692,11 +1790,12 @@
- #endif
- if (ts->reduce_report_level[0])
- ts->tap_suppression = 0;
-- if (ts->debug_log_level & 0x2)
-+ if (ts->debug_log_level & BIT(1))
- printk(KERN_INFO "[TP] Finger leave\n");
- }
-
- if (ts->pre_finger_data[0][0] < 2 || finger_pressed) {
-+ base = (ts->finger_support + 3) / 4;
- for (i = 0; i < ts->finger_support; i++) {
- uint32_t flip_flag = SYNAPTICS_FLIP_X;
- if ((finger_pressed | finger_release_changed) & BIT(i)) {
-@@ -1762,11 +1861,11 @@
- ts->tap_suppression &= ~BIT(i);
- } else {
- finger_pressed &= ~BIT(i);
-- if (ts->debug_log_level & 0x2)
-- printk(KERN_INFO
-- "[TP] Filtered Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
-- i + 1, finger_data[i][0], finger_data[i][1],
-- finger_data[i][2], finger_data[i][3]);
-+ if (ts->debug_log_level & (BIT(1) | BIT(3)))
-+ printk(KERN_INFO
-+ "[TP] Filtered Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
-+ i + 1, finger_data[i][0], finger_data[i][1],
-+ finger_data[i][2], finger_data[i][3]);
- }
- }
- }
-@@ -1824,25 +1923,43 @@
- finger_data[i][0] << 16 | finger_data[i][1]);
- }
-
-+ if ((finger_press_changed & BIT(i)) && ts->debug_log_level & BIT(3)) {
-+ if(ts->width_factor && ts->height_factor){
-+ printk(KERN_INFO
-+ "[TP] Screen:F[%02d]:Down, X=%d, Y=%d, W=%d, Z=%d\n",
-+ i+1, (finger_data[i][0]*ts->width_factor)>>SHIFT_BITS,
-+ (finger_data[i][1]*ts->height_factor)>>SHIFT_BITS,
-+ finger_data[i][2], finger_data[i][3]);
-+ } else {
-+ printk(KERN_INFO
-+ "[TP] Raw:F[%02d]:Down, X=%d, Y=%d, W=%d, Z=%d\n",
-+ i+1, finger_data[i][0], finger_data[i][1],
-+ finger_data[i][2], finger_data[i][3]);
-+ }
-+ }
-+
- if (ts->pre_finger_data[0][0] < 2) {
- if (finger_press_changed & BIT(i)) {
- ts->pre_finger_data[i + 1][0] = finger_data[i][0];
- ts->pre_finger_data[i + 1][1] = finger_data[i][1];
-+
- if (!ts->first_pressed)
- printk(KERN_INFO "[TP] S%d@%d, %d\n", i + 1,
- finger_data[i][0], finger_data[i][1]);
-+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
- #ifdef SYN_CALIBRATION_CONTROL
-- if (ts->multitouch_calibration) {
-- if (ts->finger_count == ts->finger_support) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_1", __func__);
-- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-- } else if (!ts->pre_finger_data[0][0] && ts->finger_count > 1)
-- ts->pre_finger_data[0][0] = 1;
-- }
-+ if (ts->multitouch_calibration) {
-+ if (ts->finger_count == ts->finger_support) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_1", __func__);
-+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-+ } else if (!ts->pre_finger_data[0][0] && ts->finger_count > 1)
-+ ts->pre_finger_data[0][0] = 1;
-+ }
- #endif
-+ }
- }
- }
-
-@@ -1857,23 +1974,25 @@
- }
- }
-
-- if (ts->debug_log_level & 0x2)
-+ if (ts->debug_log_level & BIT(1))
- printk(KERN_INFO
- "[TP] Finger %d=> X:%d, Y:%d w:%d, z:%d\n",
- i + 1, finger_data[i][0], finger_data[i][1],
- finger_data[i][2], finger_data[i][3]);
- }
-+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
- #ifdef SYN_CALIBRATION_CONTROL
-- if (ts->multitouch_calibration) {
-- if ((finger_release_changed & BIT(i)) && ts->pre_finger_data[0][0] == 1) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_2", __func__);
-- printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-+ if (ts->multitouch_calibration) {
-+ if ((finger_release_changed & BIT(i)) && ts->pre_finger_data[0][0] == 1) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, COMMAND_BASE), 0x01);
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "w:Rezero_2", __func__);
-+ printk(KERN_INFO "[TP] %s: Touch Calibration Confirmed, rezero\n", __func__);
-+ }
- }
-- }
- #endif
-+ }
- if (!ts->finger_count)
- ts->pre_finger_data[0][0] = 0;
- }
-@@ -2853,99 +3082,118 @@
-
- if (ts->psensor_status == 0) {
- ts->pre_finger_data[0][0] = 0;
-- ts->first_pressed = 0;
-+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT) {
-+ ts->first_pressed = 0;
-
- #ifdef SYN_CALIBRATION_CONTROL
-- if (ts->mfg_flag != 1) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, ts->relaxation);
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "fast relaxation", __func__);
--
-- if (ts->energy_ratio_relaxation) {
-+ if (ts->mfg_flag != 1) {
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE), 0x20);
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x10, ts->relaxation);
- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "energy ratio relaxation", __func__);
-- }
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "fast relaxation", __func__);
-+
-+ if (ts->energy_ratio_relaxation) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE), 0x20);
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "energy ratio relaxation", __func__);
-+ }
-+
-+ if (ts->saturation_bef_unlock) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_bef_unlock & 0xFF);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_bef_unlock & 0xFF00) >> 8);
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, saturation capacitance: %x\n", ts->saturation_bef_unlock);
-+ }
-+
-+ if ( ts->PixelTouchThreshold_bef_unlock ) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x54, CONTROL_BASE) + 0x04, ts->PixelTouchThreshold_bef_unlock );
-+ if (ret < 0)
-+ return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "F54_ANALOG_CTRL03 Pixel Touch Threshold", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, set F54_ANALOG_CTRL03 Pixel Touch Threshold: %x\n", ts->PixelTouchThreshold_bef_unlock);
-+ }
-
-- if (ts->saturation_bef_unlock) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x02, ts->saturation_bef_unlock & 0xFF);
-- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, CONTROL_BASE) + 0x03, (ts->saturation_bef_unlock & 0xFF00) >> 8);
-+ get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
- if (ret < 0)
-- return i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "saturation capacitance", __func__);
-- printk(KERN_INFO "[TP] touch suspend, saturation capacitance: %x\n", ts->saturation_bef_unlock);
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "force update", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, fast relasxation: %x\n", ts->relaxation);
- }
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x54, COMMAND_BASE), 0x04);
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "force update", __func__);
-- printk(KERN_INFO "[TP] touch suspend, fast relasxation: %x\n", ts->relaxation);
-- }
- #endif
-
-- if (ts->large_obj_check) {
-- if (ts->package_id == 2200) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj & 0x7F);
-+ if (ts->large_obj_check) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x26, ts->default_large_obj & 0x7F);
-
-- } else {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj & 0x7F);
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x29, ts->default_large_obj & 0x7F);
-+ }
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "large obj suppression", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, set large obj suppression: %x\n", ts->default_large_obj & 0x7F);
- }
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "large obj suppression", __func__);
-- printk(KERN_INFO "[TP] touch suspend, set large obj suppression: %x\n", ts->default_large_obj & 0x7F);
-- }
-
-- if (ts->segmentation_bef_unlock) {
-- if (ts->package_id == 2200) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_bef_unlock);
-- } else {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_bef_unlock);
-+ if (ts->segmentation_bef_unlock) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x25, ts->segmentation_bef_unlock);
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x22, ts->segmentation_bef_unlock);
-+ }
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "segmentation aggressiveness", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, set segmentation aggressiveness: %x\n", ts->segmentation_bef_unlock);
- }
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "segmentation aggressiveness", __func__);
-- printk(KERN_INFO "[TP] touch suspend, set segmentation aggressiveness: %x\n", ts->segmentation_bef_unlock);
-- }
-
-- if (ts->threshold_bef_unlock) {
-- if (ts->package_id == 2200) {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_bef_unlock);
-+ if (ts->threshold_bef_unlock) {
-+ if (ts->package_id == 2200) {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0A, ts->threshold_bef_unlock);
-
-- } else {
-- ret = i2c_syn_write_byte_data(ts->client,
-- get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_bef_unlock);
-+ } else {
-+ ret = i2c_syn_write_byte_data(ts->client,
-+ get_address_base(ts, 0x11, CONTROL_BASE) + 0x0C, ts->threshold_bef_unlock);
-+ }
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "Z Touch threshold", __func__);
-+ printk(KERN_INFO "[TP] touch suspend, set Z Touch threshold: %x\n", ts->threshold_bef_unlock);
- }
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "Z Touch threshold", __func__);
-- printk(KERN_INFO "[TP] touch suspend, set Z Touch threshold: %x\n", ts->threshold_bef_unlock);
- }
- }
- else if(ts->psensor_detection)
-- ts->psensor_phone_enable = 1;
-+ ts->psensor_phone_enable = 1;
-
-- printk(KERN_INFO "[TP][PWR][STATE] get power key state = %d\n", getPowerKeyState());
-+ if (ts->packrat_number < SYNAPTICS_FW_NOCAL_PACKRAT)
-+ printk(KERN_INFO "[TP][PWR][STATE] get power key state = %d\n", getPowerKeyState());
- if (ts->power)
- ts->power(0);
- else {
-- if (ts->psensor_status > 0 && getPowerKeyState() == 0) {
-+ if (ts->packrat_number >= SYNAPTICS_FW_NOCAL_PACKRAT) {
- ret = i2c_syn_write_byte_data(client,
-- get_address_base(ts, 0x01, CONTROL_BASE), 0x02); /* sleep without calibration*/
-- if (ret < 0)
-- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x02", __func__);
-- } else {
-- ret = i2c_syn_write_byte_data(client,
-- get_address_base(ts, 0x01, CONTROL_BASE), 0x01); /* sleep */
-+ get_address_base(ts, 0x01, CONTROL_BASE), 0x01);
- if (ret < 0)
- i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x01", __func__);
-+ } else {
-+ if (ts->psensor_status > 0 && getPowerKeyState() == 0) {
-+ ret = i2c_syn_write_byte_data(client,
-+ get_address_base(ts, 0x01, CONTROL_BASE), 0x02);
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x02", __func__);
-+ } else {
-+ ret = i2c_syn_write_byte_data(client,
-+ get_address_base(ts, 0x01, CONTROL_BASE), 0x01);
-+ if (ret < 0)
-+ i2c_syn_error_handler(ts, ts->i2c_err_handler_en, "sleep: 0x01", __func__);
-+ }
- }
- }
- return 0;
-@@ -2986,7 +3234,7 @@
- input_report_abs(ts->input_dev, ABS_MT_AMPLITUDE, 0);
- input_report_abs(ts->input_dev, ABS_MT_POSITION, 1 << 31);
- }
-- if(ts->psensor_detection) {
-+ if (ts->psensor_detection) {
- if(ts->psensor_status == 0) {
- ts->psensor_resume_enable = 1;
- printk(KERN_INFO "[TP] %s: Enable P-sensor by Touch\n", __func__);
View
11 drivers/md/dm-table.c.rej
@@ -1,11 +0,0 @@
---- drivers/md/dm-table.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/md/dm-table.c 2013-03-19 04:01:01.000000000 -0700
-@@ -1161,7 +966,7 @@
- struct dm_target *ti;
- unsigned i = 0;
-
-- /* Ensure that all underlying device are non-rotational. */
-+
- while (i < dm_table_get_num_targets(t)) {
- ti = dm_table_get_target(t, i++);
-
View
111 drivers/md/dm.c.rej
@@ -1,111 +0,0 @@
---- drivers/md/dm.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/md/dm.c 2013-03-19 04:01:01.000000000 -0700
-@@ -597,62 +490,30 @@
- bio_put(clone);
-
- if (tio->error)
-- /*
-- * An error has already been detected on the request.
-- * Once error occurred, just let clone->end_io() handle
-- * the remainder.
-- */
- return;
- else if (error) {
-- /*
-- * Don't notice the error to the upper layer yet.
-- * The error handling decision is made by the target driver,
-- * when the request is completed.
-- */
- tio->error = error;
- return;
- }
-
-- /*
-- * I/O for the bio successfully completed.
-- * Notice the data completion to the upper layer.
-- */
--
-- /*
-- * bios are processed from the head of the list.
-- * So the completing bio should always be rq->bio.
-- * If it's not, something wrong is happening.
-- */
-+
- if (tio->orig->bio != bio)
- DMERR("bio completion is going in the middle of the request");
-
-- /*
-- * Update the original request.
-- * Do not use blk_end_request() here, because it may complete
-- * the original request before the clone, and break the ordering.
-- */
- blk_update_request(tio->orig, 0, nr_bytes);
- }
-
--/*
-- * Don't touch any member of the md after calling this function because
-- * the md may be freed in dm_put() at the end of this function.
-- * Or do dm_get() before calling this function and dm_put() later.
-- */
- static void rq_completed(struct mapped_device *md, int rw, int run_queue)
- {
- atomic_dec(&md->pending[rw]);
-
-- /* nudge anyone waiting on suspend queue */
-+
- if (!md_in_flight(md))
- wake_up(&md->wait);
-
- if (run_queue)
- blk_run_queue(md->queue);
-
-- /*
-- * dm_put() must be at the end of this function. See the comment above
-- */
- dm_put(md);
- }
-
-@@ -1329,40 +1071,28 @@
- return BLKPREP_OK;
- }
-
--/*
-- * Returns:
-- * 0 : the request has been processed (not requeued)
-- * !0 : the request has been requeued
-- */
- static int map_request(struct dm_target *ti, struct request *clone,
- struct mapped_device *md)
- {
- int r, requeued = 0;
- struct dm_rq_target_io *tio = clone->end_io_data;
-
-- /*
-- * Hold the md reference here for the in-flight I/O.
-- * We can't rely on the reference count by device opener,
-- * because the device may be closed during the request completion
-- * when all bios are completed.
-- * See the comment in rq_completed() too.
-- */
- dm_get(md);
-
- tio->ti = ti;
- r = ti->type->map_rq(ti, clone, &tio->info);
- switch (r) {
- case DM_MAPIO_SUBMITTED:
-- /* The target has taken the I/O to submit by itself later */
-+
- break;
- case DM_MAPIO_REMAPPED:
-- /* The target has remapped the I/O so dispatch it */
-+
- trace_block_rq_remap(clone->q, clone, disk_devt(dm_disk(md)),
- blk_rq_pos(tio->orig));
- dm_dispatch_request(clone);
- break;
- case DM_MAPIO_REQUEUE:
-- /* The target wants to requeue the I/O */
-+
- dm_requeue_unmapped_request(clone);
- requeued = 1;
- break;
View
17 drivers/media/video/msm/msm.c.rej
@@ -1,17 +0,0 @@
---- drivers/media/video/msm/msm.c 2013-01-04 04:01:35.000000000 -0800
-+++ drivers/media/video/msm/msm.c 2013-03-19 04:00:56.000000000 -0700
-@@ -4022,14 +3946,11 @@
- kobject_del(camera_attrs_obj);
- return ret;
- }
--//HTC_END
- extern int system_rev;
-
- static int __devinit msm_camera_probe(struct platform_device *pdev)
- {
- int rc = 0, i;
-- /*for now just create a config 0 node
-- put logic here later to know how many configs to create*/
-
- pr_info("system rev = %d",system_rev);
- g_server_dev.config_info.num_config_nodes = 1;
View
12 drivers/misc/cable_detect_8xxx.c.rej
@@ -1,12 +0,0 @@
---- drivers/misc/cable_detect_8xxx.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/misc/cable_detect_8xxx.c 2013-03-19 04:01:00.000000000 -0700
-@@ -107,9 +103,6 @@
- mutex_lock(&cable_notify_sem);
- CABLE_DEBUG("%s: cable_type = %d\n", __func__, cable_type);
-
-- if (cable_type == CONNECT_TYPE_UNKNOWN)
-- cable_type = CONNECT_TYPE_USB;
--
- if (pInfo->ac_9v_gpio && (cable_type == CONNECT_TYPE_USB
- || cable_type == CONNECT_TYPE_AC
- || cable_type == CONNECT_TYPE_MHL_AC)) {
View
35 drivers/net/tun.c.rej
@@ -1,35 +0,0 @@
---- drivers/net/tun.c 2013-01-04 04:01:34.000000000 -0800
-+++ drivers/net/tun.c 2013-03-19 04:00:55.000000000 -0700
-@@ -354,28 +309,22 @@
-
- if (skb_queue_len(&tun->socket.sk->sk_receive_queue) >= dev->tx_queue_len) {
- if (!(tun->flags & TUN_ONE_QUEUE)) {
-- /* Normal queueing mode. */
-- /* Packet scheduler handles dropping of further packets. */
-+
-+
- netif_stop_queue(dev);
-
-- /* We won't see all dropped packets individually, so overrun
-- * error is more appropriate. */
- dev->stats.tx_fifo_errors++;
- } else {
-- /* Single queue mode.
-- * Driver handles dropping of all packets itself. */
- goto drop;
- }
- }
-
-- /* Orphan the skb - required as we might hang on to it
-- * for indefinite time. */
- skb_orphan(skb);
-
-- /* Enqueue packet */
-+
- skb_queue_tail(&tun->socket.sk->sk_receive_queue, skb);
-
-- /* Notify and wake up reader process */
-+
- if (tun->flags & TUN_FASYNC)
- kill_fasync(&tun->fasync, SIGIO, POLL_IN);
- wake_up_interruptible_poll(&tun->wq.wait, POLLIN |
View
166 drivers/net/usb/asix.c.rej
@@ -1,166 +0,0 @@
---- drivers/net/usb/asix.c 2013-01-04 04:01:34.000000000 -0800
-+++ drivers/net/usb/asix.c 2013-03-19 04:00:55.000000000 -0700
-@@ -1478,131 +1444,131 @@
-
- static const struct usb_device_id products [] = {
- {
-- // Linksys USB200M
-+
- USB_DEVICE (0x077b, 0x2226),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Netgear FA120
-+
- USB_DEVICE (0x0846, 0x1040),
- .driver_info = (unsigned long) &netgear_fa120_info,
- }, {
-- // DLink DUB-E100
-+
- USB_DEVICE (0x2001, 0x1a00),
- .driver_info = (unsigned long) &dlink_dub_e100_info,
- }, {
-- // Intellinet, ST Lab USB Ethernet
-+
- USB_DEVICE (0x0b95, 0x1720),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Hawking UF200, TrendNet TU2-ET100
-+
- USB_DEVICE (0x07b8, 0x420a),
- .driver_info = (unsigned long) &hawking_uf200_info,
- }, {
-- // Billionton Systems, USB2AR
-+
- USB_DEVICE (0x08dd, 0x90ff),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // ATEN UC210T
-+
- USB_DEVICE (0x0557, 0x2009),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Buffalo LUA-U2-KTX
-+
- USB_DEVICE (0x0411, 0x003d),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Buffalo LUA-U2-GT 10/100/1000
-+
- USB_DEVICE (0x0411, 0x006e),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // Sitecom LN-029 "USB 2.0 10/100 Ethernet adapter"
-+
- USB_DEVICE (0x6189, 0x182d),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Sitecom LN-031 "USB 2.0 10/100/1000 Ethernet adapter"
-+
- USB_DEVICE (0x0df6, 0x0056),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // corega FEther USB2-TX
-+
- USB_DEVICE (0x07aa, 0x0017),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // Surecom EP-1427X-2
-+
- USB_DEVICE (0x1189, 0x0893),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // goodway corp usb gwusb2e
-+
- USB_DEVICE (0x1631, 0x6200),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // JVC MP-PRX1 Port Replicator
-+
- USB_DEVICE (0x04f1, 0x3008),
- .driver_info = (unsigned long) &ax8817x_info,
- }, {
-- // ASIX AX88772B 10/100
-+
- USB_DEVICE (0x0b95, 0x772b),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // ASIX AX88772 10/100
-+
- USB_DEVICE (0x0b95, 0x7720),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // ASIX AX88178 10/100/1000
-+
- USB_DEVICE (0x0b95, 0x1780),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // Logitec LAN-GTJ/U2A
-+
- USB_DEVICE (0x0789, 0x0160),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // Linksys USB200M Rev 2
-+
- USB_DEVICE (0x13b1, 0x0018),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // 0Q0 cable ethernet
-+
- USB_DEVICE (0x1557, 0x7720),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // DLink DUB-E100 H/W Ver B1
-+
- USB_DEVICE (0x07d1, 0x3c05),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // DLink DUB-E100 H/W Ver B1 Alternate
-+
- USB_DEVICE (0x2001, 0x3c05),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // Linksys USB1000
-+
- USB_DEVICE (0x1737, 0x0039),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // IO-DATA ETG-US2
-+
- USB_DEVICE (0x04bb, 0x0930),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // Belkin F5D5055
-+
- USB_DEVICE(0x050d, 0x5055),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // Apple USB Ethernet Adapter
-+
- USB_DEVICE(0x05ac, 0x1402),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // Cables-to-Go USB Ethernet Adapter
-+
- USB_DEVICE(0x0b95, 0x772a),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // ABOCOM for pci
-+
- USB_DEVICE(0x14ea, 0xab11),
- .driver_info = (unsigned long) &ax88178_info,
- }, {
-- // ASIX 88772a
-+
- USB_DEVICE(0x0db0, 0xa877),
- .driver_info = (unsigned long) &ax88772_info,
- }, {
-- // Asus USB Ethernet Adapter
-+
- USB_DEVICE (0x0b95, 0x7e2b),
- .driver_info = (unsigned long) &ax88772_info,
- },
-- { }, // END
-+ { },
- };
- MODULE_DEVICE_TABLE(usb, products);
-
View
14 drivers/scsi/scsi_sysfs.c.rej
@@ -1,14 +0,0 @@
---- drivers/scsi/scsi_sysfs.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/scsi/scsi_sysfs.c 2013-03-19 04:01:00.000000000 -0700
-@@ -963,11 +883,6 @@
- if (found) {
- __scsi_remove_target(found);
- scsi_target_reap(found);
-- /* in the case where @dev has multiple starget children,
-- * continue removing.
-- *
-- * FIXME: does such a case exist?
-- */
- goto restart;
- }
- }
View
29 drivers/staging/android/lowmemorykiller.c.rej
@@ -1,29 +0,0 @@
---- drivers/staging/android/lowmemorykiller.c 2013-01-04 04:01:37.000000000 -0800
-+++ drivers/staging/android/lowmemorykiller.c 2013-03-19 04:01:01.000000000 -0700
-@@ -63,14 +63,6 @@
- printk(x); \
- } while (0)
-
--/**
-- * dump_tasks - dump current memory state of all system tasks
-- *
-- * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj
-- * value, oom_score_adj value, and name.
-- *
-- * Call with tasklist_lock read-locked.
-- */
- static void dump_tasks(void)
- {
- struct task_struct *p;
-@@ -80,11 +72,6 @@
- for_each_process(p) {
- task = find_lock_task_mm(p);
- if (!task) {
-- /*
-- * This is a kthread or all of p's threads have already
-- * detached their mm's. There's no need to report
-- * them; they can't be oom killed anyway.
-- */
- continue;
- }
-
View
37 drivers/thermal/msm8960_tsens.c.rej
@@ -1,37 +0,0 @@
---- drivers/thermal/msm8960_tsens.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/thermal/msm8960_tsens.c 2013-03-19 04:01:00.000000000 -0700
-@@ -76,16 +70,11 @@
- TSENS_THRESHOLD_UPPER_LIMIT_SHIFT)
- #define TSENS_THRESHOLD_LOWER_LIMIT_MASK (TSENS_THRESHOLD_MAX_CODE << \
- TSENS_THRESHOLD_LOWER_LIMIT_SHIFT)
--/* Initial temperature threshold values */
- #define TSENS_LOWER_LIMIT_TH 0x50
- #define TSENS_UPPER_LIMIT_TH 0xdf
- #define TSENS_MIN_LIMIT_TH 0x0
- #define TSENS_MAX_LIMIT_TH 0xff
-
--/* HW system of view operating temperature is -30 ~ 90. Add some buffer for sensor detect accuracy is poor.
-- * Here is chip of view, the accuracy of the TSENS sensors is
-- * 99.5% devices at 60 degree [-3.7, +4], 99.5% devices at 90 degree - [-4.47, 4.9]
-- */
- #define TSENS_MIN_LIMIT_TEMP -60
- #define TSENS_MAX_LIMIT_TEMP 120
-
-@@ -846,7 +825,7 @@
- else if (tmdev->sensor[i].offset < tmdev->sensor[sort_min].offset)
- sort_min = i;
- }
-- /* select the min and max temperatur to be limit threshold */
-+
- tsens_min_limit_th = tsens_tz_degC_to_code(TSENS_MIN_LIMIT_TEMP, sort_min);
- tsens_max_limit_th = tsens_tz_degC_to_code(TSENS_MAX_LIMIT_TEMP, sort_max);
-
-@@ -1035,7 +1012,7 @@
- tsens_hw_init();
-
- if (monitor_tsense_wq == NULL) {
-- /* Create private workqueue... */
-+
- monitor_tsense_wq = create_workqueue("monitor_tsense_wq");
- printk(KERN_INFO "Create monitor tsense workqueue(0x%x)...\n", (unsigned int)monitor_tsense_wq);
- }
View
26 drivers/thermal/msm_thermal.c.rej
@@ -1,26 +0,0 @@
---- drivers/thermal/msm_thermal.c 2013-01-04 04:01:36.000000000 -0800
-+++ drivers/thermal/msm_thermal.c 2013-03-19 04:01:00.000000000 -0700
-@@ -81,7 +81,7 @@
- if (max_freq == limited_max_freq)
- goto reschedule;
-
-- /* Update new limits */
-+
- for_each_possible_cpu(cpu) {
- ret = update_cpu_max_freq(cpu, max_freq);
- if (ret)
-@@ -99,12 +99,10 @@
- {
- int cpu = 0;
-
-- /* make sure check_temp is no longer running */
-- cancel_delayed_work(&check_temp_work);
-+
-+ cancel_delayed_work_sync(&check_temp_work);
- flush_scheduled_work();