exynos-drm: hack in extra resolution support

exynos-drm drops certain modes from Exynos4412 setups due to a mixer
bug.

Instead of dropping such modes, we apply a workaround:
Massaging of the values in the way implemented in this patch makes the
system usable, although it is missing the top row of pixels, and the
rightmost column too.

However this can't be applied to all modes, so we filter a few out
that are known bad.
Mali + ump + umplock r4p0-00rel0
Mali + ump + umplock build integration
Mali: update for new shrinker API
Mali: initialize from device tree

Based on work by Alban Browaeys.
Mali: ODROID platform integration
UMP: ODROID platform integration
UMP: don't include Mali objects

These are already included in the Mali driver.
Fixes duplicate symbol build failure.
UMP: Don't duplicate Mali's map_errcode

This code is duplicated in Mali.
Fixes duplicate symbol build error.
Mali: Fix out-of-tree build

Used in Debian packages.
UMP: Fix out-of-tree build

Used by Debian packages.
UMP: add interface to create cachable allocation from physical blocks

To be used by exynos-drm for Mali integration.
exynos-drm: UMP integration

Add a new exynos ioctl: DRM_IOCTL_EXYNOS_GEM_CREATE2
This behaves exactly like the original CREATE but it also creates
a UMP handle for the allocation, and returns the relevant UMP
secure ID to userspace.
ODROID: add devicetree entry for Mali
ARM: EXYNOS: PM: replace EXYNOS_BOOT_VECTOR_* macros by static inlines

Replace EXYNOS_BOOT_VECTOR_ADDR and EXYNOS_BOOT_VECTOR_FLAG macros
by exynos_boot_vector_addr() and exynos_boot_vector_flag() static
inlines.

This patch shouldn't cause any functionality changes.

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
ARM: EXYNOS: add AFTR mode support to firmware do_idle method

On some platforms (i.e. EXYNOS ones) more than one idle mode is
available and we need to distinguish them in firmware do_idle method.

Add mode parameter to do_idle firmware method and AFTR mode support
to EXYNOS do_idle implementation.

This change is a preparation for adding secure firmware support to
EXYNOS cpuidle driver.

This patch shouldn't cause any functionality changes (please note
that do_idle firmware method is unused currently).

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
ARM: EXYNOS: cpuidle: add secure firmware support to AFTR mode code

* Move cp15 registers saving to exynos_save_cp15() helper and add
  additional helper usage to do_idle firmware method.

* Use sysram_ns_base_addr + 0x24/0x20 addresses instead of the default
  ones used by exynos_cpu_set_boot_vector() on boards with secure
  firmware enabled.

* Use do_idle firmware method instead of cpu_do_idle() on boards with
  secure firmware enabled.

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
ARM: EXYNOS: cpuidle: allow driver usage on Exynos4x12 SoCs

Register cpuidle platform device on Exynos4x12 SoCs allowing EXYNOS
cpuidle driver usage on these SoCs.

AFTR mode reduces power consumption on Trats2 board (Exynos4412 SoC
with secure firmware enabled) by ~12% when EXYNOS cpuidle driver is
enabled (in both cases the default exynos_defconfig config is used
and CPU1-3 are offlined).

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
mm: Don't put CMA Pages on per-cpu lists

Author: Laura Abbottt - lauraa@codeaurora.org

When freeing zero order pages, CMA pages are treated the same as regular
movable pages. This means CMA pages are likely to be allocated for something
other than contiguous memory. This patch frees CMA pages directly.

http://lists.linaro.org/pipermail/linaro-mm-sig/2012-June/002093.html

Change-Id: I07b285121a7d4110a4e7fda1509e037e19607ea9
s5p-fimc: Align imagesize to row size for tiled formats

For tiled format, we need to allocated a multiple of the row size. A good
example is for 1280x720, wich get adjusted to 1280x736. In tiles this mean Y
plane is 20x23 and UV plane 20x12. Because of the rounding, the previous code
would only have enough space to fit half of the last row.

dsd: most of the original 3.8 version of this patch was already included
upstream in fa8880bece7321d61a7a5e7bf4b67832071ee047