Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35a90e47 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Codec2: Integrate support for the system-uncached DMA BUF Heap" am:...

Merge "Codec2: Integrate support for the system-uncached DMA BUF Heap" am: 4bc812d4 am: f661037e

Original change: https://android-review.googlesource.com/c/platform/frameworks/av/+/1543685

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ib8eb99d779bc15661893ddd574d40efaee02d679
parents 12d73d46 f661037e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -315,8 +315,8 @@ c2_status_t C2DmaBufAllocator::mapUsage(C2MemoryUsage usage, size_t capacity, C2
        if (mUsageMapper) {
            res = mUsageMapper(usage, capacity, heap_name, flags);
        } else {
            // No system-uncached yet, so disabled for now
            if (0 && !(usage.expected & (C2MemoryUsage::CPU_READ | C2MemoryUsage::CPU_WRITE)))
            if (C2DmaBufAllocator::system_uncached_supported() &&
                !(usage.expected & (C2MemoryUsage::CPU_READ | C2MemoryUsage::CPU_WRITE)))
                *heap_name = "system-uncached";
            else
                *heap_name = "system";
+7 −1
Original line number Diff line number Diff line
@@ -822,7 +822,13 @@ private:
                };

                static C2R setDmaBufUsage(bool /* mayBlock */, C2P<C2StoreDmaBufUsageInfo> &me) {
                    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();
                };
+10 −0
Original line number Diff line number Diff line
@@ -84,6 +84,16 @@ class C2DmaBufAllocator : public C2Allocator {
    void setUsageMapper(const UsageMapperFn& mapper, uint64_t minUsage, uint64_t maxUsage,
                        uint64_t blockSize);

    static bool system_uncached_supported(void) {
        static int cached_result = -1;

        if (cached_result == -1) {
            struct stat buffer;
            cached_result = (stat("/dev/dma_heap/system-uncached", &buffer) == 0);
        }
        return (cached_result == 1);
    };

   private:
    c2_status_t mInit;
    BufferAllocator mBufferAllocator;