summaryrefslogtreecommitdiffstats
path: root/domx
diff options
context:
space:
mode:
authorDevaraj Rangasamy <dev@ti.com>2012-06-05 18:15:26 +0530
committerDmytro Kedrovskyi <x0169235@ti.com>2012-06-18 23:32:33 +0300
commitb8753ec2790fa8c9da5cf188b58c80878aef21c0 (patch)
treee89d85acf27a6380cea8bc40111022191cf00cdb /domx
parent1bc0c83764154fc5e5d518eb50f56cef617eb62e (diff)
downloadhardware_ti_omap4-b8753ec2790fa8c9da5cf188b58c80878aef21c0.zip
hardware_ti_omap4-b8753ec2790fa8c9da5cf188b58c80878aef21c0.tar.gz
hardware_ti_omap4-b8753ec2790fa8c9da5cf188b58c80878aef21c0.tar.bz2
DOMX: Use Tiler-1D buffer when ION 1D allocation fails
By default Camera proxy and DOMX components uses ION 1D heap for buffer allocation. For 512MB system configuration, ION 1D heap maynot available. So use tiler 1D buffers as fallback mechanism. Applicable for both 1GB and 512MB configuration. Change-Id: Iff9b264f13d03f99975c4ff9dce9d474edeac34c Signed-off-by: Devaraj Rangasamy <dev@ti.com>
Diffstat (limited to 'domx')
-rw-r--r--domx/omx_proxy_common/src/omx_proxy_common.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/domx/omx_proxy_common/src/omx_proxy_common.c b/domx/omx_proxy_common/src/omx_proxy_common.c
index 8dc0168..d0abe56 100644
--- a/domx/omx_proxy_common/src/omx_proxy_common.c
+++ b/domx/omx_proxy_common/src/omx_proxy_common.c
@@ -216,9 +216,20 @@ static OMX_ERRORTYPE PROXY_AllocateBufferIonCarveout(PROXY_COMPONENT_PRIVATE *pC
int fd;
int ret;
struct ion_handle *temp;
+ size_t stride;
ret = ion_alloc(pCompPrv->ion_fd, len, 0x1000, 1 << ION_HEAP_TYPE_CARVEOUT, &temp);
- DOMX_DEBUG("ION being USED for allocation!!!!! handle = %x, ret =%x",temp,ret);
+
+ if (ret || ((int)temp == -ENOMEM)) {
+ ret = ion_alloc_tiler(pCompPrv->ion_fd, len, 1, TILER_PIXEL_FMT_PAGE,
+ OMAP_ION_HEAP_TILER_MASK, &temp, &stride);
+ }
+
+ if (ret || ((int)temp == -ENOMEM)) {
+ DOMX_ERROR("FAILED to allocate buffer of size=%d. ret=0x%x",len, ret);
+ return OMX_ErrorInsufficientResources;
+ }
+
if (ret)
return OMX_ErrorInsufficientResources;
*handle = temp;