From 6e6f9a907ecc2c8f6e48a41d9b378737475be62b Mon Sep 17 00:00:00 2001 From: Ken Zhang Date: Tue, 8 Jan 2013 15:09:27 -0500 Subject: display: use metadata ioctl to get panel frame rate Get rid of using reserved fields Change-Id: Ia3ada294427812e8382f744964f475403f6fb73a --- libgralloc/framebuffer.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libgralloc/framebuffer.cpp') diff --git a/libgralloc/framebuffer.cpp b/libgralloc/framebuffer.cpp index 1193a2746..5293ca9b2 100644 --- a/libgralloc/framebuffer.cpp +++ b/libgralloc/framebuffer.cpp @@ -267,9 +267,20 @@ int mapFrameBufferLocked(struct private_module_t* module) float xdpi = (info.xres * 25.4f) / info.width; float ydpi = (info.yres * 25.4f) / info.height; +#ifdef MSMFB_METADATA_GET + struct msmfb_metadata metadata; + memset(&metadata, 0 , sizeof(metadata)); + metadata.op = metadata_op_frame_rate; + if (ioctl(fd, MSMFB_METADATA_GET, &metadata) == -1) { + ALOGE("Error retrieving panel frame rate"); + return -errno; + } + float fps = metadata.data.panel_frame_rate; +#else + //XXX: Remove reserved field usage on all baselines //The reserved[3] field is used to store FPS by the driver. float fps = info.reserved[3] & 0xFF; - +#endif ALOGI("using (fd=%d)\n" "id = %s\n" "xres = %d px\n" -- cgit v1.2.3