Merge "hwc: mdpcomp: Restructure for 4kx2k displays"
diff --git a/liboverlay/overlayMdssRot.cpp b/liboverlay/overlayMdssRot.cpp
index 60d63a2..dedc396 100644
--- a/liboverlay/overlayMdssRot.cpp
+++ b/liboverlay/overlayMdssRot.cpp
@@ -30,6 +30,8 @@
#define MDSS_MDP_ROT_ONLY 0x80
#endif
+#define SIZE_1M 0x00100000
+
namespace ovutils = overlay::utils;
namespace overlay {
@@ -93,7 +95,10 @@
}
void MdssRot::setFlags(const utils::eMdpFlags& flags) {
- // TODO
+ mRotInfo.flags &= ~utils::OV_MDP_SECURE_OVERLAY_SESSION;
+ if (flags & utils::OV_MDP_SECURE_OVERLAY_SESSION) {
+ mRotInfo.flags |= utils::OV_MDP_SECURE_OVERLAY_SESSION;
+ }
}
void MdssRot::setTransform(const utils::eTransform& rot, const bool& rotUsed)
@@ -167,8 +172,9 @@
{
OvMem mem;
OVASSERT(MAP_FAILED == mem.addr(), "MAP failed in open_i");
+ bool isSecure = mRotInfo.flags & utils::OV_MDP_SECURE_OVERLAY_SESSION;
- if(!mem.open(numbufs, bufsz, false)){ // TODO: secure for badger
+ if(!mem.open(numbufs, bufsz, isSecure)){
ALOGE("%s: Failed to open", __func__);
mem.close();
return false;
@@ -254,5 +260,7 @@
mBufSize = VENUS_BUFFER_SIZE(COLOR_FMT_NV12, mRotInfo.dst_rect.w,
mRotInfo.dst_rect.h);
}
+ if (mRotInfo.flags & utils::OV_MDP_SECURE_OVERLAY_SESSION)
+ mBufSize = utils::align(mBufSize, SIZE_1M);
}
} // namespace overlay
diff --git a/liboverlay/overlayMem.h b/liboverlay/overlayMem.h
index 60ed8fe..e81c2dc 100644
--- a/liboverlay/overlayMem.h
+++ b/liboverlay/overlayMem.h
@@ -119,8 +119,9 @@
alloc_data data;
int allocFlags = GRALLOC_USAGE_PRIVATE_IOMMU_HEAP;
if(isSecure) {
- allocFlags |= GRALLOC_USAGE_PRIVATE_MM_HEAP;
+ allocFlags = GRALLOC_USAGE_PRIVATE_MM_HEAP;
allocFlags |= GRALLOC_USAGE_PRIVATE_CP_BUFFER;
+ allocFlags |= GRALLOC_USAGE_PRIVATE_UNCACHED;
}
int err = 0;
diff --git a/liboverlay/overlayUtils.h b/liboverlay/overlayUtils.h
index 28d2b67..cbacf3e 100644
--- a/liboverlay/overlayUtils.h
+++ b/liboverlay/overlayUtils.h
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2011-2012, The Linux Foundation. All rights reserved.
+* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -44,7 +44,8 @@
#include <utils/Log.h>
#include "gralloc_priv.h" //for interlace
-#ifndef MDP_Y_CBCR_H2V2_VENUS
+// Older platforms do not support Venus.
+#ifndef VENUS_COLOR_FORMAT
#define MDP_Y_CBCR_H2V2_VENUS (MDP_IMGTYPE_LIMIT2 + 1)
#endif