OMAP4: TILER: Add variable alignment allocation API

Added tiler_alloc_block_area_aligned API to allow
for variable alignment when allocating when using the kernel
APIs.

Change-Id: I2f3c44675a3fa1b2c6dfef21ccdd9bcac2f1d0e5
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Tony Zlatinski <x0146664@ti.com>
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
OMAP4: Tiler non-page-aligned support

Implements a way for the client drivers to use
non-page aligned and in case of 4430/4460
non-co-aligned YUV planes for buffers with
NV12 format.

Change-Id: Ie368980821311957c508a4d9c05d9087bc91d0dd
Signed-off-by: Tony Zlatinski <x0146664@ti.com>
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
OMAP4: TILER: Add offset parameter for allocation

Add offset parameter for use in tiler_alloc_block_area_aligned.
This allows a user to get a tiler allocation with a specific
alignment and offset.

Change-Id: I8b1b9dd17bc9def124ea92cbbede2f3c56823387
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Tony Zlatinski <x0146664@ti.com>
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
OMAP4: Makes Y & UV tiler planes co-aligned

Change-Id: Iffde93b494cbe61882c4dc8674ca9f1e77a20888
Signed-off-by: Tony Zlatinski <x0146664@ti.com>
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
OMAP4: TILER: Adds func to fill the virt. sizes

Adds public tiler_fill_virt_array() that deals with
non-page-aligned addresses correctly.

Change-Id: I31f4aa9a2e81cd84e393529b6534674811f99563
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
OMAP4: ION/TILER: Expose virtual stride and size

Added an interface to query the virtual stride and size
from the tiler buffer via an ION handle.

Change-Id: Iac756475236d3463b1aeaa6e29767ba03e758851
Signed-off-by: Andy Gross <andy.gross@ti.com>
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>
Signed-off-by: Hemant Hariyani <hemanthariyani@ti.com>

Conflicts:
	include/linux/omap_ion.h
OMAP4: ION: Use the correct virtual TILER size

Fixes the ION TILER HEAP allocation function
to correctly obtain the tiler virtual pages
and size when dealing with non-page aligned
tiler allocations.

Change-Id: I59e05aa26b572ed52b7f7d8c653bc6184f6c274d
Signed-off-by: Atanas (Tony) Zlatinski <zlatinski@gmail.com>

Conflicts:
	drivers/gpu/ion/omap/omap_tiler_heap.c
return our ram to normal,it performs better at 4--mhz
uaccess with mmcpy
drivers/gpu/pvr/pvr_governor: add a simple PVR GPU governor

this simple PVR GPU governor will scale between 3 speeds:
  idle -- GPU not active
  nominal -- GPU active with low graphical load
  turbo -- GPU active and boosted to max frequency

This should further save battery by intelligently selecting GPU frequency
based on GPU loading.

Signed-off-by: Paul Reioux <reioux@gmail.com>
drivers/gpu/pvr/pvr_governor: add sysfs entry to switch governor type

0 - "performance" ==> always return system turbo speed
1 - "ondemand" ==> return based on GPU loading (by default "ondemand"
governor is active)

Signed-off-by: Paul Reioux <reioux@gmail.com>
all adaptions for pvr gov