optimized rwsem
Add Frandom character device

frandom kernel random number generator: http://www.billauer.co.il/frandom.html

Squashed commit of:
https://github.com/f1vefour/supernatural-kernel/commit/8564e1af9b62f0c946afd7eef8bcc12344137353
https://github.com/f1vefour/supernatural-kernel/commit/95c81553596a0368212936c71f7d2f470f5d4803
https://github.com/f1vefour/supernatural-kernel/commit/5c1ef4b7565b6bf1b8807a05f369ec9df2ef8dce

Change-Id: Icd8b2861156265bc0da4da5030f54453e99bc4a7
USB force fast charging

-Use base from Chad Froebel <chadfroebel@gmail.com> so we continue to
use the same generic sysfs mechanism

-Referenced franco's git for drivers/usb/otg/msm_otg.c changes
https://github.com/franciscofranco/mako/commit/5a8a4c8e23c7e1df39c740b9ce1d5dda20b0ede3

Off by default

Turn on:
echo 1 > /sys/kernel/fast_charge/force_fast_charge

Turn off:
echo 0 > /sys/kernel/fast_charge/force_fast_charge

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

Conflicts:

	arch/arm/mach-msm/Makefile

Change-Id: Ifc72bd00f57593b74654a9a0fe87e53a0faa2d37
add sweep2wake source files

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: add qpnp-power-on hooks for the power key

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: add is_single_touch & s2w detection hook

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: backport per device settings from sweep2wake2 (like pwr btn choice too)

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: disable suspend if sweep2wake is enabled

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: add reset code on finger release

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: add screen suspend indicator

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: add irq_wake indicator

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: re-add android_touch kobj

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: add missing irq_wake controls and fix c&p typo

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

Conflicts:

	drivers/input/touchscreen/touch_synaptics_ds5.c

Change-Id: If02ae02ad1de0a4ef258fbaae86a6c0c91cba364
drivers/input/touchscreen/touch_synaptics: patch with sweep2wake hooks as well

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/input/touchscreen/touch_synaptics_ds5: fix epic c&p fails for irq_wake indicator

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
mdss_dsi: do not power down panel when sweep2wake is enabled In order to detect touches during suspend, the panel must be powered on. When sweep2wake is enabled, change one of the panel-off-cmds in mdss_dsi_panel.c from 0x10 to 0x11.

Signed-off-by: flar2 <asegaert@gmail.com>
mdss_dsi_panel: keep the panel gpio active and don't trigger a reset

This way we will suffer minimum leakage when sweep2wake is being used.
All that is kept online here is the chip controlling the panel and touch panel.
That chip is probably some pmic but either way, keeping it online will cause
minimum leakage. This is an improvement upon the original patch by flar2 which
led to massive leakage from the display regulators since all were kept online.

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

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: massive update, bring on par with s2w2 except algorithm

This patches sweep2wake on par with s2w2, minus the detection algorithm.
Changes in detail:
- Remove dependency on a power key setter, use a dummy device.
- Remove dependency on a touchscreen driver, use an input callback
- Remove dependency on external sysfs functions
- Remove dependency on external reset calls
- Migrate all of this into sweep2wake

Porting to new devices is now easier than ever:
1. Define your device parameters in the Sweep2wake tuneables
2. Check if the android_touch_kobj is already used by your touchscreen driver
2a. If it is export it and define S2W_ANDROID_TOUCH_DECLARED
(This will prevent s2w from spawning it's own kobj)
3. Force the touchscreen driver to deliver signals in suspend and you are done.

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake & touchscreens: replaced flawed irq_wake procedures with linux functions Also init device wakeup in init to be able to use those functions in the first place

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