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