misc: pmem: Add support for PMEM->ION wrapper.

PMEM to ION wrapper replaces standard PMEM driver with its own. It's sole
purpose is to redirect all PMEM allocations to ION.

If enabled, board driver must ensure pmem pdata provides .ion_heap_id with the
name of the ION heap ID (such as camera, mm, sf, etc).

Since some kernel drivers are PMEM based, all drivers that request PMEM memory
will be getting ION memory (get_pmem_file/put_pmem_file). On a corner case,
such as userspace allocating memory directly with /dev/ion, PMEM wrapper driver
will automatically import the fd (from PMEM id 0 ION client) and return the
memory from ION.

Not a complete solution. Unfinished features have been marked with TODO.

Currently unsupported commands:
flush_pmem_fd
flush_pmem_file

Currently unsupported ioctl commands:
PMEM_MAP
PMEM_UNMAP
PMEM_CONNECT
PMEM_GET_TOTAL_SIZE
PMEM_GET_FREE_SPACE

Change-Id: I507ce0850d6fdbac4a72c83105140e9f3992a678
Signed-off-by: Rudolf Tammekivi <rtammekivi@gmail.com>
Signed-off-by: Michael Bestas <mikeioannina@gmail.com>
misc: pmem: Squashed revert of DMA changes

Revert "pmem: Do not use special case for DMA."

This reverts commit cb1c16e11db36b8d4bdba9a8b90aff6636480126.

Revert "misc: pmem: Explictly mark DMA allocations as GFP_KERNEL"

This reverts commit f85cf2fbdcf73f156e01d5bb3d8105e3a14cc5b7.

Revert "misc: pmem: Manage DMA allocation failures"

This reverts commit b27b65c4104ebc1fa056db97929d0aacb7bfd913.

Revert "misc: pmem: Add support for CMA."

This reverts commit c0f9f27defba4b066e94a2f5ef390c713addcd9c.

Change-Id: I8a3f2f6ca813da8e0d99663653ce91e829655979
Revert "PMEM: compatibility with older camera libs"

This reverts commit c0ad02b30664ad1a1daea6470fce63e23bc90c85.

Change-Id: I3ceaa7caad5959bf9b29ba7c3b57b9e01da436ce
msm: mogami/zeus: Remove references to PMEM DMA (cma).

Change-Id: I00e645ff05945c72e07c986fcbd6c56648c0f5fd