Revert "Input: Touchscreen: add sweep2wake(only sweep2sleep works)"

This reverts commit eee388140086311249c418a42005926468f201e8.
cpufreq: Fix freq error
PM: Introduce suspend state PM_SUSPEND_FREEZE

PM_SUSPEND_FREEZE state is a general state that
does not need any platform specific support, it equals
frozen processes + suspended devices + idle processors.

Compared with PM_SUSPEND_MEMORY,
PM_SUSPEND_FREEZE saves less power
because the system is still in a running state.
PM_SUSPEND_FREEZE has less resume latency because it does not
touch BIOS, and the processors are in idle state.

Compared with RTPM/idle,
PM_SUSPEND_FREEZE saves more power as
1. the processor has longer sleep time because processes are frozen.
   The deeper c-state the processor supports, more power saving we can get.
2. PM_SUSPEND_FREEZE uses system suspend code path, thus we can get
   more power saving from the devices that does not have good RTPM support.

This state is useful for
1) platforms that do not have STR, or have a broken STR.
2) platforms that have an extremely low power idle state,
   which can be used to replace STR.

The following describes how PM_SUSPEND_FREEZE state works.
1. echo freeze > /sys/power/state
2. the processes are frozen.
3. all the devices are suspended.
4. all the processors are blocked by a wait queue
5. all the processors idles and enters (Deep) c-state.
6. an interrupt fires.
7. a processor is woken up and handles the irq.
8. if it is a general event,
   a) the irq handler runs and quites.
   b) goto step 4.
9. if it is a real wake event, say, power button pressing, keyboard touch, mouse moving,
   a) the irq handler runs and activate the wakeup source
   b) wakeup_source_activate() notifies the wait queue.
   c) system starts resuming from PM_SUSPEND_FREEZE
10. all the devices are resumed.
11. all the processes are unfrozen.
12. system is back to working.
Known Issue:
The wakeup of this new PM_SUSPEND_FREEZE state may behave differently
from the previous suspend state.
Take ACPI platform for example, there are some GPEs that only enabled
when the system is in sleep state, to wake the system backk from S3/S4.
But we are not touching these GPEs during transition to PM_SUSPEND_FREEZE.
This means we may lose some wake event.
But on the other hand, as we do not disable all the Interrupts during
PM_SUSPEND_FREEZE, we may get some extra "wakeup" Interrupts, that are
not available for S3/S4.

The patches has been tested on an old Sony laptop, and here are the results:

Average Power:
1. RPTM/idle for half an hour:
   14.8W, 12.6W, 14.1W, 12.5W, 14.4W, 13.2W, 12.9W
2. Freeze for half an hour:
   11W, 10.4W, 9.4W, 11.3W 10.5W
3. RTPM/idle for three hours:
   11.6W
4. Freeze for three hours:
   10W
5. Suspend to Memory:
   0.5~0.9W

Average Resume Latency:
1. RTPM/idle with a black screen: (From pressing keyboard to screen back)
   Less than 0.2s
2. Freeze: (From pressing power button to screen back)
   2.50s
3. Suspend to Memory: (From pressing power button to screen back)
   4.33s

From the results, we can see that all the platforms should benefit from
this patch, even if it does not have Low Power S0.

Signed-off-by: Zhang Rui <rui.zhang@intel.com>
modified for Mako from LKML reference

Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	kernel/power/suspend.c
net-fixes: flow_dissector: prevent an infinite loop (CVE-2013-4348)

Jason Wang found that a malicious packet could make skb_flow_dissect()
loop forever. We must check that IP header has a valid ihl to avoid
this loop. It involves IPIP encapsulation and ihl = 0 to trigger.

Given this bug is critical, I cooked a patch before having
a fix in upstream kernel.

Tested:

 Compiled/booted
 Ran some tests on bnx2x and explicitely disabled hardware provided rxhash
 ethtool -K eth1 rxhash off
 ethtool -K eth2 rxhash off

Google-Bug-Id: 11465355
Effort: net-fixes
Change-Id: I813e4dc48cecb05f8edfa218304e1f13fd764323
Signed-off-by: Ed Tam <etam@google.com>
lge_touch_core: back port fixes from @showp1984's Nexus 5 driver

Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	drivers/input/touchscreen/lge_touch_core.c
drivers/touchscreen: add sweep2wake

Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	drivers/input/touchscreen/Kconfig
	drivers/input/touchscreen/lge_touch_core.c
sweep2wake: make tunables accessible via sysfs interface

also removed heigh limit check for ON operation

Signed-off-by: faux123 <reioux@gmail.com>
sweep2wake: disable debugging :p

Signed-off-by: faux123 <reioux@gmail.com>
sweep2wake: fix last touch not being released

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

Conflicts:
	drivers/input/touchscreen/lge_touch_core.c
drivers/touchscreen: add pmops and allow i2c to wake the device (even w/o ES/LR)

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	drivers/input/touchscreen/lge_touch_core.c
drivers/touchscreen: add lge_touch android_touch kobject to fix s2wi in one position across devices

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	drivers/input/touchscreen/lge_touch_core.c
lge_touch_core: sweep2wake: use more standard sysfs store method

Signed-off-by: faux123 <reioux@gmail.com>
touch: sync sweep2wake and dt2wake to @showp1984's latest driver

Thanks to @showp1984 for his original s2w and dt2w contributions!

Signed-off-by: Paul Reioux <reioux@gmail.com>

Conflicts:
	drivers/input/touchscreen/lge_touch_core.c