sound-voodoo: Altered jack detection and sound fixes

Add T0 and M3 device conditionals to disable the call detection as we use a different register path over M0.
Use the android_switch mechanism for the jack detection as it is more reliable.
Config dump
fs/dyn_sync_cntrl: dynamic sync control

The dynamic sync control interface uses Android kernel's unique early
suspend / lat resume interface.

While screen is on, file sync is disabled
when screen is off, a file sync is called to flush all outstanding writes
and restore file sync operation as normal.

Signed-off-by: Paul Reioux <reioux@gmail.com>
block: Adding ROW scheduling algorithm

This patch adds the implementation of a new scheduling algorithm - ROW.
The policy of this algorithm is to prioritize READ requests over WRITE
as much as possible without starving the WRITE requests.
The requests are kept in queues according to their priority. The dispatch
is done in a Round Robin manner with a different slice for each queue.
READ request queues get bigger dispatch quantum than the write requests.

Signed-off-by: Tatyana Brokhman <tlinder@xxxxxxxxxxxxxx>
---
v4:
  - Fix bug in idling mechanism:
    -- Fix the delay passed to scedule_delayed_work
    -- Change the idle delay and idling-trigger frequency to be HZ dependent
  - Destroy idle_workqueue on queue exit
  - Update the documentation

v3:
  - Fix bug in forced dispatch: Don't idle if forced dispatch

v2:
  No changes. Resend.

v1: Initial version
asv: Change initcall level to an earlier stage

We cannot wait for all device_initcall's (And subsequently module_init calls) to
complete before doing the ASV level readout without doing silly workarounds in
those drivers, waiting for an uninitialized exynos_result_of_asv.

Just change the ASV driver initialization from device stage to subsys stage, as
it is not dependant on other drivers or modules.
mali: Move ASV application to the init stage

Previous to [asv: Change initcall level to an earlier stage] the ASV voltages
would be applied too late for them being read out on ramfs post-init, or to
be changed at boot by scripts without being overridden by the ASV application
shortly after.

Since now we are guaranteed an initialized exynos_result_of_asv, do the ASV
application immediately on init, instead of DVFS runtime, to avoid the issue.
block: Add Zen I/O scheduler

Similar to SIO, primarily based on no-op and deadline. Intended to be mostly FCFS. Simpler than SIO in many ways, one of them being write requests/read requests have mostly the same priority.

Conflicts:

	block/Makefile
midas-tsp: Changes due to Note 2 headers
row-iosched: Backport to 3.0
Config dump
exynos-mem: Fix major security hole

This fixes the exynos-mem device security hole. The driver allowed any user
to access all of the device's lowmem through the provided mmap functionality.

We create a small little framework collecting the actual CMA memory blocks
that exist on the device; they are the root cause of the existence of this device
driver. We white-list only the CMA memory spaces as parameters to the mmap
function and deny access to any other memory space requests.

We furthermore just allow access to the "s3c-fimc" memory block as this is
seemingly the only space which upon access denial actually breaks functionality.
s6evr02: Allow max brightness at 255

Change-Id: I464de83d010702ed68759f2bde438c127811bd2e
bcmdhd: update wireless driver to 1.28.19.4

Conflicts:

	drivers/net/wireless/bcmdhd/Makefile
	drivers/net/wireless/bcmdhd/dhd_custom_sec.c
	drivers/net/wireless/bcmdhd/dhd_linux.c
	drivers/net/wireless/bcmdhd/dhd_sdio.c
	drivers/net/wireless/bcmdhd/include/bcmspibrcm.h
	drivers/net/wireless/bcmdhd/include/spid.h
	drivers/net/wireless/bcmdhd/wl_android.c
	drivers/net/wireless/bcmdhd/wl_cfg80211.c
mali: Add control for utilization timeout
exynos-mem: Add fimc1 to mmap whitelist check

The assumption that only devices which use CONFIG_CMA_DMA use
exynos-mem is wrong. Remove that check.

Newer camera libraries as on Note 2 4.1.2 variants also map fimc directly,
but they are not reserved through kernel CMA allocation in the device file
but through Samsung's S5P framework.

There, the block is called "fimc1", so add that to the whitelist check.
Revert "bcmdhd: update wireless driver to 1.28.19.4"

There seems to be speed problems with this version of the drivers.

This reverts commit dd94507f6f7e624f595a477cea24866d2e9da555.
mach-exynos: Don't compile unused 4210 objects on 4x12
Revert "exynos-mem: Fix major security hole"

To be replaced by the new patch also fixing s5p-smem.

This reverts commit fb36195dab87e002721c7d1a8294a400c6b40a71.
cma: Create a tool to create checks against cma block memory spaces

Introduce a frameork to collect the device's CMA memory blocks, and
functions able to check a given memory space against the blocks to see
if the accessed space given is a valid CMA memory request.

Use this to refuse access to unauthorized addresses given to the mmap
funtions in the mem-exynos and s5p-smem char devices.
pegasusq: Don't scale down inside of flexrate sub-samples