am 8efc64ae: am f7e40a33: improve cache behavior of gralloc allocations on qsd8k

Merge commit '8efc64aec14e80e7dff8eb4e7708195c6d693ec8' into eclair-mr2-plus-aosp

* commit '8efc64aec14e80e7dff8eb4e7708195c6d693ec8':
  improve cache behavior of gralloc allocations on qsd8k
This commit is contained in:
Mathias Agopian 2009-12-10 16:58:39 -08:00 committed by Android Git Automerger
commit d36a65ee14

View File

@ -279,9 +279,16 @@ try_ashmem:
err = -ENOMEM;
} else {
struct pmem_region sub = { offset, size };
int openFlags = O_RDWR | O_SYNC;
uint32_t uread = usage & GRALLOC_USAGE_SW_READ_MASK;
uint32_t uwrite = usage & GRALLOC_USAGE_SW_WRITE_MASK;
if (uread == GRALLOC_USAGE_SW_READ_OFTEN ||
uwrite == GRALLOC_USAGE_SW_WRITE_OFTEN) {
openFlags &= ~O_SYNC;
}
// now create the "sub-heap"
fd = open("/dev/pmem", O_RDWR, 0);
fd = open("/dev/pmem", openFlags, 0);
err = fd < 0 ? fd : 0;
// and connect to it
@ -297,8 +304,11 @@ try_ashmem:
close(fd);
sAllocator.deallocate(offset);
fd = -1;
} else {
memset((char*)base + offset, 0, size);
// clean and invalidate the new allocation
cacheflush(intptr_t(base) + offset, size, 0);
}
memset((char*)base + offset, 0, size);
//LOGD_IF(!err, "allocating pmem size=%d, offset=%d", size, offset);
}
} else {