1d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin/* 2d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * Copyright (C) 2008 The Android Open Source Project 3d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved. 4d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * 5d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * Licensed under the Apache License, Version 2.0 (the "License"); 6d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * you may not use this file except in compliance with the License. 7d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * You may obtain a copy of the License at 8d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * 9d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * http://www.apache.org/licenses/LICENSE-2.0 10d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * 11d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * Unless required by applicable law or agreed to in writing, software 12d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * distributed under the License is distributed on an "AS IS" BASIS, 13d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * See the License for the specific language governing permissions and 15d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin * limitations under the License. 16d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin */ 17d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 18d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#ifndef FB_PRIV_H 19d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define FB_PRIV_H 20d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include <linux/fb.h> 21d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#include <linux/msm_mdp.h> 22d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 23d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define NUM_FRAMEBUFFERS_MIN 2 24d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define NUM_FRAMEBUFFERS_MAX 3 25d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 26d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define NO_SURFACEFLINGER_SWAPINTERVAL 27d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#define COLOR_FORMAT(x) (x & 0xFFF) // Max range for colorFormats is 0 - FFF 28d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 29d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinstruct private_handle_t; 30d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 31d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinenum { 32d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin // flag to indicate we'll post this buffer 33d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin PRIV_USAGE_LOCKED_FOR_POST = 0x80000000, 34d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin PRIV_MIN_SWAP_INTERVAL = 0, 35d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin PRIV_MAX_SWAP_INTERVAL = 1, 36d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin}; 37d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 38d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjinstruct private_module_t { 39d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin gralloc_module_t base; 40d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin struct private_handle_t* framebuffer; 41d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin uint32_t fbFormat; 42d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin uint32_t flags; 43d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin uint32_t numBuffers; 44d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin uint32_t bufferMask; 45d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin pthread_mutex_t lock; 46d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin struct fb_var_screeninfo info; 47d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin struct fb_fix_screeninfo finfo; 48d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin float xdpi; 49d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin float ydpi; 50d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin float fps; 51d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin uint32_t swapInterval; 52d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin}; 53d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 54d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 55d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin 56d68a2e45260f864503d7bd6da93fd29589afd89ePatrick Tjin#endif /* FB_PRIV_H */ 57