gpu: ion: optimize zero'ing of pages

Instead of using __GFP_ZERO, vmap high-order pages for zero'ing all at
once (or in a few large chunks).

Test results show a ~25% speedup for allocations that are fulfilled from
lowmem, and ~100% speedup for allocations that are fulfilled from
highmem.

Change-Id: I57270361ff195780370e1c6f458985bdbb641efe
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
gpu: ion: add page pooling to cached allocations from the system heap

Add a page pool for cached allocations from the system heap.

Change-Id: I6d7688026ff4ee65efa047a164652da1427e72c4
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
gpu: ion: make sure all clients are exposed in debugfs

Currently, if multiple Ion clients are created with the same name, only
the first one shows up in debugfs. Rectify this by adding a
monotonically-increasing serial number to the debug names of Ion
clients.

CRs-Fixed: 566001
Change-Id: I000e45055d5029c7bccd88c36b238736929da3a5
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
gpu: ion: Add support for specifying heap type in the device tree

Currently, there is no way to swap out the underlying heap type for a
given heap ID without modifying msm_ion.c and recompiling the
kernel. This is inconsistent with the rest of Ion which is customized
through the device tree. This change eliminates the need to modify and
recompile the kernel for heap type changes (although the boot image
will still need to be regenerated).

Add a device tree binding to specify the heap_type for Ion heaps.

Change-Id: I0a2b48299c829a828764d74a1d8e3c8f97de706d
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>