summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2013-12-20 13:44:58 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-07-23 20:32:52 -0700
commit1ca4738bea19885ba0b1bfc3aeef84e3226422b7 (patch)
tree7e5a0c8a0bad954465db3e5137f59112678a3f16
parentc5f50f9768bf545046256a0de949b47c3abb9ddb (diff)
downloadandroid_hardware_qcom_media-cm-12.1-caf-8660.tar.gz
android_hardware_qcom_media-cm-12.1-caf-8660.tar.bz2
android_hardware_qcom_media-cm-12.1-caf-8660.zip
mm-video: Add NO_IOMMU flag and enable it by default for msm8660cm-12.1-caf-8660
Change-Id: I4ccc4eb1c45fdccf1ef7212bb58f025510a1c280 Signed-off-by: Paul Keith <javelinanddart@gmail.com>
-rw-r--r--mm-video/vidc/vdec/Android.mk1
-rw-r--r--mm-video/vidc/vdec/src/omx_vdec.cpp9
2 files changed, 10 insertions, 0 deletions
diff --git a/mm-video/vidc/vdec/Android.mk b/mm-video/vidc/vdec/Android.mk
index 390059c9..043a153c 100644
--- a/mm-video/vidc/vdec/Android.mk
+++ b/mm-video/vidc/vdec/Android.mk
@@ -25,6 +25,7 @@ ifeq ($(TARGET_BOARD_PLATFORM),msm8660)
libOmxVdec-def += -DMAX_RES_1080P
libOmxVdec-def += -DPROCESS_EXTRADATA_IN_OUTPUT_PORT
libOmxVdec-def += -DTEST_TS_FROM_SEI
+libOmxVdec-def += -DNO_IOMMU
endif
ifeq ($(TARGET_BOARD_PLATFORM),msm8960)
libOmxVdec-def += -DMAX_RES_1080P
diff --git a/mm-video/vidc/vdec/src/omx_vdec.cpp b/mm-video/vidc/vdec/src/omx_vdec.cpp
index 1f97f23b..b1a5a060 100644
--- a/mm-video/vidc/vdec/src/omx_vdec.cpp
+++ b/mm-video/vidc/vdec/src/omx_vdec.cpp
@@ -3099,6 +3099,9 @@ OMX_ERRORTYPE omx_vdec::get_parameter(OMX_IN OMX_HANDLETYPE hComp,
} else {
DEBUG_PRINT_HIGH("get_parameter: CACHED buffers from IOMMU heap");
nativeBuffersUsage->nUsage = (GRALLOC_USAGE_PRIVATE_IOMMU_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+#ifdef NO_IOMMU
+ nativeBuffersUsage->nUsage |= (GRALLOC_USAGE_PRIVATE_MM_HEAP | GRALLOC_USAGE_PRIVATE_UNCACHED);
+#endif
}
#else
#if defined (MAX_RES_720P) || defined (MAX_RES_1080P_EBI)
@@ -8110,12 +8113,18 @@ int omx_vdec::alloc_map_ion_memory(OMX_U32 buffer_size,
alloc_data->flags |= ION_SECURE;
} else if (external_meta_buffer_iommu) {
alloc_data->heap_mask = ION_HEAP(ION_IOMMU_HEAP_ID);
+#ifdef NO_IOMMU
+ alloc_data->heap_mask |= ION_HEAP(MEM_HEAP_ID);
+#endif
} else {
alloc_data->heap_mask = ION_HEAP(MEM_HEAP_ID);
alloc_data->flags |= ION_SECURE;
}
} else {
alloc_data->heap_mask = (ION_HEAP(ION_IOMMU_HEAP_ID));
+#ifdef NO_IOMMU
+ alloc_data->heap_mask |= ION_HEAP(MEM_HEAP_ID);
+#endif
}
pthread_mutex_lock(&m_vdec_ionlock);
rc = ioctl(fd,ION_IOC_ALLOC,alloc_data);