332c99924b2752e4bc6e5efdbf897f56990185a1
[linux-2.6.git] / drivers / video / tegra / host / dev.h
1 /*
2  * drivers/video/tegra/host/dev.h
3  *
4  * Tegra Graphics Host Driver Entrypoint
5  *
6  * Copyright (c) 2010-2012, NVIDIA Corporation.
7  *
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms and conditions of the GNU General Public License,
10  * version 2, as published by the Free Software Foundation.
11  *
12  * This program is distributed in the hope it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
15  * more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #ifndef __NVHOST_DEV_H
22 #define __NVHOST_DEV_H
23
24 #include <linux/cdev.h>
25 #include "nvhost_syncpt.h"
26 #include "nvhost_intr.h"
27
28 #define TRACE_MAX_LENGTH        128U
29 #define IFACE_NAME              "nvhost"
30
31 struct nvhost_hwctx;
32 struct nvhost_channel;
33 struct mem_mgr;
34
35 struct nvhost_master {
36         void __iomem *aperture;
37         void __iomem *sync_aperture;
38         struct resource *reg_mem;
39         struct class *nvhost_class;
40         struct cdev cdev;
41         struct device *ctrl;
42         struct nvhost_syncpt syncpt;
43         struct mem_mgr *memmgr;
44         struct nvhost_intr intr;
45         struct nvhost_device *dev;
46         atomic_t clientid;
47 };
48
49 extern struct nvhost_master *nvhost;
50
51 void nvhost_debug_init(struct nvhost_master *master);
52 void nvhost_debug_dump(struct nvhost_master *master);
53
54 struct nvhost_device *nvhost_get_device(char *name);
55 struct nvhost_channel *nvhost_alloc_channel(int index);
56 void nvhost_free_channel(struct nvhost_channel *ch);
57
58 extern pid_t nvhost_debug_null_kickoff_pid;
59
60 #endif