Merge tag 'usb-3.14-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[platform/adaptation/renesas_rcar/renesas_kernel.git] / include / drm / drm_agpsupport.h
1 #ifndef _DRM_AGPSUPPORT_H_
2 #define _DRM_AGPSUPPORT_H_
3
4 #include <linux/kernel.h>
5 #include <linux/mm.h>
6 #include <linux/mutex.h>
7 #include <linux/types.h>
8 #include <linux/agp_backend.h>
9 #include <drm/drmP.h>
10
11 #if __OS_HAS_AGP
12
13 void drm_free_agp(struct agp_memory * handle, int pages);
14 int drm_bind_agp(struct agp_memory * handle, unsigned int start);
15 int drm_unbind_agp(struct agp_memory * handle);
16 struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
17                                 struct page **pages,
18                                 unsigned long num_pages,
19                                 uint32_t gtt_offset,
20                                 uint32_t type);
21
22 struct drm_agp_head *drm_agp_init(struct drm_device *dev);
23 void drm_agp_clear(struct drm_device *dev);
24 int drm_agp_acquire(struct drm_device *dev);
25 int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
26                           struct drm_file *file_priv);
27 int drm_agp_release(struct drm_device *dev);
28 int drm_agp_release_ioctl(struct drm_device *dev, void *data,
29                           struct drm_file *file_priv);
30 int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode);
31 int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
32                          struct drm_file *file_priv);
33 int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info);
34 int drm_agp_info_ioctl(struct drm_device *dev, void *data,
35                        struct drm_file *file_priv);
36 int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request);
37 int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
38                         struct drm_file *file_priv);
39 int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request);
40 int drm_agp_free_ioctl(struct drm_device *dev, void *data,
41                        struct drm_file *file_priv);
42 int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request);
43 int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
44                          struct drm_file *file_priv);
45 int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request);
46 int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
47                        struct drm_file *file_priv);
48 #else /* __OS_HAS_AGP */
49
50 static inline void drm_free_agp(struct agp_memory * handle, int pages)
51 {
52 }
53
54 static inline int drm_bind_agp(struct agp_memory * handle, unsigned int start)
55 {
56         return -ENODEV;
57 }
58
59 static inline int drm_unbind_agp(struct agp_memory * handle)
60 {
61         return -ENODEV;
62 }
63
64 static inline struct agp_memory *drm_agp_bind_pages(struct drm_device *dev,
65                                               struct page **pages,
66                                               unsigned long num_pages,
67                                               uint32_t gtt_offset,
68                                               uint32_t type)
69 {
70         return NULL;
71 }
72
73 static inline struct drm_agp_head *drm_agp_init(struct drm_device *dev)
74 {
75         return NULL;
76 }
77
78 static inline void drm_agp_clear(struct drm_device *dev)
79 {
80 }
81
82 static inline int drm_agp_acquire(struct drm_device *dev)
83 {
84         return -ENODEV;
85 }
86
87 static inline int drm_agp_acquire_ioctl(struct drm_device *dev, void *data,
88                                         struct drm_file *file_priv)
89 {
90         return -ENODEV;
91 }
92
93 static inline int drm_agp_release(struct drm_device *dev)
94 {
95         return -ENODEV;
96 }
97
98 static inline int drm_agp_release_ioctl(struct drm_device *dev, void *data,
99                                         struct drm_file *file_priv)
100 {
101         return -ENODEV;
102 }
103
104 static inline int drm_agp_enable(struct drm_device *dev,
105                                  struct drm_agp_mode mode)
106 {
107         return -ENODEV;
108 }
109
110 static inline int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
111                                        struct drm_file *file_priv)
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_info_ioctl(struct drm_device *dev, void *data,
123                                      struct drm_file *file_priv)
124 {
125         return -ENODEV;
126 }
127
128 static inline int drm_agp_alloc(struct drm_device *dev,
129                                 struct drm_agp_buffer *request)
130 {
131         return -ENODEV;
132 }
133
134 static inline int drm_agp_alloc_ioctl(struct drm_device *dev, void *data,
135                                       struct drm_file *file_priv)
136 {
137         return -ENODEV;
138 }
139
140 static inline int drm_agp_free(struct drm_device *dev,
141                                struct drm_agp_buffer *request)
142 {
143         return -ENODEV;
144 }
145
146 static inline int drm_agp_free_ioctl(struct drm_device *dev, void *data,
147                                      struct drm_file *file_priv)
148 {
149         return -ENODEV;
150 }
151
152 static inline int drm_agp_unbind(struct drm_device *dev,
153                                  struct drm_agp_binding *request)
154 {
155         return -ENODEV;
156 }
157
158 static inline int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
159                                        struct drm_file *file_priv)
160 {
161         return -ENODEV;
162 }
163
164 static inline int drm_agp_bind(struct drm_device *dev,
165                                struct drm_agp_binding *request)
166 {
167         return -ENODEV;
168 }
169
170 static inline int drm_agp_bind_ioctl(struct drm_device *dev, void *data,
171                                      struct drm_file *file_priv)
172 {
173         return -ENODEV;
174 }
175 #endif /* __OS_HAS_AGP */
176
177 #endif /* _DRM_AGPSUPPORT_H_ */