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