12ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel/* 22ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * Copyright (C) 2008 The Android Open Source Project 32ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. 42ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * 52ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * Licensed under the Apache License, Version 2.0 (the "License"); 62ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * you may not use this file except in compliance with the License. 72ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * You may obtain a copy of the License at 82ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * 92ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * http://www.apache.org/licenses/LICENSE-2.0 102ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * 112ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * Unless required by applicable law or agreed to in writing, software 122ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * distributed under the License is distributed on an "AS IS" BASIS, 132ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 142ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * See the License for the specific language governing permissions and 152ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel * limitations under the License. 162ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel */ 172ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 182ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#ifndef FB_PRIV_H 192ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#define FB_PRIV_H 202ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#include <linux/fb.h> 212ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#include <linux/msm_mdp.h> 222ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 232ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#define NUM_FRAMEBUFFERS_MIN 2 242ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#define NUM_FRAMEBUFFERS_MAX 3 252ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 262ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#define NO_SURFACEFLINGER_SWAPINTERVAL 272ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#define COLOR_FORMAT(x) (x & 0xFFF) // Max range for colorFormats is 0 - FFF 282ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 292ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudelstruct private_handle_t; 302ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 312ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudelenum { 322ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel // flag to indicate we'll post this buffer 332ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel PRIV_USAGE_LOCKED_FOR_POST = 0x80000000, 342ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel PRIV_MIN_SWAP_INTERVAL = 0, 352ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel PRIV_MAX_SWAP_INTERVAL = 1, 362ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel}; 372ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 382ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudelstruct private_module_t { 392ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel gralloc_module_t base; 402ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel struct private_handle_t* framebuffer; 412ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel uint32_t fbFormat; 422ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel uint32_t flags; 432ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel uint32_t numBuffers; 442ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel uint32_t bufferMask; 452ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel pthread_mutex_t lock; 462ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel struct fb_var_screeninfo info; 472ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel struct fb_fix_screeninfo finfo; 482ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel float xdpi; 492ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel float ydpi; 502ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel float fps; 512ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel uint32_t swapInterval; 522ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel}; 532ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 542ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 552ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel 562ebc25b87caae537b8cd97beb8a86a7ff5f0cdf4Thierry Strudel#endif /* FB_PRIV_H */ 57