OTG + POWER: First mod to try to allow charging + OTG with Y Cable.

Original source was here:
https://github.com/flar2/flo/commit/cde525e9d72946b94b90ef7e5f81c761f413dbee
https://github.com/flar2/flo/commit/c4aec4e001061fa8f530348548c6614b8db6a0bc

need to check and do more changes... when i will have cable i will check.

EBAY here i come :)
CONFIG: Enable extra features for CIFS module.
cpufreq: cpu-boost: Fix cores getting stuck. Finally.

* In exclusive hotplug system, if a core is not taken down
  explicitly, it is observed that it gets stuck at input
  boost frequency.
* This issue maybe particular to only this kernel but this
  fix resolves it completely.
* Root cause seems to be removal work is lost if queued on
  sibling cores. So simply fix this by queuing on boot CPU.

* Finally, I can use min_cpus_online > 1 without any issue.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
GPU Conservative GOV: Rename upthreshold to upthreshold_cons

This is needed for my STweaks controls. cant use same name for 2 drivers.
msm: lpm_levels: remove rpm handshake in l2_gdhs mode

Remove rpm handshake in l2_gdhs mode and adjust the
latency values for l2_gdhs mode. Add a new dt entry to
inform lpm_levels driver to send sleep votes to rpm.

CRs-fixed: 604873
Change-Id: I9eeae5fada4f84ee2ca2eb9d67707dee1adf56ac
Signed-off-by: Anil kumar mamidala <amami@codeaurora.org>
ARM: dts: msm8974: Allow power collapse as minimum l2 gdhs mode

This fixes warnings "IRQ40 no longer affine to CPUn". The switch
to C2 is also hardly understandable.
cpufreq: ondemand: Remove sync thread feature

This is redundant and racy, we are syncing cpu frequencies
in cpu-boost.
GPU Conservative GOV: Fix controls store, and init, all was 0!

now OK:

BEFORE:
1|root@g2:/sys/devices/fdb00000.qcom,kgsl-3d0/devfreq/fdb00000.qcom,kgsl-3d0/gpufreq/conservative # grep "." *
grep "." *
conservativeness:0
downthreshold:0
upthreshold_cons:0

AFTER:

root@g2:/sys/devices/fdb00000.qcom,kgsl-3d0/devfreq/fdb00000.qcom,kgsl-3d0/gpufreq/conservative # grep "." *
grep "." *
conservativeness:0
downthreshold:25
upthreshold_cons:50
alucard_hotplug: Simplified the code.
                 Memory consumption optimization.
OTG: Remove part of OTG + POWER that i merged. not needed.
Revert "ARM: dts: msm8974: Allow power collapse as minimum l2 gdhs mode"

This reverts commit 616e8a072e3a00c4b8b052b1338bfb3ea439b366.
Revert "msm: lpm_levels: remove rpm handshake in l2_gdhs mode"

This reverts commit 6e439ba1aaf4e344e4372e1ce69a1a95762a4266.
CIFS Mounting: Better sollution! no dual mounts of emulated folders.
PM: devfreq: Define tunables with a static scope

https://github.com/myfluxi/kernel_msm/commit/a77252e3458ee23a404837c983bef74e7f1767ba
msm: hotplug: Readd suspend max cpus and frequency options

We had this ages ago.

Dorimanx note:
this is full merge but in other locations.

https://github.com/myfluxi/kernel_msm/commit/d19b137942899073170e44fb661cdb38d0d2afff
msm: hotplug: Use load dependent update rates
msm: hotplug: Fix another derp
msm: hotplug: Add suspend_defer_time

* suspend/resume helpers, now we can control suspend delay.
* As name suggest, suspend takes are place after some
  delay when screen is turned off. Default - 5 seconds.
* If user resumes device before suspend_defer_time seconds,
  all cores go online as before but suspend work is
  canceled and rescheduling is not done.
* If screen is turned off and suspend_defer_time is exceeded,
  all sibling cores shut down as before. While resuming,
  all cores go online for downlock duration and hotplug
  resumes working.

* Restructure msm_hotplug_mutex and suspended variables.

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>

Dorimanx note:
I have merge all! just with small changes, and adaptations.

Thanks @neobuddy89 i like your style! chat free with me in github :)

https://github.com/neobuddy89/hammerhead_kernel_caf/commit/1beb0b36fdb507f138c4c9275ee4e1f1f48c7c1b
MSM HOTPLUG: Allow to use work delay on Suspend using Power/early suspend.
MSM HOTPLUG: optimize suspend/resume functions. Read More.

Mods based on neobuddy89 source.

*Set LCD Notify and main suspend/resume if set in config.
*If kernel has none of the 3 supported suspend/resume structures,
do not use any suspend/resume functions.
*Optimize defines to MAX shrink in code :)

Thanks to neobuddy89
https://github.com/neobuddy89/hammerhead_kernel_caf/commit/310f1e1411c32704dc449debd163396f0f71fa1c