b0a9bf65c6cdf360296e2bab984c62f1b6b14625
[linux-2.6.git] / drivers / video / tegra / dc / ext / tegra_dc_ext_priv.h
1 /*
2  * drivers/video/tegra/dc/ext/tegra_dc_ext_priv.h
3  *
4  * Copyright (C) 2011, NVIDIA Corporation
5  *
6  * Author: Robert Morell <rmorell@nvidia.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
16  * more details.
17  */
18
19 #ifndef __TEGRA_DC_EXT_PRIV_H
20 #define __TEGRA_DC_EXT_PRIV_H
21
22 #include <linux/cdev.h>
23 #include <linux/mutex.h>
24
25 #include <mach/nvmap.h>
26
27 struct tegra_dc_ext;
28
29 struct tegra_dc_ext_user {
30         struct tegra_dc_ext     *ext;
31         struct nvmap_client     *nvmap;
32 };
33
34 struct tegra_dc_ext_win {
35         struct tegra_dc_ext     *ext;
36
37         int                     idx;
38
39         struct tegra_dc_ext_user *user;
40
41         struct mutex            lock;
42
43         struct nvmap_handle_ref *cur_handle;
44
45         struct workqueue_struct *flip_wq;
46 };
47
48 struct tegra_dc_ext {
49         struct tegra_dc                 *dc;
50
51         struct cdev                     cdev;
52         struct device                   *dev;
53
54         struct nvmap_client             *nvmap;
55
56         struct tegra_dc_ext_win         win[DC_N_WINDOWS];
57 };
58
59 #endif /* __TEGRA_DC_EXT_PRIV_H */