gpu: ion: Add ION Memory Manager

Change-Id: If423ad224785379bd391280feaf8af67b44fe015
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Several fixes

Fix some cases where locks were not released on error paths
Change heap->prio to heap->id to make meaning clearer
Fix kernel doc to match sources
gpu: ion: Add omap support to ion

Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Fix bug in ion_buffer_add

Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Remove incorrect error message

The function name is wrong here, and this function may
sometimes be called to see if a value passed from userspace
is an ion handle.  Since it's not really an error when it
fails, remove the log message.

Change-Id: I7bee0e7ffb72b4c4768774a3586f97e306700c21
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Fix bug in ion_client_create

If a process already had a client, ion_client_create
would loop forever.

Change-Id: I723207b5872dfc11be04ca27d38a3cf39c4a1426
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Fix bug in ion client destroy

ion_client_destroy kernel api should only delete the client
if it's refcount has gone to zero.

Change-Id: Iaa662bd82d67279a9807e01f9a24aebe3d21c17d
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Remove redunant code from ion_open

ion_client_create now does a lookup, so this need not
also be done from ion_open

Change-Id: Icb101bbf514bf2e40b4b5d9b320130bf185349aa
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Fix possible memory leak

Change-Id: I66f5ad2c95513dfab9f4fc5ae2fcb1316f486d34
Signed-off-by: Choi, Jong-Hwan <jhbird.choi@samsung.com>
gpu: ion: Fix deferencing ERR_PTR

Change-Id: I986c380d75591571890f1a2cba1405e66789b25c
Signed-off-by: Choi, Jong-Hwan <jhbird.choi@samsung.com>
gpu: ion: omap: Add debug statements

Add debug statements to all the failing paths in omap_tiler_alloc

Change-Id: Ib6d6cb771976226776e4410551c928c78011af4d
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
gpu: ion: Validate handles passed via the kernel api

Before freeing or sharing handles, confirm that they
are valid in the provided client

Change-Id: I06ec599c0b277fcb5417325a12ecbf8b2d248a7b
Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
ION : Fix memory leak issue for TILER 2D buffers

The ION was not freeing all allocated physical pages.

Change-Id: I079a8ef68afce42e425739fcc5873d4bdd9393b8
Signed-off-by: Lakshman Gowda <lakshman79@ti.com>
ion: minor clean up

-- init rb nodes in ion_handle_create
-- in ion_handle_destroy, check that a node belongs to a tree before removing
   it (safety check, does not happen right now)
-- mark as static functions used only inside ion.c
-- update comments to ion_share() with a relevant blurb from the implementation
-- other minor updates/typo fixes to comments

Signed-off-by: Iliyan Malchev <malchev@google.com>
OMAP: ION: Add support for nonsecure tiler carveout.

We may need to allocate some tiler buffers from a nonsecure
carveout while we secure the rest of the tiler buffers.

For now create omap_ion_nonsecure_tiler_alloc() method.  It would
be cleaner to specify a flag to have secure or nonsecure tiler
allocation, but it would require changing all current users of
TILER to specify secure flag.

Change-Id: I4bbb66d49b5ab45524447b7796a9dfa8e6b4a1d1
Signed-off-by: Lajos Molnar <molnar@ti.com>
[ARM] omap: try not to allocate memory page by page

Instead, try to allocate memory for all physical pages together.  Idea from
Lakshman Gowda <lakshman79@ti.com>.  Speeds up allocations from the
tiler carveout by ~50ms.

This patch also combines three kzallocs into one.

Signed-off-by: Iliyan Malchev <malchev@google.com>
ion: export functions to enable usage by kernel modules

EXPORT_SYMBOL/EXPORT_SYMBOL_GPL is missing for the exposed ION
API. This patch adds the EXPORT_SYMBOL to the public ION API.

Change-Id: I816fb5bc5f719267a9ac79f1bbcc73edfc903a28
Signed-off-by: Suman Anna <s-anna@ti.com>
ion: fix build

Signed-off-by: Iliyan Malchev <malchev@google.com>
sync: Add synchronization framework

not run through checkpatch yet.

Change-Id: I209f9db2824e0313f467f11ab09e5f54f0a4a6b5
Signed-off-by: Erik Gilling <konkers@android.com>
sw_sync: add cpu based sync driver

Change-Id: I1042851f5e30f9fdc2f35bdad84123bcf108560f
Signed-off-by: Erik Gilling <konkers@android.com>