summaryrefslogtreecommitdiffstats
path: root/modules/gralloc
diff options
context:
space:
mode:
authorDavid Turner <digit@android.com>2014-07-04 13:20:55 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-07-04 08:02:36 +0000
commit3e618a6aa10c783d1536f20edfc3347939cfa18e (patch)
tree95003762f60d04cf497db660870bbffe30183a20 /modules/gralloc
parent6f91ded57bf133fbf572cde2f5623bb8289f7eaa (diff)
parent5641642a207fdd21175d2134316c4da34db3e9e9 (diff)
downloadhardware_libhardware-3e618a6aa10c783d1536f20edfc3347939cfa18e.zip
hardware_libhardware-3e618a6aa10c783d1536f20edfc3347939cfa18e.tar.gz
hardware_libhardware-3e618a6aa10c783d1536f20edfc3347939cfa18e.tar.bz2
Merge "gralloc: let target configure page flipping ioctl"
Diffstat (limited to 'modules/gralloc')
-rw-r--r--modules/gralloc/Android.mk3
-rw-r--r--modules/gralloc/framebuffer.cpp14
2 files changed, 16 insertions, 1 deletions
diff --git a/modules/gralloc/Android.mk b/modules/gralloc/Android.mk
index a4ffd20..092e851 100644
--- a/modules/gralloc/Android.mk
+++ b/modules/gralloc/Android.mk
@@ -29,5 +29,8 @@ LOCAL_SRC_FILES := \
LOCAL_MODULE := gralloc.default
LOCAL_CFLAGS:= -DLOG_TAG=\"gralloc\" -Wno-missing-field-initializers
+ifeq ($(TARGET_USE_PAN_DISPLAY),true)
+LOCAL_CFLAGS += -DUSE_PAN_DISPLAY=1
+endif
include $(BUILD_SHARED_LIBRARY)
diff --git a/modules/gralloc/framebuffer.cpp b/modules/gralloc/framebuffer.cpp
index 9d8513a..486e27a 100644
--- a/modules/gralloc/framebuffer.cpp
+++ b/modules/gralloc/framebuffer.cpp
@@ -42,6 +42,13 @@
/*****************************************************************************/
+// Set TARGET_USE_PAN_DISPLAY to true at compile time if the
+// board uses FBIOPAN_DISPLAY to setup page flipping, otherwise
+// default ioctl to do page-flipping is FBIOPUT_VSCREENINFO.
+#ifndef USE_PAN_DISPLAY
+#define USE_PAN_DISPLAY 0
+#endif
+
// numbers of buffers for page flipping
#define NUM_BUFFERS 2
@@ -178,10 +185,15 @@ int mapFrameBufferLocked(struct private_module_t* module)
uint32_t flags = PAGE_FLIP;
+#if USE_PAN_DISPLAY
+ if (ioctl(fd, FBIOPAN_DISPLAY, &info) == -1) {
+ ALOGW("FBIOPAN_DISPLAY failed, page flipping not supported");
+#else
if (ioctl(fd, FBIOPUT_VSCREENINFO, &info) == -1) {
+ ALOGW("FBIOPUT_VSCREENINFO failed, page flipping not supported");
+#endif
info.yres_virtual = info.yres;
flags &= ~PAGE_FLIP;
- ALOGW("FBIOPUT_VSCREENINFO failed, page flipping not supported");
}
if (info.yres_virtual < info.yres * 2) {