]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - include/drm/drm_agpsupport.h
xfrm: policy: remove family field
[mirror_ubuntu-artful-kernel.git] / include / drm / drm_agpsupport.h
1 #ifndef _DRM_AGPSUPPORT_H_
2 #define _DRM_AGPSUPPORT_H_
3
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>
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
28 #if IS_ENABLED(CONFIG_AGP)
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_legacy_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
66 #else /* CONFIG_AGP */
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_legacy_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
146 #endif /* CONFIG_AGP */
147
148 #endif /* _DRM_AGPSUPPORT_H_ */