Subversion Repositories Kolibri OS

Rev

Rev 5270 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5270 serge 1
#ifndef _DRM_AGPSUPPORT_H_
2
#define _DRM_AGPSUPPORT_H_
3
 
4
#include 
5
#include 
6
#include 
7
#include 
8
#include 
9
#include 
10
#include 
11
 
12
struct drm_device;
13
struct drm_file;
14
 
15
struct drm_agp_head {
16
	struct agp_kern_info agp_info;
17
	struct list_head memory;
18
	unsigned long mode;
19
	struct agp_bridge_data *bridge;
20
	int enabled;
21
	int acquired;
22
	unsigned long base;
23
	int agp_mtrr;
24
	int cant_use_aperture;
25
	unsigned long page_mask;
26
};
27
 
6082 serge 28
#if IS_ENABLED(CONFIG_AGP)
5270 serge 29
 
30
void drm_free_agp(struct agp_memory * handle, int pages);
31
int drm_bind_agp(struct agp_memory * handle, unsigned int start);
32
int drm_unbind_agp(struct agp_memory * handle);
33
struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
34
				struct page **pages,
35
				unsigned long num_pages,
36
				uint32_t gtt_offset,
37
				uint32_t type);
38
 
39
struct drm_agp_head *drm_agp_init(struct drm_device *dev);
40
void drm_agp_clear(struct drm_device *dev);
41
int drm_agp_acquire(struct drm_device *dev);
42
int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
43
			  struct drm_file *file_priv);
44
int drm_agp_release(struct drm_device *dev);
45
int drm_agp_release_ioctl(struct drm_device *dev, void *data,
46
			  struct drm_file *file_priv);
47
int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
48
int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
49
			 struct drm_file *file_priv);
50
int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
51
int drm_agp_info_ioctl(struct drm_device *dev, void *data,
52
		       struct drm_file *file_priv);
53
int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
54
int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
55
			struct drm_file *file_priv);
56
int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
57
int drm_agp_free_ioctl(struct drm_device *dev, void *data,
58
		       struct drm_file *file_priv);
59
int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
60
int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
61
			 struct drm_file *file_priv);
62
int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
63
int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
64
		       struct drm_file *file_priv);
65
 
6082 serge 66
#else /* CONFIG_AGP */
5270 serge 67
 
68
static inline void drm_free_agp(struct agp_memory * handle, int pages)
69
{
70
}
71
 
72
static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
73
{
74
	return -ENODEV;
75
}
76
 
77
static inline int drm_unbind_agp(struct agp_memory * handle)
78
{
79
	return -ENODEV;
80
}
81
 
82
static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
83
					      struct page **pages,
84
					      unsigned long num_pages,
85
					      uint32_t gtt_offset,
86
					      uint32_t type)
87
{
88
	return NULL;
89
}
90
 
91
static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
92
{
93
	return NULL;
94
}
95
 
96
static inline void drm_agp_clear(struct drm_device *dev)
97
{
98
}
99
 
100
static inline int drm_agp_acquire(struct drm_device *dev)
101
{
102
	return -ENODEV;
103
}
104
 
105
static inline int drm_agp_release(struct drm_device *dev)
106
{
107
	return -ENODEV;
108
}
109
 
110
static inline int drm_agp_enable(struct drm_device *dev,
111
				 struct drm_agp_mode mode)
112
{
113
	return -ENODEV;
114
}
115
 
116
static inline int drm_agp_info(struct drm_device *dev,
117
			       struct drm_agp_info *info)
118
{
119
	return -ENODEV;
120
}
121
 
122
static inline int drm_agp_alloc(struct drm_device *dev,
123
				struct drm_agp_buffer *request)
124
{
125
	return -ENODEV;
126
}
127
 
128
static inline int drm_agp_free(struct drm_device *dev,
129
			       struct drm_agp_buffer *request)
130
{
131
	return -ENODEV;
132
}
133
 
134
static inline int drm_agp_unbind(struct drm_device *dev,
135
				 struct drm_agp_binding *request)
136
{
137
	return -ENODEV;
138
}
139
 
140
static inline int drm_agp_bind(struct drm_device *dev,
141
			       struct drm_agp_binding *request)
142
{
143
	return -ENODEV;
144
}
145
 
6082 serge 146
#endif /* CONFIG_AGP */
5270 serge 147
 
148
#endif /* _DRM_AGPSUPPORT_H_ */