Codec2: Integrate support for the system-uncached DMA BUF Heap

While not yet upstream, the system-uncached heap has been added
to android12-5.10, so lets enable support for selecting it on
buffers who's usage flags are not set to C2MemoryUsage::CPU_READ
or C2MemoryUsage::CPU_WRITE.

Because it isn't guarenteed to exist, this adds a helper
function to check if system-uncached is supported as well, so
devices without it can fall back to the system heap.

Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I525525cae85b6759e460598c454f1e5f150391f9
diff --git a/media/codec2/vndk/C2Store.cpp b/media/codec2/vndk/C2Store.cpp
index 1e907c1..6c82d15 100644
--- a/media/codec2/vndk/C2Store.cpp
+++ b/media/codec2/vndk/C2Store.cpp
@@ -780,7 +780,13 @@
                 };
 
                 static C2R setDmaBufUsage(bool /* mayBlock */, C2P<C2StoreDmaBufUsageInfo> &me) {
-                    strncpy(me.set().m.heapName, "system", me.v.flexCount());
+                    long long usage = (long long)me.get().m.usage;
+                    if (C2DmaBufAllocator::system_uncached_supported() &&
+                        !(usage & (C2MemoryUsage::CPU_READ | C2MemoryUsage::CPU_WRITE))) {
+                        strncpy(me.set().m.heapName, "system-uncached", me.v.flexCount());
+                    } else {
+                        strncpy(me.set().m.heapName, "system", me.v.flexCount());
+                    }
                     me.set().m.allocFlags = 0;
                     return C2R::Ok();
                 };