Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/gpu/host1x/channel.h
29278 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
/*
3
* Tegra host1x Channel
4
*
5
* Copyright (c) 2010-2013, NVIDIA Corporation.
6
*/
7
8
#ifndef __HOST1X_CHANNEL_H
9
#define __HOST1X_CHANNEL_H
10
11
#include <linux/io.h>
12
#include <linux/kref.h>
13
#include <linux/mutex.h>
14
15
#include "cdma.h"
16
17
struct host1x;
18
struct host1x_channel;
19
20
struct host1x_channel_list {
21
struct host1x_channel *channels;
22
23
struct mutex lock;
24
unsigned long *allocated_channels;
25
};
26
27
struct host1x_channel {
28
struct kref refcount;
29
unsigned int id;
30
struct mutex submitlock;
31
void __iomem *regs;
32
struct host1x_client *client;
33
struct device *dev;
34
struct host1x_cdma cdma;
35
};
36
37
/* channel list operations */
38
int host1x_channel_list_init(struct host1x_channel_list *chlist,
39
unsigned int num_channels);
40
void host1x_channel_list_free(struct host1x_channel_list *chlist);
41
struct host1x_channel *host1x_channel_get_index(struct host1x *host,
42
unsigned int index);
43
void host1x_channel_stop_all(struct host1x *host);
44
45
#endif
46
47