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