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