Linux 4.1.18
[linux/fpc-iii.git] / include / drm / drm_agpsupport.h
blob055dc058d147247c4a1652f98db20cc869a731dc
1 #ifndef _DRM_AGPSUPPORT_H_
2 #define _DRM_AGPSUPPORT_H_
4 #include <linux/agp_backend.h>
5 #include <linux/kernel.h>
6 #include <linux/list.h>
7 #include <linux/mm.h>
8 #include <linux/mutex.h>
9 #include <linux/types.h>
10 #include <uapi/drm/drm.h>
12 struct drm_device;
13 struct drm_file;
15 #define __OS_HAS_AGP (defined(CONFIG_AGP) || (defined(CONFIG_AGP_MODULE) && \
16 defined(MODULE)))
18 struct drm_agp_head {
19 struct agp_kern_info agp_info;
20 struct list_head memory;
21 unsigned long mode;
22 struct agp_bridge_data *bridge;
23 int enabled;
24 int acquired;
25 unsigned long base;
26 int agp_mtrr;
27 int cant_use_aperture;
28 unsigned long page_mask;
31 #if __OS_HAS_AGP
33 void drm_free_agp(struct agp_memory * handle, int pages);
34 int drm_bind_agp(struct agp_memory * handle, unsigned int start);
35 int drm_unbind_agp(struct agp_memory * handle);
36 struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
37 struct page **pages,
38 unsigned long num_pages,
39 uint32_t gtt_offset,
40 uint32_t type);
42 struct drm_agp_head *drm_agp_init(struct drm_device *dev);
43 void drm_agp_clear(struct drm_device *dev);
44 int drm_agp_acquire(struct drm_device *dev);
45 int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
46 struct drm_file *file_priv);
47 int drm_agp_release(struct drm_device *dev);
48 int drm_agp_release_ioctl(struct drm_device *dev, void *data,
49 struct drm_file *file_priv);
50 int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
51 int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
52 struct drm_file *file_priv);
53 int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
54 int drm_agp_info_ioctl(struct drm_device *dev, void *data,
55 struct drm_file *file_priv);
56 int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
57 int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
58 struct drm_file *file_priv);
59 int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
60 int drm_agp_free_ioctl(struct drm_device *dev, void *data,
61 struct drm_file *file_priv);
62 int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
63 int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
64 struct drm_file *file_priv);
65 int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
66 int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
67 struct drm_file *file_priv);
69 #else /* __OS_HAS_AGP */
71 static inline void drm_free_agp(struct agp_memory * handle, int pages)
75 static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
77 return -ENODEV;
80 static inline int drm_unbind_agp(struct agp_memory * handle)
82 return -ENODEV;
85 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
86 struct page **pages,
87 unsigned long num_pages,
88 uint32_t gtt_offset,
89 uint32_t type)
91 return NULL;
94 static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
96 return NULL;
99 static inline void drm_agp_clear(struct drm_device *dev)
103 static inline int drm_agp_acquire(struct drm_device *dev)
105 return -ENODEV;
108 static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
109 struct drm_file *file_priv)
111 return -ENODEV;
114 static inline int drm_agp_release(struct drm_device *dev)
116 return -ENODEV;
119 static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
120 struct drm_file *file_priv)
122 return -ENODEV;
125 static inline int drm_agp_enable(struct drm_device *dev,
126 struct drm_agp_mode mode)
128 return -ENODEV;
131 static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
132 struct drm_file *file_priv)
134 return -ENODEV;
137 static inline int drm_agp_info(struct drm_device *dev,
138 struct drm_agp_info *info)
140 return -ENODEV;
143 static inline int drm_agp_info_ioctl(struct drm_device *dev, void *data,
144 struct drm_file *file_priv)
146 return -ENODEV;
149 static inline int drm_agp_alloc(struct drm_device *dev,
150 struct drm_agp_buffer *request)
152 return -ENODEV;
155 static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
156 struct drm_file *file_priv)
158 return -ENODEV;
161 static inline int drm_agp_free(struct drm_device *dev,
162 struct drm_agp_buffer *request)
164 return -ENODEV;
167 static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
168 struct drm_file *file_priv)
170 return -ENODEV;
173 static inline int drm_agp_unbind(struct drm_device *dev,
174 struct drm_agp_binding *request)
176 return -ENODEV;
179 static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
180 struct drm_file *file_priv)
182 return -ENODEV;
185 static inline int drm_agp_bind(struct drm_device *dev,
186 struct drm_agp_binding *request)
188 return -ENODEV;
191 static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
192 struct drm_file *file_priv)
194 return -ENODEV;
197 #endif /* __OS_HAS_AGP */
199 #endif /* _DRM_AGPSUPPORT_H_ */