diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 15:15:50 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-16 15:15:50 -0400 |
commit | c2dc1ad582196208a2f990eb0230eb922046c684 (patch) | |
tree | f2c7d03a9f8007af0a43111423dbf96ccef77db4 | |
parent | 5b37696fda07b8acf37beba3853f83106397ccdf (diff) | |
parent | ff4135aeb1f9a0201f8e22400ebc1d570df9016e (diff) |
Merge branch 'drm-patches' of ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-patches' of ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
drm: remove core typedefs from the ioc32 wrappers
drm: remove sarea typedefs
drm: detypedef the hashtab and more of sman
drm: de-typedef sman
drm: detypedeffing continues...
drm: detypef waitlist/freelist/buf_entry/device_dma/drm_queue structs
drm: drop drm_vma_entry_t, drm_magic_entry_t
drm: drop drm_buf_t typedef
drm: fixup other drivers for typedef removals
drm: remove drm_file_t, drm_device_t and drm_head_t typedefs
drm: remove a bunch of typedefs on the userspace interface
r300: updates register header
radeon: add support for vblank on crtc2
drm: cleanup list initialisation
drm: fix typo on code drm getsarea
drm: remove DRM_GETSAREA and replace with drm_getsarea function
drm: cleanup use of Linux list handling macros
77 files changed, 2485 insertions, 2214 deletions
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c index 5b91bc04ea4e..3345641ff904 100644 --- a/drivers/char/drm/ati_pcigart.c +++ b/drivers/char/drm/ati_pcigart.c | |||
@@ -73,9 +73,9 @@ static void drm_ati_free_pcigart_table(void *address, int order) | |||
73 | free_pages((unsigned long)address, order); | 73 | free_pages((unsigned long)address, order); |
74 | } | 74 | } |
75 | 75 | ||
76 | int drm_ati_pcigart_cleanup(drm_device_t *dev, drm_ati_pcigart_info *gart_info) | 76 | int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) |
77 | { | 77 | { |
78 | drm_sg_mem_t *entry = dev->sg; | 78 | struct drm_sg_mem *entry = dev->sg; |
79 | unsigned long pages; | 79 | unsigned long pages; |
80 | int i; | 80 | int i; |
81 | int order; | 81 | int order; |
@@ -122,9 +122,9 @@ int drm_ati_pcigart_cleanup(drm_device_t *dev, drm_ati_pcigart_info *gart_info) | |||
122 | } | 122 | } |
123 | EXPORT_SYMBOL(drm_ati_pcigart_cleanup); | 123 | EXPORT_SYMBOL(drm_ati_pcigart_cleanup); |
124 | 124 | ||
125 | int drm_ati_pcigart_init(drm_device_t *dev, drm_ati_pcigart_info *gart_info) | 125 | int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) |
126 | { | 126 | { |
127 | drm_sg_mem_t *entry = dev->sg; | 127 | struct drm_sg_mem *entry = dev->sg; |
128 | void *address = NULL; | 128 | void *address = NULL; |
129 | unsigned long pages; | 129 | unsigned long pages; |
130 | u32 *pci_gart, page_base, bus_address = 0; | 130 | u32 *pci_gart, page_base, bus_address = 0; |
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h index 089198491f16..2d6f2d0bd02b 100644 --- a/drivers/char/drm/drm.h +++ b/drivers/char/drm/drm.h | |||
@@ -109,31 +109,31 @@ typedef unsigned int drm_magic_t; | |||
109 | * \note KW: Actually it's illegal to change either for | 109 | * \note KW: Actually it's illegal to change either for |
110 | * backwards-compatibility reasons. | 110 | * backwards-compatibility reasons. |
111 | */ | 111 | */ |
112 | typedef struct drm_clip_rect { | 112 | struct drm_clip_rect { |
113 | unsigned short x1; | 113 | unsigned short x1; |
114 | unsigned short y1; | 114 | unsigned short y1; |
115 | unsigned short x2; | 115 | unsigned short x2; |
116 | unsigned short y2; | 116 | unsigned short y2; |
117 | } drm_clip_rect_t; | 117 | }; |
118 | 118 | ||
119 | /** | 119 | /** |
120 | * Drawable information. | 120 | * Drawable information. |
121 | */ | 121 | */ |
122 | typedef struct drm_drawable_info { | 122 | struct drm_drawable_info { |
123 | unsigned int num_rects; | 123 | unsigned int num_rects; |
124 | drm_clip_rect_t *rects; | 124 | struct drm_clip_rect *rects; |
125 | } drm_drawable_info_t; | 125 | }; |
126 | 126 | ||
127 | /** | 127 | /** |
128 | * Texture region, | 128 | * Texture region, |
129 | */ | 129 | */ |
130 | typedef struct drm_tex_region { | 130 | struct drm_tex_region { |
131 | unsigned char next; | 131 | unsigned char next; |
132 | unsigned char prev; | 132 | unsigned char prev; |
133 | unsigned char in_use; | 133 | unsigned char in_use; |
134 | unsigned char padding; | 134 | unsigned char padding; |
135 | unsigned int age; | 135 | unsigned int age; |
136 | } drm_tex_region_t; | 136 | }; |
137 | 137 | ||
138 | /** | 138 | /** |
139 | * Hardware lock. | 139 | * Hardware lock. |
@@ -142,17 +142,17 @@ typedef struct drm_tex_region { | |||
142 | * processor bus contention on a multiprocessor system, there should not be any | 142 | * processor bus contention on a multiprocessor system, there should not be any |
143 | * other data stored in the same cache line. | 143 | * other data stored in the same cache line. |
144 | */ | 144 | */ |
145 | typedef struct drm_hw_lock { | 145 | struct drm_hw_lock { |
146 | __volatile__ unsigned int lock; /**< lock variable */ | 146 | __volatile__ unsigned int lock; /**< lock variable */ |
147 | char padding[60]; /**< Pad to cache line */ | 147 | char padding[60]; /**< Pad to cache line */ |
148 | } drm_hw_lock_t; | 148 | }; |
149 | 149 | ||
150 | /** | 150 | /** |
151 | * DRM_IOCTL_VERSION ioctl argument type. | 151 | * DRM_IOCTL_VERSION ioctl argument type. |
152 | * | 152 | * |
153 | * \sa drmGetVersion(). | 153 | * \sa drmGetVersion(). |
154 | */ | 154 | */ |
155 | typedef struct drm_version { | 155 | struct drm_version { |
156 | int version_major; /**< Major version */ | 156 | int version_major; /**< Major version */ |
157 | int version_minor; /**< Minor version */ | 157 | int version_minor; /**< Minor version */ |
158 | int version_patchlevel; /**< Patch level */ | 158 | int version_patchlevel; /**< Patch level */ |
@@ -162,33 +162,33 @@ typedef struct drm_version { | |||
162 | char __user *date; /**< User-space buffer to hold date */ | 162 | char __user *date; /**< User-space buffer to hold date */ |
163 | size_t desc_len; /**< Length of desc buffer */ | 163 | size_t desc_len; /**< Length of desc buffer */ |
164 | char __user *desc; /**< User-space buffer to hold desc */ | 164 | char __user *desc; /**< User-space buffer to hold desc */ |
165 | } drm_version_t; | 165 | }; |
166 | 166 | ||
167 | /** | 167 | /** |
168 | * DRM_IOCTL_GET_UNIQUE ioctl argument type. | 168 | * DRM_IOCTL_GET_UNIQUE ioctl argument type. |
169 | * | 169 | * |
170 | * \sa drmGetBusid() and drmSetBusId(). | 170 | * \sa drmGetBusid() and drmSetBusId(). |
171 | */ | 171 | */ |
172 | typedef struct drm_unique { | 172 | struct drm_unique { |
173 | size_t unique_len; /**< Length of unique */ | 173 | size_t unique_len; /**< Length of unique */ |
174 | char __user *unique; /**< Unique name for driver instantiation */ | 174 | char __user *unique; /**< Unique name for driver instantiation */ |
175 | } drm_unique_t; | 175 | }; |
176 | 176 | ||
177 | typedef struct drm_list { | 177 | struct drm_list { |
178 | int count; /**< Length of user-space structures */ | 178 | int count; /**< Length of user-space structures */ |
179 | drm_version_t __user *version; | 179 | struct drm_version __user *version; |
180 | } drm_list_t; | 180 | }; |
181 | 181 | ||
182 | typedef struct drm_block { | 182 | struct drm_block { |
183 | int unused; | 183 | int unused; |
184 | } drm_block_t; | 184 | }; |
185 | 185 | ||
186 | /** | 186 | /** |
187 | * DRM_IOCTL_CONTROL ioctl argument type. | 187 | * DRM_IOCTL_CONTROL ioctl argument type. |
188 | * | 188 | * |
189 | * \sa drmCtlInstHandler() and drmCtlUninstHandler(). | 189 | * \sa drmCtlInstHandler() and drmCtlUninstHandler(). |
190 | */ | 190 | */ |
191 | typedef struct drm_control { | 191 | struct drm_control { |
192 | enum { | 192 | enum { |
193 | DRM_ADD_COMMAND, | 193 | DRM_ADD_COMMAND, |
194 | DRM_RM_COMMAND, | 194 | DRM_RM_COMMAND, |
@@ -196,24 +196,24 @@ typedef struct drm_control { | |||
196 | DRM_UNINST_HANDLER | 196 | DRM_UNINST_HANDLER |
197 | } func; | 197 | } func; |
198 | int irq; | 198 | int irq; |
199 | } drm_control_t; | 199 | }; |
200 | 200 | ||
201 | /** | 201 | /** |
202 | * Type of memory to map. | 202 | * Type of memory to map. |
203 | */ | 203 | */ |
204 | typedef enum drm_map_type { | 204 | enum drm_map_type { |
205 | _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */ | 205 | _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */ |
206 | _DRM_REGISTERS = 1, /**< no caching, no core dump */ | 206 | _DRM_REGISTERS = 1, /**< no caching, no core dump */ |
207 | _DRM_SHM = 2, /**< shared, cached */ | 207 | _DRM_SHM = 2, /**< shared, cached */ |
208 | _DRM_AGP = 3, /**< AGP/GART */ | 208 | _DRM_AGP = 3, /**< AGP/GART */ |
209 | _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ | 209 | _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ |
210 | _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ | 210 | _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ |
211 | } drm_map_type_t; | 211 | }; |
212 | 212 | ||
213 | /** | 213 | /** |
214 | * Memory mapping flags. | 214 | * Memory mapping flags. |
215 | */ | 215 | */ |
216 | typedef enum drm_map_flags { | 216 | enum drm_map_flags { |
217 | _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */ | 217 | _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */ |
218 | _DRM_READ_ONLY = 0x02, | 218 | _DRM_READ_ONLY = 0x02, |
219 | _DRM_LOCKED = 0x04, /**< shared, cached, locked */ | 219 | _DRM_LOCKED = 0x04, /**< shared, cached, locked */ |
@@ -221,12 +221,12 @@ typedef enum drm_map_flags { | |||
221 | _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */ | 221 | _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */ |
222 | _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */ | 222 | _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */ |
223 | _DRM_REMOVABLE = 0x40 /**< Removable mapping */ | 223 | _DRM_REMOVABLE = 0x40 /**< Removable mapping */ |
224 | } drm_map_flags_t; | 224 | }; |
225 | 225 | ||
226 | typedef struct drm_ctx_priv_map { | 226 | struct drm_ctx_priv_map { |
227 | unsigned int ctx_id; /**< Context requesting private mapping */ | 227 | unsigned int ctx_id; /**< Context requesting private mapping */ |
228 | void *handle; /**< Handle of map */ | 228 | void *handle; /**< Handle of map */ |
229 | } drm_ctx_priv_map_t; | 229 | }; |
230 | 230 | ||
231 | /** | 231 | /** |
232 | * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls | 232 | * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls |
@@ -234,30 +234,30 @@ typedef struct drm_ctx_priv_map { | |||
234 | * | 234 | * |
235 | * \sa drmAddMap(). | 235 | * \sa drmAddMap(). |
236 | */ | 236 | */ |
237 | typedef struct drm_map { | 237 | struct drm_map { |
238 | unsigned long offset; /**< Requested physical address (0 for SAREA)*/ | 238 | unsigned long offset; /**< Requested physical address (0 for SAREA)*/ |
239 | unsigned long size; /**< Requested physical size (bytes) */ | 239 | unsigned long size; /**< Requested physical size (bytes) */ |
240 | drm_map_type_t type; /**< Type of memory to map */ | 240 | enum drm_map_type type; /**< Type of memory to map */ |
241 | drm_map_flags_t flags; /**< Flags */ | 241 | enum drm_map_flags flags; /**< Flags */ |
242 | void *handle; /**< User-space: "Handle" to pass to mmap() */ | 242 | void *handle; /**< User-space: "Handle" to pass to mmap() */ |
243 | /**< Kernel-space: kernel-virtual address */ | 243 | /**< Kernel-space: kernel-virtual address */ |
244 | int mtrr; /**< MTRR slot used */ | 244 | int mtrr; /**< MTRR slot used */ |
245 | /* Private data */ | 245 | /* Private data */ |
246 | } drm_map_t; | 246 | }; |
247 | 247 | ||
248 | /** | 248 | /** |
249 | * DRM_IOCTL_GET_CLIENT ioctl argument type. | 249 | * DRM_IOCTL_GET_CLIENT ioctl argument type. |
250 | */ | 250 | */ |
251 | typedef struct drm_client { | 251 | struct drm_client { |
252 | int idx; /**< Which client desired? */ | 252 | int idx; /**< Which client desired? */ |
253 | int auth; /**< Is client authenticated? */ | 253 | int auth; /**< Is client authenticated? */ |
254 | unsigned long pid; /**< Process ID */ | 254 | unsigned long pid; /**< Process ID */ |
255 | unsigned long uid; /**< User ID */ | 255 | unsigned long uid; /**< User ID */ |
256 | unsigned long magic; /**< Magic */ | 256 | unsigned long magic; /**< Magic */ |
257 | unsigned long iocs; /**< Ioctl count */ | 257 | unsigned long iocs; /**< Ioctl count */ |
258 | } drm_client_t; | 258 | }; |
259 | 259 | ||
260 | typedef enum { | 260 | enum drm_stat_type { |
261 | _DRM_STAT_LOCK, | 261 | _DRM_STAT_LOCK, |
262 | _DRM_STAT_OPENS, | 262 | _DRM_STAT_OPENS, |
263 | _DRM_STAT_CLOSES, | 263 | _DRM_STAT_CLOSES, |
@@ -275,23 +275,23 @@ typedef enum { | |||
275 | _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */ | 275 | _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */ |
276 | _DRM_STAT_MISSED /**< Missed DMA opportunity */ | 276 | _DRM_STAT_MISSED /**< Missed DMA opportunity */ |
277 | /* Add to the *END* of the list */ | 277 | /* Add to the *END* of the list */ |
278 | } drm_stat_type_t; | 278 | }; |
279 | 279 | ||
280 | /** | 280 | /** |
281 | * DRM_IOCTL_GET_STATS ioctl argument type. | 281 | * DRM_IOCTL_GET_STATS ioctl argument type. |
282 | */ | 282 | */ |
283 | typedef struct drm_stats { | 283 | struct drm_stats { |
284 | unsigned long count; | 284 | unsigned long count; |
285 | struct { | 285 | struct { |
286 | unsigned long value; | 286 | unsigned long value; |
287 | drm_stat_type_t type; | 287 | enum drm_stat_type type; |
288 | } data[15]; | 288 | } data[15]; |
289 | } drm_stats_t; | 289 | }; |
290 | 290 | ||
291 | /** | 291 | /** |
292 | * Hardware locking flags. | 292 | * Hardware locking flags. |
293 | */ | 293 | */ |
294 | typedef enum drm_lock_flags { | 294 | enum drm_lock_flags { |
295 | _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */ | 295 | _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */ |
296 | _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */ | 296 | _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */ |
297 | _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */ | 297 | _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */ |
@@ -301,17 +301,17 @@ typedef enum drm_lock_flags { | |||
301 | full-screen DGA-like mode. */ | 301 | full-screen DGA-like mode. */ |
302 | _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */ | 302 | _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */ |
303 | _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */ | 303 | _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */ |
304 | } drm_lock_flags_t; | 304 | }; |
305 | 305 | ||
306 | /** | 306 | /** |
307 | * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type. | 307 | * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type. |
308 | * | 308 | * |
309 | * \sa drmGetLock() and drmUnlock(). | 309 | * \sa drmGetLock() and drmUnlock(). |
310 | */ | 310 | */ |
311 | typedef struct drm_lock { | 311 | struct drm_lock { |
312 | int context; | 312 | int context; |
313 | drm_lock_flags_t flags; | 313 | enum drm_lock_flags flags; |
314 | } drm_lock_t; | 314 | }; |
315 | 315 | ||
316 | /** | 316 | /** |
317 | * DMA flags | 317 | * DMA flags |
@@ -321,7 +321,7 @@ typedef struct drm_lock { | |||
321 | * | 321 | * |
322 | * \sa drm_dma. | 322 | * \sa drm_dma. |
323 | */ | 323 | */ |
324 | typedef enum drm_dma_flags { | 324 | enum drm_dma_flags { |
325 | /* Flags for DMA buffer dispatch */ | 325 | /* Flags for DMA buffer dispatch */ |
326 | _DRM_DMA_BLOCK = 0x01, /**< | 326 | _DRM_DMA_BLOCK = 0x01, /**< |
327 | * Block until buffer dispatched. | 327 | * Block until buffer dispatched. |
@@ -340,14 +340,14 @@ typedef enum drm_dma_flags { | |||
340 | _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */ | 340 | _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */ |
341 | _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */ | 341 | _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */ |
342 | _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */ | 342 | _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */ |
343 | } drm_dma_flags_t; | 343 | }; |
344 | 344 | ||
345 | /** | 345 | /** |
346 | * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type. | 346 | * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type. |
347 | * | 347 | * |
348 | * \sa drmAddBufs(). | 348 | * \sa drmAddBufs(). |
349 | */ | 349 | */ |
350 | typedef struct drm_buf_desc { | 350 | struct drm_buf_desc { |
351 | int count; /**< Number of buffers of this size */ | 351 | int count; /**< Number of buffers of this size */ |
352 | int size; /**< Size in bytes */ | 352 | int size; /**< Size in bytes */ |
353 | int low_mark; /**< Low water mark */ | 353 | int low_mark; /**< Low water mark */ |
@@ -363,44 +363,44 @@ typedef struct drm_buf_desc { | |||
363 | * Start address of where the AGP buffers are | 363 | * Start address of where the AGP buffers are |
364 | * in the AGP aperture | 364 | * in the AGP aperture |
365 | */ | 365 | */ |
366 | } drm_buf_desc_t; | 366 | }; |
367 | 367 | ||
368 | /** | 368 | /** |
369 | * DRM_IOCTL_INFO_BUFS ioctl argument type. | 369 | * DRM_IOCTL_INFO_BUFS ioctl argument type. |
370 | */ | 370 | */ |
371 | typedef struct drm_buf_info { | 371 | struct drm_buf_info { |
372 | int count; /**< Entries in list */ | 372 | int count; /**< Entries in list */ |
373 | drm_buf_desc_t __user *list; | 373 | struct drm_buf_desc __user *list; |
374 | } drm_buf_info_t; | 374 | }; |
375 | 375 | ||
376 | /** | 376 | /** |
377 | * DRM_IOCTL_FREE_BUFS ioctl argument type. | 377 | * DRM_IOCTL_FREE_BUFS ioctl argument type. |
378 | */ | 378 | */ |
379 | typedef struct drm_buf_free { | 379 | struct drm_buf_free { |
380 | int count; | 380 | int count; |
381 | int __user *list; | 381 | int __user *list; |
382 | } drm_buf_free_t; | 382 | }; |
383 | 383 | ||
384 | /** | 384 | /** |
385 | * Buffer information | 385 | * Buffer information |
386 | * | 386 | * |
387 | * \sa drm_buf_map. | 387 | * \sa drm_buf_map. |
388 | */ | 388 | */ |
389 | typedef struct drm_buf_pub { | 389 | struct drm_buf_pub { |
390 | int idx; /**< Index into the master buffer list */ | 390 | int idx; /**< Index into the master buffer list */ |
391 | int total; /**< Buffer size */ | 391 | int total; /**< Buffer size */ |
392 | int used; /**< Amount of buffer in use (for DMA) */ | 392 | int used; /**< Amount of buffer in use (for DMA) */ |
393 | void __user *address; /**< Address of buffer */ | 393 | void __user *address; /**< Address of buffer */ |
394 | } drm_buf_pub_t; | 394 | }; |
395 | 395 | ||
396 | /** | 396 | /** |
397 | * DRM_IOCTL_MAP_BUFS ioctl argument type. | 397 | * DRM_IOCTL_MAP_BUFS ioctl argument type. |
398 | */ | 398 | */ |
399 | typedef struct drm_buf_map { | 399 | struct drm_buf_map { |
400 | int count; /**< Length of the buffer list */ | 400 | int count; /**< Length of the buffer list */ |
401 | void __user *virtual; /**< Mmap'd area in user-virtual */ | 401 | void __user *virtual; /**< Mmap'd area in user-virtual */ |
402 | drm_buf_pub_t __user *list; /**< Buffer information */ | 402 | struct drm_buf_pub __user *list; /**< Buffer information */ |
403 | } drm_buf_map_t; | 403 | }; |
404 | 404 | ||
405 | /** | 405 | /** |
406 | * DRM_IOCTL_DMA ioctl argument type. | 406 | * DRM_IOCTL_DMA ioctl argument type. |
@@ -409,48 +409,48 @@ typedef struct drm_buf_map { | |||
409 | * | 409 | * |
410 | * \sa drmDMA(). | 410 | * \sa drmDMA(). |
411 | */ | 411 | */ |
412 | typedef struct drm_dma { | 412 | struct drm_dma { |
413 | int context; /**< Context handle */ | 413 | int context; /**< Context handle */ |
414 | int send_count; /**< Number of buffers to send */ | 414 | int send_count; /**< Number of buffers to send */ |
415 | int __user *send_indices; /**< List of handles to buffers */ | 415 | int __user *send_indices; /**< List of handles to buffers */ |
416 | int __user *send_sizes; /**< Lengths of data to send */ | 416 | int __user *send_sizes; /**< Lengths of data to send */ |
417 | drm_dma_flags_t flags; /**< Flags */ | 417 | enum drm_dma_flags flags; /**< Flags */ |
418 | int request_count; /**< Number of buffers requested */ | 418 | int request_count; /**< Number of buffers requested */ |
419 | int request_size; /**< Desired size for buffers */ | 419 | int request_size; /**< Desired size for buffers */ |
420 | int __user *request_indices; /**< Buffer information */ | 420 | int __user *request_indices; /**< Buffer information */ |
421 | int __user *request_sizes; | 421 | int __user *request_sizes; |
422 | int granted_count; /**< Number of buffers granted */ | 422 | int granted_count; /**< Number of buffers granted */ |
423 | } drm_dma_t; | 423 | }; |
424 | 424 | ||
425 | typedef enum { | 425 | enum drm_ctx_flags { |
426 | _DRM_CONTEXT_PRESERVED = 0x01, | 426 | _DRM_CONTEXT_PRESERVED = 0x01, |
427 | _DRM_CONTEXT_2DONLY = 0x02 | 427 | _DRM_CONTEXT_2DONLY = 0x02 |
428 | } drm_ctx_flags_t; | 428 | }; |
429 | 429 | ||
430 | /** | 430 | /** |
431 | * DRM_IOCTL_ADD_CTX ioctl argument type. | 431 | * DRM_IOCTL_ADD_CTX ioctl argument type. |
432 | * | 432 | * |
433 | * \sa drmCreateContext() and drmDestroyContext(). | 433 | * \sa drmCreateContext() and drmDestroyContext(). |
434 | */ | 434 | */ |
435 | typedef struct drm_ctx { | 435 | struct drm_ctx { |
436 | drm_context_t handle; | 436 | drm_context_t handle; |
437 | drm_ctx_flags_t flags; | 437 | enum drm_ctx_flags flags; |
438 | } drm_ctx_t; | 438 | }; |
439 | 439 | ||
440 | /** | 440 | /** |
441 | * DRM_IOCTL_RES_CTX ioctl argument type. | 441 | * DRM_IOCTL_RES_CTX ioctl argument type. |
442 | */ | 442 | */ |
443 | typedef struct drm_ctx_res { | 443 | struct drm_ctx_res { |
444 | int count; | 444 | int count; |
445 | drm_ctx_t __user *contexts; | 445 | struct drm_ctx __user *contexts; |
446 | } drm_ctx_res_t; | 446 | }; |
447 | 447 | ||
448 | /** | 448 | /** |
449 | * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. | 449 | * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. |
450 | */ | 450 | */ |
451 | typedef struct drm_draw { | 451 | struct drm_draw { |
452 | drm_drawable_t handle; | 452 | drm_drawable_t handle; |
453 | } drm_draw_t; | 453 | }; |
454 | 454 | ||
455 | /** | 455 | /** |
456 | * DRM_IOCTL_UPDATE_DRAW ioctl argument type. | 456 | * DRM_IOCTL_UPDATE_DRAW ioctl argument type. |
@@ -459,52 +459,52 @@ typedef enum { | |||
459 | DRM_DRAWABLE_CLIPRECTS, | 459 | DRM_DRAWABLE_CLIPRECTS, |
460 | } drm_drawable_info_type_t; | 460 | } drm_drawable_info_type_t; |
461 | 461 | ||
462 | typedef struct drm_update_draw { | 462 | struct drm_update_draw { |
463 | drm_drawable_t handle; | 463 | drm_drawable_t handle; |
464 | unsigned int type; | 464 | unsigned int type; |
465 | unsigned int num; | 465 | unsigned int num; |
466 | unsigned long long data; | 466 | unsigned long long data; |
467 | } drm_update_draw_t; | 467 | }; |
468 | 468 | ||
469 | /** | 469 | /** |
470 | * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. | 470 | * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. |
471 | */ | 471 | */ |
472 | typedef struct drm_auth { | 472 | struct drm_auth { |
473 | drm_magic_t magic; | 473 | drm_magic_t magic; |
474 | } drm_auth_t; | 474 | }; |
475 | 475 | ||
476 | /** | 476 | /** |
477 | * DRM_IOCTL_IRQ_BUSID ioctl argument type. | 477 | * DRM_IOCTL_IRQ_BUSID ioctl argument type. |
478 | * | 478 | * |
479 | * \sa drmGetInterruptFromBusID(). | 479 | * \sa drmGetInterruptFromBusID(). |
480 | */ | 480 | */ |
481 | typedef struct drm_irq_busid { | 481 | struct drm_irq_busid { |
482 | int irq; /**< IRQ number */ | 482 | int irq; /**< IRQ number */ |
483 | int busnum; /**< bus number */ | 483 | int busnum; /**< bus number */ |
484 | int devnum; /**< device number */ | 484 | int devnum; /**< device number */ |
485 | int funcnum; /**< function number */ | 485 | int funcnum; /**< function number */ |
486 | } drm_irq_busid_t; | 486 | }; |
487 | 487 | ||
488 | typedef enum { | 488 | enum drm_vblank_seq_type { |
489 | _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ | 489 | _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ |
490 | _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ | 490 | _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ |
491 | _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ | 491 | _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ |
492 | _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ | 492 | _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ |
493 | _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */ | 493 | _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */ |
494 | } drm_vblank_seq_type_t; | 494 | }; |
495 | 495 | ||
496 | #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) | 496 | #define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) |
497 | #define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \ | 497 | #define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \ |
498 | _DRM_VBLANK_NEXTONMISS) | 498 | _DRM_VBLANK_NEXTONMISS) |
499 | 499 | ||
500 | struct drm_wait_vblank_request { | 500 | struct drm_wait_vblank_request { |
501 | drm_vblank_seq_type_t type; | 501 | enum drm_vblank_seq_type type; |
502 | unsigned int sequence; | 502 | unsigned int sequence; |
503 | unsigned long signal; | 503 | unsigned long signal; |
504 | }; | 504 | }; |
505 | 505 | ||
506 | struct drm_wait_vblank_reply { | 506 | struct drm_wait_vblank_reply { |
507 | drm_vblank_seq_type_t type; | 507 | enum drm_vblank_seq_type type; |
508 | unsigned int sequence; | 508 | unsigned int sequence; |
509 | long tval_sec; | 509 | long tval_sec; |
510 | long tval_usec; | 510 | long tval_usec; |
@@ -515,41 +515,41 @@ struct drm_wait_vblank_reply { | |||
515 | * | 515 | * |
516 | * \sa drmWaitVBlank(). | 516 | * \sa drmWaitVBlank(). |
517 | */ | 517 | */ |
518 | typedef union drm_wait_vblank { | 518 | union drm_wait_vblank { |
519 | struct drm_wait_vblank_request request; | 519 | struct drm_wait_vblank_request request; |
520 | struct drm_wait_vblank_reply reply; | 520 | struct drm_wait_vblank_reply reply; |
521 | } drm_wait_vblank_t; | 521 | }; |
522 | 522 | ||
523 | /** | 523 | /** |
524 | * DRM_IOCTL_AGP_ENABLE ioctl argument type. | 524 | * DRM_IOCTL_AGP_ENABLE ioctl argument type. |
525 | * | 525 | * |
526 | * \sa drmAgpEnable(). | 526 | * \sa drmAgpEnable(). |
527 | */ | 527 | */ |
528 | typedef struct drm_agp_mode { | 528 | struct drm_agp_mode { |
529 | unsigned long mode; /**< AGP mode */ | 529 | unsigned long mode; /**< AGP mode */ |
530 | } drm_agp_mode_t; | 530 | }; |
531 | 531 | ||
532 | /** | 532 | /** |
533 | * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type. | 533 | * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type. |
534 | * | 534 | * |
535 | * \sa drmAgpAlloc() and drmAgpFree(). | 535 | * \sa drmAgpAlloc() and drmAgpFree(). |
536 | */ | 536 | */ |
537 | typedef struct drm_agp_buffer { | 537 | struct drm_agp_buffer { |
538 | unsigned long size; /**< In bytes -- will round to page boundary */ | 538 | unsigned long size; /**< In bytes -- will round to page boundary */ |
539 | unsigned long handle; /**< Used for binding / unbinding */ | 539 | unsigned long handle; /**< Used for binding / unbinding */ |
540 | unsigned long type; /**< Type of memory to allocate */ | 540 | unsigned long type; /**< Type of memory to allocate */ |
541 | unsigned long physical; /**< Physical used by i810 */ | 541 | unsigned long physical; /**< Physical used by i810 */ |
542 | } drm_agp_buffer_t; | 542 | }; |
543 | 543 | ||
544 | /** | 544 | /** |
545 | * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type. | 545 | * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type. |
546 | * | 546 | * |
547 | * \sa drmAgpBind() and drmAgpUnbind(). | 547 | * \sa drmAgpBind() and drmAgpUnbind(). |
548 | */ | 548 | */ |
549 | typedef struct drm_agp_binding { | 549 | struct drm_agp_binding { |
550 | unsigned long handle; /**< From drm_agp_buffer */ | 550 | unsigned long handle; /**< From drm_agp_buffer */ |
551 | unsigned long offset; /**< In bytes -- will round to page boundary */ | 551 | unsigned long offset; /**< In bytes -- will round to page boundary */ |
552 | } drm_agp_binding_t; | 552 | }; |
553 | 553 | ||
554 | /** | 554 | /** |
555 | * DRM_IOCTL_AGP_INFO ioctl argument type. | 555 | * DRM_IOCTL_AGP_INFO ioctl argument type. |
@@ -558,7 +558,7 @@ typedef struct drm_agp_binding { | |||
558 | * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(), | 558 | * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(), |
559 | * drmAgpVendorId() and drmAgpDeviceId(). | 559 | * drmAgpVendorId() and drmAgpDeviceId(). |
560 | */ | 560 | */ |
561 | typedef struct drm_agp_info { | 561 | struct drm_agp_info { |
562 | int agp_version_major; | 562 | int agp_version_major; |
563 | int agp_version_minor; | 563 | int agp_version_minor; |
564 | unsigned long mode; | 564 | unsigned long mode; |
@@ -570,25 +570,25 @@ typedef struct drm_agp_info { | |||
570 | /* PCI information */ | 570 | /* PCI information */ |
571 | unsigned short id_vendor; | 571 | unsigned short id_vendor; |
572 | unsigned short id_device; | 572 | unsigned short id_device; |
573 | } drm_agp_info_t; | 573 | }; |
574 | 574 | ||
575 | /** | 575 | /** |
576 | * DRM_IOCTL_SG_ALLOC ioctl argument type. | 576 | * DRM_IOCTL_SG_ALLOC ioctl argument type. |
577 | */ | 577 | */ |
578 | typedef struct drm_scatter_gather { | 578 | struct drm_scatter_gather { |
579 | unsigned long size; /**< In bytes -- will round to page boundary */ | 579 | unsigned long size; /**< In bytes -- will round to page boundary */ |
580 | unsigned long handle; /**< Used for mapping / unmapping */ | 580 | unsigned long handle; /**< Used for mapping / unmapping */ |
581 | } drm_scatter_gather_t; | 581 | }; |
582 | 582 | ||
583 | /** | 583 | /** |
584 | * DRM_IOCTL_SET_VERSION ioctl argument type. | 584 | * DRM_IOCTL_SET_VERSION ioctl argument type. |
585 | */ | 585 | */ |
586 | typedef struct drm_set_version { | 586 | struct drm_set_version { |
587 | int drm_di_major; | 587 | int drm_di_major; |
588 | int drm_di_minor; | 588 | int drm_di_minor; |
589 | int drm_dd_major; | 589 | int drm_dd_major; |
590 | int drm_dd_minor; | 590 | int drm_dd_minor; |
591 | } drm_set_version_t; | 591 | }; |
592 | 592 | ||
593 | #define DRM_IOCTL_BASE 'd' | 593 | #define DRM_IOCTL_BASE 'd' |
594 | #define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr) | 594 | #define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr) |
@@ -596,61 +596,61 @@ typedef struct drm_set_version { | |||
596 | #define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type) | 596 | #define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type) |
597 | #define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type) | 597 | #define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type) |
598 | 598 | ||
599 | #define DRM_IOCTL_VERSION DRM_IOWR(0x00, drm_version_t) | 599 | #define DRM_IOCTL_VERSION DRM_IOWR(0x00, struct drm_version) |
600 | #define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, drm_unique_t) | 600 | #define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, struct drm_unique) |
601 | #define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, drm_auth_t) | 601 | #define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, struct drm_auth) |
602 | #define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, drm_irq_busid_t) | 602 | #define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, struct drm_irq_busid) |
603 | #define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, drm_map_t) | 603 | #define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, struct drm_map) |
604 | #define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, drm_client_t) | 604 | #define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, struct drm_client) |
605 | #define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, drm_stats_t) | 605 | #define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats) |
606 | #define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, drm_set_version_t) | 606 | #define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version) |
607 | 607 | ||
608 | #define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, drm_unique_t) | 608 | #define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique) |
609 | #define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, drm_auth_t) | 609 | #define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth) |
610 | #define DRM_IOCTL_BLOCK DRM_IOWR(0x12, drm_block_t) | 610 | #define DRM_IOCTL_BLOCK DRM_IOWR(0x12, struct drm_block) |
611 | #define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, drm_block_t) | 611 | #define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, struct drm_block) |
612 | #define DRM_IOCTL_CONTROL DRM_IOW( 0x14, drm_control_t) | 612 | #define DRM_IOCTL_CONTROL DRM_IOW( 0x14, struct drm_control) |
613 | #define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, drm_map_t) | 613 | #define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, struct drm_map) |
614 | #define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, drm_buf_desc_t) | 614 | #define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc) |
615 | #define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, drm_buf_desc_t) | 615 | #define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc) |
616 | #define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, drm_buf_info_t) | 616 | #define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, struct drm_buf_info) |
617 | #define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, drm_buf_map_t) | 617 | #define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, struct drm_buf_map) |
618 | #define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, drm_buf_free_t) | 618 | #define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, struct drm_buf_free) |
619 | 619 | ||
620 | #define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, drm_map_t) | 620 | #define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, struct drm_map) |
621 | 621 | ||
622 | #define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, drm_ctx_priv_map_t) | 622 | #define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, struct drm_ctx_priv_map) |
623 | #define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, drm_ctx_priv_map_t) | 623 | #define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, struct drm_ctx_priv_map) |
624 | 624 | ||
625 | #define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, drm_ctx_t) | 625 | #define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, struct drm_ctx) |
626 | #define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, drm_ctx_t) | 626 | #define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, struct drm_ctx) |
627 | #define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, drm_ctx_t) | 627 | #define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, struct drm_ctx) |
628 | #define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, drm_ctx_t) | 628 | #define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, struct drm_ctx) |
629 | #define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, drm_ctx_t) | 629 | #define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, struct drm_ctx) |
630 | #define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, drm_ctx_t) | 630 | #define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, struct drm_ctx) |
631 | #define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, drm_ctx_res_t) | 631 | #define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, struct drm_ctx_res) |
632 | #define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, drm_draw_t) | 632 | #define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, struct drm_draw) |
633 | #define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, drm_draw_t) | 633 | #define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, struct drm_draw) |
634 | #define DRM_IOCTL_DMA DRM_IOWR(0x29, drm_dma_t) | 634 | #define DRM_IOCTL_DMA DRM_IOWR(0x29, struct drm_dma) |
635 | #define DRM_IOCTL_LOCK DRM_IOW( 0x2a, drm_lock_t) | 635 | #define DRM_IOCTL_LOCK DRM_IOW( 0x2a, struct drm_lock) |
636 | #define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, drm_lock_t) | 636 | #define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock) |
637 | #define DRM_IOCTL_FINISH DRM_IOW( 0x2c, drm_lock_t) | 637 | #define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock) |
638 | 638 | ||
639 | #define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30) | 639 | #define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30) |
640 | #define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31) | 640 | #define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31) |
641 | #define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, drm_agp_mode_t) | 641 | #define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode) |
642 | #define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, drm_agp_info_t) | 642 | #define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, struct drm_agp_info) |
643 | #define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, drm_agp_buffer_t) | 643 | #define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, struct drm_agp_buffer) |
644 | #define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, drm_agp_buffer_t) | 644 | #define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, struct drm_agp_buffer) |
645 | #define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, drm_agp_binding_t) | 645 | #define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding) |
646 | #define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, drm_agp_binding_t) | 646 | #define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding) |
647 | 647 | ||
648 | #define DRM_IOCTL_SG_ALLOC DRM_IOW( 0x38, drm_scatter_gather_t) | 648 | #define DRM_IOCTL_SG_ALLOC DRM_IOW( 0x38, struct drm_scatter_gather) |
649 | #define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, drm_scatter_gather_t) | 649 | #define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather) |
650 | 650 | ||
651 | #define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, drm_wait_vblank_t) | 651 | #define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank) |
652 | 652 | ||
653 | #define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, drm_update_draw_t) | 653 | #define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw) |
654 | 654 | ||
655 | /** | 655 | /** |
656 | * Device specific ioctls should only be in their respective headers | 656 | * Device specific ioctls should only be in their respective headers |
@@ -663,4 +663,49 @@ typedef struct drm_set_version { | |||
663 | #define DRM_COMMAND_BASE 0x40 | 663 | #define DRM_COMMAND_BASE 0x40 |
664 | #define DRM_COMMAND_END 0xA0 | 664 | #define DRM_COMMAND_END 0xA0 |
665 | 665 | ||
666 | /* typedef area */ | ||
667 | #ifndef __KERNEL__ | ||
668 | typedef struct drm_clip_rect drm_clip_rect_t; | ||
669 | typedef struct drm_drawable_info drm_drawable_info_t; | ||
670 | typedef struct drm_tex_region drm_tex_region_t; | ||
671 | typedef struct drm_hw_lock drm_hw_lock_t; | ||
672 | typedef struct drm_version drm_version_t; | ||
673 | typedef struct drm_unique drm_unique_t; | ||
674 | typedef struct drm_list drm_list_t; | ||
675 | typedef struct drm_block drm_block_t; | ||
676 | typedef struct drm_control drm_control_t; | ||
677 | typedef enum drm_map_type drm_map_type_t; | ||
678 | typedef enum drm_map_flags drm_map_flags_t; | ||
679 | typedef struct drm_ctx_priv_map drm_ctx_priv_map_t; | ||
680 | typedef struct drm_map drm_map_t; | ||
681 | typedef struct drm_client drm_client_t; | ||
682 | typedef enum drm_stat_type drm_stat_type_t; | ||
683 | typedef struct drm_stats drm_stats_t; | ||
684 | typedef enum drm_lock_flags drm_lock_flags_t; | ||
685 | typedef struct drm_lock drm_lock_t; | ||
686 | typedef enum drm_dma_flags drm_dma_flags_t; | ||
687 | typedef struct drm_buf_desc drm_buf_desc_t; | ||
688 | typedef struct drm_buf_info drm_buf_info_t; | ||
689 | typedef struct drm_buf_free drm_buf_free_t; | ||
690 | typedef struct drm_buf_pub drm_buf_pub_t; | ||
691 | typedef struct drm_buf_map drm_buf_map_t; | ||
692 | typedef struct drm_dma drm_dma_t; | ||
693 | typedef union drm_wait_vblank drm_wait_vblank_t; | ||
694 | typedef struct drm_agp_mode drm_agp_mode_t; | ||
695 | typedef enum drm_ctx_flags drm_ctx_flags_t; | ||
696 | typedef struct drm_ctx drm_ctx_t; | ||
697 | typedef struct drm_ctx_res drm_ctx_res_t; | ||
698 | typedef struct drm_draw drm_draw_t; | ||
699 | typedef struct drm_update_draw drm_update_draw_t; | ||
700 | typedef struct drm_auth drm_auth_t; | ||
701 | typedef struct drm_irq_busid drm_irq_busid_t; | ||
702 | typedef enum drm_vblank_seq_type drm_vblank_seq_type_t; | ||
703 | |||
704 | typedef struct drm_agp_buffer drm_agp_buffer_t; | ||
705 | typedef struct drm_agp_binding drm_agp_binding_t; | ||
706 | typedef struct drm_agp_info drm_agp_info_t; | ||
707 | typedef struct drm_scatter_gather drm_scatter_gather_t; | ||
708 | typedef struct drm_set_version drm_set_version_t; | ||
709 | #endif | ||
710 | |||
666 | #endif | 711 | #endif |
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h index d494315752a2..1277693e9ca4 100644 --- a/drivers/char/drm/drmP.h +++ b/drivers/char/drm/drmP.h | |||
@@ -274,32 +274,23 @@ typedef struct drm_ioctl_desc { | |||
274 | int flags; | 274 | int flags; |
275 | } drm_ioctl_desc_t; | 275 | } drm_ioctl_desc_t; |
276 | 276 | ||
277 | typedef struct drm_devstate { | 277 | struct drm_magic_entry { |
278 | pid_t owner; /**< X server pid holding x_lock */ | ||
279 | } drm_devstate_t; | ||
280 | |||
281 | typedef struct drm_magic_entry { | ||
282 | drm_hash_item_t hash_item; | ||
283 | struct list_head head; | 278 | struct list_head head; |
279 | struct drm_hash_item hash_item; | ||
284 | struct drm_file *priv; | 280 | struct drm_file *priv; |
285 | struct drm_magic_entry *next; | 281 | struct drm_magic_entry *next; |
286 | } drm_magic_entry_t; | 282 | }; |
287 | |||
288 | typedef struct drm_magic_head { | ||
289 | struct drm_magic_entry *head; | ||
290 | struct drm_magic_entry *tail; | ||
291 | } drm_magic_head_t; | ||
292 | 283 | ||
293 | typedef struct drm_vma_entry { | 284 | struct drm_vma_entry { |
285 | struct list_head head; | ||
294 | struct vm_area_struct *vma; | 286 | struct vm_area_struct *vma; |
295 | struct drm_vma_entry *next; | ||
296 | pid_t pid; | 287 | pid_t pid; |
297 | } drm_vma_entry_t; | 288 | }; |
298 | 289 | ||
299 | /** | 290 | /** |
300 | * DMA buffer. | 291 | * DMA buffer. |
301 | */ | 292 | */ |
302 | typedef struct drm_buf { | 293 | struct drm_buf { |
303 | int idx; /**< Index into master buflist */ | 294 | int idx; /**< Index into master buflist */ |
304 | int total; /**< Buffer size */ | 295 | int total; /**< Buffer size */ |
305 | int order; /**< log-base-2(total) */ | 296 | int order; /**< log-base-2(total) */ |
@@ -325,30 +316,30 @@ typedef struct drm_buf { | |||
325 | 316 | ||
326 | int dev_priv_size; /**< Size of buffer private storage */ | 317 | int dev_priv_size; /**< Size of buffer private storage */ |
327 | void *dev_private; /**< Per-buffer private storage */ | 318 | void *dev_private; /**< Per-buffer private storage */ |
328 | } drm_buf_t; | 319 | }; |
329 | 320 | ||
330 | /** bufs is one longer than it has to be */ | 321 | /** bufs is one longer than it has to be */ |
331 | typedef struct drm_waitlist { | 322 | struct drm_waitlist { |
332 | int count; /**< Number of possible buffers */ | 323 | int count; /**< Number of possible buffers */ |
333 | drm_buf_t **bufs; /**< List of pointers to buffers */ | 324 | struct drm_buf **bufs; /**< List of pointers to buffers */ |
334 | drm_buf_t **rp; /**< Read pointer */ | 325 | struct drm_buf **rp; /**< Read pointer */ |
335 | drm_buf_t **wp; /**< Write pointer */ | 326 | struct drm_buf **wp; /**< Write pointer */ |
336 | drm_buf_t **end; /**< End pointer */ | 327 | struct drm_buf **end; /**< End pointer */ |
337 | spinlock_t read_lock; | 328 | spinlock_t read_lock; |
338 | spinlock_t write_lock; | 329 | spinlock_t write_lock; |
339 | } drm_waitlist_t; | 330 | }; |
340 | 331 | ||
341 | typedef struct drm_freelist { | 332 | struct drm_freelist { |
342 | int initialized; /**< Freelist in use */ | 333 | int initialized; /**< Freelist in use */ |
343 | atomic_t count; /**< Number of free buffers */ | 334 | atomic_t count; /**< Number of free buffers */ |
344 | drm_buf_t *next; /**< End pointer */ | 335 | struct drm_buf *next; /**< End pointer */ |
345 | 336 | ||
346 | wait_queue_head_t waiting; /**< Processes waiting on free bufs */ | 337 | wait_queue_head_t waiting; /**< Processes waiting on free bufs */ |
347 | int low_mark; /**< Low water mark */ | 338 | int low_mark; /**< Low water mark */ |
348 | int high_mark; /**< High water mark */ | 339 | int high_mark; /**< High water mark */ |
349 | atomic_t wfh; /**< If waiting for high mark */ | 340 | atomic_t wfh; /**< If waiting for high mark */ |
350 | spinlock_t lock; | 341 | spinlock_t lock; |
351 | } drm_freelist_t; | 342 | }; |
352 | 343 | ||
353 | typedef struct drm_dma_handle { | 344 | typedef struct drm_dma_handle { |
354 | dma_addr_t busaddr; | 345 | dma_addr_t busaddr; |
@@ -359,19 +350,19 @@ typedef struct drm_dma_handle { | |||
359 | /** | 350 | /** |
360 | * Buffer entry. There is one of this for each buffer size order. | 351 | * Buffer entry. There is one of this for each buffer size order. |
361 | */ | 352 | */ |
362 | typedef struct drm_buf_entry { | 353 | struct drm_buf_entry { |
363 | int buf_size; /**< size */ | 354 | int buf_size; /**< size */ |
364 | int buf_count; /**< number of buffers */ | 355 | int buf_count; /**< number of buffers */ |
365 | drm_buf_t *buflist; /**< buffer list */ | 356 | struct drm_buf *buflist; /**< buffer list */ |
366 | int seg_count; | 357 | int seg_count; |
367 | int page_order; | 358 | int page_order; |
368 | drm_dma_handle_t **seglist; | 359 | struct drm_dma_handle **seglist; |
369 | 360 | ||
370 | drm_freelist_t freelist; | 361 | struct drm_freelist freelist; |
371 | } drm_buf_entry_t; | 362 | }; |
372 | 363 | ||
373 | /** File private data */ | 364 | /** File private data */ |
374 | typedef struct drm_file { | 365 | struct drm_file { |
375 | int authenticated; | 366 | int authenticated; |
376 | int master; | 367 | int master; |
377 | int minor; | 368 | int minor; |
@@ -379,16 +370,15 @@ typedef struct drm_file { | |||
379 | uid_t uid; | 370 | uid_t uid; |
380 | drm_magic_t magic; | 371 | drm_magic_t magic; |
381 | unsigned long ioctl_count; | 372 | unsigned long ioctl_count; |
382 | struct drm_file *next; | 373 | struct list_head lhead; |
383 | struct drm_file *prev; | ||
384 | struct drm_head *head; | 374 | struct drm_head *head; |
385 | int remove_auth_on_close; | 375 | int remove_auth_on_close; |
386 | unsigned long lock_count; | 376 | unsigned long lock_count; |
387 | void *driver_priv; | 377 | void *driver_priv; |
388 | } drm_file_t; | 378 | }; |
389 | 379 | ||
390 | /** Wait queue */ | 380 | /** Wait queue */ |
391 | typedef struct drm_queue { | 381 | struct drm_queue { |
392 | atomic_t use_count; /**< Outstanding uses (+1) */ | 382 | atomic_t use_count; /**< Outstanding uses (+1) */ |
393 | atomic_t finalization; /**< Finalization in progress */ | 383 | atomic_t finalization; /**< Finalization in progress */ |
394 | atomic_t block_count; /**< Count of processes waiting */ | 384 | atomic_t block_count; /**< Count of processes waiting */ |
@@ -401,16 +391,16 @@ typedef struct drm_queue { | |||
401 | atomic_t total_flushed; /**< Total flushes statistic */ | 391 | atomic_t total_flushed; /**< Total flushes statistic */ |
402 | atomic_t total_locks; /**< Total locks statistics */ | 392 | atomic_t total_locks; /**< Total locks statistics */ |
403 | #endif | 393 | #endif |
404 | drm_ctx_flags_t flags; /**< Context preserving and 2D-only */ | 394 | enum drm_ctx_flags flags; /**< Context preserving and 2D-only */ |
405 | drm_waitlist_t waitlist; /**< Pending buffers */ | 395 | struct drm_waitlist waitlist; /**< Pending buffers */ |
406 | wait_queue_head_t flush_queue; /**< Processes waiting until flush */ | 396 | wait_queue_head_t flush_queue; /**< Processes waiting until flush */ |
407 | } drm_queue_t; | 397 | }; |
408 | 398 | ||
409 | /** | 399 | /** |
410 | * Lock data. | 400 | * Lock data. |
411 | */ | 401 | */ |
412 | typedef struct drm_lock_data { | 402 | struct drm_lock_data { |
413 | drm_hw_lock_t *hw_lock; /**< Hardware lock */ | 403 | struct drm_hw_lock *hw_lock; /**< Hardware lock */ |
414 | struct file *filp; /**< File descr of lock holder (0=kernel) */ | 404 | struct file *filp; /**< File descr of lock holder (0=kernel) */ |
415 | wait_queue_head_t lock_queue; /**< Queue of blocked processes */ | 405 | wait_queue_head_t lock_queue; /**< Queue of blocked processes */ |
416 | unsigned long lock_time; /**< Time of last lock in jiffies */ | 406 | unsigned long lock_time; /**< Time of last lock in jiffies */ |
@@ -418,16 +408,16 @@ typedef struct drm_lock_data { | |||
418 | uint32_t kernel_waiters; | 408 | uint32_t kernel_waiters; |
419 | uint32_t user_waiters; | 409 | uint32_t user_waiters; |
420 | int idle_has_lock; | 410 | int idle_has_lock; |
421 | } drm_lock_data_t; | 411 | }; |
422 | 412 | ||
423 | /** | 413 | /** |
424 | * DMA data. | 414 | * DMA data. |
425 | */ | 415 | */ |
426 | typedef struct drm_device_dma { | 416 | struct drm_device_dma { |
427 | 417 | ||
428 | drm_buf_entry_t bufs[DRM_MAX_ORDER + 1]; /**< buffers, grouped by their size order */ | 418 | struct drm_buf_entry bufs[DRM_MAX_ORDER + 1]; /**< buffers, grouped by their size order */ |
429 | int buf_count; /**< total number of buffers */ | 419 | int buf_count; /**< total number of buffers */ |
430 | drm_buf_t **buflist; /**< Vector of pointers into drm_device_dma::bufs */ | 420 | struct drm_buf **buflist; /**< Vector of pointers into drm_device_dma::bufs */ |
431 | int seg_count; | 421 | int seg_count; |
432 | int page_count; /**< number of pages */ | 422 | int page_count; /**< number of pages */ |
433 | unsigned long *pagelist; /**< page list */ | 423 | unsigned long *pagelist; /**< page list */ |
@@ -439,28 +429,27 @@ typedef struct drm_device_dma { | |||
439 | _DRM_DMA_USE_PCI_RO = 0x08 | 429 | _DRM_DMA_USE_PCI_RO = 0x08 |
440 | } flags; | 430 | } flags; |
441 | 431 | ||
442 | } drm_device_dma_t; | 432 | }; |
443 | 433 | ||
444 | /** | 434 | /** |
445 | * AGP memory entry. Stored as a doubly linked list. | 435 | * AGP memory entry. Stored as a doubly linked list. |
446 | */ | 436 | */ |
447 | typedef struct drm_agp_mem { | 437 | struct drm_agp_mem { |
448 | unsigned long handle; /**< handle */ | 438 | unsigned long handle; /**< handle */ |
449 | DRM_AGP_MEM *memory; | 439 | DRM_AGP_MEM *memory; |
450 | unsigned long bound; /**< address */ | 440 | unsigned long bound; /**< address */ |
451 | int pages; | 441 | int pages; |
452 | struct drm_agp_mem *prev; /**< previous entry */ | 442 | struct list_head head; |
453 | struct drm_agp_mem *next; /**< next entry */ | 443 | }; |
454 | } drm_agp_mem_t; | ||
455 | 444 | ||
456 | /** | 445 | /** |
457 | * AGP data. | 446 | * AGP data. |
458 | * | 447 | * |
459 | * \sa drm_agp_init() and drm_device::agp. | 448 | * \sa drm_agp_init() and drm_device::agp. |
460 | */ | 449 | */ |
461 | typedef struct drm_agp_head { | 450 | struct drm_agp_head { |
462 | DRM_AGP_KERN agp_info; /**< AGP device information */ | 451 | DRM_AGP_KERN agp_info; /**< AGP device information */ |
463 | drm_agp_mem_t *memory; /**< memory entries */ | 452 | struct list_head memory; |
464 | unsigned long mode; /**< AGP mode */ | 453 | unsigned long mode; /**< AGP mode */ |
465 | struct agp_bridge_data *bridge; | 454 | struct agp_bridge_data *bridge; |
466 | int enabled; /**< whether the AGP bus as been enabled */ | 455 | int enabled; /**< whether the AGP bus as been enabled */ |
@@ -469,51 +458,51 @@ typedef struct drm_agp_head { | |||
469 | int agp_mtrr; | 458 | int agp_mtrr; |
470 | int cant_use_aperture; | 459 | int cant_use_aperture; |
471 | unsigned long page_mask; | 460 | unsigned long page_mask; |
472 | } drm_agp_head_t; | 461 | }; |
473 | 462 | ||
474 | /** | 463 | /** |
475 | * Scatter-gather memory. | 464 | * Scatter-gather memory. |
476 | */ | 465 | */ |
477 | typedef struct drm_sg_mem { | 466 | struct drm_sg_mem { |
478 | unsigned long handle; | 467 | unsigned long handle; |
479 | void *virtual; | 468 | void *virtual; |
480 | int pages; | 469 | int pages; |
481 | struct page **pagelist; | 470 | struct page **pagelist; |
482 | dma_addr_t *busaddr; | 471 | dma_addr_t *busaddr; |
483 | } drm_sg_mem_t; | 472 | }; |
484 | 473 | ||
485 | typedef struct drm_sigdata { | 474 | struct drm_sigdata { |
486 | int context; | 475 | int context; |
487 | drm_hw_lock_t *lock; | 476 | struct drm_hw_lock *lock; |
488 | } drm_sigdata_t; | 477 | }; |
489 | 478 | ||
490 | /** | 479 | /** |
491 | * Mappings list | 480 | * Mappings list |
492 | */ | 481 | */ |
493 | typedef struct drm_map_list { | 482 | struct drm_map_list { |
494 | struct list_head head; /**< list head */ | 483 | struct list_head head; /**< list head */ |
495 | drm_hash_item_t hash; | 484 | struct drm_hash_item hash; |
496 | drm_map_t *map; /**< mapping */ | 485 | struct drm_map *map; /**< mapping */ |
497 | unsigned int user_token; | 486 | unsigned int user_token; |
498 | } drm_map_list_t; | 487 | }; |
499 | 488 | ||
500 | typedef drm_map_t drm_local_map_t; | 489 | typedef struct drm_map drm_local_map_t; |
501 | 490 | ||
502 | /** | 491 | /** |
503 | * Context handle list | 492 | * Context handle list |
504 | */ | 493 | */ |
505 | typedef struct drm_ctx_list { | 494 | struct drm_ctx_list { |
506 | struct list_head head; /**< list head */ | 495 | struct list_head head; /**< list head */ |
507 | drm_context_t handle; /**< context handle */ | 496 | drm_context_t handle; /**< context handle */ |
508 | drm_file_t *tag; /**< associated fd private data */ | 497 | struct drm_file *tag; /**< associated fd private data */ |
509 | } drm_ctx_list_t; | 498 | }; |
510 | 499 | ||
511 | typedef struct drm_vbl_sig { | 500 | struct drm_vbl_sig { |
512 | struct list_head head; | 501 | struct list_head head; |
513 | unsigned int sequence; | 502 | unsigned int sequence; |
514 | struct siginfo info; | 503 | struct siginfo info; |
515 | struct task_struct *task; | 504 | struct task_struct *task; |
516 | } drm_vbl_sig_t; | 505 | }; |
517 | 506 | ||
518 | /* location of GART table */ | 507 | /* location of GART table */ |
519 | #define DRM_ATI_GART_MAIN 1 | 508 | #define DRM_ATI_GART_MAIN 1 |
@@ -523,19 +512,19 @@ typedef struct drm_vbl_sig { | |||
523 | #define DRM_ATI_GART_PCIE 2 | 512 | #define DRM_ATI_GART_PCIE 2 |
524 | #define DRM_ATI_GART_IGP 3 | 513 | #define DRM_ATI_GART_IGP 3 |
525 | 514 | ||
526 | typedef struct ati_pcigart_info { | 515 | struct drm_ati_pcigart_info { |
527 | int gart_table_location; | 516 | int gart_table_location; |
528 | int gart_reg_if; | 517 | int gart_reg_if; |
529 | void *addr; | 518 | void *addr; |
530 | dma_addr_t bus_addr; | 519 | dma_addr_t bus_addr; |
531 | drm_local_map_t mapping; | 520 | drm_local_map_t mapping; |
532 | int table_size; | 521 | int table_size; |
533 | } drm_ati_pcigart_info; | 522 | }; |
534 | 523 | ||
535 | /* | 524 | /* |
536 | * Generic memory manager structs | 525 | * Generic memory manager structs |
537 | */ | 526 | */ |
538 | typedef struct drm_mm_node { | 527 | struct drm_mm_node { |
539 | struct list_head fl_entry; | 528 | struct list_head fl_entry; |
540 | struct list_head ml_entry; | 529 | struct list_head ml_entry; |
541 | int free; | 530 | int free; |
@@ -543,12 +532,12 @@ typedef struct drm_mm_node { | |||
543 | unsigned long size; | 532 | unsigned long size; |
544 | struct drm_mm *mm; | 533 | struct drm_mm *mm; |
545 | void *private; | 534 | void *private; |
546 | } drm_mm_node_t; | 535 | }; |
547 | 536 | ||
548 | typedef struct drm_mm { | 537 | struct drm_mm { |
549 | struct list_head fl_entry; | 538 | struct list_head fl_entry; |
550 | struct list_head ml_entry; | 539 | struct list_head ml_entry; |
551 | } drm_mm_t; | 540 | }; |
552 | 541 | ||
553 | /** | 542 | /** |
554 | * DRM driver structure. This structure represent the common code for | 543 | * DRM driver structure. This structure represent the common code for |
@@ -560,21 +549,21 @@ struct drm_device; | |||
560 | struct drm_driver { | 549 | struct drm_driver { |
561 | int (*load) (struct drm_device *, unsigned long flags); | 550 | int (*load) (struct drm_device *, unsigned long flags); |
562 | int (*firstopen) (struct drm_device *); | 551 | int (*firstopen) (struct drm_device *); |
563 | int (*open) (struct drm_device *, drm_file_t *); | 552 | int (*open) (struct drm_device *, struct drm_file *); |
564 | void (*preclose) (struct drm_device *, struct file * filp); | 553 | void (*preclose) (struct drm_device *, struct file * filp); |
565 | void (*postclose) (struct drm_device *, drm_file_t *); | 554 | void (*postclose) (struct drm_device *, struct drm_file *); |
566 | void (*lastclose) (struct drm_device *); | 555 | void (*lastclose) (struct drm_device *); |
567 | int (*unload) (struct drm_device *); | 556 | int (*unload) (struct drm_device *); |
568 | int (*dma_ioctl) (DRM_IOCTL_ARGS); | 557 | int (*dma_ioctl) (DRM_IOCTL_ARGS); |
569 | void (*dma_ready) (struct drm_device *); | 558 | void (*dma_ready) (struct drm_device *); |
570 | int (*dma_quiescent) (struct drm_device *); | 559 | int (*dma_quiescent) (struct drm_device *); |
571 | int (*context_ctor) (struct drm_device * dev, int context); | 560 | int (*context_ctor) (struct drm_device *dev, int context); |
572 | int (*context_dtor) (struct drm_device * dev, int context); | 561 | int (*context_dtor) (struct drm_device *dev, int context); |
573 | int (*kernel_context_switch) (struct drm_device * dev, int old, | 562 | int (*kernel_context_switch) (struct drm_device *dev, int old, |
574 | int new); | 563 | int new); |
575 | void (*kernel_context_switch_unlock) (struct drm_device * dev); | 564 | void (*kernel_context_switch_unlock) (struct drm_device *dev); |
576 | int (*vblank_wait) (struct drm_device * dev, unsigned int *sequence); | 565 | int (*vblank_wait) (struct drm_device *dev, unsigned int *sequence); |
577 | int (*vblank_wait2) (struct drm_device * dev, unsigned int *sequence); | 566 | int (*vblank_wait2) (struct drm_device *dev, unsigned int *sequence); |
578 | int (*dri_library_name) (struct drm_device *dev, char *buf); | 567 | int (*dri_library_name) (struct drm_device *dev, char *buf); |
579 | 568 | ||
580 | /** | 569 | /** |
@@ -588,22 +577,23 @@ struct drm_driver { | |||
588 | * card is absolutely \b not AGP (return of 0), absolutely \b is AGP | 577 | * card is absolutely \b not AGP (return of 0), absolutely \b is AGP |
589 | * (return of 1), or may or may not be AGP (return of 2). | 578 | * (return of 1), or may or may not be AGP (return of 2). |
590 | */ | 579 | */ |
591 | int (*device_is_agp) (struct drm_device * dev); | 580 | int (*device_is_agp) (struct drm_device *dev); |
592 | 581 | ||
593 | /* these have to be filled in */ | 582 | /* these have to be filled in */ |
594 | 583 | ||
595 | irqreturn_t(*irq_handler) (DRM_IRQ_ARGS); | 584 | irqreturn_t(*irq_handler) (DRM_IRQ_ARGS); |
596 | void (*irq_preinstall) (struct drm_device * dev); | 585 | void (*irq_preinstall) (struct drm_device *dev); |
597 | void (*irq_postinstall) (struct drm_device * dev); | 586 | void (*irq_postinstall) (struct drm_device *dev); |
598 | void (*irq_uninstall) (struct drm_device * dev); | 587 | void (*irq_uninstall) (struct drm_device *dev); |
599 | void (*reclaim_buffers) (struct drm_device * dev, struct file * filp); | 588 | void (*reclaim_buffers) (struct drm_device *dev, struct file * filp); |
600 | void (*reclaim_buffers_locked) (struct drm_device *dev, | 589 | void (*reclaim_buffers_locked) (struct drm_device *dev, |
601 | struct file *filp); | 590 | struct file *filp); |
602 | void (*reclaim_buffers_idlelocked) (struct drm_device *dev, | 591 | void (*reclaim_buffers_idlelocked) (struct drm_device *dev, |
603 | struct file * filp); | 592 | struct file * filp); |
604 | unsigned long (*get_map_ofs) (drm_map_t * map); | 593 | unsigned long (*get_map_ofs) (struct drm_map * map); |
605 | unsigned long (*get_reg_ofs) (struct drm_device * dev); | 594 | unsigned long (*get_reg_ofs) (struct drm_device *dev); |
606 | void (*set_version) (struct drm_device * dev, drm_set_version_t * sv); | 595 | void (*set_version) (struct drm_device *dev, |
596 | struct drm_set_version *sv); | ||
607 | 597 | ||
608 | int major; | 598 | int major; |
609 | int minor; | 599 | int minor; |
@@ -625,19 +615,19 @@ struct drm_driver { | |||
625 | * that may contain multiple heads. Embed one per head of these in the | 615 | * that may contain multiple heads. Embed one per head of these in the |
626 | * private drm_device structure. | 616 | * private drm_device structure. |
627 | */ | 617 | */ |
628 | typedef struct drm_head { | 618 | struct drm_head { |
629 | int minor; /**< Minor device number */ | 619 | int minor; /**< Minor device number */ |
630 | struct drm_device *dev; | 620 | struct drm_device *dev; |
631 | struct proc_dir_entry *dev_root; /**< proc directory entry */ | 621 | struct proc_dir_entry *dev_root; /**< proc directory entry */ |
632 | dev_t device; /**< Device number for mknod */ | 622 | dev_t device; /**< Device number for mknod */ |
633 | struct class_device *dev_class; | 623 | struct class_device *dev_class; |
634 | } drm_head_t; | 624 | }; |
635 | 625 | ||
636 | /** | 626 | /** |
637 | * DRM device structure. This structure represent a complete card that | 627 | * DRM device structure. This structure represent a complete card that |
638 | * may contain multiple heads. | 628 | * may contain multiple heads. |
639 | */ | 629 | */ |
640 | typedef struct drm_device { | 630 | struct drm_device { |
641 | char *unique; /**< Unique identifier: e.g., busid */ | 631 | char *unique; /**< Unique identifier: e.g., busid */ |
642 | int unique_len; /**< Length of unique field */ | 632 | int unique_len; /**< Length of unique field */ |
643 | char *devname; /**< For /proc/interrupts */ | 633 | char *devname; /**< For /proc/interrupts */ |
@@ -663,35 +653,34 @@ typedef struct drm_device { | |||
663 | /** \name Performance counters */ | 653 | /** \name Performance counters */ |
664 | /*@{ */ | 654 | /*@{ */ |
665 | unsigned long counters; | 655 | unsigned long counters; |
666 | drm_stat_type_t types[15]; | 656 | enum drm_stat_type types[15]; |
667 | atomic_t counts[15]; | 657 | atomic_t counts[15]; |
668 | /*@} */ | 658 | /*@} */ |
669 | 659 | ||
670 | /** \name Authentication */ | 660 | /** \name Authentication */ |
671 | /*@{ */ | 661 | /*@{ */ |
672 | drm_file_t *file_first; /**< file list head */ | 662 | struct list_head filelist; |
673 | drm_file_t *file_last; /**< file list tail */ | 663 | struct drm_open_hash magiclist; /**< magic hash table */ |
674 | drm_open_hash_t magiclist; /**< magic hash table */ | ||
675 | struct list_head magicfree; | 664 | struct list_head magicfree; |
676 | /*@} */ | 665 | /*@} */ |
677 | 666 | ||
678 | /** \name Memory management */ | 667 | /** \name Memory management */ |
679 | /*@{ */ | 668 | /*@{ */ |
680 | drm_map_list_t *maplist; /**< Linked list of regions */ | 669 | struct list_head maplist; /**< Linked list of regions */ |
681 | int map_count; /**< Number of mappable regions */ | 670 | int map_count; /**< Number of mappable regions */ |
682 | drm_open_hash_t map_hash; /**< User token hash table for maps */ | 671 | struct drm_open_hash map_hash; /**< User token hash table for maps */ |
683 | 672 | ||
684 | /** \name Context handle management */ | 673 | /** \name Context handle management */ |
685 | /*@{ */ | 674 | /*@{ */ |
686 | drm_ctx_list_t *ctxlist; /**< Linked list of context handles */ | 675 | struct list_head ctxlist; /**< Linked list of context handles */ |
687 | int ctx_count; /**< Number of context handles */ | 676 | int ctx_count; /**< Number of context handles */ |
688 | struct mutex ctxlist_mutex; /**< For ctxlist */ | 677 | struct mutex ctxlist_mutex; /**< For ctxlist */ |
689 | 678 | ||
690 | drm_map_t **context_sareas; /**< per-context SAREA's */ | 679 | struct drm_map **context_sareas; /**< per-context SAREA's */ |
691 | int max_context; | 680 | int max_context; |
692 | 681 | ||
693 | drm_vma_entry_t *vmalist; /**< List of vmas (for debugging) */ | 682 | struct list_head vmalist; /**< List of vmas (for debugging) */ |
694 | drm_lock_data_t lock; /**< Information on hardware lock */ | 683 | struct drm_lock_data lock; /**< Information on hardware lock */ |
695 | /*@} */ | 684 | /*@} */ |
696 | 685 | ||
697 | /** \name DMA queues (contexts) */ | 686 | /** \name DMA queues (contexts) */ |
@@ -699,8 +688,8 @@ typedef struct drm_device { | |||
699 | int queue_count; /**< Number of active DMA queues */ | 688 | int queue_count; /**< Number of active DMA queues */ |
700 | int queue_reserved; /**< Number of reserved DMA queues */ | 689 | int queue_reserved; /**< Number of reserved DMA queues */ |
701 | int queue_slots; /**< Actual length of queuelist */ | 690 | int queue_slots; /**< Actual length of queuelist */ |
702 | drm_queue_t **queuelist; /**< Vector of pointers to DMA queues */ | 691 | struct drm_queue **queuelist; /**< Vector of pointers to DMA queues */ |
703 | drm_device_dma_t *dma; /**< Optional pointer for DMA support */ | 692 | struct drm_device_dma *dma; /**< Optional pointer for DMA support */ |
704 | /*@} */ | 693 | /*@} */ |
705 | 694 | ||
706 | /** \name Context support */ | 695 | /** \name Context support */ |
@@ -725,8 +714,8 @@ typedef struct drm_device { | |||
725 | atomic_t vbl_received; | 714 | atomic_t vbl_received; |
726 | atomic_t vbl_received2; /**< number of secondary VBLANK interrupts */ | 715 | atomic_t vbl_received2; /**< number of secondary VBLANK interrupts */ |
727 | spinlock_t vbl_lock; | 716 | spinlock_t vbl_lock; |
728 | drm_vbl_sig_t vbl_sigs; /**< signal list to send on VBLANK */ | 717 | struct list_head vbl_sigs; /**< signal list to send on VBLANK */ |
729 | drm_vbl_sig_t vbl_sigs2; /**< signals to send on secondary VBLANK */ | 718 | struct list_head vbl_sigs2; /**< signals to send on secondary VBLANK */ |
730 | unsigned int vbl_pending; | 719 | unsigned int vbl_pending; |
731 | spinlock_t tasklet_lock; /**< For drm_locked_tasklet */ | 720 | spinlock_t tasklet_lock; /**< For drm_locked_tasklet */ |
732 | void (*locked_tasklet_func)(struct drm_device *dev); | 721 | void (*locked_tasklet_func)(struct drm_device *dev); |
@@ -739,7 +728,7 @@ typedef struct drm_device { | |||
739 | wait_queue_head_t buf_readers; /**< Processes waiting to read */ | 728 | wait_queue_head_t buf_readers; /**< Processes waiting to read */ |
740 | wait_queue_head_t buf_writers; /**< Processes waiting to ctx switch */ | 729 | wait_queue_head_t buf_writers; /**< Processes waiting to ctx switch */ |
741 | 730 | ||
742 | drm_agp_head_t *agp; /**< AGP data */ | 731 | struct drm_agp_head *agp; /**< AGP data */ |
743 | 732 | ||
744 | struct pci_dev *pdev; /**< PCI device structure */ | 733 | struct pci_dev *pdev; /**< PCI device structure */ |
745 | int pci_vendor; /**< PCI vendor id */ | 734 | int pci_vendor; /**< PCI vendor id */ |
@@ -747,16 +736,16 @@ typedef struct drm_device { | |||
747 | #ifdef __alpha__ | 736 | #ifdef __alpha__ |
748 | struct pci_controller *hose; | 737 | struct pci_controller *hose; |
749 | #endif | 738 | #endif |
750 | drm_sg_mem_t *sg; /**< Scatter gather memory */ | 739 | struct drm_sg_mem *sg; /**< Scatter gather memory */ |
751 | unsigned long *ctx_bitmap; /**< context bitmap */ | 740 | unsigned long *ctx_bitmap; /**< context bitmap */ |
752 | void *dev_private; /**< device private data */ | 741 | void *dev_private; /**< device private data */ |
753 | drm_sigdata_t sigdata; /**< For block_all_signals */ | 742 | struct drm_sigdata sigdata; /**< For block_all_signals */ |
754 | sigset_t sigmask; | 743 | sigset_t sigmask; |
755 | 744 | ||
756 | struct drm_driver *driver; | 745 | struct drm_driver *driver; |
757 | drm_local_map_t *agp_buffer_map; | 746 | drm_local_map_t *agp_buffer_map; |
758 | unsigned int agp_buffer_token; | 747 | unsigned int agp_buffer_token; |
759 | drm_head_t primary; /**< primary screen head */ | 748 | struct drm_head primary; /**< primary screen head */ |
760 | 749 | ||
761 | /** \name Drawable information */ | 750 | /** \name Drawable information */ |
762 | /*@{ */ | 751 | /*@{ */ |
@@ -764,9 +753,9 @@ typedef struct drm_device { | |||
764 | unsigned int drw_bitfield_length; | 753 | unsigned int drw_bitfield_length; |
765 | u32 *drw_bitfield; | 754 | u32 *drw_bitfield; |
766 | unsigned int drw_info_length; | 755 | unsigned int drw_info_length; |
767 | drm_drawable_info_t **drw_info; | 756 | struct drm_drawable_info **drw_info; |
768 | /*@} */ | 757 | /*@} */ |
769 | } drm_device_t; | 758 | }; |
770 | 759 | ||
771 | static __inline__ int drm_core_check_feature(struct drm_device *dev, | 760 | static __inline__ int drm_core_check_feature(struct drm_device *dev, |
772 | int feature) | 761 | int feature) |
@@ -838,7 +827,7 @@ extern int drm_ioctl(struct inode *inode, struct file *filp, | |||
838 | unsigned int cmd, unsigned long arg); | 827 | unsigned int cmd, unsigned long arg); |
839 | extern long drm_compat_ioctl(struct file *filp, | 828 | extern long drm_compat_ioctl(struct file *filp, |
840 | unsigned int cmd, unsigned long arg); | 829 | unsigned int cmd, unsigned long arg); |
841 | extern int drm_lastclose(drm_device_t *dev); | 830 | extern int drm_lastclose(struct drm_device *dev); |
842 | 831 | ||
843 | /* Device support (drm_fops.h) */ | 832 | /* Device support (drm_fops.h) */ |
844 | extern int drm_open(struct inode *inode, struct file *filp); | 833 | extern int drm_open(struct inode *inode, struct file *filp); |
@@ -857,7 +846,7 @@ extern int drm_mem_info(char *buf, char **start, off_t offset, | |||
857 | int request, int *eof, void *data); | 846 | int request, int *eof, void *data); |
858 | extern void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area); | 847 | extern void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area); |
859 | 848 | ||
860 | extern DRM_AGP_MEM *drm_alloc_agp(drm_device_t * dev, int pages, u32 type); | 849 | extern DRM_AGP_MEM *drm_alloc_agp(struct drm_device *dev, int pages, u32 type); |
861 | extern int drm_free_agp(DRM_AGP_MEM * handle, int pages); | 850 | extern int drm_free_agp(DRM_AGP_MEM * handle, int pages); |
862 | extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); | 851 | extern int drm_bind_agp(DRM_AGP_MEM * handle, unsigned int start); |
863 | extern int drm_unbind_agp(DRM_AGP_MEM * handle); | 852 | extern int drm_unbind_agp(DRM_AGP_MEM * handle); |
@@ -896,9 +885,9 @@ extern int drm_newctx(struct inode *inode, struct file *filp, | |||
896 | extern int drm_rmctx(struct inode *inode, struct file *filp, | 885 | extern int drm_rmctx(struct inode *inode, struct file *filp, |
897 | unsigned int cmd, unsigned long arg); | 886 | unsigned int cmd, unsigned long arg); |
898 | 887 | ||
899 | extern int drm_ctxbitmap_init(drm_device_t * dev); | 888 | extern int drm_ctxbitmap_init(struct drm_device *dev); |
900 | extern void drm_ctxbitmap_cleanup(drm_device_t * dev); | 889 | extern void drm_ctxbitmap_cleanup(struct drm_device *dev); |
901 | extern void drm_ctxbitmap_free(drm_device_t * dev, int ctx_handle); | 890 | extern void drm_ctxbitmap_free(struct drm_device *dev, int ctx_handle); |
902 | 891 | ||
903 | extern int drm_setsareactx(struct inode *inode, struct file *filp, | 892 | extern int drm_setsareactx(struct inode *inode, struct file *filp, |
904 | unsigned int cmd, unsigned long arg); | 893 | unsigned int cmd, unsigned long arg); |
@@ -912,7 +901,7 @@ extern int drm_rmdraw(struct inode *inode, struct file *filp, | |||
912 | unsigned int cmd, unsigned long arg); | 901 | unsigned int cmd, unsigned long arg); |
913 | extern int drm_update_drawable_info(struct inode *inode, struct file *filp, | 902 | extern int drm_update_drawable_info(struct inode *inode, struct file *filp, |
914 | unsigned int cmd, unsigned long arg); | 903 | unsigned int cmd, unsigned long arg); |
915 | extern drm_drawable_info_t *drm_get_drawable_info(drm_device_t *dev, | 904 | extern struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, |
916 | drm_drawable_t id); | 905 | drm_drawable_t id); |
917 | 906 | ||
918 | /* Authentication IOCTL support (drm_auth.h) */ | 907 | /* Authentication IOCTL support (drm_auth.h) */ |
@@ -926,10 +915,10 @@ extern int drm_lock(struct inode *inode, struct file *filp, | |||
926 | unsigned int cmd, unsigned long arg); | 915 | unsigned int cmd, unsigned long arg); |
927 | extern int drm_unlock(struct inode *inode, struct file *filp, | 916 | extern int drm_unlock(struct inode *inode, struct file *filp, |
928 | unsigned int cmd, unsigned long arg); | 917 | unsigned int cmd, unsigned long arg); |
929 | extern int drm_lock_take(drm_lock_data_t *lock_data, unsigned int context); | 918 | extern int drm_lock_take(struct drm_lock_data *lock_data, unsigned int context); |
930 | extern int drm_lock_free(drm_lock_data_t *lock_data, unsigned int context); | 919 | extern int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context); |
931 | extern void drm_idlelock_take(drm_lock_data_t *lock_data); | 920 | extern void drm_idlelock_take(struct drm_lock_data *lock_data); |
932 | extern void drm_idlelock_release(drm_lock_data_t *lock_data); | 921 | extern void drm_idlelock_release(struct drm_lock_data *lock_data); |
933 | 922 | ||
934 | /* | 923 | /* |
935 | * These are exported to drivers so that they can implement fencing using | 924 | * These are exported to drivers so that they can implement fencing using |
@@ -940,15 +929,15 @@ extern int drm_i_have_hw_lock(struct file *filp); | |||
940 | extern int drm_kernel_take_hw_lock(struct file *filp); | 929 | extern int drm_kernel_take_hw_lock(struct file *filp); |
941 | 930 | ||
942 | /* Buffer management support (drm_bufs.h) */ | 931 | /* Buffer management support (drm_bufs.h) */ |
943 | extern int drm_addbufs_agp(drm_device_t * dev, drm_buf_desc_t * request); | 932 | extern int drm_addbufs_agp(struct drm_device *dev, struct drm_buf_desc * request); |
944 | extern int drm_addbufs_pci(drm_device_t * dev, drm_buf_desc_t * request); | 933 | extern int drm_addbufs_pci(struct drm_device *dev, struct drm_buf_desc * request); |
945 | extern int drm_addmap(drm_device_t * dev, unsigned int offset, | 934 | extern int drm_addmap(struct drm_device *dev, unsigned int offset, |
946 | unsigned int size, drm_map_type_t type, | 935 | unsigned int size, enum drm_map_type type, |
947 | drm_map_flags_t flags, drm_local_map_t ** map_ptr); | 936 | enum drm_map_flags flags, drm_local_map_t ** map_ptr); |
948 | extern int drm_addmap_ioctl(struct inode *inode, struct file *filp, | 937 | extern int drm_addmap_ioctl(struct inode *inode, struct file *filp, |
949 | unsigned int cmd, unsigned long arg); | 938 | unsigned int cmd, unsigned long arg); |
950 | extern int drm_rmmap(drm_device_t * dev, drm_local_map_t * map); | 939 | extern int drm_rmmap(struct drm_device *dev, drm_local_map_t * map); |
951 | extern int drm_rmmap_locked(drm_device_t * dev, drm_local_map_t * map); | 940 | extern int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t * map); |
952 | extern int drm_rmmap_ioctl(struct inode *inode, struct file *filp, | 941 | extern int drm_rmmap_ioctl(struct inode *inode, struct file *filp, |
953 | unsigned int cmd, unsigned long arg); | 942 | unsigned int cmd, unsigned long arg); |
954 | 943 | ||
@@ -963,56 +952,56 @@ extern int drm_freebufs(struct inode *inode, struct file *filp, | |||
963 | unsigned int cmd, unsigned long arg); | 952 | unsigned int cmd, unsigned long arg); |
964 | extern int drm_mapbufs(struct inode *inode, struct file *filp, | 953 | extern int drm_mapbufs(struct inode *inode, struct file *filp, |
965 | unsigned int cmd, unsigned long arg); | 954 | unsigned int cmd, unsigned long arg); |
966 | extern unsigned long drm_get_resource_start(drm_device_t * dev, | 955 | extern unsigned long drm_get_resource_start(struct drm_device *dev, |
967 | unsigned int resource); | 956 | unsigned int resource); |
968 | extern unsigned long drm_get_resource_len(drm_device_t * dev, | 957 | extern unsigned long drm_get_resource_len(struct drm_device *dev, |
969 | unsigned int resource); | 958 | unsigned int resource); |
970 | 959 | ||
971 | /* DMA support (drm_dma.h) */ | 960 | /* DMA support (drm_dma.h) */ |
972 | extern int drm_dma_setup(drm_device_t * dev); | 961 | extern int drm_dma_setup(struct drm_device *dev); |
973 | extern void drm_dma_takedown(drm_device_t * dev); | 962 | extern void drm_dma_takedown(struct drm_device *dev); |
974 | extern void drm_free_buffer(drm_device_t * dev, drm_buf_t * buf); | 963 | extern void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf); |
975 | extern void drm_core_reclaim_buffers(drm_device_t * dev, struct file *filp); | 964 | extern void drm_core_reclaim_buffers(struct drm_device *dev, struct file *filp); |
976 | 965 | ||
977 | /* IRQ support (drm_irq.h) */ | 966 | /* IRQ support (drm_irq.h) */ |
978 | extern int drm_control(struct inode *inode, struct file *filp, | 967 | extern int drm_control(struct inode *inode, struct file *filp, |
979 | unsigned int cmd, unsigned long arg); | 968 | unsigned int cmd, unsigned long arg); |
980 | extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS); | 969 | extern irqreturn_t drm_irq_handler(DRM_IRQ_ARGS); |
981 | extern int drm_irq_uninstall(drm_device_t * dev); | 970 | extern int drm_irq_uninstall(struct drm_device *dev); |
982 | extern void drm_driver_irq_preinstall(drm_device_t * dev); | 971 | extern void drm_driver_irq_preinstall(struct drm_device *dev); |
983 | extern void drm_driver_irq_postinstall(drm_device_t * dev); | 972 | extern void drm_driver_irq_postinstall(struct drm_device *dev); |
984 | extern void drm_driver_irq_uninstall(drm_device_t * dev); | 973 | extern void drm_driver_irq_uninstall(struct drm_device *dev); |
985 | 974 | ||
986 | extern int drm_wait_vblank(struct inode *inode, struct file *filp, | 975 | extern int drm_wait_vblank(struct inode *inode, struct file *filp, |
987 | unsigned int cmd, unsigned long arg); | 976 | unsigned int cmd, unsigned long arg); |
988 | extern int drm_vblank_wait(drm_device_t * dev, unsigned int *vbl_seq); | 977 | extern int drm_vblank_wait(struct drm_device *dev, unsigned int *vbl_seq); |
989 | extern void drm_vbl_send_signals(drm_device_t * dev); | 978 | extern void drm_vbl_send_signals(struct drm_device *dev); |
990 | extern void drm_locked_tasklet(drm_device_t *dev, void(*func)(drm_device_t*)); | 979 | extern void drm_locked_tasklet(struct drm_device *dev, void(*func)(struct drm_device*)); |
991 | 980 | ||
992 | /* AGP/GART support (drm_agpsupport.h) */ | 981 | /* AGP/GART support (drm_agpsupport.h) */ |
993 | extern drm_agp_head_t *drm_agp_init(drm_device_t * dev); | 982 | extern struct drm_agp_head *drm_agp_init(struct drm_device *dev); |
994 | extern int drm_agp_acquire(drm_device_t * dev); | 983 | extern int drm_agp_acquire(struct drm_device *dev); |
995 | extern int drm_agp_acquire_ioctl(struct inode *inode, struct file *filp, | 984 | extern int drm_agp_acquire_ioctl(struct inode *inode, struct file *filp, |
996 | unsigned int cmd, unsigned long arg); | 985 | unsigned int cmd, unsigned long arg); |
997 | extern int drm_agp_release(drm_device_t * dev); | 986 | extern int drm_agp_release(struct drm_device *dev); |
998 | extern int drm_agp_release_ioctl(struct inode *inode, struct file *filp, | 987 | extern int drm_agp_release_ioctl(struct inode *inode, struct file *filp, |
999 | unsigned int cmd, unsigned long arg); | 988 | unsigned int cmd, unsigned long arg); |
1000 | extern int drm_agp_enable(drm_device_t * dev, drm_agp_mode_t mode); | 989 | extern int drm_agp_enable(struct drm_device *dev, struct drm_agp_mode mode); |
1001 | extern int drm_agp_enable_ioctl(struct inode *inode, struct file *filp, | 990 | extern int drm_agp_enable_ioctl(struct inode *inode, struct file *filp, |
1002 | unsigned int cmd, unsigned long arg); | 991 | unsigned int cmd, unsigned long arg); |
1003 | extern int drm_agp_info(drm_device_t * dev, drm_agp_info_t * info); | 992 | extern int drm_agp_info(struct drm_device *dev, struct drm_agp_info * info); |
1004 | extern int drm_agp_info_ioctl(struct inode *inode, struct file *filp, | 993 | extern int drm_agp_info_ioctl(struct inode *inode, struct file *filp, |
1005 | unsigned int cmd, unsigned long arg); | 994 | unsigned int cmd, unsigned long arg); |
1006 | extern int drm_agp_alloc(drm_device_t *dev, drm_agp_buffer_t *request); | 995 | extern int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request); |
1007 | extern int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, | 996 | extern int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, |
1008 | unsigned int cmd, unsigned long arg); | 997 | unsigned int cmd, unsigned long arg); |
1009 | extern int drm_agp_free(drm_device_t *dev, drm_agp_buffer_t *request); | 998 | extern int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request); |
1010 | extern int drm_agp_free_ioctl(struct inode *inode, struct file *filp, | 999 | extern int drm_agp_free_ioctl(struct inode *inode, struct file *filp, |
1011 | unsigned int cmd, unsigned long arg); | 1000 | unsigned int cmd, unsigned long arg); |
1012 | extern int drm_agp_unbind(drm_device_t *dev, drm_agp_binding_t *request); | 1001 | extern int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request); |
1013 | extern int drm_agp_unbind_ioctl(struct inode *inode, struct file *filp, | 1002 | extern int drm_agp_unbind_ioctl(struct inode *inode, struct file *filp, |
1014 | unsigned int cmd, unsigned long arg); | 1003 | unsigned int cmd, unsigned long arg); |
1015 | extern int drm_agp_bind(drm_device_t *dev, drm_agp_binding_t *request); | 1004 | extern int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request); |
1016 | extern int drm_agp_bind_ioctl(struct inode *inode, struct file *filp, | 1005 | extern int drm_agp_bind_ioctl(struct inode *inode, struct file *filp, |
1017 | unsigned int cmd, unsigned long arg); | 1006 | unsigned int cmd, unsigned long arg); |
1018 | extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, | 1007 | extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, |
@@ -1024,16 +1013,18 @@ extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle); | |||
1024 | /* Stub support (drm_stub.h) */ | 1013 | /* Stub support (drm_stub.h) */ |
1025 | extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, | 1014 | extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, |
1026 | struct drm_driver *driver); | 1015 | struct drm_driver *driver); |
1027 | extern int drm_put_dev(drm_device_t * dev); | 1016 | extern int drm_put_dev(struct drm_device *dev); |
1028 | extern int drm_put_head(drm_head_t * head); | 1017 | extern int drm_put_head(struct drm_head *head); |
1029 | extern unsigned int drm_debug; | 1018 | extern unsigned int drm_debug; |
1030 | extern unsigned int drm_cards_limit; | 1019 | extern unsigned int drm_cards_limit; |
1031 | extern drm_head_t **drm_heads; | 1020 | extern struct drm_head **drm_heads; |
1032 | extern struct class *drm_class; | 1021 | extern struct class *drm_class; |
1033 | extern struct proc_dir_entry *drm_proc_root; | 1022 | extern struct proc_dir_entry *drm_proc_root; |
1034 | 1023 | ||
1024 | extern drm_local_map_t *drm_getsarea(struct drm_device *dev); | ||
1025 | |||
1035 | /* Proc support (drm_proc.h) */ | 1026 | /* Proc support (drm_proc.h) */ |
1036 | extern int drm_proc_init(drm_device_t * dev, | 1027 | extern int drm_proc_init(struct drm_device *dev, |
1037 | int minor, | 1028 | int minor, |
1038 | struct proc_dir_entry *root, | 1029 | struct proc_dir_entry *root, |
1039 | struct proc_dir_entry **dev_root); | 1030 | struct proc_dir_entry **dev_root); |
@@ -1042,45 +1033,45 @@ extern int drm_proc_cleanup(int minor, | |||
1042 | struct proc_dir_entry *dev_root); | 1033 | struct proc_dir_entry *dev_root); |
1043 | 1034 | ||
1044 | /* Scatter Gather Support (drm_scatter.h) */ | 1035 | /* Scatter Gather Support (drm_scatter.h) */ |
1045 | extern void drm_sg_cleanup(drm_sg_mem_t * entry); | 1036 | extern void drm_sg_cleanup(struct drm_sg_mem * entry); |
1046 | extern int drm_sg_alloc(struct inode *inode, struct file *filp, | 1037 | extern int drm_sg_alloc(struct inode *inode, struct file *filp, |
1047 | unsigned int cmd, unsigned long arg); | 1038 | unsigned int cmd, unsigned long arg); |
1048 | extern int drm_sg_free(struct inode *inode, struct file *filp, | 1039 | extern int drm_sg_free(struct inode *inode, struct file *filp, |
1049 | unsigned int cmd, unsigned long arg); | 1040 | unsigned int cmd, unsigned long arg); |
1050 | 1041 | ||
1051 | /* ATI PCIGART support (ati_pcigart.h) */ | 1042 | /* ATI PCIGART support (ati_pcigart.h) */ |
1052 | extern int drm_ati_pcigart_init(drm_device_t * dev, | 1043 | extern int drm_ati_pcigart_init(struct drm_device *dev, |
1053 | drm_ati_pcigart_info * gart_info); | 1044 | struct drm_ati_pcigart_info * gart_info); |
1054 | extern int drm_ati_pcigart_cleanup(drm_device_t * dev, | 1045 | extern int drm_ati_pcigart_cleanup(struct drm_device *dev, |
1055 | drm_ati_pcigart_info * gart_info); | 1046 | struct drm_ati_pcigart_info * gart_info); |
1056 | 1047 | ||
1057 | extern drm_dma_handle_t *drm_pci_alloc(drm_device_t * dev, size_t size, | 1048 | extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size, |
1058 | size_t align, dma_addr_t maxaddr); | 1049 | size_t align, dma_addr_t maxaddr); |
1059 | extern void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah); | 1050 | extern void __drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
1060 | extern void drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah); | 1051 | extern void drm_pci_free(struct drm_device *dev, drm_dma_handle_t * dmah); |
1061 | 1052 | ||
1062 | /* sysfs support (drm_sysfs.c) */ | 1053 | /* sysfs support (drm_sysfs.c) */ |
1063 | extern struct class *drm_sysfs_create(struct module *owner, char *name); | 1054 | extern struct class *drm_sysfs_create(struct module *owner, char *name); |
1064 | extern void drm_sysfs_destroy(struct class *cs); | 1055 | extern void drm_sysfs_destroy(struct class *cs); |
1065 | extern struct class_device *drm_sysfs_device_add(struct class *cs, | 1056 | extern struct class_device *drm_sysfs_device_add(struct class *cs, |
1066 | drm_head_t *head); | 1057 | struct drm_head *head); |
1067 | extern void drm_sysfs_device_remove(struct class_device *class_dev); | 1058 | extern void drm_sysfs_device_remove(struct class_device *class_dev); |
1068 | 1059 | ||
1069 | /* | 1060 | /* |
1070 | * Basic memory manager support (drm_mm.c) | 1061 | * Basic memory manager support (drm_mm.c) |
1071 | */ | 1062 | */ |
1072 | extern drm_mm_node_t *drm_mm_get_block(drm_mm_node_t * parent, | 1063 | extern struct drm_mm_node *drm_mm_get_block(struct drm_mm_node * parent, |
1073 | unsigned long size, | 1064 | unsigned long size, |
1074 | unsigned alignment); | 1065 | unsigned alignment); |
1075 | void drm_mm_put_block(drm_mm_node_t * cur); | 1066 | void drm_mm_put_block(struct drm_mm_node * cur); |
1076 | extern drm_mm_node_t *drm_mm_search_free(const drm_mm_t *mm, unsigned long size, | 1067 | extern struct drm_mm_node *drm_mm_search_free(const struct drm_mm *mm, unsigned long size, |
1077 | unsigned alignment, int best_match); | 1068 | unsigned alignment, int best_match); |
1078 | extern int drm_mm_init(drm_mm_t *mm, unsigned long start, unsigned long size); | 1069 | extern int drm_mm_init(struct drm_mm *mm, unsigned long start, unsigned long size); |
1079 | extern void drm_mm_takedown(drm_mm_t *mm); | 1070 | extern void drm_mm_takedown(struct drm_mm *mm); |
1080 | extern int drm_mm_clean(drm_mm_t *mm); | 1071 | extern int drm_mm_clean(struct drm_mm *mm); |
1081 | extern unsigned long drm_mm_tail_space(drm_mm_t *mm); | 1072 | extern unsigned long drm_mm_tail_space(struct drm_mm *mm); |
1082 | extern int drm_mm_remove_space_from_tail(drm_mm_t *mm, unsigned long size); | 1073 | extern int drm_mm_remove_space_from_tail(struct drm_mm *mm, unsigned long size); |
1083 | extern int drm_mm_add_space_to_tail(drm_mm_t *mm, unsigned long size); | 1074 | extern int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size); |
1084 | 1075 | ||
1085 | extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev); | 1076 | extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev); |
1086 | extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev); | 1077 | extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev); |
@@ -1088,14 +1079,14 @@ extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev); | |||
1088 | static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev, | 1079 | static __inline__ struct drm_map *drm_core_findmap(struct drm_device *dev, |
1089 | unsigned int token) | 1080 | unsigned int token) |
1090 | { | 1081 | { |
1091 | drm_map_list_t *_entry; | 1082 | struct drm_map_list *_entry; |
1092 | list_for_each_entry(_entry, &dev->maplist->head, head) | 1083 | list_for_each_entry(_entry, &dev->maplist, head) |
1093 | if (_entry->user_token == token) | 1084 | if (_entry->user_token == token) |
1094 | return _entry->map; | 1085 | return _entry->map; |
1095 | return NULL; | 1086 | return NULL; |
1096 | } | 1087 | } |
1097 | 1088 | ||
1098 | static __inline__ int drm_device_is_agp(drm_device_t * dev) | 1089 | static __inline__ int drm_device_is_agp(struct drm_device *dev) |
1099 | { | 1090 | { |
1100 | if (dev->driver->device_is_agp != NULL) { | 1091 | if (dev->driver->device_is_agp != NULL) { |
1101 | int err = (*dev->driver->device_is_agp) (dev); | 1092 | int err = (*dev->driver->device_is_agp) (dev); |
@@ -1108,7 +1099,7 @@ static __inline__ int drm_device_is_agp(drm_device_t * dev) | |||
1108 | return pci_find_capability(dev->pdev, PCI_CAP_ID_AGP); | 1099 | return pci_find_capability(dev->pdev, PCI_CAP_ID_AGP); |
1109 | } | 1100 | } |
1110 | 1101 | ||
1111 | static __inline__ int drm_device_is_pcie(drm_device_t * dev) | 1102 | static __inline__ int drm_device_is_pcie(struct drm_device *dev) |
1112 | { | 1103 | { |
1113 | return pci_find_capability(dev->pdev, PCI_CAP_ID_EXP); | 1104 | return pci_find_capability(dev->pdev, PCI_CAP_ID_EXP); |
1114 | } | 1105 | } |
@@ -1143,7 +1134,7 @@ extern void *drm_calloc(size_t nmemb, size_t size, int area); | |||
1143 | 1134 | ||
1144 | /*@}*/ | 1135 | /*@}*/ |
1145 | 1136 | ||
1146 | extern unsigned long drm_core_get_map_ofs(drm_map_t * map); | 1137 | extern unsigned long drm_core_get_map_ofs(struct drm_map * map); |
1147 | extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev); | 1138 | extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev); |
1148 | 1139 | ||
1149 | #endif /* __KERNEL__ */ | 1140 | #endif /* __KERNEL__ */ |
diff --git a/drivers/char/drm/drm_agpsupport.c b/drivers/char/drm/drm_agpsupport.c index 40bfd9b01e39..354f0e3674bf 100644 --- a/drivers/char/drm/drm_agpsupport.c +++ b/drivers/char/drm/drm_agpsupport.c | |||
@@ -48,7 +48,7 @@ | |||
48 | * Verifies the AGP device has been initialized and acquired and fills in the | 48 | * Verifies the AGP device has been initialized and acquired and fills in the |
49 | * drm_agp_info structure with the information in drm_agp_head::agp_info. | 49 | * drm_agp_info structure with the information in drm_agp_head::agp_info. |
50 | */ | 50 | */ |
51 | int drm_agp_info(drm_device_t * dev, drm_agp_info_t * info) | 51 | int drm_agp_info(struct drm_device *dev, struct drm_agp_info *info) |
52 | { | 52 | { |
53 | DRM_AGP_KERN *kern; | 53 | DRM_AGP_KERN *kern; |
54 | 54 | ||
@@ -74,16 +74,16 @@ EXPORT_SYMBOL(drm_agp_info); | |||
74 | int drm_agp_info_ioctl(struct inode *inode, struct file *filp, | 74 | int drm_agp_info_ioctl(struct inode *inode, struct file *filp, |
75 | unsigned int cmd, unsigned long arg) | 75 | unsigned int cmd, unsigned long arg) |
76 | { | 76 | { |
77 | drm_file_t *priv = filp->private_data; | 77 | struct drm_file *priv = filp->private_data; |
78 | drm_device_t *dev = priv->head->dev; | 78 | struct drm_device *dev = priv->head->dev; |
79 | drm_agp_info_t info; | 79 | struct drm_agp_info info; |
80 | int err; | 80 | int err; |
81 | 81 | ||
82 | err = drm_agp_info(dev, &info); | 82 | err = drm_agp_info(dev, &info); |
83 | if (err) | 83 | if (err) |
84 | return err; | 84 | return err; |
85 | 85 | ||
86 | if (copy_to_user((drm_agp_info_t __user *) arg, &info, sizeof(info))) | 86 | if (copy_to_user((struct drm_agp_info __user *) arg, &info, sizeof(info))) |
87 | return -EFAULT; | 87 | return -EFAULT; |
88 | return 0; | 88 | return 0; |
89 | } | 89 | } |
@@ -97,7 +97,7 @@ int drm_agp_info_ioctl(struct inode *inode, struct file *filp, | |||
97 | * Verifies the AGP device hasn't been acquired before and calls | 97 | * Verifies the AGP device hasn't been acquired before and calls |
98 | * \c agp_backend_acquire. | 98 | * \c agp_backend_acquire. |
99 | */ | 99 | */ |
100 | int drm_agp_acquire(drm_device_t * dev) | 100 | int drm_agp_acquire(struct drm_device * dev) |
101 | { | 101 | { |
102 | if (!dev->agp) | 102 | if (!dev->agp) |
103 | return -ENODEV; | 103 | return -ENODEV; |
@@ -126,9 +126,9 @@ EXPORT_SYMBOL(drm_agp_acquire); | |||
126 | int drm_agp_acquire_ioctl(struct inode *inode, struct file *filp, | 126 | int drm_agp_acquire_ioctl(struct inode *inode, struct file *filp, |
127 | unsigned int cmd, unsigned long arg) | 127 | unsigned int cmd, unsigned long arg) |
128 | { | 128 | { |
129 | drm_file_t *priv = filp->private_data; | 129 | struct drm_file *priv = filp->private_data; |
130 | 130 | ||
131 | return drm_agp_acquire((drm_device_t *) priv->head->dev); | 131 | return drm_agp_acquire((struct drm_device *) priv->head->dev); |
132 | } | 132 | } |
133 | 133 | ||
134 | /** | 134 | /** |
@@ -139,7 +139,7 @@ int drm_agp_acquire_ioctl(struct inode *inode, struct file *filp, | |||
139 | * | 139 | * |
140 | * Verifies the AGP device has been acquired and calls \c agp_backend_release. | 140 | * Verifies the AGP device has been acquired and calls \c agp_backend_release. |
141 | */ | 141 | */ |
142 | int drm_agp_release(drm_device_t * dev) | 142 | int drm_agp_release(struct drm_device * dev) |
143 | { | 143 | { |
144 | if (!dev->agp || !dev->agp->acquired) | 144 | if (!dev->agp || !dev->agp->acquired) |
145 | return -EINVAL; | 145 | return -EINVAL; |
@@ -152,8 +152,8 @@ EXPORT_SYMBOL(drm_agp_release); | |||
152 | int drm_agp_release_ioctl(struct inode *inode, struct file *filp, | 152 | int drm_agp_release_ioctl(struct inode *inode, struct file *filp, |
153 | unsigned int cmd, unsigned long arg) | 153 | unsigned int cmd, unsigned long arg) |
154 | { | 154 | { |
155 | drm_file_t *priv = filp->private_data; | 155 | struct drm_file *priv = filp->private_data; |
156 | drm_device_t *dev = priv->head->dev; | 156 | struct drm_device *dev = priv->head->dev; |
157 | 157 | ||
158 | return drm_agp_release(dev); | 158 | return drm_agp_release(dev); |
159 | } | 159 | } |
@@ -168,7 +168,7 @@ int drm_agp_release_ioctl(struct inode *inode, struct file *filp, | |||
168 | * Verifies the AGP device has been acquired but not enabled, and calls | 168 | * Verifies the AGP device has been acquired but not enabled, and calls |
169 | * \c agp_enable. | 169 | * \c agp_enable. |
170 | */ | 170 | */ |
171 | int drm_agp_enable(drm_device_t * dev, drm_agp_mode_t mode) | 171 | int drm_agp_enable(struct drm_device * dev, struct drm_agp_mode mode) |
172 | { | 172 | { |
173 | if (!dev->agp || !dev->agp->acquired) | 173 | if (!dev->agp || !dev->agp->acquired) |
174 | return -EINVAL; | 174 | return -EINVAL; |
@@ -185,11 +185,11 @@ EXPORT_SYMBOL(drm_agp_enable); | |||
185 | int drm_agp_enable_ioctl(struct inode *inode, struct file *filp, | 185 | int drm_agp_enable_ioctl(struct inode *inode, struct file *filp, |
186 | unsigned int cmd, unsigned long arg) | 186 | unsigned int cmd, unsigned long arg) |
187 | { | 187 | { |
188 | drm_file_t *priv = filp->private_data; | 188 | struct drm_file *priv = filp->private_data; |
189 | drm_device_t *dev = priv->head->dev; | 189 | struct drm_device *dev = priv->head->dev; |
190 | drm_agp_mode_t mode; | 190 | struct drm_agp_mode mode; |
191 | 191 | ||
192 | if (copy_from_user(&mode, (drm_agp_mode_t __user *) arg, sizeof(mode))) | 192 | if (copy_from_user(&mode, (struct drm_agp_mode __user *) arg, sizeof(mode))) |
193 | return -EFAULT; | 193 | return -EFAULT; |
194 | 194 | ||
195 | return drm_agp_enable(dev, mode); | 195 | return drm_agp_enable(dev, mode); |
@@ -207,9 +207,9 @@ int drm_agp_enable_ioctl(struct inode *inode, struct file *filp, | |||
207 | * Verifies the AGP device is present and has been acquired, allocates the | 207 | * Verifies the AGP device is present and has been acquired, allocates the |
208 | * memory via alloc_agp() and creates a drm_agp_mem entry for it. | 208 | * memory via alloc_agp() and creates a drm_agp_mem entry for it. |
209 | */ | 209 | */ |
210 | int drm_agp_alloc(drm_device_t *dev, drm_agp_buffer_t *request) | 210 | int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request) |
211 | { | 211 | { |
212 | drm_agp_mem_t *entry; | 212 | struct drm_agp_mem *entry; |
213 | DRM_AGP_MEM *memory; | 213 | DRM_AGP_MEM *memory; |
214 | unsigned long pages; | 214 | unsigned long pages; |
215 | u32 type; | 215 | u32 type; |
@@ -232,11 +232,7 @@ int drm_agp_alloc(drm_device_t *dev, drm_agp_buffer_t *request) | |||
232 | entry->memory = memory; | 232 | entry->memory = memory; |
233 | entry->bound = 0; | 233 | entry->bound = 0; |
234 | entry->pages = pages; | 234 | entry->pages = pages; |
235 | entry->prev = NULL; | 235 | list_add(&entry->head, &dev->agp->memory); |
236 | entry->next = dev->agp->memory; | ||
237 | if (dev->agp->memory) | ||
238 | dev->agp->memory->prev = entry; | ||
239 | dev->agp->memory = entry; | ||
240 | 236 | ||
241 | request->handle = entry->handle; | 237 | request->handle = entry->handle; |
242 | request->physical = memory->physical; | 238 | request->physical = memory->physical; |
@@ -248,10 +244,10 @@ EXPORT_SYMBOL(drm_agp_alloc); | |||
248 | int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, | 244 | int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, |
249 | unsigned int cmd, unsigned long arg) | 245 | unsigned int cmd, unsigned long arg) |
250 | { | 246 | { |
251 | drm_file_t *priv = filp->private_data; | 247 | struct drm_file *priv = filp->private_data; |
252 | drm_device_t *dev = priv->head->dev; | 248 | struct drm_device *dev = priv->head->dev; |
253 | drm_agp_buffer_t request; | 249 | struct drm_agp_buffer request; |
254 | drm_agp_buffer_t __user *argp = (void __user *)arg; | 250 | struct drm_agp_buffer __user *argp = (void __user *)arg; |
255 | int err; | 251 | int err; |
256 | 252 | ||
257 | if (copy_from_user(&request, argp, sizeof(request))) | 253 | if (copy_from_user(&request, argp, sizeof(request))) |
@@ -262,10 +258,12 @@ int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, | |||
262 | return err; | 258 | return err; |
263 | 259 | ||
264 | if (copy_to_user(argp, &request, sizeof(request))) { | 260 | if (copy_to_user(argp, &request, sizeof(request))) { |
265 | drm_agp_mem_t *entry = dev->agp->memory; | 261 | struct drm_agp_mem *entry; |
266 | 262 | list_for_each_entry(entry, &dev->agp->memory, head) { | |
267 | dev->agp->memory = entry->next; | 263 | if (entry->handle == request.handle) |
268 | dev->agp->memory->prev = NULL; | 264 | break; |
265 | } | ||
266 | list_del(&entry->head); | ||
269 | drm_free_agp(entry->memory, entry->pages); | 267 | drm_free_agp(entry->memory, entry->pages); |
270 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); | 268 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); |
271 | return -EFAULT; | 269 | return -EFAULT; |
@@ -283,12 +281,12 @@ int drm_agp_alloc_ioctl(struct inode *inode, struct file *filp, | |||
283 | * | 281 | * |
284 | * Walks through drm_agp_head::memory until finding a matching handle. | 282 | * Walks through drm_agp_head::memory until finding a matching handle. |
285 | */ | 283 | */ |
286 | static drm_agp_mem_t *drm_agp_lookup_entry(drm_device_t * dev, | 284 | static struct drm_agp_mem *drm_agp_lookup_entry(struct drm_device * dev, |
287 | unsigned long handle) | 285 | unsigned long handle) |
288 | { | 286 | { |
289 | drm_agp_mem_t *entry; | 287 | struct drm_agp_mem *entry; |
290 | 288 | ||
291 | for (entry = dev->agp->memory; entry; entry = entry->next) { | 289 | list_for_each_entry(entry, &dev->agp->memory, head) { |
292 | if (entry->handle == handle) | 290 | if (entry->handle == handle) |
293 | return entry; | 291 | return entry; |
294 | } | 292 | } |
@@ -307,9 +305,9 @@ static drm_agp_mem_t *drm_agp_lookup_entry(drm_device_t * dev, | |||
307 | * Verifies the AGP device is present and acquired, looks-up the AGP memory | 305 | * Verifies the AGP device is present and acquired, looks-up the AGP memory |
308 | * entry and passes it to the unbind_agp() function. | 306 | * entry and passes it to the unbind_agp() function. |
309 | */ | 307 | */ |
310 | int drm_agp_unbind(drm_device_t *dev, drm_agp_binding_t *request) | 308 | int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request) |
311 | { | 309 | { |
312 | drm_agp_mem_t *entry; | 310 | struct drm_agp_mem *entry; |
313 | int ret; | 311 | int ret; |
314 | 312 | ||
315 | if (!dev->agp || !dev->agp->acquired) | 313 | if (!dev->agp || !dev->agp->acquired) |
@@ -328,12 +326,12 @@ EXPORT_SYMBOL(drm_agp_unbind); | |||
328 | int drm_agp_unbind_ioctl(struct inode *inode, struct file *filp, | 326 | int drm_agp_unbind_ioctl(struct inode *inode, struct file *filp, |
329 | unsigned int cmd, unsigned long arg) | 327 | unsigned int cmd, unsigned long arg) |
330 | { | 328 | { |
331 | drm_file_t *priv = filp->private_data; | 329 | struct drm_file *priv = filp->private_data; |
332 | drm_device_t *dev = priv->head->dev; | 330 | struct drm_device *dev = priv->head->dev; |
333 | drm_agp_binding_t request; | 331 | struct drm_agp_binding request; |
334 | 332 | ||
335 | if (copy_from_user | 333 | if (copy_from_user |
336 | (&request, (drm_agp_binding_t __user *) arg, sizeof(request))) | 334 | (&request, (struct drm_agp_binding __user *) arg, sizeof(request))) |
337 | return -EFAULT; | 335 | return -EFAULT; |
338 | 336 | ||
339 | return drm_agp_unbind(dev, &request); | 337 | return drm_agp_unbind(dev, &request); |
@@ -352,9 +350,9 @@ int drm_agp_unbind_ioctl(struct inode *inode, struct file *filp, | |||
352 | * is currently bound into the GATT. Looks-up the AGP memory entry and passes | 350 | * is currently bound into the GATT. Looks-up the AGP memory entry and passes |
353 | * it to bind_agp() function. | 351 | * it to bind_agp() function. |
354 | */ | 352 | */ |
355 | int drm_agp_bind(drm_device_t *dev, drm_agp_binding_t *request) | 353 | int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request) |
356 | { | 354 | { |
357 | drm_agp_mem_t *entry; | 355 | struct drm_agp_mem *entry; |
358 | int retcode; | 356 | int retcode; |
359 | int page; | 357 | int page; |
360 | 358 | ||
@@ -377,12 +375,12 @@ EXPORT_SYMBOL(drm_agp_bind); | |||
377 | int drm_agp_bind_ioctl(struct inode *inode, struct file *filp, | 375 | int drm_agp_bind_ioctl(struct inode *inode, struct file *filp, |
378 | unsigned int cmd, unsigned long arg) | 376 | unsigned int cmd, unsigned long arg) |
379 | { | 377 | { |
380 | drm_file_t *priv = filp->private_data; | 378 | struct drm_file *priv = filp->private_data; |
381 | drm_device_t *dev = priv->head->dev; | 379 | struct drm_device *dev = priv->head->dev; |
382 | drm_agp_binding_t request; | 380 | struct drm_agp_binding request; |
383 | 381 | ||
384 | if (copy_from_user | 382 | if (copy_from_user |
385 | (&request, (drm_agp_binding_t __user *) arg, sizeof(request))) | 383 | (&request, (struct drm_agp_binding __user *) arg, sizeof(request))) |
386 | return -EFAULT; | 384 | return -EFAULT; |
387 | 385 | ||
388 | return drm_agp_bind(dev, &request); | 386 | return drm_agp_bind(dev, &request); |
@@ -402,9 +400,9 @@ int drm_agp_bind_ioctl(struct inode *inode, struct file *filp, | |||
402 | * unbind_agp(). Frees it via free_agp() as well as the entry itself | 400 | * unbind_agp(). Frees it via free_agp() as well as the entry itself |
403 | * and unlinks from the doubly linked list it's inserted in. | 401 | * and unlinks from the doubly linked list it's inserted in. |
404 | */ | 402 | */ |
405 | int drm_agp_free(drm_device_t *dev, drm_agp_buffer_t *request) | 403 | int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request) |
406 | { | 404 | { |
407 | drm_agp_mem_t *entry; | 405 | struct drm_agp_mem *entry; |
408 | 406 | ||
409 | if (!dev->agp || !dev->agp->acquired) | 407 | if (!dev->agp || !dev->agp->acquired) |
410 | return -EINVAL; | 408 | return -EINVAL; |
@@ -413,13 +411,7 @@ int drm_agp_free(drm_device_t *dev, drm_agp_buffer_t *request) | |||
413 | if (entry->bound) | 411 | if (entry->bound) |
414 | drm_unbind_agp(entry->memory); | 412 | drm_unbind_agp(entry->memory); |
415 | 413 | ||
416 | if (entry->prev) | 414 | list_del(&entry->head); |
417 | entry->prev->next = entry->next; | ||
418 | else | ||
419 | dev->agp->memory = entry->next; | ||
420 | |||
421 | if (entry->next) | ||
422 | entry->next->prev = entry->prev; | ||
423 | 415 | ||
424 | drm_free_agp(entry->memory, entry->pages); | 416 | drm_free_agp(entry->memory, entry->pages); |
425 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); | 417 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); |
@@ -430,12 +422,12 @@ EXPORT_SYMBOL(drm_agp_free); | |||
430 | int drm_agp_free_ioctl(struct inode *inode, struct file *filp, | 422 | int drm_agp_free_ioctl(struct inode *inode, struct file *filp, |
431 | unsigned int cmd, unsigned long arg) | 423 | unsigned int cmd, unsigned long arg) |
432 | { | 424 | { |
433 | drm_file_t *priv = filp->private_data; | 425 | struct drm_file *priv = filp->private_data; |
434 | drm_device_t *dev = priv->head->dev; | 426 | struct drm_device *dev = priv->head->dev; |
435 | drm_agp_buffer_t request; | 427 | struct drm_agp_buffer request; |
436 | 428 | ||
437 | if (copy_from_user | 429 | if (copy_from_user |
438 | (&request, (drm_agp_buffer_t __user *) arg, sizeof(request))) | 430 | (&request, (struct drm_agp_buffer __user *) arg, sizeof(request))) |
439 | return -EFAULT; | 431 | return -EFAULT; |
440 | 432 | ||
441 | return drm_agp_free(dev, &request); | 433 | return drm_agp_free(dev, &request); |
@@ -450,9 +442,9 @@ int drm_agp_free_ioctl(struct inode *inode, struct file *filp, | |||
450 | * via the inter_module_* functions. Creates and initializes a drm_agp_head | 442 | * via the inter_module_* functions. Creates and initializes a drm_agp_head |
451 | * structure. | 443 | * structure. |
452 | */ | 444 | */ |
453 | drm_agp_head_t *drm_agp_init(drm_device_t * dev) | 445 | struct drm_agp_head *drm_agp_init(struct drm_device *dev) |
454 | { | 446 | { |
455 | drm_agp_head_t *head = NULL; | 447 | struct drm_agp_head *head = NULL; |
456 | 448 | ||
457 | if (!(head = drm_alloc(sizeof(*head), DRM_MEM_AGPLISTS))) | 449 | if (!(head = drm_alloc(sizeof(*head), DRM_MEM_AGPLISTS))) |
458 | return NULL; | 450 | return NULL; |
@@ -472,7 +464,7 @@ drm_agp_head_t *drm_agp_init(drm_device_t * dev) | |||
472 | drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS); | 464 | drm_free(head, sizeof(*head), DRM_MEM_AGPLISTS); |
473 | return NULL; | 465 | return NULL; |
474 | } | 466 | } |
475 | head->memory = NULL; | 467 | INIT_LIST_HEAD(&head->memory); |
476 | head->cant_use_aperture = head->agp_info.cant_use_aperture; | 468 | head->cant_use_aperture = head->agp_info.cant_use_aperture; |
477 | head->page_mask = head->agp_info.page_mask; | 469 | head->page_mask = head->agp_info.page_mask; |
478 | 470 | ||
diff --git a/drivers/char/drm/drm_auth.c b/drivers/char/drm/drm_auth.c index c7b19d35bcd6..7f777da872cd 100644 --- a/drivers/char/drm/drm_auth.c +++ b/drivers/char/drm/drm_auth.c | |||
@@ -45,15 +45,15 @@ | |||
45 | * the one with matching magic number, while holding the drm_device::struct_mutex | 45 | * the one with matching magic number, while holding the drm_device::struct_mutex |
46 | * lock. | 46 | * lock. |
47 | */ | 47 | */ |
48 | static drm_file_t *drm_find_file(drm_device_t * dev, drm_magic_t magic) | 48 | static struct drm_file *drm_find_file(struct drm_device * dev, drm_magic_t magic) |
49 | { | 49 | { |
50 | drm_file_t *retval = NULL; | 50 | struct drm_file *retval = NULL; |
51 | drm_magic_entry_t *pt; | 51 | struct drm_magic_entry *pt; |
52 | drm_hash_item_t *hash; | 52 | struct drm_hash_item *hash; |
53 | 53 | ||
54 | mutex_lock(&dev->struct_mutex); | 54 | mutex_lock(&dev->struct_mutex); |
55 | if (!drm_ht_find_item(&dev->magiclist, (unsigned long)magic, &hash)) { | 55 | if (!drm_ht_find_item(&dev->magiclist, (unsigned long)magic, &hash)) { |
56 | pt = drm_hash_entry(hash, drm_magic_entry_t, hash_item); | 56 | pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item); |
57 | retval = pt->priv; | 57 | retval = pt->priv; |
58 | } | 58 | } |
59 | mutex_unlock(&dev->struct_mutex); | 59 | mutex_unlock(&dev->struct_mutex); |
@@ -71,10 +71,10 @@ static drm_file_t *drm_find_file(drm_device_t * dev, drm_magic_t magic) | |||
71 | * associated the magic number hash key in drm_device::magiclist, while holding | 71 | * associated the magic number hash key in drm_device::magiclist, while holding |
72 | * the drm_device::struct_mutex lock. | 72 | * the drm_device::struct_mutex lock. |
73 | */ | 73 | */ |
74 | static int drm_add_magic(drm_device_t * dev, drm_file_t * priv, | 74 | static int drm_add_magic(struct drm_device * dev, struct drm_file * priv, |
75 | drm_magic_t magic) | 75 | drm_magic_t magic) |
76 | { | 76 | { |
77 | drm_magic_entry_t *entry; | 77 | struct drm_magic_entry *entry; |
78 | 78 | ||
79 | DRM_DEBUG("%d\n", magic); | 79 | DRM_DEBUG("%d\n", magic); |
80 | 80 | ||
@@ -102,10 +102,10 @@ static int drm_add_magic(drm_device_t * dev, drm_file_t * priv, | |||
102 | * Searches and unlinks the entry in drm_device::magiclist with the magic | 102 | * Searches and unlinks the entry in drm_device::magiclist with the magic |
103 | * number hash key, while holding the drm_device::struct_mutex lock. | 103 | * number hash key, while holding the drm_device::struct_mutex lock. |
104 | */ | 104 | */ |
105 | static int drm_remove_magic(drm_device_t * dev, drm_magic_t magic) | 105 | static int drm_remove_magic(struct drm_device * dev, drm_magic_t magic) |
106 | { | 106 | { |
107 | drm_magic_entry_t *pt; | 107 | struct drm_magic_entry *pt; |
108 | drm_hash_item_t *hash; | 108 | struct drm_hash_item *hash; |
109 | 109 | ||
110 | DRM_DEBUG("%d\n", magic); | 110 | DRM_DEBUG("%d\n", magic); |
111 | 111 | ||
@@ -114,7 +114,7 @@ static int drm_remove_magic(drm_device_t * dev, drm_magic_t magic) | |||
114 | mutex_unlock(&dev->struct_mutex); | 114 | mutex_unlock(&dev->struct_mutex); |
115 | return -EINVAL; | 115 | return -EINVAL; |
116 | } | 116 | } |
117 | pt = drm_hash_entry(hash, drm_magic_entry_t, hash_item); | 117 | pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item); |
118 | drm_ht_remove_item(&dev->magiclist, hash); | 118 | drm_ht_remove_item(&dev->magiclist, hash); |
119 | list_del(&pt->head); | 119 | list_del(&pt->head); |
120 | mutex_unlock(&dev->struct_mutex); | 120 | mutex_unlock(&dev->struct_mutex); |
@@ -142,9 +142,9 @@ int drm_getmagic(struct inode *inode, struct file *filp, | |||
142 | { | 142 | { |
143 | static drm_magic_t sequence = 0; | 143 | static drm_magic_t sequence = 0; |
144 | static DEFINE_SPINLOCK(lock); | 144 | static DEFINE_SPINLOCK(lock); |
145 | drm_file_t *priv = filp->private_data; | 145 | struct drm_file *priv = filp->private_data; |
146 | drm_device_t *dev = priv->head->dev; | 146 | struct drm_device *dev = priv->head->dev; |
147 | drm_auth_t auth; | 147 | struct drm_auth auth; |
148 | 148 | ||
149 | /* Find unique magic */ | 149 | /* Find unique magic */ |
150 | if (priv->magic) { | 150 | if (priv->magic) { |
@@ -162,7 +162,7 @@ int drm_getmagic(struct inode *inode, struct file *filp, | |||
162 | } | 162 | } |
163 | 163 | ||
164 | DRM_DEBUG("%u\n", auth.magic); | 164 | DRM_DEBUG("%u\n", auth.magic); |
165 | if (copy_to_user((drm_auth_t __user *) arg, &auth, sizeof(auth))) | 165 | if (copy_to_user((struct drm_auth __user *) arg, &auth, sizeof(auth))) |
166 | return -EFAULT; | 166 | return -EFAULT; |
167 | return 0; | 167 | return 0; |
168 | } | 168 | } |
@@ -181,12 +181,12 @@ int drm_getmagic(struct inode *inode, struct file *filp, | |||
181 | int drm_authmagic(struct inode *inode, struct file *filp, | 181 | int drm_authmagic(struct inode *inode, struct file *filp, |
182 | unsigned int cmd, unsigned long arg) | 182 | unsigned int cmd, unsigned long arg) |
183 | { | 183 | { |
184 | drm_file_t *priv = filp->private_data; | 184 | struct drm_file *priv = filp->private_data; |
185 | drm_device_t *dev = priv->head->dev; | 185 | struct drm_device *dev = priv->head->dev; |
186 | drm_auth_t auth; | 186 | struct drm_auth auth; |
187 | drm_file_t *file; | 187 | struct drm_file *file; |
188 | 188 | ||
189 | if (copy_from_user(&auth, (drm_auth_t __user *) arg, sizeof(auth))) | 189 | if (copy_from_user(&auth, (struct drm_auth __user *) arg, sizeof(auth))) |
190 | return -EFAULT; | 190 | return -EFAULT; |
191 | DRM_DEBUG("%u\n", auth.magic); | 191 | DRM_DEBUG("%u\n", auth.magic); |
192 | if ((file = drm_find_file(dev, auth.magic))) { | 192 | if ((file = drm_find_file(dev, auth.magic))) { |
diff --git a/drivers/char/drm/drm_bufs.c b/drivers/char/drm/drm_bufs.c index c11345856ffe..923174c54a1c 100644 --- a/drivers/char/drm/drm_bufs.c +++ b/drivers/char/drm/drm_bufs.c | |||
@@ -36,26 +36,24 @@ | |||
36 | #include <linux/vmalloc.h> | 36 | #include <linux/vmalloc.h> |
37 | #include "drmP.h" | 37 | #include "drmP.h" |
38 | 38 | ||
39 | unsigned long drm_get_resource_start(drm_device_t *dev, unsigned int resource) | 39 | unsigned long drm_get_resource_start(struct drm_device *dev, unsigned int resource) |
40 | { | 40 | { |
41 | return pci_resource_start(dev->pdev, resource); | 41 | return pci_resource_start(dev->pdev, resource); |
42 | } | 42 | } |
43 | EXPORT_SYMBOL(drm_get_resource_start); | 43 | EXPORT_SYMBOL(drm_get_resource_start); |
44 | 44 | ||
45 | unsigned long drm_get_resource_len(drm_device_t *dev, unsigned int resource) | 45 | unsigned long drm_get_resource_len(struct drm_device *dev, unsigned int resource) |
46 | { | 46 | { |
47 | return pci_resource_len(dev->pdev, resource); | 47 | return pci_resource_len(dev->pdev, resource); |
48 | } | 48 | } |
49 | 49 | ||
50 | EXPORT_SYMBOL(drm_get_resource_len); | 50 | EXPORT_SYMBOL(drm_get_resource_len); |
51 | 51 | ||
52 | static drm_map_list_t *drm_find_matching_map(drm_device_t *dev, | 52 | static struct drm_map_list *drm_find_matching_map(struct drm_device *dev, |
53 | drm_local_map_t *map) | 53 | drm_local_map_t *map) |
54 | { | 54 | { |
55 | struct list_head *list; | 55 | struct drm_map_list *entry; |
56 | 56 | list_for_each_entry(entry, &dev->maplist, head) { | |
57 | list_for_each(list, &dev->maplist->head) { | ||
58 | drm_map_list_t *entry = list_entry(list, drm_map_list_t, head); | ||
59 | if (entry->map && map->type == entry->map->type && | 57 | if (entry->map && map->type == entry->map->type && |
60 | ((entry->map->offset == map->offset) || | 58 | ((entry->map->offset == map->offset) || |
61 | (map->type == _DRM_SHM && map->flags==_DRM_CONTAINS_LOCK))) { | 59 | (map->type == _DRM_SHM && map->flags==_DRM_CONTAINS_LOCK))) { |
@@ -66,7 +64,7 @@ static drm_map_list_t *drm_find_matching_map(drm_device_t *dev, | |||
66 | return NULL; | 64 | return NULL; |
67 | } | 65 | } |
68 | 66 | ||
69 | static int drm_map_handle(drm_device_t *dev, drm_hash_item_t *hash, | 67 | static int drm_map_handle(struct drm_device *dev, struct drm_hash_item *hash, |
70 | unsigned long user_token, int hashed_handle) | 68 | unsigned long user_token, int hashed_handle) |
71 | { | 69 | { |
72 | int use_hashed_handle; | 70 | int use_hashed_handle; |
@@ -103,12 +101,13 @@ static int drm_map_handle(drm_device_t *dev, drm_hash_item_t *hash, | |||
103 | * type. Adds the map to the map list drm_device::maplist. Adds MTRR's where | 101 | * type. Adds the map to the map list drm_device::maplist. Adds MTRR's where |
104 | * applicable and if supported by the kernel. | 102 | * applicable and if supported by the kernel. |
105 | */ | 103 | */ |
106 | static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | 104 | static int drm_addmap_core(struct drm_device * dev, unsigned int offset, |
107 | unsigned int size, drm_map_type_t type, | 105 | unsigned int size, enum drm_map_type type, |
108 | drm_map_flags_t flags, drm_map_list_t ** maplist) | 106 | enum drm_map_flags flags, |
107 | struct drm_map_list ** maplist) | ||
109 | { | 108 | { |
110 | drm_map_t *map; | 109 | struct drm_map *map; |
111 | drm_map_list_t *list; | 110 | struct drm_map_list *list; |
112 | drm_dma_handle_t *dmah; | 111 | drm_dma_handle_t *dmah; |
113 | unsigned long user_token; | 112 | unsigned long user_token; |
114 | int ret; | 113 | int ret; |
@@ -214,7 +213,7 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | |||
214 | } | 213 | } |
215 | break; | 214 | break; |
216 | case _DRM_AGP: { | 215 | case _DRM_AGP: { |
217 | drm_agp_mem_t *entry; | 216 | struct drm_agp_mem *entry; |
218 | int valid = 0; | 217 | int valid = 0; |
219 | 218 | ||
220 | if (!drm_core_has_AGP(dev)) { | 219 | if (!drm_core_has_AGP(dev)) { |
@@ -237,14 +236,14 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | |||
237 | * skipped and we double check that dev->agp->memory is | 236 | * skipped and we double check that dev->agp->memory is |
238 | * actually set as well as being invalid before EPERM'ing | 237 | * actually set as well as being invalid before EPERM'ing |
239 | */ | 238 | */ |
240 | for (entry = dev->agp->memory; entry; entry = entry->next) { | 239 | list_for_each_entry(entry, &dev->agp->memory, head) { |
241 | if ((map->offset >= entry->bound) && | 240 | if ((map->offset >= entry->bound) && |
242 | (map->offset + map->size <= entry->bound + entry->pages * PAGE_SIZE)) { | 241 | (map->offset + map->size <= entry->bound + entry->pages * PAGE_SIZE)) { |
243 | valid = 1; | 242 | valid = 1; |
244 | break; | 243 | break; |
245 | } | 244 | } |
246 | } | 245 | } |
247 | if (dev->agp->memory && !valid) { | 246 | if (!list_empty(&dev->agp->memory) && !valid) { |
248 | drm_free(map, sizeof(*map), DRM_MEM_MAPS); | 247 | drm_free(map, sizeof(*map), DRM_MEM_MAPS); |
249 | return -EPERM; | 248 | return -EPERM; |
250 | } | 249 | } |
@@ -289,7 +288,7 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | |||
289 | list->map = map; | 288 | list->map = map; |
290 | 289 | ||
291 | mutex_lock(&dev->struct_mutex); | 290 | mutex_lock(&dev->struct_mutex); |
292 | list_add(&list->head, &dev->maplist->head); | 291 | list_add(&list->head, &dev->maplist); |
293 | 292 | ||
294 | /* Assign a 32-bit handle */ | 293 | /* Assign a 32-bit handle */ |
295 | /* We do it here so that dev->struct_mutex protects the increment */ | 294 | /* We do it here so that dev->struct_mutex protects the increment */ |
@@ -312,11 +311,11 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, | |||
312 | return 0; | 311 | return 0; |
313 | } | 312 | } |
314 | 313 | ||
315 | int drm_addmap(drm_device_t * dev, unsigned int offset, | 314 | int drm_addmap(struct drm_device * dev, unsigned int offset, |
316 | unsigned int size, drm_map_type_t type, | 315 | unsigned int size, enum drm_map_type type, |
317 | drm_map_flags_t flags, drm_local_map_t ** map_ptr) | 316 | enum drm_map_flags flags, drm_local_map_t ** map_ptr) |
318 | { | 317 | { |
319 | drm_map_list_t *list; | 318 | struct drm_map_list *list; |
320 | int rc; | 319 | int rc; |
321 | 320 | ||
322 | rc = drm_addmap_core(dev, offset, size, type, flags, &list); | 321 | rc = drm_addmap_core(dev, offset, size, type, flags, &list); |
@@ -330,11 +329,11 @@ EXPORT_SYMBOL(drm_addmap); | |||
330 | int drm_addmap_ioctl(struct inode *inode, struct file *filp, | 329 | int drm_addmap_ioctl(struct inode *inode, struct file *filp, |
331 | unsigned int cmd, unsigned long arg) | 330 | unsigned int cmd, unsigned long arg) |
332 | { | 331 | { |
333 | drm_file_t *priv = filp->private_data; | 332 | struct drm_file *priv = filp->private_data; |
334 | drm_device_t *dev = priv->head->dev; | 333 | struct drm_device *dev = priv->head->dev; |
335 | drm_map_t map; | 334 | struct drm_map map; |
336 | drm_map_list_t *maplist; | 335 | struct drm_map_list *maplist; |
337 | drm_map_t __user *argp = (void __user *)arg; | 336 | struct drm_map __user *argp = (void __user *)arg; |
338 | int err; | 337 | int err; |
339 | 338 | ||
340 | if (!(filp->f_mode & 3)) | 339 | if (!(filp->f_mode & 3)) |
@@ -353,7 +352,7 @@ int drm_addmap_ioctl(struct inode *inode, struct file *filp, | |||
353 | if (err) | 352 | if (err) |
354 | return err; | 353 | return err; |
355 | 354 | ||
356 | if (copy_to_user(argp, maplist->map, sizeof(drm_map_t))) | 355 | if (copy_to_user(argp, maplist->map, sizeof(struct drm_map))) |
357 | return -EFAULT; | 356 | return -EFAULT; |
358 | 357 | ||
359 | /* avoid a warning on 64-bit, this casting isn't very nice, but the API is set so too late */ | 358 | /* avoid a warning on 64-bit, this casting isn't very nice, but the API is set so too late */ |
@@ -369,7 +368,7 @@ int drm_addmap_ioctl(struct inode *inode, struct file *filp, | |||
369 | * \param inode device inode. | 368 | * \param inode device inode. |
370 | * \param filp file pointer. | 369 | * \param filp file pointer. |
371 | * \param cmd command. | 370 | * \param cmd command. |
372 | * \param arg pointer to a drm_map_t structure. | 371 | * \param arg pointer to a struct drm_map structure. |
373 | * \return zero on success or a negative value on error. | 372 | * \return zero on success or a negative value on error. |
374 | * | 373 | * |
375 | * Searches the map on drm_device::maplist, removes it from the list, see if | 374 | * Searches the map on drm_device::maplist, removes it from the list, see if |
@@ -378,31 +377,26 @@ int drm_addmap_ioctl(struct inode *inode, struct file *filp, | |||
378 | * | 377 | * |
379 | * \sa drm_addmap | 378 | * \sa drm_addmap |
380 | */ | 379 | */ |
381 | int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map) | 380 | int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t *map) |
382 | { | 381 | { |
383 | struct list_head *list; | 382 | struct drm_map_list *r_list = NULL, *list_t; |
384 | drm_map_list_t *r_list = NULL; | ||
385 | drm_dma_handle_t dmah; | 383 | drm_dma_handle_t dmah; |
384 | int found = 0; | ||
386 | 385 | ||
387 | /* Find the list entry for the map and remove it */ | 386 | /* Find the list entry for the map and remove it */ |
388 | list_for_each(list, &dev->maplist->head) { | 387 | list_for_each_entry_safe(r_list, list_t, &dev->maplist, head) { |
389 | r_list = list_entry(list, drm_map_list_t, head); | ||
390 | |||
391 | if (r_list->map == map) { | 388 | if (r_list->map == map) { |
392 | list_del(list); | 389 | list_del(&r_list->head); |
393 | drm_ht_remove_key(&dev->map_hash, | 390 | drm_ht_remove_key(&dev->map_hash, |
394 | r_list->user_token >> PAGE_SHIFT); | 391 | r_list->user_token >> PAGE_SHIFT); |
395 | drm_free(list, sizeof(*list), DRM_MEM_MAPS); | 392 | drm_free(r_list, sizeof(*r_list), DRM_MEM_MAPS); |
393 | found = 1; | ||
396 | break; | 394 | break; |
397 | } | 395 | } |
398 | } | 396 | } |
399 | 397 | ||
400 | /* List has wrapped around to the head pointer, or it's empty and we | 398 | if (!found) |
401 | * didn't find anything. | ||
402 | */ | ||
403 | if (list == (&dev->maplist->head)) { | ||
404 | return -EINVAL; | 399 | return -EINVAL; |
405 | } | ||
406 | 400 | ||
407 | switch (map->type) { | 401 | switch (map->type) { |
408 | case _DRM_REGISTERS: | 402 | case _DRM_REGISTERS: |
@@ -433,7 +427,7 @@ int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map) | |||
433 | return 0; | 427 | return 0; |
434 | } | 428 | } |
435 | 429 | ||
436 | int drm_rmmap(drm_device_t *dev, drm_local_map_t *map) | 430 | int drm_rmmap(struct drm_device *dev, drm_local_map_t *map) |
437 | { | 431 | { |
438 | int ret; | 432 | int ret; |
439 | 433 | ||
@@ -456,21 +450,19 @@ int drm_rmmap(drm_device_t *dev, drm_local_map_t *map) | |||
456 | int drm_rmmap_ioctl(struct inode *inode, struct file *filp, | 450 | int drm_rmmap_ioctl(struct inode *inode, struct file *filp, |
457 | unsigned int cmd, unsigned long arg) | 451 | unsigned int cmd, unsigned long arg) |
458 | { | 452 | { |
459 | drm_file_t *priv = filp->private_data; | 453 | struct drm_file *priv = filp->private_data; |
460 | drm_device_t *dev = priv->head->dev; | 454 | struct drm_device *dev = priv->head->dev; |
461 | drm_map_t request; | 455 | struct drm_map request; |
462 | drm_local_map_t *map = NULL; | 456 | drm_local_map_t *map = NULL; |
463 | struct list_head *list; | 457 | struct drm_map_list *r_list; |
464 | int ret; | 458 | int ret; |
465 | 459 | ||
466 | if (copy_from_user(&request, (drm_map_t __user *) arg, sizeof(request))) { | 460 | if (copy_from_user(&request, (struct drm_map __user *) arg, sizeof(request))) { |
467 | return -EFAULT; | 461 | return -EFAULT; |
468 | } | 462 | } |
469 | 463 | ||
470 | mutex_lock(&dev->struct_mutex); | 464 | mutex_lock(&dev->struct_mutex); |
471 | list_for_each(list, &dev->maplist->head) { | 465 | list_for_each_entry(r_list, &dev->maplist, head) { |
472 | drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head); | ||
473 | |||
474 | if (r_list->map && | 466 | if (r_list->map && |
475 | r_list->user_token == (unsigned long)request.handle && | 467 | r_list->user_token == (unsigned long)request.handle && |
476 | r_list->map->flags & _DRM_REMOVABLE) { | 468 | r_list->map->flags & _DRM_REMOVABLE) { |
@@ -482,7 +474,7 @@ int drm_rmmap_ioctl(struct inode *inode, struct file *filp, | |||
482 | /* List has wrapped around to the head pointer, or its empty we didn't | 474 | /* List has wrapped around to the head pointer, or its empty we didn't |
483 | * find anything. | 475 | * find anything. |
484 | */ | 476 | */ |
485 | if (list == (&dev->maplist->head)) { | 477 | if (list_empty(&dev->maplist) || !map) { |
486 | mutex_unlock(&dev->struct_mutex); | 478 | mutex_unlock(&dev->struct_mutex); |
487 | return -EINVAL; | 479 | return -EINVAL; |
488 | } | 480 | } |
@@ -513,7 +505,8 @@ int drm_rmmap_ioctl(struct inode *inode, struct file *filp, | |||
513 | * | 505 | * |
514 | * Frees any pages and buffers associated with the given entry. | 506 | * Frees any pages and buffers associated with the given entry. |
515 | */ | 507 | */ |
516 | static void drm_cleanup_buf_error(drm_device_t * dev, drm_buf_entry_t * entry) | 508 | static void drm_cleanup_buf_error(struct drm_device * dev, |
509 | struct drm_buf_entry * entry) | ||
517 | { | 510 | { |
518 | int i; | 511 | int i; |
519 | 512 | ||
@@ -550,20 +543,20 @@ static void drm_cleanup_buf_error(drm_device_t * dev, drm_buf_entry_t * entry) | |||
550 | /** | 543 | /** |
551 | * Add AGP buffers for DMA transfers. | 544 | * Add AGP buffers for DMA transfers. |
552 | * | 545 | * |
553 | * \param dev drm_device_t to which the buffers are to be added. | 546 | * \param dev struct drm_device to which the buffers are to be added. |
554 | * \param request pointer to a drm_buf_desc_t describing the request. | 547 | * \param request pointer to a struct drm_buf_desc describing the request. |
555 | * \return zero on success or a negative number on failure. | 548 | * \return zero on success or a negative number on failure. |
556 | * | 549 | * |
557 | * After some sanity checks creates a drm_buf structure for each buffer and | 550 | * After some sanity checks creates a drm_buf structure for each buffer and |
558 | * reallocates the buffer list of the same size order to accommodate the new | 551 | * reallocates the buffer list of the same size order to accommodate the new |
559 | * buffers. | 552 | * buffers. |
560 | */ | 553 | */ |
561 | int drm_addbufs_agp(drm_device_t * dev, drm_buf_desc_t * request) | 554 | int drm_addbufs_agp(struct drm_device * dev, struct drm_buf_desc * request) |
562 | { | 555 | { |
563 | drm_device_dma_t *dma = dev->dma; | 556 | struct drm_device_dma *dma = dev->dma; |
564 | drm_buf_entry_t *entry; | 557 | struct drm_buf_entry *entry; |
565 | drm_agp_mem_t *agp_entry; | 558 | struct drm_agp_mem *agp_entry; |
566 | drm_buf_t *buf; | 559 | struct drm_buf *buf; |
567 | unsigned long offset; | 560 | unsigned long offset; |
568 | unsigned long agp_offset; | 561 | unsigned long agp_offset; |
569 | int count; | 562 | int count; |
@@ -574,7 +567,7 @@ int drm_addbufs_agp(drm_device_t * dev, drm_buf_desc_t * request) | |||
574 | int total; | 567 | int total; |
575 | int byte_count; | 568 | int byte_count; |
576 | int i, valid; | 569 | int i, valid; |
577 | drm_buf_t **temp_buflist; | 570 | struct drm_buf **temp_buflist; |
578 | 571 | ||
579 | if (!dma) | 572 | if (!dma) |
580 | return -EINVAL; | 573 | return -EINVAL; |
@@ -606,14 +599,14 @@ int drm_addbufs_agp(drm_device_t * dev, drm_buf_desc_t * request) | |||
606 | 599 | ||
607 | /* Make sure buffers are located in AGP memory that we own */ | 600 | /* Make sure buffers are located in AGP memory that we own */ |
608 | valid = 0; | 601 | valid = 0; |
609 | for (agp_entry = dev->agp->memory; agp_entry; agp_entry = agp_entry->next) { | 602 | list_for_each_entry(agp_entry, &dev->agp->memory, head) { |
610 | if ((agp_offset >= agp_entry->bound) && | 603 | if ((agp_offset >= agp_entry->bound) && |
611 | (agp_offset + total * count <= agp_entry->bound + agp_entry->pages * PAGE_SIZE)) { | 604 | (agp_offset + total * count <= agp_entry->bound + agp_entry->pages * PAGE_SIZE)) { |
612 | valid = 1; | 605 | valid = 1; |
613 | break; | 606 | break; |
614 | } | 607 | } |
615 | } | 608 | } |
616 | if (dev->agp->memory && !valid) { | 609 | if (!list_empty(&dev->agp->memory) && !valid) { |
617 | DRM_DEBUG("zone invalid\n"); | 610 | DRM_DEBUG("zone invalid\n"); |
618 | return -EINVAL; | 611 | return -EINVAL; |
619 | } | 612 | } |
@@ -728,24 +721,24 @@ int drm_addbufs_agp(drm_device_t * dev, drm_buf_desc_t * request) | |||
728 | EXPORT_SYMBOL(drm_addbufs_agp); | 721 | EXPORT_SYMBOL(drm_addbufs_agp); |
729 | #endif /* __OS_HAS_AGP */ | 722 | #endif /* __OS_HAS_AGP */ |
730 | 723 | ||
731 | int drm_addbufs_pci(drm_device_t * dev, drm_buf_desc_t * request) | 724 | int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request) |
732 | { | 725 | { |
733 | drm_device_dma_t *dma = dev->dma; | 726 | struct drm_device_dma *dma = dev->dma; |
734 | int count; | 727 | int count; |
735 | int order; | 728 | int order; |
736 | int size; | 729 | int size; |
737 | int total; | 730 | int total; |
738 | int page_order; | 731 | int page_order; |
739 | drm_buf_entry_t *entry; | 732 | struct drm_buf_entry *entry; |
740 | drm_dma_handle_t *dmah; | 733 | drm_dma_handle_t *dmah; |
741 | drm_buf_t *buf; | 734 | struct drm_buf *buf; |
742 | int alignment; | 735 | int alignment; |
743 | unsigned long offset; | 736 | unsigned long offset; |
744 | int i; | 737 | int i; |
745 | int byte_count; | 738 | int byte_count; |
746 | int page_count; | 739 | int page_count; |
747 | unsigned long *temp_pagelist; | 740 | unsigned long *temp_pagelist; |
748 | drm_buf_t **temp_buflist; | 741 | struct drm_buf **temp_buflist; |
749 | 742 | ||
750 | if (!drm_core_check_feature(dev, DRIVER_PCI_DMA)) | 743 | if (!drm_core_check_feature(dev, DRIVER_PCI_DMA)) |
751 | return -EINVAL; | 744 | return -EINVAL; |
@@ -954,11 +947,11 @@ int drm_addbufs_pci(drm_device_t * dev, drm_buf_desc_t * request) | |||
954 | } | 947 | } |
955 | EXPORT_SYMBOL(drm_addbufs_pci); | 948 | EXPORT_SYMBOL(drm_addbufs_pci); |
956 | 949 | ||
957 | static int drm_addbufs_sg(drm_device_t * dev, drm_buf_desc_t * request) | 950 | static int drm_addbufs_sg(struct drm_device * dev, struct drm_buf_desc * request) |
958 | { | 951 | { |
959 | drm_device_dma_t *dma = dev->dma; | 952 | struct drm_device_dma *dma = dev->dma; |
960 | drm_buf_entry_t *entry; | 953 | struct drm_buf_entry *entry; |
961 | drm_buf_t *buf; | 954 | struct drm_buf *buf; |
962 | unsigned long offset; | 955 | unsigned long offset; |
963 | unsigned long agp_offset; | 956 | unsigned long agp_offset; |
964 | int count; | 957 | int count; |
@@ -969,7 +962,7 @@ static int drm_addbufs_sg(drm_device_t * dev, drm_buf_desc_t * request) | |||
969 | int total; | 962 | int total; |
970 | int byte_count; | 963 | int byte_count; |
971 | int i; | 964 | int i; |
972 | drm_buf_t **temp_buflist; | 965 | struct drm_buf **temp_buflist; |
973 | 966 | ||
974 | if (!drm_core_check_feature(dev, DRIVER_SG)) | 967 | if (!drm_core_check_feature(dev, DRIVER_SG)) |
975 | return -EINVAL; | 968 | return -EINVAL; |
@@ -1116,11 +1109,11 @@ static int drm_addbufs_sg(drm_device_t * dev, drm_buf_desc_t * request) | |||
1116 | return 0; | 1109 | return 0; |
1117 | } | 1110 | } |
1118 | 1111 | ||
1119 | static int drm_addbufs_fb(drm_device_t * dev, drm_buf_desc_t * request) | 1112 | static int drm_addbufs_fb(struct drm_device * dev, struct drm_buf_desc * request) |
1120 | { | 1113 | { |
1121 | drm_device_dma_t *dma = dev->dma; | 1114 | struct drm_device_dma *dma = dev->dma; |
1122 | drm_buf_entry_t *entry; | 1115 | struct drm_buf_entry *entry; |
1123 | drm_buf_t *buf; | 1116 | struct drm_buf *buf; |
1124 | unsigned long offset; | 1117 | unsigned long offset; |
1125 | unsigned long agp_offset; | 1118 | unsigned long agp_offset; |
1126 | int count; | 1119 | int count; |
@@ -1131,7 +1124,7 @@ static int drm_addbufs_fb(drm_device_t * dev, drm_buf_desc_t * request) | |||
1131 | int total; | 1124 | int total; |
1132 | int byte_count; | 1125 | int byte_count; |
1133 | int i; | 1126 | int i; |
1134 | drm_buf_t **temp_buflist; | 1127 | struct drm_buf **temp_buflist; |
1135 | 1128 | ||
1136 | if (!drm_core_check_feature(dev, DRIVER_FB_DMA)) | 1129 | if (!drm_core_check_feature(dev, DRIVER_FB_DMA)) |
1137 | return -EINVAL; | 1130 | return -EINVAL; |
@@ -1283,7 +1276,7 @@ static int drm_addbufs_fb(drm_device_t * dev, drm_buf_desc_t * request) | |||
1283 | * \param inode device inode. | 1276 | * \param inode device inode. |
1284 | * \param filp file pointer. | 1277 | * \param filp file pointer. |
1285 | * \param cmd command. | 1278 | * \param cmd command. |
1286 | * \param arg pointer to a drm_buf_desc_t request. | 1279 | * \param arg pointer to a struct drm_buf_desc request. |
1287 | * \return zero on success or a negative number on failure. | 1280 | * \return zero on success or a negative number on failure. |
1288 | * | 1281 | * |
1289 | * According with the memory type specified in drm_buf_desc::flags and the | 1282 | * According with the memory type specified in drm_buf_desc::flags and the |
@@ -1294,15 +1287,15 @@ static int drm_addbufs_fb(drm_device_t * dev, drm_buf_desc_t * request) | |||
1294 | int drm_addbufs(struct inode *inode, struct file *filp, | 1287 | int drm_addbufs(struct inode *inode, struct file *filp, |
1295 | unsigned int cmd, unsigned long arg) | 1288 | unsigned int cmd, unsigned long arg) |
1296 | { | 1289 | { |
1297 | drm_buf_desc_t request; | 1290 | struct drm_buf_desc request; |
1298 | drm_file_t *priv = filp->private_data; | 1291 | struct drm_file *priv = filp->private_data; |
1299 | drm_device_t *dev = priv->head->dev; | 1292 | struct drm_device *dev = priv->head->dev; |
1300 | int ret; | 1293 | int ret; |
1301 | 1294 | ||
1302 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) | 1295 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) |
1303 | return -EINVAL; | 1296 | return -EINVAL; |
1304 | 1297 | ||
1305 | if (copy_from_user(&request, (drm_buf_desc_t __user *) arg, | 1298 | if (copy_from_user(&request, (struct drm_buf_desc __user *) arg, |
1306 | sizeof(request))) | 1299 | sizeof(request))) |
1307 | return -EFAULT; | 1300 | return -EFAULT; |
1308 | 1301 | ||
@@ -1346,11 +1339,11 @@ int drm_addbufs(struct inode *inode, struct file *filp, | |||
1346 | int drm_infobufs(struct inode *inode, struct file *filp, | 1339 | int drm_infobufs(struct inode *inode, struct file *filp, |
1347 | unsigned int cmd, unsigned long arg) | 1340 | unsigned int cmd, unsigned long arg) |
1348 | { | 1341 | { |
1349 | drm_file_t *priv = filp->private_data; | 1342 | struct drm_file *priv = filp->private_data; |
1350 | drm_device_t *dev = priv->head->dev; | 1343 | struct drm_device *dev = priv->head->dev; |
1351 | drm_device_dma_t *dma = dev->dma; | 1344 | struct drm_device_dma *dma = dev->dma; |
1352 | drm_buf_info_t request; | 1345 | struct drm_buf_info request; |
1353 | drm_buf_info_t __user *argp = (void __user *)arg; | 1346 | struct drm_buf_info __user *argp = (void __user *)arg; |
1354 | int i; | 1347 | int i; |
1355 | int count; | 1348 | int count; |
1356 | 1349 | ||
@@ -1381,10 +1374,10 @@ int drm_infobufs(struct inode *inode, struct file *filp, | |||
1381 | if (request.count >= count) { | 1374 | if (request.count >= count) { |
1382 | for (i = 0, count = 0; i < DRM_MAX_ORDER + 1; i++) { | 1375 | for (i = 0, count = 0; i < DRM_MAX_ORDER + 1; i++) { |
1383 | if (dma->bufs[i].buf_count) { | 1376 | if (dma->bufs[i].buf_count) { |
1384 | drm_buf_desc_t __user *to = | 1377 | struct drm_buf_desc __user *to = |
1385 | &request.list[count]; | 1378 | &request.list[count]; |
1386 | drm_buf_entry_t *from = &dma->bufs[i]; | 1379 | struct drm_buf_entry *from = &dma->bufs[i]; |
1387 | drm_freelist_t *list = &dma->bufs[i].freelist; | 1380 | struct drm_freelist *list = &dma->bufs[i].freelist; |
1388 | if (copy_to_user(&to->count, | 1381 | if (copy_to_user(&to->count, |
1389 | &from->buf_count, | 1382 | &from->buf_count, |
1390 | sizeof(from->buf_count)) || | 1383 | sizeof(from->buf_count)) || |
@@ -1434,12 +1427,12 @@ int drm_infobufs(struct inode *inode, struct file *filp, | |||
1434 | int drm_markbufs(struct inode *inode, struct file *filp, | 1427 | int drm_markbufs(struct inode *inode, struct file *filp, |
1435 | unsigned int cmd, unsigned long arg) | 1428 | unsigned int cmd, unsigned long arg) |
1436 | { | 1429 | { |
1437 | drm_file_t *priv = filp->private_data; | 1430 | struct drm_file *priv = filp->private_data; |
1438 | drm_device_t *dev = priv->head->dev; | 1431 | struct drm_device *dev = priv->head->dev; |
1439 | drm_device_dma_t *dma = dev->dma; | 1432 | struct drm_device_dma *dma = dev->dma; |
1440 | drm_buf_desc_t request; | 1433 | struct drm_buf_desc request; |
1441 | int order; | 1434 | int order; |
1442 | drm_buf_entry_t *entry; | 1435 | struct drm_buf_entry *entry; |
1443 | 1436 | ||
1444 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) | 1437 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) |
1445 | return -EINVAL; | 1438 | return -EINVAL; |
@@ -1448,7 +1441,7 @@ int drm_markbufs(struct inode *inode, struct file *filp, | |||
1448 | return -EINVAL; | 1441 | return -EINVAL; |
1449 | 1442 | ||
1450 | if (copy_from_user(&request, | 1443 | if (copy_from_user(&request, |
1451 | (drm_buf_desc_t __user *) arg, sizeof(request))) | 1444 | (struct drm_buf_desc __user *) arg, sizeof(request))) |
1452 | return -EFAULT; | 1445 | return -EFAULT; |
1453 | 1446 | ||
1454 | DRM_DEBUG("%d, %d, %d\n", | 1447 | DRM_DEBUG("%d, %d, %d\n", |
@@ -1484,13 +1477,13 @@ int drm_markbufs(struct inode *inode, struct file *filp, | |||
1484 | int drm_freebufs(struct inode *inode, struct file *filp, | 1477 | int drm_freebufs(struct inode *inode, struct file *filp, |
1485 | unsigned int cmd, unsigned long arg) | 1478 | unsigned int cmd, unsigned long arg) |
1486 | { | 1479 | { |
1487 | drm_file_t *priv = filp->private_data; | 1480 | struct drm_file *priv = filp->private_data; |
1488 | drm_device_t *dev = priv->head->dev; | 1481 | struct drm_device *dev = priv->head->dev; |
1489 | drm_device_dma_t *dma = dev->dma; | 1482 | struct drm_device_dma *dma = dev->dma; |
1490 | drm_buf_free_t request; | 1483 | struct drm_buf_free request; |
1491 | int i; | 1484 | int i; |
1492 | int idx; | 1485 | int idx; |
1493 | drm_buf_t *buf; | 1486 | struct drm_buf *buf; |
1494 | 1487 | ||
1495 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) | 1488 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) |
1496 | return -EINVAL; | 1489 | return -EINVAL; |
@@ -1499,7 +1492,7 @@ int drm_freebufs(struct inode *inode, struct file *filp, | |||
1499 | return -EINVAL; | 1492 | return -EINVAL; |
1500 | 1493 | ||
1501 | if (copy_from_user(&request, | 1494 | if (copy_from_user(&request, |
1502 | (drm_buf_free_t __user *) arg, sizeof(request))) | 1495 | (struct drm_buf_free __user *) arg, sizeof(request))) |
1503 | return -EFAULT; | 1496 | return -EFAULT; |
1504 | 1497 | ||
1505 | DRM_DEBUG("%d\n", request.count); | 1498 | DRM_DEBUG("%d\n", request.count); |
@@ -1540,15 +1533,15 @@ int drm_freebufs(struct inode *inode, struct file *filp, | |||
1540 | int drm_mapbufs(struct inode *inode, struct file *filp, | 1533 | int drm_mapbufs(struct inode *inode, struct file *filp, |
1541 | unsigned int cmd, unsigned long arg) | 1534 | unsigned int cmd, unsigned long arg) |
1542 | { | 1535 | { |
1543 | drm_file_t *priv = filp->private_data; | 1536 | struct drm_file *priv = filp->private_data; |
1544 | drm_device_t *dev = priv->head->dev; | 1537 | struct drm_device *dev = priv->head->dev; |
1545 | drm_device_dma_t *dma = dev->dma; | 1538 | struct drm_device_dma *dma = dev->dma; |
1546 | drm_buf_map_t __user *argp = (void __user *)arg; | 1539 | struct drm_buf_map __user *argp = (void __user *)arg; |
1547 | int retcode = 0; | 1540 | int retcode = 0; |
1548 | const int zero = 0; | 1541 | const int zero = 0; |
1549 | unsigned long virtual; | 1542 | unsigned long virtual; |
1550 | unsigned long address; | 1543 | unsigned long address; |
1551 | drm_buf_map_t request; | 1544 | struct drm_buf_map request; |
1552 | int i; | 1545 | int i; |
1553 | 1546 | ||
1554 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) | 1547 | if (!drm_core_check_feature(dev, DRIVER_HAVE_DMA)) |
@@ -1574,7 +1567,7 @@ int drm_mapbufs(struct inode *inode, struct file *filp, | |||
1574 | && (dma->flags & _DRM_DMA_USE_SG)) | 1567 | && (dma->flags & _DRM_DMA_USE_SG)) |
1575 | || (drm_core_check_feature(dev, DRIVER_FB_DMA) | 1568 | || (drm_core_check_feature(dev, DRIVER_FB_DMA) |
1576 | && (dma->flags & _DRM_DMA_USE_FB))) { | 1569 | && (dma->flags & _DRM_DMA_USE_FB))) { |
1577 | drm_map_t *map = dev->agp_buffer_map; | 1570 | struct drm_map *map = dev->agp_buffer_map; |
1578 | unsigned long token = dev->agp_buffer_token; | 1571 | unsigned long token = dev->agp_buffer_token; |
1579 | 1572 | ||
1580 | if (!map) { | 1573 | if (!map) { |
diff --git a/drivers/char/drm/drm_context.c b/drivers/char/drm/drm_context.c index 83094c73da67..7fc055adec25 100644 --- a/drivers/char/drm/drm_context.c +++ b/drivers/char/drm/drm_context.c | |||
@@ -56,7 +56,7 @@ | |||
56 | * in drm_device::context_sareas, while holding the drm_device::struct_mutex | 56 | * in drm_device::context_sareas, while holding the drm_device::struct_mutex |
57 | * lock. | 57 | * lock. |
58 | */ | 58 | */ |
59 | void drm_ctxbitmap_free(drm_device_t * dev, int ctx_handle) | 59 | void drm_ctxbitmap_free(struct drm_device * dev, int ctx_handle) |
60 | { | 60 | { |
61 | if (ctx_handle < 0) | 61 | if (ctx_handle < 0) |
62 | goto failed; | 62 | goto failed; |
@@ -85,7 +85,7 @@ void drm_ctxbitmap_free(drm_device_t * dev, int ctx_handle) | |||
85 | * drm_device::context_sareas to accommodate the new entry while holding the | 85 | * drm_device::context_sareas to accommodate the new entry while holding the |
86 | * drm_device::struct_mutex lock. | 86 | * drm_device::struct_mutex lock. |
87 | */ | 87 | */ |
88 | static int drm_ctxbitmap_next(drm_device_t * dev) | 88 | static int drm_ctxbitmap_next(struct drm_device * dev) |
89 | { | 89 | { |
90 | int bit; | 90 | int bit; |
91 | 91 | ||
@@ -100,7 +100,7 @@ static int drm_ctxbitmap_next(drm_device_t * dev) | |||
100 | if ((bit + 1) > dev->max_context) { | 100 | if ((bit + 1) > dev->max_context) { |
101 | dev->max_context = (bit + 1); | 101 | dev->max_context = (bit + 1); |
102 | if (dev->context_sareas) { | 102 | if (dev->context_sareas) { |
103 | drm_map_t **ctx_sareas; | 103 | struct drm_map **ctx_sareas; |
104 | 104 | ||
105 | ctx_sareas = drm_realloc(dev->context_sareas, | 105 | ctx_sareas = drm_realloc(dev->context_sareas, |
106 | (dev->max_context - | 106 | (dev->max_context - |
@@ -147,7 +147,7 @@ static int drm_ctxbitmap_next(drm_device_t * dev) | |||
147 | * Allocates and initialize drm_device::ctx_bitmap and drm_device::context_sareas, while holding | 147 | * Allocates and initialize drm_device::ctx_bitmap and drm_device::context_sareas, while holding |
148 | * the drm_device::struct_mutex lock. | 148 | * the drm_device::struct_mutex lock. |
149 | */ | 149 | */ |
150 | int drm_ctxbitmap_init(drm_device_t * dev) | 150 | int drm_ctxbitmap_init(struct drm_device * dev) |
151 | { | 151 | { |
152 | int i; | 152 | int i; |
153 | int temp; | 153 | int temp; |
@@ -180,7 +180,7 @@ int drm_ctxbitmap_init(drm_device_t * dev) | |||
180 | * Frees drm_device::ctx_bitmap and drm_device::context_sareas, while holding | 180 | * Frees drm_device::ctx_bitmap and drm_device::context_sareas, while holding |
181 | * the drm_device::struct_mutex lock. | 181 | * the drm_device::struct_mutex lock. |
182 | */ | 182 | */ |
183 | void drm_ctxbitmap_cleanup(drm_device_t * dev) | 183 | void drm_ctxbitmap_cleanup(struct drm_device * dev) |
184 | { | 184 | { |
185 | mutex_lock(&dev->struct_mutex); | 185 | mutex_lock(&dev->struct_mutex); |
186 | if (dev->context_sareas) | 186 | if (dev->context_sareas) |
@@ -212,12 +212,12 @@ void drm_ctxbitmap_cleanup(drm_device_t * dev) | |||
212 | int drm_getsareactx(struct inode *inode, struct file *filp, | 212 | int drm_getsareactx(struct inode *inode, struct file *filp, |
213 | unsigned int cmd, unsigned long arg) | 213 | unsigned int cmd, unsigned long arg) |
214 | { | 214 | { |
215 | drm_file_t *priv = filp->private_data; | 215 | struct drm_file *priv = filp->private_data; |
216 | drm_device_t *dev = priv->head->dev; | 216 | struct drm_device *dev = priv->head->dev; |
217 | drm_ctx_priv_map_t __user *argp = (void __user *)arg; | 217 | struct drm_ctx_priv_map __user *argp = (void __user *)arg; |
218 | drm_ctx_priv_map_t request; | 218 | struct drm_ctx_priv_map request; |
219 | drm_map_t *map; | 219 | struct drm_map *map; |
220 | drm_map_list_t *_entry; | 220 | struct drm_map_list *_entry; |
221 | 221 | ||
222 | if (copy_from_user(&request, argp, sizeof(request))) | 222 | if (copy_from_user(&request, argp, sizeof(request))) |
223 | return -EFAULT; | 223 | return -EFAULT; |
@@ -233,7 +233,7 @@ int drm_getsareactx(struct inode *inode, struct file *filp, | |||
233 | mutex_unlock(&dev->struct_mutex); | 233 | mutex_unlock(&dev->struct_mutex); |
234 | 234 | ||
235 | request.handle = NULL; | 235 | request.handle = NULL; |
236 | list_for_each_entry(_entry, &dev->maplist->head, head) { | 236 | list_for_each_entry(_entry, &dev->maplist, head) { |
237 | if (_entry->map == map) { | 237 | if (_entry->map == map) { |
238 | request.handle = | 238 | request.handle = |
239 | (void *)(unsigned long)_entry->user_token; | 239 | (void *)(unsigned long)_entry->user_token; |
@@ -263,20 +263,19 @@ int drm_getsareactx(struct inode *inode, struct file *filp, | |||
263 | int drm_setsareactx(struct inode *inode, struct file *filp, | 263 | int drm_setsareactx(struct inode *inode, struct file *filp, |
264 | unsigned int cmd, unsigned long arg) | 264 | unsigned int cmd, unsigned long arg) |
265 | { | 265 | { |
266 | drm_file_t *priv = filp->private_data; | 266 | struct drm_file *priv = filp->private_data; |
267 | drm_device_t *dev = priv->head->dev; | 267 | struct drm_device *dev = priv->head->dev; |
268 | drm_ctx_priv_map_t request; | 268 | struct drm_ctx_priv_map request; |
269 | drm_map_t *map = NULL; | 269 | struct drm_map *map = NULL; |
270 | drm_map_list_t *r_list = NULL; | 270 | struct drm_map_list *r_list = NULL; |
271 | struct list_head *list; | ||
272 | 271 | ||
273 | if (copy_from_user(&request, | 272 | if (copy_from_user(&request, |
274 | (drm_ctx_priv_map_t __user *) arg, sizeof(request))) | 273 | (struct drm_ctx_priv_map __user *) arg, |
274 | sizeof(request))) | ||
275 | return -EFAULT; | 275 | return -EFAULT; |
276 | 276 | ||
277 | mutex_lock(&dev->struct_mutex); | 277 | mutex_lock(&dev->struct_mutex); |
278 | list_for_each(list, &dev->maplist->head) { | 278 | list_for_each_entry(r_list, &dev->maplist, head) { |
279 | r_list = list_entry(list, drm_map_list_t, head); | ||
280 | if (r_list->map | 279 | if (r_list->map |
281 | && r_list->user_token == (unsigned long)request.handle) | 280 | && r_list->user_token == (unsigned long)request.handle) |
282 | goto found; | 281 | goto found; |
@@ -314,7 +313,7 @@ int drm_setsareactx(struct inode *inode, struct file *filp, | |||
314 | * | 313 | * |
315 | * Attempt to set drm_device::context_flag. | 314 | * Attempt to set drm_device::context_flag. |
316 | */ | 315 | */ |
317 | static int drm_context_switch(drm_device_t * dev, int old, int new) | 316 | static int drm_context_switch(struct drm_device * dev, int old, int new) |
318 | { | 317 | { |
319 | if (test_and_set_bit(0, &dev->context_flag)) { | 318 | if (test_and_set_bit(0, &dev->context_flag)) { |
320 | DRM_ERROR("Reentering -- FIXME\n"); | 319 | DRM_ERROR("Reentering -- FIXME\n"); |
@@ -342,7 +341,7 @@ static int drm_context_switch(drm_device_t * dev, int old, int new) | |||
342 | * hardware lock is held, clears the drm_device::context_flag and wakes up | 341 | * hardware lock is held, clears the drm_device::context_flag and wakes up |
343 | * drm_device::context_wait. | 342 | * drm_device::context_wait. |
344 | */ | 343 | */ |
345 | static int drm_context_switch_complete(drm_device_t * dev, int new) | 344 | static int drm_context_switch_complete(struct drm_device * dev, int new) |
346 | { | 345 | { |
347 | dev->last_context = new; /* PRE/POST: This is the _only_ writer. */ | 346 | dev->last_context = new; /* PRE/POST: This is the _only_ writer. */ |
348 | dev->last_switch = jiffies; | 347 | dev->last_switch = jiffies; |
@@ -372,9 +371,9 @@ static int drm_context_switch_complete(drm_device_t * dev, int new) | |||
372 | int drm_resctx(struct inode *inode, struct file *filp, | 371 | int drm_resctx(struct inode *inode, struct file *filp, |
373 | unsigned int cmd, unsigned long arg) | 372 | unsigned int cmd, unsigned long arg) |
374 | { | 373 | { |
375 | drm_ctx_res_t res; | 374 | struct drm_ctx_res res; |
376 | drm_ctx_t __user *argp = (void __user *)arg; | 375 | struct drm_ctx_res __user *argp = (void __user *)arg; |
377 | drm_ctx_t ctx; | 376 | struct drm_ctx ctx; |
378 | int i; | 377 | int i; |
379 | 378 | ||
380 | if (copy_from_user(&res, argp, sizeof(res))) | 379 | if (copy_from_user(&res, argp, sizeof(res))) |
@@ -409,11 +408,11 @@ int drm_resctx(struct inode *inode, struct file *filp, | |||
409 | int drm_addctx(struct inode *inode, struct file *filp, | 408 | int drm_addctx(struct inode *inode, struct file *filp, |
410 | unsigned int cmd, unsigned long arg) | 409 | unsigned int cmd, unsigned long arg) |
411 | { | 410 | { |
412 | drm_file_t *priv = filp->private_data; | 411 | struct drm_file *priv = filp->private_data; |
413 | drm_device_t *dev = priv->head->dev; | 412 | struct drm_device *dev = priv->head->dev; |
414 | drm_ctx_list_t *ctx_entry; | 413 | struct drm_ctx_list *ctx_entry; |
415 | drm_ctx_t __user *argp = (void __user *)arg; | 414 | struct drm_ctx __user *argp = (void __user *)arg; |
416 | drm_ctx_t ctx; | 415 | struct drm_ctx ctx; |
417 | 416 | ||
418 | if (copy_from_user(&ctx, argp, sizeof(ctx))) | 417 | if (copy_from_user(&ctx, argp, sizeof(ctx))) |
419 | return -EFAULT; | 418 | return -EFAULT; |
@@ -449,7 +448,7 @@ int drm_addctx(struct inode *inode, struct file *filp, | |||
449 | ctx_entry->tag = priv; | 448 | ctx_entry->tag = priv; |
450 | 449 | ||
451 | mutex_lock(&dev->ctxlist_mutex); | 450 | mutex_lock(&dev->ctxlist_mutex); |
452 | list_add(&ctx_entry->head, &dev->ctxlist->head); | 451 | list_add(&ctx_entry->head, &dev->ctxlist); |
453 | ++dev->ctx_count; | 452 | ++dev->ctx_count; |
454 | mutex_unlock(&dev->ctxlist_mutex); | 453 | mutex_unlock(&dev->ctxlist_mutex); |
455 | 454 | ||
@@ -477,8 +476,8 @@ int drm_modctx(struct inode *inode, struct file *filp, | |||
477 | int drm_getctx(struct inode *inode, struct file *filp, | 476 | int drm_getctx(struct inode *inode, struct file *filp, |
478 | unsigned int cmd, unsigned long arg) | 477 | unsigned int cmd, unsigned long arg) |
479 | { | 478 | { |
480 | drm_ctx_t __user *argp = (void __user *)arg; | 479 | struct drm_ctx __user *argp = (void __user *)arg; |
481 | drm_ctx_t ctx; | 480 | struct drm_ctx ctx; |
482 | 481 | ||
483 | if (copy_from_user(&ctx, argp, sizeof(ctx))) | 482 | if (copy_from_user(&ctx, argp, sizeof(ctx))) |
484 | return -EFAULT; | 483 | return -EFAULT; |
@@ -505,11 +504,11 @@ int drm_getctx(struct inode *inode, struct file *filp, | |||
505 | int drm_switchctx(struct inode *inode, struct file *filp, | 504 | int drm_switchctx(struct inode *inode, struct file *filp, |
506 | unsigned int cmd, unsigned long arg) | 505 | unsigned int cmd, unsigned long arg) |
507 | { | 506 | { |
508 | drm_file_t *priv = filp->private_data; | 507 | struct drm_file *priv = filp->private_data; |
509 | drm_device_t *dev = priv->head->dev; | 508 | struct drm_device *dev = priv->head->dev; |
510 | drm_ctx_t ctx; | 509 | struct drm_ctx ctx; |
511 | 510 | ||
512 | if (copy_from_user(&ctx, (drm_ctx_t __user *) arg, sizeof(ctx))) | 511 | if (copy_from_user(&ctx, (struct drm_ctx __user *) arg, sizeof(ctx))) |
513 | return -EFAULT; | 512 | return -EFAULT; |
514 | 513 | ||
515 | DRM_DEBUG("%d\n", ctx.handle); | 514 | DRM_DEBUG("%d\n", ctx.handle); |
@@ -530,11 +529,11 @@ int drm_switchctx(struct inode *inode, struct file *filp, | |||
530 | int drm_newctx(struct inode *inode, struct file *filp, | 529 | int drm_newctx(struct inode *inode, struct file *filp, |
531 | unsigned int cmd, unsigned long arg) | 530 | unsigned int cmd, unsigned long arg) |
532 | { | 531 | { |
533 | drm_file_t *priv = filp->private_data; | 532 | struct drm_file *priv = filp->private_data; |
534 | drm_device_t *dev = priv->head->dev; | 533 | struct drm_device *dev = priv->head->dev; |
535 | drm_ctx_t ctx; | 534 | struct drm_ctx ctx; |
536 | 535 | ||
537 | if (copy_from_user(&ctx, (drm_ctx_t __user *) arg, sizeof(ctx))) | 536 | if (copy_from_user(&ctx, (struct drm_ctx __user *) arg, sizeof(ctx))) |
538 | return -EFAULT; | 537 | return -EFAULT; |
539 | 538 | ||
540 | DRM_DEBUG("%d\n", ctx.handle); | 539 | DRM_DEBUG("%d\n", ctx.handle); |
@@ -557,11 +556,11 @@ int drm_newctx(struct inode *inode, struct file *filp, | |||
557 | int drm_rmctx(struct inode *inode, struct file *filp, | 556 | int drm_rmctx(struct inode *inode, struct file *filp, |
558 | unsigned int cmd, unsigned long arg) | 557 | unsigned int cmd, unsigned long arg) |
559 | { | 558 | { |
560 | drm_file_t *priv = filp->private_data; | 559 | struct drm_file *priv = filp->private_data; |
561 | drm_device_t *dev = priv->head->dev; | 560 | struct drm_device *dev = priv->head->dev; |
562 | drm_ctx_t ctx; | 561 | struct drm_ctx ctx; |
563 | 562 | ||
564 | if (copy_from_user(&ctx, (drm_ctx_t __user *) arg, sizeof(ctx))) | 563 | if (copy_from_user(&ctx, (struct drm_ctx __user *) arg, sizeof(ctx))) |
565 | return -EFAULT; | 564 | return -EFAULT; |
566 | 565 | ||
567 | DRM_DEBUG("%d\n", ctx.handle); | 566 | DRM_DEBUG("%d\n", ctx.handle); |
@@ -575,10 +574,10 @@ int drm_rmctx(struct inode *inode, struct file *filp, | |||
575 | } | 574 | } |
576 | 575 | ||
577 | mutex_lock(&dev->ctxlist_mutex); | 576 | mutex_lock(&dev->ctxlist_mutex); |
578 | if (!list_empty(&dev->ctxlist->head)) { | 577 | if (!list_empty(&dev->ctxlist)) { |
579 | drm_ctx_list_t *pos, *n; | 578 | struct drm_ctx_list *pos, *n; |
580 | 579 | ||
581 | list_for_each_entry_safe(pos, n, &dev->ctxlist->head, head) { | 580 | list_for_each_entry_safe(pos, n, &dev->ctxlist, head) { |
582 | if (pos->handle == ctx.handle) { | 581 | if (pos->handle == ctx.handle) { |
583 | list_del(&pos->head); | 582 | list_del(&pos->head); |
584 | drm_free(pos, sizeof(*pos), DRM_MEM_CTXLIST); | 583 | drm_free(pos, sizeof(*pos), DRM_MEM_CTXLIST); |
diff --git a/drivers/char/drm/drm_dma.c b/drivers/char/drm/drm_dma.c index 32ed19c9ec1c..802fbdbfe1b3 100644 --- a/drivers/char/drm/drm_dma.c +++ b/drivers/char/drm/drm_dma.c | |||
@@ -43,7 +43,7 @@ | |||
43 | * | 43 | * |
44 | * Allocate and initialize a drm_device_dma structure. | 44 | * Allocate and initialize a drm_device_dma structure. |
45 | */ | 45 | */ |
46 | int drm_dma_setup(drm_device_t * dev) | 46 | int drm_dma_setup(struct drm_device *dev) |
47 | { | 47 | { |
48 | int i; | 48 | int i; |
49 | 49 | ||
@@ -67,9 +67,9 @@ int drm_dma_setup(drm_device_t * dev) | |||
67 | * Free all pages associated with DMA buffers, the buffers and pages lists, and | 67 | * Free all pages associated with DMA buffers, the buffers and pages lists, and |
68 | * finally the drm_device::dma structure itself. | 68 | * finally the drm_device::dma structure itself. |
69 | */ | 69 | */ |
70 | void drm_dma_takedown(drm_device_t * dev) | 70 | void drm_dma_takedown(struct drm_device *dev) |
71 | { | 71 | { |
72 | drm_device_dma_t *dma = dev->dma; | 72 | struct drm_device_dma *dma = dev->dma; |
73 | int i, j; | 73 | int i, j; |
74 | 74 | ||
75 | if (!dma) | 75 | if (!dma) |
@@ -129,7 +129,7 @@ void drm_dma_takedown(drm_device_t * dev) | |||
129 | * | 129 | * |
130 | * Resets the fields of \p buf. | 130 | * Resets the fields of \p buf. |
131 | */ | 131 | */ |
132 | void drm_free_buffer(drm_device_t * dev, drm_buf_t * buf) | 132 | void drm_free_buffer(struct drm_device *dev, struct drm_buf * buf) |
133 | { | 133 | { |
134 | if (!buf) | 134 | if (!buf) |
135 | return; | 135 | return; |
@@ -152,9 +152,9 @@ void drm_free_buffer(drm_device_t * dev, drm_buf_t * buf) | |||
152 | * | 152 | * |
153 | * Frees each buffer associated with \p filp not already on the hardware. | 153 | * Frees each buffer associated with \p filp not already on the hardware. |
154 | */ | 154 | */ |
155 | void drm_core_reclaim_buffers(drm_device_t * dev, struct file *filp) | 155 | void drm_core_reclaim_buffers(struct drm_device *dev, struct file *filp) |
156 | { | 156 | { |
157 | drm_device_dma_t *dma = dev->dma; | 157 | struct drm_device_dma *dma = dev->dma; |
158 | int i; | 158 | int i; |
159 | 159 | ||
160 | if (!dma) | 160 | if (!dma) |
diff --git a/drivers/char/drm/drm_drawable.c b/drivers/char/drm/drm_drawable.c index b33313be2547..309e585a5442 100644 --- a/drivers/char/drm/drm_drawable.c +++ b/drivers/char/drm/drm_drawable.c | |||
@@ -47,9 +47,9 @@ int drm_adddraw(DRM_IOCTL_ARGS) | |||
47 | int i, j; | 47 | int i, j; |
48 | u32 *bitfield = dev->drw_bitfield; | 48 | u32 *bitfield = dev->drw_bitfield; |
49 | unsigned int bitfield_length = dev->drw_bitfield_length; | 49 | unsigned int bitfield_length = dev->drw_bitfield_length; |
50 | drm_drawable_info_t **info = dev->drw_info; | 50 | struct drm_drawable_info **info = dev->drw_info; |
51 | unsigned int info_length = dev->drw_info_length; | 51 | unsigned int info_length = dev->drw_info_length; |
52 | drm_draw_t draw; | 52 | struct drm_draw draw; |
53 | 53 | ||
54 | for (i = 0, j = 0; i < bitfield_length; i++) { | 54 | for (i = 0, j = 0; i < bitfield_length; i++) { |
55 | if (bitfield[i] == ~0) | 55 | if (bitfield[i] == ~0) |
@@ -120,7 +120,7 @@ done: | |||
120 | 120 | ||
121 | spin_unlock_irqrestore(&dev->drw_lock, irqflags); | 121 | spin_unlock_irqrestore(&dev->drw_lock, irqflags); |
122 | 122 | ||
123 | DRM_COPY_TO_USER_IOCTL((drm_draw_t __user *)data, draw, sizeof(draw)); | 123 | DRM_COPY_TO_USER_IOCTL((struct drm_draw __user *)data, draw, sizeof(draw)); |
124 | 124 | ||
125 | return 0; | 125 | return 0; |
126 | } | 126 | } |
@@ -131,16 +131,16 @@ done: | |||
131 | int drm_rmdraw(DRM_IOCTL_ARGS) | 131 | int drm_rmdraw(DRM_IOCTL_ARGS) |
132 | { | 132 | { |
133 | DRM_DEVICE; | 133 | DRM_DEVICE; |
134 | drm_draw_t draw; | 134 | struct drm_draw draw; |
135 | int id, idx; | 135 | int id, idx; |
136 | unsigned int shift; | 136 | unsigned int shift; |
137 | unsigned long irqflags; | 137 | unsigned long irqflags; |
138 | u32 *bitfield = dev->drw_bitfield; | 138 | u32 *bitfield = dev->drw_bitfield; |
139 | unsigned int bitfield_length = dev->drw_bitfield_length; | 139 | unsigned int bitfield_length = dev->drw_bitfield_length; |
140 | drm_drawable_info_t **info = dev->drw_info; | 140 | struct drm_drawable_info **info = dev->drw_info; |
141 | unsigned int info_length = dev->drw_info_length; | 141 | unsigned int info_length = dev->drw_info_length; |
142 | 142 | ||
143 | DRM_COPY_FROM_USER_IOCTL(draw, (drm_draw_t __user *) data, | 143 | DRM_COPY_FROM_USER_IOCTL(draw, (struct drm_draw __user *) data, |
144 | sizeof(draw)); | 144 | sizeof(draw)); |
145 | 145 | ||
146 | id = draw.handle - 1; | 146 | id = draw.handle - 1; |
@@ -161,7 +161,7 @@ int drm_rmdraw(DRM_IOCTL_ARGS) | |||
161 | 161 | ||
162 | if (info[id]) { | 162 | if (info[id]) { |
163 | drm_free(info[id]->rects, info[id]->num_rects * | 163 | drm_free(info[id]->rects, info[id]->num_rects * |
164 | sizeof(drm_clip_rect_t), DRM_MEM_BUFS); | 164 | sizeof(struct drm_clip_rect), DRM_MEM_BUFS); |
165 | drm_free(info[id], sizeof(**info), DRM_MEM_BUFS); | 165 | drm_free(info[id], sizeof(**info), DRM_MEM_BUFS); |
166 | } | 166 | } |
167 | 167 | ||
@@ -230,15 +230,15 @@ int drm_rmdraw(DRM_IOCTL_ARGS) | |||
230 | 230 | ||
231 | int drm_update_drawable_info(DRM_IOCTL_ARGS) { | 231 | int drm_update_drawable_info(DRM_IOCTL_ARGS) { |
232 | DRM_DEVICE; | 232 | DRM_DEVICE; |
233 | drm_update_draw_t update; | 233 | struct drm_update_draw update; |
234 | unsigned int id, idx, shift; | 234 | unsigned int id, idx, shift; |
235 | u32 *bitfield = dev->drw_bitfield; | 235 | u32 *bitfield = dev->drw_bitfield; |
236 | unsigned long irqflags, bitfield_length = dev->drw_bitfield_length; | 236 | unsigned long irqflags, bitfield_length = dev->drw_bitfield_length; |
237 | drm_drawable_info_t *info; | 237 | struct drm_drawable_info *info; |
238 | drm_clip_rect_t *rects; | 238 | struct drm_clip_rect *rects; |
239 | int err; | 239 | int err; |
240 | 240 | ||
241 | DRM_COPY_FROM_USER_IOCTL(update, (drm_update_draw_t __user *) data, | 241 | DRM_COPY_FROM_USER_IOCTL(update, (struct drm_update_draw __user *) data, |
242 | sizeof(update)); | 242 | sizeof(update)); |
243 | 243 | ||
244 | id = update.handle - 1; | 244 | id = update.handle - 1; |
@@ -254,7 +254,7 @@ int drm_update_drawable_info(DRM_IOCTL_ARGS) { | |||
254 | info = dev->drw_info[id]; | 254 | info = dev->drw_info[id]; |
255 | 255 | ||
256 | if (!info) { | 256 | if (!info) { |
257 | info = drm_calloc(1, sizeof(drm_drawable_info_t), DRM_MEM_BUFS); | 257 | info = drm_calloc(1, sizeof(struct drm_drawable_info), DRM_MEM_BUFS); |
258 | 258 | ||
259 | if (!info) { | 259 | if (!info) { |
260 | DRM_ERROR("Failed to allocate drawable info memory\n"); | 260 | DRM_ERROR("Failed to allocate drawable info memory\n"); |
@@ -265,7 +265,7 @@ int drm_update_drawable_info(DRM_IOCTL_ARGS) { | |||
265 | switch (update.type) { | 265 | switch (update.type) { |
266 | case DRM_DRAWABLE_CLIPRECTS: | 266 | case DRM_DRAWABLE_CLIPRECTS: |
267 | if (update.num != info->num_rects) { | 267 | if (update.num != info->num_rects) { |
268 | rects = drm_alloc(update.num * sizeof(drm_clip_rect_t), | 268 | rects = drm_alloc(update.num * sizeof(struct drm_clip_rect), |
269 | DRM_MEM_BUFS); | 269 | DRM_MEM_BUFS); |
270 | } else | 270 | } else |
271 | rects = info->rects; | 271 | rects = info->rects; |
@@ -277,7 +277,7 @@ int drm_update_drawable_info(DRM_IOCTL_ARGS) { | |||
277 | } | 277 | } |
278 | 278 | ||
279 | if (update.num && DRM_COPY_FROM_USER(rects, | 279 | if (update.num && DRM_COPY_FROM_USER(rects, |
280 | (drm_clip_rect_t __user *) | 280 | (struct drm_clip_rect __user *) |
281 | (unsigned long)update.data, | 281 | (unsigned long)update.data, |
282 | update.num * | 282 | update.num * |
283 | sizeof(*rects))) { | 283 | sizeof(*rects))) { |
@@ -290,7 +290,7 @@ int drm_update_drawable_info(DRM_IOCTL_ARGS) { | |||
290 | 290 | ||
291 | if (rects != info->rects) { | 291 | if (rects != info->rects) { |
292 | drm_free(info->rects, info->num_rects * | 292 | drm_free(info->rects, info->num_rects * |
293 | sizeof(drm_clip_rect_t), DRM_MEM_BUFS); | 293 | sizeof(struct drm_clip_rect), DRM_MEM_BUFS); |
294 | } | 294 | } |
295 | 295 | ||
296 | info->rects = rects; | 296 | info->rects = rects; |
@@ -314,7 +314,7 @@ error: | |||
314 | drm_free(info, sizeof(*info), DRM_MEM_BUFS); | 314 | drm_free(info, sizeof(*info), DRM_MEM_BUFS); |
315 | else if (rects != dev->drw_info[id]->rects) | 315 | else if (rects != dev->drw_info[id]->rects) |
316 | drm_free(rects, update.num * | 316 | drm_free(rects, update.num * |
317 | sizeof(drm_clip_rect_t), DRM_MEM_BUFS); | 317 | sizeof(struct drm_clip_rect), DRM_MEM_BUFS); |
318 | 318 | ||
319 | return err; | 319 | return err; |
320 | } | 320 | } |
@@ -322,7 +322,7 @@ error: | |||
322 | /** | 322 | /** |
323 | * Caller must hold the drawable spinlock! | 323 | * Caller must hold the drawable spinlock! |
324 | */ | 324 | */ |
325 | drm_drawable_info_t *drm_get_drawable_info(drm_device_t *dev, drm_drawable_t id) { | 325 | struct drm_drawable_info *drm_get_drawable_info(struct drm_device *dev, drm_drawable_t id) { |
326 | u32 *bitfield = dev->drw_bitfield; | 326 | u32 *bitfield = dev->drw_bitfield; |
327 | unsigned int idx, shift; | 327 | unsigned int idx, shift; |
328 | 328 | ||
diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c index 8e77b7ed0f44..d5cf5cfccf78 100644 --- a/drivers/char/drm/drm_drv.c +++ b/drivers/char/drm/drm_drv.c | |||
@@ -129,11 +129,11 @@ static drm_ioctl_desc_t drm_ioctls[] = { | |||
129 | * | 129 | * |
130 | * \sa drm_device | 130 | * \sa drm_device |
131 | */ | 131 | */ |
132 | int drm_lastclose(drm_device_t * dev) | 132 | int drm_lastclose(struct drm_device * dev) |
133 | { | 133 | { |
134 | drm_magic_entry_t *pt, *next; | 134 | struct drm_magic_entry *pt, *next; |
135 | drm_map_list_t *r_list; | 135 | struct drm_map_list *r_list, *list_t; |
136 | drm_vma_entry_t *vma, *vma_next; | 136 | struct drm_vma_entry *vma, *vma_temp; |
137 | int i; | 137 | int i; |
138 | 138 | ||
139 | DRM_DEBUG("\n"); | 139 | DRM_DEBUG("\n"); |
@@ -154,11 +154,11 @@ int drm_lastclose(drm_device_t * dev) | |||
154 | /* Free drawable information memory */ | 154 | /* Free drawable information memory */ |
155 | for (i = 0; i < dev->drw_bitfield_length / sizeof(*dev->drw_bitfield); | 155 | for (i = 0; i < dev->drw_bitfield_length / sizeof(*dev->drw_bitfield); |
156 | i++) { | 156 | i++) { |
157 | drm_drawable_info_t *info = drm_get_drawable_info(dev, i); | 157 | struct drm_drawable_info *info = drm_get_drawable_info(dev, i); |
158 | 158 | ||
159 | if (info) { | 159 | if (info) { |
160 | drm_free(info->rects, info->num_rects * | 160 | drm_free(info->rects, info->num_rects * |
161 | sizeof(drm_clip_rect_t), DRM_MEM_BUFS); | 161 | sizeof(struct drm_clip_rect), DRM_MEM_BUFS); |
162 | drm_free(info, sizeof(*info), DRM_MEM_BUFS); | 162 | drm_free(info, sizeof(*info), DRM_MEM_BUFS); |
163 | } | 163 | } |
164 | } | 164 | } |
@@ -178,19 +178,17 @@ int drm_lastclose(drm_device_t * dev) | |||
178 | 178 | ||
179 | /* Clear AGP information */ | 179 | /* Clear AGP information */ |
180 | if (drm_core_has_AGP(dev) && dev->agp) { | 180 | if (drm_core_has_AGP(dev) && dev->agp) { |
181 | drm_agp_mem_t *entry; | 181 | struct drm_agp_mem *entry, *tempe; |
182 | drm_agp_mem_t *nexte; | ||
183 | 182 | ||
184 | /* Remove AGP resources, but leave dev->agp | 183 | /* Remove AGP resources, but leave dev->agp |
185 | intact until drv_cleanup is called. */ | 184 | intact until drv_cleanup is called. */ |
186 | for (entry = dev->agp->memory; entry; entry = nexte) { | 185 | list_for_each_entry_safe(entry, tempe, &dev->agp->memory, head) { |
187 | nexte = entry->next; | ||
188 | if (entry->bound) | 186 | if (entry->bound) |
189 | drm_unbind_agp(entry->memory); | 187 | drm_unbind_agp(entry->memory); |
190 | drm_free_agp(entry->memory, entry->pages); | 188 | drm_free_agp(entry->memory, entry->pages); |
191 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); | 189 | drm_free(entry, sizeof(*entry), DRM_MEM_AGPLISTS); |
192 | } | 190 | } |
193 | dev->agp->memory = NULL; | 191 | INIT_LIST_HEAD(&dev->agp->memory); |
194 | 192 | ||
195 | if (dev->agp->acquired) | 193 | if (dev->agp->acquired) |
196 | drm_agp_release(dev); | 194 | drm_agp_release(dev); |
@@ -204,20 +202,14 @@ int drm_lastclose(drm_device_t * dev) | |||
204 | } | 202 | } |
205 | 203 | ||
206 | /* Clear vma list (only built for debugging) */ | 204 | /* Clear vma list (only built for debugging) */ |
207 | if (dev->vmalist) { | 205 | list_for_each_entry_safe(vma, vma_temp, &dev->vmalist, head) { |
208 | for (vma = dev->vmalist; vma; vma = vma_next) { | 206 | list_del(&vma->head); |
209 | vma_next = vma->next; | 207 | drm_free(vma, sizeof(*vma), DRM_MEM_VMAS); |
210 | drm_free(vma, sizeof(*vma), DRM_MEM_VMAS); | ||
211 | } | ||
212 | dev->vmalist = NULL; | ||
213 | } | 208 | } |
214 | 209 | ||
215 | if (dev->maplist) { | 210 | list_for_each_entry_safe(r_list, list_t, &dev->maplist, head) { |
216 | while (!list_empty(&dev->maplist->head)) { | 211 | drm_rmmap_locked(dev, r_list->map); |
217 | struct list_head *list = dev->maplist->head.next; | 212 | r_list = NULL; |
218 | r_list = list_entry(list, drm_map_list_t, head); | ||
219 | drm_rmmap_locked(dev, r_list->map); | ||
220 | } | ||
221 | } | 213 | } |
222 | 214 | ||
223 | if (drm_core_check_feature(dev, DRIVER_DMA_QUEUE) && dev->queuelist) { | 215 | if (drm_core_check_feature(dev, DRIVER_DMA_QUEUE) && dev->queuelist) { |
@@ -298,7 +290,7 @@ EXPORT_SYMBOL(drm_init); | |||
298 | * | 290 | * |
299 | * \sa drm_init | 291 | * \sa drm_init |
300 | */ | 292 | */ |
301 | static void drm_cleanup(drm_device_t * dev) | 293 | static void drm_cleanup(struct drm_device * dev) |
302 | { | 294 | { |
303 | DRM_DEBUG("\n"); | 295 | DRM_DEBUG("\n"); |
304 | 296 | ||
@@ -309,11 +301,7 @@ static void drm_cleanup(drm_device_t * dev) | |||
309 | 301 | ||
310 | drm_lastclose(dev); | 302 | drm_lastclose(dev); |
311 | 303 | ||
312 | if (dev->maplist) { | 304 | drm_ht_remove(&dev->map_hash); |
313 | drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS); | ||
314 | dev->maplist = NULL; | ||
315 | drm_ht_remove(&dev->map_hash); | ||
316 | } | ||
317 | 305 | ||
318 | drm_ctxbitmap_cleanup(dev); | 306 | drm_ctxbitmap_cleanup(dev); |
319 | 307 | ||
@@ -342,8 +330,8 @@ static void drm_cleanup(drm_device_t * dev) | |||
342 | void drm_exit(struct drm_driver *driver) | 330 | void drm_exit(struct drm_driver *driver) |
343 | { | 331 | { |
344 | int i; | 332 | int i; |
345 | drm_device_t *dev = NULL; | 333 | struct drm_device *dev = NULL; |
346 | drm_head_t *head; | 334 | struct drm_head *head; |
347 | 335 | ||
348 | DRM_DEBUG("\n"); | 336 | DRM_DEBUG("\n"); |
349 | 337 | ||
@@ -442,10 +430,10 @@ module_exit(drm_core_exit); | |||
442 | static int drm_version(struct inode *inode, struct file *filp, | 430 | static int drm_version(struct inode *inode, struct file *filp, |
443 | unsigned int cmd, unsigned long arg) | 431 | unsigned int cmd, unsigned long arg) |
444 | { | 432 | { |
445 | drm_file_t *priv = filp->private_data; | 433 | struct drm_file *priv = filp->private_data; |
446 | drm_device_t *dev = priv->head->dev; | 434 | struct drm_device *dev = priv->head->dev; |
447 | drm_version_t __user *argp = (void __user *)arg; | 435 | struct drm_version __user *argp = (void __user *)arg; |
448 | drm_version_t version; | 436 | struct drm_version version; |
449 | int len; | 437 | int len; |
450 | 438 | ||
451 | if (copy_from_user(&version, argp, sizeof(version))) | 439 | if (copy_from_user(&version, argp, sizeof(version))) |
@@ -478,8 +466,8 @@ static int drm_version(struct inode *inode, struct file *filp, | |||
478 | int drm_ioctl(struct inode *inode, struct file *filp, | 466 | int drm_ioctl(struct inode *inode, struct file *filp, |
479 | unsigned int cmd, unsigned long arg) | 467 | unsigned int cmd, unsigned long arg) |
480 | { | 468 | { |
481 | drm_file_t *priv = filp->private_data; | 469 | struct drm_file *priv = filp->private_data; |
482 | drm_device_t *dev = priv->head->dev; | 470 | struct drm_device *dev = priv->head->dev; |
483 | drm_ioctl_desc_t *ioctl; | 471 | drm_ioctl_desc_t *ioctl; |
484 | drm_ioctl_t *func; | 472 | drm_ioctl_t *func; |
485 | unsigned int nr = DRM_IOCTL_NR(cmd); | 473 | unsigned int nr = DRM_IOCTL_NR(cmd); |
@@ -529,3 +517,17 @@ int drm_ioctl(struct inode *inode, struct file *filp, | |||
529 | } | 517 | } |
530 | 518 | ||
531 | EXPORT_SYMBOL(drm_ioctl); | 519 | EXPORT_SYMBOL(drm_ioctl); |
520 | |||
521 | drm_local_map_t *drm_getsarea(struct drm_device *dev) | ||
522 | { | ||
523 | struct drm_map_list *entry; | ||
524 | |||
525 | list_for_each_entry(entry, &dev->maplist, head) { | ||
526 | if (entry->map && entry->map->type == _DRM_SHM && | ||
527 | (entry->map->flags & _DRM_CONTAINS_LOCK)) { | ||
528 | return entry->map; | ||
529 | } | ||
530 | } | ||
531 | return NULL; | ||
532 | } | ||
533 | EXPORT_SYMBOL(drm_getsarea); | ||
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c index 3b159cab3bc8..7bc51bac450d 100644 --- a/drivers/char/drm/drm_fops.c +++ b/drivers/char/drm/drm_fops.c | |||
@@ -39,9 +39,9 @@ | |||
39 | #include <linux/poll.h> | 39 | #include <linux/poll.h> |
40 | 40 | ||
41 | static int drm_open_helper(struct inode *inode, struct file *filp, | 41 | static int drm_open_helper(struct inode *inode, struct file *filp, |
42 | drm_device_t * dev); | 42 | struct drm_device * dev); |
43 | 43 | ||
44 | static int drm_setup(drm_device_t * dev) | 44 | static int drm_setup(struct drm_device * dev) |
45 | { | 45 | { |
46 | drm_local_map_t *map; | 46 | drm_local_map_t *map; |
47 | int i; | 47 | int i; |
@@ -79,13 +79,6 @@ static int drm_setup(drm_device_t * dev) | |||
79 | drm_ht_create(&dev->magiclist, DRM_MAGIC_HASH_ORDER); | 79 | drm_ht_create(&dev->magiclist, DRM_MAGIC_HASH_ORDER); |
80 | INIT_LIST_HEAD(&dev->magicfree); | 80 | INIT_LIST_HEAD(&dev->magicfree); |
81 | 81 | ||
82 | dev->ctxlist = drm_alloc(sizeof(*dev->ctxlist), DRM_MEM_CTXLIST); | ||
83 | if (dev->ctxlist == NULL) | ||
84 | return -ENOMEM; | ||
85 | memset(dev->ctxlist, 0, sizeof(*dev->ctxlist)); | ||
86 | INIT_LIST_HEAD(&dev->ctxlist->head); | ||
87 | |||
88 | dev->vmalist = NULL; | ||
89 | dev->sigdata.lock = NULL; | 82 | dev->sigdata.lock = NULL; |
90 | init_waitqueue_head(&dev->lock.lock_queue); | 83 | init_waitqueue_head(&dev->lock.lock_queue); |
91 | dev->queue_count = 0; | 84 | dev->queue_count = 0; |
@@ -135,7 +128,7 @@ static int drm_setup(drm_device_t * dev) | |||
135 | */ | 128 | */ |
136 | int drm_open(struct inode *inode, struct file *filp) | 129 | int drm_open(struct inode *inode, struct file *filp) |
137 | { | 130 | { |
138 | drm_device_t *dev = NULL; | 131 | struct drm_device *dev = NULL; |
139 | int minor = iminor(inode); | 132 | int minor = iminor(inode); |
140 | int retcode = 0; | 133 | int retcode = 0; |
141 | 134 | ||
@@ -174,7 +167,7 @@ EXPORT_SYMBOL(drm_open); | |||
174 | */ | 167 | */ |
175 | int drm_stub_open(struct inode *inode, struct file *filp) | 168 | int drm_stub_open(struct inode *inode, struct file *filp) |
176 | { | 169 | { |
177 | drm_device_t *dev = NULL; | 170 | struct drm_device *dev = NULL; |
178 | int minor = iminor(inode); | 171 | int minor = iminor(inode); |
179 | int err = -ENODEV; | 172 | int err = -ENODEV; |
180 | const struct file_operations *old_fops; | 173 | const struct file_operations *old_fops; |
@@ -230,10 +223,10 @@ static int drm_cpu_valid(void) | |||
230 | * filp and add it into the double linked list in \p dev. | 223 | * filp and add it into the double linked list in \p dev. |
231 | */ | 224 | */ |
232 | static int drm_open_helper(struct inode *inode, struct file *filp, | 225 | static int drm_open_helper(struct inode *inode, struct file *filp, |
233 | drm_device_t * dev) | 226 | struct drm_device * dev) |
234 | { | 227 | { |
235 | int minor = iminor(inode); | 228 | int minor = iminor(inode); |
236 | drm_file_t *priv; | 229 | struct drm_file *priv; |
237 | int ret; | 230 | int ret; |
238 | 231 | ||
239 | if (filp->f_flags & O_EXCL) | 232 | if (filp->f_flags & O_EXCL) |
@@ -258,6 +251,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
258 | priv->authenticated = capable(CAP_SYS_ADMIN); | 251 | priv->authenticated = capable(CAP_SYS_ADMIN); |
259 | priv->lock_count = 0; | 252 | priv->lock_count = 0; |
260 | 253 | ||
254 | INIT_LIST_HEAD(&priv->lhead); | ||
255 | |||
261 | if (dev->driver->open) { | 256 | if (dev->driver->open) { |
262 | ret = dev->driver->open(dev, priv); | 257 | ret = dev->driver->open(dev, priv); |
263 | if (ret < 0) | 258 | if (ret < 0) |
@@ -265,19 +260,10 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
265 | } | 260 | } |
266 | 261 | ||
267 | mutex_lock(&dev->struct_mutex); | 262 | mutex_lock(&dev->struct_mutex); |
268 | if (!dev->file_last) { | 263 | if (list_empty(&dev->filelist)) |
269 | priv->next = NULL; | ||
270 | priv->prev = NULL; | ||
271 | dev->file_first = priv; | ||
272 | dev->file_last = priv; | ||
273 | /* first opener automatically becomes master */ | ||
274 | priv->master = 1; | 264 | priv->master = 1; |
275 | } else { | 265 | |
276 | priv->next = NULL; | 266 | list_add(&priv->lhead, &dev->filelist); |
277 | priv->prev = dev->file_last; | ||
278 | dev->file_last->next = priv; | ||
279 | dev->file_last = priv; | ||
280 | } | ||
281 | mutex_unlock(&dev->struct_mutex); | 267 | mutex_unlock(&dev->struct_mutex); |
282 | 268 | ||
283 | #ifdef __alpha__ | 269 | #ifdef __alpha__ |
@@ -309,8 +295,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp, | |||
309 | /** No-op. */ | 295 | /** No-op. */ |
310 | int drm_fasync(int fd, struct file *filp, int on) | 296 | int drm_fasync(int fd, struct file *filp, int on) |
311 | { | 297 | { |
312 | drm_file_t *priv = filp->private_data; | 298 | struct drm_file *priv = filp->private_data; |
313 | drm_device_t *dev = priv->head->dev; | 299 | struct drm_device *dev = priv->head->dev; |
314 | int retcode; | 300 | int retcode; |
315 | 301 | ||
316 | DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, | 302 | DRM_DEBUG("fd = %d, device = 0x%lx\n", fd, |
@@ -336,8 +322,8 @@ EXPORT_SYMBOL(drm_fasync); | |||
336 | */ | 322 | */ |
337 | int drm_release(struct inode *inode, struct file *filp) | 323 | int drm_release(struct inode *inode, struct file *filp) |
338 | { | 324 | { |
339 | drm_file_t *priv = filp->private_data; | 325 | struct drm_file *priv = filp->private_data; |
340 | drm_device_t *dev; | 326 | struct drm_device *dev; |
341 | int retcode = 0; | 327 | int retcode = 0; |
342 | 328 | ||
343 | lock_kernel(); | 329 | lock_kernel(); |
@@ -414,10 +400,10 @@ int drm_release(struct inode *inode, struct file *filp) | |||
414 | drm_fasync(-1, filp, 0); | 400 | drm_fasync(-1, filp, 0); |
415 | 401 | ||
416 | mutex_lock(&dev->ctxlist_mutex); | 402 | mutex_lock(&dev->ctxlist_mutex); |
417 | if (dev->ctxlist && (!list_empty(&dev->ctxlist->head))) { | 403 | if (!list_empty(&dev->ctxlist)) { |
418 | drm_ctx_list_t *pos, *n; | 404 | struct drm_ctx_list *pos, *n; |
419 | 405 | ||
420 | list_for_each_entry_safe(pos, n, &dev->ctxlist->head, head) { | 406 | list_for_each_entry_safe(pos, n, &dev->ctxlist, head) { |
421 | if (pos->tag == priv && | 407 | if (pos->tag == priv && |
422 | pos->handle != DRM_KERNEL_CONTEXT) { | 408 | pos->handle != DRM_KERNEL_CONTEXT) { |
423 | if (dev->driver->context_dtor) | 409 | if (dev->driver->context_dtor) |
@@ -436,22 +422,12 @@ int drm_release(struct inode *inode, struct file *filp) | |||
436 | 422 | ||
437 | mutex_lock(&dev->struct_mutex); | 423 | mutex_lock(&dev->struct_mutex); |
438 | if (priv->remove_auth_on_close == 1) { | 424 | if (priv->remove_auth_on_close == 1) { |
439 | drm_file_t *temp = dev->file_first; | 425 | struct drm_file *temp; |
440 | while (temp) { | 426 | |
427 | list_for_each_entry(temp, &dev->filelist, lhead) | ||
441 | temp->authenticated = 0; | 428 | temp->authenticated = 0; |
442 | temp = temp->next; | ||
443 | } | ||
444 | } | ||
445 | if (priv->prev) { | ||
446 | priv->prev->next = priv->next; | ||
447 | } else { | ||
448 | dev->file_first = priv->next; | ||
449 | } | ||
450 | if (priv->next) { | ||
451 | priv->next->prev = priv->prev; | ||
452 | } else { | ||
453 | dev->file_last = priv->prev; | ||
454 | } | 429 | } |
430 | list_del(&priv->lhead); | ||
455 | mutex_unlock(&dev->struct_mutex); | 431 | mutex_unlock(&dev->struct_mutex); |
456 | 432 | ||
457 | if (dev->driver->postclose) | 433 | if (dev->driver->postclose) |
diff --git a/drivers/char/drm/drm_hashtab.c b/drivers/char/drm/drm_hashtab.c index 31acb621dcce..3ad319070704 100644 --- a/drivers/char/drm/drm_hashtab.c +++ b/drivers/char/drm/drm_hashtab.c | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "drm_hashtab.h" | 36 | #include "drm_hashtab.h" |
37 | #include <linux/hash.h> | 37 | #include <linux/hash.h> |
38 | 38 | ||
39 | int drm_ht_create(drm_open_hash_t *ht, unsigned int order) | 39 | int drm_ht_create(struct drm_open_hash *ht, unsigned int order) |
40 | { | 40 | { |
41 | unsigned int i; | 41 | unsigned int i; |
42 | 42 | ||
@@ -63,9 +63,9 @@ int drm_ht_create(drm_open_hash_t *ht, unsigned int order) | |||
63 | return 0; | 63 | return 0; |
64 | } | 64 | } |
65 | 65 | ||
66 | void drm_ht_verbose_list(drm_open_hash_t *ht, unsigned long key) | 66 | void drm_ht_verbose_list(struct drm_open_hash *ht, unsigned long key) |
67 | { | 67 | { |
68 | drm_hash_item_t *entry; | 68 | struct drm_hash_item *entry; |
69 | struct hlist_head *h_list; | 69 | struct hlist_head *h_list; |
70 | struct hlist_node *list; | 70 | struct hlist_node *list; |
71 | unsigned int hashed_key; | 71 | unsigned int hashed_key; |
@@ -75,15 +75,15 @@ void drm_ht_verbose_list(drm_open_hash_t *ht, unsigned long key) | |||
75 | DRM_DEBUG("Key is 0x%08lx, Hashed key is 0x%08x\n", key, hashed_key); | 75 | DRM_DEBUG("Key is 0x%08lx, Hashed key is 0x%08x\n", key, hashed_key); |
76 | h_list = &ht->table[hashed_key]; | 76 | h_list = &ht->table[hashed_key]; |
77 | hlist_for_each(list, h_list) { | 77 | hlist_for_each(list, h_list) { |
78 | entry = hlist_entry(list, drm_hash_item_t, head); | 78 | entry = hlist_entry(list, struct drm_hash_item, head); |
79 | DRM_DEBUG("count %d, key: 0x%08lx\n", count++, entry->key); | 79 | DRM_DEBUG("count %d, key: 0x%08lx\n", count++, entry->key); |
80 | } | 80 | } |
81 | } | 81 | } |
82 | 82 | ||
83 | static struct hlist_node *drm_ht_find_key(drm_open_hash_t *ht, | 83 | static struct hlist_node *drm_ht_find_key(struct drm_open_hash *ht, |
84 | unsigned long key) | 84 | unsigned long key) |
85 | { | 85 | { |
86 | drm_hash_item_t *entry; | 86 | struct drm_hash_item *entry; |
87 | struct hlist_head *h_list; | 87 | struct hlist_head *h_list; |
88 | struct hlist_node *list; | 88 | struct hlist_node *list; |
89 | unsigned int hashed_key; | 89 | unsigned int hashed_key; |
@@ -91,7 +91,7 @@ static struct hlist_node *drm_ht_find_key(drm_open_hash_t *ht, | |||
91 | hashed_key = hash_long(key, ht->order); | 91 | hashed_key = hash_long(key, ht->order); |
92 | h_list = &ht->table[hashed_key]; | 92 | h_list = &ht->table[hashed_key]; |
93 | hlist_for_each(list, h_list) { | 93 | hlist_for_each(list, h_list) { |
94 | entry = hlist_entry(list, drm_hash_item_t, head); | 94 | entry = hlist_entry(list, struct drm_hash_item, head); |
95 | if (entry->key == key) | 95 | if (entry->key == key) |
96 | return list; | 96 | return list; |
97 | if (entry->key > key) | 97 | if (entry->key > key) |
@@ -101,9 +101,9 @@ static struct hlist_node *drm_ht_find_key(drm_open_hash_t *ht, | |||
101 | } | 101 | } |
102 | 102 | ||
103 | 103 | ||
104 | int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item) | 104 | int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item) |
105 | { | 105 | { |
106 | drm_hash_item_t *entry; | 106 | struct drm_hash_item *entry; |
107 | struct hlist_head *h_list; | 107 | struct hlist_head *h_list; |
108 | struct hlist_node *list, *parent; | 108 | struct hlist_node *list, *parent; |
109 | unsigned int hashed_key; | 109 | unsigned int hashed_key; |
@@ -113,7 +113,7 @@ int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item) | |||
113 | h_list = &ht->table[hashed_key]; | 113 | h_list = &ht->table[hashed_key]; |
114 | parent = NULL; | 114 | parent = NULL; |
115 | hlist_for_each(list, h_list) { | 115 | hlist_for_each(list, h_list) { |
116 | entry = hlist_entry(list, drm_hash_item_t, head); | 116 | entry = hlist_entry(list, struct drm_hash_item, head); |
117 | if (entry->key == key) | 117 | if (entry->key == key) |
118 | return -EINVAL; | 118 | return -EINVAL; |
119 | if (entry->key > key) | 119 | if (entry->key > key) |
@@ -132,7 +132,7 @@ int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item) | |||
132 | * Just insert an item and return any "bits" bit key that hasn't been | 132 | * Just insert an item and return any "bits" bit key that hasn't been |
133 | * used before. | 133 | * used before. |
134 | */ | 134 | */ |
135 | int drm_ht_just_insert_please(drm_open_hash_t *ht, drm_hash_item_t *item, | 135 | int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *item, |
136 | unsigned long seed, int bits, int shift, | 136 | unsigned long seed, int bits, int shift, |
137 | unsigned long add) | 137 | unsigned long add) |
138 | { | 138 | { |
@@ -156,8 +156,8 @@ int drm_ht_just_insert_please(drm_open_hash_t *ht, drm_hash_item_t *item, | |||
156 | return 0; | 156 | return 0; |
157 | } | 157 | } |
158 | 158 | ||
159 | int drm_ht_find_item(drm_open_hash_t *ht, unsigned long key, | 159 | int drm_ht_find_item(struct drm_open_hash *ht, unsigned long key, |
160 | drm_hash_item_t **item) | 160 | struct drm_hash_item **item) |
161 | { | 161 | { |
162 | struct hlist_node *list; | 162 | struct hlist_node *list; |
163 | 163 | ||
@@ -165,11 +165,11 @@ int drm_ht_find_item(drm_open_hash_t *ht, unsigned long key, | |||
165 | if (!list) | 165 | if (!list) |
166 | return -EINVAL; | 166 | return -EINVAL; |
167 | 167 | ||
168 | *item = hlist_entry(list, drm_hash_item_t, head); | 168 | *item = hlist_entry(list, struct drm_hash_item, head); |
169 | return 0; | 169 | return 0; |
170 | } | 170 | } |
171 | 171 | ||
172 | int drm_ht_remove_key(drm_open_hash_t *ht, unsigned long key) | 172 | int drm_ht_remove_key(struct drm_open_hash *ht, unsigned long key) |
173 | { | 173 | { |
174 | struct hlist_node *list; | 174 | struct hlist_node *list; |
175 | 175 | ||
@@ -182,14 +182,14 @@ int drm_ht_remove_key(drm_open_hash_t *ht, unsigned long key) | |||
182 | return -EINVAL; | 182 | return -EINVAL; |
183 | } | 183 | } |
184 | 184 | ||
185 | int drm_ht_remove_item(drm_open_hash_t *ht, drm_hash_item_t *item) | 185 | int drm_ht_remove_item(struct drm_open_hash *ht, struct drm_hash_item *item) |
186 | { | 186 | { |
187 | hlist_del_init(&item->head); | 187 | hlist_del_init(&item->head); |
188 | ht->fill--; | 188 | ht->fill--; |
189 | return 0; | 189 | return 0; |
190 | } | 190 | } |
191 | 191 | ||
192 | void drm_ht_remove(drm_open_hash_t *ht) | 192 | void drm_ht_remove(struct drm_open_hash *ht) |
193 | { | 193 | { |
194 | if (ht->table) { | 194 | if (ht->table) { |
195 | if (ht->use_vmalloc) | 195 | if (ht->use_vmalloc) |
diff --git a/drivers/char/drm/drm_hashtab.h b/drivers/char/drm/drm_hashtab.h index 613091c970af..0f1376774168 100644 --- a/drivers/char/drm/drm_hashtab.h +++ b/drivers/char/drm/drm_hashtab.h | |||
@@ -37,31 +37,31 @@ | |||
37 | 37 | ||
38 | #define drm_hash_entry(_ptr, _type, _member) container_of(_ptr, _type, _member) | 38 | #define drm_hash_entry(_ptr, _type, _member) container_of(_ptr, _type, _member) |
39 | 39 | ||
40 | typedef struct drm_hash_item{ | 40 | struct drm_hash_item { |
41 | struct hlist_node head; | 41 | struct hlist_node head; |
42 | unsigned long key; | 42 | unsigned long key; |
43 | } drm_hash_item_t; | 43 | }; |
44 | 44 | ||
45 | typedef struct drm_open_hash{ | 45 | struct drm_open_hash { |
46 | unsigned int size; | 46 | unsigned int size; |
47 | unsigned int order; | 47 | unsigned int order; |
48 | unsigned int fill; | 48 | unsigned int fill; |
49 | struct hlist_head *table; | 49 | struct hlist_head *table; |
50 | int use_vmalloc; | 50 | int use_vmalloc; |
51 | } drm_open_hash_t; | 51 | }; |
52 | 52 | ||
53 | 53 | ||
54 | extern int drm_ht_create(drm_open_hash_t *ht, unsigned int order); | 54 | extern int drm_ht_create(struct drm_open_hash *ht, unsigned int order); |
55 | extern int drm_ht_insert_item(drm_open_hash_t *ht, drm_hash_item_t *item); | 55 | extern int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item); |
56 | extern int drm_ht_just_insert_please(drm_open_hash_t *ht, drm_hash_item_t *item, | 56 | extern int drm_ht_just_insert_please(struct drm_open_hash *ht, struct drm_hash_item *item, |
57 | unsigned long seed, int bits, int shift, | 57 | unsigned long seed, int bits, int shift, |
58 | unsigned long add); | 58 | unsigned long add); |
59 | extern int drm_ht_find_item(drm_open_hash_t *ht, unsigned long key, drm_hash_item_t **item); | 59 | extern int drm_ht_find_item(struct drm_open_hash *ht, unsigned long key, struct drm_hash_item **item); |
60 | 60 | ||
61 | extern void drm_ht_verbose_list(drm_open_hash_t *ht, unsigned long key); | 61 | extern void drm_ht_verbose_list(struct drm_open_hash *ht, unsigned long key); |
62 | extern int drm_ht_remove_key(drm_open_hash_t *ht, unsigned long key); | 62 | extern int drm_ht_remove_key(struct drm_open_hash *ht, unsigned long key); |
63 | extern int drm_ht_remove_item(drm_open_hash_t *ht, drm_hash_item_t *item); | 63 | extern int drm_ht_remove_item(struct drm_open_hash *ht, struct drm_hash_item *item); |
64 | extern void drm_ht_remove(drm_open_hash_t *ht); | 64 | extern void drm_ht_remove(struct drm_open_hash *ht); |
65 | 65 | ||
66 | 66 | ||
67 | #endif | 67 | #endif |
diff --git a/drivers/char/drm/drm_ioc32.c b/drivers/char/drm/drm_ioc32.c index fafeb34f89d5..462f46f2049a 100644 --- a/drivers/char/drm/drm_ioc32.c +++ b/drivers/char/drm/drm_ioc32.c | |||
@@ -82,7 +82,7 @@ static int compat_drm_version(struct file *file, unsigned int cmd, | |||
82 | unsigned long arg) | 82 | unsigned long arg) |
83 | { | 83 | { |
84 | drm_version32_t v32; | 84 | drm_version32_t v32; |
85 | drm_version_t __user *version; | 85 | struct drm_version __user *version; |
86 | int err; | 86 | int err; |
87 | 87 | ||
88 | if (copy_from_user(&v32, (void __user *)arg, sizeof(v32))) | 88 | if (copy_from_user(&v32, (void __user *)arg, sizeof(v32))) |
@@ -129,7 +129,7 @@ static int compat_drm_getunique(struct file *file, unsigned int cmd, | |||
129 | unsigned long arg) | 129 | unsigned long arg) |
130 | { | 130 | { |
131 | drm_unique32_t uq32; | 131 | drm_unique32_t uq32; |
132 | drm_unique_t __user *u; | 132 | struct drm_unique __user *u; |
133 | int err; | 133 | int err; |
134 | 134 | ||
135 | if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32))) | 135 | if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32))) |
@@ -159,7 +159,7 @@ static int compat_drm_setunique(struct file *file, unsigned int cmd, | |||
159 | unsigned long arg) | 159 | unsigned long arg) |
160 | { | 160 | { |
161 | drm_unique32_t uq32; | 161 | drm_unique32_t uq32; |
162 | drm_unique_t __user *u; | 162 | struct drm_unique __user *u; |
163 | 163 | ||
164 | if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32))) | 164 | if (copy_from_user(&uq32, (void __user *)arg, sizeof(uq32))) |
165 | return -EFAULT; | 165 | return -EFAULT; |
@@ -179,8 +179,8 @@ static int compat_drm_setunique(struct file *file, unsigned int cmd, | |||
179 | typedef struct drm_map32 { | 179 | typedef struct drm_map32 { |
180 | u32 offset; /**< Requested physical address (0 for SAREA)*/ | 180 | u32 offset; /**< Requested physical address (0 for SAREA)*/ |
181 | u32 size; /**< Requested physical size (bytes) */ | 181 | u32 size; /**< Requested physical size (bytes) */ |
182 | drm_map_type_t type; /**< Type of memory to map */ | 182 | enum drm_map_type type; /**< Type of memory to map */ |
183 | drm_map_flags_t flags; /**< Flags */ | 183 | enum drm_map_flags flags; /**< Flags */ |
184 | u32 handle; /**< User-space: "Handle" to pass to mmap() */ | 184 | u32 handle; /**< User-space: "Handle" to pass to mmap() */ |
185 | int mtrr; /**< MTRR slot used */ | 185 | int mtrr; /**< MTRR slot used */ |
186 | } drm_map32_t; | 186 | } drm_map32_t; |
@@ -190,7 +190,7 @@ static int compat_drm_getmap(struct file *file, unsigned int cmd, | |||
190 | { | 190 | { |
191 | drm_map32_t __user *argp = (void __user *)arg; | 191 | drm_map32_t __user *argp = (void __user *)arg; |
192 | drm_map32_t m32; | 192 | drm_map32_t m32; |
193 | drm_map_t __user *map; | 193 | struct drm_map __user *map; |
194 | int idx, err; | 194 | int idx, err; |
195 | void *handle; | 195 | void *handle; |
196 | 196 | ||
@@ -228,7 +228,7 @@ static int compat_drm_addmap(struct file *file, unsigned int cmd, | |||
228 | { | 228 | { |
229 | drm_map32_t __user *argp = (void __user *)arg; | 229 | drm_map32_t __user *argp = (void __user *)arg; |
230 | drm_map32_t m32; | 230 | drm_map32_t m32; |
231 | drm_map_t __user *map; | 231 | struct drm_map __user *map; |
232 | int err; | 232 | int err; |
233 | void *handle; | 233 | void *handle; |
234 | 234 | ||
@@ -270,7 +270,7 @@ static int compat_drm_rmmap(struct file *file, unsigned int cmd, | |||
270 | unsigned long arg) | 270 | unsigned long arg) |
271 | { | 271 | { |
272 | drm_map32_t __user *argp = (void __user *)arg; | 272 | drm_map32_t __user *argp = (void __user *)arg; |
273 | drm_map_t __user *map; | 273 | struct drm_map __user *map; |
274 | u32 handle; | 274 | u32 handle; |
275 | 275 | ||
276 | if (get_user(handle, &argp->handle)) | 276 | if (get_user(handle, &argp->handle)) |
@@ -300,7 +300,7 @@ static int compat_drm_getclient(struct file *file, unsigned int cmd, | |||
300 | { | 300 | { |
301 | drm_client32_t c32; | 301 | drm_client32_t c32; |
302 | drm_client32_t __user *argp = (void __user *)arg; | 302 | drm_client32_t __user *argp = (void __user *)arg; |
303 | drm_client_t __user *client; | 303 | struct drm_client __user *client; |
304 | int idx, err; | 304 | int idx, err; |
305 | 305 | ||
306 | if (get_user(idx, &argp->idx)) | 306 | if (get_user(idx, &argp->idx)) |
@@ -333,7 +333,7 @@ typedef struct drm_stats32 { | |||
333 | u32 count; | 333 | u32 count; |
334 | struct { | 334 | struct { |
335 | u32 value; | 335 | u32 value; |
336 | drm_stat_type_t type; | 336 | enum drm_stat_type type; |
337 | } data[15]; | 337 | } data[15]; |
338 | } drm_stats32_t; | 338 | } drm_stats32_t; |
339 | 339 | ||
@@ -342,7 +342,7 @@ static int compat_drm_getstats(struct file *file, unsigned int cmd, | |||
342 | { | 342 | { |
343 | drm_stats32_t s32; | 343 | drm_stats32_t s32; |
344 | drm_stats32_t __user *argp = (void __user *)arg; | 344 | drm_stats32_t __user *argp = (void __user *)arg; |
345 | drm_stats_t __user *stats; | 345 | struct drm_stats __user *stats; |
346 | int i, err; | 346 | int i, err; |
347 | 347 | ||
348 | stats = compat_alloc_user_space(sizeof(*stats)); | 348 | stats = compat_alloc_user_space(sizeof(*stats)); |
@@ -379,7 +379,7 @@ static int compat_drm_addbufs(struct file *file, unsigned int cmd, | |||
379 | unsigned long arg) | 379 | unsigned long arg) |
380 | { | 380 | { |
381 | drm_buf_desc32_t __user *argp = (void __user *)arg; | 381 | drm_buf_desc32_t __user *argp = (void __user *)arg; |
382 | drm_buf_desc_t __user *buf; | 382 | struct drm_buf_desc __user *buf; |
383 | int err; | 383 | int err; |
384 | unsigned long agp_start; | 384 | unsigned long agp_start; |
385 | 385 | ||
@@ -411,7 +411,7 @@ static int compat_drm_markbufs(struct file *file, unsigned int cmd, | |||
411 | { | 411 | { |
412 | drm_buf_desc32_t b32; | 412 | drm_buf_desc32_t b32; |
413 | drm_buf_desc32_t __user *argp = (void __user *)arg; | 413 | drm_buf_desc32_t __user *argp = (void __user *)arg; |
414 | drm_buf_desc_t __user *buf; | 414 | struct drm_buf_desc __user *buf; |
415 | 415 | ||
416 | if (copy_from_user(&b32, argp, sizeof(b32))) | 416 | if (copy_from_user(&b32, argp, sizeof(b32))) |
417 | return -EFAULT; | 417 | return -EFAULT; |
@@ -440,8 +440,8 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd, | |||
440 | drm_buf_info32_t req32; | 440 | drm_buf_info32_t req32; |
441 | drm_buf_info32_t __user *argp = (void __user *)arg; | 441 | drm_buf_info32_t __user *argp = (void __user *)arg; |
442 | drm_buf_desc32_t __user *to; | 442 | drm_buf_desc32_t __user *to; |
443 | drm_buf_info_t __user *request; | 443 | struct drm_buf_info __user *request; |
444 | drm_buf_desc_t __user *list; | 444 | struct drm_buf_desc __user *list; |
445 | size_t nbytes; | 445 | size_t nbytes; |
446 | int i, err; | 446 | int i, err; |
447 | int count, actual; | 447 | int count, actual; |
@@ -457,11 +457,11 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd, | |||
457 | && !access_ok(VERIFY_WRITE, to, count * sizeof(drm_buf_desc32_t))) | 457 | && !access_ok(VERIFY_WRITE, to, count * sizeof(drm_buf_desc32_t))) |
458 | return -EFAULT; | 458 | return -EFAULT; |
459 | 459 | ||
460 | nbytes = sizeof(*request) + count * sizeof(drm_buf_desc_t); | 460 | nbytes = sizeof(*request) + count * sizeof(struct drm_buf_desc); |
461 | request = compat_alloc_user_space(nbytes); | 461 | request = compat_alloc_user_space(nbytes); |
462 | if (!access_ok(VERIFY_WRITE, request, nbytes)) | 462 | if (!access_ok(VERIFY_WRITE, request, nbytes)) |
463 | return -EFAULT; | 463 | return -EFAULT; |
464 | list = (drm_buf_desc_t *) (request + 1); | 464 | list = (struct drm_buf_desc *) (request + 1); |
465 | 465 | ||
466 | if (__put_user(count, &request->count) | 466 | if (__put_user(count, &request->count) |
467 | || __put_user(list, &request->list)) | 467 | || __put_user(list, &request->list)) |
@@ -477,7 +477,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd, | |||
477 | if (count >= actual) | 477 | if (count >= actual) |
478 | for (i = 0; i < actual; ++i) | 478 | for (i = 0; i < actual; ++i) |
479 | if (__copy_in_user(&to[i], &list[i], | 479 | if (__copy_in_user(&to[i], &list[i], |
480 | offsetof(drm_buf_desc_t, flags))) | 480 | offsetof(struct drm_buf_desc, flags))) |
481 | return -EFAULT; | 481 | return -EFAULT; |
482 | 482 | ||
483 | if (__put_user(actual, &argp->count)) | 483 | if (__put_user(actual, &argp->count)) |
@@ -505,8 +505,8 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd, | |||
505 | drm_buf_map32_t __user *argp = (void __user *)arg; | 505 | drm_buf_map32_t __user *argp = (void __user *)arg; |
506 | drm_buf_map32_t req32; | 506 | drm_buf_map32_t req32; |
507 | drm_buf_pub32_t __user *list32; | 507 | drm_buf_pub32_t __user *list32; |
508 | drm_buf_map_t __user *request; | 508 | struct drm_buf_map __user *request; |
509 | drm_buf_pub_t __user *list; | 509 | struct drm_buf_pub __user *list; |
510 | int i, err; | 510 | int i, err; |
511 | int count, actual; | 511 | int count, actual; |
512 | size_t nbytes; | 512 | size_t nbytes; |
@@ -519,11 +519,11 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd, | |||
519 | 519 | ||
520 | if (count < 0) | 520 | if (count < 0) |
521 | return -EINVAL; | 521 | return -EINVAL; |
522 | nbytes = sizeof(*request) + count * sizeof(drm_buf_pub_t); | 522 | nbytes = sizeof(*request) + count * sizeof(struct drm_buf_pub); |
523 | request = compat_alloc_user_space(nbytes); | 523 | request = compat_alloc_user_space(nbytes); |
524 | if (!access_ok(VERIFY_WRITE, request, nbytes)) | 524 | if (!access_ok(VERIFY_WRITE, request, nbytes)) |
525 | return -EFAULT; | 525 | return -EFAULT; |
526 | list = (drm_buf_pub_t *) (request + 1); | 526 | list = (struct drm_buf_pub *) (request + 1); |
527 | 527 | ||
528 | if (__put_user(count, &request->count) | 528 | if (__put_user(count, &request->count) |
529 | || __put_user(list, &request->list)) | 529 | || __put_user(list, &request->list)) |
@@ -539,7 +539,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd, | |||
539 | if (count >= actual) | 539 | if (count >= actual) |
540 | for (i = 0; i < actual; ++i) | 540 | for (i = 0; i < actual; ++i) |
541 | if (__copy_in_user(&list32[i], &list[i], | 541 | if (__copy_in_user(&list32[i], &list[i], |
542 | offsetof(drm_buf_pub_t, address)) | 542 | offsetof(struct drm_buf_pub, address)) |
543 | || __get_user(addr, &list[i].address) | 543 | || __get_user(addr, &list[i].address) |
544 | || __put_user((unsigned long)addr, | 544 | || __put_user((unsigned long)addr, |
545 | &list32[i].address)) | 545 | &list32[i].address)) |
@@ -562,7 +562,7 @@ static int compat_drm_freebufs(struct file *file, unsigned int cmd, | |||
562 | unsigned long arg) | 562 | unsigned long arg) |
563 | { | 563 | { |
564 | drm_buf_free32_t req32; | 564 | drm_buf_free32_t req32; |
565 | drm_buf_free_t __user *request; | 565 | struct drm_buf_free __user *request; |
566 | drm_buf_free32_t __user *argp = (void __user *)arg; | 566 | drm_buf_free32_t __user *argp = (void __user *)arg; |
567 | 567 | ||
568 | if (copy_from_user(&req32, argp, sizeof(req32))) | 568 | if (copy_from_user(&req32, argp, sizeof(req32))) |
@@ -589,7 +589,7 @@ static int compat_drm_setsareactx(struct file *file, unsigned int cmd, | |||
589 | unsigned long arg) | 589 | unsigned long arg) |
590 | { | 590 | { |
591 | drm_ctx_priv_map32_t req32; | 591 | drm_ctx_priv_map32_t req32; |
592 | drm_ctx_priv_map_t __user *request; | 592 | struct drm_ctx_priv_map __user *request; |
593 | drm_ctx_priv_map32_t __user *argp = (void __user *)arg; | 593 | drm_ctx_priv_map32_t __user *argp = (void __user *)arg; |
594 | 594 | ||
595 | if (copy_from_user(&req32, argp, sizeof(req32))) | 595 | if (copy_from_user(&req32, argp, sizeof(req32))) |
@@ -610,7 +610,7 @@ static int compat_drm_setsareactx(struct file *file, unsigned int cmd, | |||
610 | static int compat_drm_getsareactx(struct file *file, unsigned int cmd, | 610 | static int compat_drm_getsareactx(struct file *file, unsigned int cmd, |
611 | unsigned long arg) | 611 | unsigned long arg) |
612 | { | 612 | { |
613 | drm_ctx_priv_map_t __user *request; | 613 | struct drm_ctx_priv_map __user *request; |
614 | drm_ctx_priv_map32_t __user *argp = (void __user *)arg; | 614 | drm_ctx_priv_map32_t __user *argp = (void __user *)arg; |
615 | int err; | 615 | int err; |
616 | unsigned int ctx_id; | 616 | unsigned int ctx_id; |
@@ -648,7 +648,7 @@ static int compat_drm_resctx(struct file *file, unsigned int cmd, | |||
648 | { | 648 | { |
649 | drm_ctx_res32_t __user *argp = (void __user *)arg; | 649 | drm_ctx_res32_t __user *argp = (void __user *)arg; |
650 | drm_ctx_res32_t res32; | 650 | drm_ctx_res32_t res32; |
651 | drm_ctx_res_t __user *res; | 651 | struct drm_ctx_res __user *res; |
652 | int err; | 652 | int err; |
653 | 653 | ||
654 | if (copy_from_user(&res32, argp, sizeof(res32))) | 654 | if (copy_from_user(&res32, argp, sizeof(res32))) |
@@ -658,7 +658,7 @@ static int compat_drm_resctx(struct file *file, unsigned int cmd, | |||
658 | if (!access_ok(VERIFY_WRITE, res, sizeof(*res))) | 658 | if (!access_ok(VERIFY_WRITE, res, sizeof(*res))) |
659 | return -EFAULT; | 659 | return -EFAULT; |
660 | if (__put_user(res32.count, &res->count) | 660 | if (__put_user(res32.count, &res->count) |
661 | || __put_user((drm_ctx_t __user *) (unsigned long)res32.contexts, | 661 | || __put_user((struct drm_ctx __user *) (unsigned long)res32.contexts, |
662 | &res->contexts)) | 662 | &res->contexts)) |
663 | return -EFAULT; | 663 | return -EFAULT; |
664 | 664 | ||
@@ -679,7 +679,7 @@ typedef struct drm_dma32 { | |||
679 | int send_count; /**< Number of buffers to send */ | 679 | int send_count; /**< Number of buffers to send */ |
680 | u32 send_indices; /**< List of handles to buffers */ | 680 | u32 send_indices; /**< List of handles to buffers */ |
681 | u32 send_sizes; /**< Lengths of data to send */ | 681 | u32 send_sizes; /**< Lengths of data to send */ |
682 | drm_dma_flags_t flags; /**< Flags */ | 682 | enum drm_dma_flags flags; /**< Flags */ |
683 | int request_count; /**< Number of buffers requested */ | 683 | int request_count; /**< Number of buffers requested */ |
684 | int request_size; /**< Desired size for buffers */ | 684 | int request_size; /**< Desired size for buffers */ |
685 | u32 request_indices; /**< Buffer information */ | 685 | u32 request_indices; /**< Buffer information */ |
@@ -692,7 +692,7 @@ static int compat_drm_dma(struct file *file, unsigned int cmd, | |||
692 | { | 692 | { |
693 | drm_dma32_t d32; | 693 | drm_dma32_t d32; |
694 | drm_dma32_t __user *argp = (void __user *)arg; | 694 | drm_dma32_t __user *argp = (void __user *)arg; |
695 | drm_dma_t __user *d; | 695 | struct drm_dma __user *d; |
696 | int err; | 696 | int err; |
697 | 697 | ||
698 | if (copy_from_user(&d32, argp, sizeof(d32))) | 698 | if (copy_from_user(&d32, argp, sizeof(d32))) |
@@ -740,7 +740,7 @@ static int compat_drm_agp_enable(struct file *file, unsigned int cmd, | |||
740 | { | 740 | { |
741 | drm_agp_mode32_t __user *argp = (void __user *)arg; | 741 | drm_agp_mode32_t __user *argp = (void __user *)arg; |
742 | drm_agp_mode32_t m32; | 742 | drm_agp_mode32_t m32; |
743 | drm_agp_mode_t __user *mode; | 743 | struct drm_agp_mode __user *mode; |
744 | 744 | ||
745 | if (get_user(m32.mode, &argp->mode)) | 745 | if (get_user(m32.mode, &argp->mode)) |
746 | return -EFAULT; | 746 | return -EFAULT; |
@@ -772,7 +772,7 @@ static int compat_drm_agp_info(struct file *file, unsigned int cmd, | |||
772 | { | 772 | { |
773 | drm_agp_info32_t __user *argp = (void __user *)arg; | 773 | drm_agp_info32_t __user *argp = (void __user *)arg; |
774 | drm_agp_info32_t i32; | 774 | drm_agp_info32_t i32; |
775 | drm_agp_info_t __user *info; | 775 | struct drm_agp_info __user *info; |
776 | int err; | 776 | int err; |
777 | 777 | ||
778 | info = compat_alloc_user_space(sizeof(*info)); | 778 | info = compat_alloc_user_space(sizeof(*info)); |
@@ -813,7 +813,7 @@ static int compat_drm_agp_alloc(struct file *file, unsigned int cmd, | |||
813 | { | 813 | { |
814 | drm_agp_buffer32_t __user *argp = (void __user *)arg; | 814 | drm_agp_buffer32_t __user *argp = (void __user *)arg; |
815 | drm_agp_buffer32_t req32; | 815 | drm_agp_buffer32_t req32; |
816 | drm_agp_buffer_t __user *request; | 816 | struct drm_agp_buffer __user *request; |
817 | int err; | 817 | int err; |
818 | 818 | ||
819 | if (copy_from_user(&req32, argp, sizeof(req32))) | 819 | if (copy_from_user(&req32, argp, sizeof(req32))) |
@@ -845,7 +845,7 @@ static int compat_drm_agp_free(struct file *file, unsigned int cmd, | |||
845 | unsigned long arg) | 845 | unsigned long arg) |
846 | { | 846 | { |
847 | drm_agp_buffer32_t __user *argp = (void __user *)arg; | 847 | drm_agp_buffer32_t __user *argp = (void __user *)arg; |
848 | drm_agp_buffer_t __user *request; | 848 | struct drm_agp_buffer __user *request; |
849 | u32 handle; | 849 | u32 handle; |
850 | 850 | ||
851 | request = compat_alloc_user_space(sizeof(*request)); | 851 | request = compat_alloc_user_space(sizeof(*request)); |
@@ -868,7 +868,7 @@ static int compat_drm_agp_bind(struct file *file, unsigned int cmd, | |||
868 | { | 868 | { |
869 | drm_agp_binding32_t __user *argp = (void __user *)arg; | 869 | drm_agp_binding32_t __user *argp = (void __user *)arg; |
870 | drm_agp_binding32_t req32; | 870 | drm_agp_binding32_t req32; |
871 | drm_agp_binding_t __user *request; | 871 | struct drm_agp_binding __user *request; |
872 | 872 | ||
873 | if (copy_from_user(&req32, argp, sizeof(req32))) | 873 | if (copy_from_user(&req32, argp, sizeof(req32))) |
874 | return -EFAULT; | 874 | return -EFAULT; |
@@ -887,7 +887,7 @@ static int compat_drm_agp_unbind(struct file *file, unsigned int cmd, | |||
887 | unsigned long arg) | 887 | unsigned long arg) |
888 | { | 888 | { |
889 | drm_agp_binding32_t __user *argp = (void __user *)arg; | 889 | drm_agp_binding32_t __user *argp = (void __user *)arg; |
890 | drm_agp_binding_t __user *request; | 890 | struct drm_agp_binding __user *request; |
891 | u32 handle; | 891 | u32 handle; |
892 | 892 | ||
893 | request = compat_alloc_user_space(sizeof(*request)); | 893 | request = compat_alloc_user_space(sizeof(*request)); |
@@ -910,7 +910,7 @@ static int compat_drm_sg_alloc(struct file *file, unsigned int cmd, | |||
910 | unsigned long arg) | 910 | unsigned long arg) |
911 | { | 911 | { |
912 | drm_scatter_gather32_t __user *argp = (void __user *)arg; | 912 | drm_scatter_gather32_t __user *argp = (void __user *)arg; |
913 | drm_scatter_gather_t __user *request; | 913 | struct drm_scatter_gather __user *request; |
914 | int err; | 914 | int err; |
915 | unsigned long x; | 915 | unsigned long x; |
916 | 916 | ||
@@ -938,7 +938,7 @@ static int compat_drm_sg_free(struct file *file, unsigned int cmd, | |||
938 | unsigned long arg) | 938 | unsigned long arg) |
939 | { | 939 | { |
940 | drm_scatter_gather32_t __user *argp = (void __user *)arg; | 940 | drm_scatter_gather32_t __user *argp = (void __user *)arg; |
941 | drm_scatter_gather_t __user *request; | 941 | struct drm_scatter_gather __user *request; |
942 | unsigned long x; | 942 | unsigned long x; |
943 | 943 | ||
944 | request = compat_alloc_user_space(sizeof(*request)); | 944 | request = compat_alloc_user_space(sizeof(*request)); |
@@ -953,13 +953,13 @@ static int compat_drm_sg_free(struct file *file, unsigned int cmd, | |||
953 | } | 953 | } |
954 | 954 | ||
955 | struct drm_wait_vblank_request32 { | 955 | struct drm_wait_vblank_request32 { |
956 | drm_vblank_seq_type_t type; | 956 | enum drm_vblank_seq_type type; |
957 | unsigned int sequence; | 957 | unsigned int sequence; |
958 | u32 signal; | 958 | u32 signal; |
959 | }; | 959 | }; |
960 | 960 | ||
961 | struct drm_wait_vblank_reply32 { | 961 | struct drm_wait_vblank_reply32 { |
962 | drm_vblank_seq_type_t type; | 962 | enum drm_vblank_seq_type type; |
963 | unsigned int sequence; | 963 | unsigned int sequence; |
964 | s32 tval_sec; | 964 | s32 tval_sec; |
965 | s32 tval_usec; | 965 | s32 tval_usec; |
@@ -975,7 +975,7 @@ static int compat_drm_wait_vblank(struct file *file, unsigned int cmd, | |||
975 | { | 975 | { |
976 | drm_wait_vblank32_t __user *argp = (void __user *)arg; | 976 | drm_wait_vblank32_t __user *argp = (void __user *)arg; |
977 | drm_wait_vblank32_t req32; | 977 | drm_wait_vblank32_t req32; |
978 | drm_wait_vblank_t __user *request; | 978 | union drm_wait_vblank __user *request; |
979 | int err; | 979 | int err; |
980 | 980 | ||
981 | if (copy_from_user(&req32, argp, sizeof(req32))) | 981 | if (copy_from_user(&req32, argp, sizeof(req32))) |
diff --git a/drivers/char/drm/drm_ioctl.c b/drivers/char/drm/drm_ioctl.c index 565895547d75..b195e102e737 100644 --- a/drivers/char/drm/drm_ioctl.c +++ b/drivers/char/drm/drm_ioctl.c | |||
@@ -52,10 +52,10 @@ | |||
52 | int drm_getunique(struct inode *inode, struct file *filp, | 52 | int drm_getunique(struct inode *inode, struct file *filp, |
53 | unsigned int cmd, unsigned long arg) | 53 | unsigned int cmd, unsigned long arg) |
54 | { | 54 | { |
55 | drm_file_t *priv = filp->private_data; | 55 | struct drm_file *priv = filp->private_data; |
56 | drm_device_t *dev = priv->head->dev; | 56 | struct drm_device *dev = priv->head->dev; |
57 | drm_unique_t __user *argp = (void __user *)arg; | 57 | struct drm_unique __user *argp = (void __user *)arg; |
58 | drm_unique_t u; | 58 | struct drm_unique u; |
59 | 59 | ||
60 | if (copy_from_user(&u, argp, sizeof(u))) | 60 | if (copy_from_user(&u, argp, sizeof(u))) |
61 | return -EFAULT; | 61 | return -EFAULT; |
@@ -86,15 +86,15 @@ int drm_getunique(struct inode *inode, struct file *filp, | |||
86 | int drm_setunique(struct inode *inode, struct file *filp, | 86 | int drm_setunique(struct inode *inode, struct file *filp, |
87 | unsigned int cmd, unsigned long arg) | 87 | unsigned int cmd, unsigned long arg) |
88 | { | 88 | { |
89 | drm_file_t *priv = filp->private_data; | 89 | struct drm_file *priv = filp->private_data; |
90 | drm_device_t *dev = priv->head->dev; | 90 | struct drm_device *dev = priv->head->dev; |
91 | drm_unique_t u; | 91 | struct drm_unique u; |
92 | int domain, bus, slot, func, ret; | 92 | int domain, bus, slot, func, ret; |
93 | 93 | ||
94 | if (dev->unique_len || dev->unique) | 94 | if (dev->unique_len || dev->unique) |
95 | return -EBUSY; | 95 | return -EBUSY; |
96 | 96 | ||
97 | if (copy_from_user(&u, (drm_unique_t __user *) arg, sizeof(u))) | 97 | if (copy_from_user(&u, (struct drm_unique __user *) arg, sizeof(u))) |
98 | return -EFAULT; | 98 | return -EFAULT; |
99 | 99 | ||
100 | if (!u.unique_len || u.unique_len > 1024) | 100 | if (!u.unique_len || u.unique_len > 1024) |
@@ -136,7 +136,7 @@ int drm_setunique(struct inode *inode, struct file *filp, | |||
136 | return 0; | 136 | return 0; |
137 | } | 137 | } |
138 | 138 | ||
139 | static int drm_set_busid(drm_device_t * dev) | 139 | static int drm_set_busid(struct drm_device * dev) |
140 | { | 140 | { |
141 | int len; | 141 | int len; |
142 | 142 | ||
@@ -184,11 +184,11 @@ static int drm_set_busid(drm_device_t * dev) | |||
184 | int drm_getmap(struct inode *inode, struct file *filp, | 184 | int drm_getmap(struct inode *inode, struct file *filp, |
185 | unsigned int cmd, unsigned long arg) | 185 | unsigned int cmd, unsigned long arg) |
186 | { | 186 | { |
187 | drm_file_t *priv = filp->private_data; | 187 | struct drm_file *priv = filp->private_data; |
188 | drm_device_t *dev = priv->head->dev; | 188 | struct drm_device *dev = priv->head->dev; |
189 | drm_map_t __user *argp = (void __user *)arg; | 189 | struct drm_map __user *argp = (void __user *)arg; |
190 | drm_map_t map; | 190 | struct drm_map map; |
191 | drm_map_list_t *r_list = NULL; | 191 | struct drm_map_list *r_list = NULL; |
192 | struct list_head *list; | 192 | struct list_head *list; |
193 | int idx; | 193 | int idx; |
194 | int i; | 194 | int i; |
@@ -204,9 +204,9 @@ int drm_getmap(struct inode *inode, struct file *filp, | |||
204 | } | 204 | } |
205 | 205 | ||
206 | i = 0; | 206 | i = 0; |
207 | list_for_each(list, &dev->maplist->head) { | 207 | list_for_each(list, &dev->maplist) { |
208 | if (i == idx) { | 208 | if (i == idx) { |
209 | r_list = list_entry(list, drm_map_list_t, head); | 209 | r_list = list_entry(list, struct drm_map_list, head); |
210 | break; | 210 | break; |
211 | } | 211 | } |
212 | i++; | 212 | i++; |
@@ -245,11 +245,11 @@ int drm_getmap(struct inode *inode, struct file *filp, | |||
245 | int drm_getclient(struct inode *inode, struct file *filp, | 245 | int drm_getclient(struct inode *inode, struct file *filp, |
246 | unsigned int cmd, unsigned long arg) | 246 | unsigned int cmd, unsigned long arg) |
247 | { | 247 | { |
248 | drm_file_t *priv = filp->private_data; | 248 | struct drm_file *priv = filp->private_data; |
249 | drm_device_t *dev = priv->head->dev; | 249 | struct drm_device *dev = priv->head->dev; |
250 | drm_client_t __user *argp = (drm_client_t __user *)arg; | 250 | struct drm_client __user *argp = (struct drm_client __user *)arg; |
251 | drm_client_t client; | 251 | struct drm_client client; |
252 | drm_file_t *pt; | 252 | struct drm_file *pt; |
253 | int idx; | 253 | int idx; |
254 | int i; | 254 | int i; |
255 | 255 | ||
@@ -257,12 +257,18 @@ int drm_getclient(struct inode *inode, struct file *filp, | |||
257 | return -EFAULT; | 257 | return -EFAULT; |
258 | idx = client.idx; | 258 | idx = client.idx; |
259 | mutex_lock(&dev->struct_mutex); | 259 | mutex_lock(&dev->struct_mutex); |
260 | for (i = 0, pt = dev->file_first; i < idx && pt; i++, pt = pt->next) ; | 260 | |
261 | 261 | if (list_empty(&dev->filelist)) { | |
262 | if (!pt) { | ||
263 | mutex_unlock(&dev->struct_mutex); | 262 | mutex_unlock(&dev->struct_mutex); |
264 | return -EINVAL; | 263 | return -EINVAL; |
265 | } | 264 | } |
265 | |||
266 | i = 0; | ||
267 | list_for_each_entry(pt, &dev->filelist, lhead) { | ||
268 | if (i++ >= idx) | ||
269 | break; | ||
270 | } | ||
271 | |||
266 | client.auth = pt->authenticated; | 272 | client.auth = pt->authenticated; |
267 | client.pid = pt->pid; | 273 | client.pid = pt->pid; |
268 | client.uid = pt->uid; | 274 | client.uid = pt->uid; |
@@ -288,9 +294,9 @@ int drm_getclient(struct inode *inode, struct file *filp, | |||
288 | int drm_getstats(struct inode *inode, struct file *filp, | 294 | int drm_getstats(struct inode *inode, struct file *filp, |
289 | unsigned int cmd, unsigned long arg) | 295 | unsigned int cmd, unsigned long arg) |
290 | { | 296 | { |
291 | drm_file_t *priv = filp->private_data; | 297 | struct drm_file *priv = filp->private_data; |
292 | drm_device_t *dev = priv->head->dev; | 298 | struct drm_device *dev = priv->head->dev; |
293 | drm_stats_t stats; | 299 | struct drm_stats stats; |
294 | int i; | 300 | int i; |
295 | 301 | ||
296 | memset(&stats, 0, sizeof(stats)); | 302 | memset(&stats, 0, sizeof(stats)); |
@@ -310,7 +316,7 @@ int drm_getstats(struct inode *inode, struct file *filp, | |||
310 | 316 | ||
311 | mutex_unlock(&dev->struct_mutex); | 317 | mutex_unlock(&dev->struct_mutex); |
312 | 318 | ||
313 | if (copy_to_user((drm_stats_t __user *) arg, &stats, sizeof(stats))) | 319 | if (copy_to_user((struct drm_stats __user *) arg, &stats, sizeof(stats))) |
314 | return -EFAULT; | 320 | return -EFAULT; |
315 | return 0; | 321 | return 0; |
316 | } | 322 | } |
@@ -329,10 +335,10 @@ int drm_getstats(struct inode *inode, struct file *filp, | |||
329 | int drm_setversion(DRM_IOCTL_ARGS) | 335 | int drm_setversion(DRM_IOCTL_ARGS) |
330 | { | 336 | { |
331 | DRM_DEVICE; | 337 | DRM_DEVICE; |
332 | drm_set_version_t sv; | 338 | struct drm_set_version sv; |
333 | drm_set_version_t retv; | 339 | struct drm_set_version retv; |
334 | int if_version; | 340 | int if_version; |
335 | drm_set_version_t __user *argp = (void __user *)data; | 341 | struct drm_set_version __user *argp = (void __user *)data; |
336 | int ret; | 342 | int ret; |
337 | 343 | ||
338 | if (copy_from_user(&sv, argp, sizeof(sv))) | 344 | if (copy_from_user(&sv, argp, sizeof(sv))) |
diff --git a/drivers/char/drm/drm_irq.c b/drivers/char/drm/drm_irq.c index 2e75331fd83e..871d2fde09b3 100644 --- a/drivers/char/drm/drm_irq.c +++ b/drivers/char/drm/drm_irq.c | |||
@@ -53,10 +53,10 @@ | |||
53 | int drm_irq_by_busid(struct inode *inode, struct file *filp, | 53 | int drm_irq_by_busid(struct inode *inode, struct file *filp, |
54 | unsigned int cmd, unsigned long arg) | 54 | unsigned int cmd, unsigned long arg) |
55 | { | 55 | { |
56 | drm_file_t *priv = filp->private_data; | 56 | struct drm_file *priv = filp->private_data; |
57 | drm_device_t *dev = priv->head->dev; | 57 | struct drm_device *dev = priv->head->dev; |
58 | drm_irq_busid_t __user *argp = (void __user *)arg; | 58 | struct drm_irq_busid __user *argp = (void __user *)arg; |
59 | drm_irq_busid_t p; | 59 | struct drm_irq_busid p; |
60 | 60 | ||
61 | if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) | 61 | if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ)) |
62 | return -EINVAL; | 62 | return -EINVAL; |
@@ -87,7 +87,7 @@ int drm_irq_by_busid(struct inode *inode, struct file *filp, | |||
87 | * \c drm_driver_irq_preinstall() and \c drm_driver_irq_postinstall() functions | 87 | * \c drm_driver_irq_preinstall() and \c drm_driver_irq_postinstall() functions |
88 | * before and after the installation. | 88 | * before and after the installation. |
89 | */ | 89 | */ |
90 | static int drm_irq_install(drm_device_t * dev) | 90 | static int drm_irq_install(struct drm_device * dev) |
91 | { | 91 | { |
92 | int ret; | 92 | int ret; |
93 | unsigned long sh_flags = 0; | 93 | unsigned long sh_flags = 0; |
@@ -120,8 +120,8 @@ static int drm_irq_install(drm_device_t * dev) | |||
120 | 120 | ||
121 | spin_lock_init(&dev->vbl_lock); | 121 | spin_lock_init(&dev->vbl_lock); |
122 | 122 | ||
123 | INIT_LIST_HEAD(&dev->vbl_sigs.head); | 123 | INIT_LIST_HEAD(&dev->vbl_sigs); |
124 | INIT_LIST_HEAD(&dev->vbl_sigs2.head); | 124 | INIT_LIST_HEAD(&dev->vbl_sigs2); |
125 | 125 | ||
126 | dev->vbl_pending = 0; | 126 | dev->vbl_pending = 0; |
127 | } | 127 | } |
@@ -155,7 +155,7 @@ static int drm_irq_install(drm_device_t * dev) | |||
155 | * | 155 | * |
156 | * Calls the driver's \c drm_driver_irq_uninstall() function, and stops the irq. | 156 | * Calls the driver's \c drm_driver_irq_uninstall() function, and stops the irq. |
157 | */ | 157 | */ |
158 | int drm_irq_uninstall(drm_device_t * dev) | 158 | int drm_irq_uninstall(struct drm_device * dev) |
159 | { | 159 | { |
160 | int irq_enabled; | 160 | int irq_enabled; |
161 | 161 | ||
@@ -197,13 +197,13 @@ EXPORT_SYMBOL(drm_irq_uninstall); | |||
197 | int drm_control(struct inode *inode, struct file *filp, | 197 | int drm_control(struct inode *inode, struct file *filp, |
198 | unsigned int cmd, unsigned long arg) | 198 | unsigned int cmd, unsigned long arg) |
199 | { | 199 | { |
200 | drm_file_t *priv = filp->private_data; | 200 | struct drm_file *priv = filp->private_data; |
201 | drm_device_t *dev = priv->head->dev; | 201 | struct drm_device *dev = priv->head->dev; |
202 | drm_control_t ctl; | 202 | struct drm_control ctl; |
203 | 203 | ||
204 | /* if we haven't irq we fallback for compatibility reasons - this used to be a separate function in drm_dma.h */ | 204 | /* if we haven't irq we fallback for compatibility reasons - this used to be a separate function in drm_dma.h */ |
205 | 205 | ||
206 | if (copy_from_user(&ctl, (drm_control_t __user *) arg, sizeof(ctl))) | 206 | if (copy_from_user(&ctl, (struct drm_control __user *) arg, sizeof(ctl))) |
207 | return -EFAULT; | 207 | return -EFAULT; |
208 | 208 | ||
209 | switch (ctl.func) { | 209 | switch (ctl.func) { |
@@ -244,10 +244,10 @@ int drm_control(struct inode *inode, struct file *filp, | |||
244 | */ | 244 | */ |
245 | int drm_wait_vblank(DRM_IOCTL_ARGS) | 245 | int drm_wait_vblank(DRM_IOCTL_ARGS) |
246 | { | 246 | { |
247 | drm_file_t *priv = filp->private_data; | 247 | struct drm_file *priv = filp->private_data; |
248 | drm_device_t *dev = priv->head->dev; | 248 | struct drm_device *dev = priv->head->dev; |
249 | drm_wait_vblank_t __user *argp = (void __user *)data; | 249 | union drm_wait_vblank __user *argp = (void __user *)data; |
250 | drm_wait_vblank_t vblwait; | 250 | union drm_wait_vblank vblwait; |
251 | struct timeval now; | 251 | struct timeval now; |
252 | int ret = 0; | 252 | int ret = 0; |
253 | unsigned int flags, seq; | 253 | unsigned int flags, seq; |
@@ -292,9 +292,9 @@ int drm_wait_vblank(DRM_IOCTL_ARGS) | |||
292 | 292 | ||
293 | if (flags & _DRM_VBLANK_SIGNAL) { | 293 | if (flags & _DRM_VBLANK_SIGNAL) { |
294 | unsigned long irqflags; | 294 | unsigned long irqflags; |
295 | drm_vbl_sig_t *vbl_sigs = (flags & _DRM_VBLANK_SECONDARY) | 295 | struct list_head *vbl_sigs = (flags & _DRM_VBLANK_SECONDARY) |
296 | ? &dev->vbl_sigs2 : &dev->vbl_sigs; | 296 | ? &dev->vbl_sigs2 : &dev->vbl_sigs; |
297 | drm_vbl_sig_t *vbl_sig; | 297 | struct drm_vbl_sig *vbl_sig; |
298 | 298 | ||
299 | spin_lock_irqsave(&dev->vbl_lock, irqflags); | 299 | spin_lock_irqsave(&dev->vbl_lock, irqflags); |
300 | 300 | ||
@@ -302,7 +302,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS) | |||
302 | * for the same vblank sequence number; nothing to be done in | 302 | * for the same vblank sequence number; nothing to be done in |
303 | * that case | 303 | * that case |
304 | */ | 304 | */ |
305 | list_for_each_entry(vbl_sig, &vbl_sigs->head, head) { | 305 | list_for_each_entry(vbl_sig, vbl_sigs, head) { |
306 | if (vbl_sig->sequence == vblwait.request.sequence | 306 | if (vbl_sig->sequence == vblwait.request.sequence |
307 | && vbl_sig->info.si_signo == vblwait.request.signal | 307 | && vbl_sig->info.si_signo == vblwait.request.signal |
308 | && vbl_sig->task == current) { | 308 | && vbl_sig->task == current) { |
@@ -324,7 +324,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS) | |||
324 | 324 | ||
325 | if (! | 325 | if (! |
326 | (vbl_sig = | 326 | (vbl_sig = |
327 | drm_alloc(sizeof(drm_vbl_sig_t), DRM_MEM_DRIVER))) { | 327 | drm_alloc(sizeof(struct drm_vbl_sig), DRM_MEM_DRIVER))) { |
328 | return -ENOMEM; | 328 | return -ENOMEM; |
329 | } | 329 | } |
330 | 330 | ||
@@ -336,7 +336,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS) | |||
336 | 336 | ||
337 | spin_lock_irqsave(&dev->vbl_lock, irqflags); | 337 | spin_lock_irqsave(&dev->vbl_lock, irqflags); |
338 | 338 | ||
339 | list_add_tail((struct list_head *)vbl_sig, &vbl_sigs->head); | 339 | list_add_tail(&vbl_sig->head, vbl_sigs); |
340 | 340 | ||
341 | spin_unlock_irqrestore(&dev->vbl_lock, irqflags); | 341 | spin_unlock_irqrestore(&dev->vbl_lock, irqflags); |
342 | 342 | ||
@@ -371,7 +371,7 @@ int drm_wait_vblank(DRM_IOCTL_ARGS) | |||
371 | * | 371 | * |
372 | * If a signal is not requested, then calls vblank_wait(). | 372 | * If a signal is not requested, then calls vblank_wait(). |
373 | */ | 373 | */ |
374 | void drm_vbl_send_signals(drm_device_t * dev) | 374 | void drm_vbl_send_signals(struct drm_device * dev) |
375 | { | 375 | { |
376 | unsigned long flags; | 376 | unsigned long flags; |
377 | int i; | 377 | int i; |
@@ -379,20 +379,18 @@ void drm_vbl_send_signals(drm_device_t * dev) | |||
379 | spin_lock_irqsave(&dev->vbl_lock, flags); | 379 | spin_lock_irqsave(&dev->vbl_lock, flags); |
380 | 380 | ||
381 | for (i = 0; i < 2; i++) { | 381 | for (i = 0; i < 2; i++) { |
382 | struct list_head *list, *tmp; | 382 | struct drm_vbl_sig *vbl_sig, *tmp; |
383 | drm_vbl_sig_t *vbl_sig; | 383 | struct list_head *vbl_sigs = i ? &dev->vbl_sigs2 : &dev->vbl_sigs; |
384 | drm_vbl_sig_t *vbl_sigs = i ? &dev->vbl_sigs2 : &dev->vbl_sigs; | ||
385 | unsigned int vbl_seq = atomic_read(i ? &dev->vbl_received2 : | 384 | unsigned int vbl_seq = atomic_read(i ? &dev->vbl_received2 : |
386 | &dev->vbl_received); | 385 | &dev->vbl_received); |
387 | 386 | ||
388 | list_for_each_safe(list, tmp, &vbl_sigs->head) { | 387 | list_for_each_entry_safe(vbl_sig, tmp, vbl_sigs, head) { |
389 | vbl_sig = list_entry(list, drm_vbl_sig_t, head); | ||
390 | if ((vbl_seq - vbl_sig->sequence) <= (1 << 23)) { | 388 | if ((vbl_seq - vbl_sig->sequence) <= (1 << 23)) { |
391 | vbl_sig->info.si_code = vbl_seq; | 389 | vbl_sig->info.si_code = vbl_seq; |
392 | send_sig_info(vbl_sig->info.si_signo, | 390 | send_sig_info(vbl_sig->info.si_signo, |
393 | &vbl_sig->info, vbl_sig->task); | 391 | &vbl_sig->info, vbl_sig->task); |
394 | 392 | ||
395 | list_del(list); | 393 | list_del(&vbl_sig->head); |
396 | 394 | ||
397 | drm_free(vbl_sig, sizeof(*vbl_sig), | 395 | drm_free(vbl_sig, sizeof(*vbl_sig), |
398 | DRM_MEM_DRIVER); | 396 | DRM_MEM_DRIVER); |
@@ -418,7 +416,7 @@ EXPORT_SYMBOL(drm_vbl_send_signals); | |||
418 | */ | 416 | */ |
419 | static void drm_locked_tasklet_func(unsigned long data) | 417 | static void drm_locked_tasklet_func(unsigned long data) |
420 | { | 418 | { |
421 | drm_device_t *dev = (drm_device_t*)data; | 419 | struct drm_device *dev = (struct drm_device *)data; |
422 | unsigned long irqflags; | 420 | unsigned long irqflags; |
423 | 421 | ||
424 | spin_lock_irqsave(&dev->tasklet_lock, irqflags); | 422 | spin_lock_irqsave(&dev->tasklet_lock, irqflags); |
@@ -455,7 +453,7 @@ static void drm_locked_tasklet_func(unsigned long data) | |||
455 | * context, it must not make any assumptions about this. Also, the HW lock will | 453 | * context, it must not make any assumptions about this. Also, the HW lock will |
456 | * be held with the kernel context or any client context. | 454 | * be held with the kernel context or any client context. |
457 | */ | 455 | */ |
458 | void drm_locked_tasklet(drm_device_t *dev, void (*func)(drm_device_t*)) | 456 | void drm_locked_tasklet(struct drm_device *dev, void (*func)(struct drm_device *)) |
459 | { | 457 | { |
460 | unsigned long irqflags; | 458 | unsigned long irqflags; |
461 | static DECLARE_TASKLET(drm_tasklet, drm_locked_tasklet_func, 0); | 459 | static DECLARE_TASKLET(drm_tasklet, drm_locked_tasklet_func, 0); |
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c index befd1af19dfe..c0534b5a8b78 100644 --- a/drivers/char/drm/drm_lock.c +++ b/drivers/char/drm/drm_lock.c | |||
@@ -51,15 +51,15 @@ static int drm_notifier(void *priv); | |||
51 | int drm_lock(struct inode *inode, struct file *filp, | 51 | int drm_lock(struct inode *inode, struct file *filp, |
52 | unsigned int cmd, unsigned long arg) | 52 | unsigned int cmd, unsigned long arg) |
53 | { | 53 | { |
54 | drm_file_t *priv = filp->private_data; | 54 | struct drm_file *priv = filp->private_data; |
55 | drm_device_t *dev = priv->head->dev; | 55 | struct drm_device *dev = priv->head->dev; |
56 | DECLARE_WAITQUEUE(entry, current); | 56 | DECLARE_WAITQUEUE(entry, current); |
57 | drm_lock_t lock; | 57 | struct drm_lock lock; |
58 | int ret = 0; | 58 | int ret = 0; |
59 | 59 | ||
60 | ++priv->lock_count; | 60 | ++priv->lock_count; |
61 | 61 | ||
62 | if (copy_from_user(&lock, (drm_lock_t __user *) arg, sizeof(lock))) | 62 | if (copy_from_user(&lock, (struct drm_lock __user *) arg, sizeof(lock))) |
63 | return -EFAULT; | 63 | return -EFAULT; |
64 | 64 | ||
65 | if (lock.context == DRM_KERNEL_CONTEXT) { | 65 | if (lock.context == DRM_KERNEL_CONTEXT) { |
@@ -152,12 +152,12 @@ int drm_lock(struct inode *inode, struct file *filp, | |||
152 | int drm_unlock(struct inode *inode, struct file *filp, | 152 | int drm_unlock(struct inode *inode, struct file *filp, |
153 | unsigned int cmd, unsigned long arg) | 153 | unsigned int cmd, unsigned long arg) |
154 | { | 154 | { |
155 | drm_file_t *priv = filp->private_data; | 155 | struct drm_file *priv = filp->private_data; |
156 | drm_device_t *dev = priv->head->dev; | 156 | struct drm_device *dev = priv->head->dev; |
157 | drm_lock_t lock; | 157 | struct drm_lock lock; |
158 | unsigned long irqflags; | 158 | unsigned long irqflags; |
159 | 159 | ||
160 | if (copy_from_user(&lock, (drm_lock_t __user *) arg, sizeof(lock))) | 160 | if (copy_from_user(&lock, (struct drm_lock __user *) arg, sizeof(lock))) |
161 | return -EFAULT; | 161 | return -EFAULT; |
162 | 162 | ||
163 | if (lock.context == DRM_KERNEL_CONTEXT) { | 163 | if (lock.context == DRM_KERNEL_CONTEXT) { |
@@ -202,7 +202,7 @@ int drm_unlock(struct inode *inode, struct file *filp, | |||
202 | * | 202 | * |
203 | * Attempt to mark the lock as held by the given context, via the \p cmpxchg instruction. | 203 | * Attempt to mark the lock as held by the given context, via the \p cmpxchg instruction. |
204 | */ | 204 | */ |
205 | int drm_lock_take(drm_lock_data_t *lock_data, | 205 | int drm_lock_take(struct drm_lock_data *lock_data, |
206 | unsigned int context) | 206 | unsigned int context) |
207 | { | 207 | { |
208 | unsigned int old, new, prev; | 208 | unsigned int old, new, prev; |
@@ -251,7 +251,7 @@ int drm_lock_take(drm_lock_data_t *lock_data, | |||
251 | * Resets the lock file pointer. | 251 | * Resets the lock file pointer. |
252 | * Marks the lock as held by the given context, via the \p cmpxchg instruction. | 252 | * Marks the lock as held by the given context, via the \p cmpxchg instruction. |
253 | */ | 253 | */ |
254 | static int drm_lock_transfer(drm_lock_data_t *lock_data, | 254 | static int drm_lock_transfer(struct drm_lock_data *lock_data, |
255 | unsigned int context) | 255 | unsigned int context) |
256 | { | 256 | { |
257 | unsigned int old, new, prev; | 257 | unsigned int old, new, prev; |
@@ -277,7 +277,7 @@ static int drm_lock_transfer(drm_lock_data_t *lock_data, | |||
277 | * Marks the lock as not held, via the \p cmpxchg instruction. Wakes any task | 277 | * Marks the lock as not held, via the \p cmpxchg instruction. Wakes any task |
278 | * waiting on the lock queue. | 278 | * waiting on the lock queue. |
279 | */ | 279 | */ |
280 | int drm_lock_free(drm_lock_data_t *lock_data, unsigned int context) | 280 | int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context) |
281 | { | 281 | { |
282 | unsigned int old, new, prev; | 282 | unsigned int old, new, prev; |
283 | volatile unsigned int *lock = &lock_data->hw_lock->lock; | 283 | volatile unsigned int *lock = &lock_data->hw_lock->lock; |
@@ -319,7 +319,7 @@ int drm_lock_free(drm_lock_data_t *lock_data, unsigned int context) | |||
319 | */ | 319 | */ |
320 | static int drm_notifier(void *priv) | 320 | static int drm_notifier(void *priv) |
321 | { | 321 | { |
322 | drm_sigdata_t *s = (drm_sigdata_t *) priv; | 322 | struct drm_sigdata *s = (struct drm_sigdata *) priv; |
323 | unsigned int old, new, prev; | 323 | unsigned int old, new, prev; |
324 | 324 | ||
325 | /* Allow signal delivery if lock isn't held */ | 325 | /* Allow signal delivery if lock isn't held */ |
@@ -350,7 +350,7 @@ static int drm_notifier(void *priv) | |||
350 | * having to worry about starvation. | 350 | * having to worry about starvation. |
351 | */ | 351 | */ |
352 | 352 | ||
353 | void drm_idlelock_take(drm_lock_data_t *lock_data) | 353 | void drm_idlelock_take(struct drm_lock_data *lock_data) |
354 | { | 354 | { |
355 | int ret = 0; | 355 | int ret = 0; |
356 | 356 | ||
@@ -369,7 +369,7 @@ void drm_idlelock_take(drm_lock_data_t *lock_data) | |||
369 | } | 369 | } |
370 | EXPORT_SYMBOL(drm_idlelock_take); | 370 | EXPORT_SYMBOL(drm_idlelock_take); |
371 | 371 | ||
372 | void drm_idlelock_release(drm_lock_data_t *lock_data) | 372 | void drm_idlelock_release(struct drm_lock_data *lock_data) |
373 | { | 373 | { |
374 | unsigned int old, prev; | 374 | unsigned int old, prev; |
375 | volatile unsigned int *lock = &lock_data->hw_lock->lock; | 375 | volatile unsigned int *lock = &lock_data->hw_lock->lock; |
diff --git a/drivers/char/drm/drm_memory.c b/drivers/char/drm/drm_memory.c index 92a867082376..93019901bd30 100644 --- a/drivers/char/drm/drm_memory.c +++ b/drivers/char/drm/drm_memory.c | |||
@@ -80,7 +80,7 @@ void *drm_realloc(void *oldpt, size_t oldsize, size_t size, int area) | |||
80 | 80 | ||
81 | #if __OS_HAS_AGP | 81 | #if __OS_HAS_AGP |
82 | static void *agp_remap(unsigned long offset, unsigned long size, | 82 | static void *agp_remap(unsigned long offset, unsigned long size, |
83 | drm_device_t * dev) | 83 | struct drm_device * dev) |
84 | { | 84 | { |
85 | unsigned long *phys_addr_map, i, num_pages = | 85 | unsigned long *phys_addr_map, i, num_pages = |
86 | PAGE_ALIGN(size) / PAGE_SIZE; | 86 | PAGE_ALIGN(size) / PAGE_SIZE; |
@@ -94,7 +94,7 @@ static void *agp_remap(unsigned long offset, unsigned long size, | |||
94 | offset -= dev->hose->mem_space->start; | 94 | offset -= dev->hose->mem_space->start; |
95 | #endif | 95 | #endif |
96 | 96 | ||
97 | for (agpmem = dev->agp->memory; agpmem; agpmem = agpmem->next) | 97 | list_for_each_entry(agpmem, &dev->agp->memory, head) |
98 | if (agpmem->bound <= offset | 98 | if (agpmem->bound <= offset |
99 | && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >= | 99 | && (agpmem->bound + (agpmem->pages << PAGE_SHIFT)) >= |
100 | (offset + size)) | 100 | (offset + size)) |
@@ -123,7 +123,7 @@ static void *agp_remap(unsigned long offset, unsigned long size, | |||
123 | } | 123 | } |
124 | 124 | ||
125 | /** Wrapper around agp_allocate_memory() */ | 125 | /** Wrapper around agp_allocate_memory() */ |
126 | DRM_AGP_MEM *drm_alloc_agp(drm_device_t * dev, int pages, u32 type) | 126 | DRM_AGP_MEM *drm_alloc_agp(struct drm_device * dev, int pages, u32 type) |
127 | { | 127 | { |
128 | return drm_agp_allocate_memory(dev->agp->bridge, pages, type); | 128 | return drm_agp_allocate_memory(dev->agp->bridge, pages, type); |
129 | } | 129 | } |
@@ -148,7 +148,7 @@ int drm_unbind_agp(DRM_AGP_MEM * handle) | |||
148 | 148 | ||
149 | #else /* __OS_HAS_AGP */ | 149 | #else /* __OS_HAS_AGP */ |
150 | static inline void *agp_remap(unsigned long offset, unsigned long size, | 150 | static inline void *agp_remap(unsigned long offset, unsigned long size, |
151 | drm_device_t * dev) | 151 | struct drm_device * dev) |
152 | { | 152 | { |
153 | return NULL; | 153 | return NULL; |
154 | } | 154 | } |
diff --git a/drivers/char/drm/drm_mm.c b/drivers/char/drm/drm_mm.c index 2ec1d9f26264..3e6bc14f7441 100644 --- a/drivers/char/drm/drm_mm.c +++ b/drivers/char/drm/drm_mm.c | |||
@@ -44,26 +44,26 @@ | |||
44 | #include "drmP.h" | 44 | #include "drmP.h" |
45 | #include <linux/slab.h> | 45 | #include <linux/slab.h> |
46 | 46 | ||
47 | unsigned long drm_mm_tail_space(drm_mm_t *mm) | 47 | unsigned long drm_mm_tail_space(struct drm_mm *mm) |
48 | { | 48 | { |
49 | struct list_head *tail_node; | 49 | struct list_head *tail_node; |
50 | drm_mm_node_t *entry; | 50 | struct drm_mm_node *entry; |
51 | 51 | ||
52 | tail_node = mm->ml_entry.prev; | 52 | tail_node = mm->ml_entry.prev; |
53 | entry = list_entry(tail_node, drm_mm_node_t, ml_entry); | 53 | entry = list_entry(tail_node, struct drm_mm_node, ml_entry); |
54 | if (!entry->free) | 54 | if (!entry->free) |
55 | return 0; | 55 | return 0; |
56 | 56 | ||
57 | return entry->size; | 57 | return entry->size; |
58 | } | 58 | } |
59 | 59 | ||
60 | int drm_mm_remove_space_from_tail(drm_mm_t *mm, unsigned long size) | 60 | int drm_mm_remove_space_from_tail(struct drm_mm *mm, unsigned long size) |
61 | { | 61 | { |
62 | struct list_head *tail_node; | 62 | struct list_head *tail_node; |
63 | drm_mm_node_t *entry; | 63 | struct drm_mm_node *entry; |
64 | 64 | ||
65 | tail_node = mm->ml_entry.prev; | 65 | tail_node = mm->ml_entry.prev; |
66 | entry = list_entry(tail_node, drm_mm_node_t, ml_entry); | 66 | entry = list_entry(tail_node, struct drm_mm_node, ml_entry); |
67 | if (!entry->free) | 67 | if (!entry->free) |
68 | return -ENOMEM; | 68 | return -ENOMEM; |
69 | 69 | ||
@@ -75,13 +75,13 @@ int drm_mm_remove_space_from_tail(drm_mm_t *mm, unsigned long size) | |||
75 | } | 75 | } |
76 | 76 | ||
77 | 77 | ||
78 | static int drm_mm_create_tail_node(drm_mm_t *mm, | 78 | static int drm_mm_create_tail_node(struct drm_mm *mm, |
79 | unsigned long start, | 79 | unsigned long start, |
80 | unsigned long size) | 80 | unsigned long size) |
81 | { | 81 | { |
82 | drm_mm_node_t *child; | 82 | struct drm_mm_node *child; |
83 | 83 | ||
84 | child = (drm_mm_node_t *) | 84 | child = (struct drm_mm_node *) |
85 | drm_alloc(sizeof(*child), DRM_MEM_MM); | 85 | drm_alloc(sizeof(*child), DRM_MEM_MM); |
86 | if (!child) | 86 | if (!child) |
87 | return -ENOMEM; | 87 | return -ENOMEM; |
@@ -98,13 +98,13 @@ static int drm_mm_create_tail_node(drm_mm_t *mm, | |||
98 | } | 98 | } |
99 | 99 | ||
100 | 100 | ||
101 | int drm_mm_add_space_to_tail(drm_mm_t *mm, unsigned long size) | 101 | int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size) |
102 | { | 102 | { |
103 | struct list_head *tail_node; | 103 | struct list_head *tail_node; |
104 | drm_mm_node_t *entry; | 104 | struct drm_mm_node *entry; |
105 | 105 | ||
106 | tail_node = mm->ml_entry.prev; | 106 | tail_node = mm->ml_entry.prev; |
107 | entry = list_entry(tail_node, drm_mm_node_t, ml_entry); | 107 | entry = list_entry(tail_node, struct drm_mm_node, ml_entry); |
108 | if (!entry->free) { | 108 | if (!entry->free) { |
109 | return drm_mm_create_tail_node(mm, entry->start + entry->size, size); | 109 | return drm_mm_create_tail_node(mm, entry->start + entry->size, size); |
110 | } | 110 | } |
@@ -112,12 +112,12 @@ int drm_mm_add_space_to_tail(drm_mm_t *mm, unsigned long size) | |||
112 | return 0; | 112 | return 0; |
113 | } | 113 | } |
114 | 114 | ||
115 | static drm_mm_node_t *drm_mm_split_at_start(drm_mm_node_t *parent, | 115 | static struct drm_mm_node *drm_mm_split_at_start(struct drm_mm_node *parent, |
116 | unsigned long size) | 116 | unsigned long size) |
117 | { | 117 | { |
118 | drm_mm_node_t *child; | 118 | struct drm_mm_node *child; |
119 | 119 | ||
120 | child = (drm_mm_node_t *) | 120 | child = (struct drm_mm_node *) |
121 | drm_alloc(sizeof(*child), DRM_MEM_MM); | 121 | drm_alloc(sizeof(*child), DRM_MEM_MM); |
122 | if (!child) | 122 | if (!child) |
123 | return NULL; | 123 | return NULL; |
@@ -139,12 +139,12 @@ static drm_mm_node_t *drm_mm_split_at_start(drm_mm_node_t *parent, | |||
139 | 139 | ||
140 | 140 | ||
141 | 141 | ||
142 | drm_mm_node_t *drm_mm_get_block(drm_mm_node_t * parent, | 142 | struct drm_mm_node *drm_mm_get_block(struct drm_mm_node * parent, |
143 | unsigned long size, unsigned alignment) | 143 | unsigned long size, unsigned alignment) |
144 | { | 144 | { |
145 | 145 | ||
146 | drm_mm_node_t *align_splitoff = NULL; | 146 | struct drm_mm_node *align_splitoff = NULL; |
147 | drm_mm_node_t *child; | 147 | struct drm_mm_node *child; |
148 | unsigned tmp = 0; | 148 | unsigned tmp = 0; |
149 | 149 | ||
150 | if (alignment) | 150 | if (alignment) |
@@ -175,26 +175,26 @@ drm_mm_node_t *drm_mm_get_block(drm_mm_node_t * parent, | |||
175 | * Otherwise add to the free stack. | 175 | * Otherwise add to the free stack. |
176 | */ | 176 | */ |
177 | 177 | ||
178 | void drm_mm_put_block(drm_mm_node_t * cur) | 178 | void drm_mm_put_block(struct drm_mm_node * cur) |
179 | { | 179 | { |
180 | 180 | ||
181 | drm_mm_t *mm = cur->mm; | 181 | struct drm_mm *mm = cur->mm; |
182 | struct list_head *cur_head = &cur->ml_entry; | 182 | struct list_head *cur_head = &cur->ml_entry; |
183 | struct list_head *root_head = &mm->ml_entry; | 183 | struct list_head *root_head = &mm->ml_entry; |
184 | drm_mm_node_t *prev_node = NULL; | 184 | struct drm_mm_node *prev_node = NULL; |
185 | drm_mm_node_t *next_node; | 185 | struct drm_mm_node *next_node; |
186 | 186 | ||
187 | int merged = 0; | 187 | int merged = 0; |
188 | 188 | ||
189 | if (cur_head->prev != root_head) { | 189 | if (cur_head->prev != root_head) { |
190 | prev_node = list_entry(cur_head->prev, drm_mm_node_t, ml_entry); | 190 | prev_node = list_entry(cur_head->prev, struct drm_mm_node, ml_entry); |
191 | if (prev_node->free) { | 191 | if (prev_node->free) { |
192 | prev_node->size += cur->size; | 192 | prev_node->size += cur->size; |
193 | merged = 1; | 193 | merged = 1; |
194 | } | 194 | } |
195 | } | 195 | } |
196 | if (cur_head->next != root_head) { | 196 | if (cur_head->next != root_head) { |
197 | next_node = list_entry(cur_head->next, drm_mm_node_t, ml_entry); | 197 | next_node = list_entry(cur_head->next, struct drm_mm_node, ml_entry); |
198 | if (next_node->free) { | 198 | if (next_node->free) { |
199 | if (merged) { | 199 | if (merged) { |
200 | prev_node->size += next_node->size; | 200 | prev_node->size += next_node->size; |
@@ -218,14 +218,14 @@ void drm_mm_put_block(drm_mm_node_t * cur) | |||
218 | } | 218 | } |
219 | } | 219 | } |
220 | 220 | ||
221 | drm_mm_node_t *drm_mm_search_free(const drm_mm_t * mm, | 221 | struct drm_mm_node *drm_mm_search_free(const struct drm_mm * mm, |
222 | unsigned long size, | 222 | unsigned long size, |
223 | unsigned alignment, int best_match) | 223 | unsigned alignment, int best_match) |
224 | { | 224 | { |
225 | struct list_head *list; | 225 | struct list_head *list; |
226 | const struct list_head *free_stack = &mm->fl_entry; | 226 | const struct list_head *free_stack = &mm->fl_entry; |
227 | drm_mm_node_t *entry; | 227 | struct drm_mm_node *entry; |
228 | drm_mm_node_t *best; | 228 | struct drm_mm_node *best; |
229 | unsigned long best_size; | 229 | unsigned long best_size; |
230 | unsigned wasted; | 230 | unsigned wasted; |
231 | 231 | ||
@@ -233,7 +233,7 @@ drm_mm_node_t *drm_mm_search_free(const drm_mm_t * mm, | |||
233 | best_size = ~0UL; | 233 | best_size = ~0UL; |
234 | 234 | ||
235 | list_for_each(list, free_stack) { | 235 | list_for_each(list, free_stack) { |
236 | entry = list_entry(list, drm_mm_node_t, fl_entry); | 236 | entry = list_entry(list, struct drm_mm_node, fl_entry); |
237 | wasted = 0; | 237 | wasted = 0; |
238 | 238 | ||
239 | if (entry->size < size) | 239 | if (entry->size < size) |
@@ -259,14 +259,14 @@ drm_mm_node_t *drm_mm_search_free(const drm_mm_t * mm, | |||
259 | return best; | 259 | return best; |
260 | } | 260 | } |
261 | 261 | ||
262 | int drm_mm_clean(drm_mm_t * mm) | 262 | int drm_mm_clean(struct drm_mm * mm) |
263 | { | 263 | { |
264 | struct list_head *head = &mm->ml_entry; | 264 | struct list_head *head = &mm->ml_entry; |
265 | 265 | ||
266 | return (head->next->next == head); | 266 | return (head->next->next == head); |
267 | } | 267 | } |
268 | 268 | ||
269 | int drm_mm_init(drm_mm_t * mm, unsigned long start, unsigned long size) | 269 | int drm_mm_init(struct drm_mm * mm, unsigned long start, unsigned long size) |
270 | { | 270 | { |
271 | INIT_LIST_HEAD(&mm->ml_entry); | 271 | INIT_LIST_HEAD(&mm->ml_entry); |
272 | INIT_LIST_HEAD(&mm->fl_entry); | 272 | INIT_LIST_HEAD(&mm->fl_entry); |
@@ -275,12 +275,12 @@ int drm_mm_init(drm_mm_t * mm, unsigned long start, unsigned long size) | |||
275 | } | 275 | } |
276 | 276 | ||
277 | 277 | ||
278 | void drm_mm_takedown(drm_mm_t * mm) | 278 | void drm_mm_takedown(struct drm_mm * mm) |
279 | { | 279 | { |
280 | struct list_head *bnode = mm->fl_entry.next; | 280 | struct list_head *bnode = mm->fl_entry.next; |
281 | drm_mm_node_t *entry; | 281 | struct drm_mm_node *entry; |
282 | 282 | ||
283 | entry = list_entry(bnode, drm_mm_node_t, fl_entry); | 283 | entry = list_entry(bnode, struct drm_mm_node, fl_entry); |
284 | 284 | ||
285 | if (entry->ml_entry.next != &mm->ml_entry || | 285 | if (entry->ml_entry.next != &mm->ml_entry || |
286 | entry->fl_entry.next != &mm->fl_entry) { | 286 | entry->fl_entry.next != &mm->fl_entry) { |
diff --git a/drivers/char/drm/drm_os_linux.h b/drivers/char/drm/drm_os_linux.h index 0fe7b4497927..0b8d3433386d 100644 --- a/drivers/char/drm/drm_os_linux.h +++ b/drivers/char/drm/drm_os_linux.h | |||
@@ -34,8 +34,8 @@ | |||
34 | /** Read/write memory barrier */ | 34 | /** Read/write memory barrier */ |
35 | #define DRM_MEMORYBARRIER() mb() | 35 | #define DRM_MEMORYBARRIER() mb() |
36 | /** DRM device local declaration */ | 36 | /** DRM device local declaration */ |
37 | #define DRM_DEVICE drm_file_t *priv = filp->private_data; \ | 37 | #define DRM_DEVICE struct drm_file *priv = filp->private_data; \ |
38 | drm_device_t *dev = priv->head->dev | 38 | struct drm_device *dev = priv->head->dev |
39 | 39 | ||
40 | /** IRQ handler arguments and return type and values */ | 40 | /** IRQ handler arguments and return type and values */ |
41 | #define DRM_IRQ_ARGS int irq, void *arg | 41 | #define DRM_IRQ_ARGS int irq, void *arg |
@@ -96,24 +96,6 @@ static __inline__ int mtrr_del(int reg, unsigned long base, unsigned long size) | |||
96 | 96 | ||
97 | #define DRM_GET_PRIV_WITH_RETURN(_priv, _filp) _priv = _filp->private_data | 97 | #define DRM_GET_PRIV_WITH_RETURN(_priv, _filp) _priv = _filp->private_data |
98 | 98 | ||
99 | /** | ||
100 | * Get the pointer to the SAREA. | ||
101 | * | ||
102 | * Searches the SAREA on the mapping lists and points drm_device::sarea to it. | ||
103 | */ | ||
104 | #define DRM_GETSAREA() \ | ||
105 | do { \ | ||
106 | drm_map_list_t *entry; \ | ||
107 | list_for_each_entry( entry, &dev->maplist->head, head ) { \ | ||
108 | if ( entry->map && \ | ||
109 | entry->map->type == _DRM_SHM && \ | ||
110 | (entry->map->flags & _DRM_CONTAINS_LOCK) ) { \ | ||
111 | dev_priv->sarea = entry->map; \ | ||
112 | break; \ | ||
113 | } \ | ||
114 | } \ | ||
115 | } while (0) | ||
116 | |||
117 | #define DRM_HZ HZ | 99 | #define DRM_HZ HZ |
118 | 100 | ||
119 | #define DRM_WAIT_ON( ret, queue, timeout, condition ) \ | 101 | #define DRM_WAIT_ON( ret, queue, timeout, condition ) \ |
diff --git a/drivers/char/drm/drm_pci.c b/drivers/char/drm/drm_pci.c index 86a0f1c22091..e292bb0eaca2 100644 --- a/drivers/char/drm/drm_pci.c +++ b/drivers/char/drm/drm_pci.c | |||
@@ -47,7 +47,7 @@ | |||
47 | /** | 47 | /** |
48 | * \brief Allocate a PCI consistent memory block, for DMA. | 48 | * \brief Allocate a PCI consistent memory block, for DMA. |
49 | */ | 49 | */ |
50 | drm_dma_handle_t *drm_pci_alloc(drm_device_t * dev, size_t size, size_t align, | 50 | drm_dma_handle_t *drm_pci_alloc(struct drm_device * dev, size_t size, size_t align, |
51 | dma_addr_t maxaddr) | 51 | dma_addr_t maxaddr) |
52 | { | 52 | { |
53 | drm_dma_handle_t *dmah; | 53 | drm_dma_handle_t *dmah; |
@@ -126,7 +126,7 @@ EXPORT_SYMBOL(drm_pci_alloc); | |||
126 | * | 126 | * |
127 | * This function is for internal use in the Linux-specific DRM core code. | 127 | * This function is for internal use in the Linux-specific DRM core code. |
128 | */ | 128 | */ |
129 | void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah) | 129 | void __drm_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah) |
130 | { | 130 | { |
131 | #if 1 | 131 | #if 1 |
132 | unsigned long addr; | 132 | unsigned long addr; |
@@ -172,7 +172,7 @@ void __drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah) | |||
172 | /** | 172 | /** |
173 | * \brief Free a PCI consistent memory block | 173 | * \brief Free a PCI consistent memory block |
174 | */ | 174 | */ |
175 | void drm_pci_free(drm_device_t * dev, drm_dma_handle_t * dmah) | 175 | void drm_pci_free(struct drm_device * dev, drm_dma_handle_t * dmah) |
176 | { | 176 | { |
177 | __drm_pci_free(dev, dmah); | 177 | __drm_pci_free(dev, dmah); |
178 | kfree(dmah); | 178 | kfree(dmah); |
diff --git a/drivers/char/drm/drm_proc.c b/drivers/char/drm/drm_proc.c index b204498d1a28..12dfea89c7f3 100644 --- a/drivers/char/drm/drm_proc.c +++ b/drivers/char/drm/drm_proc.c | |||
@@ -87,7 +87,7 @@ static struct drm_proc_list { | |||
87 | * "/proc/dri/%minor%/", and each entry in proc_list as | 87 | * "/proc/dri/%minor%/", and each entry in proc_list as |
88 | * "/proc/dri/%minor%/%name%". | 88 | * "/proc/dri/%minor%/%name%". |
89 | */ | 89 | */ |
90 | int drm_proc_init(drm_device_t * dev, int minor, | 90 | int drm_proc_init(struct drm_device * dev, int minor, |
91 | struct proc_dir_entry *root, struct proc_dir_entry **dev_root) | 91 | struct proc_dir_entry *root, struct proc_dir_entry **dev_root) |
92 | { | 92 | { |
93 | struct proc_dir_entry *ent; | 93 | struct proc_dir_entry *ent; |
@@ -163,7 +163,7 @@ int drm_proc_cleanup(int minor, struct proc_dir_entry *root, | |||
163 | static int drm_name_info(char *buf, char **start, off_t offset, int request, | 163 | static int drm_name_info(char *buf, char **start, off_t offset, int request, |
164 | int *eof, void *data) | 164 | int *eof, void *data) |
165 | { | 165 | { |
166 | drm_device_t *dev = (drm_device_t *) data; | 166 | struct drm_device *dev = (struct drm_device *) data; |
167 | int len = 0; | 167 | int len = 0; |
168 | 168 | ||
169 | if (offset > DRM_PROC_LIMIT) { | 169 | if (offset > DRM_PROC_LIMIT) { |
@@ -205,11 +205,10 @@ static int drm_name_info(char *buf, char **start, off_t offset, int request, | |||
205 | static int drm__vm_info(char *buf, char **start, off_t offset, int request, | 205 | static int drm__vm_info(char *buf, char **start, off_t offset, int request, |
206 | int *eof, void *data) | 206 | int *eof, void *data) |
207 | { | 207 | { |
208 | drm_device_t *dev = (drm_device_t *) data; | 208 | struct drm_device *dev = (struct drm_device *) data; |
209 | int len = 0; | 209 | int len = 0; |
210 | drm_map_t *map; | 210 | struct drm_map *map; |
211 | drm_map_list_t *r_list; | 211 | struct drm_map_list *r_list; |
212 | struct list_head *list; | ||
213 | 212 | ||
214 | /* Hardcoded from _DRM_FRAME_BUFFER, | 213 | /* Hardcoded from _DRM_FRAME_BUFFER, |
215 | _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and | 214 | _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and |
@@ -229,9 +228,7 @@ static int drm__vm_info(char *buf, char **start, off_t offset, int request, | |||
229 | DRM_PROC_PRINT("slot offset size type flags " | 228 | DRM_PROC_PRINT("slot offset size type flags " |
230 | "address mtrr\n\n"); | 229 | "address mtrr\n\n"); |
231 | i = 0; | 230 | i = 0; |
232 | if (dev->maplist != NULL) | 231 | list_for_each_entry(r_list, &dev->maplist, head) { |
233 | list_for_each(list, &dev->maplist->head) { | ||
234 | r_list = list_entry(list, drm_map_list_t, head); | ||
235 | map = r_list->map; | 232 | map = r_list->map; |
236 | if (!map) | 233 | if (!map) |
237 | continue; | 234 | continue; |
@@ -242,14 +239,15 @@ static int drm__vm_info(char *buf, char **start, off_t offset, int request, | |||
242 | DRM_PROC_PRINT("%4d 0x%08lx 0x%08lx %4.4s 0x%02x 0x%08x ", | 239 | DRM_PROC_PRINT("%4d 0x%08lx 0x%08lx %4.4s 0x%02x 0x%08x ", |
243 | i, | 240 | i, |
244 | map->offset, | 241 | map->offset, |
245 | map->size, type, map->flags, r_list->user_token); | 242 | map->size, type, map->flags, |
243 | r_list->user_token); | ||
246 | if (map->mtrr < 0) { | 244 | if (map->mtrr < 0) { |
247 | DRM_PROC_PRINT("none\n"); | 245 | DRM_PROC_PRINT("none\n"); |
248 | } else { | 246 | } else { |
249 | DRM_PROC_PRINT("%4d\n", map->mtrr); | 247 | DRM_PROC_PRINT("%4d\n", map->mtrr); |
250 | } | 248 | } |
251 | i++; | 249 | i++; |
252 | } | 250 | } |
253 | 251 | ||
254 | if (len > request + offset) | 252 | if (len > request + offset) |
255 | return request; | 253 | return request; |
@@ -263,7 +261,7 @@ static int drm__vm_info(char *buf, char **start, off_t offset, int request, | |||
263 | static int drm_vm_info(char *buf, char **start, off_t offset, int request, | 261 | static int drm_vm_info(char *buf, char **start, off_t offset, int request, |
264 | int *eof, void *data) | 262 | int *eof, void *data) |
265 | { | 263 | { |
266 | drm_device_t *dev = (drm_device_t *) data; | 264 | struct drm_device *dev = (struct drm_device *) data; |
267 | int ret; | 265 | int ret; |
268 | 266 | ||
269 | mutex_lock(&dev->struct_mutex); | 267 | mutex_lock(&dev->struct_mutex); |
@@ -286,10 +284,10 @@ static int drm_vm_info(char *buf, char **start, off_t offset, int request, | |||
286 | static int drm__queues_info(char *buf, char **start, off_t offset, | 284 | static int drm__queues_info(char *buf, char **start, off_t offset, |
287 | int request, int *eof, void *data) | 285 | int request, int *eof, void *data) |
288 | { | 286 | { |
289 | drm_device_t *dev = (drm_device_t *) data; | 287 | struct drm_device *dev = (struct drm_device *) data; |
290 | int len = 0; | 288 | int len = 0; |
291 | int i; | 289 | int i; |
292 | drm_queue_t *q; | 290 | struct drm_queue *q; |
293 | 291 | ||
294 | if (offset > DRM_PROC_LIMIT) { | 292 | if (offset > DRM_PROC_LIMIT) { |
295 | *eof = 1; | 293 | *eof = 1; |
@@ -336,7 +334,7 @@ static int drm__queues_info(char *buf, char **start, off_t offset, | |||
336 | static int drm_queues_info(char *buf, char **start, off_t offset, int request, | 334 | static int drm_queues_info(char *buf, char **start, off_t offset, int request, |
337 | int *eof, void *data) | 335 | int *eof, void *data) |
338 | { | 336 | { |
339 | drm_device_t *dev = (drm_device_t *) data; | 337 | struct drm_device *dev = (struct drm_device *) data; |
340 | int ret; | 338 | int ret; |
341 | 339 | ||
342 | mutex_lock(&dev->struct_mutex); | 340 | mutex_lock(&dev->struct_mutex); |
@@ -359,9 +357,9 @@ static int drm_queues_info(char *buf, char **start, off_t offset, int request, | |||
359 | static int drm__bufs_info(char *buf, char **start, off_t offset, int request, | 357 | static int drm__bufs_info(char *buf, char **start, off_t offset, int request, |
360 | int *eof, void *data) | 358 | int *eof, void *data) |
361 | { | 359 | { |
362 | drm_device_t *dev = (drm_device_t *) data; | 360 | struct drm_device *dev = (struct drm_device *) data; |
363 | int len = 0; | 361 | int len = 0; |
364 | drm_device_dma_t *dma = dev->dma; | 362 | struct drm_device_dma *dma = dev->dma; |
365 | int i; | 363 | int i; |
366 | 364 | ||
367 | if (!dma || offset > DRM_PROC_LIMIT) { | 365 | if (!dma || offset > DRM_PROC_LIMIT) { |
@@ -408,7 +406,7 @@ static int drm__bufs_info(char *buf, char **start, off_t offset, int request, | |||
408 | static int drm_bufs_info(char *buf, char **start, off_t offset, int request, | 406 | static int drm_bufs_info(char *buf, char **start, off_t offset, int request, |
409 | int *eof, void *data) | 407 | int *eof, void *data) |
410 | { | 408 | { |
411 | drm_device_t *dev = (drm_device_t *) data; | 409 | struct drm_device *dev = (struct drm_device *) data; |
412 | int ret; | 410 | int ret; |
413 | 411 | ||
414 | mutex_lock(&dev->struct_mutex); | 412 | mutex_lock(&dev->struct_mutex); |
@@ -431,9 +429,9 @@ static int drm_bufs_info(char *buf, char **start, off_t offset, int request, | |||
431 | static int drm__clients_info(char *buf, char **start, off_t offset, | 429 | static int drm__clients_info(char *buf, char **start, off_t offset, |
432 | int request, int *eof, void *data) | 430 | int request, int *eof, void *data) |
433 | { | 431 | { |
434 | drm_device_t *dev = (drm_device_t *) data; | 432 | struct drm_device *dev = (struct drm_device *) data; |
435 | int len = 0; | 433 | int len = 0; |
436 | drm_file_t *priv; | 434 | struct drm_file *priv; |
437 | 435 | ||
438 | if (offset > DRM_PROC_LIMIT) { | 436 | if (offset > DRM_PROC_LIMIT) { |
439 | *eof = 1; | 437 | *eof = 1; |
@@ -444,7 +442,7 @@ static int drm__clients_info(char *buf, char **start, off_t offset, | |||
444 | *eof = 0; | 442 | *eof = 0; |
445 | 443 | ||
446 | DRM_PROC_PRINT("a dev pid uid magic ioctls\n\n"); | 444 | DRM_PROC_PRINT("a dev pid uid magic ioctls\n\n"); |
447 | for (priv = dev->file_first; priv; priv = priv->next) { | 445 | list_for_each_entry(priv, &dev->filelist, lhead) { |
448 | DRM_PROC_PRINT("%c %3d %5d %5d %10u %10lu\n", | 446 | DRM_PROC_PRINT("%c %3d %5d %5d %10u %10lu\n", |
449 | priv->authenticated ? 'y' : 'n', | 447 | priv->authenticated ? 'y' : 'n', |
450 | priv->minor, | 448 | priv->minor, |
@@ -464,7 +462,7 @@ static int drm__clients_info(char *buf, char **start, off_t offset, | |||
464 | static int drm_clients_info(char *buf, char **start, off_t offset, | 462 | static int drm_clients_info(char *buf, char **start, off_t offset, |
465 | int request, int *eof, void *data) | 463 | int request, int *eof, void *data) |
466 | { | 464 | { |
467 | drm_device_t *dev = (drm_device_t *) data; | 465 | struct drm_device *dev = (struct drm_device *) data; |
468 | int ret; | 466 | int ret; |
469 | 467 | ||
470 | mutex_lock(&dev->struct_mutex); | 468 | mutex_lock(&dev->struct_mutex); |
@@ -478,9 +476,9 @@ static int drm_clients_info(char *buf, char **start, off_t offset, | |||
478 | static int drm__vma_info(char *buf, char **start, off_t offset, int request, | 476 | static int drm__vma_info(char *buf, char **start, off_t offset, int request, |
479 | int *eof, void *data) | 477 | int *eof, void *data) |
480 | { | 478 | { |
481 | drm_device_t *dev = (drm_device_t *) data; | 479 | struct drm_device *dev = (struct drm_device *) data; |
482 | int len = 0; | 480 | int len = 0; |
483 | drm_vma_entry_t *pt; | 481 | struct drm_vma_entry *pt; |
484 | struct vm_area_struct *vma; | 482 | struct vm_area_struct *vma; |
485 | #if defined(__i386__) | 483 | #if defined(__i386__) |
486 | unsigned int pgprot; | 484 | unsigned int pgprot; |
@@ -497,7 +495,7 @@ static int drm__vma_info(char *buf, char **start, off_t offset, int request, | |||
497 | DRM_PROC_PRINT("vma use count: %d, high_memory = %p, 0x%08lx\n", | 495 | DRM_PROC_PRINT("vma use count: %d, high_memory = %p, 0x%08lx\n", |
498 | atomic_read(&dev->vma_count), | 496 | atomic_read(&dev->vma_count), |
499 | high_memory, virt_to_phys(high_memory)); | 497 | high_memory, virt_to_phys(high_memory)); |
500 | for (pt = dev->vmalist; pt; pt = pt->next) { | 498 | list_for_each_entry(pt, &dev->vmalist, head) { |
501 | if (!(vma = pt->vma)) | 499 | if (!(vma = pt->vma)) |
502 | continue; | 500 | continue; |
503 | DRM_PROC_PRINT("\n%5d 0x%08lx-0x%08lx %c%c%c%c%c%c 0x%08lx000", | 501 | DRM_PROC_PRINT("\n%5d 0x%08lx-0x%08lx %c%c%c%c%c%c 0x%08lx000", |
@@ -537,7 +535,7 @@ static int drm__vma_info(char *buf, char **start, off_t offset, int request, | |||
537 | static int drm_vma_info(char *buf, char **start, off_t offset, int request, | 535 | static int drm_vma_info(char *buf, char **start, off_t offset, int request, |
538 | int *eof, void *data) | 536 | int *eof, void *data) |
539 | { | 537 | { |
540 | drm_device_t *dev = (drm_device_t *) data; | 538 | struct drm_device *dev = (struct drm_device *) data; |
541 | int ret; | 539 | int ret; |
542 | 540 | ||
543 | mutex_lock(&dev->struct_mutex); | 541 | mutex_lock(&dev->struct_mutex); |
diff --git a/drivers/char/drm/drm_sarea.h b/drivers/char/drm/drm_sarea.h index e94297b751b8..f5466966081e 100644 --- a/drivers/char/drm/drm_sarea.h +++ b/drivers/char/drm/drm_sarea.h | |||
@@ -50,29 +50,35 @@ | |||
50 | #define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 | 50 | #define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 |
51 | 51 | ||
52 | /** SAREA drawable */ | 52 | /** SAREA drawable */ |
53 | typedef struct drm_sarea_drawable { | 53 | struct drm_sarea_drawable { |
54 | unsigned int stamp; | 54 | unsigned int stamp; |
55 | unsigned int flags; | 55 | unsigned int flags; |
56 | } drm_sarea_drawable_t; | 56 | }; |
57 | 57 | ||
58 | /** SAREA frame */ | 58 | /** SAREA frame */ |
59 | typedef struct drm_sarea_frame { | 59 | struct drm_sarea_frame { |
60 | unsigned int x; | 60 | unsigned int x; |
61 | unsigned int y; | 61 | unsigned int y; |
62 | unsigned int width; | 62 | unsigned int width; |
63 | unsigned int height; | 63 | unsigned int height; |
64 | unsigned int fullscreen; | 64 | unsigned int fullscreen; |
65 | } drm_sarea_frame_t; | 65 | }; |
66 | 66 | ||
67 | /** SAREA */ | 67 | /** SAREA */ |
68 | typedef struct drm_sarea { | 68 | struct drm_sarea { |
69 | /** first thing is always the DRM locking structure */ | 69 | /** first thing is always the DRM locking structure */ |
70 | drm_hw_lock_t lock; | 70 | struct drm_hw_lock lock; |
71 | /** \todo Use readers/writer lock for drm_sarea::drawable_lock */ | 71 | /** \todo Use readers/writer lock for drm_sarea::drawable_lock */ |
72 | drm_hw_lock_t drawable_lock; | 72 | struct drm_hw_lock drawable_lock; |
73 | drm_sarea_drawable_t drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */ | 73 | struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */ |
74 | drm_sarea_frame_t frame; /**< frame */ | 74 | struct drm_sarea_frame frame; /**< frame */ |
75 | drm_context_t dummy_context; | 75 | drm_context_t dummy_context; |
76 | } drm_sarea_t; | 76 | }; |
77 | |||
78 | #ifndef __KERNEL__ | ||
79 | typedef struct drm_sarea_drawable drm_sarea_drawable_t; | ||
80 | typedef struct drm_sarea_frame drm_sarea_frame_t; | ||
81 | typedef struct drm_sarea drm_sarea_t; | ||
82 | #endif | ||
77 | 83 | ||
78 | #endif /* _DRM_SAREA_H_ */ | 84 | #endif /* _DRM_SAREA_H_ */ |
diff --git a/drivers/char/drm/drm_scatter.c b/drivers/char/drm/drm_scatter.c index 06ef7ddbe67d..067d25daaf17 100644 --- a/drivers/char/drm/drm_scatter.c +++ b/drivers/char/drm/drm_scatter.c | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | #define DEBUG_SCATTER 0 | 37 | #define DEBUG_SCATTER 0 |
38 | 38 | ||
39 | void drm_sg_cleanup(drm_sg_mem_t * entry) | 39 | void drm_sg_cleanup(struct drm_sg_mem * entry) |
40 | { | 40 | { |
41 | struct page *page; | 41 | struct page *page; |
42 | int i; | 42 | int i; |
@@ -65,11 +65,11 @@ void drm_sg_cleanup(drm_sg_mem_t * entry) | |||
65 | int drm_sg_alloc(struct inode *inode, struct file *filp, | 65 | int drm_sg_alloc(struct inode *inode, struct file *filp, |
66 | unsigned int cmd, unsigned long arg) | 66 | unsigned int cmd, unsigned long arg) |
67 | { | 67 | { |
68 | drm_file_t *priv = filp->private_data; | 68 | struct drm_file *priv = filp->private_data; |
69 | drm_device_t *dev = priv->head->dev; | 69 | struct drm_device *dev = priv->head->dev; |
70 | drm_scatter_gather_t __user *argp = (void __user *)arg; | 70 | struct drm_scatter_gather __user *argp = (void __user *)arg; |
71 | drm_scatter_gather_t request; | 71 | struct drm_scatter_gather request; |
72 | drm_sg_mem_t *entry; | 72 | struct drm_sg_mem *entry; |
73 | unsigned long pages, i, j; | 73 | unsigned long pages, i, j; |
74 | 74 | ||
75 | DRM_DEBUG("%s\n", __FUNCTION__); | 75 | DRM_DEBUG("%s\n", __FUNCTION__); |
@@ -201,16 +201,16 @@ int drm_sg_alloc(struct inode *inode, struct file *filp, | |||
201 | int drm_sg_free(struct inode *inode, struct file *filp, | 201 | int drm_sg_free(struct inode *inode, struct file *filp, |
202 | unsigned int cmd, unsigned long arg) | 202 | unsigned int cmd, unsigned long arg) |
203 | { | 203 | { |
204 | drm_file_t *priv = filp->private_data; | 204 | struct drm_file *priv = filp->private_data; |
205 | drm_device_t *dev = priv->head->dev; | 205 | struct drm_device *dev = priv->head->dev; |
206 | drm_scatter_gather_t request; | 206 | struct drm_scatter_gather request; |
207 | drm_sg_mem_t *entry; | 207 | struct drm_sg_mem *entry; |
208 | 208 | ||
209 | if (!drm_core_check_feature(dev, DRIVER_SG)) | 209 | if (!drm_core_check_feature(dev, DRIVER_SG)) |
210 | return -EINVAL; | 210 | return -EINVAL; |
211 | 211 | ||
212 | if (copy_from_user(&request, | 212 | if (copy_from_user(&request, |
213 | (drm_scatter_gather_t __user *) arg, | 213 | (struct drm_scatter_gather __user *) arg, |
214 | sizeof(request))) | 214 | sizeof(request))) |
215 | return -EFAULT; | 215 | return -EFAULT; |
216 | 216 | ||
diff --git a/drivers/char/drm/drm_sman.c b/drivers/char/drm/drm_sman.c index e15db6d6bea9..8421a93946d8 100644 --- a/drivers/char/drm/drm_sman.c +++ b/drivers/char/drm/drm_sman.c | |||
@@ -38,13 +38,13 @@ | |||
38 | 38 | ||
39 | #include "drm_sman.h" | 39 | #include "drm_sman.h" |
40 | 40 | ||
41 | typedef struct drm_owner_item { | 41 | struct drm_owner_item { |
42 | drm_hash_item_t owner_hash; | 42 | struct drm_hash_item owner_hash; |
43 | struct list_head sman_list; | 43 | struct list_head sman_list; |
44 | struct list_head mem_blocks; | 44 | struct list_head mem_blocks; |
45 | } drm_owner_item_t; | 45 | }; |
46 | 46 | ||
47 | void drm_sman_takedown(drm_sman_t * sman) | 47 | void drm_sman_takedown(struct drm_sman * sman) |
48 | { | 48 | { |
49 | drm_ht_remove(&sman->user_hash_tab); | 49 | drm_ht_remove(&sman->user_hash_tab); |
50 | drm_ht_remove(&sman->owner_hash_tab); | 50 | drm_ht_remove(&sman->owner_hash_tab); |
@@ -56,12 +56,12 @@ void drm_sman_takedown(drm_sman_t * sman) | |||
56 | EXPORT_SYMBOL(drm_sman_takedown); | 56 | EXPORT_SYMBOL(drm_sman_takedown); |
57 | 57 | ||
58 | int | 58 | int |
59 | drm_sman_init(drm_sman_t * sman, unsigned int num_managers, | 59 | drm_sman_init(struct drm_sman * sman, unsigned int num_managers, |
60 | unsigned int user_order, unsigned int owner_order) | 60 | unsigned int user_order, unsigned int owner_order) |
61 | { | 61 | { |
62 | int ret = 0; | 62 | int ret = 0; |
63 | 63 | ||
64 | sman->mm = (drm_sman_mm_t *) drm_calloc(num_managers, sizeof(*sman->mm), | 64 | sman->mm = (struct drm_sman_mm *) drm_calloc(num_managers, sizeof(*sman->mm), |
65 | DRM_MEM_MM); | 65 | DRM_MEM_MM); |
66 | if (!sman->mm) { | 66 | if (!sman->mm) { |
67 | ret = -ENOMEM; | 67 | ret = -ENOMEM; |
@@ -88,8 +88,8 @@ EXPORT_SYMBOL(drm_sman_init); | |||
88 | static void *drm_sman_mm_allocate(void *private, unsigned long size, | 88 | static void *drm_sman_mm_allocate(void *private, unsigned long size, |
89 | unsigned alignment) | 89 | unsigned alignment) |
90 | { | 90 | { |
91 | drm_mm_t *mm = (drm_mm_t *) private; | 91 | struct drm_mm *mm = (struct drm_mm *) private; |
92 | drm_mm_node_t *tmp; | 92 | struct drm_mm_node *tmp; |
93 | 93 | ||
94 | tmp = drm_mm_search_free(mm, size, alignment, 1); | 94 | tmp = drm_mm_search_free(mm, size, alignment, 1); |
95 | if (!tmp) { | 95 | if (!tmp) { |
@@ -101,30 +101,30 @@ static void *drm_sman_mm_allocate(void *private, unsigned long size, | |||
101 | 101 | ||
102 | static void drm_sman_mm_free(void *private, void *ref) | 102 | static void drm_sman_mm_free(void *private, void *ref) |
103 | { | 103 | { |
104 | drm_mm_node_t *node = (drm_mm_node_t *) ref; | 104 | struct drm_mm_node *node = (struct drm_mm_node *) ref; |
105 | 105 | ||
106 | drm_mm_put_block(node); | 106 | drm_mm_put_block(node); |
107 | } | 107 | } |
108 | 108 | ||
109 | static void drm_sman_mm_destroy(void *private) | 109 | static void drm_sman_mm_destroy(void *private) |
110 | { | 110 | { |
111 | drm_mm_t *mm = (drm_mm_t *) private; | 111 | struct drm_mm *mm = (struct drm_mm *) private; |
112 | drm_mm_takedown(mm); | 112 | drm_mm_takedown(mm); |
113 | drm_free(mm, sizeof(*mm), DRM_MEM_MM); | 113 | drm_free(mm, sizeof(*mm), DRM_MEM_MM); |
114 | } | 114 | } |
115 | 115 | ||
116 | static unsigned long drm_sman_mm_offset(void *private, void *ref) | 116 | static unsigned long drm_sman_mm_offset(void *private, void *ref) |
117 | { | 117 | { |
118 | drm_mm_node_t *node = (drm_mm_node_t *) ref; | 118 | struct drm_mm_node *node = (struct drm_mm_node *) ref; |
119 | return node->start; | 119 | return node->start; |
120 | } | 120 | } |
121 | 121 | ||
122 | int | 122 | int |
123 | drm_sman_set_range(drm_sman_t * sman, unsigned int manager, | 123 | drm_sman_set_range(struct drm_sman * sman, unsigned int manager, |
124 | unsigned long start, unsigned long size) | 124 | unsigned long start, unsigned long size) |
125 | { | 125 | { |
126 | drm_sman_mm_t *sman_mm; | 126 | struct drm_sman_mm *sman_mm; |
127 | drm_mm_t *mm; | 127 | struct drm_mm *mm; |
128 | int ret; | 128 | int ret; |
129 | 129 | ||
130 | BUG_ON(manager >= sman->num_managers); | 130 | BUG_ON(manager >= sman->num_managers); |
@@ -153,8 +153,8 @@ drm_sman_set_range(drm_sman_t * sman, unsigned int manager, | |||
153 | EXPORT_SYMBOL(drm_sman_set_range); | 153 | EXPORT_SYMBOL(drm_sman_set_range); |
154 | 154 | ||
155 | int | 155 | int |
156 | drm_sman_set_manager(drm_sman_t * sman, unsigned int manager, | 156 | drm_sman_set_manager(struct drm_sman * sman, unsigned int manager, |
157 | drm_sman_mm_t * allocator) | 157 | struct drm_sman_mm * allocator) |
158 | { | 158 | { |
159 | BUG_ON(manager >= sman->num_managers); | 159 | BUG_ON(manager >= sman->num_managers); |
160 | sman->mm[manager] = *allocator; | 160 | sman->mm[manager] = *allocator; |
@@ -163,16 +163,16 @@ drm_sman_set_manager(drm_sman_t * sman, unsigned int manager, | |||
163 | } | 163 | } |
164 | EXPORT_SYMBOL(drm_sman_set_manager); | 164 | EXPORT_SYMBOL(drm_sman_set_manager); |
165 | 165 | ||
166 | static drm_owner_item_t *drm_sman_get_owner_item(drm_sman_t * sman, | 166 | static struct drm_owner_item *drm_sman_get_owner_item(struct drm_sman * sman, |
167 | unsigned long owner) | 167 | unsigned long owner) |
168 | { | 168 | { |
169 | int ret; | 169 | int ret; |
170 | drm_hash_item_t *owner_hash_item; | 170 | struct drm_hash_item *owner_hash_item; |
171 | drm_owner_item_t *owner_item; | 171 | struct drm_owner_item *owner_item; |
172 | 172 | ||
173 | ret = drm_ht_find_item(&sman->owner_hash_tab, owner, &owner_hash_item); | 173 | ret = drm_ht_find_item(&sman->owner_hash_tab, owner, &owner_hash_item); |
174 | if (!ret) { | 174 | if (!ret) { |
175 | return drm_hash_entry(owner_hash_item, drm_owner_item_t, | 175 | return drm_hash_entry(owner_hash_item, struct drm_owner_item, |
176 | owner_hash); | 176 | owner_hash); |
177 | } | 177 | } |
178 | 178 | ||
@@ -194,14 +194,14 @@ out: | |||
194 | return NULL; | 194 | return NULL; |
195 | } | 195 | } |
196 | 196 | ||
197 | drm_memblock_item_t *drm_sman_alloc(drm_sman_t *sman, unsigned int manager, | 197 | struct drm_memblock_item *drm_sman_alloc(struct drm_sman *sman, unsigned int manager, |
198 | unsigned long size, unsigned alignment, | 198 | unsigned long size, unsigned alignment, |
199 | unsigned long owner) | 199 | unsigned long owner) |
200 | { | 200 | { |
201 | void *tmp; | 201 | void *tmp; |
202 | drm_sman_mm_t *sman_mm; | 202 | struct drm_sman_mm *sman_mm; |
203 | drm_owner_item_t *owner_item; | 203 | struct drm_owner_item *owner_item; |
204 | drm_memblock_item_t *memblock; | 204 | struct drm_memblock_item *memblock; |
205 | 205 | ||
206 | BUG_ON(manager >= sman->num_managers); | 206 | BUG_ON(manager >= sman->num_managers); |
207 | 207 | ||
@@ -246,9 +246,9 @@ out: | |||
246 | 246 | ||
247 | EXPORT_SYMBOL(drm_sman_alloc); | 247 | EXPORT_SYMBOL(drm_sman_alloc); |
248 | 248 | ||
249 | static void drm_sman_free(drm_memblock_item_t *item) | 249 | static void drm_sman_free(struct drm_memblock_item *item) |
250 | { | 250 | { |
251 | drm_sman_t *sman = item->sman; | 251 | struct drm_sman *sman = item->sman; |
252 | 252 | ||
253 | list_del(&item->owner_list); | 253 | list_del(&item->owner_list); |
254 | drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash); | 254 | drm_ht_remove_item(&sman->user_hash_tab, &item->user_hash); |
@@ -256,40 +256,41 @@ static void drm_sman_free(drm_memblock_item_t *item) | |||
256 | drm_free(item, sizeof(*item), DRM_MEM_MM); | 256 | drm_free(item, sizeof(*item), DRM_MEM_MM); |
257 | } | 257 | } |
258 | 258 | ||
259 | int drm_sman_free_key(drm_sman_t *sman, unsigned int key) | 259 | int drm_sman_free_key(struct drm_sman *sman, unsigned int key) |
260 | { | 260 | { |
261 | drm_hash_item_t *hash_item; | 261 | struct drm_hash_item *hash_item; |
262 | drm_memblock_item_t *memblock_item; | 262 | struct drm_memblock_item *memblock_item; |
263 | 263 | ||
264 | if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item)) | 264 | if (drm_ht_find_item(&sman->user_hash_tab, key, &hash_item)) |
265 | return -EINVAL; | 265 | return -EINVAL; |
266 | 266 | ||
267 | memblock_item = drm_hash_entry(hash_item, drm_memblock_item_t, user_hash); | 267 | memblock_item = drm_hash_entry(hash_item, struct drm_memblock_item, |
268 | user_hash); | ||
268 | drm_sman_free(memblock_item); | 269 | drm_sman_free(memblock_item); |
269 | return 0; | 270 | return 0; |
270 | } | 271 | } |
271 | 272 | ||
272 | EXPORT_SYMBOL(drm_sman_free_key); | 273 | EXPORT_SYMBOL(drm_sman_free_key); |
273 | 274 | ||
274 | static void drm_sman_remove_owner(drm_sman_t *sman, | 275 | static void drm_sman_remove_owner(struct drm_sman *sman, |
275 | drm_owner_item_t *owner_item) | 276 | struct drm_owner_item *owner_item) |
276 | { | 277 | { |
277 | list_del(&owner_item->sman_list); | 278 | list_del(&owner_item->sman_list); |
278 | drm_ht_remove_item(&sman->owner_hash_tab, &owner_item->owner_hash); | 279 | drm_ht_remove_item(&sman->owner_hash_tab, &owner_item->owner_hash); |
279 | drm_free(owner_item, sizeof(*owner_item), DRM_MEM_MM); | 280 | drm_free(owner_item, sizeof(*owner_item), DRM_MEM_MM); |
280 | } | 281 | } |
281 | 282 | ||
282 | int drm_sman_owner_clean(drm_sman_t *sman, unsigned long owner) | 283 | int drm_sman_owner_clean(struct drm_sman *sman, unsigned long owner) |
283 | { | 284 | { |
284 | 285 | ||
285 | drm_hash_item_t *hash_item; | 286 | struct drm_hash_item *hash_item; |
286 | drm_owner_item_t *owner_item; | 287 | struct drm_owner_item *owner_item; |
287 | 288 | ||
288 | if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) { | 289 | if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) { |
289 | return -1; | 290 | return -1; |
290 | } | 291 | } |
291 | 292 | ||
292 | owner_item = drm_hash_entry(hash_item, drm_owner_item_t, owner_hash); | 293 | owner_item = drm_hash_entry(hash_item, struct drm_owner_item, owner_hash); |
293 | if (owner_item->mem_blocks.next == &owner_item->mem_blocks) { | 294 | if (owner_item->mem_blocks.next == &owner_item->mem_blocks) { |
294 | drm_sman_remove_owner(sman, owner_item); | 295 | drm_sman_remove_owner(sman, owner_item); |
295 | return -1; | 296 | return -1; |
@@ -300,10 +301,10 @@ int drm_sman_owner_clean(drm_sman_t *sman, unsigned long owner) | |||
300 | 301 | ||
301 | EXPORT_SYMBOL(drm_sman_owner_clean); | 302 | EXPORT_SYMBOL(drm_sman_owner_clean); |
302 | 303 | ||
303 | static void drm_sman_do_owner_cleanup(drm_sman_t *sman, | 304 | static void drm_sman_do_owner_cleanup(struct drm_sman *sman, |
304 | drm_owner_item_t *owner_item) | 305 | struct drm_owner_item *owner_item) |
305 | { | 306 | { |
306 | drm_memblock_item_t *entry, *next; | 307 | struct drm_memblock_item *entry, *next; |
307 | 308 | ||
308 | list_for_each_entry_safe(entry, next, &owner_item->mem_blocks, | 309 | list_for_each_entry_safe(entry, next, &owner_item->mem_blocks, |
309 | owner_list) { | 310 | owner_list) { |
@@ -312,28 +313,28 @@ static void drm_sman_do_owner_cleanup(drm_sman_t *sman, | |||
312 | drm_sman_remove_owner(sman, owner_item); | 313 | drm_sman_remove_owner(sman, owner_item); |
313 | } | 314 | } |
314 | 315 | ||
315 | void drm_sman_owner_cleanup(drm_sman_t *sman, unsigned long owner) | 316 | void drm_sman_owner_cleanup(struct drm_sman *sman, unsigned long owner) |
316 | { | 317 | { |
317 | 318 | ||
318 | drm_hash_item_t *hash_item; | 319 | struct drm_hash_item *hash_item; |
319 | drm_owner_item_t *owner_item; | 320 | struct drm_owner_item *owner_item; |
320 | 321 | ||
321 | if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) { | 322 | if (drm_ht_find_item(&sman->owner_hash_tab, owner, &hash_item)) { |
322 | 323 | ||
323 | return; | 324 | return; |
324 | } | 325 | } |
325 | 326 | ||
326 | owner_item = drm_hash_entry(hash_item, drm_owner_item_t, owner_hash); | 327 | owner_item = drm_hash_entry(hash_item, struct drm_owner_item, owner_hash); |
327 | drm_sman_do_owner_cleanup(sman, owner_item); | 328 | drm_sman_do_owner_cleanup(sman, owner_item); |
328 | } | 329 | } |
329 | 330 | ||
330 | EXPORT_SYMBOL(drm_sman_owner_cleanup); | 331 | EXPORT_SYMBOL(drm_sman_owner_cleanup); |
331 | 332 | ||
332 | void drm_sman_cleanup(drm_sman_t *sman) | 333 | void drm_sman_cleanup(struct drm_sman *sman) |
333 | { | 334 | { |
334 | drm_owner_item_t *entry, *next; | 335 | struct drm_owner_item *entry, *next; |
335 | unsigned int i; | 336 | unsigned int i; |
336 | drm_sman_mm_t *sman_mm; | 337 | struct drm_sman_mm *sman_mm; |
337 | 338 | ||
338 | list_for_each_entry_safe(entry, next, &sman->owner_items, sman_list) { | 339 | list_for_each_entry_safe(entry, next, &sman->owner_items, sman_list) { |
339 | drm_sman_do_owner_cleanup(sman, entry); | 340 | drm_sman_do_owner_cleanup(sman, entry); |
diff --git a/drivers/char/drm/drm_sman.h b/drivers/char/drm/drm_sman.h index ddc732a1bf27..39a39fefeef1 100644 --- a/drivers/char/drm/drm_sman.h +++ b/drivers/char/drm/drm_sman.h | |||
@@ -50,7 +50,7 @@ | |||
50 | * for memory management. | 50 | * for memory management. |
51 | */ | 51 | */ |
52 | 52 | ||
53 | typedef struct drm_sman_mm { | 53 | struct drm_sman_mm { |
54 | /* private info. If allocated, needs to be destroyed by the destroy | 54 | /* private info. If allocated, needs to be destroyed by the destroy |
55 | function */ | 55 | function */ |
56 | void *private; | 56 | void *private; |
@@ -74,30 +74,30 @@ typedef struct drm_sman_mm { | |||
74 | "alloc" function */ | 74 | "alloc" function */ |
75 | 75 | ||
76 | unsigned long (*offset) (void *private, void *ref); | 76 | unsigned long (*offset) (void *private, void *ref); |
77 | } drm_sman_mm_t; | 77 | }; |
78 | 78 | ||
79 | typedef struct drm_memblock_item { | 79 | struct drm_memblock_item { |
80 | struct list_head owner_list; | 80 | struct list_head owner_list; |
81 | drm_hash_item_t user_hash; | 81 | struct drm_hash_item user_hash; |
82 | void *mm_info; | 82 | void *mm_info; |
83 | drm_sman_mm_t *mm; | 83 | struct drm_sman_mm *mm; |
84 | struct drm_sman *sman; | 84 | struct drm_sman *sman; |
85 | } drm_memblock_item_t; | 85 | }; |
86 | 86 | ||
87 | typedef struct drm_sman { | 87 | struct drm_sman { |
88 | drm_sman_mm_t *mm; | 88 | struct drm_sman_mm *mm; |
89 | int num_managers; | 89 | int num_managers; |
90 | drm_open_hash_t owner_hash_tab; | 90 | struct drm_open_hash owner_hash_tab; |
91 | drm_open_hash_t user_hash_tab; | 91 | struct drm_open_hash user_hash_tab; |
92 | struct list_head owner_items; | 92 | struct list_head owner_items; |
93 | } drm_sman_t; | 93 | }; |
94 | 94 | ||
95 | /* | 95 | /* |
96 | * Take down a memory manager. This function should only be called after a | 96 | * Take down a memory manager. This function should only be called after a |
97 | * successful init and after a call to drm_sman_cleanup. | 97 | * successful init and after a call to drm_sman_cleanup. |
98 | */ | 98 | */ |
99 | 99 | ||
100 | extern void drm_sman_takedown(drm_sman_t * sman); | 100 | extern void drm_sman_takedown(struct drm_sman * sman); |
101 | 101 | ||
102 | /* | 102 | /* |
103 | * Allocate structures for a manager. | 103 | * Allocate structures for a manager. |
@@ -112,7 +112,7 @@ extern void drm_sman_takedown(drm_sman_t * sman); | |||
112 | * | 112 | * |
113 | */ | 113 | */ |
114 | 114 | ||
115 | extern int drm_sman_init(drm_sman_t * sman, unsigned int num_managers, | 115 | extern int drm_sman_init(struct drm_sman * sman, unsigned int num_managers, |
116 | unsigned int user_order, unsigned int owner_order); | 116 | unsigned int user_order, unsigned int owner_order); |
117 | 117 | ||
118 | /* | 118 | /* |
@@ -120,7 +120,7 @@ extern int drm_sman_init(drm_sman_t * sman, unsigned int num_managers, | |||
120 | * manager unless a customized allogator is used. | 120 | * manager unless a customized allogator is used. |
121 | */ | 121 | */ |
122 | 122 | ||
123 | extern int drm_sman_set_range(drm_sman_t * sman, unsigned int manager, | 123 | extern int drm_sman_set_range(struct drm_sman * sman, unsigned int manager, |
124 | unsigned long start, unsigned long size); | 124 | unsigned long start, unsigned long size); |
125 | 125 | ||
126 | /* | 126 | /* |
@@ -129,23 +129,23 @@ extern int drm_sman_set_range(drm_sman_t * sman, unsigned int manager, | |||
129 | * so it can be destroyed after this call. | 129 | * so it can be destroyed after this call. |
130 | */ | 130 | */ |
131 | 131 | ||
132 | extern int drm_sman_set_manager(drm_sman_t * sman, unsigned int mananger, | 132 | extern int drm_sman_set_manager(struct drm_sman * sman, unsigned int mananger, |
133 | drm_sman_mm_t * allocator); | 133 | struct drm_sman_mm * allocator); |
134 | 134 | ||
135 | /* | 135 | /* |
136 | * Allocate a memory block. Aligment is not implemented yet. | 136 | * Allocate a memory block. Aligment is not implemented yet. |
137 | */ | 137 | */ |
138 | 138 | ||
139 | extern drm_memblock_item_t *drm_sman_alloc(drm_sman_t * sman, | 139 | extern struct drm_memblock_item *drm_sman_alloc(struct drm_sman * sman, |
140 | unsigned int manager, | 140 | unsigned int manager, |
141 | unsigned long size, | 141 | unsigned long size, |
142 | unsigned alignment, | 142 | unsigned alignment, |
143 | unsigned long owner); | 143 | unsigned long owner); |
144 | /* | 144 | /* |
145 | * Free a memory block identified by its user hash key. | 145 | * Free a memory block identified by its user hash key. |
146 | */ | 146 | */ |
147 | 147 | ||
148 | extern int drm_sman_free_key(drm_sman_t * sman, unsigned int key); | 148 | extern int drm_sman_free_key(struct drm_sman * sman, unsigned int key); |
149 | 149 | ||
150 | /* | 150 | /* |
151 | * returns 1 iff there are no stale memory blocks associated with this owner. | 151 | * returns 1 iff there are no stale memory blocks associated with this owner. |
@@ -154,7 +154,7 @@ extern int drm_sman_free_key(drm_sman_t * sman, unsigned int key); | |||
154 | * resources associated with owner. | 154 | * resources associated with owner. |
155 | */ | 155 | */ |
156 | 156 | ||
157 | extern int drm_sman_owner_clean(drm_sman_t * sman, unsigned long owner); | 157 | extern int drm_sman_owner_clean(struct drm_sman * sman, unsigned long owner); |
158 | 158 | ||
159 | /* | 159 | /* |
160 | * Frees all stale memory blocks associated with this owner. Note that this | 160 | * Frees all stale memory blocks associated with this owner. Note that this |
@@ -164,13 +164,13 @@ extern int drm_sman_owner_clean(drm_sman_t * sman, unsigned long owner); | |||
164 | * is not going to be referenced anymore. | 164 | * is not going to be referenced anymore. |
165 | */ | 165 | */ |
166 | 166 | ||
167 | extern void drm_sman_owner_cleanup(drm_sman_t * sman, unsigned long owner); | 167 | extern void drm_sman_owner_cleanup(struct drm_sman * sman, unsigned long owner); |
168 | 168 | ||
169 | /* | 169 | /* |
170 | * Frees all stale memory blocks associated with the memory manager. | 170 | * Frees all stale memory blocks associated with the memory manager. |
171 | * See idling above. | 171 | * See idling above. |
172 | */ | 172 | */ |
173 | 173 | ||
174 | extern void drm_sman_cleanup(drm_sman_t * sman); | 174 | extern void drm_sman_cleanup(struct drm_sman * sman); |
175 | 175 | ||
176 | #endif | 176 | #endif |
diff --git a/drivers/char/drm/drm_stub.c b/drivers/char/drm/drm_stub.c index 19408adcc775..9138b49e676e 100644 --- a/drivers/char/drm/drm_stub.c +++ b/drivers/char/drm/drm_stub.c | |||
@@ -49,16 +49,21 @@ MODULE_PARM_DESC(debug, "Enable debug output"); | |||
49 | module_param_named(cards_limit, drm_cards_limit, int, 0444); | 49 | module_param_named(cards_limit, drm_cards_limit, int, 0444); |
50 | module_param_named(debug, drm_debug, int, 0600); | 50 | module_param_named(debug, drm_debug, int, 0600); |
51 | 51 | ||
52 | drm_head_t **drm_heads; | 52 | struct drm_head **drm_heads; |
53 | struct class *drm_class; | 53 | struct class *drm_class; |
54 | struct proc_dir_entry *drm_proc_root; | 54 | struct proc_dir_entry *drm_proc_root; |
55 | 55 | ||
56 | static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev, | 56 | static int drm_fill_in_dev(struct drm_device * dev, struct pci_dev *pdev, |
57 | const struct pci_device_id *ent, | 57 | const struct pci_device_id *ent, |
58 | struct drm_driver *driver) | 58 | struct drm_driver *driver) |
59 | { | 59 | { |
60 | int retcode; | 60 | int retcode; |
61 | 61 | ||
62 | INIT_LIST_HEAD(&dev->filelist); | ||
63 | INIT_LIST_HEAD(&dev->ctxlist); | ||
64 | INIT_LIST_HEAD(&dev->vmalist); | ||
65 | INIT_LIST_HEAD(&dev->maplist); | ||
66 | |||
62 | spin_lock_init(&dev->count_lock); | 67 | spin_lock_init(&dev->count_lock); |
63 | spin_lock_init(&dev->drw_lock); | 68 | spin_lock_init(&dev->drw_lock); |
64 | spin_lock_init(&dev->tasklet_lock); | 69 | spin_lock_init(&dev->tasklet_lock); |
@@ -76,12 +81,7 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev, | |||
76 | #endif | 81 | #endif |
77 | dev->irq = pdev->irq; | 82 | dev->irq = pdev->irq; |
78 | 83 | ||
79 | dev->maplist = drm_calloc(1, sizeof(*dev->maplist), DRM_MEM_MAPS); | ||
80 | if (dev->maplist == NULL) | ||
81 | return -ENOMEM; | ||
82 | INIT_LIST_HEAD(&dev->maplist->head); | ||
83 | if (drm_ht_create(&dev->map_hash, 12)) { | 84 | if (drm_ht_create(&dev->map_hash, 12)) { |
84 | drm_free(dev->maplist, sizeof(*dev->maplist), DRM_MEM_MAPS); | ||
85 | return -ENOMEM; | 85 | return -ENOMEM; |
86 | } | 86 | } |
87 | 87 | ||
@@ -143,9 +143,9 @@ static int drm_fill_in_dev(drm_device_t * dev, struct pci_dev *pdev, | |||
143 | * create the proc init entry via proc_init(). This routines assigns | 143 | * create the proc init entry via proc_init(). This routines assigns |
144 | * minor numbers to secondary heads of multi-headed cards | 144 | * minor numbers to secondary heads of multi-headed cards |
145 | */ | 145 | */ |
146 | static int drm_get_head(drm_device_t * dev, drm_head_t * head) | 146 | static int drm_get_head(struct drm_device * dev, struct drm_head * head) |
147 | { | 147 | { |
148 | drm_head_t **heads = drm_heads; | 148 | struct drm_head **heads = drm_heads; |
149 | int ret; | 149 | int ret; |
150 | int minor; | 150 | int minor; |
151 | 151 | ||
@@ -154,7 +154,7 @@ static int drm_get_head(drm_device_t * dev, drm_head_t * head) | |||
154 | for (minor = 0; minor < drm_cards_limit; minor++, heads++) { | 154 | for (minor = 0; minor < drm_cards_limit; minor++, heads++) { |
155 | if (!*heads) { | 155 | if (!*heads) { |
156 | 156 | ||
157 | *head = (drm_head_t) { | 157 | *head = (struct drm_head) { |
158 | .dev = dev,.device = | 158 | .dev = dev,.device = |
159 | MKDEV(DRM_MAJOR, minor),.minor = minor,}; | 159 | MKDEV(DRM_MAJOR, minor),.minor = minor,}; |
160 | 160 | ||
@@ -184,7 +184,7 @@ static int drm_get_head(drm_device_t * dev, drm_head_t * head) | |||
184 | err_g2: | 184 | err_g2: |
185 | drm_proc_cleanup(minor, drm_proc_root, head->dev_root); | 185 | drm_proc_cleanup(minor, drm_proc_root, head->dev_root); |
186 | err_g1: | 186 | err_g1: |
187 | *head = (drm_head_t) { | 187 | *head = (struct drm_head) { |
188 | .dev = NULL}; | 188 | .dev = NULL}; |
189 | return ret; | 189 | return ret; |
190 | } | 190 | } |
@@ -203,7 +203,7 @@ static int drm_get_head(drm_device_t * dev, drm_head_t * head) | |||
203 | int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, | 203 | int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent, |
204 | struct drm_driver *driver) | 204 | struct drm_driver *driver) |
205 | { | 205 | { |
206 | drm_device_t *dev; | 206 | struct drm_device *dev; |
207 | int ret; | 207 | int ret; |
208 | 208 | ||
209 | DRM_DEBUG("\n"); | 209 | DRM_DEBUG("\n"); |
@@ -246,7 +246,7 @@ err_g1: | |||
246 | * "drm" data, otherwise unregisters the "drm" data, frees the dev list and | 246 | * "drm" data, otherwise unregisters the "drm" data, frees the dev list and |
247 | * unregisters the character device. | 247 | * unregisters the character device. |
248 | */ | 248 | */ |
249 | int drm_put_dev(drm_device_t * dev) | 249 | int drm_put_dev(struct drm_device * dev) |
250 | { | 250 | { |
251 | DRM_DEBUG("release primary %s\n", dev->driver->pci_driver.name); | 251 | DRM_DEBUG("release primary %s\n", dev->driver->pci_driver.name); |
252 | 252 | ||
@@ -274,7 +274,7 @@ int drm_put_dev(drm_device_t * dev) | |||
274 | * last minor released. | 274 | * last minor released. |
275 | * | 275 | * |
276 | */ | 276 | */ |
277 | int drm_put_head(drm_head_t * head) | 277 | int drm_put_head(struct drm_head * head) |
278 | { | 278 | { |
279 | int minor = head->minor; | 279 | int minor = head->minor; |
280 | 280 | ||
@@ -283,7 +283,7 @@ int drm_put_head(drm_head_t * head) | |||
283 | drm_proc_cleanup(minor, drm_proc_root, head->dev_root); | 283 | drm_proc_cleanup(minor, drm_proc_root, head->dev_root); |
284 | drm_sysfs_device_remove(head->dev_class); | 284 | drm_sysfs_device_remove(head->dev_class); |
285 | 285 | ||
286 | *head = (drm_head_t) {.dev = NULL}; | 286 | *head = (struct drm_head) {.dev = NULL}; |
287 | 287 | ||
288 | drm_heads[minor] = NULL; | 288 | drm_heads[minor] = NULL; |
289 | 289 | ||
diff --git a/drivers/char/drm/drm_sysfs.c b/drivers/char/drm/drm_sysfs.c index cc8e2ebe128c..cf4349b00b07 100644 --- a/drivers/char/drm/drm_sysfs.c +++ b/drivers/char/drm/drm_sysfs.c | |||
@@ -80,7 +80,7 @@ void drm_sysfs_destroy(struct class *class) | |||
80 | 80 | ||
81 | static ssize_t show_dri(struct class_device *class_device, char *buf) | 81 | static ssize_t show_dri(struct class_device *class_device, char *buf) |
82 | { | 82 | { |
83 | drm_device_t * dev = ((drm_head_t *)class_get_devdata(class_device))->dev; | 83 | struct drm_device * dev = ((struct drm_head *)class_get_devdata(class_device))->dev; |
84 | if (dev->driver->dri_library_name) | 84 | if (dev->driver->dri_library_name) |
85 | return dev->driver->dri_library_name(dev, buf); | 85 | return dev->driver->dri_library_name(dev, buf); |
86 | return snprintf(buf, PAGE_SIZE, "%s\n", dev->driver->pci_driver.name); | 86 | return snprintf(buf, PAGE_SIZE, "%s\n", dev->driver->pci_driver.name); |
@@ -104,7 +104,7 @@ static struct class_device_attribute class_device_attrs[] = { | |||
104 | * Note: the struct class passed to this function must have previously been | 104 | * Note: the struct class passed to this function must have previously been |
105 | * created with a call to drm_sysfs_create(). | 105 | * created with a call to drm_sysfs_create(). |
106 | */ | 106 | */ |
107 | struct class_device *drm_sysfs_device_add(struct class *cs, drm_head_t *head) | 107 | struct class_device *drm_sysfs_device_add(struct class *cs, struct drm_head *head) |
108 | { | 108 | { |
109 | struct class_device *class_dev; | 109 | struct class_device *class_dev; |
110 | int i, j, err; | 110 | int i, j, err; |
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c index b5c5b9fa84c3..68e36e51ba0c 100644 --- a/drivers/char/drm/drm_vm.c +++ b/drivers/char/drm/drm_vm.c | |||
@@ -79,11 +79,11 @@ static pgprot_t drm_io_prot(uint32_t map_type, struct vm_area_struct *vma) | |||
79 | static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, | 79 | static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, |
80 | unsigned long address) | 80 | unsigned long address) |
81 | { | 81 | { |
82 | drm_file_t *priv = vma->vm_file->private_data; | 82 | struct drm_file *priv = vma->vm_file->private_data; |
83 | drm_device_t *dev = priv->head->dev; | 83 | struct drm_device *dev = priv->head->dev; |
84 | drm_map_t *map = NULL; | 84 | struct drm_map *map = NULL; |
85 | drm_map_list_t *r_list; | 85 | struct drm_map_list *r_list; |
86 | drm_hash_item_t *hash; | 86 | struct drm_hash_item *hash; |
87 | 87 | ||
88 | /* | 88 | /* |
89 | * Find the right map | 89 | * Find the right map |
@@ -97,7 +97,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, | |||
97 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) | 97 | if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) |
98 | goto vm_nopage_error; | 98 | goto vm_nopage_error; |
99 | 99 | ||
100 | r_list = drm_hash_entry(hash, drm_map_list_t, hash); | 100 | r_list = drm_hash_entry(hash, struct drm_map_list, hash); |
101 | map = r_list->map; | 101 | map = r_list->map; |
102 | 102 | ||
103 | if (map && map->type == _DRM_AGP) { | 103 | if (map && map->type == _DRM_AGP) { |
@@ -116,7 +116,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, | |||
116 | /* | 116 | /* |
117 | * It's AGP memory - find the real physical page to map | 117 | * It's AGP memory - find the real physical page to map |
118 | */ | 118 | */ |
119 | for (agpmem = dev->agp->memory; agpmem; agpmem = agpmem->next) { | 119 | list_for_each_entry(agpmem, &dev->agp->memory, head) { |
120 | if (agpmem->bound <= baddr && | 120 | if (agpmem->bound <= baddr && |
121 | agpmem->bound + agpmem->pages * PAGE_SIZE > baddr) | 121 | agpmem->bound + agpmem->pages * PAGE_SIZE > baddr) |
122 | break; | 122 | break; |
@@ -163,7 +163,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma, | |||
163 | static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma, | 163 | static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma, |
164 | unsigned long address) | 164 | unsigned long address) |
165 | { | 165 | { |
166 | drm_map_t *map = (drm_map_t *) vma->vm_private_data; | 166 | struct drm_map *map = (struct drm_map *) vma->vm_private_data; |
167 | unsigned long offset; | 167 | unsigned long offset; |
168 | unsigned long i; | 168 | unsigned long i; |
169 | struct page *page; | 169 | struct page *page; |
@@ -194,12 +194,11 @@ static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma, | |||
194 | */ | 194 | */ |
195 | static void drm_vm_shm_close(struct vm_area_struct *vma) | 195 | static void drm_vm_shm_close(struct vm_area_struct *vma) |
196 | { | 196 | { |
197 | drm_file_t *priv = vma->vm_file->private_data; | 197 | struct drm_file *priv = vma->vm_file->private_data; |
198 | drm_device_t *dev = priv->head->dev; | 198 | struct drm_device *dev = priv->head->dev; |
199 | drm_vma_entry_t *pt, *prev, *next; | 199 | struct drm_vma_entry *pt, *temp; |
200 | drm_map_t *map; | 200 | struct drm_map *map; |
201 | drm_map_list_t *r_list; | 201 | struct drm_map_list *r_list; |
202 | struct list_head *list; | ||
203 | int found_maps = 0; | 202 | int found_maps = 0; |
204 | 203 | ||
205 | DRM_DEBUG("0x%08lx,0x%08lx\n", | 204 | DRM_DEBUG("0x%08lx,0x%08lx\n", |
@@ -209,30 +208,22 @@ static void drm_vm_shm_close(struct vm_area_struct *vma) | |||
209 | map = vma->vm_private_data; | 208 | map = vma->vm_private_data; |
210 | 209 | ||
211 | mutex_lock(&dev->struct_mutex); | 210 | mutex_lock(&dev->struct_mutex); |
212 | for (pt = dev->vmalist, prev = NULL; pt; pt = next) { | 211 | list_for_each_entry_safe(pt, temp, &dev->vmalist, head) { |
213 | next = pt->next; | ||
214 | if (pt->vma->vm_private_data == map) | 212 | if (pt->vma->vm_private_data == map) |
215 | found_maps++; | 213 | found_maps++; |
216 | if (pt->vma == vma) { | 214 | if (pt->vma == vma) { |
217 | if (prev) { | 215 | list_del(&pt->head); |
218 | prev->next = pt->next; | ||
219 | } else { | ||
220 | dev->vmalist = pt->next; | ||
221 | } | ||
222 | drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); | 216 | drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); |
223 | } else { | ||
224 | prev = pt; | ||
225 | } | 217 | } |
226 | } | 218 | } |
219 | |||
227 | /* We were the only map that was found */ | 220 | /* We were the only map that was found */ |
228 | if (found_maps == 1 && map->flags & _DRM_REMOVABLE) { | 221 | if (found_maps == 1 && map->flags & _DRM_REMOVABLE) { |
229 | /* Check to see if we are in the maplist, if we are not, then | 222 | /* Check to see if we are in the maplist, if we are not, then |
230 | * we delete this mappings information. | 223 | * we delete this mappings information. |
231 | */ | 224 | */ |
232 | found_maps = 0; | 225 | found_maps = 0; |
233 | list = &dev->maplist->head; | 226 | list_for_each_entry(r_list, &dev->maplist, head) { |
234 | list_for_each(list, &dev->maplist->head) { | ||
235 | r_list = list_entry(list, drm_map_list_t, head); | ||
236 | if (r_list->map == map) | 227 | if (r_list->map == map) |
237 | found_maps++; | 228 | found_maps++; |
238 | } | 229 | } |
@@ -283,9 +274,9 @@ static void drm_vm_shm_close(struct vm_area_struct *vma) | |||
283 | static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma, | 274 | static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma, |
284 | unsigned long address) | 275 | unsigned long address) |
285 | { | 276 | { |
286 | drm_file_t *priv = vma->vm_file->private_data; | 277 | struct drm_file *priv = vma->vm_file->private_data; |
287 | drm_device_t *dev = priv->head->dev; | 278 | struct drm_device *dev = priv->head->dev; |
288 | drm_device_dma_t *dma = dev->dma; | 279 | struct drm_device_dma *dma = dev->dma; |
289 | unsigned long offset; | 280 | unsigned long offset; |
290 | unsigned long page_nr; | 281 | unsigned long page_nr; |
291 | struct page *page; | 282 | struct page *page; |
@@ -319,10 +310,10 @@ static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma, | |||
319 | static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma, | 310 | static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma, |
320 | unsigned long address) | 311 | unsigned long address) |
321 | { | 312 | { |
322 | drm_map_t *map = (drm_map_t *) vma->vm_private_data; | 313 | struct drm_map *map = (struct drm_map *) vma->vm_private_data; |
323 | drm_file_t *priv = vma->vm_file->private_data; | 314 | struct drm_file *priv = vma->vm_file->private_data; |
324 | drm_device_t *dev = priv->head->dev; | 315 | struct drm_device *dev = priv->head->dev; |
325 | drm_sg_mem_t *entry = dev->sg; | 316 | struct drm_sg_mem *entry = dev->sg; |
326 | unsigned long offset; | 317 | unsigned long offset; |
327 | unsigned long map_offset; | 318 | unsigned long map_offset; |
328 | unsigned long page_offset; | 319 | unsigned long page_offset; |
@@ -414,9 +405,9 @@ static struct vm_operations_struct drm_vm_sg_ops = { | |||
414 | */ | 405 | */ |
415 | static void drm_vm_open_locked(struct vm_area_struct *vma) | 406 | static void drm_vm_open_locked(struct vm_area_struct *vma) |
416 | { | 407 | { |
417 | drm_file_t *priv = vma->vm_file->private_data; | 408 | struct drm_file *priv = vma->vm_file->private_data; |
418 | drm_device_t *dev = priv->head->dev; | 409 | struct drm_device *dev = priv->head->dev; |
419 | drm_vma_entry_t *vma_entry; | 410 | struct drm_vma_entry *vma_entry; |
420 | 411 | ||
421 | DRM_DEBUG("0x%08lx,0x%08lx\n", | 412 | DRM_DEBUG("0x%08lx,0x%08lx\n", |
422 | vma->vm_start, vma->vm_end - vma->vm_start); | 413 | vma->vm_start, vma->vm_end - vma->vm_start); |
@@ -425,16 +416,15 @@ static void drm_vm_open_locked(struct vm_area_struct *vma) | |||
425 | vma_entry = drm_alloc(sizeof(*vma_entry), DRM_MEM_VMAS); | 416 | vma_entry = drm_alloc(sizeof(*vma_entry), DRM_MEM_VMAS); |
426 | if (vma_entry) { | 417 | if (vma_entry) { |
427 | vma_entry->vma = vma; | 418 | vma_entry->vma = vma; |
428 | vma_entry->next = dev->vmalist; | ||
429 | vma_entry->pid = current->pid; | 419 | vma_entry->pid = current->pid; |
430 | dev->vmalist = vma_entry; | 420 | list_add(&vma_entry->head, &dev->vmalist); |
431 | } | 421 | } |
432 | } | 422 | } |
433 | 423 | ||
434 | static void drm_vm_open(struct vm_area_struct *vma) | 424 | static void drm_vm_open(struct vm_area_struct *vma) |
435 | { | 425 | { |
436 | drm_file_t *priv = vma->vm_file->private_data; | 426 | struct drm_file *priv = vma->vm_file->private_data; |
437 | drm_device_t *dev = priv->head->dev; | 427 | struct drm_device *dev = priv->head->dev; |
438 | 428 | ||
439 | mutex_lock(&dev->struct_mutex); | 429 | mutex_lock(&dev->struct_mutex); |
440 | drm_vm_open_locked(vma); | 430 | drm_vm_open_locked(vma); |
@@ -451,22 +441,18 @@ static void drm_vm_open(struct vm_area_struct *vma) | |||
451 | */ | 441 | */ |
452 | static void drm_vm_close(struct vm_area_struct *vma) | 442 | static void drm_vm_close(struct vm_area_struct *vma) |
453 | { | 443 | { |
454 | drm_file_t *priv = vma->vm_file->private_data; | 444 | struct drm_file *priv = vma->vm_file->private_data; |
455 | drm_device_t *dev = priv->head->dev; | 445 | struct drm_device *dev = priv->head->dev; |
456 | drm_vma_entry_t *pt, *prev; | 446 | struct drm_vma_entry *pt, *temp; |
457 | 447 | ||
458 | DRM_DEBUG("0x%08lx,0x%08lx\n", | 448 | DRM_DEBUG("0x%08lx,0x%08lx\n", |
459 | vma->vm_start, vma->vm_end - vma->vm_start); | 449 | vma->vm_start, vma->vm_end - vma->vm_start); |
460 | atomic_dec(&dev->vma_count); | 450 | atomic_dec(&dev->vma_count); |
461 | 451 | ||
462 | mutex_lock(&dev->struct_mutex); | 452 | mutex_lock(&dev->struct_mutex); |
463 | for (pt = dev->vmalist, prev = NULL; pt; prev = pt, pt = pt->next) { | 453 | list_for_each_entry_safe(pt, temp, &dev->vmalist, head) { |
464 | if (pt->vma == vma) { | 454 | if (pt->vma == vma) { |
465 | if (prev) { | 455 | list_del(&pt->head); |
466 | prev->next = pt->next; | ||
467 | } else { | ||
468 | dev->vmalist = pt->next; | ||
469 | } | ||
470 | drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); | 456 | drm_free(pt, sizeof(*pt), DRM_MEM_VMAS); |
471 | break; | 457 | break; |
472 | } | 458 | } |
@@ -486,9 +472,9 @@ static void drm_vm_close(struct vm_area_struct *vma) | |||
486 | */ | 472 | */ |
487 | static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) | 473 | static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) |
488 | { | 474 | { |
489 | drm_file_t *priv = filp->private_data; | 475 | struct drm_file *priv = filp->private_data; |
490 | drm_device_t *dev; | 476 | struct drm_device *dev; |
491 | drm_device_dma_t *dma; | 477 | struct drm_device_dma *dma; |
492 | unsigned long length = vma->vm_end - vma->vm_start; | 478 | unsigned long length = vma->vm_end - vma->vm_start; |
493 | 479 | ||
494 | dev = priv->head->dev; | 480 | dev = priv->head->dev; |
@@ -526,7 +512,7 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma) | |||
526 | return 0; | 512 | return 0; |
527 | } | 513 | } |
528 | 514 | ||
529 | unsigned long drm_core_get_map_ofs(drm_map_t * map) | 515 | unsigned long drm_core_get_map_ofs(struct drm_map * map) |
530 | { | 516 | { |
531 | return map->offset; | 517 | return map->offset; |
532 | } | 518 | } |
@@ -559,11 +545,11 @@ EXPORT_SYMBOL(drm_core_get_reg_ofs); | |||
559 | */ | 545 | */ |
560 | static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) | 546 | static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) |
561 | { | 547 | { |
562 | drm_file_t *priv = filp->private_data; | 548 | struct drm_file *priv = filp->private_data; |
563 | drm_device_t *dev = priv->head->dev; | 549 | struct drm_device *dev = priv->head->dev; |
564 | drm_map_t *map = NULL; | 550 | struct drm_map *map = NULL; |
565 | unsigned long offset = 0; | 551 | unsigned long offset = 0; |
566 | drm_hash_item_t *hash; | 552 | struct drm_hash_item *hash; |
567 | 553 | ||
568 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, page offset = 0x%lx\n", | 554 | DRM_DEBUG("start = 0x%lx, end = 0x%lx, page offset = 0x%lx\n", |
569 | vma->vm_start, vma->vm_end, vma->vm_pgoff); | 555 | vma->vm_start, vma->vm_end, vma->vm_pgoff); |
@@ -588,7 +574,7 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) | |||
588 | return -EINVAL; | 574 | return -EINVAL; |
589 | } | 575 | } |
590 | 576 | ||
591 | map = drm_hash_entry(hash, drm_map_list_t, hash)->map; | 577 | map = drm_hash_entry(hash, struct drm_map_list, hash)->map; |
592 | if (!map || ((map->flags & _DRM_RESTRICTED) && !capable(CAP_SYS_ADMIN))) | 578 | if (!map || ((map->flags & _DRM_RESTRICTED) && !capable(CAP_SYS_ADMIN))) |
593 | return -EPERM; | 579 | return -EPERM; |
594 | 580 | ||
@@ -677,8 +663,8 @@ static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma) | |||
677 | 663 | ||
678 | int drm_mmap(struct file *filp, struct vm_area_struct *vma) | 664 | int drm_mmap(struct file *filp, struct vm_area_struct *vma) |
679 | { | 665 | { |
680 | drm_file_t *priv = filp->private_data; | 666 | struct drm_file *priv = filp->private_data; |
681 | drm_device_t *dev = priv->head->dev; | 667 | struct drm_device *dev = priv->head->dev; |
682 | int ret; | 668 | int ret; |
683 | 669 | ||
684 | mutex_lock(&dev->struct_mutex); | 670 | mutex_lock(&dev->struct_mutex); |
diff --git a/drivers/char/drm/i810_dma.c b/drivers/char/drm/i810_dma.c index 603d17fd2d69..cb449999d0ef 100644 --- a/drivers/char/drm/i810_dma.c +++ b/drivers/char/drm/i810_dma.c | |||
@@ -45,16 +45,16 @@ | |||
45 | #define I810_BUF_UNMAPPED 0 | 45 | #define I810_BUF_UNMAPPED 0 |
46 | #define I810_BUF_MAPPED 1 | 46 | #define I810_BUF_MAPPED 1 |
47 | 47 | ||
48 | static drm_buf_t *i810_freelist_get(drm_device_t * dev) | 48 | static struct drm_buf *i810_freelist_get(struct drm_device * dev) |
49 | { | 49 | { |
50 | drm_device_dma_t *dma = dev->dma; | 50 | struct drm_device_dma *dma = dev->dma; |
51 | int i; | 51 | int i; |
52 | int used; | 52 | int used; |
53 | 53 | ||
54 | /* Linear search might not be the best solution */ | 54 | /* Linear search might not be the best solution */ |
55 | 55 | ||
56 | for (i = 0; i < dma->buf_count; i++) { | 56 | for (i = 0; i < dma->buf_count; i++) { |
57 | drm_buf_t *buf = dma->buflist[i]; | 57 | struct drm_buf *buf = dma->buflist[i]; |
58 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 58 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
59 | /* In use is already a pointer */ | 59 | /* In use is already a pointer */ |
60 | used = cmpxchg(buf_priv->in_use, I810_BUF_FREE, | 60 | used = cmpxchg(buf_priv->in_use, I810_BUF_FREE, |
@@ -70,7 +70,7 @@ static drm_buf_t *i810_freelist_get(drm_device_t * dev) | |||
70 | * yet, the hardware updates in use for us once its on the ring buffer. | 70 | * yet, the hardware updates in use for us once its on the ring buffer. |
71 | */ | 71 | */ |
72 | 72 | ||
73 | static int i810_freelist_put(drm_device_t * dev, drm_buf_t * buf) | 73 | static int i810_freelist_put(struct drm_device * dev, struct drm_buf * buf) |
74 | { | 74 | { |
75 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 75 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
76 | int used; | 76 | int used; |
@@ -87,10 +87,10 @@ static int i810_freelist_put(drm_device_t * dev, drm_buf_t * buf) | |||
87 | 87 | ||
88 | static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma) | 88 | static int i810_mmap_buffers(struct file *filp, struct vm_area_struct *vma) |
89 | { | 89 | { |
90 | drm_file_t *priv = filp->private_data; | 90 | struct drm_file *priv = filp->private_data; |
91 | drm_device_t *dev; | 91 | struct drm_device *dev; |
92 | drm_i810_private_t *dev_priv; | 92 | drm_i810_private_t *dev_priv; |
93 | drm_buf_t *buf; | 93 | struct drm_buf *buf; |
94 | drm_i810_buf_priv_t *buf_priv; | 94 | drm_i810_buf_priv_t *buf_priv; |
95 | 95 | ||
96 | lock_kernel(); | 96 | lock_kernel(); |
@@ -120,10 +120,10 @@ static const struct file_operations i810_buffer_fops = { | |||
120 | .fasync = drm_fasync, | 120 | .fasync = drm_fasync, |
121 | }; | 121 | }; |
122 | 122 | ||
123 | static int i810_map_buffer(drm_buf_t * buf, struct file *filp) | 123 | static int i810_map_buffer(struct drm_buf * buf, struct file *filp) |
124 | { | 124 | { |
125 | drm_file_t *priv = filp->private_data; | 125 | struct drm_file *priv = filp->private_data; |
126 | drm_device_t *dev = priv->head->dev; | 126 | struct drm_device *dev = priv->head->dev; |
127 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 127 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
128 | drm_i810_private_t *dev_priv = dev->dev_private; | 128 | drm_i810_private_t *dev_priv = dev->dev_private; |
129 | const struct file_operations *old_fops; | 129 | const struct file_operations *old_fops; |
@@ -152,7 +152,7 @@ static int i810_map_buffer(drm_buf_t * buf, struct file *filp) | |||
152 | return retcode; | 152 | return retcode; |
153 | } | 153 | } |
154 | 154 | ||
155 | static int i810_unmap_buffer(drm_buf_t * buf) | 155 | static int i810_unmap_buffer(struct drm_buf * buf) |
156 | { | 156 | { |
157 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 157 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
158 | int retcode = 0; | 158 | int retcode = 0; |
@@ -172,10 +172,10 @@ static int i810_unmap_buffer(drm_buf_t * buf) | |||
172 | return retcode; | 172 | return retcode; |
173 | } | 173 | } |
174 | 174 | ||
175 | static int i810_dma_get_buffer(drm_device_t * dev, drm_i810_dma_t * d, | 175 | static int i810_dma_get_buffer(struct drm_device * dev, drm_i810_dma_t * d, |
176 | struct file *filp) | 176 | struct file *filp) |
177 | { | 177 | { |
178 | drm_buf_t *buf; | 178 | struct drm_buf *buf; |
179 | drm_i810_buf_priv_t *buf_priv; | 179 | drm_i810_buf_priv_t *buf_priv; |
180 | int retcode = 0; | 180 | int retcode = 0; |
181 | 181 | ||
@@ -202,9 +202,9 @@ static int i810_dma_get_buffer(drm_device_t * dev, drm_i810_dma_t * d, | |||
202 | return retcode; | 202 | return retcode; |
203 | } | 203 | } |
204 | 204 | ||
205 | static int i810_dma_cleanup(drm_device_t * dev) | 205 | static int i810_dma_cleanup(struct drm_device * dev) |
206 | { | 206 | { |
207 | drm_device_dma_t *dma = dev->dma; | 207 | struct drm_device_dma *dma = dev->dma; |
208 | 208 | ||
209 | /* Make sure interrupts are disabled here because the uninstall ioctl | 209 | /* Make sure interrupts are disabled here because the uninstall ioctl |
210 | * may not have been called from userspace and after dev_private | 210 | * may not have been called from userspace and after dev_private |
@@ -233,7 +233,7 @@ static int i810_dma_cleanup(drm_device_t * dev) | |||
233 | dev->dev_private = NULL; | 233 | dev->dev_private = NULL; |
234 | 234 | ||
235 | for (i = 0; i < dma->buf_count; i++) { | 235 | for (i = 0; i < dma->buf_count; i++) { |
236 | drm_buf_t *buf = dma->buflist[i]; | 236 | struct drm_buf *buf = dma->buflist[i]; |
237 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 237 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
238 | 238 | ||
239 | if (buf_priv->kernel_virtual && buf->total) | 239 | if (buf_priv->kernel_virtual && buf->total) |
@@ -243,7 +243,7 @@ static int i810_dma_cleanup(drm_device_t * dev) | |||
243 | return 0; | 243 | return 0; |
244 | } | 244 | } |
245 | 245 | ||
246 | static int i810_wait_ring(drm_device_t * dev, int n) | 246 | static int i810_wait_ring(struct drm_device * dev, int n) |
247 | { | 247 | { |
248 | drm_i810_private_t *dev_priv = dev->dev_private; | 248 | drm_i810_private_t *dev_priv = dev->dev_private; |
249 | drm_i810_ring_buffer_t *ring = &(dev_priv->ring); | 249 | drm_i810_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -276,7 +276,7 @@ static int i810_wait_ring(drm_device_t * dev, int n) | |||
276 | return iters; | 276 | return iters; |
277 | } | 277 | } |
278 | 278 | ||
279 | static void i810_kernel_lost_context(drm_device_t * dev) | 279 | static void i810_kernel_lost_context(struct drm_device * dev) |
280 | { | 280 | { |
281 | drm_i810_private_t *dev_priv = dev->dev_private; | 281 | drm_i810_private_t *dev_priv = dev->dev_private; |
282 | drm_i810_ring_buffer_t *ring = &(dev_priv->ring); | 282 | drm_i810_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -288,9 +288,9 @@ static void i810_kernel_lost_context(drm_device_t * dev) | |||
288 | ring->space += ring->Size; | 288 | ring->space += ring->Size; |
289 | } | 289 | } |
290 | 290 | ||
291 | static int i810_freelist_init(drm_device_t * dev, drm_i810_private_t * dev_priv) | 291 | static int i810_freelist_init(struct drm_device * dev, drm_i810_private_t * dev_priv) |
292 | { | 292 | { |
293 | drm_device_dma_t *dma = dev->dma; | 293 | struct drm_device_dma *dma = dev->dma; |
294 | int my_idx = 24; | 294 | int my_idx = 24; |
295 | u32 *hw_status = (u32 *) (dev_priv->hw_status_page + my_idx); | 295 | u32 *hw_status = (u32 *) (dev_priv->hw_status_page + my_idx); |
296 | int i; | 296 | int i; |
@@ -301,7 +301,7 @@ static int i810_freelist_init(drm_device_t * dev, drm_i810_private_t * dev_priv) | |||
301 | } | 301 | } |
302 | 302 | ||
303 | for (i = 0; i < dma->buf_count; i++) { | 303 | for (i = 0; i < dma->buf_count; i++) { |
304 | drm_buf_t *buf = dma->buflist[i]; | 304 | struct drm_buf *buf = dma->buflist[i]; |
305 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 305 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
306 | 306 | ||
307 | buf_priv->in_use = hw_status++; | 307 | buf_priv->in_use = hw_status++; |
@@ -323,16 +323,14 @@ static int i810_freelist_init(drm_device_t * dev, drm_i810_private_t * dev_priv) | |||
323 | return 0; | 323 | return 0; |
324 | } | 324 | } |
325 | 325 | ||
326 | static int i810_dma_initialize(drm_device_t * dev, | 326 | static int i810_dma_initialize(struct drm_device * dev, |
327 | drm_i810_private_t * dev_priv, | 327 | drm_i810_private_t * dev_priv, |
328 | drm_i810_init_t * init) | 328 | drm_i810_init_t * init) |
329 | { | 329 | { |
330 | struct list_head *list; | 330 | struct drm_map_list *r_list; |
331 | |||
332 | memset(dev_priv, 0, sizeof(drm_i810_private_t)); | 331 | memset(dev_priv, 0, sizeof(drm_i810_private_t)); |
333 | 332 | ||
334 | list_for_each(list, &dev->maplist->head) { | 333 | list_for_each_entry(r_list, &dev->maplist, head) { |
335 | drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head); | ||
336 | if (r_list->map && | 334 | if (r_list->map && |
337 | r_list->map->type == _DRM_SHM && | 335 | r_list->map->type == _DRM_SHM && |
338 | r_list->map->flags & _DRM_CONTAINS_LOCK) { | 336 | r_list->map->flags & _DRM_CONTAINS_LOCK) { |
@@ -478,8 +476,8 @@ static int i810_dma_init_compat(drm_i810_init_t * init, unsigned long arg) | |||
478 | static int i810_dma_init(struct inode *inode, struct file *filp, | 476 | static int i810_dma_init(struct inode *inode, struct file *filp, |
479 | unsigned int cmd, unsigned long arg) | 477 | unsigned int cmd, unsigned long arg) |
480 | { | 478 | { |
481 | drm_file_t *priv = filp->private_data; | 479 | struct drm_file *priv = filp->private_data; |
482 | drm_device_t *dev = priv->head->dev; | 480 | struct drm_device *dev = priv->head->dev; |
483 | drm_i810_private_t *dev_priv; | 481 | drm_i810_private_t *dev_priv; |
484 | drm_i810_init_t init; | 482 | drm_i810_init_t init; |
485 | int retcode = 0; | 483 | int retcode = 0; |
@@ -536,7 +534,7 @@ static int i810_dma_init(struct inode *inode, struct file *filp, | |||
536 | * Use 'volatile' & local var tmp to force the emitted values to be | 534 | * Use 'volatile' & local var tmp to force the emitted values to be |
537 | * identical to the verified ones. | 535 | * identical to the verified ones. |
538 | */ | 536 | */ |
539 | static void i810EmitContextVerified(drm_device_t * dev, | 537 | static void i810EmitContextVerified(struct drm_device * dev, |
540 | volatile unsigned int *code) | 538 | volatile unsigned int *code) |
541 | { | 539 | { |
542 | drm_i810_private_t *dev_priv = dev->dev_private; | 540 | drm_i810_private_t *dev_priv = dev->dev_private; |
@@ -569,7 +567,7 @@ static void i810EmitContextVerified(drm_device_t * dev, | |||
569 | ADVANCE_LP_RING(); | 567 | ADVANCE_LP_RING(); |
570 | } | 568 | } |
571 | 569 | ||
572 | static void i810EmitTexVerified(drm_device_t * dev, volatile unsigned int *code) | 570 | static void i810EmitTexVerified(struct drm_device * dev, volatile unsigned int *code) |
573 | { | 571 | { |
574 | drm_i810_private_t *dev_priv = dev->dev_private; | 572 | drm_i810_private_t *dev_priv = dev->dev_private; |
575 | int i, j = 0; | 573 | int i, j = 0; |
@@ -602,7 +600,7 @@ static void i810EmitTexVerified(drm_device_t * dev, volatile unsigned int *code) | |||
602 | 600 | ||
603 | /* Need to do some additional checking when setting the dest buffer. | 601 | /* Need to do some additional checking when setting the dest buffer. |
604 | */ | 602 | */ |
605 | static void i810EmitDestVerified(drm_device_t * dev, | 603 | static void i810EmitDestVerified(struct drm_device * dev, |
606 | volatile unsigned int *code) | 604 | volatile unsigned int *code) |
607 | { | 605 | { |
608 | drm_i810_private_t *dev_priv = dev->dev_private; | 606 | drm_i810_private_t *dev_priv = dev->dev_private; |
@@ -637,7 +635,7 @@ static void i810EmitDestVerified(drm_device_t * dev, | |||
637 | ADVANCE_LP_RING(); | 635 | ADVANCE_LP_RING(); |
638 | } | 636 | } |
639 | 637 | ||
640 | static void i810EmitState(drm_device_t * dev) | 638 | static void i810EmitState(struct drm_device * dev) |
641 | { | 639 | { |
642 | drm_i810_private_t *dev_priv = dev->dev_private; | 640 | drm_i810_private_t *dev_priv = dev->dev_private; |
643 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; | 641 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; |
@@ -668,14 +666,14 @@ static void i810EmitState(drm_device_t * dev) | |||
668 | 666 | ||
669 | /* need to verify | 667 | /* need to verify |
670 | */ | 668 | */ |
671 | static void i810_dma_dispatch_clear(drm_device_t * dev, int flags, | 669 | static void i810_dma_dispatch_clear(struct drm_device * dev, int flags, |
672 | unsigned int clear_color, | 670 | unsigned int clear_color, |
673 | unsigned int clear_zval) | 671 | unsigned int clear_zval) |
674 | { | 672 | { |
675 | drm_i810_private_t *dev_priv = dev->dev_private; | 673 | drm_i810_private_t *dev_priv = dev->dev_private; |
676 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; | 674 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; |
677 | int nbox = sarea_priv->nbox; | 675 | int nbox = sarea_priv->nbox; |
678 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 676 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
679 | int pitch = dev_priv->pitch; | 677 | int pitch = dev_priv->pitch; |
680 | int cpp = 2; | 678 | int cpp = 2; |
681 | int i; | 679 | int i; |
@@ -743,12 +741,12 @@ static void i810_dma_dispatch_clear(drm_device_t * dev, int flags, | |||
743 | } | 741 | } |
744 | } | 742 | } |
745 | 743 | ||
746 | static void i810_dma_dispatch_swap(drm_device_t * dev) | 744 | static void i810_dma_dispatch_swap(struct drm_device * dev) |
747 | { | 745 | { |
748 | drm_i810_private_t *dev_priv = dev->dev_private; | 746 | drm_i810_private_t *dev_priv = dev->dev_private; |
749 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; | 747 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; |
750 | int nbox = sarea_priv->nbox; | 748 | int nbox = sarea_priv->nbox; |
751 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 749 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
752 | int pitch = dev_priv->pitch; | 750 | int pitch = dev_priv->pitch; |
753 | int cpp = 2; | 751 | int cpp = 2; |
754 | int i; | 752 | int i; |
@@ -789,13 +787,13 @@ static void i810_dma_dispatch_swap(drm_device_t * dev) | |||
789 | } | 787 | } |
790 | } | 788 | } |
791 | 789 | ||
792 | static void i810_dma_dispatch_vertex(drm_device_t * dev, | 790 | static void i810_dma_dispatch_vertex(struct drm_device * dev, |
793 | drm_buf_t * buf, int discard, int used) | 791 | struct drm_buf * buf, int discard, int used) |
794 | { | 792 | { |
795 | drm_i810_private_t *dev_priv = dev->dev_private; | 793 | drm_i810_private_t *dev_priv = dev->dev_private; |
796 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 794 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
797 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; | 795 | drm_i810_sarea_t *sarea_priv = dev_priv->sarea_priv; |
798 | drm_clip_rect_t *box = sarea_priv->boxes; | 796 | struct drm_clip_rect *box = sarea_priv->boxes; |
799 | int nbox = sarea_priv->nbox; | 797 | int nbox = sarea_priv->nbox; |
800 | unsigned long address = (unsigned long)buf->bus_address; | 798 | unsigned long address = (unsigned long)buf->bus_address; |
801 | unsigned long start = address - dev->agp->base; | 799 | unsigned long start = address - dev->agp->base; |
@@ -869,7 +867,7 @@ static void i810_dma_dispatch_vertex(drm_device_t * dev, | |||
869 | } | 867 | } |
870 | } | 868 | } |
871 | 869 | ||
872 | static void i810_dma_dispatch_flip(drm_device_t * dev) | 870 | static void i810_dma_dispatch_flip(struct drm_device * dev) |
873 | { | 871 | { |
874 | drm_i810_private_t *dev_priv = dev->dev_private; | 872 | drm_i810_private_t *dev_priv = dev->dev_private; |
875 | int pitch = dev_priv->pitch; | 873 | int pitch = dev_priv->pitch; |
@@ -916,7 +914,7 @@ static void i810_dma_dispatch_flip(drm_device_t * dev) | |||
916 | 914 | ||
917 | } | 915 | } |
918 | 916 | ||
919 | static void i810_dma_quiescent(drm_device_t * dev) | 917 | static void i810_dma_quiescent(struct drm_device * dev) |
920 | { | 918 | { |
921 | drm_i810_private_t *dev_priv = dev->dev_private; | 919 | drm_i810_private_t *dev_priv = dev->dev_private; |
922 | RING_LOCALS; | 920 | RING_LOCALS; |
@@ -935,10 +933,10 @@ static void i810_dma_quiescent(drm_device_t * dev) | |||
935 | i810_wait_ring(dev, dev_priv->ring.Size - 8); | 933 | i810_wait_ring(dev, dev_priv->ring.Size - 8); |
936 | } | 934 | } |
937 | 935 | ||
938 | static int i810_flush_queue(drm_device_t * dev) | 936 | static int i810_flush_queue(struct drm_device * dev) |
939 | { | 937 | { |
940 | drm_i810_private_t *dev_priv = dev->dev_private; | 938 | drm_i810_private_t *dev_priv = dev->dev_private; |
941 | drm_device_dma_t *dma = dev->dma; | 939 | struct drm_device_dma *dma = dev->dma; |
942 | int i, ret = 0; | 940 | int i, ret = 0; |
943 | RING_LOCALS; | 941 | RING_LOCALS; |
944 | 942 | ||
@@ -954,7 +952,7 @@ static int i810_flush_queue(drm_device_t * dev) | |||
954 | i810_wait_ring(dev, dev_priv->ring.Size - 8); | 952 | i810_wait_ring(dev, dev_priv->ring.Size - 8); |
955 | 953 | ||
956 | for (i = 0; i < dma->buf_count; i++) { | 954 | for (i = 0; i < dma->buf_count; i++) { |
957 | drm_buf_t *buf = dma->buflist[i]; | 955 | struct drm_buf *buf = dma->buflist[i]; |
958 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 956 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
959 | 957 | ||
960 | int used = cmpxchg(buf_priv->in_use, I810_BUF_HARDWARE, | 958 | int used = cmpxchg(buf_priv->in_use, I810_BUF_HARDWARE, |
@@ -970,9 +968,9 @@ static int i810_flush_queue(drm_device_t * dev) | |||
970 | } | 968 | } |
971 | 969 | ||
972 | /* Must be called with the lock held */ | 970 | /* Must be called with the lock held */ |
973 | static void i810_reclaim_buffers(drm_device_t * dev, struct file *filp) | 971 | static void i810_reclaim_buffers(struct drm_device * dev, struct file *filp) |
974 | { | 972 | { |
975 | drm_device_dma_t *dma = dev->dma; | 973 | struct drm_device_dma *dma = dev->dma; |
976 | int i; | 974 | int i; |
977 | 975 | ||
978 | if (!dma) | 976 | if (!dma) |
@@ -985,7 +983,7 @@ static void i810_reclaim_buffers(drm_device_t * dev, struct file *filp) | |||
985 | i810_flush_queue(dev); | 983 | i810_flush_queue(dev); |
986 | 984 | ||
987 | for (i = 0; i < dma->buf_count; i++) { | 985 | for (i = 0; i < dma->buf_count; i++) { |
988 | drm_buf_t *buf = dma->buflist[i]; | 986 | struct drm_buf *buf = dma->buflist[i]; |
989 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; | 987 | drm_i810_buf_priv_t *buf_priv = buf->dev_private; |
990 | 988 | ||
991 | if (buf->filp == filp && buf_priv) { | 989 | if (buf->filp == filp && buf_priv) { |
@@ -1003,8 +1001,8 @@ static void i810_reclaim_buffers(drm_device_t * dev, struct file *filp) | |||
1003 | static int i810_flush_ioctl(struct inode *inode, struct file *filp, | 1001 | static int i810_flush_ioctl(struct inode *inode, struct file *filp, |
1004 | unsigned int cmd, unsigned long arg) | 1002 | unsigned int cmd, unsigned long arg) |
1005 | { | 1003 | { |
1006 | drm_file_t *priv = filp->private_data; | 1004 | struct drm_file *priv = filp->private_data; |
1007 | drm_device_t *dev = priv->head->dev; | 1005 | struct drm_device *dev = priv->head->dev; |
1008 | 1006 | ||
1009 | LOCK_TEST_WITH_RETURN(dev, filp); | 1007 | LOCK_TEST_WITH_RETURN(dev, filp); |
1010 | 1008 | ||
@@ -1015,9 +1013,9 @@ static int i810_flush_ioctl(struct inode *inode, struct file *filp, | |||
1015 | static int i810_dma_vertex(struct inode *inode, struct file *filp, | 1013 | static int i810_dma_vertex(struct inode *inode, struct file *filp, |
1016 | unsigned int cmd, unsigned long arg) | 1014 | unsigned int cmd, unsigned long arg) |
1017 | { | 1015 | { |
1018 | drm_file_t *priv = filp->private_data; | 1016 | struct drm_file *priv = filp->private_data; |
1019 | drm_device_t *dev = priv->head->dev; | 1017 | struct drm_device *dev = priv->head->dev; |
1020 | drm_device_dma_t *dma = dev->dma; | 1018 | struct drm_device_dma *dma = dev->dma; |
1021 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1019 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1022 | u32 *hw_status = dev_priv->hw_status_page; | 1020 | u32 *hw_status = dev_priv->hw_status_page; |
1023 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) | 1021 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) |
@@ -1051,8 +1049,8 @@ static int i810_dma_vertex(struct inode *inode, struct file *filp, | |||
1051 | static int i810_clear_bufs(struct inode *inode, struct file *filp, | 1049 | static int i810_clear_bufs(struct inode *inode, struct file *filp, |
1052 | unsigned int cmd, unsigned long arg) | 1050 | unsigned int cmd, unsigned long arg) |
1053 | { | 1051 | { |
1054 | drm_file_t *priv = filp->private_data; | 1052 | struct drm_file *priv = filp->private_data; |
1055 | drm_device_t *dev = priv->head->dev; | 1053 | struct drm_device *dev = priv->head->dev; |
1056 | drm_i810_clear_t clear; | 1054 | drm_i810_clear_t clear; |
1057 | 1055 | ||
1058 | if (copy_from_user | 1056 | if (copy_from_user |
@@ -1074,8 +1072,8 @@ static int i810_clear_bufs(struct inode *inode, struct file *filp, | |||
1074 | static int i810_swap_bufs(struct inode *inode, struct file *filp, | 1072 | static int i810_swap_bufs(struct inode *inode, struct file *filp, |
1075 | unsigned int cmd, unsigned long arg) | 1073 | unsigned int cmd, unsigned long arg) |
1076 | { | 1074 | { |
1077 | drm_file_t *priv = filp->private_data; | 1075 | struct drm_file *priv = filp->private_data; |
1078 | drm_device_t *dev = priv->head->dev; | 1076 | struct drm_device *dev = priv->head->dev; |
1079 | 1077 | ||
1080 | DRM_DEBUG("i810_swap_bufs\n"); | 1078 | DRM_DEBUG("i810_swap_bufs\n"); |
1081 | 1079 | ||
@@ -1088,8 +1086,8 @@ static int i810_swap_bufs(struct inode *inode, struct file *filp, | |||
1088 | static int i810_getage(struct inode *inode, struct file *filp, unsigned int cmd, | 1086 | static int i810_getage(struct inode *inode, struct file *filp, unsigned int cmd, |
1089 | unsigned long arg) | 1087 | unsigned long arg) |
1090 | { | 1088 | { |
1091 | drm_file_t *priv = filp->private_data; | 1089 | struct drm_file *priv = filp->private_data; |
1092 | drm_device_t *dev = priv->head->dev; | 1090 | struct drm_device *dev = priv->head->dev; |
1093 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1091 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1094 | u32 *hw_status = dev_priv->hw_status_page; | 1092 | u32 *hw_status = dev_priv->hw_status_page; |
1095 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) | 1093 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) |
@@ -1102,8 +1100,8 @@ static int i810_getage(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1102 | static int i810_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, | 1100 | static int i810_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, |
1103 | unsigned long arg) | 1101 | unsigned long arg) |
1104 | { | 1102 | { |
1105 | drm_file_t *priv = filp->private_data; | 1103 | struct drm_file *priv = filp->private_data; |
1106 | drm_device_t *dev = priv->head->dev; | 1104 | struct drm_device *dev = priv->head->dev; |
1107 | int retcode = 0; | 1105 | int retcode = 0; |
1108 | drm_i810_dma_t d; | 1106 | drm_i810_dma_t d; |
1109 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1107 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
@@ -1123,7 +1121,7 @@ static int i810_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1123 | DRM_DEBUG("i810_dma: %d returning %d, granted = %d\n", | 1121 | DRM_DEBUG("i810_dma: %d returning %d, granted = %d\n", |
1124 | current->pid, retcode, d.granted); | 1122 | current->pid, retcode, d.granted); |
1125 | 1123 | ||
1126 | if (copy_to_user((drm_dma_t __user *) arg, &d, sizeof(d))) | 1124 | if (copy_to_user((void __user *) arg, &d, sizeof(d))) |
1127 | return -EFAULT; | 1125 | return -EFAULT; |
1128 | sarea_priv->last_dispatch = (int)hw_status[5]; | 1126 | sarea_priv->last_dispatch = (int)hw_status[5]; |
1129 | 1127 | ||
@@ -1144,7 +1142,7 @@ static int i810_docopy(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1144 | return 0; | 1142 | return 0; |
1145 | } | 1143 | } |
1146 | 1144 | ||
1147 | static void i810_dma_dispatch_mc(drm_device_t * dev, drm_buf_t * buf, int used, | 1145 | static void i810_dma_dispatch_mc(struct drm_device * dev, struct drm_buf * buf, int used, |
1148 | unsigned int last_render) | 1146 | unsigned int last_render) |
1149 | { | 1147 | { |
1150 | drm_i810_private_t *dev_priv = dev->dev_private; | 1148 | drm_i810_private_t *dev_priv = dev->dev_private; |
@@ -1207,9 +1205,9 @@ static void i810_dma_dispatch_mc(drm_device_t * dev, drm_buf_t * buf, int used, | |||
1207 | static int i810_dma_mc(struct inode *inode, struct file *filp, | 1205 | static int i810_dma_mc(struct inode *inode, struct file *filp, |
1208 | unsigned int cmd, unsigned long arg) | 1206 | unsigned int cmd, unsigned long arg) |
1209 | { | 1207 | { |
1210 | drm_file_t *priv = filp->private_data; | 1208 | struct drm_file *priv = filp->private_data; |
1211 | drm_device_t *dev = priv->head->dev; | 1209 | struct drm_device *dev = priv->head->dev; |
1212 | drm_device_dma_t *dma = dev->dma; | 1210 | struct drm_device_dma *dma = dev->dma; |
1213 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1211 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1214 | u32 *hw_status = dev_priv->hw_status_page; | 1212 | u32 *hw_status = dev_priv->hw_status_page; |
1215 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) | 1213 | drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) |
@@ -1238,8 +1236,8 @@ static int i810_dma_mc(struct inode *inode, struct file *filp, | |||
1238 | static int i810_rstatus(struct inode *inode, struct file *filp, | 1236 | static int i810_rstatus(struct inode *inode, struct file *filp, |
1239 | unsigned int cmd, unsigned long arg) | 1237 | unsigned int cmd, unsigned long arg) |
1240 | { | 1238 | { |
1241 | drm_file_t *priv = filp->private_data; | 1239 | struct drm_file *priv = filp->private_data; |
1242 | drm_device_t *dev = priv->head->dev; | 1240 | struct drm_device *dev = priv->head->dev; |
1243 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1241 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1244 | 1242 | ||
1245 | return (int)(((u32 *) (dev_priv->hw_status_page))[4]); | 1243 | return (int)(((u32 *) (dev_priv->hw_status_page))[4]); |
@@ -1248,8 +1246,8 @@ static int i810_rstatus(struct inode *inode, struct file *filp, | |||
1248 | static int i810_ov0_info(struct inode *inode, struct file *filp, | 1246 | static int i810_ov0_info(struct inode *inode, struct file *filp, |
1249 | unsigned int cmd, unsigned long arg) | 1247 | unsigned int cmd, unsigned long arg) |
1250 | { | 1248 | { |
1251 | drm_file_t *priv = filp->private_data; | 1249 | struct drm_file *priv = filp->private_data; |
1252 | drm_device_t *dev = priv->head->dev; | 1250 | struct drm_device *dev = priv->head->dev; |
1253 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1251 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1254 | drm_i810_overlay_t data; | 1252 | drm_i810_overlay_t data; |
1255 | 1253 | ||
@@ -1264,8 +1262,8 @@ static int i810_ov0_info(struct inode *inode, struct file *filp, | |||
1264 | static int i810_fstatus(struct inode *inode, struct file *filp, | 1262 | static int i810_fstatus(struct inode *inode, struct file *filp, |
1265 | unsigned int cmd, unsigned long arg) | 1263 | unsigned int cmd, unsigned long arg) |
1266 | { | 1264 | { |
1267 | drm_file_t *priv = filp->private_data; | 1265 | struct drm_file *priv = filp->private_data; |
1268 | drm_device_t *dev = priv->head->dev; | 1266 | struct drm_device *dev = priv->head->dev; |
1269 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1267 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1270 | 1268 | ||
1271 | LOCK_TEST_WITH_RETURN(dev, filp); | 1269 | LOCK_TEST_WITH_RETURN(dev, filp); |
@@ -1276,8 +1274,8 @@ static int i810_fstatus(struct inode *inode, struct file *filp, | |||
1276 | static int i810_ov0_flip(struct inode *inode, struct file *filp, | 1274 | static int i810_ov0_flip(struct inode *inode, struct file *filp, |
1277 | unsigned int cmd, unsigned long arg) | 1275 | unsigned int cmd, unsigned long arg) |
1278 | { | 1276 | { |
1279 | drm_file_t *priv = filp->private_data; | 1277 | struct drm_file *priv = filp->private_data; |
1280 | drm_device_t *dev = priv->head->dev; | 1278 | struct drm_device *dev = priv->head->dev; |
1281 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; | 1279 | drm_i810_private_t *dev_priv = (drm_i810_private_t *) dev->dev_private; |
1282 | 1280 | ||
1283 | LOCK_TEST_WITH_RETURN(dev, filp); | 1281 | LOCK_TEST_WITH_RETURN(dev, filp); |
@@ -1290,7 +1288,7 @@ static int i810_ov0_flip(struct inode *inode, struct file *filp, | |||
1290 | 1288 | ||
1291 | /* Not sure why this isn't set all the time: | 1289 | /* Not sure why this isn't set all the time: |
1292 | */ | 1290 | */ |
1293 | static void i810_do_init_pageflip(drm_device_t * dev) | 1291 | static void i810_do_init_pageflip(struct drm_device * dev) |
1294 | { | 1292 | { |
1295 | drm_i810_private_t *dev_priv = dev->dev_private; | 1293 | drm_i810_private_t *dev_priv = dev->dev_private; |
1296 | 1294 | ||
@@ -1300,7 +1298,7 @@ static void i810_do_init_pageflip(drm_device_t * dev) | |||
1300 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; | 1298 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; |
1301 | } | 1299 | } |
1302 | 1300 | ||
1303 | static int i810_do_cleanup_pageflip(drm_device_t * dev) | 1301 | static int i810_do_cleanup_pageflip(struct drm_device * dev) |
1304 | { | 1302 | { |
1305 | drm_i810_private_t *dev_priv = dev->dev_private; | 1303 | drm_i810_private_t *dev_priv = dev->dev_private; |
1306 | 1304 | ||
@@ -1315,8 +1313,8 @@ static int i810_do_cleanup_pageflip(drm_device_t * dev) | |||
1315 | static int i810_flip_bufs(struct inode *inode, struct file *filp, | 1313 | static int i810_flip_bufs(struct inode *inode, struct file *filp, |
1316 | unsigned int cmd, unsigned long arg) | 1314 | unsigned int cmd, unsigned long arg) |
1317 | { | 1315 | { |
1318 | drm_file_t *priv = filp->private_data; | 1316 | struct drm_file *priv = filp->private_data; |
1319 | drm_device_t *dev = priv->head->dev; | 1317 | struct drm_device *dev = priv->head->dev; |
1320 | drm_i810_private_t *dev_priv = dev->dev_private; | 1318 | drm_i810_private_t *dev_priv = dev->dev_private; |
1321 | 1319 | ||
1322 | DRM_DEBUG("%s\n", __FUNCTION__); | 1320 | DRM_DEBUG("%s\n", __FUNCTION__); |
@@ -1330,7 +1328,7 @@ static int i810_flip_bufs(struct inode *inode, struct file *filp, | |||
1330 | return 0; | 1328 | return 0; |
1331 | } | 1329 | } |
1332 | 1330 | ||
1333 | int i810_driver_load(drm_device_t *dev, unsigned long flags) | 1331 | int i810_driver_load(struct drm_device *dev, unsigned long flags) |
1334 | { | 1332 | { |
1335 | /* i810 has 4 more counters */ | 1333 | /* i810 has 4 more counters */ |
1336 | dev->counters += 4; | 1334 | dev->counters += 4; |
@@ -1342,12 +1340,12 @@ int i810_driver_load(drm_device_t *dev, unsigned long flags) | |||
1342 | return 0; | 1340 | return 0; |
1343 | } | 1341 | } |
1344 | 1342 | ||
1345 | void i810_driver_lastclose(drm_device_t * dev) | 1343 | void i810_driver_lastclose(struct drm_device * dev) |
1346 | { | 1344 | { |
1347 | i810_dma_cleanup(dev); | 1345 | i810_dma_cleanup(dev); |
1348 | } | 1346 | } |
1349 | 1347 | ||
1350 | void i810_driver_preclose(drm_device_t * dev, DRMFILE filp) | 1348 | void i810_driver_preclose(struct drm_device * dev, DRMFILE filp) |
1351 | { | 1349 | { |
1352 | if (dev->dev_private) { | 1350 | if (dev->dev_private) { |
1353 | drm_i810_private_t *dev_priv = dev->dev_private; | 1351 | drm_i810_private_t *dev_priv = dev->dev_private; |
@@ -1357,12 +1355,12 @@ void i810_driver_preclose(drm_device_t * dev, DRMFILE filp) | |||
1357 | } | 1355 | } |
1358 | } | 1356 | } |
1359 | 1357 | ||
1360 | void i810_driver_reclaim_buffers_locked(drm_device_t * dev, struct file *filp) | 1358 | void i810_driver_reclaim_buffers_locked(struct drm_device * dev, struct file *filp) |
1361 | { | 1359 | { |
1362 | i810_reclaim_buffers(dev, filp); | 1360 | i810_reclaim_buffers(dev, filp); |
1363 | } | 1361 | } |
1364 | 1362 | ||
1365 | int i810_driver_dma_quiescent(drm_device_t * dev) | 1363 | int i810_driver_dma_quiescent(struct drm_device * dev) |
1366 | { | 1364 | { |
1367 | i810_dma_quiescent(dev); | 1365 | i810_dma_quiescent(dev); |
1368 | return 0; | 1366 | return 0; |
@@ -1399,7 +1397,7 @@ int i810_max_ioctl = DRM_ARRAY_SIZE(i810_ioctls); | |||
1399 | * \returns | 1397 | * \returns |
1400 | * A value of 1 is always retured to indictate every i810 is AGP. | 1398 | * A value of 1 is always retured to indictate every i810 is AGP. |
1401 | */ | 1399 | */ |
1402 | int i810_driver_device_is_agp(drm_device_t * dev) | 1400 | int i810_driver_device_is_agp(struct drm_device * dev) |
1403 | { | 1401 | { |
1404 | return 1; | 1402 | return 1; |
1405 | } | 1403 | } |
diff --git a/drivers/char/drm/i810_drm.h b/drivers/char/drm/i810_drm.h index 2deb925a94f3..614977dbce45 100644 --- a/drivers/char/drm/i810_drm.h +++ b/drivers/char/drm/i810_drm.h | |||
@@ -158,7 +158,7 @@ typedef struct _drm_i810_sarea { | |||
158 | unsigned int dirty; | 158 | unsigned int dirty; |
159 | 159 | ||
160 | unsigned int nbox; | 160 | unsigned int nbox; |
161 | drm_clip_rect_t boxes[I810_NR_SAREA_CLIPRECTS]; | 161 | struct drm_clip_rect boxes[I810_NR_SAREA_CLIPRECTS]; |
162 | 162 | ||
163 | /* Maintain an LRU of contiguous regions of texture space. If | 163 | /* Maintain an LRU of contiguous regions of texture space. If |
164 | * you think you own a region of texture memory, and it has an | 164 | * you think you own a region of texture memory, and it has an |
diff --git a/drivers/char/drm/i810_drv.h b/drivers/char/drm/i810_drv.h index e6df49f4928a..648833844c7f 100644 --- a/drivers/char/drm/i810_drv.h +++ b/drivers/char/drm/i810_drv.h | |||
@@ -77,8 +77,8 @@ typedef struct _drm_i810_ring_buffer { | |||
77 | } drm_i810_ring_buffer_t; | 77 | } drm_i810_ring_buffer_t; |
78 | 78 | ||
79 | typedef struct drm_i810_private { | 79 | typedef struct drm_i810_private { |
80 | drm_map_t *sarea_map; | 80 | struct drm_map *sarea_map; |
81 | drm_map_t *mmio_map; | 81 | struct drm_map *mmio_map; |
82 | 82 | ||
83 | drm_i810_sarea_t *sarea_priv; | 83 | drm_i810_sarea_t *sarea_priv; |
84 | drm_i810_ring_buffer_t ring; | 84 | drm_i810_ring_buffer_t ring; |
@@ -88,7 +88,7 @@ typedef struct drm_i810_private { | |||
88 | 88 | ||
89 | dma_addr_t dma_status_page; | 89 | dma_addr_t dma_status_page; |
90 | 90 | ||
91 | drm_buf_t *mmap_buffer; | 91 | struct drm_buf *mmap_buffer; |
92 | 92 | ||
93 | u32 front_di1, back_di1, zi1; | 93 | u32 front_di1, back_di1, zi1; |
94 | 94 | ||
@@ -115,15 +115,15 @@ typedef struct drm_i810_private { | |||
115 | } drm_i810_private_t; | 115 | } drm_i810_private_t; |
116 | 116 | ||
117 | /* i810_dma.c */ | 117 | /* i810_dma.c */ |
118 | extern int i810_driver_dma_quiescent(drm_device_t * dev); | 118 | extern int i810_driver_dma_quiescent(struct drm_device * dev); |
119 | extern void i810_driver_reclaim_buffers_locked(drm_device_t * dev, | 119 | extern void i810_driver_reclaim_buffers_locked(struct drm_device * dev, |
120 | struct file *filp); | 120 | struct file *filp); |
121 | extern int i810_driver_load(struct drm_device *, unsigned long flags); | 121 | extern int i810_driver_load(struct drm_device *, unsigned long flags); |
122 | extern void i810_driver_lastclose(drm_device_t * dev); | 122 | extern void i810_driver_lastclose(struct drm_device * dev); |
123 | extern void i810_driver_preclose(drm_device_t * dev, DRMFILE filp); | 123 | extern void i810_driver_preclose(struct drm_device * dev, DRMFILE filp); |
124 | extern void i810_driver_reclaim_buffers_locked(drm_device_t * dev, | 124 | extern void i810_driver_reclaim_buffers_locked(struct drm_device * dev, |
125 | struct file *filp); | 125 | struct file *filp); |
126 | extern int i810_driver_device_is_agp(drm_device_t * dev); | 126 | extern int i810_driver_device_is_agp(struct drm_device * dev); |
127 | 127 | ||
128 | extern drm_ioctl_desc_t i810_ioctls[]; | 128 | extern drm_ioctl_desc_t i810_ioctls[]; |
129 | extern int i810_max_ioctl; | 129 | extern int i810_max_ioctl; |
diff --git a/drivers/char/drm/i830_dma.c b/drivers/char/drm/i830_dma.c index 3314a9fea9e5..dc20c1a7834e 100644 --- a/drivers/char/drm/i830_dma.c +++ b/drivers/char/drm/i830_dma.c | |||
@@ -47,16 +47,16 @@ | |||
47 | #define I830_BUF_UNMAPPED 0 | 47 | #define I830_BUF_UNMAPPED 0 |
48 | #define I830_BUF_MAPPED 1 | 48 | #define I830_BUF_MAPPED 1 |
49 | 49 | ||
50 | static drm_buf_t *i830_freelist_get(drm_device_t * dev) | 50 | static struct drm_buf *i830_freelist_get(struct drm_device * dev) |
51 | { | 51 | { |
52 | drm_device_dma_t *dma = dev->dma; | 52 | struct drm_device_dma *dma = dev->dma; |
53 | int i; | 53 | int i; |
54 | int used; | 54 | int used; |
55 | 55 | ||
56 | /* Linear search might not be the best solution */ | 56 | /* Linear search might not be the best solution */ |
57 | 57 | ||
58 | for (i = 0; i < dma->buf_count; i++) { | 58 | for (i = 0; i < dma->buf_count; i++) { |
59 | drm_buf_t *buf = dma->buflist[i]; | 59 | struct drm_buf *buf = dma->buflist[i]; |
60 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 60 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
61 | /* In use is already a pointer */ | 61 | /* In use is already a pointer */ |
62 | used = cmpxchg(buf_priv->in_use, I830_BUF_FREE, | 62 | used = cmpxchg(buf_priv->in_use, I830_BUF_FREE, |
@@ -72,7 +72,7 @@ static drm_buf_t *i830_freelist_get(drm_device_t * dev) | |||
72 | * yet, the hardware updates in use for us once its on the ring buffer. | 72 | * yet, the hardware updates in use for us once its on the ring buffer. |
73 | */ | 73 | */ |
74 | 74 | ||
75 | static int i830_freelist_put(drm_device_t * dev, drm_buf_t * buf) | 75 | static int i830_freelist_put(struct drm_device * dev, struct drm_buf * buf) |
76 | { | 76 | { |
77 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 77 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
78 | int used; | 78 | int used; |
@@ -89,10 +89,10 @@ static int i830_freelist_put(drm_device_t * dev, drm_buf_t * buf) | |||
89 | 89 | ||
90 | static int i830_mmap_buffers(struct file *filp, struct vm_area_struct *vma) | 90 | static int i830_mmap_buffers(struct file *filp, struct vm_area_struct *vma) |
91 | { | 91 | { |
92 | drm_file_t *priv = filp->private_data; | 92 | struct drm_file *priv = filp->private_data; |
93 | drm_device_t *dev; | 93 | struct drm_device *dev; |
94 | drm_i830_private_t *dev_priv; | 94 | drm_i830_private_t *dev_priv; |
95 | drm_buf_t *buf; | 95 | struct drm_buf *buf; |
96 | drm_i830_buf_priv_t *buf_priv; | 96 | drm_i830_buf_priv_t *buf_priv; |
97 | 97 | ||
98 | lock_kernel(); | 98 | lock_kernel(); |
@@ -122,10 +122,10 @@ static const struct file_operations i830_buffer_fops = { | |||
122 | .fasync = drm_fasync, | 122 | .fasync = drm_fasync, |
123 | }; | 123 | }; |
124 | 124 | ||
125 | static int i830_map_buffer(drm_buf_t * buf, struct file *filp) | 125 | static int i830_map_buffer(struct drm_buf * buf, struct file *filp) |
126 | { | 126 | { |
127 | drm_file_t *priv = filp->private_data; | 127 | struct drm_file *priv = filp->private_data; |
128 | drm_device_t *dev = priv->head->dev; | 128 | struct drm_device *dev = priv->head->dev; |
129 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 129 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
130 | drm_i830_private_t *dev_priv = dev->dev_private; | 130 | drm_i830_private_t *dev_priv = dev->dev_private; |
131 | const struct file_operations *old_fops; | 131 | const struct file_operations *old_fops; |
@@ -156,7 +156,7 @@ static int i830_map_buffer(drm_buf_t * buf, struct file *filp) | |||
156 | return retcode; | 156 | return retcode; |
157 | } | 157 | } |
158 | 158 | ||
159 | static int i830_unmap_buffer(drm_buf_t * buf) | 159 | static int i830_unmap_buffer(struct drm_buf * buf) |
160 | { | 160 | { |
161 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 161 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
162 | int retcode = 0; | 162 | int retcode = 0; |
@@ -176,10 +176,10 @@ static int i830_unmap_buffer(drm_buf_t * buf) | |||
176 | return retcode; | 176 | return retcode; |
177 | } | 177 | } |
178 | 178 | ||
179 | static int i830_dma_get_buffer(drm_device_t * dev, drm_i830_dma_t * d, | 179 | static int i830_dma_get_buffer(struct drm_device * dev, drm_i830_dma_t * d, |
180 | struct file *filp) | 180 | struct file *filp) |
181 | { | 181 | { |
182 | drm_buf_t *buf; | 182 | struct drm_buf *buf; |
183 | drm_i830_buf_priv_t *buf_priv; | 183 | drm_i830_buf_priv_t *buf_priv; |
184 | int retcode = 0; | 184 | int retcode = 0; |
185 | 185 | ||
@@ -206,9 +206,9 @@ static int i830_dma_get_buffer(drm_device_t * dev, drm_i830_dma_t * d, | |||
206 | return retcode; | 206 | return retcode; |
207 | } | 207 | } |
208 | 208 | ||
209 | static int i830_dma_cleanup(drm_device_t * dev) | 209 | static int i830_dma_cleanup(struct drm_device * dev) |
210 | { | 210 | { |
211 | drm_device_dma_t *dma = dev->dma; | 211 | struct drm_device_dma *dma = dev->dma; |
212 | 212 | ||
213 | /* Make sure interrupts are disabled here because the uninstall ioctl | 213 | /* Make sure interrupts are disabled here because the uninstall ioctl |
214 | * may not have been called from userspace and after dev_private | 214 | * may not have been called from userspace and after dev_private |
@@ -238,7 +238,7 @@ static int i830_dma_cleanup(drm_device_t * dev) | |||
238 | dev->dev_private = NULL; | 238 | dev->dev_private = NULL; |
239 | 239 | ||
240 | for (i = 0; i < dma->buf_count; i++) { | 240 | for (i = 0; i < dma->buf_count; i++) { |
241 | drm_buf_t *buf = dma->buflist[i]; | 241 | struct drm_buf *buf = dma->buflist[i]; |
242 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 242 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
243 | if (buf_priv->kernel_virtual && buf->total) | 243 | if (buf_priv->kernel_virtual && buf->total) |
244 | drm_core_ioremapfree(&buf_priv->map, dev); | 244 | drm_core_ioremapfree(&buf_priv->map, dev); |
@@ -247,7 +247,7 @@ static int i830_dma_cleanup(drm_device_t * dev) | |||
247 | return 0; | 247 | return 0; |
248 | } | 248 | } |
249 | 249 | ||
250 | int i830_wait_ring(drm_device_t * dev, int n, const char *caller) | 250 | int i830_wait_ring(struct drm_device * dev, int n, const char *caller) |
251 | { | 251 | { |
252 | drm_i830_private_t *dev_priv = dev->dev_private; | 252 | drm_i830_private_t *dev_priv = dev->dev_private; |
253 | drm_i830_ring_buffer_t *ring = &(dev_priv->ring); | 253 | drm_i830_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -281,7 +281,7 @@ int i830_wait_ring(drm_device_t * dev, int n, const char *caller) | |||
281 | return iters; | 281 | return iters; |
282 | } | 282 | } |
283 | 283 | ||
284 | static void i830_kernel_lost_context(drm_device_t * dev) | 284 | static void i830_kernel_lost_context(struct drm_device * dev) |
285 | { | 285 | { |
286 | drm_i830_private_t *dev_priv = dev->dev_private; | 286 | drm_i830_private_t *dev_priv = dev->dev_private; |
287 | drm_i830_ring_buffer_t *ring = &(dev_priv->ring); | 287 | drm_i830_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -296,9 +296,9 @@ static void i830_kernel_lost_context(drm_device_t * dev) | |||
296 | dev_priv->sarea_priv->perf_boxes |= I830_BOX_RING_EMPTY; | 296 | dev_priv->sarea_priv->perf_boxes |= I830_BOX_RING_EMPTY; |
297 | } | 297 | } |
298 | 298 | ||
299 | static int i830_freelist_init(drm_device_t * dev, drm_i830_private_t * dev_priv) | 299 | static int i830_freelist_init(struct drm_device * dev, drm_i830_private_t * dev_priv) |
300 | { | 300 | { |
301 | drm_device_dma_t *dma = dev->dma; | 301 | struct drm_device_dma *dma = dev->dma; |
302 | int my_idx = 36; | 302 | int my_idx = 36; |
303 | u32 *hw_status = (u32 *) (dev_priv->hw_status_page + my_idx); | 303 | u32 *hw_status = (u32 *) (dev_priv->hw_status_page + my_idx); |
304 | int i; | 304 | int i; |
@@ -309,7 +309,7 @@ static int i830_freelist_init(drm_device_t * dev, drm_i830_private_t * dev_priv) | |||
309 | } | 309 | } |
310 | 310 | ||
311 | for (i = 0; i < dma->buf_count; i++) { | 311 | for (i = 0; i < dma->buf_count; i++) { |
312 | drm_buf_t *buf = dma->buflist[i]; | 312 | struct drm_buf *buf = dma->buflist[i]; |
313 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 313 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
314 | 314 | ||
315 | buf_priv->in_use = hw_status++; | 315 | buf_priv->in_use = hw_status++; |
@@ -330,16 +330,15 @@ static int i830_freelist_init(drm_device_t * dev, drm_i830_private_t * dev_priv) | |||
330 | return 0; | 330 | return 0; |
331 | } | 331 | } |
332 | 332 | ||
333 | static int i830_dma_initialize(drm_device_t * dev, | 333 | static int i830_dma_initialize(struct drm_device * dev, |
334 | drm_i830_private_t * dev_priv, | 334 | drm_i830_private_t * dev_priv, |
335 | drm_i830_init_t * init) | 335 | drm_i830_init_t * init) |
336 | { | 336 | { |
337 | struct list_head *list; | 337 | struct drm_map_list *r_list; |
338 | 338 | ||
339 | memset(dev_priv, 0, sizeof(drm_i830_private_t)); | 339 | memset(dev_priv, 0, sizeof(drm_i830_private_t)); |
340 | 340 | ||
341 | list_for_each(list, &dev->maplist->head) { | 341 | list_for_each_entry(r_list, &dev->maplist, head) { |
342 | drm_map_list_t *r_list = list_entry(list, drm_map_list_t, head); | ||
343 | if (r_list->map && | 342 | if (r_list->map && |
344 | r_list->map->type == _DRM_SHM && | 343 | r_list->map->type == _DRM_SHM && |
345 | r_list->map->flags & _DRM_CONTAINS_LOCK) { | 344 | r_list->map->flags & _DRM_CONTAINS_LOCK) { |
@@ -455,8 +454,8 @@ static int i830_dma_initialize(drm_device_t * dev, | |||
455 | static int i830_dma_init(struct inode *inode, struct file *filp, | 454 | static int i830_dma_init(struct inode *inode, struct file *filp, |
456 | unsigned int cmd, unsigned long arg) | 455 | unsigned int cmd, unsigned long arg) |
457 | { | 456 | { |
458 | drm_file_t *priv = filp->private_data; | 457 | struct drm_file *priv = filp->private_data; |
459 | drm_device_t *dev = priv->head->dev; | 458 | struct drm_device *dev = priv->head->dev; |
460 | drm_i830_private_t *dev_priv; | 459 | drm_i830_private_t *dev_priv; |
461 | drm_i830_init_t init; | 460 | drm_i830_init_t init; |
462 | int retcode = 0; | 461 | int retcode = 0; |
@@ -490,7 +489,7 @@ static int i830_dma_init(struct inode *inode, struct file *filp, | |||
490 | /* Most efficient way to verify state for the i830 is as it is | 489 | /* Most efficient way to verify state for the i830 is as it is |
491 | * emitted. Non-conformant state is silently dropped. | 490 | * emitted. Non-conformant state is silently dropped. |
492 | */ | 491 | */ |
493 | static void i830EmitContextVerified(drm_device_t * dev, unsigned int *code) | 492 | static void i830EmitContextVerified(struct drm_device * dev, unsigned int *code) |
494 | { | 493 | { |
495 | drm_i830_private_t *dev_priv = dev->dev_private; | 494 | drm_i830_private_t *dev_priv = dev->dev_private; |
496 | int i, j = 0; | 495 | int i, j = 0; |
@@ -535,7 +534,7 @@ static void i830EmitContextVerified(drm_device_t * dev, unsigned int *code) | |||
535 | ADVANCE_LP_RING(); | 534 | ADVANCE_LP_RING(); |
536 | } | 535 | } |
537 | 536 | ||
538 | static void i830EmitTexVerified(drm_device_t * dev, unsigned int *code) | 537 | static void i830EmitTexVerified(struct drm_device * dev, unsigned int *code) |
539 | { | 538 | { |
540 | drm_i830_private_t *dev_priv = dev->dev_private; | 539 | drm_i830_private_t *dev_priv = dev->dev_private; |
541 | int i, j = 0; | 540 | int i, j = 0; |
@@ -569,7 +568,7 @@ static void i830EmitTexVerified(drm_device_t * dev, unsigned int *code) | |||
569 | printk("rejected packet %x\n", code[0]); | 568 | printk("rejected packet %x\n", code[0]); |
570 | } | 569 | } |
571 | 570 | ||
572 | static void i830EmitTexBlendVerified(drm_device_t * dev, | 571 | static void i830EmitTexBlendVerified(struct drm_device * dev, |
573 | unsigned int *code, unsigned int num) | 572 | unsigned int *code, unsigned int num) |
574 | { | 573 | { |
575 | drm_i830_private_t *dev_priv = dev->dev_private; | 574 | drm_i830_private_t *dev_priv = dev->dev_private; |
@@ -594,7 +593,7 @@ static void i830EmitTexBlendVerified(drm_device_t * dev, | |||
594 | ADVANCE_LP_RING(); | 593 | ADVANCE_LP_RING(); |
595 | } | 594 | } |
596 | 595 | ||
597 | static void i830EmitTexPalette(drm_device_t * dev, | 596 | static void i830EmitTexPalette(struct drm_device * dev, |
598 | unsigned int *palette, int number, int is_shared) | 597 | unsigned int *palette, int number, int is_shared) |
599 | { | 598 | { |
600 | drm_i830_private_t *dev_priv = dev->dev_private; | 599 | drm_i830_private_t *dev_priv = dev->dev_private; |
@@ -621,7 +620,7 @@ static void i830EmitTexPalette(drm_device_t * dev, | |||
621 | 620 | ||
622 | /* Need to do some additional checking when setting the dest buffer. | 621 | /* Need to do some additional checking when setting the dest buffer. |
623 | */ | 622 | */ |
624 | static void i830EmitDestVerified(drm_device_t * dev, unsigned int *code) | 623 | static void i830EmitDestVerified(struct drm_device * dev, unsigned int *code) |
625 | { | 624 | { |
626 | drm_i830_private_t *dev_priv = dev->dev_private; | 625 | drm_i830_private_t *dev_priv = dev->dev_private; |
627 | unsigned int tmp; | 626 | unsigned int tmp; |
@@ -682,7 +681,7 @@ static void i830EmitDestVerified(drm_device_t * dev, unsigned int *code) | |||
682 | ADVANCE_LP_RING(); | 681 | ADVANCE_LP_RING(); |
683 | } | 682 | } |
684 | 683 | ||
685 | static void i830EmitStippleVerified(drm_device_t * dev, unsigned int *code) | 684 | static void i830EmitStippleVerified(struct drm_device * dev, unsigned int *code) |
686 | { | 685 | { |
687 | drm_i830_private_t *dev_priv = dev->dev_private; | 686 | drm_i830_private_t *dev_priv = dev->dev_private; |
688 | RING_LOCALS; | 687 | RING_LOCALS; |
@@ -693,7 +692,7 @@ static void i830EmitStippleVerified(drm_device_t * dev, unsigned int *code) | |||
693 | ADVANCE_LP_RING(); | 692 | ADVANCE_LP_RING(); |
694 | } | 693 | } |
695 | 694 | ||
696 | static void i830EmitState(drm_device_t * dev) | 695 | static void i830EmitState(struct drm_device * dev) |
697 | { | 696 | { |
698 | drm_i830_private_t *dev_priv = dev->dev_private; | 697 | drm_i830_private_t *dev_priv = dev->dev_private; |
699 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; | 698 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; |
@@ -796,7 +795,7 @@ static void i830EmitState(drm_device_t * dev) | |||
796 | * Performance monitoring functions | 795 | * Performance monitoring functions |
797 | */ | 796 | */ |
798 | 797 | ||
799 | static void i830_fill_box(drm_device_t * dev, | 798 | static void i830_fill_box(struct drm_device * dev, |
800 | int x, int y, int w, int h, int r, int g, int b) | 799 | int x, int y, int w, int h, int r, int g, int b) |
801 | { | 800 | { |
802 | drm_i830_private_t *dev_priv = dev->dev_private; | 801 | drm_i830_private_t *dev_priv = dev->dev_private; |
@@ -834,7 +833,7 @@ static void i830_fill_box(drm_device_t * dev, | |||
834 | ADVANCE_LP_RING(); | 833 | ADVANCE_LP_RING(); |
835 | } | 834 | } |
836 | 835 | ||
837 | static void i830_cp_performance_boxes(drm_device_t * dev) | 836 | static void i830_cp_performance_boxes(struct drm_device * dev) |
838 | { | 837 | { |
839 | drm_i830_private_t *dev_priv = dev->dev_private; | 838 | drm_i830_private_t *dev_priv = dev->dev_private; |
840 | 839 | ||
@@ -879,7 +878,7 @@ static void i830_cp_performance_boxes(drm_device_t * dev) | |||
879 | dev_priv->sarea_priv->perf_boxes = 0; | 878 | dev_priv->sarea_priv->perf_boxes = 0; |
880 | } | 879 | } |
881 | 880 | ||
882 | static void i830_dma_dispatch_clear(drm_device_t * dev, int flags, | 881 | static void i830_dma_dispatch_clear(struct drm_device * dev, int flags, |
883 | unsigned int clear_color, | 882 | unsigned int clear_color, |
884 | unsigned int clear_zval, | 883 | unsigned int clear_zval, |
885 | unsigned int clear_depthmask) | 884 | unsigned int clear_depthmask) |
@@ -887,7 +886,7 @@ static void i830_dma_dispatch_clear(drm_device_t * dev, int flags, | |||
887 | drm_i830_private_t *dev_priv = dev->dev_private; | 886 | drm_i830_private_t *dev_priv = dev->dev_private; |
888 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; | 887 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; |
889 | int nbox = sarea_priv->nbox; | 888 | int nbox = sarea_priv->nbox; |
890 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 889 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
891 | int pitch = dev_priv->pitch; | 890 | int pitch = dev_priv->pitch; |
892 | int cpp = dev_priv->cpp; | 891 | int cpp = dev_priv->cpp; |
893 | int i; | 892 | int i; |
@@ -974,12 +973,12 @@ static void i830_dma_dispatch_clear(drm_device_t * dev, int flags, | |||
974 | } | 973 | } |
975 | } | 974 | } |
976 | 975 | ||
977 | static void i830_dma_dispatch_swap(drm_device_t * dev) | 976 | static void i830_dma_dispatch_swap(struct drm_device * dev) |
978 | { | 977 | { |
979 | drm_i830_private_t *dev_priv = dev->dev_private; | 978 | drm_i830_private_t *dev_priv = dev->dev_private; |
980 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; | 979 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; |
981 | int nbox = sarea_priv->nbox; | 980 | int nbox = sarea_priv->nbox; |
982 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 981 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
983 | int pitch = dev_priv->pitch; | 982 | int pitch = dev_priv->pitch; |
984 | int cpp = dev_priv->cpp; | 983 | int cpp = dev_priv->cpp; |
985 | int i; | 984 | int i; |
@@ -1044,7 +1043,7 @@ static void i830_dma_dispatch_swap(drm_device_t * dev) | |||
1044 | } | 1043 | } |
1045 | } | 1044 | } |
1046 | 1045 | ||
1047 | static void i830_dma_dispatch_flip(drm_device_t * dev) | 1046 | static void i830_dma_dispatch_flip(struct drm_device * dev) |
1048 | { | 1047 | { |
1049 | drm_i830_private_t *dev_priv = dev->dev_private; | 1048 | drm_i830_private_t *dev_priv = dev->dev_private; |
1050 | RING_LOCALS; | 1049 | RING_LOCALS; |
@@ -1087,13 +1086,13 @@ static void i830_dma_dispatch_flip(drm_device_t * dev) | |||
1087 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; | 1086 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; |
1088 | } | 1087 | } |
1089 | 1088 | ||
1090 | static void i830_dma_dispatch_vertex(drm_device_t * dev, | 1089 | static void i830_dma_dispatch_vertex(struct drm_device * dev, |
1091 | drm_buf_t * buf, int discard, int used) | 1090 | struct drm_buf * buf, int discard, int used) |
1092 | { | 1091 | { |
1093 | drm_i830_private_t *dev_priv = dev->dev_private; | 1092 | drm_i830_private_t *dev_priv = dev->dev_private; |
1094 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 1093 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
1095 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; | 1094 | drm_i830_sarea_t *sarea_priv = dev_priv->sarea_priv; |
1096 | drm_clip_rect_t *box = sarea_priv->boxes; | 1095 | struct drm_clip_rect *box = sarea_priv->boxes; |
1097 | int nbox = sarea_priv->nbox; | 1096 | int nbox = sarea_priv->nbox; |
1098 | unsigned long address = (unsigned long)buf->bus_address; | 1097 | unsigned long address = (unsigned long)buf->bus_address; |
1099 | unsigned long start = address - dev->agp->base; | 1098 | unsigned long start = address - dev->agp->base; |
@@ -1199,7 +1198,7 @@ static void i830_dma_dispatch_vertex(drm_device_t * dev, | |||
1199 | } | 1198 | } |
1200 | } | 1199 | } |
1201 | 1200 | ||
1202 | static void i830_dma_quiescent(drm_device_t * dev) | 1201 | static void i830_dma_quiescent(struct drm_device * dev) |
1203 | { | 1202 | { |
1204 | drm_i830_private_t *dev_priv = dev->dev_private; | 1203 | drm_i830_private_t *dev_priv = dev->dev_private; |
1205 | RING_LOCALS; | 1204 | RING_LOCALS; |
@@ -1216,10 +1215,10 @@ static void i830_dma_quiescent(drm_device_t * dev) | |||
1216 | i830_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); | 1215 | i830_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); |
1217 | } | 1216 | } |
1218 | 1217 | ||
1219 | static int i830_flush_queue(drm_device_t * dev) | 1218 | static int i830_flush_queue(struct drm_device * dev) |
1220 | { | 1219 | { |
1221 | drm_i830_private_t *dev_priv = dev->dev_private; | 1220 | drm_i830_private_t *dev_priv = dev->dev_private; |
1222 | drm_device_dma_t *dma = dev->dma; | 1221 | struct drm_device_dma *dma = dev->dma; |
1223 | int i, ret = 0; | 1222 | int i, ret = 0; |
1224 | RING_LOCALS; | 1223 | RING_LOCALS; |
1225 | 1224 | ||
@@ -1233,7 +1232,7 @@ static int i830_flush_queue(drm_device_t * dev) | |||
1233 | i830_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); | 1232 | i830_wait_ring(dev, dev_priv->ring.Size - 8, __FUNCTION__); |
1234 | 1233 | ||
1235 | for (i = 0; i < dma->buf_count; i++) { | 1234 | for (i = 0; i < dma->buf_count; i++) { |
1236 | drm_buf_t *buf = dma->buflist[i]; | 1235 | struct drm_buf *buf = dma->buflist[i]; |
1237 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 1236 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
1238 | 1237 | ||
1239 | int used = cmpxchg(buf_priv->in_use, I830_BUF_HARDWARE, | 1238 | int used = cmpxchg(buf_priv->in_use, I830_BUF_HARDWARE, |
@@ -1249,9 +1248,9 @@ static int i830_flush_queue(drm_device_t * dev) | |||
1249 | } | 1248 | } |
1250 | 1249 | ||
1251 | /* Must be called with the lock held */ | 1250 | /* Must be called with the lock held */ |
1252 | static void i830_reclaim_buffers(drm_device_t * dev, struct file *filp) | 1251 | static void i830_reclaim_buffers(struct drm_device * dev, struct file *filp) |
1253 | { | 1252 | { |
1254 | drm_device_dma_t *dma = dev->dma; | 1253 | struct drm_device_dma *dma = dev->dma; |
1255 | int i; | 1254 | int i; |
1256 | 1255 | ||
1257 | if (!dma) | 1256 | if (!dma) |
@@ -1264,7 +1263,7 @@ static void i830_reclaim_buffers(drm_device_t * dev, struct file *filp) | |||
1264 | i830_flush_queue(dev); | 1263 | i830_flush_queue(dev); |
1265 | 1264 | ||
1266 | for (i = 0; i < dma->buf_count; i++) { | 1265 | for (i = 0; i < dma->buf_count; i++) { |
1267 | drm_buf_t *buf = dma->buflist[i]; | 1266 | struct drm_buf *buf = dma->buflist[i]; |
1268 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; | 1267 | drm_i830_buf_priv_t *buf_priv = buf->dev_private; |
1269 | 1268 | ||
1270 | if (buf->filp == filp && buf_priv) { | 1269 | if (buf->filp == filp && buf_priv) { |
@@ -1282,8 +1281,8 @@ static void i830_reclaim_buffers(drm_device_t * dev, struct file *filp) | |||
1282 | static int i830_flush_ioctl(struct inode *inode, struct file *filp, | 1281 | static int i830_flush_ioctl(struct inode *inode, struct file *filp, |
1283 | unsigned int cmd, unsigned long arg) | 1282 | unsigned int cmd, unsigned long arg) |
1284 | { | 1283 | { |
1285 | drm_file_t *priv = filp->private_data; | 1284 | struct drm_file *priv = filp->private_data; |
1286 | drm_device_t *dev = priv->head->dev; | 1285 | struct drm_device *dev = priv->head->dev; |
1287 | 1286 | ||
1288 | LOCK_TEST_WITH_RETURN(dev, filp); | 1287 | LOCK_TEST_WITH_RETURN(dev, filp); |
1289 | 1288 | ||
@@ -1294,9 +1293,9 @@ static int i830_flush_ioctl(struct inode *inode, struct file *filp, | |||
1294 | static int i830_dma_vertex(struct inode *inode, struct file *filp, | 1293 | static int i830_dma_vertex(struct inode *inode, struct file *filp, |
1295 | unsigned int cmd, unsigned long arg) | 1294 | unsigned int cmd, unsigned long arg) |
1296 | { | 1295 | { |
1297 | drm_file_t *priv = filp->private_data; | 1296 | struct drm_file *priv = filp->private_data; |
1298 | drm_device_t *dev = priv->head->dev; | 1297 | struct drm_device *dev = priv->head->dev; |
1299 | drm_device_dma_t *dma = dev->dma; | 1298 | struct drm_device_dma *dma = dev->dma; |
1300 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 1299 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
1301 | u32 *hw_status = dev_priv->hw_status_page; | 1300 | u32 *hw_status = dev_priv->hw_status_page; |
1302 | drm_i830_sarea_t *sarea_priv = (drm_i830_sarea_t *) | 1301 | drm_i830_sarea_t *sarea_priv = (drm_i830_sarea_t *) |
@@ -1328,8 +1327,8 @@ static int i830_dma_vertex(struct inode *inode, struct file *filp, | |||
1328 | static int i830_clear_bufs(struct inode *inode, struct file *filp, | 1327 | static int i830_clear_bufs(struct inode *inode, struct file *filp, |
1329 | unsigned int cmd, unsigned long arg) | 1328 | unsigned int cmd, unsigned long arg) |
1330 | { | 1329 | { |
1331 | drm_file_t *priv = filp->private_data; | 1330 | struct drm_file *priv = filp->private_data; |
1332 | drm_device_t *dev = priv->head->dev; | 1331 | struct drm_device *dev = priv->head->dev; |
1333 | drm_i830_clear_t clear; | 1332 | drm_i830_clear_t clear; |
1334 | 1333 | ||
1335 | if (copy_from_user | 1334 | if (copy_from_user |
@@ -1352,8 +1351,8 @@ static int i830_clear_bufs(struct inode *inode, struct file *filp, | |||
1352 | static int i830_swap_bufs(struct inode *inode, struct file *filp, | 1351 | static int i830_swap_bufs(struct inode *inode, struct file *filp, |
1353 | unsigned int cmd, unsigned long arg) | 1352 | unsigned int cmd, unsigned long arg) |
1354 | { | 1353 | { |
1355 | drm_file_t *priv = filp->private_data; | 1354 | struct drm_file *priv = filp->private_data; |
1356 | drm_device_t *dev = priv->head->dev; | 1355 | struct drm_device *dev = priv->head->dev; |
1357 | 1356 | ||
1358 | DRM_DEBUG("i830_swap_bufs\n"); | 1357 | DRM_DEBUG("i830_swap_bufs\n"); |
1359 | 1358 | ||
@@ -1365,7 +1364,7 @@ static int i830_swap_bufs(struct inode *inode, struct file *filp, | |||
1365 | 1364 | ||
1366 | /* Not sure why this isn't set all the time: | 1365 | /* Not sure why this isn't set all the time: |
1367 | */ | 1366 | */ |
1368 | static void i830_do_init_pageflip(drm_device_t * dev) | 1367 | static void i830_do_init_pageflip(struct drm_device * dev) |
1369 | { | 1368 | { |
1370 | drm_i830_private_t *dev_priv = dev->dev_private; | 1369 | drm_i830_private_t *dev_priv = dev->dev_private; |
1371 | 1370 | ||
@@ -1375,7 +1374,7 @@ static void i830_do_init_pageflip(drm_device_t * dev) | |||
1375 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; | 1374 | dev_priv->sarea_priv->pf_current_page = dev_priv->current_page; |
1376 | } | 1375 | } |
1377 | 1376 | ||
1378 | static int i830_do_cleanup_pageflip(drm_device_t * dev) | 1377 | static int i830_do_cleanup_pageflip(struct drm_device * dev) |
1379 | { | 1378 | { |
1380 | drm_i830_private_t *dev_priv = dev->dev_private; | 1379 | drm_i830_private_t *dev_priv = dev->dev_private; |
1381 | 1380 | ||
@@ -1390,8 +1389,8 @@ static int i830_do_cleanup_pageflip(drm_device_t * dev) | |||
1390 | static int i830_flip_bufs(struct inode *inode, struct file *filp, | 1389 | static int i830_flip_bufs(struct inode *inode, struct file *filp, |
1391 | unsigned int cmd, unsigned long arg) | 1390 | unsigned int cmd, unsigned long arg) |
1392 | { | 1391 | { |
1393 | drm_file_t *priv = filp->private_data; | 1392 | struct drm_file *priv = filp->private_data; |
1394 | drm_device_t *dev = priv->head->dev; | 1393 | struct drm_device *dev = priv->head->dev; |
1395 | drm_i830_private_t *dev_priv = dev->dev_private; | 1394 | drm_i830_private_t *dev_priv = dev->dev_private; |
1396 | 1395 | ||
1397 | DRM_DEBUG("%s\n", __FUNCTION__); | 1396 | DRM_DEBUG("%s\n", __FUNCTION__); |
@@ -1408,8 +1407,8 @@ static int i830_flip_bufs(struct inode *inode, struct file *filp, | |||
1408 | static int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd, | 1407 | static int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd, |
1409 | unsigned long arg) | 1408 | unsigned long arg) |
1410 | { | 1409 | { |
1411 | drm_file_t *priv = filp->private_data; | 1410 | struct drm_file *priv = filp->private_data; |
1412 | drm_device_t *dev = priv->head->dev; | 1411 | struct drm_device *dev = priv->head->dev; |
1413 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 1412 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
1414 | u32 *hw_status = dev_priv->hw_status_page; | 1413 | u32 *hw_status = dev_priv->hw_status_page; |
1415 | drm_i830_sarea_t *sarea_priv = (drm_i830_sarea_t *) | 1414 | drm_i830_sarea_t *sarea_priv = (drm_i830_sarea_t *) |
@@ -1422,8 +1421,8 @@ static int i830_getage(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1422 | static int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, | 1421 | static int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, |
1423 | unsigned long arg) | 1422 | unsigned long arg) |
1424 | { | 1423 | { |
1425 | drm_file_t *priv = filp->private_data; | 1424 | struct drm_file *priv = filp->private_data; |
1426 | drm_device_t *dev = priv->head->dev; | 1425 | struct drm_device *dev = priv->head->dev; |
1427 | int retcode = 0; | 1426 | int retcode = 0; |
1428 | drm_i830_dma_t d; | 1427 | drm_i830_dma_t d; |
1429 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 1428 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
@@ -1444,7 +1443,7 @@ static int i830_getbuf(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1444 | DRM_DEBUG("i830_dma: %d returning %d, granted = %d\n", | 1443 | DRM_DEBUG("i830_dma: %d returning %d, granted = %d\n", |
1445 | current->pid, retcode, d.granted); | 1444 | current->pid, retcode, d.granted); |
1446 | 1445 | ||
1447 | if (copy_to_user((drm_dma_t __user *) arg, &d, sizeof(d))) | 1446 | if (copy_to_user((void __user *) arg, &d, sizeof(d))) |
1448 | return -EFAULT; | 1447 | return -EFAULT; |
1449 | sarea_priv->last_dispatch = (int)hw_status[5]; | 1448 | sarea_priv->last_dispatch = (int)hw_status[5]; |
1450 | 1449 | ||
@@ -1467,8 +1466,8 @@ static int i830_docopy(struct inode *inode, struct file *filp, unsigned int cmd, | |||
1467 | static int i830_getparam(struct inode *inode, struct file *filp, | 1466 | static int i830_getparam(struct inode *inode, struct file *filp, |
1468 | unsigned int cmd, unsigned long arg) | 1467 | unsigned int cmd, unsigned long arg) |
1469 | { | 1468 | { |
1470 | drm_file_t *priv = filp->private_data; | 1469 | struct drm_file *priv = filp->private_data; |
1471 | drm_device_t *dev = priv->head->dev; | 1470 | struct drm_device *dev = priv->head->dev; |
1472 | drm_i830_private_t *dev_priv = dev->dev_private; | 1471 | drm_i830_private_t *dev_priv = dev->dev_private; |
1473 | drm_i830_getparam_t param; | 1472 | drm_i830_getparam_t param; |
1474 | int value; | 1473 | int value; |
@@ -1501,8 +1500,8 @@ static int i830_getparam(struct inode *inode, struct file *filp, | |||
1501 | static int i830_setparam(struct inode *inode, struct file *filp, | 1500 | static int i830_setparam(struct inode *inode, struct file *filp, |
1502 | unsigned int cmd, unsigned long arg) | 1501 | unsigned int cmd, unsigned long arg) |
1503 | { | 1502 | { |
1504 | drm_file_t *priv = filp->private_data; | 1503 | struct drm_file *priv = filp->private_data; |
1505 | drm_device_t *dev = priv->head->dev; | 1504 | struct drm_device *dev = priv->head->dev; |
1506 | drm_i830_private_t *dev_priv = dev->dev_private; | 1505 | drm_i830_private_t *dev_priv = dev->dev_private; |
1507 | drm_i830_setparam_t param; | 1506 | drm_i830_setparam_t param; |
1508 | 1507 | ||
@@ -1526,7 +1525,7 @@ static int i830_setparam(struct inode *inode, struct file *filp, | |||
1526 | return 0; | 1525 | return 0; |
1527 | } | 1526 | } |
1528 | 1527 | ||
1529 | int i830_driver_load(drm_device_t *dev, unsigned long flags) | 1528 | int i830_driver_load(struct drm_device *dev, unsigned long flags) |
1530 | { | 1529 | { |
1531 | /* i830 has 4 more counters */ | 1530 | /* i830 has 4 more counters */ |
1532 | dev->counters += 4; | 1531 | dev->counters += 4; |
@@ -1538,12 +1537,12 @@ int i830_driver_load(drm_device_t *dev, unsigned long flags) | |||
1538 | return 0; | 1537 | return 0; |
1539 | } | 1538 | } |
1540 | 1539 | ||
1541 | void i830_driver_lastclose(drm_device_t * dev) | 1540 | void i830_driver_lastclose(struct drm_device * dev) |
1542 | { | 1541 | { |
1543 | i830_dma_cleanup(dev); | 1542 | i830_dma_cleanup(dev); |
1544 | } | 1543 | } |
1545 | 1544 | ||
1546 | void i830_driver_preclose(drm_device_t * dev, DRMFILE filp) | 1545 | void i830_driver_preclose(struct drm_device * dev, DRMFILE filp) |
1547 | { | 1546 | { |
1548 | if (dev->dev_private) { | 1547 | if (dev->dev_private) { |
1549 | drm_i830_private_t *dev_priv = dev->dev_private; | 1548 | drm_i830_private_t *dev_priv = dev->dev_private; |
@@ -1553,12 +1552,12 @@ void i830_driver_preclose(drm_device_t * dev, DRMFILE filp) | |||
1553 | } | 1552 | } |
1554 | } | 1553 | } |
1555 | 1554 | ||
1556 | void i830_driver_reclaim_buffers_locked(drm_device_t * dev, struct file *filp) | 1555 | void i830_driver_reclaim_buffers_locked(struct drm_device * dev, struct file *filp) |
1557 | { | 1556 | { |
1558 | i830_reclaim_buffers(dev, filp); | 1557 | i830_reclaim_buffers(dev, filp); |
1559 | } | 1558 | } |
1560 | 1559 | ||
1561 | int i830_driver_dma_quiescent(drm_device_t * dev) | 1560 | int i830_driver_dma_quiescent(struct drm_device * dev) |
1562 | { | 1561 | { |
1563 | i830_dma_quiescent(dev); | 1562 | i830_dma_quiescent(dev); |
1564 | return 0; | 1563 | return 0; |
@@ -1594,7 +1593,7 @@ int i830_max_ioctl = DRM_ARRAY_SIZE(i830_ioctls); | |||
1594 | * \returns | 1593 | * \returns |
1595 | * A value of 1 is always retured to indictate every i8xx is AGP. | 1594 | * A value of 1 is always retured to indictate every i8xx is AGP. |
1596 | */ | 1595 | */ |
1597 | int i830_driver_device_is_agp(drm_device_t * dev) | 1596 | int i830_driver_device_is_agp(struct drm_device * dev) |
1598 | { | 1597 | { |
1599 | return 1; | 1598 | return 1; |
1600 | } | 1599 | } |
diff --git a/drivers/char/drm/i830_drm.h b/drivers/char/drm/i830_drm.h index 66dd75027967..968a6d9f9dcb 100644 --- a/drivers/char/drm/i830_drm.h +++ b/drivers/char/drm/i830_drm.h | |||
@@ -191,7 +191,7 @@ typedef struct _drm_i830_sarea { | |||
191 | unsigned int dirty; | 191 | unsigned int dirty; |
192 | 192 | ||
193 | unsigned int nbox; | 193 | unsigned int nbox; |
194 | drm_clip_rect_t boxes[I830_NR_SAREA_CLIPRECTS]; | 194 | struct drm_clip_rect boxes[I830_NR_SAREA_CLIPRECTS]; |
195 | 195 | ||
196 | /* Maintain an LRU of contiguous regions of texture space. If | 196 | /* Maintain an LRU of contiguous regions of texture space. If |
197 | * you think you own a region of texture memory, and it has an | 197 | * you think you own a region of texture memory, and it has an |
diff --git a/drivers/char/drm/i830_drv.h b/drivers/char/drm/i830_drv.h index e91f94afb4bb..ddda67956dea 100644 --- a/drivers/char/drm/i830_drv.h +++ b/drivers/char/drm/i830_drv.h | |||
@@ -84,8 +84,8 @@ typedef struct _drm_i830_ring_buffer { | |||
84 | } drm_i830_ring_buffer_t; | 84 | } drm_i830_ring_buffer_t; |
85 | 85 | ||
86 | typedef struct drm_i830_private { | 86 | typedef struct drm_i830_private { |
87 | drm_map_t *sarea_map; | 87 | struct drm_map *sarea_map; |
88 | drm_map_t *mmio_map; | 88 | struct drm_map *mmio_map; |
89 | 89 | ||
90 | drm_i830_sarea_t *sarea_priv; | 90 | drm_i830_sarea_t *sarea_priv; |
91 | drm_i830_ring_buffer_t ring; | 91 | drm_i830_ring_buffer_t ring; |
@@ -95,7 +95,7 @@ typedef struct drm_i830_private { | |||
95 | 95 | ||
96 | dma_addr_t dma_status_page; | 96 | dma_addr_t dma_status_page; |
97 | 97 | ||
98 | drm_buf_t *mmap_buffer; | 98 | struct drm_buf *mmap_buffer; |
99 | 99 | ||
100 | u32 front_di1, back_di1, zi1; | 100 | u32 front_di1, back_di1, zi1; |
101 | 101 | ||
@@ -132,16 +132,16 @@ extern int i830_irq_wait(struct inode *inode, struct file *filp, | |||
132 | unsigned int cmd, unsigned long arg); | 132 | unsigned int cmd, unsigned long arg); |
133 | 133 | ||
134 | extern irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS); | 134 | extern irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS); |
135 | extern void i830_driver_irq_preinstall(drm_device_t * dev); | 135 | extern void i830_driver_irq_preinstall(struct drm_device * dev); |
136 | extern void i830_driver_irq_postinstall(drm_device_t * dev); | 136 | extern void i830_driver_irq_postinstall(struct drm_device * dev); |
137 | extern void i830_driver_irq_uninstall(drm_device_t * dev); | 137 | extern void i830_driver_irq_uninstall(struct drm_device * dev); |
138 | extern int i830_driver_load(struct drm_device *, unsigned long flags); | 138 | extern int i830_driver_load(struct drm_device *, unsigned long flags); |
139 | extern void i830_driver_preclose(drm_device_t * dev, DRMFILE filp); | 139 | extern void i830_driver_preclose(struct drm_device * dev, DRMFILE filp); |
140 | extern void i830_driver_lastclose(drm_device_t * dev); | 140 | extern void i830_driver_lastclose(struct drm_device * dev); |
141 | extern void i830_driver_reclaim_buffers_locked(drm_device_t * dev, | 141 | extern void i830_driver_reclaim_buffers_locked(struct drm_device * dev, |
142 | struct file *filp); | 142 | struct file *filp); |
143 | extern int i830_driver_dma_quiescent(drm_device_t * dev); | 143 | extern int i830_driver_dma_quiescent(struct drm_device * dev); |
144 | extern int i830_driver_device_is_agp(drm_device_t * dev); | 144 | extern int i830_driver_device_is_agp(struct drm_device * dev); |
145 | 145 | ||
146 | #define I830_READ(reg) DRM_READ32(dev_priv->mmio_map, reg) | 146 | #define I830_READ(reg) DRM_READ32(dev_priv->mmio_map, reg) |
147 | #define I830_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, reg, val) | 147 | #define I830_WRITE(reg,val) DRM_WRITE32(dev_priv->mmio_map, reg, val) |
@@ -180,7 +180,7 @@ extern int i830_driver_device_is_agp(drm_device_t * dev); | |||
180 | I830_WRITE(LP_RING + RING_TAIL, outring); \ | 180 | I830_WRITE(LP_RING + RING_TAIL, outring); \ |
181 | } while(0) | 181 | } while(0) |
182 | 182 | ||
183 | extern int i830_wait_ring(drm_device_t * dev, int n, const char *caller); | 183 | extern int i830_wait_ring(struct drm_device * dev, int n, const char *caller); |
184 | 184 | ||
185 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) | 185 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) |
186 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) | 186 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) |
diff --git a/drivers/char/drm/i830_irq.c b/drivers/char/drm/i830_irq.c index 5841f7674956..a1b5c63c3c3e 100644 --- a/drivers/char/drm/i830_irq.c +++ b/drivers/char/drm/i830_irq.c | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS) | 36 | irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS) |
37 | { | 37 | { |
38 | drm_device_t *dev = (drm_device_t *) arg; | 38 | struct drm_device *dev = (struct drm_device *) arg; |
39 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 39 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
40 | u16 temp; | 40 | u16 temp; |
41 | 41 | ||
@@ -53,7 +53,7 @@ irqreturn_t i830_driver_irq_handler(DRM_IRQ_ARGS) | |||
53 | return IRQ_HANDLED; | 53 | return IRQ_HANDLED; |
54 | } | 54 | } |
55 | 55 | ||
56 | static int i830_emit_irq(drm_device_t * dev) | 56 | static int i830_emit_irq(struct drm_device * dev) |
57 | { | 57 | { |
58 | drm_i830_private_t *dev_priv = dev->dev_private; | 58 | drm_i830_private_t *dev_priv = dev->dev_private; |
59 | RING_LOCALS; | 59 | RING_LOCALS; |
@@ -70,7 +70,7 @@ static int i830_emit_irq(drm_device_t * dev) | |||
70 | return atomic_read(&dev_priv->irq_emitted); | 70 | return atomic_read(&dev_priv->irq_emitted); |
71 | } | 71 | } |
72 | 72 | ||
73 | static int i830_wait_irq(drm_device_t * dev, int irq_nr) | 73 | static int i830_wait_irq(struct drm_device * dev, int irq_nr) |
74 | { | 74 | { |
75 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 75 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
76 | DECLARE_WAITQUEUE(entry, current); | 76 | DECLARE_WAITQUEUE(entry, current); |
@@ -117,8 +117,8 @@ static int i830_wait_irq(drm_device_t * dev, int irq_nr) | |||
117 | int i830_irq_emit(struct inode *inode, struct file *filp, unsigned int cmd, | 117 | int i830_irq_emit(struct inode *inode, struct file *filp, unsigned int cmd, |
118 | unsigned long arg) | 118 | unsigned long arg) |
119 | { | 119 | { |
120 | drm_file_t *priv = filp->private_data; | 120 | struct drm_file *priv = filp->private_data; |
121 | drm_device_t *dev = priv->head->dev; | 121 | struct drm_device *dev = priv->head->dev; |
122 | drm_i830_private_t *dev_priv = dev->dev_private; | 122 | drm_i830_private_t *dev_priv = dev->dev_private; |
123 | drm_i830_irq_emit_t emit; | 123 | drm_i830_irq_emit_t emit; |
124 | int result; | 124 | int result; |
@@ -149,8 +149,8 @@ int i830_irq_emit(struct inode *inode, struct file *filp, unsigned int cmd, | |||
149 | int i830_irq_wait(struct inode *inode, struct file *filp, unsigned int cmd, | 149 | int i830_irq_wait(struct inode *inode, struct file *filp, unsigned int cmd, |
150 | unsigned long arg) | 150 | unsigned long arg) |
151 | { | 151 | { |
152 | drm_file_t *priv = filp->private_data; | 152 | struct drm_file *priv = filp->private_data; |
153 | drm_device_t *dev = priv->head->dev; | 153 | struct drm_device *dev = priv->head->dev; |
154 | drm_i830_private_t *dev_priv = dev->dev_private; | 154 | drm_i830_private_t *dev_priv = dev->dev_private; |
155 | drm_i830_irq_wait_t irqwait; | 155 | drm_i830_irq_wait_t irqwait; |
156 | 156 | ||
@@ -168,7 +168,7 @@ int i830_irq_wait(struct inode *inode, struct file *filp, unsigned int cmd, | |||
168 | 168 | ||
169 | /* drm_dma.h hooks | 169 | /* drm_dma.h hooks |
170 | */ | 170 | */ |
171 | void i830_driver_irq_preinstall(drm_device_t * dev) | 171 | void i830_driver_irq_preinstall(struct drm_device * dev) |
172 | { | 172 | { |
173 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 173 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
174 | 174 | ||
@@ -180,14 +180,14 @@ void i830_driver_irq_preinstall(drm_device_t * dev) | |||
180 | init_waitqueue_head(&dev_priv->irq_queue); | 180 | init_waitqueue_head(&dev_priv->irq_queue); |
181 | } | 181 | } |
182 | 182 | ||
183 | void i830_driver_irq_postinstall(drm_device_t * dev) | 183 | void i830_driver_irq_postinstall(struct drm_device * dev) |
184 | { | 184 | { |
185 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 185 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
186 | 186 | ||
187 | I830_WRITE16(I830REG_INT_ENABLE_R, 0x2); | 187 | I830_WRITE16(I830REG_INT_ENABLE_R, 0x2); |
188 | } | 188 | } |
189 | 189 | ||
190 | void i830_driver_irq_uninstall(drm_device_t * dev) | 190 | void i830_driver_irq_uninstall(struct drm_device * dev) |
191 | { | 191 | { |
192 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; | 192 | drm_i830_private_t *dev_priv = (drm_i830_private_t *) dev->dev_private; |
193 | if (!dev_priv) | 193 | if (!dev_priv) |
diff --git a/drivers/char/drm/i915_dma.c b/drivers/char/drm/i915_dma.c index ea52740af4f6..3359cc2b9736 100644 --- a/drivers/char/drm/i915_dma.c +++ b/drivers/char/drm/i915_dma.c | |||
@@ -47,7 +47,7 @@ | |||
47 | * the head pointer changes, so that EBUSY only happens if the ring | 47 | * the head pointer changes, so that EBUSY only happens if the ring |
48 | * actually stalls for (eg) 3 seconds. | 48 | * actually stalls for (eg) 3 seconds. |
49 | */ | 49 | */ |
50 | int i915_wait_ring(drm_device_t * dev, int n, const char *caller) | 50 | int i915_wait_ring(struct drm_device * dev, int n, const char *caller) |
51 | { | 51 | { |
52 | drm_i915_private_t *dev_priv = dev->dev_private; | 52 | drm_i915_private_t *dev_priv = dev->dev_private; |
53 | drm_i915_ring_buffer_t *ring = &(dev_priv->ring); | 53 | drm_i915_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -73,7 +73,7 @@ int i915_wait_ring(drm_device_t * dev, int n, const char *caller) | |||
73 | return DRM_ERR(EBUSY); | 73 | return DRM_ERR(EBUSY); |
74 | } | 74 | } |
75 | 75 | ||
76 | void i915_kernel_lost_context(drm_device_t * dev) | 76 | void i915_kernel_lost_context(struct drm_device * dev) |
77 | { | 77 | { |
78 | drm_i915_private_t *dev_priv = dev->dev_private; | 78 | drm_i915_private_t *dev_priv = dev->dev_private; |
79 | drm_i915_ring_buffer_t *ring = &(dev_priv->ring); | 79 | drm_i915_ring_buffer_t *ring = &(dev_priv->ring); |
@@ -88,7 +88,7 @@ void i915_kernel_lost_context(drm_device_t * dev) | |||
88 | dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY; | 88 | dev_priv->sarea_priv->perf_boxes |= I915_BOX_RING_EMPTY; |
89 | } | 89 | } |
90 | 90 | ||
91 | static int i915_dma_cleanup(drm_device_t * dev) | 91 | static int i915_dma_cleanup(struct drm_device * dev) |
92 | { | 92 | { |
93 | /* Make sure interrupts are disabled here because the uninstall ioctl | 93 | /* Make sure interrupts are disabled here because the uninstall ioctl |
94 | * may not have been called from userspace and after dev_private | 94 | * may not have been called from userspace and after dev_private |
@@ -126,13 +126,13 @@ static int i915_dma_cleanup(drm_device_t * dev) | |||
126 | return 0; | 126 | return 0; |
127 | } | 127 | } |
128 | 128 | ||
129 | static int i915_initialize(drm_device_t * dev, | 129 | static int i915_initialize(struct drm_device * dev, |
130 | drm_i915_private_t * dev_priv, | 130 | drm_i915_private_t * dev_priv, |
131 | drm_i915_init_t * init) | 131 | drm_i915_init_t * init) |
132 | { | 132 | { |
133 | memset(dev_priv, 0, sizeof(drm_i915_private_t)); | 133 | memset(dev_priv, 0, sizeof(drm_i915_private_t)); |
134 | 134 | ||
135 | DRM_GETSAREA(); | 135 | dev_priv->sarea = drm_getsarea(dev); |
136 | if (!dev_priv->sarea) { | 136 | if (!dev_priv->sarea) { |
137 | DRM_ERROR("can not find sarea!\n"); | 137 | DRM_ERROR("can not find sarea!\n"); |
138 | dev->dev_private = (void *)dev_priv; | 138 | dev->dev_private = (void *)dev_priv; |
@@ -211,7 +211,7 @@ static int i915_initialize(drm_device_t * dev, | |||
211 | return 0; | 211 | return 0; |
212 | } | 212 | } |
213 | 213 | ||
214 | static int i915_dma_resume(drm_device_t * dev) | 214 | static int i915_dma_resume(struct drm_device * dev) |
215 | { | 215 | { |
216 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 216 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
217 | 217 | ||
@@ -357,7 +357,7 @@ static int validate_cmd(int cmd) | |||
357 | return ret; | 357 | return ret; |
358 | } | 358 | } |
359 | 359 | ||
360 | static int i915_emit_cmds(drm_device_t * dev, int __user * buffer, int dwords) | 360 | static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwords) |
361 | { | 361 | { |
362 | drm_i915_private_t *dev_priv = dev->dev_private; | 362 | drm_i915_private_t *dev_priv = dev->dev_private; |
363 | int i; | 363 | int i; |
@@ -396,12 +396,12 @@ static int i915_emit_cmds(drm_device_t * dev, int __user * buffer, int dwords) | |||
396 | return 0; | 396 | return 0; |
397 | } | 397 | } |
398 | 398 | ||
399 | static int i915_emit_box(drm_device_t * dev, | 399 | static int i915_emit_box(struct drm_device * dev, |
400 | drm_clip_rect_t __user * boxes, | 400 | struct drm_clip_rect __user * boxes, |
401 | int i, int DR1, int DR4) | 401 | int i, int DR1, int DR4) |
402 | { | 402 | { |
403 | drm_i915_private_t *dev_priv = dev->dev_private; | 403 | drm_i915_private_t *dev_priv = dev->dev_private; |
404 | drm_clip_rect_t box; | 404 | struct drm_clip_rect box; |
405 | RING_LOCALS; | 405 | RING_LOCALS; |
406 | 406 | ||
407 | if (DRM_COPY_FROM_USER_UNCHECKED(&box, &boxes[i], sizeof(box))) { | 407 | if (DRM_COPY_FROM_USER_UNCHECKED(&box, &boxes[i], sizeof(box))) { |
@@ -439,7 +439,7 @@ static int i915_emit_box(drm_device_t * dev, | |||
439 | * emit. For now, do it in both places: | 439 | * emit. For now, do it in both places: |
440 | */ | 440 | */ |
441 | 441 | ||
442 | static void i915_emit_breadcrumb(drm_device_t *dev) | 442 | static void i915_emit_breadcrumb(struct drm_device *dev) |
443 | { | 443 | { |
444 | drm_i915_private_t *dev_priv = dev->dev_private; | 444 | drm_i915_private_t *dev_priv = dev->dev_private; |
445 | RING_LOCALS; | 445 | RING_LOCALS; |
@@ -457,7 +457,7 @@ static void i915_emit_breadcrumb(drm_device_t *dev) | |||
457 | ADVANCE_LP_RING(); | 457 | ADVANCE_LP_RING(); |
458 | } | 458 | } |
459 | 459 | ||
460 | static int i915_dispatch_cmdbuffer(drm_device_t * dev, | 460 | static int i915_dispatch_cmdbuffer(struct drm_device * dev, |
461 | drm_i915_cmdbuffer_t * cmd) | 461 | drm_i915_cmdbuffer_t * cmd) |
462 | { | 462 | { |
463 | int nbox = cmd->num_cliprects; | 463 | int nbox = cmd->num_cliprects; |
@@ -489,11 +489,11 @@ static int i915_dispatch_cmdbuffer(drm_device_t * dev, | |||
489 | return 0; | 489 | return 0; |
490 | } | 490 | } |
491 | 491 | ||
492 | static int i915_dispatch_batchbuffer(drm_device_t * dev, | 492 | static int i915_dispatch_batchbuffer(struct drm_device * dev, |
493 | drm_i915_batchbuffer_t * batch) | 493 | drm_i915_batchbuffer_t * batch) |
494 | { | 494 | { |
495 | drm_i915_private_t *dev_priv = dev->dev_private; | 495 | drm_i915_private_t *dev_priv = dev->dev_private; |
496 | drm_clip_rect_t __user *boxes = batch->cliprects; | 496 | struct drm_clip_rect __user *boxes = batch->cliprects; |
497 | int nbox = batch->num_cliprects; | 497 | int nbox = batch->num_cliprects; |
498 | int i = 0, count; | 498 | int i = 0, count; |
499 | RING_LOCALS; | 499 | RING_LOCALS; |
@@ -535,7 +535,7 @@ static int i915_dispatch_batchbuffer(drm_device_t * dev, | |||
535 | return 0; | 535 | return 0; |
536 | } | 536 | } |
537 | 537 | ||
538 | static int i915_dispatch_flip(drm_device_t * dev) | 538 | static int i915_dispatch_flip(struct drm_device * dev) |
539 | { | 539 | { |
540 | drm_i915_private_t *dev_priv = dev->dev_private; | 540 | drm_i915_private_t *dev_priv = dev->dev_private; |
541 | RING_LOCALS; | 541 | RING_LOCALS; |
@@ -583,7 +583,7 @@ static int i915_dispatch_flip(drm_device_t * dev) | |||
583 | return 0; | 583 | return 0; |
584 | } | 584 | } |
585 | 585 | ||
586 | static int i915_quiescent(drm_device_t * dev) | 586 | static int i915_quiescent(struct drm_device * dev) |
587 | { | 587 | { |
588 | drm_i915_private_t *dev_priv = dev->dev_private; | 588 | drm_i915_private_t *dev_priv = dev->dev_private; |
589 | 589 | ||
@@ -625,7 +625,7 @@ static int i915_batchbuffer(DRM_IOCTL_ARGS) | |||
625 | 625 | ||
626 | if (batch.num_cliprects && DRM_VERIFYAREA_READ(batch.cliprects, | 626 | if (batch.num_cliprects && DRM_VERIFYAREA_READ(batch.cliprects, |
627 | batch.num_cliprects * | 627 | batch.num_cliprects * |
628 | sizeof(drm_clip_rect_t))) | 628 | sizeof(struct drm_clip_rect))) |
629 | return DRM_ERR(EFAULT); | 629 | return DRM_ERR(EFAULT); |
630 | 630 | ||
631 | ret = i915_dispatch_batchbuffer(dev, &batch); | 631 | ret = i915_dispatch_batchbuffer(dev, &batch); |
@@ -655,7 +655,7 @@ static int i915_cmdbuffer(DRM_IOCTL_ARGS) | |||
655 | if (cmdbuf.num_cliprects && | 655 | if (cmdbuf.num_cliprects && |
656 | DRM_VERIFYAREA_READ(cmdbuf.cliprects, | 656 | DRM_VERIFYAREA_READ(cmdbuf.cliprects, |
657 | cmdbuf.num_cliprects * | 657 | cmdbuf.num_cliprects * |
658 | sizeof(drm_clip_rect_t))) { | 658 | sizeof(struct drm_clip_rect))) { |
659 | DRM_ERROR("Fault accessing cliprects\n"); | 659 | DRM_ERROR("Fault accessing cliprects\n"); |
660 | return DRM_ERR(EFAULT); | 660 | return DRM_ERR(EFAULT); |
661 | } | 661 | } |
@@ -792,7 +792,7 @@ static int i915_set_status_page(DRM_IOCTL_ARGS) | |||
792 | return 0; | 792 | return 0; |
793 | } | 793 | } |
794 | 794 | ||
795 | int i915_driver_load(drm_device_t *dev, unsigned long flags) | 795 | int i915_driver_load(struct drm_device *dev, unsigned long flags) |
796 | { | 796 | { |
797 | /* i915 has 4 more counters */ | 797 | /* i915 has 4 more counters */ |
798 | dev->counters += 4; | 798 | dev->counters += 4; |
@@ -804,7 +804,7 @@ int i915_driver_load(drm_device_t *dev, unsigned long flags) | |||
804 | return 0; | 804 | return 0; |
805 | } | 805 | } |
806 | 806 | ||
807 | void i915_driver_lastclose(drm_device_t * dev) | 807 | void i915_driver_lastclose(struct drm_device * dev) |
808 | { | 808 | { |
809 | if (dev->dev_private) { | 809 | if (dev->dev_private) { |
810 | drm_i915_private_t *dev_priv = dev->dev_private; | 810 | drm_i915_private_t *dev_priv = dev->dev_private; |
@@ -813,7 +813,7 @@ void i915_driver_lastclose(drm_device_t * dev) | |||
813 | i915_dma_cleanup(dev); | 813 | i915_dma_cleanup(dev); |
814 | } | 814 | } |
815 | 815 | ||
816 | void i915_driver_preclose(drm_device_t * dev, DRMFILE filp) | 816 | void i915_driver_preclose(struct drm_device * dev, DRMFILE filp) |
817 | { | 817 | { |
818 | if (dev->dev_private) { | 818 | if (dev->dev_private) { |
819 | drm_i915_private_t *dev_priv = dev->dev_private; | 819 | drm_i915_private_t *dev_priv = dev->dev_private; |
@@ -854,7 +854,7 @@ int i915_max_ioctl = DRM_ARRAY_SIZE(i915_ioctls); | |||
854 | * \returns | 854 | * \returns |
855 | * A value of 1 is always retured to indictate every i9x5 is AGP. | 855 | * A value of 1 is always retured to indictate every i9x5 is AGP. |
856 | */ | 856 | */ |
857 | int i915_driver_device_is_agp(drm_device_t * dev) | 857 | int i915_driver_device_is_agp(struct drm_device * dev) |
858 | { | 858 | { |
859 | return 1; | 859 | return 1; |
860 | } | 860 | } |
diff --git a/drivers/char/drm/i915_drm.h b/drivers/char/drm/i915_drm.h index 7b7b68b96f31..05c66cf03a9e 100644 --- a/drivers/char/drm/i915_drm.h +++ b/drivers/char/drm/i915_drm.h | |||
@@ -64,7 +64,7 @@ typedef struct _drm_i915_init { | |||
64 | } drm_i915_init_t; | 64 | } drm_i915_init_t; |
65 | 65 | ||
66 | typedef struct _drm_i915_sarea { | 66 | typedef struct _drm_i915_sarea { |
67 | drm_tex_region_t texList[I915_NR_TEX_REGIONS + 1]; | 67 | struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1]; |
68 | int last_upload; /* last time texture was uploaded */ | 68 | int last_upload; /* last time texture was uploaded */ |
69 | int last_enqueue; /* last time a buffer was enqueued */ | 69 | int last_enqueue; /* last time a buffer was enqueued */ |
70 | int last_dispatch; /* age of the most recently dispatched buffer */ | 70 | int last_dispatch; /* age of the most recently dispatched buffer */ |
@@ -170,7 +170,7 @@ typedef struct _drm_i915_batchbuffer { | |||
170 | int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ | 170 | int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ |
171 | int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ | 171 | int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ |
172 | int num_cliprects; /* mulitpass with multiple cliprects? */ | 172 | int num_cliprects; /* mulitpass with multiple cliprects? */ |
173 | drm_clip_rect_t __user *cliprects; /* pointer to userspace cliprects */ | 173 | struct drm_clip_rect __user *cliprects; /* pointer to userspace cliprects */ |
174 | } drm_i915_batchbuffer_t; | 174 | } drm_i915_batchbuffer_t; |
175 | 175 | ||
176 | /* As above, but pass a pointer to userspace buffer which can be | 176 | /* As above, but pass a pointer to userspace buffer which can be |
@@ -182,7 +182,7 @@ typedef struct _drm_i915_cmdbuffer { | |||
182 | int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ | 182 | int DR1; /* hw flags for GFX_OP_DRAWRECT_INFO */ |
183 | int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ | 183 | int DR4; /* window origin for GFX_OP_DRAWRECT_INFO */ |
184 | int num_cliprects; /* mulitpass with multiple cliprects? */ | 184 | int num_cliprects; /* mulitpass with multiple cliprects? */ |
185 | drm_clip_rect_t __user *cliprects; /* pointer to userspace cliprects */ | 185 | struct drm_clip_rect __user *cliprects; /* pointer to userspace cliprects */ |
186 | } drm_i915_cmdbuffer_t; | 186 | } drm_i915_cmdbuffer_t; |
187 | 187 | ||
188 | /* Userspace can request & wait on irq's: | 188 | /* Userspace can request & wait on irq's: |
@@ -259,7 +259,7 @@ typedef struct drm_i915_vblank_pipe { | |||
259 | */ | 259 | */ |
260 | typedef struct drm_i915_vblank_swap { | 260 | typedef struct drm_i915_vblank_swap { |
261 | drm_drawable_t drawable; | 261 | drm_drawable_t drawable; |
262 | drm_vblank_seq_type_t seqtype; | 262 | enum drm_vblank_seq_type seqtype; |
263 | unsigned int sequence; | 263 | unsigned int sequence; |
264 | } drm_i915_vblank_swap_t; | 264 | } drm_i915_vblank_swap_t; |
265 | 265 | ||
diff --git a/drivers/char/drm/i915_drv.h b/drivers/char/drm/i915_drv.h index 85e323acb95d..fd918565f4e5 100644 --- a/drivers/char/drm/i915_drv.h +++ b/drivers/char/drm/i915_drv.h | |||
@@ -120,11 +120,11 @@ extern drm_ioctl_desc_t i915_ioctls[]; | |||
120 | extern int i915_max_ioctl; | 120 | extern int i915_max_ioctl; |
121 | 121 | ||
122 | /* i915_dma.c */ | 122 | /* i915_dma.c */ |
123 | extern void i915_kernel_lost_context(drm_device_t * dev); | 123 | extern void i915_kernel_lost_context(struct drm_device * dev); |
124 | extern int i915_driver_load(struct drm_device *, unsigned long flags); | 124 | extern int i915_driver_load(struct drm_device *, unsigned long flags); |
125 | extern void i915_driver_lastclose(drm_device_t * dev); | 125 | extern void i915_driver_lastclose(struct drm_device * dev); |
126 | extern void i915_driver_preclose(drm_device_t * dev, DRMFILE filp); | 126 | extern void i915_driver_preclose(struct drm_device * dev, DRMFILE filp); |
127 | extern int i915_driver_device_is_agp(drm_device_t * dev); | 127 | extern int i915_driver_device_is_agp(struct drm_device * dev); |
128 | extern long i915_compat_ioctl(struct file *filp, unsigned int cmd, | 128 | extern long i915_compat_ioctl(struct file *filp, unsigned int cmd, |
129 | unsigned long arg); | 129 | unsigned long arg); |
130 | 130 | ||
@@ -132,12 +132,12 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd, | |||
132 | extern int i915_irq_emit(DRM_IOCTL_ARGS); | 132 | extern int i915_irq_emit(DRM_IOCTL_ARGS); |
133 | extern int i915_irq_wait(DRM_IOCTL_ARGS); | 133 | extern int i915_irq_wait(DRM_IOCTL_ARGS); |
134 | 134 | ||
135 | extern int i915_driver_vblank_wait(drm_device_t *dev, unsigned int *sequence); | 135 | extern int i915_driver_vblank_wait(struct drm_device *dev, unsigned int *sequence); |
136 | extern int i915_driver_vblank_wait2(drm_device_t *dev, unsigned int *sequence); | 136 | extern int i915_driver_vblank_wait2(struct drm_device *dev, unsigned int *sequence); |
137 | extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS); | 137 | extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS); |
138 | extern void i915_driver_irq_preinstall(drm_device_t * dev); | 138 | extern void i915_driver_irq_preinstall(struct drm_device * dev); |
139 | extern void i915_driver_irq_postinstall(drm_device_t * dev); | 139 | extern void i915_driver_irq_postinstall(struct drm_device * dev); |
140 | extern void i915_driver_irq_uninstall(drm_device_t * dev); | 140 | extern void i915_driver_irq_uninstall(struct drm_device * dev); |
141 | extern int i915_vblank_pipe_set(DRM_IOCTL_ARGS); | 141 | extern int i915_vblank_pipe_set(DRM_IOCTL_ARGS); |
142 | extern int i915_vblank_pipe_get(DRM_IOCTL_ARGS); | 142 | extern int i915_vblank_pipe_get(DRM_IOCTL_ARGS); |
143 | extern int i915_vblank_swap(DRM_IOCTL_ARGS); | 143 | extern int i915_vblank_swap(DRM_IOCTL_ARGS); |
@@ -148,7 +148,7 @@ extern int i915_mem_free(DRM_IOCTL_ARGS); | |||
148 | extern int i915_mem_init_heap(DRM_IOCTL_ARGS); | 148 | extern int i915_mem_init_heap(DRM_IOCTL_ARGS); |
149 | extern int i915_mem_destroy_heap(DRM_IOCTL_ARGS); | 149 | extern int i915_mem_destroy_heap(DRM_IOCTL_ARGS); |
150 | extern void i915_mem_takedown(struct mem_block **heap); | 150 | extern void i915_mem_takedown(struct mem_block **heap); |
151 | extern void i915_mem_release(drm_device_t * dev, | 151 | extern void i915_mem_release(struct drm_device * dev, |
152 | DRMFILE filp, struct mem_block *heap); | 152 | DRMFILE filp, struct mem_block *heap); |
153 | 153 | ||
154 | #define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg)) | 154 | #define I915_READ(reg) DRM_READ32(dev_priv->mmio_map, (reg)) |
@@ -188,7 +188,7 @@ extern void i915_mem_release(drm_device_t * dev, | |||
188 | I915_WRITE(LP_RING + RING_TAIL, outring); \ | 188 | I915_WRITE(LP_RING + RING_TAIL, outring); \ |
189 | } while(0) | 189 | } while(0) |
190 | 190 | ||
191 | extern int i915_wait_ring(drm_device_t * dev, int n, const char *caller); | 191 | extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller); |
192 | 192 | ||
193 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) | 193 | #define GFX_OP_USER_INTERRUPT ((0<<29)|(2<<23)) |
194 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) | 194 | #define GFX_OP_BREAKPOINT_INTERRUPT ((0<<29)|(1<<23)) |
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c index b92062a239f1..4b4b2ce89863 100644 --- a/drivers/char/drm/i915_irq.c +++ b/drivers/char/drm/i915_irq.c | |||
@@ -42,7 +42,7 @@ | |||
42 | * | 42 | * |
43 | * This function will be called with the HW lock held. | 43 | * This function will be called with the HW lock held. |
44 | */ | 44 | */ |
45 | static void i915_vblank_tasklet(drm_device_t *dev) | 45 | static void i915_vblank_tasklet(struct drm_device *dev) |
46 | { | 46 | { |
47 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 47 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
48 | unsigned long irqflags; | 48 | unsigned long irqflags; |
@@ -50,7 +50,7 @@ static void i915_vblank_tasklet(drm_device_t *dev) | |||
50 | int nhits, nrects, slice[2], upper[2], lower[2], i; | 50 | int nhits, nrects, slice[2], upper[2], lower[2], i; |
51 | unsigned counter[2] = { atomic_read(&dev->vbl_received), | 51 | unsigned counter[2] = { atomic_read(&dev->vbl_received), |
52 | atomic_read(&dev->vbl_received2) }; | 52 | atomic_read(&dev->vbl_received2) }; |
53 | drm_drawable_info_t *drw; | 53 | struct drm_drawable_info *drw; |
54 | drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv; | 54 | drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv; |
55 | u32 cpp = dev_priv->cpp; | 55 | u32 cpp = dev_priv->cpp; |
56 | u32 cmd = (cpp == 4) ? (XY_SRC_COPY_BLT_CMD | | 56 | u32 cmd = (cpp == 4) ? (XY_SRC_COPY_BLT_CMD | |
@@ -95,7 +95,7 @@ static void i915_vblank_tasklet(drm_device_t *dev) | |||
95 | list_for_each(hit, &hits) { | 95 | list_for_each(hit, &hits) { |
96 | drm_i915_vbl_swap_t *swap_cmp = | 96 | drm_i915_vbl_swap_t *swap_cmp = |
97 | list_entry(hit, drm_i915_vbl_swap_t, head); | 97 | list_entry(hit, drm_i915_vbl_swap_t, head); |
98 | drm_drawable_info_t *drw_cmp = | 98 | struct drm_drawable_info *drw_cmp = |
99 | drm_get_drawable_info(dev, swap_cmp->drw_id); | 99 | drm_get_drawable_info(dev, swap_cmp->drw_id); |
100 | 100 | ||
101 | if (drw_cmp && | 101 | if (drw_cmp && |
@@ -160,7 +160,7 @@ static void i915_vblank_tasklet(drm_device_t *dev) | |||
160 | list_for_each(hit, &hits) { | 160 | list_for_each(hit, &hits) { |
161 | drm_i915_vbl_swap_t *swap_hit = | 161 | drm_i915_vbl_swap_t *swap_hit = |
162 | list_entry(hit, drm_i915_vbl_swap_t, head); | 162 | list_entry(hit, drm_i915_vbl_swap_t, head); |
163 | drm_clip_rect_t *rect; | 163 | struct drm_clip_rect *rect; |
164 | int num_rects, pipe; | 164 | int num_rects, pipe; |
165 | unsigned short top, bottom; | 165 | unsigned short top, bottom; |
166 | 166 | ||
@@ -211,7 +211,7 @@ static void i915_vblank_tasklet(drm_device_t *dev) | |||
211 | 211 | ||
212 | irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | 212 | irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) |
213 | { | 213 | { |
214 | drm_device_t *dev = (drm_device_t *) arg; | 214 | struct drm_device *dev = (struct drm_device *) arg; |
215 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 215 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
216 | u16 temp; | 216 | u16 temp; |
217 | 217 | ||
@@ -257,7 +257,7 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) | |||
257 | return IRQ_HANDLED; | 257 | return IRQ_HANDLED; |
258 | } | 258 | } |
259 | 259 | ||
260 | static int i915_emit_irq(drm_device_t * dev) | 260 | static int i915_emit_irq(struct drm_device * dev) |
261 | { | 261 | { |
262 | drm_i915_private_t *dev_priv = dev->dev_private; | 262 | drm_i915_private_t *dev_priv = dev->dev_private; |
263 | RING_LOCALS; | 263 | RING_LOCALS; |
@@ -283,7 +283,7 @@ static int i915_emit_irq(drm_device_t * dev) | |||
283 | return dev_priv->counter; | 283 | return dev_priv->counter; |
284 | } | 284 | } |
285 | 285 | ||
286 | static int i915_wait_irq(drm_device_t * dev, int irq_nr) | 286 | static int i915_wait_irq(struct drm_device * dev, int irq_nr) |
287 | { | 287 | { |
288 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 288 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
289 | int ret = 0; | 289 | int ret = 0; |
@@ -309,7 +309,7 @@ static int i915_wait_irq(drm_device_t * dev, int irq_nr) | |||
309 | return ret; | 309 | return ret; |
310 | } | 310 | } |
311 | 311 | ||
312 | static int i915_driver_vblank_do_wait(drm_device_t *dev, unsigned int *sequence, | 312 | static int i915_driver_vblank_do_wait(struct drm_device *dev, unsigned int *sequence, |
313 | atomic_t *counter) | 313 | atomic_t *counter) |
314 | { | 314 | { |
315 | drm_i915_private_t *dev_priv = dev->dev_private; | 315 | drm_i915_private_t *dev_priv = dev->dev_private; |
@@ -331,12 +331,12 @@ static int i915_driver_vblank_do_wait(drm_device_t *dev, unsigned int *sequence, | |||
331 | } | 331 | } |
332 | 332 | ||
333 | 333 | ||
334 | int i915_driver_vblank_wait(drm_device_t *dev, unsigned int *sequence) | 334 | int i915_driver_vblank_wait(struct drm_device *dev, unsigned int *sequence) |
335 | { | 335 | { |
336 | return i915_driver_vblank_do_wait(dev, sequence, &dev->vbl_received); | 336 | return i915_driver_vblank_do_wait(dev, sequence, &dev->vbl_received); |
337 | } | 337 | } |
338 | 338 | ||
339 | int i915_driver_vblank_wait2(drm_device_t *dev, unsigned int *sequence) | 339 | int i915_driver_vblank_wait2(struct drm_device *dev, unsigned int *sequence) |
340 | { | 340 | { |
341 | return i915_driver_vblank_do_wait(dev, sequence, &dev->vbl_received2); | 341 | return i915_driver_vblank_do_wait(dev, sequence, &dev->vbl_received2); |
342 | } | 342 | } |
@@ -389,7 +389,7 @@ int i915_irq_wait(DRM_IOCTL_ARGS) | |||
389 | return i915_wait_irq(dev, irqwait.irq_seq); | 389 | return i915_wait_irq(dev, irqwait.irq_seq); |
390 | } | 390 | } |
391 | 391 | ||
392 | static void i915_enable_interrupt (drm_device_t *dev) | 392 | static void i915_enable_interrupt (struct drm_device *dev) |
393 | { | 393 | { |
394 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 394 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
395 | u16 flag; | 395 | u16 flag; |
@@ -569,7 +569,7 @@ int i915_vblank_swap(DRM_IOCTL_ARGS) | |||
569 | 569 | ||
570 | /* drm_dma.h hooks | 570 | /* drm_dma.h hooks |
571 | */ | 571 | */ |
572 | void i915_driver_irq_preinstall(drm_device_t * dev) | 572 | void i915_driver_irq_preinstall(struct drm_device * dev) |
573 | { | 573 | { |
574 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 574 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
575 | 575 | ||
@@ -578,7 +578,7 @@ void i915_driver_irq_preinstall(drm_device_t * dev) | |||
578 | I915_WRITE16(I915REG_INT_ENABLE_R, 0x0); | 578 | I915_WRITE16(I915REG_INT_ENABLE_R, 0x0); |
579 | } | 579 | } |
580 | 580 | ||
581 | void i915_driver_irq_postinstall(drm_device_t * dev) | 581 | void i915_driver_irq_postinstall(struct drm_device * dev) |
582 | { | 582 | { |
583 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 583 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
584 | 584 | ||
@@ -592,7 +592,7 @@ void i915_driver_irq_postinstall(drm_device_t * dev) | |||
592 | DRM_INIT_WAITQUEUE(&dev_priv->irq_queue); | 592 | DRM_INIT_WAITQUEUE(&dev_priv->irq_queue); |
593 | } | 593 | } |
594 | 594 | ||
595 | void i915_driver_irq_uninstall(drm_device_t * dev) | 595 | void i915_driver_irq_uninstall(struct drm_device * dev) |
596 | { | 596 | { |
597 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 597 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
598 | u16 temp; | 598 | u16 temp; |
diff --git a/drivers/char/drm/i915_mem.c b/drivers/char/drm/i915_mem.c index 52c67324df58..50b4bacef0e0 100644 --- a/drivers/char/drm/i915_mem.c +++ b/drivers/char/drm/i915_mem.c | |||
@@ -43,11 +43,11 @@ | |||
43 | * block to allocate, and the ring is drained prior to allocations -- | 43 | * block to allocate, and the ring is drained prior to allocations -- |
44 | * in other words allocation is expensive. | 44 | * in other words allocation is expensive. |
45 | */ | 45 | */ |
46 | static void mark_block(drm_device_t * dev, struct mem_block *p, int in_use) | 46 | static void mark_block(struct drm_device * dev, struct mem_block *p, int in_use) |
47 | { | 47 | { |
48 | drm_i915_private_t *dev_priv = dev->dev_private; | 48 | drm_i915_private_t *dev_priv = dev->dev_private; |
49 | drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv; | 49 | drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv; |
50 | drm_tex_region_t *list; | 50 | struct drm_tex_region *list; |
51 | unsigned shift, nr; | 51 | unsigned shift, nr; |
52 | unsigned start; | 52 | unsigned start; |
53 | unsigned end; | 53 | unsigned end; |
@@ -208,7 +208,7 @@ static int init_heap(struct mem_block **heap, int start, int size) | |||
208 | 208 | ||
209 | /* Free all blocks associated with the releasing file. | 209 | /* Free all blocks associated with the releasing file. |
210 | */ | 210 | */ |
211 | void i915_mem_release(drm_device_t * dev, DRMFILE filp, struct mem_block *heap) | 211 | void i915_mem_release(struct drm_device * dev, DRMFILE filp, struct mem_block *heap) |
212 | { | 212 | { |
213 | struct mem_block *p; | 213 | struct mem_block *p; |
214 | 214 | ||
diff --git a/drivers/char/drm/mga_dma.c b/drivers/char/drm/mga_dma.c index c2a4bac14521..9c73a6e3861b 100644 --- a/drivers/char/drm/mga_dma.c +++ b/drivers/char/drm/mga_dma.c | |||
@@ -46,7 +46,7 @@ | |||
46 | 46 | ||
47 | #define MINIMAL_CLEANUP 0 | 47 | #define MINIMAL_CLEANUP 0 |
48 | #define FULL_CLEANUP 1 | 48 | #define FULL_CLEANUP 1 |
49 | static int mga_do_cleanup_dma(drm_device_t *dev, int full_cleanup); | 49 | static int mga_do_cleanup_dma(struct drm_device *dev, int full_cleanup); |
50 | 50 | ||
51 | /* ================================================================ | 51 | /* ================================================================ |
52 | * Engine control | 52 | * Engine control |
@@ -224,7 +224,7 @@ void mga_do_dma_wrap_end(drm_mga_private_t * dev_priv) | |||
224 | #define MGA_BUFFER_FREE 0 | 224 | #define MGA_BUFFER_FREE 0 |
225 | 225 | ||
226 | #if MGA_FREELIST_DEBUG | 226 | #if MGA_FREELIST_DEBUG |
227 | static void mga_freelist_print(drm_device_t * dev) | 227 | static void mga_freelist_print(struct drm_device * dev) |
228 | { | 228 | { |
229 | drm_mga_private_t *dev_priv = dev->dev_private; | 229 | drm_mga_private_t *dev_priv = dev->dev_private; |
230 | drm_mga_freelist_t *entry; | 230 | drm_mga_freelist_t *entry; |
@@ -245,10 +245,10 @@ static void mga_freelist_print(drm_device_t * dev) | |||
245 | } | 245 | } |
246 | #endif | 246 | #endif |
247 | 247 | ||
248 | static int mga_freelist_init(drm_device_t * dev, drm_mga_private_t * dev_priv) | 248 | static int mga_freelist_init(struct drm_device * dev, drm_mga_private_t * dev_priv) |
249 | { | 249 | { |
250 | drm_device_dma_t *dma = dev->dma; | 250 | struct drm_device_dma *dma = dev->dma; |
251 | drm_buf_t *buf; | 251 | struct drm_buf *buf; |
252 | drm_mga_buf_priv_t *buf_priv; | 252 | drm_mga_buf_priv_t *buf_priv; |
253 | drm_mga_freelist_t *entry; | 253 | drm_mga_freelist_t *entry; |
254 | int i; | 254 | int i; |
@@ -291,7 +291,7 @@ static int mga_freelist_init(drm_device_t * dev, drm_mga_private_t * dev_priv) | |||
291 | return 0; | 291 | return 0; |
292 | } | 292 | } |
293 | 293 | ||
294 | static void mga_freelist_cleanup(drm_device_t * dev) | 294 | static void mga_freelist_cleanup(struct drm_device * dev) |
295 | { | 295 | { |
296 | drm_mga_private_t *dev_priv = dev->dev_private; | 296 | drm_mga_private_t *dev_priv = dev->dev_private; |
297 | drm_mga_freelist_t *entry; | 297 | drm_mga_freelist_t *entry; |
@@ -311,10 +311,10 @@ static void mga_freelist_cleanup(drm_device_t * dev) | |||
311 | #if 0 | 311 | #if 0 |
312 | /* FIXME: Still needed? | 312 | /* FIXME: Still needed? |
313 | */ | 313 | */ |
314 | static void mga_freelist_reset(drm_device_t * dev) | 314 | static void mga_freelist_reset(struct drm_device * dev) |
315 | { | 315 | { |
316 | drm_device_dma_t *dma = dev->dma; | 316 | struct drm_device_dma *dma = dev->dma; |
317 | drm_buf_t *buf; | 317 | struct drm_buf *buf; |
318 | drm_mga_buf_priv_t *buf_priv; | 318 | drm_mga_buf_priv_t *buf_priv; |
319 | int i; | 319 | int i; |
320 | 320 | ||
@@ -326,7 +326,7 @@ static void mga_freelist_reset(drm_device_t * dev) | |||
326 | } | 326 | } |
327 | #endif | 327 | #endif |
328 | 328 | ||
329 | static drm_buf_t *mga_freelist_get(drm_device_t * dev) | 329 | static struct drm_buf *mga_freelist_get(struct drm_device * dev) |
330 | { | 330 | { |
331 | drm_mga_private_t *dev_priv = dev->dev_private; | 331 | drm_mga_private_t *dev_priv = dev->dev_private; |
332 | drm_mga_freelist_t *next; | 332 | drm_mga_freelist_t *next; |
@@ -359,7 +359,7 @@ static drm_buf_t *mga_freelist_get(drm_device_t * dev) | |||
359 | return NULL; | 359 | return NULL; |
360 | } | 360 | } |
361 | 361 | ||
362 | int mga_freelist_put(drm_device_t * dev, drm_buf_t * buf) | 362 | int mga_freelist_put(struct drm_device * dev, struct drm_buf * buf) |
363 | { | 363 | { |
364 | drm_mga_private_t *dev_priv = dev->dev_private; | 364 | drm_mga_private_t *dev_priv = dev->dev_private; |
365 | drm_mga_buf_priv_t *buf_priv = buf->dev_private; | 365 | drm_mga_buf_priv_t *buf_priv = buf->dev_private; |
@@ -393,7 +393,7 @@ int mga_freelist_put(drm_device_t * dev, drm_buf_t * buf) | |||
393 | * DMA initialization, cleanup | 393 | * DMA initialization, cleanup |
394 | */ | 394 | */ |
395 | 395 | ||
396 | int mga_driver_load(drm_device_t * dev, unsigned long flags) | 396 | int mga_driver_load(struct drm_device * dev, unsigned long flags) |
397 | { | 397 | { |
398 | drm_mga_private_t *dev_priv; | 398 | drm_mga_private_t *dev_priv; |
399 | 399 | ||
@@ -434,7 +434,7 @@ int mga_driver_load(drm_device_t * dev, unsigned long flags) | |||
434 | * | 434 | * |
435 | * \sa mga_do_dma_bootstrap, mga_do_pci_dma_bootstrap | 435 | * \sa mga_do_dma_bootstrap, mga_do_pci_dma_bootstrap |
436 | */ | 436 | */ |
437 | static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | 437 | static int mga_do_agp_dma_bootstrap(struct drm_device * dev, |
438 | drm_mga_dma_bootstrap_t * dma_bs) | 438 | drm_mga_dma_bootstrap_t * dma_bs) |
439 | { | 439 | { |
440 | drm_mga_private_t *const dev_priv = | 440 | drm_mga_private_t *const dev_priv = |
@@ -445,11 +445,11 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
445 | const unsigned secondary_size = dma_bs->secondary_bin_count | 445 | const unsigned secondary_size = dma_bs->secondary_bin_count |
446 | * dma_bs->secondary_bin_size; | 446 | * dma_bs->secondary_bin_size; |
447 | const unsigned agp_size = (dma_bs->agp_size << 20); | 447 | const unsigned agp_size = (dma_bs->agp_size << 20); |
448 | drm_buf_desc_t req; | 448 | struct drm_buf_desc req; |
449 | drm_agp_mode_t mode; | 449 | struct drm_agp_mode mode; |
450 | drm_agp_info_t info; | 450 | struct drm_agp_info info; |
451 | drm_agp_buffer_t agp_req; | 451 | struct drm_agp_buffer agp_req; |
452 | drm_agp_binding_t bind_req; | 452 | struct drm_agp_binding bind_req; |
453 | 453 | ||
454 | /* Acquire AGP. */ | 454 | /* Acquire AGP. */ |
455 | err = drm_agp_acquire(dev); | 455 | err = drm_agp_acquire(dev); |
@@ -548,10 +548,10 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
548 | } | 548 | } |
549 | 549 | ||
550 | { | 550 | { |
551 | drm_map_list_t *_entry; | 551 | struct drm_map_list *_entry; |
552 | unsigned long agp_token = 0; | 552 | unsigned long agp_token = 0; |
553 | 553 | ||
554 | list_for_each_entry(_entry, &dev->maplist->head, head) { | 554 | list_for_each_entry(_entry, &dev->maplist, head) { |
555 | if (_entry->map == dev->agp_buffer_map) | 555 | if (_entry->map == dev->agp_buffer_map) |
556 | agp_token = _entry->user_token; | 556 | agp_token = _entry->user_token; |
557 | } | 557 | } |
@@ -588,7 +588,7 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
588 | return 0; | 588 | return 0; |
589 | } | 589 | } |
590 | #else | 590 | #else |
591 | static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | 591 | static int mga_do_agp_dma_bootstrap(struct drm_device * dev, |
592 | drm_mga_dma_bootstrap_t * dma_bs) | 592 | drm_mga_dma_bootstrap_t * dma_bs) |
593 | { | 593 | { |
594 | return -EINVAL; | 594 | return -EINVAL; |
@@ -609,7 +609,7 @@ static int mga_do_agp_dma_bootstrap(drm_device_t * dev, | |||
609 | * | 609 | * |
610 | * \sa mga_do_dma_bootstrap, mga_do_agp_dma_bootstrap | 610 | * \sa mga_do_dma_bootstrap, mga_do_agp_dma_bootstrap |
611 | */ | 611 | */ |
612 | static int mga_do_pci_dma_bootstrap(drm_device_t * dev, | 612 | static int mga_do_pci_dma_bootstrap(struct drm_device * dev, |
613 | drm_mga_dma_bootstrap_t * dma_bs) | 613 | drm_mga_dma_bootstrap_t * dma_bs) |
614 | { | 614 | { |
615 | drm_mga_private_t *const dev_priv = | 615 | drm_mga_private_t *const dev_priv = |
@@ -618,7 +618,7 @@ static int mga_do_pci_dma_bootstrap(drm_device_t * dev, | |||
618 | unsigned int primary_size; | 618 | unsigned int primary_size; |
619 | unsigned int bin_count; | 619 | unsigned int bin_count; |
620 | int err; | 620 | int err; |
621 | drm_buf_desc_t req; | 621 | struct drm_buf_desc req; |
622 | 622 | ||
623 | if (dev->dma == NULL) { | 623 | if (dev->dma == NULL) { |
624 | DRM_ERROR("dev->dma is NULL\n"); | 624 | DRM_ERROR("dev->dma is NULL\n"); |
@@ -699,7 +699,7 @@ static int mga_do_pci_dma_bootstrap(drm_device_t * dev, | |||
699 | return 0; | 699 | return 0; |
700 | } | 700 | } |
701 | 701 | ||
702 | static int mga_do_dma_bootstrap(drm_device_t * dev, | 702 | static int mga_do_dma_bootstrap(struct drm_device * dev, |
703 | drm_mga_dma_bootstrap_t * dma_bs) | 703 | drm_mga_dma_bootstrap_t * dma_bs) |
704 | { | 704 | { |
705 | const int is_agp = (dma_bs->agp_mode != 0) && drm_device_is_agp(dev); | 705 | const int is_agp = (dma_bs->agp_mode != 0) && drm_device_is_agp(dev); |
@@ -793,7 +793,7 @@ int mga_dma_bootstrap(DRM_IOCTL_ARGS) | |||
793 | return err; | 793 | return err; |
794 | } | 794 | } |
795 | 795 | ||
796 | static int mga_do_init_dma(drm_device_t * dev, drm_mga_init_t * init) | 796 | static int mga_do_init_dma(struct drm_device * dev, drm_mga_init_t * init) |
797 | { | 797 | { |
798 | drm_mga_private_t *dev_priv; | 798 | drm_mga_private_t *dev_priv; |
799 | int ret; | 799 | int ret; |
@@ -823,8 +823,7 @@ static int mga_do_init_dma(drm_device_t * dev, drm_mga_init_t * init) | |||
823 | dev_priv->texture_offset = init->texture_offset[0]; | 823 | dev_priv->texture_offset = init->texture_offset[0]; |
824 | dev_priv->texture_size = init->texture_size[0]; | 824 | dev_priv->texture_size = init->texture_size[0]; |
825 | 825 | ||
826 | DRM_GETSAREA(); | 826 | dev_priv->sarea = drm_getsarea(dev); |
827 | |||
828 | if (!dev_priv->sarea) { | 827 | if (!dev_priv->sarea) { |
829 | DRM_ERROR("failed to find sarea!\n"); | 828 | DRM_ERROR("failed to find sarea!\n"); |
830 | return DRM_ERR(EINVAL); | 829 | return DRM_ERR(EINVAL); |
@@ -934,7 +933,7 @@ static int mga_do_init_dma(drm_device_t * dev, drm_mga_init_t * init) | |||
934 | return 0; | 933 | return 0; |
935 | } | 934 | } |
936 | 935 | ||
937 | static int mga_do_cleanup_dma(drm_device_t *dev, int full_cleanup) | 936 | static int mga_do_cleanup_dma(struct drm_device *dev, int full_cleanup) |
938 | { | 937 | { |
939 | int err = 0; | 938 | int err = 0; |
940 | DRM_DEBUG("\n"); | 939 | DRM_DEBUG("\n"); |
@@ -963,8 +962,8 @@ static int mga_do_cleanup_dma(drm_device_t *dev, int full_cleanup) | |||
963 | if (dev_priv->used_new_dma_init) { | 962 | if (dev_priv->used_new_dma_init) { |
964 | #if __OS_HAS_AGP | 963 | #if __OS_HAS_AGP |
965 | if (dev_priv->agp_handle != 0) { | 964 | if (dev_priv->agp_handle != 0) { |
966 | drm_agp_binding_t unbind_req; | 965 | struct drm_agp_binding unbind_req; |
967 | drm_agp_buffer_t free_req; | 966 | struct drm_agp_buffer free_req; |
968 | 967 | ||
969 | unbind_req.handle = dev_priv->agp_handle; | 968 | unbind_req.handle = dev_priv->agp_handle; |
970 | drm_agp_unbind(dev, &unbind_req); | 969 | drm_agp_unbind(dev, &unbind_req); |
@@ -1041,11 +1040,11 @@ int mga_dma_flush(DRM_IOCTL_ARGS) | |||
1041 | { | 1040 | { |
1042 | DRM_DEVICE; | 1041 | DRM_DEVICE; |
1043 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 1042 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
1044 | drm_lock_t lock; | 1043 | struct drm_lock lock; |
1045 | 1044 | ||
1046 | LOCK_TEST_WITH_RETURN(dev, filp); | 1045 | LOCK_TEST_WITH_RETURN(dev, filp); |
1047 | 1046 | ||
1048 | DRM_COPY_FROM_USER_IOCTL(lock, (drm_lock_t __user *) data, | 1047 | DRM_COPY_FROM_USER_IOCTL(lock, (struct drm_lock __user *) data, |
1049 | sizeof(lock)); | 1048 | sizeof(lock)); |
1050 | 1049 | ||
1051 | DRM_DEBUG("%s%s%s\n", | 1050 | DRM_DEBUG("%s%s%s\n", |
@@ -1087,9 +1086,9 @@ int mga_dma_reset(DRM_IOCTL_ARGS) | |||
1087 | * DMA buffer management | 1086 | * DMA buffer management |
1088 | */ | 1087 | */ |
1089 | 1088 | ||
1090 | static int mga_dma_get_buffers(DRMFILE filp, drm_device_t * dev, drm_dma_t * d) | 1089 | static int mga_dma_get_buffers(DRMFILE filp, struct drm_device * dev, struct drm_dma * d) |
1091 | { | 1090 | { |
1092 | drm_buf_t *buf; | 1091 | struct drm_buf *buf; |
1093 | int i; | 1092 | int i; |
1094 | 1093 | ||
1095 | for (i = d->granted_count; i < d->request_count; i++) { | 1094 | for (i = d->granted_count; i < d->request_count; i++) { |
@@ -1114,10 +1113,10 @@ static int mga_dma_get_buffers(DRMFILE filp, drm_device_t * dev, drm_dma_t * d) | |||
1114 | int mga_dma_buffers(DRM_IOCTL_ARGS) | 1113 | int mga_dma_buffers(DRM_IOCTL_ARGS) |
1115 | { | 1114 | { |
1116 | DRM_DEVICE; | 1115 | DRM_DEVICE; |
1117 | drm_device_dma_t *dma = dev->dma; | 1116 | struct drm_device_dma *dma = dev->dma; |
1118 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 1117 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
1119 | drm_dma_t __user *argp = (void __user *)data; | 1118 | struct drm_dma __user *argp = (void __user *)data; |
1120 | drm_dma_t d; | 1119 | struct drm_dma d; |
1121 | int ret = 0; | 1120 | int ret = 0; |
1122 | 1121 | ||
1123 | LOCK_TEST_WITH_RETURN(dev, filp); | 1122 | LOCK_TEST_WITH_RETURN(dev, filp); |
@@ -1156,7 +1155,7 @@ int mga_dma_buffers(DRM_IOCTL_ARGS) | |||
1156 | /** | 1155 | /** |
1157 | * Called just before the module is unloaded. | 1156 | * Called just before the module is unloaded. |
1158 | */ | 1157 | */ |
1159 | int mga_driver_unload(drm_device_t * dev) | 1158 | int mga_driver_unload(struct drm_device * dev) |
1160 | { | 1159 | { |
1161 | drm_free(dev->dev_private, sizeof(drm_mga_private_t), DRM_MEM_DRIVER); | 1160 | drm_free(dev->dev_private, sizeof(drm_mga_private_t), DRM_MEM_DRIVER); |
1162 | dev->dev_private = NULL; | 1161 | dev->dev_private = NULL; |
@@ -1167,12 +1166,12 @@ int mga_driver_unload(drm_device_t * dev) | |||
1167 | /** | 1166 | /** |
1168 | * Called when the last opener of the device is closed. | 1167 | * Called when the last opener of the device is closed. |
1169 | */ | 1168 | */ |
1170 | void mga_driver_lastclose(drm_device_t * dev) | 1169 | void mga_driver_lastclose(struct drm_device * dev) |
1171 | { | 1170 | { |
1172 | mga_do_cleanup_dma(dev, FULL_CLEANUP); | 1171 | mga_do_cleanup_dma(dev, FULL_CLEANUP); |
1173 | } | 1172 | } |
1174 | 1173 | ||
1175 | int mga_driver_dma_quiescent(drm_device_t * dev) | 1174 | int mga_driver_dma_quiescent(struct drm_device * dev) |
1176 | { | 1175 | { |
1177 | drm_mga_private_t *dev_priv = dev->dev_private; | 1176 | drm_mga_private_t *dev_priv = dev->dev_private; |
1178 | return mga_do_wait_for_idle(dev_priv); | 1177 | return mga_do_wait_for_idle(dev_priv); |
diff --git a/drivers/char/drm/mga_drm.h b/drivers/char/drm/mga_drm.h index 44d1293e2947..944b50a5ff24 100644 --- a/drivers/char/drm/mga_drm.h +++ b/drivers/char/drm/mga_drm.h | |||
@@ -181,7 +181,7 @@ typedef struct _drm_mga_sarea { | |||
181 | 181 | ||
182 | /* The current cliprects, or a subset thereof. | 182 | /* The current cliprects, or a subset thereof. |
183 | */ | 183 | */ |
184 | drm_clip_rect_t boxes[MGA_NR_SAREA_CLIPRECTS]; | 184 | struct drm_clip_rect boxes[MGA_NR_SAREA_CLIPRECTS]; |
185 | unsigned int nbox; | 185 | unsigned int nbox; |
186 | 186 | ||
187 | /* Information about the most recently used 3d drawable. The | 187 | /* Information about the most recently used 3d drawable. The |
@@ -202,7 +202,7 @@ typedef struct _drm_mga_sarea { | |||
202 | unsigned int exported_nback; | 202 | unsigned int exported_nback; |
203 | int exported_back_x, exported_front_x, exported_w; | 203 | int exported_back_x, exported_front_x, exported_w; |
204 | int exported_back_y, exported_front_y, exported_h; | 204 | int exported_back_y, exported_front_y, exported_h; |
205 | drm_clip_rect_t exported_boxes[MGA_NR_SAREA_CLIPRECTS]; | 205 | struct drm_clip_rect exported_boxes[MGA_NR_SAREA_CLIPRECTS]; |
206 | 206 | ||
207 | /* Counters for aging textures and for client-side throttling. | 207 | /* Counters for aging textures and for client-side throttling. |
208 | */ | 208 | */ |
@@ -216,7 +216,7 @@ typedef struct _drm_mga_sarea { | |||
216 | 216 | ||
217 | /* LRU lists for texture memory in agp space and on the card. | 217 | /* LRU lists for texture memory in agp space and on the card. |
218 | */ | 218 | */ |
219 | drm_tex_region_t texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1]; | 219 | struct drm_tex_region texList[MGA_NR_TEX_HEAPS][MGA_NR_TEX_REGIONS + 1]; |
220 | unsigned int texAge[MGA_NR_TEX_HEAPS]; | 220 | unsigned int texAge[MGA_NR_TEX_HEAPS]; |
221 | 221 | ||
222 | /* Mechanism to validate card state. | 222 | /* Mechanism to validate card state. |
diff --git a/drivers/char/drm/mga_drv.c b/drivers/char/drm/mga_drv.c index be49dbb9ec3f..5572939fc7d1 100644 --- a/drivers/char/drm/mga_drv.c +++ b/drivers/char/drm/mga_drv.c | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | #include "drm_pciids.h" | 37 | #include "drm_pciids.h" |
38 | 38 | ||
39 | static int mga_driver_device_is_agp(drm_device_t * dev); | 39 | static int mga_driver_device_is_agp(struct drm_device * dev); |
40 | 40 | ||
41 | static struct pci_device_id pciidlist[] = { | 41 | static struct pci_device_id pciidlist[] = { |
42 | mga_PCI_IDS | 42 | mga_PCI_IDS |
@@ -118,7 +118,7 @@ MODULE_LICENSE("GPL and additional rights"); | |||
118 | * \returns | 118 | * \returns |
119 | * If the device is a PCI G450, zero is returned. Otherwise 2 is returned. | 119 | * If the device is a PCI G450, zero is returned. Otherwise 2 is returned. |
120 | */ | 120 | */ |
121 | static int mga_driver_device_is_agp(drm_device_t * dev) | 121 | static int mga_driver_device_is_agp(struct drm_device * dev) |
122 | { | 122 | { |
123 | const struct pci_dev *const pdev = dev->pdev; | 123 | const struct pci_dev *const pdev = dev->pdev; |
124 | 124 | ||
diff --git a/drivers/char/drm/mga_drv.h b/drivers/char/drm/mga_drv.h index 6b0c53193506..49253affa475 100644 --- a/drivers/char/drm/mga_drv.h +++ b/drivers/char/drm/mga_drv.h | |||
@@ -65,7 +65,7 @@ typedef struct drm_mga_freelist { | |||
65 | struct drm_mga_freelist *next; | 65 | struct drm_mga_freelist *next; |
66 | struct drm_mga_freelist *prev; | 66 | struct drm_mga_freelist *prev; |
67 | drm_mga_age_t age; | 67 | drm_mga_age_t age; |
68 | drm_buf_t *buf; | 68 | struct drm_buf *buf; |
69 | } drm_mga_freelist_t; | 69 | } drm_mga_freelist_t; |
70 | 70 | ||
71 | typedef struct { | 71 | typedef struct { |
@@ -157,10 +157,10 @@ extern int mga_dma_init(DRM_IOCTL_ARGS); | |||
157 | extern int mga_dma_flush(DRM_IOCTL_ARGS); | 157 | extern int mga_dma_flush(DRM_IOCTL_ARGS); |
158 | extern int mga_dma_reset(DRM_IOCTL_ARGS); | 158 | extern int mga_dma_reset(DRM_IOCTL_ARGS); |
159 | extern int mga_dma_buffers(DRM_IOCTL_ARGS); | 159 | extern int mga_dma_buffers(DRM_IOCTL_ARGS); |
160 | extern int mga_driver_load(drm_device_t *dev, unsigned long flags); | 160 | extern int mga_driver_load(struct drm_device *dev, unsigned long flags); |
161 | extern int mga_driver_unload(drm_device_t * dev); | 161 | extern int mga_driver_unload(struct drm_device * dev); |
162 | extern void mga_driver_lastclose(drm_device_t * dev); | 162 | extern void mga_driver_lastclose(struct drm_device * dev); |
163 | extern int mga_driver_dma_quiescent(drm_device_t * dev); | 163 | extern int mga_driver_dma_quiescent(struct drm_device * dev); |
164 | 164 | ||
165 | extern int mga_do_wait_for_idle(drm_mga_private_t * dev_priv); | 165 | extern int mga_do_wait_for_idle(drm_mga_private_t * dev_priv); |
166 | 166 | ||
@@ -168,7 +168,7 @@ extern void mga_do_dma_flush(drm_mga_private_t * dev_priv); | |||
168 | extern void mga_do_dma_wrap_start(drm_mga_private_t * dev_priv); | 168 | extern void mga_do_dma_wrap_start(drm_mga_private_t * dev_priv); |
169 | extern void mga_do_dma_wrap_end(drm_mga_private_t * dev_priv); | 169 | extern void mga_do_dma_wrap_end(drm_mga_private_t * dev_priv); |
170 | 170 | ||
171 | extern int mga_freelist_put(drm_device_t * dev, drm_buf_t * buf); | 171 | extern int mga_freelist_put(struct drm_device * dev, struct drm_buf * buf); |
172 | 172 | ||
173 | /* mga_warp.c */ | 173 | /* mga_warp.c */ |
174 | extern unsigned int mga_warp_microcode_size(const drm_mga_private_t * dev_priv); | 174 | extern unsigned int mga_warp_microcode_size(const drm_mga_private_t * dev_priv); |
@@ -176,12 +176,12 @@ extern int mga_warp_install_microcode(drm_mga_private_t * dev_priv); | |||
176 | extern int mga_warp_init(drm_mga_private_t * dev_priv); | 176 | extern int mga_warp_init(drm_mga_private_t * dev_priv); |
177 | 177 | ||
178 | /* mga_irq.c */ | 178 | /* mga_irq.c */ |
179 | extern int mga_driver_fence_wait(drm_device_t * dev, unsigned int *sequence); | 179 | extern int mga_driver_fence_wait(struct drm_device * dev, unsigned int *sequence); |
180 | extern int mga_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence); | 180 | extern int mga_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence); |
181 | extern irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS); | 181 | extern irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS); |
182 | extern void mga_driver_irq_preinstall(drm_device_t * dev); | 182 | extern void mga_driver_irq_preinstall(struct drm_device * dev); |
183 | extern void mga_driver_irq_postinstall(drm_device_t * dev); | 183 | extern void mga_driver_irq_postinstall(struct drm_device * dev); |
184 | extern void mga_driver_irq_uninstall(drm_device_t * dev); | 184 | extern void mga_driver_irq_uninstall(struct drm_device * dev); |
185 | extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, | 185 | extern long mga_compat_ioctl(struct file *filp, unsigned int cmd, |
186 | unsigned long arg); | 186 | unsigned long arg); |
187 | 187 | ||
diff --git a/drivers/char/drm/mga_irq.c b/drivers/char/drm/mga_irq.c index eb9644024172..9302cb8f0f83 100644 --- a/drivers/char/drm/mga_irq.c +++ b/drivers/char/drm/mga_irq.c | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS) | 38 | irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS) |
39 | { | 39 | { |
40 | drm_device_t *dev = (drm_device_t *) arg; | 40 | struct drm_device *dev = (struct drm_device *) arg; |
41 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 41 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
42 | int status; | 42 | int status; |
43 | int handled = 0; | 43 | int handled = 0; |
@@ -78,7 +78,7 @@ irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS) | |||
78 | return IRQ_NONE; | 78 | return IRQ_NONE; |
79 | } | 79 | } |
80 | 80 | ||
81 | int mga_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | 81 | int mga_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence) |
82 | { | 82 | { |
83 | unsigned int cur_vblank; | 83 | unsigned int cur_vblank; |
84 | int ret = 0; | 84 | int ret = 0; |
@@ -96,7 +96,7 @@ int mga_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | |||
96 | return ret; | 96 | return ret; |
97 | } | 97 | } |
98 | 98 | ||
99 | int mga_driver_fence_wait(drm_device_t * dev, unsigned int *sequence) | 99 | int mga_driver_fence_wait(struct drm_device * dev, unsigned int *sequence) |
100 | { | 100 | { |
101 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 101 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
102 | unsigned int cur_fence; | 102 | unsigned int cur_fence; |
@@ -115,7 +115,7 @@ int mga_driver_fence_wait(drm_device_t * dev, unsigned int *sequence) | |||
115 | return ret; | 115 | return ret; |
116 | } | 116 | } |
117 | 117 | ||
118 | void mga_driver_irq_preinstall(drm_device_t * dev) | 118 | void mga_driver_irq_preinstall(struct drm_device * dev) |
119 | { | 119 | { |
120 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 120 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
121 | 121 | ||
@@ -125,7 +125,7 @@ void mga_driver_irq_preinstall(drm_device_t * dev) | |||
125 | MGA_WRITE(MGA_ICLEAR, ~0); | 125 | MGA_WRITE(MGA_ICLEAR, ~0); |
126 | } | 126 | } |
127 | 127 | ||
128 | void mga_driver_irq_postinstall(drm_device_t * dev) | 128 | void mga_driver_irq_postinstall(struct drm_device * dev) |
129 | { | 129 | { |
130 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 130 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
131 | 131 | ||
@@ -135,7 +135,7 @@ void mga_driver_irq_postinstall(drm_device_t * dev) | |||
135 | MGA_WRITE(MGA_IEN, MGA_VLINEIEN | MGA_SOFTRAPEN); | 135 | MGA_WRITE(MGA_IEN, MGA_VLINEIEN | MGA_SOFTRAPEN); |
136 | } | 136 | } |
137 | 137 | ||
138 | void mga_driver_irq_uninstall(drm_device_t * dev) | 138 | void mga_driver_irq_uninstall(struct drm_device * dev) |
139 | { | 139 | { |
140 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; | 140 | drm_mga_private_t *dev_priv = (drm_mga_private_t *) dev->dev_private; |
141 | if (!dev_priv) | 141 | if (!dev_priv) |
diff --git a/drivers/char/drm/mga_state.c b/drivers/char/drm/mga_state.c index 2837e669183a..d448b0aef33c 100644 --- a/drivers/char/drm/mga_state.c +++ b/drivers/char/drm/mga_state.c | |||
@@ -42,7 +42,7 @@ | |||
42 | */ | 42 | */ |
43 | 43 | ||
44 | static void mga_emit_clip_rect(drm_mga_private_t * dev_priv, | 44 | static void mga_emit_clip_rect(drm_mga_private_t * dev_priv, |
45 | drm_clip_rect_t * box) | 45 | struct drm_clip_rect * box) |
46 | { | 46 | { |
47 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; | 47 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; |
48 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; | 48 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; |
@@ -480,12 +480,12 @@ static int mga_verify_blit(drm_mga_private_t * dev_priv, | |||
480 | * | 480 | * |
481 | */ | 481 | */ |
482 | 482 | ||
483 | static void mga_dma_dispatch_clear(drm_device_t * dev, drm_mga_clear_t * clear) | 483 | static void mga_dma_dispatch_clear(struct drm_device * dev, drm_mga_clear_t * clear) |
484 | { | 484 | { |
485 | drm_mga_private_t *dev_priv = dev->dev_private; | 485 | drm_mga_private_t *dev_priv = dev->dev_private; |
486 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; | 486 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; |
487 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; | 487 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; |
488 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 488 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
489 | int nbox = sarea_priv->nbox; | 489 | int nbox = sarea_priv->nbox; |
490 | int i; | 490 | int i; |
491 | DMA_LOCALS; | 491 | DMA_LOCALS; |
@@ -500,7 +500,7 @@ static void mga_dma_dispatch_clear(drm_device_t * dev, drm_mga_clear_t * clear) | |||
500 | ADVANCE_DMA(); | 500 | ADVANCE_DMA(); |
501 | 501 | ||
502 | for (i = 0; i < nbox; i++) { | 502 | for (i = 0; i < nbox; i++) { |
503 | drm_clip_rect_t *box = &pbox[i]; | 503 | struct drm_clip_rect *box = &pbox[i]; |
504 | u32 height = box->y2 - box->y1; | 504 | u32 height = box->y2 - box->y1; |
505 | 505 | ||
506 | DRM_DEBUG(" from=%d,%d to=%d,%d\n", | 506 | DRM_DEBUG(" from=%d,%d to=%d,%d\n", |
@@ -568,12 +568,12 @@ static void mga_dma_dispatch_clear(drm_device_t * dev, drm_mga_clear_t * clear) | |||
568 | FLUSH_DMA(); | 568 | FLUSH_DMA(); |
569 | } | 569 | } |
570 | 570 | ||
571 | static void mga_dma_dispatch_swap(drm_device_t * dev) | 571 | static void mga_dma_dispatch_swap(struct drm_device * dev) |
572 | { | 572 | { |
573 | drm_mga_private_t *dev_priv = dev->dev_private; | 573 | drm_mga_private_t *dev_priv = dev->dev_private; |
574 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; | 574 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; |
575 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; | 575 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; |
576 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 576 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
577 | int nbox = sarea_priv->nbox; | 577 | int nbox = sarea_priv->nbox; |
578 | int i; | 578 | int i; |
579 | DMA_LOCALS; | 579 | DMA_LOCALS; |
@@ -598,7 +598,7 @@ static void mga_dma_dispatch_swap(drm_device_t * dev) | |||
598 | MGA_PLNWT, 0xffffffff, MGA_DWGCTL, MGA_DWGCTL_COPY); | 598 | MGA_PLNWT, 0xffffffff, MGA_DWGCTL, MGA_DWGCTL_COPY); |
599 | 599 | ||
600 | for (i = 0; i < nbox; i++) { | 600 | for (i = 0; i < nbox; i++) { |
601 | drm_clip_rect_t *box = &pbox[i]; | 601 | struct drm_clip_rect *box = &pbox[i]; |
602 | u32 height = box->y2 - box->y1; | 602 | u32 height = box->y2 - box->y1; |
603 | u32 start = box->y1 * dev_priv->front_pitch; | 603 | u32 start = box->y1 * dev_priv->front_pitch; |
604 | 604 | ||
@@ -622,7 +622,7 @@ static void mga_dma_dispatch_swap(drm_device_t * dev) | |||
622 | DRM_DEBUG("%s... done.\n", __FUNCTION__); | 622 | DRM_DEBUG("%s... done.\n", __FUNCTION__); |
623 | } | 623 | } |
624 | 624 | ||
625 | static void mga_dma_dispatch_vertex(drm_device_t * dev, drm_buf_t * buf) | 625 | static void mga_dma_dispatch_vertex(struct drm_device * dev, struct drm_buf * buf) |
626 | { | 626 | { |
627 | drm_mga_private_t *dev_priv = dev->dev_private; | 627 | drm_mga_private_t *dev_priv = dev->dev_private; |
628 | drm_mga_buf_priv_t *buf_priv = buf->dev_private; | 628 | drm_mga_buf_priv_t *buf_priv = buf->dev_private; |
@@ -669,7 +669,7 @@ static void mga_dma_dispatch_vertex(drm_device_t * dev, drm_buf_t * buf) | |||
669 | FLUSH_DMA(); | 669 | FLUSH_DMA(); |
670 | } | 670 | } |
671 | 671 | ||
672 | static void mga_dma_dispatch_indices(drm_device_t * dev, drm_buf_t * buf, | 672 | static void mga_dma_dispatch_indices(struct drm_device * dev, struct drm_buf * buf, |
673 | unsigned int start, unsigned int end) | 673 | unsigned int start, unsigned int end) |
674 | { | 674 | { |
675 | drm_mga_private_t *dev_priv = dev->dev_private; | 675 | drm_mga_private_t *dev_priv = dev->dev_private; |
@@ -718,7 +718,7 @@ static void mga_dma_dispatch_indices(drm_device_t * dev, drm_buf_t * buf, | |||
718 | /* This copies a 64 byte aligned agp region to the frambuffer with a | 718 | /* This copies a 64 byte aligned agp region to the frambuffer with a |
719 | * standard blit, the ioctl needs to do checking. | 719 | * standard blit, the ioctl needs to do checking. |
720 | */ | 720 | */ |
721 | static void mga_dma_dispatch_iload(drm_device_t * dev, drm_buf_t * buf, | 721 | static void mga_dma_dispatch_iload(struct drm_device * dev, struct drm_buf * buf, |
722 | unsigned int dstorg, unsigned int length) | 722 | unsigned int dstorg, unsigned int length) |
723 | { | 723 | { |
724 | drm_mga_private_t *dev_priv = dev->dev_private; | 724 | drm_mga_private_t *dev_priv = dev->dev_private; |
@@ -766,12 +766,12 @@ static void mga_dma_dispatch_iload(drm_device_t * dev, drm_buf_t * buf, | |||
766 | FLUSH_DMA(); | 766 | FLUSH_DMA(); |
767 | } | 767 | } |
768 | 768 | ||
769 | static void mga_dma_dispatch_blit(drm_device_t * dev, drm_mga_blit_t * blit) | 769 | static void mga_dma_dispatch_blit(struct drm_device * dev, drm_mga_blit_t * blit) |
770 | { | 770 | { |
771 | drm_mga_private_t *dev_priv = dev->dev_private; | 771 | drm_mga_private_t *dev_priv = dev->dev_private; |
772 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; | 772 | drm_mga_sarea_t *sarea_priv = dev_priv->sarea_priv; |
773 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; | 773 | drm_mga_context_regs_t *ctx = &sarea_priv->context_state; |
774 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 774 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
775 | int nbox = sarea_priv->nbox; | 775 | int nbox = sarea_priv->nbox; |
776 | u32 scandir = 0, i; | 776 | u32 scandir = 0, i; |
777 | DMA_LOCALS; | 777 | DMA_LOCALS; |
@@ -880,8 +880,8 @@ static int mga_dma_vertex(DRM_IOCTL_ARGS) | |||
880 | { | 880 | { |
881 | DRM_DEVICE; | 881 | DRM_DEVICE; |
882 | drm_mga_private_t *dev_priv = dev->dev_private; | 882 | drm_mga_private_t *dev_priv = dev->dev_private; |
883 | drm_device_dma_t *dma = dev->dma; | 883 | struct drm_device_dma *dma = dev->dma; |
884 | drm_buf_t *buf; | 884 | struct drm_buf *buf; |
885 | drm_mga_buf_priv_t *buf_priv; | 885 | drm_mga_buf_priv_t *buf_priv; |
886 | drm_mga_vertex_t vertex; | 886 | drm_mga_vertex_t vertex; |
887 | 887 | ||
@@ -920,8 +920,8 @@ static int mga_dma_indices(DRM_IOCTL_ARGS) | |||
920 | { | 920 | { |
921 | DRM_DEVICE; | 921 | DRM_DEVICE; |
922 | drm_mga_private_t *dev_priv = dev->dev_private; | 922 | drm_mga_private_t *dev_priv = dev->dev_private; |
923 | drm_device_dma_t *dma = dev->dma; | 923 | struct drm_device_dma *dma = dev->dma; |
924 | drm_buf_t *buf; | 924 | struct drm_buf *buf; |
925 | drm_mga_buf_priv_t *buf_priv; | 925 | drm_mga_buf_priv_t *buf_priv; |
926 | drm_mga_indices_t indices; | 926 | drm_mga_indices_t indices; |
927 | 927 | ||
@@ -959,9 +959,9 @@ static int mga_dma_indices(DRM_IOCTL_ARGS) | |||
959 | static int mga_dma_iload(DRM_IOCTL_ARGS) | 959 | static int mga_dma_iload(DRM_IOCTL_ARGS) |
960 | { | 960 | { |
961 | DRM_DEVICE; | 961 | DRM_DEVICE; |
962 | drm_device_dma_t *dma = dev->dma; | 962 | struct drm_device_dma *dma = dev->dma; |
963 | drm_mga_private_t *dev_priv = dev->dev_private; | 963 | drm_mga_private_t *dev_priv = dev->dev_private; |
964 | drm_buf_t *buf; | 964 | struct drm_buf *buf; |
965 | drm_mga_buf_priv_t *buf_priv; | 965 | drm_mga_buf_priv_t *buf_priv; |
966 | drm_mga_iload_t iload; | 966 | drm_mga_iload_t iload; |
967 | DRM_DEBUG("\n"); | 967 | DRM_DEBUG("\n"); |
diff --git a/drivers/char/drm/r128_cce.c b/drivers/char/drm/r128_cce.c index 1014602c43a7..b163ed09bd81 100644 --- a/drivers/char/drm/r128_cce.c +++ b/drivers/char/drm/r128_cce.c | |||
@@ -81,7 +81,7 @@ static u32 r128_cce_microcode[] = { | |||
81 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 | 81 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 |
82 | }; | 82 | }; |
83 | 83 | ||
84 | static int R128_READ_PLL(drm_device_t * dev, int addr) | 84 | static int R128_READ_PLL(struct drm_device * dev, int addr) |
85 | { | 85 | { |
86 | drm_r128_private_t *dev_priv = dev->dev_private; | 86 | drm_r128_private_t *dev_priv = dev->dev_private; |
87 | 87 | ||
@@ -271,7 +271,7 @@ static void r128_do_cce_stop(drm_r128_private_t * dev_priv) | |||
271 | 271 | ||
272 | /* Reset the engine. This will stop the CCE if it is running. | 272 | /* Reset the engine. This will stop the CCE if it is running. |
273 | */ | 273 | */ |
274 | static int r128_do_engine_reset(drm_device_t * dev) | 274 | static int r128_do_engine_reset(struct drm_device * dev) |
275 | { | 275 | { |
276 | drm_r128_private_t *dev_priv = dev->dev_private; | 276 | drm_r128_private_t *dev_priv = dev->dev_private; |
277 | u32 clock_cntl_index, mclk_cntl, gen_reset_cntl; | 277 | u32 clock_cntl_index, mclk_cntl, gen_reset_cntl; |
@@ -308,7 +308,7 @@ static int r128_do_engine_reset(drm_device_t * dev) | |||
308 | return 0; | 308 | return 0; |
309 | } | 309 | } |
310 | 310 | ||
311 | static void r128_cce_init_ring_buffer(drm_device_t * dev, | 311 | static void r128_cce_init_ring_buffer(struct drm_device * dev, |
312 | drm_r128_private_t * dev_priv) | 312 | drm_r128_private_t * dev_priv) |
313 | { | 313 | { |
314 | u32 ring_start; | 314 | u32 ring_start; |
@@ -347,7 +347,7 @@ static void r128_cce_init_ring_buffer(drm_device_t * dev, | |||
347 | R128_WRITE(R128_BUS_CNTL, tmp); | 347 | R128_WRITE(R128_BUS_CNTL, tmp); |
348 | } | 348 | } |
349 | 349 | ||
350 | static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init) | 350 | static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init) |
351 | { | 351 | { |
352 | drm_r128_private_t *dev_priv; | 352 | drm_r128_private_t *dev_priv; |
353 | 353 | ||
@@ -456,8 +456,7 @@ static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init) | |||
456 | dev_priv->span_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | | 456 | dev_priv->span_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) | |
457 | (dev_priv->span_offset >> 5)); | 457 | (dev_priv->span_offset >> 5)); |
458 | 458 | ||
459 | DRM_GETSAREA(); | 459 | dev_priv->sarea = drm_getsarea(dev); |
460 | |||
461 | if (!dev_priv->sarea) { | 460 | if (!dev_priv->sarea) { |
462 | DRM_ERROR("could not find sarea!\n"); | 461 | DRM_ERROR("could not find sarea!\n"); |
463 | dev->dev_private = (void *)dev_priv; | 462 | dev->dev_private = (void *)dev_priv; |
@@ -585,7 +584,7 @@ static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init) | |||
585 | return 0; | 584 | return 0; |
586 | } | 585 | } |
587 | 586 | ||
588 | int r128_do_cleanup_cce(drm_device_t * dev) | 587 | int r128_do_cleanup_cce(struct drm_device * dev) |
589 | { | 588 | { |
590 | 589 | ||
591 | /* Make sure interrupts are disabled here because the uninstall ioctl | 590 | /* Make sure interrupts are disabled here because the uninstall ioctl |
@@ -770,11 +769,11 @@ int r128_fullscreen(DRM_IOCTL_ARGS) | |||
770 | #define R128_BUFFER_FREE 0 | 769 | #define R128_BUFFER_FREE 0 |
771 | 770 | ||
772 | #if 0 | 771 | #if 0 |
773 | static int r128_freelist_init(drm_device_t * dev) | 772 | static int r128_freelist_init(struct drm_device * dev) |
774 | { | 773 | { |
775 | drm_device_dma_t *dma = dev->dma; | 774 | struct drm_device_dma *dma = dev->dma; |
776 | drm_r128_private_t *dev_priv = dev->dev_private; | 775 | drm_r128_private_t *dev_priv = dev->dev_private; |
777 | drm_buf_t *buf; | 776 | struct drm_buf *buf; |
778 | drm_r128_buf_priv_t *buf_priv; | 777 | drm_r128_buf_priv_t *buf_priv; |
779 | drm_r128_freelist_t *entry; | 778 | drm_r128_freelist_t *entry; |
780 | int i; | 779 | int i; |
@@ -816,12 +815,12 @@ static int r128_freelist_init(drm_device_t * dev) | |||
816 | } | 815 | } |
817 | #endif | 816 | #endif |
818 | 817 | ||
819 | static drm_buf_t *r128_freelist_get(drm_device_t * dev) | 818 | static struct drm_buf *r128_freelist_get(struct drm_device * dev) |
820 | { | 819 | { |
821 | drm_device_dma_t *dma = dev->dma; | 820 | struct drm_device_dma *dma = dev->dma; |
822 | drm_r128_private_t *dev_priv = dev->dev_private; | 821 | drm_r128_private_t *dev_priv = dev->dev_private; |
823 | drm_r128_buf_priv_t *buf_priv; | 822 | drm_r128_buf_priv_t *buf_priv; |
824 | drm_buf_t *buf; | 823 | struct drm_buf *buf; |
825 | int i, t; | 824 | int i, t; |
826 | 825 | ||
827 | /* FIXME: Optimize -- use freelist code */ | 826 | /* FIXME: Optimize -- use freelist code */ |
@@ -854,13 +853,13 @@ static drm_buf_t *r128_freelist_get(drm_device_t * dev) | |||
854 | return NULL; | 853 | return NULL; |
855 | } | 854 | } |
856 | 855 | ||
857 | void r128_freelist_reset(drm_device_t * dev) | 856 | void r128_freelist_reset(struct drm_device * dev) |
858 | { | 857 | { |
859 | drm_device_dma_t *dma = dev->dma; | 858 | struct drm_device_dma *dma = dev->dma; |
860 | int i; | 859 | int i; |
861 | 860 | ||
862 | for (i = 0; i < dma->buf_count; i++) { | 861 | for (i = 0; i < dma->buf_count; i++) { |
863 | drm_buf_t *buf = dma->buflist[i]; | 862 | struct drm_buf *buf = dma->buflist[i]; |
864 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; | 863 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; |
865 | buf_priv->age = 0; | 864 | buf_priv->age = 0; |
866 | } | 865 | } |
@@ -887,10 +886,10 @@ int r128_wait_ring(drm_r128_private_t * dev_priv, int n) | |||
887 | return DRM_ERR(EBUSY); | 886 | return DRM_ERR(EBUSY); |
888 | } | 887 | } |
889 | 888 | ||
890 | static int r128_cce_get_buffers(DRMFILE filp, drm_device_t * dev, drm_dma_t * d) | 889 | static int r128_cce_get_buffers(DRMFILE filp, struct drm_device * dev, struct drm_dma * d) |
891 | { | 890 | { |
892 | int i; | 891 | int i; |
893 | drm_buf_t *buf; | 892 | struct drm_buf *buf; |
894 | 893 | ||
895 | for (i = d->granted_count; i < d->request_count; i++) { | 894 | for (i = d->granted_count; i < d->request_count; i++) { |
896 | buf = r128_freelist_get(dev); | 895 | buf = r128_freelist_get(dev); |
@@ -914,10 +913,10 @@ static int r128_cce_get_buffers(DRMFILE filp, drm_device_t * dev, drm_dma_t * d) | |||
914 | int r128_cce_buffers(DRM_IOCTL_ARGS) | 913 | int r128_cce_buffers(DRM_IOCTL_ARGS) |
915 | { | 914 | { |
916 | DRM_DEVICE; | 915 | DRM_DEVICE; |
917 | drm_device_dma_t *dma = dev->dma; | 916 | struct drm_device_dma *dma = dev->dma; |
918 | int ret = 0; | 917 | int ret = 0; |
919 | drm_dma_t __user *argp = (void __user *)data; | 918 | struct drm_dma __user *argp = (void __user *)data; |
920 | drm_dma_t d; | 919 | struct drm_dma d; |
921 | 920 | ||
922 | LOCK_TEST_WITH_RETURN(dev, filp); | 921 | LOCK_TEST_WITH_RETURN(dev, filp); |
923 | 922 | ||
diff --git a/drivers/char/drm/r128_drm.h b/drivers/char/drm/r128_drm.h index 6e8af313f2b4..e94a39c6e327 100644 --- a/drivers/char/drm/r128_drm.h +++ b/drivers/char/drm/r128_drm.h | |||
@@ -153,7 +153,7 @@ typedef struct drm_r128_sarea { | |||
153 | 153 | ||
154 | /* The current cliprects, or a subset thereof. | 154 | /* The current cliprects, or a subset thereof. |
155 | */ | 155 | */ |
156 | drm_clip_rect_t boxes[R128_NR_SAREA_CLIPRECTS]; | 156 | struct drm_clip_rect boxes[R128_NR_SAREA_CLIPRECTS]; |
157 | unsigned int nbox; | 157 | unsigned int nbox; |
158 | 158 | ||
159 | /* Counters for client-side throttling of rendering clients. | 159 | /* Counters for client-side throttling of rendering clients. |
@@ -161,7 +161,7 @@ typedef struct drm_r128_sarea { | |||
161 | unsigned int last_frame; | 161 | unsigned int last_frame; |
162 | unsigned int last_dispatch; | 162 | unsigned int last_dispatch; |
163 | 163 | ||
164 | drm_tex_region_t tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1]; | 164 | struct drm_tex_region tex_list[R128_NR_TEX_HEAPS][R128_NR_TEX_REGIONS + 1]; |
165 | unsigned int tex_age[R128_NR_TEX_HEAPS]; | 165 | unsigned int tex_age[R128_NR_TEX_HEAPS]; |
166 | int ctx_owner; | 166 | int ctx_owner; |
167 | int pfAllowPageFlip; /* number of 3d windows (0,1,2 or more) */ | 167 | int pfAllowPageFlip; /* number of 3d windows (0,1,2 or more) */ |
diff --git a/drivers/char/drm/r128_drv.h b/drivers/char/drm/r128_drv.h index 9086835686dc..72249fb2fd1c 100644 --- a/drivers/char/drm/r128_drv.h +++ b/drivers/char/drm/r128_drv.h | |||
@@ -57,7 +57,7 @@ | |||
57 | 57 | ||
58 | typedef struct drm_r128_freelist { | 58 | typedef struct drm_r128_freelist { |
59 | unsigned int age; | 59 | unsigned int age; |
60 | drm_buf_t *buf; | 60 | struct drm_buf *buf; |
61 | struct drm_r128_freelist *next; | 61 | struct drm_r128_freelist *next; |
62 | struct drm_r128_freelist *prev; | 62 | struct drm_r128_freelist *prev; |
63 | } drm_r128_freelist_t; | 63 | } drm_r128_freelist_t; |
@@ -118,7 +118,7 @@ typedef struct drm_r128_private { | |||
118 | drm_local_map_t *cce_ring; | 118 | drm_local_map_t *cce_ring; |
119 | drm_local_map_t *ring_rptr; | 119 | drm_local_map_t *ring_rptr; |
120 | drm_local_map_t *agp_textures; | 120 | drm_local_map_t *agp_textures; |
121 | drm_ati_pcigart_info gart_info; | 121 | struct drm_ati_pcigart_info gart_info; |
122 | } drm_r128_private_t; | 122 | } drm_r128_private_t; |
123 | 123 | ||
124 | typedef struct drm_r128_buf_priv { | 124 | typedef struct drm_r128_buf_priv { |
@@ -142,21 +142,21 @@ extern int r128_engine_reset(DRM_IOCTL_ARGS); | |||
142 | extern int r128_fullscreen(DRM_IOCTL_ARGS); | 142 | extern int r128_fullscreen(DRM_IOCTL_ARGS); |
143 | extern int r128_cce_buffers(DRM_IOCTL_ARGS); | 143 | extern int r128_cce_buffers(DRM_IOCTL_ARGS); |
144 | 144 | ||
145 | extern void r128_freelist_reset(drm_device_t * dev); | 145 | extern void r128_freelist_reset(struct drm_device * dev); |
146 | 146 | ||
147 | extern int r128_wait_ring(drm_r128_private_t * dev_priv, int n); | 147 | extern int r128_wait_ring(drm_r128_private_t * dev_priv, int n); |
148 | 148 | ||
149 | extern int r128_do_cce_idle(drm_r128_private_t * dev_priv); | 149 | extern int r128_do_cce_idle(drm_r128_private_t * dev_priv); |
150 | extern int r128_do_cleanup_cce(drm_device_t * dev); | 150 | extern int r128_do_cleanup_cce(struct drm_device * dev); |
151 | 151 | ||
152 | extern int r128_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence); | 152 | extern int r128_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence); |
153 | 153 | ||
154 | extern irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS); | 154 | extern irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS); |
155 | extern void r128_driver_irq_preinstall(drm_device_t * dev); | 155 | extern void r128_driver_irq_preinstall(struct drm_device * dev); |
156 | extern void r128_driver_irq_postinstall(drm_device_t * dev); | 156 | extern void r128_driver_irq_postinstall(struct drm_device * dev); |
157 | extern void r128_driver_irq_uninstall(drm_device_t * dev); | 157 | extern void r128_driver_irq_uninstall(struct drm_device * dev); |
158 | extern void r128_driver_lastclose(drm_device_t * dev); | 158 | extern void r128_driver_lastclose(struct drm_device * dev); |
159 | extern void r128_driver_preclose(drm_device_t * dev, DRMFILE filp); | 159 | extern void r128_driver_preclose(struct drm_device * dev, DRMFILE filp); |
160 | 160 | ||
161 | extern long r128_compat_ioctl(struct file *filp, unsigned int cmd, | 161 | extern long r128_compat_ioctl(struct file *filp, unsigned int cmd, |
162 | unsigned long arg); | 162 | unsigned long arg); |
diff --git a/drivers/char/drm/r128_irq.c b/drivers/char/drm/r128_irq.c index 87f8ca2b0685..c76fdca7662d 100644 --- a/drivers/char/drm/r128_irq.c +++ b/drivers/char/drm/r128_irq.c | |||
@@ -37,7 +37,7 @@ | |||
37 | 37 | ||
38 | irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS) | 38 | irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS) |
39 | { | 39 | { |
40 | drm_device_t *dev = (drm_device_t *) arg; | 40 | struct drm_device *dev = (struct drm_device *) arg; |
41 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; | 41 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; |
42 | int status; | 42 | int status; |
43 | 43 | ||
@@ -54,7 +54,7 @@ irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS) | |||
54 | return IRQ_NONE; | 54 | return IRQ_NONE; |
55 | } | 55 | } |
56 | 56 | ||
57 | int r128_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | 57 | int r128_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence) |
58 | { | 58 | { |
59 | unsigned int cur_vblank; | 59 | unsigned int cur_vblank; |
60 | int ret = 0; | 60 | int ret = 0; |
@@ -72,7 +72,7 @@ int r128_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | |||
72 | return ret; | 72 | return ret; |
73 | } | 73 | } |
74 | 74 | ||
75 | void r128_driver_irq_preinstall(drm_device_t * dev) | 75 | void r128_driver_irq_preinstall(struct drm_device * dev) |
76 | { | 76 | { |
77 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; | 77 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; |
78 | 78 | ||
@@ -82,7 +82,7 @@ void r128_driver_irq_preinstall(drm_device_t * dev) | |||
82 | R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK); | 82 | R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK); |
83 | } | 83 | } |
84 | 84 | ||
85 | void r128_driver_irq_postinstall(drm_device_t * dev) | 85 | void r128_driver_irq_postinstall(struct drm_device * dev) |
86 | { | 86 | { |
87 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; | 87 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; |
88 | 88 | ||
@@ -90,7 +90,7 @@ void r128_driver_irq_postinstall(drm_device_t * dev) | |||
90 | R128_WRITE(R128_GEN_INT_CNTL, R128_CRTC_VBLANK_INT_EN); | 90 | R128_WRITE(R128_GEN_INT_CNTL, R128_CRTC_VBLANK_INT_EN); |
91 | } | 91 | } |
92 | 92 | ||
93 | void r128_driver_irq_uninstall(drm_device_t * dev) | 93 | void r128_driver_irq_uninstall(struct drm_device * dev) |
94 | { | 94 | { |
95 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; | 95 | drm_r128_private_t *dev_priv = (drm_r128_private_t *) dev->dev_private; |
96 | if (!dev_priv) | 96 | if (!dev_priv) |
diff --git a/drivers/char/drm/r128_state.c b/drivers/char/drm/r128_state.c index 17b11e7d8f32..7b334fb7d649 100644 --- a/drivers/char/drm/r128_state.c +++ b/drivers/char/drm/r128_state.c | |||
@@ -38,7 +38,7 @@ | |||
38 | */ | 38 | */ |
39 | 39 | ||
40 | static void r128_emit_clip_rects(drm_r128_private_t * dev_priv, | 40 | static void r128_emit_clip_rects(drm_r128_private_t * dev_priv, |
41 | drm_clip_rect_t * boxes, int count) | 41 | struct drm_clip_rect * boxes, int count) |
42 | { | 42 | { |
43 | u32 aux_sc_cntl = 0x00000000; | 43 | u32 aux_sc_cntl = 0x00000000; |
44 | RING_LOCALS; | 44 | RING_LOCALS; |
@@ -352,13 +352,13 @@ static void r128_print_dirty(const char *msg, unsigned int flags) | |||
352 | (flags & R128_REQUIRE_QUIESCENCE) ? "quiescence, " : ""); | 352 | (flags & R128_REQUIRE_QUIESCENCE) ? "quiescence, " : ""); |
353 | } | 353 | } |
354 | 354 | ||
355 | static void r128_cce_dispatch_clear(drm_device_t * dev, | 355 | static void r128_cce_dispatch_clear(struct drm_device * dev, |
356 | drm_r128_clear_t * clear) | 356 | drm_r128_clear_t * clear) |
357 | { | 357 | { |
358 | drm_r128_private_t *dev_priv = dev->dev_private; | 358 | drm_r128_private_t *dev_priv = dev->dev_private; |
359 | drm_r128_sarea_t *sarea_priv = dev_priv->sarea_priv; | 359 | drm_r128_sarea_t *sarea_priv = dev_priv->sarea_priv; |
360 | int nbox = sarea_priv->nbox; | 360 | int nbox = sarea_priv->nbox; |
361 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 361 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
362 | unsigned int flags = clear->flags; | 362 | unsigned int flags = clear->flags; |
363 | int i; | 363 | int i; |
364 | RING_LOCALS; | 364 | RING_LOCALS; |
@@ -458,12 +458,12 @@ static void r128_cce_dispatch_clear(drm_device_t * dev, | |||
458 | } | 458 | } |
459 | } | 459 | } |
460 | 460 | ||
461 | static void r128_cce_dispatch_swap(drm_device_t * dev) | 461 | static void r128_cce_dispatch_swap(struct drm_device * dev) |
462 | { | 462 | { |
463 | drm_r128_private_t *dev_priv = dev->dev_private; | 463 | drm_r128_private_t *dev_priv = dev->dev_private; |
464 | drm_r128_sarea_t *sarea_priv = dev_priv->sarea_priv; | 464 | drm_r128_sarea_t *sarea_priv = dev_priv->sarea_priv; |
465 | int nbox = sarea_priv->nbox; | 465 | int nbox = sarea_priv->nbox; |
466 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 466 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
467 | int i; | 467 | int i; |
468 | RING_LOCALS; | 468 | RING_LOCALS; |
469 | DRM_DEBUG("%s\n", __FUNCTION__); | 469 | DRM_DEBUG("%s\n", __FUNCTION__); |
@@ -524,7 +524,7 @@ static void r128_cce_dispatch_swap(drm_device_t * dev) | |||
524 | ADVANCE_RING(); | 524 | ADVANCE_RING(); |
525 | } | 525 | } |
526 | 526 | ||
527 | static void r128_cce_dispatch_flip(drm_device_t * dev) | 527 | static void r128_cce_dispatch_flip(struct drm_device * dev) |
528 | { | 528 | { |
529 | drm_r128_private_t *dev_priv = dev->dev_private; | 529 | drm_r128_private_t *dev_priv = dev->dev_private; |
530 | RING_LOCALS; | 530 | RING_LOCALS; |
@@ -567,7 +567,7 @@ static void r128_cce_dispatch_flip(drm_device_t * dev) | |||
567 | ADVANCE_RING(); | 567 | ADVANCE_RING(); |
568 | } | 568 | } |
569 | 569 | ||
570 | static void r128_cce_dispatch_vertex(drm_device_t * dev, drm_buf_t * buf) | 570 | static void r128_cce_dispatch_vertex(struct drm_device * dev, struct drm_buf * buf) |
571 | { | 571 | { |
572 | drm_r128_private_t *dev_priv = dev->dev_private; | 572 | drm_r128_private_t *dev_priv = dev->dev_private; |
573 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; | 573 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; |
@@ -637,8 +637,8 @@ static void r128_cce_dispatch_vertex(drm_device_t * dev, drm_buf_t * buf) | |||
637 | sarea_priv->nbox = 0; | 637 | sarea_priv->nbox = 0; |
638 | } | 638 | } |
639 | 639 | ||
640 | static void r128_cce_dispatch_indirect(drm_device_t * dev, | 640 | static void r128_cce_dispatch_indirect(struct drm_device * dev, |
641 | drm_buf_t * buf, int start, int end) | 641 | struct drm_buf * buf, int start, int end) |
642 | { | 642 | { |
643 | drm_r128_private_t *dev_priv = dev->dev_private; | 643 | drm_r128_private_t *dev_priv = dev->dev_private; |
644 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; | 644 | drm_r128_buf_priv_t *buf_priv = buf->dev_private; |
@@ -692,8 +692,8 @@ static void r128_cce_dispatch_indirect(drm_device_t * dev, | |||
692 | dev_priv->sarea_priv->last_dispatch++; | 692 | dev_priv->sarea_priv->last_dispatch++; |
693 | } | 693 | } |
694 | 694 | ||
695 | static void r128_cce_dispatch_indices(drm_device_t * dev, | 695 | static void r128_cce_dispatch_indices(struct drm_device * dev, |
696 | drm_buf_t * buf, | 696 | struct drm_buf * buf, |
697 | int start, int end, int count) | 697 | int start, int end, int count) |
698 | { | 698 | { |
699 | drm_r128_private_t *dev_priv = dev->dev_private; | 699 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -777,11 +777,11 @@ static void r128_cce_dispatch_indices(drm_device_t * dev, | |||
777 | } | 777 | } |
778 | 778 | ||
779 | static int r128_cce_dispatch_blit(DRMFILE filp, | 779 | static int r128_cce_dispatch_blit(DRMFILE filp, |
780 | drm_device_t * dev, drm_r128_blit_t * blit) | 780 | struct drm_device * dev, drm_r128_blit_t * blit) |
781 | { | 781 | { |
782 | drm_r128_private_t *dev_priv = dev->dev_private; | 782 | drm_r128_private_t *dev_priv = dev->dev_private; |
783 | drm_device_dma_t *dma = dev->dma; | 783 | struct drm_device_dma *dma = dev->dma; |
784 | drm_buf_t *buf; | 784 | struct drm_buf *buf; |
785 | drm_r128_buf_priv_t *buf_priv; | 785 | drm_r128_buf_priv_t *buf_priv; |
786 | u32 *data; | 786 | u32 *data; |
787 | int dword_shift, dwords; | 787 | int dword_shift, dwords; |
@@ -887,7 +887,7 @@ static int r128_cce_dispatch_blit(DRMFILE filp, | |||
887 | * have hardware stencil support. | 887 | * have hardware stencil support. |
888 | */ | 888 | */ |
889 | 889 | ||
890 | static int r128_cce_dispatch_write_span(drm_device_t * dev, | 890 | static int r128_cce_dispatch_write_span(struct drm_device * dev, |
891 | drm_r128_depth_t * depth) | 891 | drm_r128_depth_t * depth) |
892 | { | 892 | { |
893 | drm_r128_private_t *dev_priv = dev->dev_private; | 893 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -983,7 +983,7 @@ static int r128_cce_dispatch_write_span(drm_device_t * dev, | |||
983 | return 0; | 983 | return 0; |
984 | } | 984 | } |
985 | 985 | ||
986 | static int r128_cce_dispatch_write_pixels(drm_device_t * dev, | 986 | static int r128_cce_dispatch_write_pixels(struct drm_device * dev, |
987 | drm_r128_depth_t * depth) | 987 | drm_r128_depth_t * depth) |
988 | { | 988 | { |
989 | drm_r128_private_t *dev_priv = dev->dev_private; | 989 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -1105,7 +1105,7 @@ static int r128_cce_dispatch_write_pixels(drm_device_t * dev, | |||
1105 | return 0; | 1105 | return 0; |
1106 | } | 1106 | } |
1107 | 1107 | ||
1108 | static int r128_cce_dispatch_read_span(drm_device_t * dev, | 1108 | static int r128_cce_dispatch_read_span(struct drm_device * dev, |
1109 | drm_r128_depth_t * depth) | 1109 | drm_r128_depth_t * depth) |
1110 | { | 1110 | { |
1111 | drm_r128_private_t *dev_priv = dev->dev_private; | 1111 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -1148,7 +1148,7 @@ static int r128_cce_dispatch_read_span(drm_device_t * dev, | |||
1148 | return 0; | 1148 | return 0; |
1149 | } | 1149 | } |
1150 | 1150 | ||
1151 | static int r128_cce_dispatch_read_pixels(drm_device_t * dev, | 1151 | static int r128_cce_dispatch_read_pixels(struct drm_device * dev, |
1152 | drm_r128_depth_t * depth) | 1152 | drm_r128_depth_t * depth) |
1153 | { | 1153 | { |
1154 | drm_r128_private_t *dev_priv = dev->dev_private; | 1154 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -1220,7 +1220,7 @@ static int r128_cce_dispatch_read_pixels(drm_device_t * dev, | |||
1220 | * Polygon stipple | 1220 | * Polygon stipple |
1221 | */ | 1221 | */ |
1222 | 1222 | ||
1223 | static void r128_cce_dispatch_stipple(drm_device_t * dev, u32 * stipple) | 1223 | static void r128_cce_dispatch_stipple(struct drm_device * dev, u32 * stipple) |
1224 | { | 1224 | { |
1225 | drm_r128_private_t *dev_priv = dev->dev_private; | 1225 | drm_r128_private_t *dev_priv = dev->dev_private; |
1226 | int i; | 1226 | int i; |
@@ -1269,7 +1269,7 @@ static int r128_cce_clear(DRM_IOCTL_ARGS) | |||
1269 | return 0; | 1269 | return 0; |
1270 | } | 1270 | } |
1271 | 1271 | ||
1272 | static int r128_do_init_pageflip(drm_device_t * dev) | 1272 | static int r128_do_init_pageflip(struct drm_device * dev) |
1273 | { | 1273 | { |
1274 | drm_r128_private_t *dev_priv = dev->dev_private; | 1274 | drm_r128_private_t *dev_priv = dev->dev_private; |
1275 | DRM_DEBUG("\n"); | 1275 | DRM_DEBUG("\n"); |
@@ -1288,7 +1288,7 @@ static int r128_do_init_pageflip(drm_device_t * dev) | |||
1288 | return 0; | 1288 | return 0; |
1289 | } | 1289 | } |
1290 | 1290 | ||
1291 | static int r128_do_cleanup_pageflip(drm_device_t * dev) | 1291 | static int r128_do_cleanup_pageflip(struct drm_device * dev) |
1292 | { | 1292 | { |
1293 | drm_r128_private_t *dev_priv = dev->dev_private; | 1293 | drm_r128_private_t *dev_priv = dev->dev_private; |
1294 | DRM_DEBUG("\n"); | 1294 | DRM_DEBUG("\n"); |
@@ -1354,8 +1354,8 @@ static int r128_cce_vertex(DRM_IOCTL_ARGS) | |||
1354 | { | 1354 | { |
1355 | DRM_DEVICE; | 1355 | DRM_DEVICE; |
1356 | drm_r128_private_t *dev_priv = dev->dev_private; | 1356 | drm_r128_private_t *dev_priv = dev->dev_private; |
1357 | drm_device_dma_t *dma = dev->dma; | 1357 | struct drm_device_dma *dma = dev->dma; |
1358 | drm_buf_t *buf; | 1358 | struct drm_buf *buf; |
1359 | drm_r128_buf_priv_t *buf_priv; | 1359 | drm_r128_buf_priv_t *buf_priv; |
1360 | drm_r128_vertex_t vertex; | 1360 | drm_r128_vertex_t vertex; |
1361 | 1361 | ||
@@ -1413,8 +1413,8 @@ static int r128_cce_indices(DRM_IOCTL_ARGS) | |||
1413 | { | 1413 | { |
1414 | DRM_DEVICE; | 1414 | DRM_DEVICE; |
1415 | drm_r128_private_t *dev_priv = dev->dev_private; | 1415 | drm_r128_private_t *dev_priv = dev->dev_private; |
1416 | drm_device_dma_t *dma = dev->dma; | 1416 | struct drm_device_dma *dma = dev->dma; |
1417 | drm_buf_t *buf; | 1417 | struct drm_buf *buf; |
1418 | drm_r128_buf_priv_t *buf_priv; | 1418 | drm_r128_buf_priv_t *buf_priv; |
1419 | drm_r128_indices_t elts; | 1419 | drm_r128_indices_t elts; |
1420 | int count; | 1420 | int count; |
@@ -1483,7 +1483,7 @@ static int r128_cce_indices(DRM_IOCTL_ARGS) | |||
1483 | static int r128_cce_blit(DRM_IOCTL_ARGS) | 1483 | static int r128_cce_blit(DRM_IOCTL_ARGS) |
1484 | { | 1484 | { |
1485 | DRM_DEVICE; | 1485 | DRM_DEVICE; |
1486 | drm_device_dma_t *dma = dev->dma; | 1486 | struct drm_device_dma *dma = dev->dma; |
1487 | drm_r128_private_t *dev_priv = dev->dev_private; | 1487 | drm_r128_private_t *dev_priv = dev->dev_private; |
1488 | drm_r128_blit_t blit; | 1488 | drm_r128_blit_t blit; |
1489 | int ret; | 1489 | int ret; |
@@ -1571,8 +1571,8 @@ static int r128_cce_indirect(DRM_IOCTL_ARGS) | |||
1571 | { | 1571 | { |
1572 | DRM_DEVICE; | 1572 | DRM_DEVICE; |
1573 | drm_r128_private_t *dev_priv = dev->dev_private; | 1573 | drm_r128_private_t *dev_priv = dev->dev_private; |
1574 | drm_device_dma_t *dma = dev->dma; | 1574 | struct drm_device_dma *dma = dev->dma; |
1575 | drm_buf_t *buf; | 1575 | struct drm_buf *buf; |
1576 | drm_r128_buf_priv_t *buf_priv; | 1576 | drm_r128_buf_priv_t *buf_priv; |
1577 | drm_r128_indirect_t indirect; | 1577 | drm_r128_indirect_t indirect; |
1578 | #if 0 | 1578 | #if 0 |
@@ -1675,7 +1675,7 @@ static int r128_getparam(DRM_IOCTL_ARGS) | |||
1675 | return 0; | 1675 | return 0; |
1676 | } | 1676 | } |
1677 | 1677 | ||
1678 | void r128_driver_preclose(drm_device_t * dev, DRMFILE filp) | 1678 | void r128_driver_preclose(struct drm_device * dev, DRMFILE filp) |
1679 | { | 1679 | { |
1680 | if (dev->dev_private) { | 1680 | if (dev->dev_private) { |
1681 | drm_r128_private_t *dev_priv = dev->dev_private; | 1681 | drm_r128_private_t *dev_priv = dev->dev_private; |
@@ -1685,7 +1685,7 @@ void r128_driver_preclose(drm_device_t * dev, DRMFILE filp) | |||
1685 | } | 1685 | } |
1686 | } | 1686 | } |
1687 | 1687 | ||
1688 | void r128_driver_lastclose(drm_device_t * dev) | 1688 | void r128_driver_lastclose(struct drm_device * dev) |
1689 | { | 1689 | { |
1690 | r128_do_cleanup_cce(dev); | 1690 | r128_do_cleanup_cce(dev); |
1691 | } | 1691 | } |
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c index 032a022ec6a8..4e5aca6ba59a 100644 --- a/drivers/char/drm/r300_cmdbuf.c +++ b/drivers/char/drm/r300_cmdbuf.c | |||
@@ -55,7 +55,7 @@ static const int r300_cliprect_cntl[4] = { | |||
55 | static int r300_emit_cliprects(drm_radeon_private_t *dev_priv, | 55 | static int r300_emit_cliprects(drm_radeon_private_t *dev_priv, |
56 | drm_radeon_kcmd_buffer_t *cmdbuf, int n) | 56 | drm_radeon_kcmd_buffer_t *cmdbuf, int n) |
57 | { | 57 | { |
58 | drm_clip_rect_t box; | 58 | struct drm_clip_rect box; |
59 | int nr; | 59 | int nr; |
60 | int i; | 60 | int i; |
61 | RING_LOCALS; | 61 | RING_LOCALS; |
@@ -148,15 +148,16 @@ void r300_init_reg_flags(void) | |||
148 | 148 | ||
149 | /* these match cmducs() command in r300_driver/r300/r300_cmdbuf.c */ | 149 | /* these match cmducs() command in r300_driver/r300/r300_cmdbuf.c */ |
150 | ADD_RANGE(R300_SE_VPORT_XSCALE, 6); | 150 | ADD_RANGE(R300_SE_VPORT_XSCALE, 6); |
151 | ADD_RANGE(0x2080, 1); | 151 | ADD_RANGE(R300_VAP_CNTL, 1); |
152 | ADD_RANGE(R300_SE_VTE_CNTL, 2); | 152 | ADD_RANGE(R300_SE_VTE_CNTL, 2); |
153 | ADD_RANGE(0x2134, 2); | 153 | ADD_RANGE(0x2134, 2); |
154 | ADD_RANGE(0x2140, 1); | 154 | ADD_RANGE(R300_VAP_CNTL_STATUS, 1); |
155 | ADD_RANGE(R300_VAP_INPUT_CNTL_0, 2); | 155 | ADD_RANGE(R300_VAP_INPUT_CNTL_0, 2); |
156 | ADD_RANGE(0x21DC, 1); | 156 | ADD_RANGE(0x21DC, 1); |
157 | ADD_RANGE(0x221C, 1); | 157 | ADD_RANGE(R300_VAP_UNKNOWN_221C, 1); |
158 | ADD_RANGE(0x2220, 4); | 158 | ADD_RANGE(R300_VAP_CLIP_X_0, 4); |
159 | ADD_RANGE(0x2288, 1); | 159 | ADD_RANGE(R300_VAP_PVS_WAITIDLE, 1); |
160 | ADD_RANGE(R300_VAP_UNKNOWN_2288, 1); | ||
160 | ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2); | 161 | ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2); |
161 | ADD_RANGE(R300_VAP_PVS_CNTL_1, 3); | 162 | ADD_RANGE(R300_VAP_PVS_CNTL_1, 3); |
162 | ADD_RANGE(R300_GB_ENABLE, 1); | 163 | ADD_RANGE(R300_GB_ENABLE, 1); |
@@ -168,13 +169,13 @@ void r300_init_reg_flags(void) | |||
168 | ADD_RANGE(R300_RE_POINTSIZE, 1); | 169 | ADD_RANGE(R300_RE_POINTSIZE, 1); |
169 | ADD_RANGE(0x4230, 3); | 170 | ADD_RANGE(0x4230, 3); |
170 | ADD_RANGE(R300_RE_LINE_CNT, 1); | 171 | ADD_RANGE(R300_RE_LINE_CNT, 1); |
171 | ADD_RANGE(0x4238, 1); | 172 | ADD_RANGE(R300_RE_UNK4238, 1); |
172 | ADD_RANGE(0x4260, 3); | 173 | ADD_RANGE(0x4260, 3); |
173 | ADD_RANGE(0x4274, 4); | 174 | ADD_RANGE(R300_RE_SHADE, 4); |
174 | ADD_RANGE(0x4288, 5); | 175 | ADD_RANGE(R300_RE_POLYGON_MODE, 5); |
175 | ADD_RANGE(0x42A0, 1); | 176 | ADD_RANGE(R300_RE_ZBIAS_CNTL, 1); |
176 | ADD_RANGE(R300_RE_ZBIAS_T_FACTOR, 4); | 177 | ADD_RANGE(R300_RE_ZBIAS_T_FACTOR, 4); |
177 | ADD_RANGE(0x42B4, 1); | 178 | ADD_RANGE(R300_RE_OCCLUSION_CNTL, 1); |
178 | ADD_RANGE(R300_RE_CULL_CNTL, 1); | 179 | ADD_RANGE(R300_RE_CULL_CNTL, 1); |
179 | ADD_RANGE(0x42C0, 2); | 180 | ADD_RANGE(0x42C0, 2); |
180 | ADD_RANGE(R300_RS_CNTL_0, 2); | 181 | ADD_RANGE(R300_RS_CNTL_0, 2); |
@@ -190,22 +191,22 @@ void r300_init_reg_flags(void) | |||
190 | ADD_RANGE(R300_PFS_INSTR1_0, 64); | 191 | ADD_RANGE(R300_PFS_INSTR1_0, 64); |
191 | ADD_RANGE(R300_PFS_INSTR2_0, 64); | 192 | ADD_RANGE(R300_PFS_INSTR2_0, 64); |
192 | ADD_RANGE(R300_PFS_INSTR3_0, 64); | 193 | ADD_RANGE(R300_PFS_INSTR3_0, 64); |
193 | ADD_RANGE(0x4BC0, 1); | 194 | ADD_RANGE(R300_RE_FOG_STATE, 1); |
194 | ADD_RANGE(0x4BC8, 3); | 195 | ADD_RANGE(R300_FOG_COLOR_R, 3); |
195 | ADD_RANGE(R300_PP_ALPHA_TEST, 2); | 196 | ADD_RANGE(R300_PP_ALPHA_TEST, 2); |
196 | ADD_RANGE(0x4BD8, 1); | 197 | ADD_RANGE(0x4BD8, 1); |
197 | ADD_RANGE(R300_PFS_PARAM_0_X, 64); | 198 | ADD_RANGE(R300_PFS_PARAM_0_X, 64); |
198 | ADD_RANGE(0x4E00, 1); | 199 | ADD_RANGE(0x4E00, 1); |
199 | ADD_RANGE(R300_RB3D_CBLEND, 2); | 200 | ADD_RANGE(R300_RB3D_CBLEND, 2); |
200 | ADD_RANGE(R300_RB3D_COLORMASK, 1); | 201 | ADD_RANGE(R300_RB3D_COLORMASK, 1); |
201 | ADD_RANGE(0x4E10, 3); | 202 | ADD_RANGE(R300_RB3D_BLEND_COLOR, 3); |
202 | ADD_RANGE_MARK(R300_RB3D_COLOROFFSET0, 1, MARK_CHECK_OFFSET); /* check offset */ | 203 | ADD_RANGE_MARK(R300_RB3D_COLOROFFSET0, 1, MARK_CHECK_OFFSET); /* check offset */ |
203 | ADD_RANGE(R300_RB3D_COLORPITCH0, 1); | 204 | ADD_RANGE(R300_RB3D_COLORPITCH0, 1); |
204 | ADD_RANGE(0x4E50, 9); | 205 | ADD_RANGE(0x4E50, 9); |
205 | ADD_RANGE(0x4E88, 1); | 206 | ADD_RANGE(0x4E88, 1); |
206 | ADD_RANGE(0x4EA0, 2); | 207 | ADD_RANGE(0x4EA0, 2); |
207 | ADD_RANGE(R300_RB3D_ZSTENCIL_CNTL_0, 3); | 208 | ADD_RANGE(R300_RB3D_ZSTENCIL_CNTL_0, 3); |
208 | ADD_RANGE(0x4F10, 4); | 209 | ADD_RANGE(R300_RB3D_ZSTENCIL_FORMAT, 4); |
209 | ADD_RANGE_MARK(R300_RB3D_DEPTHOFFSET, 1, MARK_CHECK_OFFSET); /* check offset */ | 210 | ADD_RANGE_MARK(R300_RB3D_DEPTHOFFSET, 1, MARK_CHECK_OFFSET); /* check offset */ |
210 | ADD_RANGE(R300_RB3D_DEPTHPITCH, 1); | 211 | ADD_RANGE(R300_RB3D_DEPTHPITCH, 1); |
211 | ADD_RANGE(0x4F28, 1); | 212 | ADD_RANGE(0x4F28, 1); |
@@ -224,7 +225,7 @@ void r300_init_reg_flags(void) | |||
224 | ADD_RANGE(R300_TX_BORDER_COLOR_0, 16); | 225 | ADD_RANGE(R300_TX_BORDER_COLOR_0, 16); |
225 | 226 | ||
226 | /* Sporadic registers used as primitives are emitted */ | 227 | /* Sporadic registers used as primitives are emitted */ |
227 | ADD_RANGE(0x4f18, 1); | 228 | ADD_RANGE(R300_RB3D_ZCACHE_CTLSTAT, 1); |
228 | ADD_RANGE(R300_RB3D_DSTCACHE_CTLSTAT, 1); | 229 | ADD_RANGE(R300_RB3D_DSTCACHE_CTLSTAT, 1); |
229 | ADD_RANGE(R300_VAP_INPUT_ROUTE_0_0, 8); | 230 | ADD_RANGE(R300_VAP_INPUT_ROUTE_0_0, 8); |
230 | ADD_RANGE(R300_VAP_INPUT_ROUTE_1_0, 8); | 231 | ADD_RANGE(R300_VAP_INPUT_ROUTE_1_0, 8); |
@@ -692,9 +693,9 @@ static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv) | |||
692 | 693 | ||
693 | BEGIN_RING(6); | 694 | BEGIN_RING(6); |
694 | OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); | 695 | OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); |
695 | OUT_RING(0xa); | 696 | OUT_RING(R300_RB3D_DSTCACHE_UNKNOWN_0A); |
696 | OUT_RING(CP_PACKET0(0x4f18, 0)); | 697 | OUT_RING(CP_PACKET0(R300_RB3D_ZCACHE_CTLSTAT, 0)); |
697 | OUT_RING(0x3); | 698 | OUT_RING(R300_RB3D_ZCACHE_UNKNOWN_03); |
698 | OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0)); | 699 | OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0)); |
699 | OUT_RING(0x0); | 700 | OUT_RING(0x0); |
700 | ADVANCE_RING(); | 701 | ADVANCE_RING(); |
@@ -705,7 +706,7 @@ static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv) | |||
705 | * The actual age emit is done by r300_do_cp_cmdbuf, which is why you must | 706 | * The actual age emit is done by r300_do_cp_cmdbuf, which is why you must |
706 | * be careful about how this function is called. | 707 | * be careful about how this function is called. |
707 | */ | 708 | */ |
708 | static void r300_discard_buffer(drm_device_t * dev, drm_buf_t * buf) | 709 | static void r300_discard_buffer(struct drm_device * dev, struct drm_buf * buf) |
709 | { | 710 | { |
710 | drm_radeon_private_t *dev_priv = dev->dev_private; | 711 | drm_radeon_private_t *dev_priv = dev->dev_private; |
711 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; | 712 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; |
@@ -766,8 +767,8 @@ static int r300_scratch(drm_radeon_private_t *dev_priv, | |||
766 | } | 767 | } |
767 | 768 | ||
768 | BEGIN_RING(2); | 769 | BEGIN_RING(2); |
769 | OUT_RING(CP_PACKET0(RADEON_SCRATCH_REG0 + header.scratch.reg * 4, 0)); | 770 | OUT_RING( CP_PACKET0( RADEON_SCRATCH_REG0 + header.scratch.reg * 4, 0 ) ); |
770 | OUT_RING(dev_priv->scratch_ages[header.scratch.reg]); | 771 | OUT_RING( dev_priv->scratch_ages[header.scratch.reg] ); |
771 | ADVANCE_RING(); | 772 | ADVANCE_RING(); |
772 | 773 | ||
773 | return 0; | 774 | return 0; |
@@ -778,14 +779,14 @@ static int r300_scratch(drm_radeon_private_t *dev_priv, | |||
778 | * commands on the DMA ring buffer. | 779 | * commands on the DMA ring buffer. |
779 | * Called by the ioctl handler function radeon_cp_cmdbuf. | 780 | * Called by the ioctl handler function radeon_cp_cmdbuf. |
780 | */ | 781 | */ |
781 | int r300_do_cp_cmdbuf(drm_device_t *dev, | 782 | int r300_do_cp_cmdbuf(struct drm_device *dev, |
782 | DRMFILE filp, | 783 | DRMFILE filp, |
783 | drm_file_t *filp_priv, | 784 | struct drm_file *filp_priv, |
784 | drm_radeon_kcmd_buffer_t *cmdbuf) | 785 | drm_radeon_kcmd_buffer_t *cmdbuf) |
785 | { | 786 | { |
786 | drm_radeon_private_t *dev_priv = dev->dev_private; | 787 | drm_radeon_private_t *dev_priv = dev->dev_private; |
787 | drm_device_dma_t *dma = dev->dma; | 788 | struct drm_device_dma *dma = dev->dma; |
788 | drm_buf_t *buf = NULL; | 789 | struct drm_buf *buf = NULL; |
789 | int emit_dispatch_age = 0; | 790 | int emit_dispatch_age = 0; |
790 | int ret = 0; | 791 | int ret = 0; |
791 | 792 | ||
diff --git a/drivers/char/drm/r300_reg.h b/drivers/char/drm/r300_reg.h index ecda760ae8c0..3ae57ecc7afd 100644 --- a/drivers/char/drm/r300_reg.h +++ b/drivers/char/drm/r300_reg.h | |||
@@ -47,12 +47,12 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
47 | # define R300_MC_MISC__MC_GLOBW_FULL_LAT_SHIFT 28 | 47 | # define R300_MC_MISC__MC_GLOBW_FULL_LAT_SHIFT 28 |
48 | 48 | ||
49 | /* | 49 | /* |
50 | This file contains registers and constants for the R300. They have been | 50 | * This file contains registers and constants for the R300. They have been |
51 | found mostly by examining command buffers captured using glxtest, as well | 51 | * found mostly by examining command buffers captured using glxtest, as well |
52 | as by extrapolating some known registers and constants from the R200. | 52 | * as by extrapolating some known registers and constants from the R200. |
53 | 53 | * I am fairly certain that they are correct unless stated otherwise | |
54 | I am fairly certain that they are correct unless stated otherwise in comments. | 54 | * in comments. |
55 | */ | 55 | */ |
56 | 56 | ||
57 | #define R300_SE_VPORT_XSCALE 0x1D98 | 57 | #define R300_SE_VPORT_XSCALE 0x1D98 |
58 | #define R300_SE_VPORT_XOFFSET 0x1D9C | 58 | #define R300_SE_VPORT_XOFFSET 0x1D9C |
@@ -61,49 +61,60 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
61 | #define R300_SE_VPORT_ZSCALE 0x1DA8 | 61 | #define R300_SE_VPORT_ZSCALE 0x1DA8 |
62 | #define R300_SE_VPORT_ZOFFSET 0x1DAC | 62 | #define R300_SE_VPORT_ZOFFSET 0x1DAC |
63 | 63 | ||
64 | /* This register is written directly and also starts data section in many 3d CP_PACKET3's */ | ||
65 | #define R300_VAP_VF_CNTL 0x2084 | ||
66 | 64 | ||
67 | # define R300_VAP_VF_CNTL__PRIM_TYPE__SHIFT 0 | 65 | /* |
68 | # define R300_VAP_VF_CNTL__PRIM_NONE (0<<0) | 66 | * Vertex Array Processing (VAP) Control |
69 | # define R300_VAP_VF_CNTL__PRIM_POINTS (1<<0) | 67 | * Stolen from r200 code from Christoph Brill (It's a guess!) |
70 | # define R300_VAP_VF_CNTL__PRIM_LINES (2<<0) | 68 | */ |
71 | # define R300_VAP_VF_CNTL__PRIM_LINE_STRIP (3<<0) | 69 | #define R300_VAP_CNTL 0x2080 |
72 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLES (4<<0) | 70 | |
73 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN (5<<0) | 71 | /* This register is written directly and also starts data section |
74 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP (6<<0) | 72 | * in many 3d CP_PACKET3's |
75 | # define R300_VAP_VF_CNTL__PRIM_LINE_LOOP (12<<0) | 73 | */ |
76 | # define R300_VAP_VF_CNTL__PRIM_QUADS (13<<0) | 74 | #define R300_VAP_VF_CNTL 0x2084 |
77 | # define R300_VAP_VF_CNTL__PRIM_QUAD_STRIP (14<<0) | 75 | # define R300_VAP_VF_CNTL__PRIM_TYPE__SHIFT 0 |
78 | # define R300_VAP_VF_CNTL__PRIM_POLYGON (15<<0) | 76 | # define R300_VAP_VF_CNTL__PRIM_NONE (0<<0) |
79 | 77 | # define R300_VAP_VF_CNTL__PRIM_POINTS (1<<0) | |
80 | # define R300_VAP_VF_CNTL__PRIM_WALK__SHIFT 4 | 78 | # define R300_VAP_VF_CNTL__PRIM_LINES (2<<0) |
81 | /* State based - direct writes to registers trigger vertex generation */ | 79 | # define R300_VAP_VF_CNTL__PRIM_LINE_STRIP (3<<0) |
82 | # define R300_VAP_VF_CNTL__PRIM_WALK_STATE_BASED (0<<4) | 80 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLES (4<<0) |
83 | # define R300_VAP_VF_CNTL__PRIM_WALK_INDICES (1<<4) | 81 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_FAN (5<<0) |
84 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_LIST (2<<4) | 82 | # define R300_VAP_VF_CNTL__PRIM_TRIANGLE_STRIP (6<<0) |
85 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_EMBEDDED (3<<4) | 83 | # define R300_VAP_VF_CNTL__PRIM_LINE_LOOP (12<<0) |
86 | 84 | # define R300_VAP_VF_CNTL__PRIM_QUADS (13<<0) | |
87 | /* I don't think I saw these three used.. */ | 85 | # define R300_VAP_VF_CNTL__PRIM_QUAD_STRIP (14<<0) |
88 | # define R300_VAP_VF_CNTL__COLOR_ORDER__SHIFT 6 | 86 | # define R300_VAP_VF_CNTL__PRIM_POLYGON (15<<0) |
89 | # define R300_VAP_VF_CNTL__TCL_OUTPUT_CTL_ENA__SHIFT 9 | 87 | |
90 | # define R300_VAP_VF_CNTL__PROG_STREAM_ENA__SHIFT 10 | 88 | # define R300_VAP_VF_CNTL__PRIM_WALK__SHIFT 4 |
91 | 89 | /* State based - direct writes to registers trigger vertex | |
92 | /* index size - when not set the indices are assumed to be 16 bit */ | 90 | generation */ |
93 | # define R300_VAP_VF_CNTL__INDEX_SIZE_32bit (1<<11) | 91 | # define R300_VAP_VF_CNTL__PRIM_WALK_STATE_BASED (0<<4) |
94 | /* number of vertices */ | 92 | # define R300_VAP_VF_CNTL__PRIM_WALK_INDICES (1<<4) |
95 | # define R300_VAP_VF_CNTL__NUM_VERTICES__SHIFT 16 | 93 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_LIST (2<<4) |
94 | # define R300_VAP_VF_CNTL__PRIM_WALK_VERTEX_EMBEDDED (3<<4) | ||
95 | |||
96 | /* I don't think I saw these three used.. */ | ||
97 | # define R300_VAP_VF_CNTL__COLOR_ORDER__SHIFT 6 | ||
98 | # define R300_VAP_VF_CNTL__TCL_OUTPUT_CTL_ENA__SHIFT 9 | ||
99 | # define R300_VAP_VF_CNTL__PROG_STREAM_ENA__SHIFT 10 | ||
100 | |||
101 | /* index size - when not set the indices are assumed to be 16 bit */ | ||
102 | # define R300_VAP_VF_CNTL__INDEX_SIZE_32bit (1<<11) | ||
103 | /* number of vertices */ | ||
104 | # define R300_VAP_VF_CNTL__NUM_VERTICES__SHIFT 16 | ||
96 | 105 | ||
97 | /* BEGIN: Wild guesses */ | 106 | /* BEGIN: Wild guesses */ |
98 | #define R300_VAP_OUTPUT_VTX_FMT_0 0x2090 | 107 | #define R300_VAP_OUTPUT_VTX_FMT_0 0x2090 |
99 | # define R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT (1<<0) | 108 | # define R300_VAP_OUTPUT_VTX_FMT_0__POS_PRESENT (1<<0) |
100 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT (1<<1) | 109 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_PRESENT (1<<1) |
101 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT (1<<2) /* GUESS */ | 110 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_1_PRESENT (1<<2) /* GUESS */ |
102 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT (1<<3) /* GUESS */ | 111 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_2_PRESENT (1<<3) /* GUESS */ |
103 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_3_PRESENT (1<<4) /* GUESS */ | 112 | # define R300_VAP_OUTPUT_VTX_FMT_0__COLOR_3_PRESENT (1<<4) /* GUESS */ |
104 | # define R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT (1<<16) /* GUESS */ | 113 | # define R300_VAP_OUTPUT_VTX_FMT_0__PT_SIZE_PRESENT (1<<16) /* GUESS */ |
105 | 114 | ||
106 | #define R300_VAP_OUTPUT_VTX_FMT_1 0x2094 | 115 | #define R300_VAP_OUTPUT_VTX_FMT_1 0x2094 |
116 | /* each of the following is 3 bits wide, specifies number | ||
117 | of components */ | ||
107 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_0_COMP_CNT_SHIFT 0 | 118 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_0_COMP_CNT_SHIFT 0 |
108 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_1_COMP_CNT_SHIFT 3 | 119 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_1_COMP_CNT_SHIFT 3 |
109 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_2_COMP_CNT_SHIFT 6 | 120 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_2_COMP_CNT_SHIFT 6 |
@@ -112,7 +123,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
112 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_5_COMP_CNT_SHIFT 15 | 123 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_5_COMP_CNT_SHIFT 15 |
113 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_6_COMP_CNT_SHIFT 18 | 124 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_6_COMP_CNT_SHIFT 18 |
114 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 | 125 | # define R300_VAP_OUTPUT_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 |
115 | /* END */ | 126 | /* END: Wild guesses */ |
116 | 127 | ||
117 | #define R300_SE_VTE_CNTL 0x20b0 | 128 | #define R300_SE_VTE_CNTL 0x20b0 |
118 | # define R300_VPORT_X_SCALE_ENA 0x00000001 | 129 | # define R300_VPORT_X_SCALE_ENA 0x00000001 |
@@ -128,43 +139,54 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
128 | # define R300_VTX_ST_DENORMALIZED 0x00001000 | 139 | # define R300_VTX_ST_DENORMALIZED 0x00001000 |
129 | 140 | ||
130 | /* BEGIN: Vertex data assembly - lots of uncertainties */ | 141 | /* BEGIN: Vertex data assembly - lots of uncertainties */ |
142 | |||
143 | /* gap */ | ||
144 | |||
145 | #define R300_VAP_CNTL_STATUS 0x2140 | ||
146 | # define R300_VC_NO_SWAP (0 << 0) | ||
147 | # define R300_VC_16BIT_SWAP (1 << 0) | ||
148 | # define R300_VC_32BIT_SWAP (2 << 0) | ||
149 | # define R300_VAP_TCL_BYPASS (1 << 8) | ||
150 | |||
131 | /* gap */ | 151 | /* gap */ |
152 | |||
132 | /* Where do we get our vertex data? | 153 | /* Where do we get our vertex data? |
133 | // | 154 | * |
134 | // Vertex data either comes either from immediate mode registers or from | 155 | * Vertex data either comes either from immediate mode registers or from |
135 | // vertex arrays. | 156 | * vertex arrays. |
136 | // There appears to be no mixed mode (though we can force the pitch of | 157 | * There appears to be no mixed mode (though we can force the pitch of |
137 | // vertex arrays to 0, effectively reusing the same element over and over | 158 | * vertex arrays to 0, effectively reusing the same element over and over |
138 | // again). | 159 | * again). |
139 | // | 160 | * |
140 | // Immediate mode is controlled by the INPUT_CNTL registers. I am not sure | 161 | * Immediate mode is controlled by the INPUT_CNTL registers. I am not sure |
141 | // if these registers influence vertex array processing. | 162 | * if these registers influence vertex array processing. |
142 | // | 163 | * |
143 | // Vertex arrays are controlled via the 3D_LOAD_VBPNTR packet3. | 164 | * Vertex arrays are controlled via the 3D_LOAD_VBPNTR packet3. |
144 | // | 165 | * |
145 | // In both cases, vertex attributes are then passed through INPUT_ROUTE. | 166 | * In both cases, vertex attributes are then passed through INPUT_ROUTE. |
146 | 167 | * | |
147 | // Beginning with INPUT_ROUTE_0_0 is a list of WORDs that route vertex data | 168 | * Beginning with INPUT_ROUTE_0_0 is a list of WORDs that route vertex data |
148 | // into the vertex processor's input registers. | 169 | * into the vertex processor's input registers. |
149 | // The first word routes the first input, the second word the second, etc. | 170 | * The first word routes the first input, the second word the second, etc. |
150 | // The corresponding input is routed into the register with the given index. | 171 | * The corresponding input is routed into the register with the given index. |
151 | // The list is ended by a word with INPUT_ROUTE_END set. | 172 | * The list is ended by a word with INPUT_ROUTE_END set. |
152 | // | 173 | * |
153 | // Always set COMPONENTS_4 in immediate mode. */ | 174 | * Always set COMPONENTS_4 in immediate mode. |
175 | */ | ||
154 | 176 | ||
155 | #define R300_VAP_INPUT_ROUTE_0_0 0x2150 | 177 | #define R300_VAP_INPUT_ROUTE_0_0 0x2150 |
156 | # define R300_INPUT_ROUTE_COMPONENTS_1 (0 << 0) | 178 | # define R300_INPUT_ROUTE_COMPONENTS_1 (0 << 0) |
157 | # define R300_INPUT_ROUTE_COMPONENTS_2 (1 << 0) | 179 | # define R300_INPUT_ROUTE_COMPONENTS_2 (1 << 0) |
158 | # define R300_INPUT_ROUTE_COMPONENTS_3 (2 << 0) | 180 | # define R300_INPUT_ROUTE_COMPONENTS_3 (2 << 0) |
159 | # define R300_INPUT_ROUTE_COMPONENTS_4 (3 << 0) | 181 | # define R300_INPUT_ROUTE_COMPONENTS_4 (3 << 0) |
160 | # define R300_INPUT_ROUTE_COMPONENTS_RGBA (4 << 0) /* GUESS */ | 182 | # define R300_INPUT_ROUTE_COMPONENTS_RGBA (4 << 0) /* GUESS */ |
161 | # define R300_VAP_INPUT_ROUTE_IDX_SHIFT 8 | 183 | # define R300_VAP_INPUT_ROUTE_IDX_SHIFT 8 |
162 | # define R300_VAP_INPUT_ROUTE_IDX_MASK (31 << 8) /* GUESS */ | 184 | # define R300_VAP_INPUT_ROUTE_IDX_MASK (31 << 8) /* GUESS */ |
163 | # define R300_VAP_INPUT_ROUTE_END (1 << 13) | 185 | # define R300_VAP_INPUT_ROUTE_END (1 << 13) |
164 | # define R300_INPUT_ROUTE_IMMEDIATE_MODE (0 << 14) /* GUESS */ | 186 | # define R300_INPUT_ROUTE_IMMEDIATE_MODE (0 << 14) /* GUESS */ |
165 | # define R300_INPUT_ROUTE_FLOAT (1 << 14) /* GUESS */ | 187 | # define R300_INPUT_ROUTE_FLOAT (1 << 14) /* GUESS */ |
166 | # define R300_INPUT_ROUTE_UNSIGNED_BYTE (2 << 14) /* GUESS */ | 188 | # define R300_INPUT_ROUTE_UNSIGNED_BYTE (2 << 14) /* GUESS */ |
167 | # define R300_INPUT_ROUTE_FLOAT_COLOR (3 << 14) /* GUESS */ | 189 | # define R300_INPUT_ROUTE_FLOAT_COLOR (3 << 14) /* GUESS */ |
168 | #define R300_VAP_INPUT_ROUTE_0_1 0x2154 | 190 | #define R300_VAP_INPUT_ROUTE_0_1 0x2154 |
169 | #define R300_VAP_INPUT_ROUTE_0_2 0x2158 | 191 | #define R300_VAP_INPUT_ROUTE_0_2 0x2158 |
170 | #define R300_VAP_INPUT_ROUTE_0_3 0x215C | 192 | #define R300_VAP_INPUT_ROUTE_0_3 0x215C |
@@ -174,10 +196,12 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
174 | #define R300_VAP_INPUT_ROUTE_0_7 0x216C | 196 | #define R300_VAP_INPUT_ROUTE_0_7 0x216C |
175 | 197 | ||
176 | /* gap */ | 198 | /* gap */ |
199 | |||
177 | /* Notes: | 200 | /* Notes: |
178 | // - always set up to produce at least two attributes: | 201 | * - always set up to produce at least two attributes: |
179 | // if vertex program uses only position, fglrx will set normal, too | 202 | * if vertex program uses only position, fglrx will set normal, too |
180 | // - INPUT_CNTL_0_COLOR and INPUT_CNTL_COLOR bits are always equal */ | 203 | * - INPUT_CNTL_0_COLOR and INPUT_CNTL_COLOR bits are always equal. |
204 | */ | ||
181 | #define R300_VAP_INPUT_CNTL_0 0x2180 | 205 | #define R300_VAP_INPUT_CNTL_0 0x2180 |
182 | # define R300_INPUT_CNTL_0_COLOR 0x00000001 | 206 | # define R300_INPUT_CNTL_0_COLOR 0x00000001 |
183 | #define R300_VAP_INPUT_CNTL_1 0x2184 | 207 | #define R300_VAP_INPUT_CNTL_1 0x2184 |
@@ -186,20 +210,22 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
186 | # define R300_INPUT_CNTL_COLOR 0x00000004 | 210 | # define R300_INPUT_CNTL_COLOR 0x00000004 |
187 | # define R300_INPUT_CNTL_TC0 0x00000400 | 211 | # define R300_INPUT_CNTL_TC0 0x00000400 |
188 | # define R300_INPUT_CNTL_TC1 0x00000800 | 212 | # define R300_INPUT_CNTL_TC1 0x00000800 |
189 | # define R300_INPUT_CNTL_TC2 0x00001000 /* GUESS */ | 213 | # define R300_INPUT_CNTL_TC2 0x00001000 /* GUESS */ |
190 | # define R300_INPUT_CNTL_TC3 0x00002000 /* GUESS */ | 214 | # define R300_INPUT_CNTL_TC3 0x00002000 /* GUESS */ |
191 | # define R300_INPUT_CNTL_TC4 0x00004000 /* GUESS */ | 215 | # define R300_INPUT_CNTL_TC4 0x00004000 /* GUESS */ |
192 | # define R300_INPUT_CNTL_TC5 0x00008000 /* GUESS */ | 216 | # define R300_INPUT_CNTL_TC5 0x00008000 /* GUESS */ |
193 | # define R300_INPUT_CNTL_TC6 0x00010000 /* GUESS */ | 217 | # define R300_INPUT_CNTL_TC6 0x00010000 /* GUESS */ |
194 | # define R300_INPUT_CNTL_TC7 0x00020000 /* GUESS */ | 218 | # define R300_INPUT_CNTL_TC7 0x00020000 /* GUESS */ |
195 | 219 | ||
196 | /* gap */ | 220 | /* gap */ |
221 | |||
197 | /* Words parallel to INPUT_ROUTE_0; All words that are active in INPUT_ROUTE_0 | 222 | /* Words parallel to INPUT_ROUTE_0; All words that are active in INPUT_ROUTE_0 |
198 | // are set to a swizzling bit pattern, other words are 0. | 223 | * are set to a swizzling bit pattern, other words are 0. |
199 | // | 224 | * |
200 | // In immediate mode, the pattern is always set to xyzw. In vertex array | 225 | * In immediate mode, the pattern is always set to xyzw. In vertex array |
201 | // mode, the swizzling pattern is e.g. used to set zw components in texture | 226 | * mode, the swizzling pattern is e.g. used to set zw components in texture |
202 | // coordinates with only tweo components. */ | 227 | * coordinates with only tweo components. |
228 | */ | ||
203 | #define R300_VAP_INPUT_ROUTE_1_0 0x21E0 | 229 | #define R300_VAP_INPUT_ROUTE_1_0 0x21E0 |
204 | # define R300_INPUT_ROUTE_SELECT_X 0 | 230 | # define R300_INPUT_ROUTE_SELECT_X 0 |
205 | # define R300_INPUT_ROUTE_SELECT_Y 1 | 231 | # define R300_INPUT_ROUTE_SELECT_Y 1 |
@@ -208,11 +234,11 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
208 | # define R300_INPUT_ROUTE_SELECT_ZERO 4 | 234 | # define R300_INPUT_ROUTE_SELECT_ZERO 4 |
209 | # define R300_INPUT_ROUTE_SELECT_ONE 5 | 235 | # define R300_INPUT_ROUTE_SELECT_ONE 5 |
210 | # define R300_INPUT_ROUTE_SELECT_MASK 7 | 236 | # define R300_INPUT_ROUTE_SELECT_MASK 7 |
211 | # define R300_INPUT_ROUTE_X_SHIFT 0 | 237 | # define R300_INPUT_ROUTE_X_SHIFT 0 |
212 | # define R300_INPUT_ROUTE_Y_SHIFT 3 | 238 | # define R300_INPUT_ROUTE_Y_SHIFT 3 |
213 | # define R300_INPUT_ROUTE_Z_SHIFT 6 | 239 | # define R300_INPUT_ROUTE_Z_SHIFT 6 |
214 | # define R300_INPUT_ROUTE_W_SHIFT 9 | 240 | # define R300_INPUT_ROUTE_W_SHIFT 9 |
215 | # define R300_INPUT_ROUTE_ENABLE (15 << 12) | 241 | # define R300_INPUT_ROUTE_ENABLE (15 << 12) |
216 | #define R300_VAP_INPUT_ROUTE_1_1 0x21E4 | 242 | #define R300_VAP_INPUT_ROUTE_1_1 0x21E4 |
217 | #define R300_VAP_INPUT_ROUTE_1_2 0x21E8 | 243 | #define R300_VAP_INPUT_ROUTE_1_2 0x21E8 |
218 | #define R300_VAP_INPUT_ROUTE_1_3 0x21EC | 244 | #define R300_VAP_INPUT_ROUTE_1_3 0x21EC |
@@ -221,79 +247,107 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
221 | #define R300_VAP_INPUT_ROUTE_1_6 0x21F8 | 247 | #define R300_VAP_INPUT_ROUTE_1_6 0x21F8 |
222 | #define R300_VAP_INPUT_ROUTE_1_7 0x21FC | 248 | #define R300_VAP_INPUT_ROUTE_1_7 0x21FC |
223 | 249 | ||
224 | /* END */ | 250 | /* END: Vertex data assembly */ |
225 | 251 | ||
226 | /* gap */ | 252 | /* gap */ |
227 | /* BEGIN: Upload vertex program and data | 253 | |
228 | // The programmable vertex shader unit has a memory bank of unknown size | 254 | /* BEGIN: Upload vertex program and data */ |
229 | // that can be written to in 16 byte units by writing the address into | 255 | |
230 | // UPLOAD_ADDRESS, followed by data in UPLOAD_DATA (multiples of 4 DWORDs). | 256 | /* |
231 | // | 257 | * The programmable vertex shader unit has a memory bank of unknown size |
232 | // Pointers into the memory bank are always in multiples of 16 bytes. | 258 | * that can be written to in 16 byte units by writing the address into |
233 | // | 259 | * UPLOAD_ADDRESS, followed by data in UPLOAD_DATA (multiples of 4 DWORDs). |
234 | // The memory bank is divided into areas with fixed meaning. | 260 | * |
235 | // | 261 | * Pointers into the memory bank are always in multiples of 16 bytes. |
236 | // Starting at address UPLOAD_PROGRAM: Vertex program instructions. | 262 | * |
237 | // Native limits reported by drivers from ATI suggest size 256 (i.e. 4KB), | 263 | * The memory bank is divided into areas with fixed meaning. |
238 | // whereas the difference between known addresses suggests size 512. | 264 | * |
239 | // | 265 | * Starting at address UPLOAD_PROGRAM: Vertex program instructions. |
240 | // Starting at address UPLOAD_PARAMETERS: Vertex program parameters. | 266 | * Native limits reported by drivers from ATI suggest size 256 (i.e. 4KB), |
241 | // Native reported limits and the VPI layout suggest size 256, whereas | 267 | * whereas the difference between known addresses suggests size 512. |
242 | // difference between known addresses suggests size 512. | 268 | * |
243 | // | 269 | * Starting at address UPLOAD_PARAMETERS: Vertex program parameters. |
244 | // At address UPLOAD_POINTSIZE is a vector (0, 0, ps, 0), where ps is the | 270 | * Native reported limits and the VPI layout suggest size 256, whereas |
245 | // floating point pointsize. The exact purpose of this state is uncertain, | 271 | * difference between known addresses suggests size 512. |
246 | // as there is also the R300_RE_POINTSIZE register. | 272 | * |
247 | // | 273 | * At address UPLOAD_POINTSIZE is a vector (0, 0, ps, 0), where ps is the |
248 | // Multiple vertex programs and parameter sets can be loaded at once, | 274 | * floating point pointsize. The exact purpose of this state is uncertain, |
249 | // which could explain the size discrepancy. */ | 275 | * as there is also the R300_RE_POINTSIZE register. |
276 | * | ||
277 | * Multiple vertex programs and parameter sets can be loaded at once, | ||
278 | * which could explain the size discrepancy. | ||
279 | */ | ||
250 | #define R300_VAP_PVS_UPLOAD_ADDRESS 0x2200 | 280 | #define R300_VAP_PVS_UPLOAD_ADDRESS 0x2200 |
251 | # define R300_PVS_UPLOAD_PROGRAM 0x00000000 | 281 | # define R300_PVS_UPLOAD_PROGRAM 0x00000000 |
252 | # define R300_PVS_UPLOAD_PARAMETERS 0x00000200 | 282 | # define R300_PVS_UPLOAD_PARAMETERS 0x00000200 |
253 | # define R300_PVS_UPLOAD_POINTSIZE 0x00000406 | 283 | # define R300_PVS_UPLOAD_POINTSIZE 0x00000406 |
284 | |||
254 | /* gap */ | 285 | /* gap */ |
286 | |||
255 | #define R300_VAP_PVS_UPLOAD_DATA 0x2208 | 287 | #define R300_VAP_PVS_UPLOAD_DATA 0x2208 |
256 | /* END */ | 288 | |
289 | /* END: Upload vertex program and data */ | ||
257 | 290 | ||
258 | /* gap */ | 291 | /* gap */ |
292 | |||
259 | /* I do not know the purpose of this register. However, I do know that | 293 | /* I do not know the purpose of this register. However, I do know that |
260 | // it is set to 221C_CLEAR for clear operations and to 221C_NORMAL | 294 | * it is set to 221C_CLEAR for clear operations and to 221C_NORMAL |
261 | // for normal rendering. */ | 295 | * for normal rendering. |
296 | */ | ||
262 | #define R300_VAP_UNKNOWN_221C 0x221C | 297 | #define R300_VAP_UNKNOWN_221C 0x221C |
263 | # define R300_221C_NORMAL 0x00000000 | 298 | # define R300_221C_NORMAL 0x00000000 |
264 | # define R300_221C_CLEAR 0x0001C000 | 299 | # define R300_221C_CLEAR 0x0001C000 |
265 | 300 | ||
301 | /* These seem to be per-pixel and per-vertex X and Y clipping planes. The first | ||
302 | * plane is per-pixel and the second plane is per-vertex. | ||
303 | * | ||
304 | * This was determined by experimentation alone but I believe it is correct. | ||
305 | * | ||
306 | * These registers are called X_QUAD0_1_FL to X_QUAD0_4_FL by glxtest. | ||
307 | */ | ||
308 | #define R300_VAP_CLIP_X_0 0x2220 | ||
309 | #define R300_VAP_CLIP_X_1 0x2224 | ||
310 | #define R300_VAP_CLIP_Y_0 0x2228 | ||
311 | #define R300_VAP_CLIP_Y_1 0x2230 | ||
312 | |||
266 | /* gap */ | 313 | /* gap */ |
314 | |||
267 | /* Sometimes, END_OF_PKT and 0x2284=0 are the only commands sent between | 315 | /* Sometimes, END_OF_PKT and 0x2284=0 are the only commands sent between |
268 | // rendering commands and overwriting vertex program parameters. | 316 | * rendering commands and overwriting vertex program parameters. |
269 | // Therefore, I suspect writing zero to 0x2284 synchronizes the engine and | 317 | * Therefore, I suspect writing zero to 0x2284 synchronizes the engine and |
270 | // avoids bugs caused by still running shaders reading bad data from memory. */ | 318 | * avoids bugs caused by still running shaders reading bad data from memory. |
271 | #define R300_VAP_PVS_WAITIDLE 0x2284 /* GUESS */ | 319 | */ |
320 | #define R300_VAP_PVS_WAITIDLE 0x2284 /* GUESS */ | ||
272 | 321 | ||
273 | /* Absolutely no clue what this register is about. */ | 322 | /* Absolutely no clue what this register is about. */ |
274 | #define R300_VAP_UNKNOWN_2288 0x2288 | 323 | #define R300_VAP_UNKNOWN_2288 0x2288 |
275 | # define R300_2288_R300 0x00750000 /* -- nh */ | 324 | # define R300_2288_R300 0x00750000 /* -- nh */ |
276 | # define R300_2288_RV350 0x0000FFFF /* -- Vladimir */ | 325 | # define R300_2288_RV350 0x0000FFFF /* -- Vladimir */ |
277 | 326 | ||
278 | /* gap */ | 327 | /* gap */ |
328 | |||
279 | /* Addresses are relative to the vertex program instruction area of the | 329 | /* Addresses are relative to the vertex program instruction area of the |
280 | // memory bank. PROGRAM_END points to the last instruction of the active | 330 | * memory bank. PROGRAM_END points to the last instruction of the active |
281 | // program | 331 | * program |
282 | // | 332 | * |
283 | // The meaning of the two UNKNOWN fields is obviously not known. However, | 333 | * The meaning of the two UNKNOWN fields is obviously not known. However, |
284 | // experiments so far have shown that both *must* point to an instruction | 334 | * experiments so far have shown that both *must* point to an instruction |
285 | // inside the vertex program, otherwise the GPU locks up. | 335 | * inside the vertex program, otherwise the GPU locks up. |
286 | // fglrx usually sets CNTL_3_UNKNOWN to the end of the program and | 336 | * |
287 | // CNTL_1_UNKNOWN points to instruction where last write to position takes place. | 337 | * fglrx usually sets CNTL_3_UNKNOWN to the end of the program and |
288 | // Most likely this is used to ignore rest of the program in cases where group of verts arent visible. | 338 | * R300_PVS_CNTL_1_POS_END_SHIFT points to instruction where last write to |
289 | // For some reason this "section" is sometimes accepted other instruction that have | 339 | * position takes place. |
290 | // no relationship with position calculations. | 340 | * |
291 | */ | 341 | * Most likely this is used to ignore rest of the program in cases |
342 | * where group of verts arent visible. For some reason this "section" | ||
343 | * is sometimes accepted other instruction that have no relationship with | ||
344 | * position calculations. | ||
345 | */ | ||
292 | #define R300_VAP_PVS_CNTL_1 0x22D0 | 346 | #define R300_VAP_PVS_CNTL_1 0x22D0 |
293 | # define R300_PVS_CNTL_1_PROGRAM_START_SHIFT 0 | 347 | # define R300_PVS_CNTL_1_PROGRAM_START_SHIFT 0 |
294 | # define R300_PVS_CNTL_1_POS_END_SHIFT 10 | 348 | # define R300_PVS_CNTL_1_POS_END_SHIFT 10 |
295 | # define R300_PVS_CNTL_1_PROGRAM_END_SHIFT 20 | 349 | # define R300_PVS_CNTL_1_PROGRAM_END_SHIFT 20 |
296 | /* Addresses are relative to the vertex program parameters area. */ | 350 | /* Addresses are relative the the vertex program parameters area. */ |
297 | #define R300_VAP_PVS_CNTL_2 0x22D4 | 351 | #define R300_VAP_PVS_CNTL_2 0x22D4 |
298 | # define R300_PVS_CNTL_2_PARAM_OFFSET_SHIFT 0 | 352 | # define R300_PVS_CNTL_2_PARAM_OFFSET_SHIFT 0 |
299 | # define R300_PVS_CNTL_2_PARAM_COUNT_SHIFT 16 | 353 | # define R300_PVS_CNTL_2_PARAM_COUNT_SHIFT 16 |
@@ -302,23 +356,26 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
302 | # define R300_PVS_CNTL_3_PROGRAM_UNKNOWN2_SHIFT 0 | 356 | # define R300_PVS_CNTL_3_PROGRAM_UNKNOWN2_SHIFT 0 |
303 | 357 | ||
304 | /* The entire range from 0x2300 to 0x2AC inclusive seems to be used for | 358 | /* The entire range from 0x2300 to 0x2AC inclusive seems to be used for |
305 | // immediate vertices */ | 359 | * immediate vertices |
360 | */ | ||
306 | #define R300_VAP_VTX_COLOR_R 0x2464 | 361 | #define R300_VAP_VTX_COLOR_R 0x2464 |
307 | #define R300_VAP_VTX_COLOR_G 0x2468 | 362 | #define R300_VAP_VTX_COLOR_G 0x2468 |
308 | #define R300_VAP_VTX_COLOR_B 0x246C | 363 | #define R300_VAP_VTX_COLOR_B 0x246C |
309 | #define R300_VAP_VTX_POS_0_X_1 0x2490 /* used for glVertex2*() */ | 364 | #define R300_VAP_VTX_POS_0_X_1 0x2490 /* used for glVertex2*() */ |
310 | #define R300_VAP_VTX_POS_0_Y_1 0x2494 | 365 | #define R300_VAP_VTX_POS_0_Y_1 0x2494 |
311 | #define R300_VAP_VTX_COLOR_PKD 0x249C /* RGBA */ | 366 | #define R300_VAP_VTX_COLOR_PKD 0x249C /* RGBA */ |
312 | #define R300_VAP_VTX_POS_0_X_2 0x24A0 /* used for glVertex3*() */ | 367 | #define R300_VAP_VTX_POS_0_X_2 0x24A0 /* used for glVertex3*() */ |
313 | #define R300_VAP_VTX_POS_0_Y_2 0x24A4 | 368 | #define R300_VAP_VTX_POS_0_Y_2 0x24A4 |
314 | #define R300_VAP_VTX_POS_0_Z_2 0x24A8 | 369 | #define R300_VAP_VTX_POS_0_Z_2 0x24A8 |
315 | #define R300_VAP_VTX_END_OF_PKT 0x24AC /* write 0 to indicate end of packet? */ | 370 | /* write 0 to indicate end of packet? */ |
371 | #define R300_VAP_VTX_END_OF_PKT 0x24AC | ||
316 | 372 | ||
317 | /* gap */ | 373 | /* gap */ |
318 | 374 | ||
319 | /* These are values from r300_reg/r300_reg.h - they are known to be correct | 375 | /* These are values from r300_reg/r300_reg.h - they are known to be correct |
320 | and are here so we can use one register file instead of several | 376 | * and are here so we can use one register file instead of several |
321 | - Vladimir */ | 377 | * - Vladimir |
378 | */ | ||
322 | #define R300_GB_VAP_RASTER_VTX_FMT_0 0x4000 | 379 | #define R300_GB_VAP_RASTER_VTX_FMT_0 0x4000 |
323 | # define R300_GB_VAP_RASTER_VTX_FMT_0__POS_PRESENT (1<<0) | 380 | # define R300_GB_VAP_RASTER_VTX_FMT_0__POS_PRESENT (1<<0) |
324 | # define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_0_PRESENT (1<<1) | 381 | # define R300_GB_VAP_RASTER_VTX_FMT_0__COLOR_0_PRESENT (1<<1) |
@@ -341,14 +398,16 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
341 | # define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 | 398 | # define R300_GB_VAP_RASTER_VTX_FMT_1__TEX_7_COMP_CNT_SHIFT 21 |
342 | 399 | ||
343 | /* UNK30 seems to enables point to quad transformation on textures | 400 | /* UNK30 seems to enables point to quad transformation on textures |
344 | (or something closely related to that). | 401 | * (or something closely related to that). |
345 | This bit is rather fatal at the time being due to lackings at pixel shader side */ | 402 | * This bit is rather fatal at the time being due to lackings at pixel |
403 | * shader side | ||
404 | */ | ||
346 | #define R300_GB_ENABLE 0x4008 | 405 | #define R300_GB_ENABLE 0x4008 |
347 | # define R300_GB_POINT_STUFF_ENABLE (1<<0) | 406 | # define R300_GB_POINT_STUFF_ENABLE (1<<0) |
348 | # define R300_GB_LINE_STUFF_ENABLE (1<<1) | 407 | # define R300_GB_LINE_STUFF_ENABLE (1<<1) |
349 | # define R300_GB_TRIANGLE_STUFF_ENABLE (1<<2) | 408 | # define R300_GB_TRIANGLE_STUFF_ENABLE (1<<2) |
350 | # define R300_GB_STENCIL_AUTO_ENABLE (1<<4) | 409 | # define R300_GB_STENCIL_AUTO_ENABLE (1<<4) |
351 | # define R300_GB_UNK30 (1<<30) | 410 | # define R300_GB_UNK31 (1<<31) |
352 | /* each of the following is 2 bits wide */ | 411 | /* each of the following is 2 bits wide */ |
353 | #define R300_GB_TEX_REPLICATE 0 | 412 | #define R300_GB_TEX_REPLICATE 0 |
354 | #define R300_GB_TEX_ST 1 | 413 | #define R300_GB_TEX_ST 1 |
@@ -383,11 +442,13 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
383 | # define R300_GB_MSPOS1__MS_Y5_SHIFT 20 | 442 | # define R300_GB_MSPOS1__MS_Y5_SHIFT 20 |
384 | # define R300_GB_MSPOS1__MSBD1 24 | 443 | # define R300_GB_MSPOS1__MSBD1 24 |
385 | 444 | ||
445 | |||
386 | #define R300_GB_TILE_CONFIG 0x4018 | 446 | #define R300_GB_TILE_CONFIG 0x4018 |
387 | # define R300_GB_TILE_ENABLE (1<<0) | 447 | # define R300_GB_TILE_ENABLE (1<<0) |
388 | # define R300_GB_TILE_PIPE_COUNT_RV300 0 | 448 | # define R300_GB_TILE_PIPE_COUNT_RV300 0 |
389 | # define R300_GB_TILE_PIPE_COUNT_R300 (3<<1) | 449 | # define R300_GB_TILE_PIPE_COUNT_R300 (3<<1) |
390 | # define R300_GB_TILE_PIPE_COUNT_R420 (7<<1) | 450 | # define R300_GB_TILE_PIPE_COUNT_R420 (7<<1) |
451 | # define R300_GB_TILE_PIPE_COUNT_RV410 (3<<1) | ||
391 | # define R300_GB_TILE_SIZE_8 0 | 452 | # define R300_GB_TILE_SIZE_8 0 |
392 | # define R300_GB_TILE_SIZE_16 (1<<4) | 453 | # define R300_GB_TILE_SIZE_16 (1<<4) |
393 | # define R300_GB_TILE_SIZE_32 (2<<4) | 454 | # define R300_GB_TILE_SIZE_32 (2<<4) |
@@ -442,17 +503,18 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
442 | # define R300_GB_W_SELECT_1 (1<<4) | 503 | # define R300_GB_W_SELECT_1 (1<<4) |
443 | 504 | ||
444 | #define R300_GB_AA_CONFIG 0x4020 | 505 | #define R300_GB_AA_CONFIG 0x4020 |
506 | # define R300_AA_DISABLE 0x00 | ||
445 | # define R300_AA_ENABLE 0x01 | 507 | # define R300_AA_ENABLE 0x01 |
446 | # define R300_AA_SUBSAMPLES_2 0 | 508 | # define R300_AA_SUBSAMPLES_2 0 |
447 | # define R300_AA_SUBSAMPLES_3 (1<<1) | 509 | # define R300_AA_SUBSAMPLES_3 (1<<1) |
448 | # define R300_AA_SUBSAMPLES_4 (2<<1) | 510 | # define R300_AA_SUBSAMPLES_4 (2<<1) |
449 | # define R300_AA_SUBSAMPLES_6 (3<<1) | 511 | # define R300_AA_SUBSAMPLES_6 (3<<1) |
450 | 512 | ||
451 | /* END */ | ||
452 | |||
453 | /* gap */ | 513 | /* gap */ |
514 | |||
454 | /* Zero to flush caches. */ | 515 | /* Zero to flush caches. */ |
455 | #define R300_TX_CNTL 0x4100 | 516 | #define R300_TX_CNTL 0x4100 |
517 | #define R300_TX_FLUSH 0x0 | ||
456 | 518 | ||
457 | /* The upper enable bits are guessed, based on fglrx reported limits. */ | 519 | /* The upper enable bits are guessed, based on fglrx reported limits. */ |
458 | #define R300_TX_ENABLE 0x4104 | 520 | #define R300_TX_ENABLE 0x4104 |
@@ -474,24 +536,25 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
474 | # define R300_TX_ENABLE_15 (1 << 15) | 536 | # define R300_TX_ENABLE_15 (1 << 15) |
475 | 537 | ||
476 | /* The pointsize is given in multiples of 6. The pointsize can be | 538 | /* The pointsize is given in multiples of 6. The pointsize can be |
477 | // enormous: Clear() renders a single point that fills the entire | 539 | * enormous: Clear() renders a single point that fills the entire |
478 | // framebuffer. */ | 540 | * framebuffer. |
541 | */ | ||
479 | #define R300_RE_POINTSIZE 0x421C | 542 | #define R300_RE_POINTSIZE 0x421C |
480 | # define R300_POINTSIZE_Y_SHIFT 0 | 543 | # define R300_POINTSIZE_Y_SHIFT 0 |
481 | # define R300_POINTSIZE_Y_MASK (0xFFFF << 0) /* GUESS */ | 544 | # define R300_POINTSIZE_Y_MASK (0xFFFF << 0) /* GUESS */ |
482 | # define R300_POINTSIZE_X_SHIFT 16 | 545 | # define R300_POINTSIZE_X_SHIFT 16 |
483 | # define R300_POINTSIZE_X_MASK (0xFFFF << 16) /* GUESS */ | 546 | # define R300_POINTSIZE_X_MASK (0xFFFF << 16) /* GUESS */ |
484 | # define R300_POINTSIZE_MAX (R300_POINTSIZE_Y_MASK / 6) | 547 | # define R300_POINTSIZE_MAX (R300_POINTSIZE_Y_MASK / 6) |
485 | 548 | ||
486 | /* The line width is given in multiples of 6. | 549 | /* The line width is given in multiples of 6. |
487 | In default mode lines are classified as vertical lines. | 550 | * In default mode lines are classified as vertical lines. |
488 | HO: horizontal | 551 | * HO: horizontal |
489 | VE: vertical or horizontal | 552 | * VE: vertical or horizontal |
490 | HO & VE: no classification | 553 | * HO & VE: no classification |
491 | */ | 554 | */ |
492 | #define R300_RE_LINE_CNT 0x4234 | 555 | #define R300_RE_LINE_CNT 0x4234 |
493 | # define R300_LINESIZE_SHIFT 0 | 556 | # define R300_LINESIZE_SHIFT 0 |
494 | # define R300_LINESIZE_MASK (0xFFFF << 0) /* GUESS */ | 557 | # define R300_LINESIZE_MASK (0xFFFF << 0) /* GUESS */ |
495 | # define R300_LINESIZE_MAX (R300_LINESIZE_MASK / 6) | 558 | # define R300_LINESIZE_MAX (R300_LINESIZE_MASK / 6) |
496 | # define R300_LINE_CNT_HO (1 << 16) | 559 | # define R300_LINE_CNT_HO (1 << 16) |
497 | # define R300_LINE_CNT_VE (1 << 17) | 560 | # define R300_LINE_CNT_VE (1 << 17) |
@@ -499,6 +562,9 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
499 | /* Some sort of scale or clamp value for texcoordless textures. */ | 562 | /* Some sort of scale or clamp value for texcoordless textures. */ |
500 | #define R300_RE_UNK4238 0x4238 | 563 | #define R300_RE_UNK4238 0x4238 |
501 | 564 | ||
565 | /* Something shade related */ | ||
566 | #define R300_RE_SHADE 0x4274 | ||
567 | |||
502 | #define R300_RE_SHADE_MODEL 0x4278 | 568 | #define R300_RE_SHADE_MODEL 0x4278 |
503 | # define R300_RE_SHADE_MODEL_SMOOTH 0x3aaaa | 569 | # define R300_RE_SHADE_MODEL_SMOOTH 0x3aaaa |
504 | # define R300_RE_SHADE_MODEL_FLAT 0x39595 | 570 | # define R300_RE_SHADE_MODEL_FLAT 0x39595 |
@@ -513,24 +579,31 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
513 | # define R300_PM_BACK_LINE (1 << 7) | 579 | # define R300_PM_BACK_LINE (1 << 7) |
514 | # define R300_PM_BACK_FILL (1 << 8) | 580 | # define R300_PM_BACK_FILL (1 << 8) |
515 | 581 | ||
582 | /* Fog parameters */ | ||
583 | #define R300_RE_FOG_SCALE 0x4294 | ||
584 | #define R300_RE_FOG_START 0x4298 | ||
585 | |||
516 | /* Not sure why there are duplicate of factor and constant values. | 586 | /* Not sure why there are duplicate of factor and constant values. |
517 | My best guess so far is that there are seperate zbiases for test and write. | 587 | * My best guess so far is that there are seperate zbiases for test and write. |
518 | Ordering might be wrong. | 588 | * Ordering might be wrong. |
519 | Some of the tests indicate that fgl has a fallback implementation of zbias | 589 | * Some of the tests indicate that fgl has a fallback implementation of zbias |
520 | via pixel shaders. */ | 590 | * via pixel shaders. |
591 | */ | ||
592 | #define R300_RE_ZBIAS_CNTL 0x42A0 /* GUESS */ | ||
521 | #define R300_RE_ZBIAS_T_FACTOR 0x42A4 | 593 | #define R300_RE_ZBIAS_T_FACTOR 0x42A4 |
522 | #define R300_RE_ZBIAS_T_CONSTANT 0x42A8 | 594 | #define R300_RE_ZBIAS_T_CONSTANT 0x42A8 |
523 | #define R300_RE_ZBIAS_W_FACTOR 0x42AC | 595 | #define R300_RE_ZBIAS_W_FACTOR 0x42AC |
524 | #define R300_RE_ZBIAS_W_CONSTANT 0x42B0 | 596 | #define R300_RE_ZBIAS_W_CONSTANT 0x42B0 |
525 | 597 | ||
526 | /* This register needs to be set to (1<<1) for RV350 to correctly | 598 | /* This register needs to be set to (1<<1) for RV350 to correctly |
527 | perform depth test (see --vb-triangles in r300_demo) | 599 | * perform depth test (see --vb-triangles in r300_demo) |
528 | Don't know about other chips. - Vladimir | 600 | * Don't know about other chips. - Vladimir |
529 | This is set to 3 when GL_POLYGON_OFFSET_FILL is on. | 601 | * This is set to 3 when GL_POLYGON_OFFSET_FILL is on. |
530 | My guess is that there are two bits for each zbias primitive (FILL, LINE, POINT). | 602 | * My guess is that there are two bits for each zbias primitive |
531 | One to enable depth test and one for depth write. | 603 | * (FILL, LINE, POINT). |
532 | Yet this doesnt explain why depth writes work ... | 604 | * One to enable depth test and one for depth write. |
533 | */ | 605 | * Yet this doesnt explain why depth writes work ... |
606 | */ | ||
534 | #define R300_RE_OCCLUSION_CNTL 0x42B4 | 607 | #define R300_RE_OCCLUSION_CNTL 0x42B4 |
535 | # define R300_OCCLUSION_ON (1<<1) | 608 | # define R300_OCCLUSION_ON (1<<1) |
536 | 609 | ||
@@ -540,30 +613,38 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
540 | # define R300_FRONT_FACE_CCW (0 << 2) | 613 | # define R300_FRONT_FACE_CCW (0 << 2) |
541 | # define R300_FRONT_FACE_CW (1 << 2) | 614 | # define R300_FRONT_FACE_CW (1 << 2) |
542 | 615 | ||
543 | /* BEGIN: Rasterization / Interpolators - many guesses | 616 | |
544 | // 0_UNKNOWN_18 has always been set except for clear operations. | 617 | /* BEGIN: Rasterization / Interpolators - many guesses */ |
545 | // TC_CNT is the number of incoming texture coordinate sets (i.e. it depends | 618 | |
546 | // on the vertex program, *not* the fragment program) */ | 619 | /* 0_UNKNOWN_18 has always been set except for clear operations. |
620 | * TC_CNT is the number of incoming texture coordinate sets (i.e. it depends | ||
621 | * on the vertex program, *not* the fragment program) | ||
622 | */ | ||
547 | #define R300_RS_CNTL_0 0x4300 | 623 | #define R300_RS_CNTL_0 0x4300 |
548 | # define R300_RS_CNTL_TC_CNT_SHIFT 2 | 624 | # define R300_RS_CNTL_TC_CNT_SHIFT 2 |
549 | # define R300_RS_CNTL_TC_CNT_MASK (7 << 2) | 625 | # define R300_RS_CNTL_TC_CNT_MASK (7 << 2) |
550 | # define R300_RS_CNTL_CI_CNT_SHIFT 7 /* number of color interpolators used */ | 626 | /* number of color interpolators used */ |
627 | # define R300_RS_CNTL_CI_CNT_SHIFT 7 | ||
551 | # define R300_RS_CNTL_0_UNKNOWN_18 (1 << 18) | 628 | # define R300_RS_CNTL_0_UNKNOWN_18 (1 << 18) |
552 | /* Guess: RS_CNTL_1 holds the index of the highest used RS_ROUTE_n register. */ | 629 | /* Guess: RS_CNTL_1 holds the index of the highest used RS_ROUTE_n |
630 | register. */ | ||
553 | #define R300_RS_CNTL_1 0x4304 | 631 | #define R300_RS_CNTL_1 0x4304 |
554 | 632 | ||
555 | /* gap */ | 633 | /* gap */ |
634 | |||
556 | /* Only used for texture coordinates. | 635 | /* Only used for texture coordinates. |
557 | // Use the source field to route texture coordinate input from the vertex program | 636 | * Use the source field to route texture coordinate input from the |
558 | // to the desired interpolator. Note that the source field is relative to the | 637 | * vertex program to the desired interpolator. Note that the source |
559 | // outputs the vertex program *actually* writes. If a vertex program only writes | 638 | * field is relative to the outputs the vertex program *actually* |
560 | // texcoord[1], this will be source index 0. | 639 | * writes. If a vertex program only writes texcoord[1], this will |
561 | // Set INTERP_USED on all interpolators that produce data used by the | 640 | * be source index 0. |
562 | // fragment program. INTERP_USED looks like a swizzling mask, but | 641 | * Set INTERP_USED on all interpolators that produce data used by |
563 | // I haven't seen it used that way. | 642 | * the fragment program. INTERP_USED looks like a swizzling mask, |
564 | // | 643 | * but I haven't seen it used that way. |
565 | // Note: The _UNKNOWN constants are always set in their respective register. | 644 | * |
566 | // I don't know if this is necessary. */ | 645 | * Note: The _UNKNOWN constants are always set in their respective |
646 | * register. I don't know if this is necessary. | ||
647 | */ | ||
567 | #define R300_RS_INTERP_0 0x4310 | 648 | #define R300_RS_INTERP_0 0x4310 |
568 | #define R300_RS_INTERP_1 0x4314 | 649 | #define R300_RS_INTERP_1 0x4314 |
569 | # define R300_RS_INTERP_1_UNKNOWN 0x40 | 650 | # define R300_RS_INTERP_1_UNKNOWN 0x40 |
@@ -580,54 +661,63 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
580 | # define R300_RS_INTERP_USED 0x00D10000 | 661 | # define R300_RS_INTERP_USED 0x00D10000 |
581 | 662 | ||
582 | /* These DWORDs control how vertex data is routed into fragment program | 663 | /* These DWORDs control how vertex data is routed into fragment program |
583 | // registers, after interpolators. */ | 664 | * registers, after interpolators. |
665 | */ | ||
584 | #define R300_RS_ROUTE_0 0x4330 | 666 | #define R300_RS_ROUTE_0 0x4330 |
585 | #define R300_RS_ROUTE_1 0x4334 | 667 | #define R300_RS_ROUTE_1 0x4334 |
586 | #define R300_RS_ROUTE_2 0x4338 | 668 | #define R300_RS_ROUTE_2 0x4338 |
587 | #define R300_RS_ROUTE_3 0x433C /* GUESS */ | 669 | #define R300_RS_ROUTE_3 0x433C /* GUESS */ |
588 | #define R300_RS_ROUTE_4 0x4340 /* GUESS */ | 670 | #define R300_RS_ROUTE_4 0x4340 /* GUESS */ |
589 | #define R300_RS_ROUTE_5 0x4344 /* GUESS */ | 671 | #define R300_RS_ROUTE_5 0x4344 /* GUESS */ |
590 | #define R300_RS_ROUTE_6 0x4348 /* GUESS */ | 672 | #define R300_RS_ROUTE_6 0x4348 /* GUESS */ |
591 | #define R300_RS_ROUTE_7 0x434C /* GUESS */ | 673 | #define R300_RS_ROUTE_7 0x434C /* GUESS */ |
592 | # define R300_RS_ROUTE_SOURCE_INTERP_0 0 | 674 | # define R300_RS_ROUTE_SOURCE_INTERP_0 0 |
593 | # define R300_RS_ROUTE_SOURCE_INTERP_1 1 | 675 | # define R300_RS_ROUTE_SOURCE_INTERP_1 1 |
594 | # define R300_RS_ROUTE_SOURCE_INTERP_2 2 | 676 | # define R300_RS_ROUTE_SOURCE_INTERP_2 2 |
595 | # define R300_RS_ROUTE_SOURCE_INTERP_3 3 | 677 | # define R300_RS_ROUTE_SOURCE_INTERP_3 3 |
596 | # define R300_RS_ROUTE_SOURCE_INTERP_4 4 | 678 | # define R300_RS_ROUTE_SOURCE_INTERP_4 4 |
597 | # define R300_RS_ROUTE_SOURCE_INTERP_5 5 /* GUESS */ | 679 | # define R300_RS_ROUTE_SOURCE_INTERP_5 5 /* GUESS */ |
598 | # define R300_RS_ROUTE_SOURCE_INTERP_6 6 /* GUESS */ | 680 | # define R300_RS_ROUTE_SOURCE_INTERP_6 6 /* GUESS */ |
599 | # define R300_RS_ROUTE_SOURCE_INTERP_7 7 /* GUESS */ | 681 | # define R300_RS_ROUTE_SOURCE_INTERP_7 7 /* GUESS */ |
600 | # define R300_RS_ROUTE_ENABLE (1 << 3) /* GUESS */ | 682 | # define R300_RS_ROUTE_ENABLE (1 << 3) /* GUESS */ |
601 | # define R300_RS_ROUTE_DEST_SHIFT 6 | 683 | # define R300_RS_ROUTE_DEST_SHIFT 6 |
602 | # define R300_RS_ROUTE_DEST_MASK (31 << 6) /* GUESS */ | 684 | # define R300_RS_ROUTE_DEST_MASK (31 << 6) /* GUESS */ |
603 | 685 | ||
604 | /* Special handling for color: When the fragment program uses color, | 686 | /* Special handling for color: When the fragment program uses color, |
605 | // the ROUTE_0_COLOR bit is set and ROUTE_0_COLOR_DEST contains the | 687 | * the ROUTE_0_COLOR bit is set and ROUTE_0_COLOR_DEST contains the |
606 | // color register index. */ | 688 | * color register index. |
689 | * | ||
690 | * Apperently you may set the R300_RS_ROUTE_0_COLOR bit, but not provide any | ||
691 | * R300_RS_ROUTE_0_COLOR_DEST value; this setup is used for clearing the state. | ||
692 | * See r300_ioctl.c:r300EmitClearState. I'm not sure if this setup is strictly | ||
693 | * correct or not. - Oliver. | ||
694 | */ | ||
607 | # define R300_RS_ROUTE_0_COLOR (1 << 14) | 695 | # define R300_RS_ROUTE_0_COLOR (1 << 14) |
608 | # define R300_RS_ROUTE_0_COLOR_DEST_SHIFT 17 | 696 | # define R300_RS_ROUTE_0_COLOR_DEST_SHIFT 17 |
609 | # define R300_RS_ROUTE_0_COLOR_DEST_MASK (31 << 17) /* GUESS */ | 697 | # define R300_RS_ROUTE_0_COLOR_DEST_MASK (31 << 17) /* GUESS */ |
610 | /* As above, but for secondary color */ | 698 | /* As above, but for secondary color */ |
611 | # define R300_RS_ROUTE_1_COLOR1 (1 << 14) | 699 | # define R300_RS_ROUTE_1_COLOR1 (1 << 14) |
612 | # define R300_RS_ROUTE_1_COLOR1_DEST_SHIFT 17 | 700 | # define R300_RS_ROUTE_1_COLOR1_DEST_SHIFT 17 |
613 | # define R300_RS_ROUTE_1_COLOR1_DEST_MASK (31 << 17) | 701 | # define R300_RS_ROUTE_1_COLOR1_DEST_MASK (31 << 17) |
614 | # define R300_RS_ROUTE_1_UNKNOWN11 (1 << 11) | 702 | # define R300_RS_ROUTE_1_UNKNOWN11 (1 << 11) |
615 | /* END */ | 703 | /* END: Rasterization / Interpolators - many guesses */ |
616 | 704 | ||
617 | /* BEGIN: Scissors and cliprects | 705 | /* BEGIN: Scissors and cliprects */ |
618 | // There are four clipping rectangles. Their corner coordinates are inclusive. | 706 | |
619 | // Every pixel is assigned a number from 0 and 15 by setting bits 0-3 depending | 707 | /* There are four clipping rectangles. Their corner coordinates are inclusive. |
620 | // on whether the pixel is inside cliprects 0-3, respectively. For example, | 708 | * Every pixel is assigned a number from 0 and 15 by setting bits 0-3 depending |
621 | // if a pixel is inside cliprects 0 and 1, but outside 2 and 3, it is assigned | 709 | * on whether the pixel is inside cliprects 0-3, respectively. For example, |
622 | // the number 3 (binary 0011). | 710 | * if a pixel is inside cliprects 0 and 1, but outside 2 and 3, it is assigned |
623 | // Iff the bit corresponding to the pixel's number in RE_CLIPRECT_CNTL is set, | 711 | * the number 3 (binary 0011). |
624 | // the pixel is rasterized. | 712 | * Iff the bit corresponding to the pixel's number in RE_CLIPRECT_CNTL is set, |
625 | // | 713 | * the pixel is rasterized. |
626 | // In addition to this, there is a scissors rectangle. Only pixels inside the | 714 | * |
627 | // scissors rectangle are drawn. (coordinates are inclusive) | 715 | * In addition to this, there is a scissors rectangle. Only pixels inside the |
628 | // | 716 | * scissors rectangle are drawn. (coordinates are inclusive) |
629 | // For some reason, the top-left corner of the framebuffer is at (1440, 1440) | 717 | * |
630 | // for the purpose of clipping and scissors. */ | 718 | * For some reason, the top-left corner of the framebuffer is at (1440, 1440) |
719 | * for the purpose of clipping and scissors. | ||
720 | */ | ||
631 | #define R300_RE_CLIPRECT_TL_0 0x43B0 | 721 | #define R300_RE_CLIPRECT_TL_0 0x43B0 |
632 | #define R300_RE_CLIPRECT_BR_0 0x43B4 | 722 | #define R300_RE_CLIPRECT_BR_0 0x43B4 |
633 | #define R300_RE_CLIPRECT_TL_1 0x43B8 | 723 | #define R300_RE_CLIPRECT_TL_1 0x43B8 |
@@ -661,6 +751,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
661 | # define R300_CLIP_3210 (1 << 15) | 751 | # define R300_CLIP_3210 (1 << 15) |
662 | 752 | ||
663 | /* gap */ | 753 | /* gap */ |
754 | |||
664 | #define R300_RE_SCISSORS_TL 0x43E0 | 755 | #define R300_RE_SCISSORS_TL 0x43E0 |
665 | #define R300_RE_SCISSORS_BR 0x43E4 | 756 | #define R300_RE_SCISSORS_BR 0x43E4 |
666 | # define R300_SCISSORS_OFFSET 1440 | 757 | # define R300_SCISSORS_OFFSET 1440 |
@@ -668,12 +759,15 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
668 | # define R300_SCISSORS_X_MASK (0x1FFF << 0) | 759 | # define R300_SCISSORS_X_MASK (0x1FFF << 0) |
669 | # define R300_SCISSORS_Y_SHIFT 13 | 760 | # define R300_SCISSORS_Y_SHIFT 13 |
670 | # define R300_SCISSORS_Y_MASK (0x1FFF << 13) | 761 | # define R300_SCISSORS_Y_MASK (0x1FFF << 13) |
671 | /* END */ | 762 | /* END: Scissors and cliprects */ |
672 | 763 | ||
673 | /* BEGIN: Texture specification | 764 | /* BEGIN: Texture specification */ |
674 | // The texture specification dwords are grouped by meaning and not by texture unit. | 765 | |
675 | // This means that e.g. the offset for texture image unit N is found in register | 766 | /* |
676 | // TX_OFFSET_0 + (4*N) */ | 767 | * The texture specification dwords are grouped by meaning and not by texture |
768 | * unit. This means that e.g. the offset for texture image unit N is found in | ||
769 | * register TX_OFFSET_0 + (4*N) | ||
770 | */ | ||
677 | #define R300_TX_FILTER_0 0x4400 | 771 | #define R300_TX_FILTER_0 0x4400 |
678 | # define R300_TX_REPEAT 0 | 772 | # define R300_TX_REPEAT 0 |
679 | # define R300_TX_MIRRORED 1 | 773 | # define R300_TX_MIRRORED 1 |
@@ -697,13 +791,14 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
697 | # define R300_TX_MIN_FILTER_LINEAR_MIP_LINEAR (10 << 11) | 791 | # define R300_TX_MIN_FILTER_LINEAR_MIP_LINEAR (10 << 11) |
698 | 792 | ||
699 | /* NOTE: NEAREST doesnt seem to exist. | 793 | /* NOTE: NEAREST doesnt seem to exist. |
700 | Im not seting MAG_FILTER_MASK and (3 << 11) on for all | 794 | * Im not seting MAG_FILTER_MASK and (3 << 11) on for all |
701 | anisotropy modes because that would void selected mag filter */ | 795 | * anisotropy modes because that would void selected mag filter |
702 | # define R300_TX_MIN_FILTER_ANISO_NEAREST ((0 << 13) /*|R300_TX_MAG_FILTER_MASK|(3<<11)*/) | 796 | */ |
703 | # define R300_TX_MIN_FILTER_ANISO_LINEAR ((0 << 13) /*|R300_TX_MAG_FILTER_MASK|(3<<11)*/) | 797 | # define R300_TX_MIN_FILTER_ANISO_NEAREST (0 << 13) |
704 | # define R300_TX_MIN_FILTER_ANISO_NEAREST_MIP_NEAREST ((1 << 13) /*|R300_TX_MAG_FILTER_MASK|(3<<11)*/) | 798 | # define R300_TX_MIN_FILTER_ANISO_LINEAR (0 << 13) |
705 | # define R300_TX_MIN_FILTER_ANISO_NEAREST_MIP_LINEAR ((2 << 13) /*|R300_TX_MAG_FILTER_MASK|(3<<11)*/) | 799 | # define R300_TX_MIN_FILTER_ANISO_NEAREST_MIP_NEAREST (1 << 13) |
706 | # define R300_TX_MIN_FILTER_MASK ( (15 << 11) | (3 << 13) ) | 800 | # define R300_TX_MIN_FILTER_ANISO_NEAREST_MIP_LINEAR (2 << 13) |
801 | # define R300_TX_MIN_FILTER_MASK ( (15 << 11) | (3 << 13) ) | ||
707 | # define R300_TX_MAX_ANISO_1_TO_1 (0 << 21) | 802 | # define R300_TX_MAX_ANISO_1_TO_1 (0 << 21) |
708 | # define R300_TX_MAX_ANISO_2_TO_1 (2 << 21) | 803 | # define R300_TX_MAX_ANISO_2_TO_1 (2 << 21) |
709 | # define R300_TX_MAX_ANISO_4_TO_1 (4 << 21) | 804 | # define R300_TX_MAX_ANISO_4_TO_1 (4 << 21) |
@@ -734,10 +829,10 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
734 | # define R300_TX_HEIGHTMASK_SHIFT 11 | 829 | # define R300_TX_HEIGHTMASK_SHIFT 11 |
735 | # define R300_TX_HEIGHTMASK_MASK (2047 << 11) | 830 | # define R300_TX_HEIGHTMASK_MASK (2047 << 11) |
736 | # define R300_TX_UNK23 (1 << 23) | 831 | # define R300_TX_UNK23 (1 << 23) |
737 | # define R300_TX_SIZE_SHIFT 26 /* largest of width, height */ | 832 | # define R300_TX_MAX_MIP_LEVEL_SHIFT 26 |
738 | # define R300_TX_SIZE_MASK (15 << 26) | 833 | # define R300_TX_MAX_MIP_LEVEL_MASK (0xf << 26) |
739 | # define R300_TX_SIZE_PROJECTED (1<<30) | 834 | # define R300_TX_SIZE_PROJECTED (1<<30) |
740 | # define R300_TX_SIZE_TXPITCH_EN (1<<31) | 835 | # define R300_TX_SIZE_TXPITCH_EN (1<<31) |
741 | #define R300_TX_FORMAT_0 0x44C0 | 836 | #define R300_TX_FORMAT_0 0x44C0 |
742 | /* The interpretation of the format word by Wladimir van der Laan */ | 837 | /* The interpretation of the format word by Wladimir van der Laan */ |
743 | /* The X, Y, Z and W refer to the layout of the components. | 838 | /* The X, Y, Z and W refer to the layout of the components. |
@@ -761,11 +856,11 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
761 | # define R300_TX_FORMAT_DXT1 0xF | 856 | # define R300_TX_FORMAT_DXT1 0xF |
762 | # define R300_TX_FORMAT_DXT3 0x10 | 857 | # define R300_TX_FORMAT_DXT3 0x10 |
763 | # define R300_TX_FORMAT_DXT5 0x11 | 858 | # define R300_TX_FORMAT_DXT5 0x11 |
764 | # define R300_TX_FORMAT_D3DMFT_CxV8U8 0x12 /* no swizzle */ | 859 | # define R300_TX_FORMAT_D3DMFT_CxV8U8 0x12 /* no swizzle */ |
765 | # define R300_TX_FORMAT_A8R8G8B8 0x13 /* no swizzle */ | 860 | # define R300_TX_FORMAT_A8R8G8B8 0x13 /* no swizzle */ |
766 | # define R300_TX_FORMAT_B8G8_B8G8 0x14 /* no swizzle */ | 861 | # define R300_TX_FORMAT_B8G8_B8G8 0x14 /* no swizzle */ |
767 | # define R300_TX_FORMAT_G8R8_G8B8 0x15 /* no swizzle */ | 862 | # define R300_TX_FORMAT_G8R8_G8B8 0x15 /* no swizzle */ |
768 | /* 0x16 - some 16 bit green format.. ?? */ | 863 | /* 0x16 - some 16 bit green format.. ?? */ |
769 | # define R300_TX_FORMAT_UNK25 (1 << 25) /* no swizzle */ | 864 | # define R300_TX_FORMAT_UNK25 (1 << 25) /* no swizzle */ |
770 | # define R300_TX_FORMAT_CUBIC_MAP (1 << 26) | 865 | # define R300_TX_FORMAT_CUBIC_MAP (1 << 26) |
771 | 866 | ||
@@ -793,23 +888,26 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
793 | # define R300_TX_FORMAT_W 3 | 888 | # define R300_TX_FORMAT_W 3 |
794 | # define R300_TX_FORMAT_ZERO 4 | 889 | # define R300_TX_FORMAT_ZERO 4 |
795 | # define R300_TX_FORMAT_ONE 5 | 890 | # define R300_TX_FORMAT_ONE 5 |
796 | # define R300_TX_FORMAT_CUT_Z 6 /* 2.0*Z, everything above 1.0 is set to 0.0 */ | 891 | /* 2.0*Z, everything above 1.0 is set to 0.0 */ |
797 | # define R300_TX_FORMAT_CUT_W 7 /* 2.0*W, everything above 1.0 is set to 0.0 */ | 892 | # define R300_TX_FORMAT_CUT_Z 6 |
893 | /* 2.0*W, everything above 1.0 is set to 0.0 */ | ||
894 | # define R300_TX_FORMAT_CUT_W 7 | ||
798 | 895 | ||
799 | # define R300_TX_FORMAT_B_SHIFT 18 | 896 | # define R300_TX_FORMAT_B_SHIFT 18 |
800 | # define R300_TX_FORMAT_G_SHIFT 15 | 897 | # define R300_TX_FORMAT_G_SHIFT 15 |
801 | # define R300_TX_FORMAT_R_SHIFT 12 | 898 | # define R300_TX_FORMAT_R_SHIFT 12 |
802 | # define R300_TX_FORMAT_A_SHIFT 9 | 899 | # define R300_TX_FORMAT_A_SHIFT 9 |
803 | /* Convenience macro to take care of layout and swizzling */ | 900 | /* Convenience macro to take care of layout and swizzling */ |
804 | # define R300_EASY_TX_FORMAT(B, G, R, A, FMT) (\ | 901 | # define R300_EASY_TX_FORMAT(B, G, R, A, FMT) ( \ |
805 | ((R300_TX_FORMAT_##B)<<R300_TX_FORMAT_B_SHIFT) \ | 902 | ((R300_TX_FORMAT_##B)<<R300_TX_FORMAT_B_SHIFT) \ |
806 | | ((R300_TX_FORMAT_##G)<<R300_TX_FORMAT_G_SHIFT) \ | 903 | | ((R300_TX_FORMAT_##G)<<R300_TX_FORMAT_G_SHIFT) \ |
807 | | ((R300_TX_FORMAT_##R)<<R300_TX_FORMAT_R_SHIFT) \ | 904 | | ((R300_TX_FORMAT_##R)<<R300_TX_FORMAT_R_SHIFT) \ |
808 | | ((R300_TX_FORMAT_##A)<<R300_TX_FORMAT_A_SHIFT) \ | 905 | | ((R300_TX_FORMAT_##A)<<R300_TX_FORMAT_A_SHIFT) \ |
809 | | (R300_TX_FORMAT_##FMT) \ | 906 | | (R300_TX_FORMAT_##FMT) \ |
810 | ) | 907 | ) |
811 | /* These can be ORed with result of R300_EASY_TX_FORMAT() */ | 908 | /* These can be ORed with result of R300_EASY_TX_FORMAT() |
812 | /* We don't really know what they do. Take values from a constant color ? */ | 909 | We don't really know what they do. Take values from a |
910 | constant color ? */ | ||
813 | # define R300_TX_FORMAT_CONST_X (1<<5) | 911 | # define R300_TX_FORMAT_CONST_X (1<<5) |
814 | # define R300_TX_FORMAT_CONST_Y (2<<5) | 912 | # define R300_TX_FORMAT_CONST_Y (2<<5) |
815 | # define R300_TX_FORMAT_CONST_Z (4<<5) | 913 | # define R300_TX_FORMAT_CONST_Z (4<<5) |
@@ -819,7 +917,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
819 | 917 | ||
820 | #define R300_TX_PITCH_0 0x4500 /* obvious missing in gap */ | 918 | #define R300_TX_PITCH_0 0x4500 /* obvious missing in gap */ |
821 | #define R300_TX_OFFSET_0 0x4540 | 919 | #define R300_TX_OFFSET_0 0x4540 |
822 | /* BEGIN: Guess from R200 */ | 920 | /* BEGIN: Guess from R200 */ |
823 | # define R300_TXO_ENDIAN_NO_SWAP (0 << 0) | 921 | # define R300_TXO_ENDIAN_NO_SWAP (0 << 0) |
824 | # define R300_TXO_ENDIAN_BYTE_SWAP (1 << 0) | 922 | # define R300_TXO_ENDIAN_BYTE_SWAP (1 << 0) |
825 | # define R300_TXO_ENDIAN_WORD_SWAP (2 << 0) | 923 | # define R300_TXO_ENDIAN_WORD_SWAP (2 << 0) |
@@ -828,53 +926,61 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
828 | # define R300_TXO_MICRO_TILE (1 << 3) | 926 | # define R300_TXO_MICRO_TILE (1 << 3) |
829 | # define R300_TXO_OFFSET_MASK 0xffffffe0 | 927 | # define R300_TXO_OFFSET_MASK 0xffffffe0 |
830 | # define R300_TXO_OFFSET_SHIFT 5 | 928 | # define R300_TXO_OFFSET_SHIFT 5 |
831 | /* END */ | 929 | /* END: Guess from R200 */ |
832 | #define R300_TX_CHROMA_KEY_0 0x4580 /* 32 bit chroma key */ | 930 | |
833 | #define R300_TX_BORDER_COLOR_0 0x45C0 //ff00ff00 == { 0, 1.0, 0, 1.0 } | 931 | /* 32 bit chroma key */ |
834 | 932 | #define R300_TX_CHROMA_KEY_0 0x4580 | |
835 | /* END */ | 933 | /* ff00ff00 == { 0, 1.0, 0, 1.0 } */ |
836 | 934 | #define R300_TX_BORDER_COLOR_0 0x45C0 | |
837 | /* BEGIN: Fragment program instruction set | 935 | |
838 | // Fragment programs are written directly into register space. | 936 | /* END: Texture specification */ |
839 | // There are separate instruction streams for texture instructions and ALU | 937 | |
840 | // instructions. | 938 | /* BEGIN: Fragment program instruction set */ |
841 | // In order to synchronize these streams, the program is divided into up | 939 | |
842 | // to 4 nodes. Each node begins with a number of TEX operations, followed | 940 | /* Fragment programs are written directly into register space. |
843 | // by a number of ALU operations. | 941 | * There are separate instruction streams for texture instructions and ALU |
844 | // The first node can have zero TEX ops, all subsequent nodes must have at least | 942 | * instructions. |
845 | // one TEX ops. | 943 | * In order to synchronize these streams, the program is divided into up |
846 | // All nodes must have at least one ALU op. | 944 | * to 4 nodes. Each node begins with a number of TEX operations, followed |
847 | // | 945 | * by a number of ALU operations. |
848 | // The index of the last node is stored in PFS_CNTL_0: A value of 0 means | 946 | * The first node can have zero TEX ops, all subsequent nodes must have at |
849 | // 1 node, a value of 3 means 4 nodes. | 947 | * least |
850 | // The total amount of instructions is defined in PFS_CNTL_2. The offsets are | 948 | * one TEX ops. |
851 | // offsets into the respective instruction streams, while *_END points to the | 949 | * All nodes must have at least one ALU op. |
852 | // last instruction relative to this offset. */ | 950 | * |
951 | * The index of the last node is stored in PFS_CNTL_0: A value of 0 means | ||
952 | * 1 node, a value of 3 means 4 nodes. | ||
953 | * The total amount of instructions is defined in PFS_CNTL_2. The offsets are | ||
954 | * offsets into the respective instruction streams, while *_END points to the | ||
955 | * last instruction relative to this offset. | ||
956 | */ | ||
853 | #define R300_PFS_CNTL_0 0x4600 | 957 | #define R300_PFS_CNTL_0 0x4600 |
854 | # define R300_PFS_CNTL_LAST_NODES_SHIFT 0 | 958 | # define R300_PFS_CNTL_LAST_NODES_SHIFT 0 |
855 | # define R300_PFS_CNTL_LAST_NODES_MASK (3 << 0) | 959 | # define R300_PFS_CNTL_LAST_NODES_MASK (3 << 0) |
856 | # define R300_PFS_CNTL_FIRST_NODE_HAS_TEX (1 << 3) | 960 | # define R300_PFS_CNTL_FIRST_NODE_HAS_TEX (1 << 3) |
857 | #define R300_PFS_CNTL_1 0x4604 | 961 | #define R300_PFS_CNTL_1 0x4604 |
858 | /* There is an unshifted value here which has so far always been equal to the | 962 | /* There is an unshifted value here which has so far always been equal to the |
859 | // index of the highest used temporary register. */ | 963 | * index of the highest used temporary register. |
964 | */ | ||
860 | #define R300_PFS_CNTL_2 0x4608 | 965 | #define R300_PFS_CNTL_2 0x4608 |
861 | # define R300_PFS_CNTL_ALU_OFFSET_SHIFT 0 | 966 | # define R300_PFS_CNTL_ALU_OFFSET_SHIFT 0 |
862 | # define R300_PFS_CNTL_ALU_OFFSET_MASK (63 << 0) | 967 | # define R300_PFS_CNTL_ALU_OFFSET_MASK (63 << 0) |
863 | # define R300_PFS_CNTL_ALU_END_SHIFT 6 | 968 | # define R300_PFS_CNTL_ALU_END_SHIFT 6 |
864 | # define R300_PFS_CNTL_ALU_END_MASK (63 << 0) | 969 | # define R300_PFS_CNTL_ALU_END_MASK (63 << 6) |
865 | # define R300_PFS_CNTL_TEX_OFFSET_SHIFT 12 | 970 | # define R300_PFS_CNTL_TEX_OFFSET_SHIFT 12 |
866 | # define R300_PFS_CNTL_TEX_OFFSET_MASK (31 << 12) /* GUESS */ | 971 | # define R300_PFS_CNTL_TEX_OFFSET_MASK (31 << 12) /* GUESS */ |
867 | # define R300_PFS_CNTL_TEX_END_SHIFT 18 | 972 | # define R300_PFS_CNTL_TEX_END_SHIFT 18 |
868 | # define R300_PFS_CNTL_TEX_END_MASK (31 << 18) /* GUESS */ | 973 | # define R300_PFS_CNTL_TEX_END_MASK (31 << 18) /* GUESS */ |
869 | 974 | ||
870 | /* gap */ | 975 | /* gap */ |
976 | |||
871 | /* Nodes are stored backwards. The last active node is always stored in | 977 | /* Nodes are stored backwards. The last active node is always stored in |
872 | // PFS_NODE_3. | 978 | * PFS_NODE_3. |
873 | // Example: In a 2-node program, NODE_0 and NODE_1 are set to 0. The | 979 | * Example: In a 2-node program, NODE_0 and NODE_1 are set to 0. The |
874 | // first node is stored in NODE_2, the second node is stored in NODE_3. | 980 | * first node is stored in NODE_2, the second node is stored in NODE_3. |
875 | // | 981 | * |
876 | // Offsets are relative to the master offset from PFS_CNTL_2. | 982 | * Offsets are relative to the master offset from PFS_CNTL_2. |
877 | // LAST_NODE is set for the last node, and only for the last node. */ | 983 | */ |
878 | #define R300_PFS_NODE_0 0x4610 | 984 | #define R300_PFS_NODE_0 0x4610 |
879 | #define R300_PFS_NODE_1 0x4614 | 985 | #define R300_PFS_NODE_1 0x4614 |
880 | #define R300_PFS_NODE_2 0x4618 | 986 | #define R300_PFS_NODE_2 0x4618 |
@@ -887,91 +993,98 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
887 | # define R300_PFS_NODE_TEX_OFFSET_MASK (31 << 12) | 993 | # define R300_PFS_NODE_TEX_OFFSET_MASK (31 << 12) |
888 | # define R300_PFS_NODE_TEX_END_SHIFT 17 | 994 | # define R300_PFS_NODE_TEX_END_SHIFT 17 |
889 | # define R300_PFS_NODE_TEX_END_MASK (31 << 17) | 995 | # define R300_PFS_NODE_TEX_END_MASK (31 << 17) |
890 | /*# define R300_PFS_NODE_LAST_NODE (1 << 22) */ | ||
891 | # define R300_PFS_NODE_OUTPUT_COLOR (1 << 22) | 996 | # define R300_PFS_NODE_OUTPUT_COLOR (1 << 22) |
892 | # define R300_PFS_NODE_OUTPUT_DEPTH (1 << 23) | 997 | # define R300_PFS_NODE_OUTPUT_DEPTH (1 << 23) |
893 | 998 | ||
894 | /* TEX | 999 | /* TEX |
895 | // As far as I can tell, texture instructions cannot write into output | 1000 | * As far as I can tell, texture instructions cannot write into output |
896 | // registers directly. A subsequent ALU instruction is always necessary, | 1001 | * registers directly. A subsequent ALU instruction is always necessary, |
897 | // even if it's just MAD o0, r0, 1, 0 */ | 1002 | * even if it's just MAD o0, r0, 1, 0 |
1003 | */ | ||
898 | #define R300_PFS_TEXI_0 0x4620 | 1004 | #define R300_PFS_TEXI_0 0x4620 |
899 | # define R300_FPITX_SRC_SHIFT 0 | 1005 | # define R300_FPITX_SRC_SHIFT 0 |
900 | # define R300_FPITX_SRC_MASK (31 << 0) | 1006 | # define R300_FPITX_SRC_MASK (31 << 0) |
901 | # define R300_FPITX_SRC_CONST (1 << 5) /* GUESS */ | 1007 | /* GUESS */ |
902 | # define R300_FPITX_DST_SHIFT 6 | 1008 | # define R300_FPITX_SRC_CONST (1 << 5) |
903 | # define R300_FPITX_DST_MASK (31 << 6) | 1009 | # define R300_FPITX_DST_SHIFT 6 |
904 | # define R300_FPITX_IMAGE_SHIFT 11 | 1010 | # define R300_FPITX_DST_MASK (31 << 6) |
905 | # define R300_FPITX_IMAGE_MASK (15 << 11) /* GUESS based on layout and native limits */ | 1011 | # define R300_FPITX_IMAGE_SHIFT 11 |
1012 | /* GUESS based on layout and native limits */ | ||
1013 | # define R300_FPITX_IMAGE_MASK (15 << 11) | ||
906 | /* Unsure if these are opcodes, or some kind of bitfield, but this is how | 1014 | /* Unsure if these are opcodes, or some kind of bitfield, but this is how |
907 | * they were set when I checked | 1015 | * they were set when I checked |
908 | */ | 1016 | */ |
909 | # define R300_FPITX_OPCODE_SHIFT 15 | 1017 | # define R300_FPITX_OPCODE_SHIFT 15 |
910 | # define R300_FPITX_OP_TEX 1 | 1018 | # define R300_FPITX_OP_TEX 1 |
911 | # define R300_FPITX_OP_KIL 2 | 1019 | # define R300_FPITX_OP_KIL 2 |
912 | # define R300_FPITX_OP_TXP 3 | 1020 | # define R300_FPITX_OP_TXP 3 |
913 | # define R300_FPITX_OP_TXB 4 | 1021 | # define R300_FPITX_OP_TXB 4 |
1022 | # define R300_FPITX_OPCODE_MASK (7 << 15) | ||
914 | 1023 | ||
915 | /* ALU | 1024 | /* ALU |
916 | // The ALU instructions register blocks are enumerated according to the order | 1025 | * The ALU instructions register blocks are enumerated according to the order |
917 | // in which fglrx. I assume there is space for 64 instructions, since | 1026 | * in which fglrx. I assume there is space for 64 instructions, since |
918 | // each block has space for a maximum of 64 DWORDs, and this matches reported | 1027 | * each block has space for a maximum of 64 DWORDs, and this matches reported |
919 | // native limits. | 1028 | * native limits. |
920 | // | 1029 | * |
921 | // The basic functional block seems to be one MAD for each color and alpha, | 1030 | * The basic functional block seems to be one MAD for each color and alpha, |
922 | // and an adder that adds all components after the MUL. | 1031 | * and an adder that adds all components after the MUL. |
923 | // - ADD, MUL, MAD etc.: use MAD with appropriate neutral operands | 1032 | * - ADD, MUL, MAD etc.: use MAD with appropriate neutral operands |
924 | // - DP4: Use OUTC_DP4, OUTA_DP4 | 1033 | * - DP4: Use OUTC_DP4, OUTA_DP4 |
925 | // - DP3: Use OUTC_DP3, OUTA_DP4, appropriate alpha operands | 1034 | * - DP3: Use OUTC_DP3, OUTA_DP4, appropriate alpha operands |
926 | // - DPH: Use OUTC_DP4, OUTA_DP4, appropriate alpha operands | 1035 | * - DPH: Use OUTC_DP4, OUTA_DP4, appropriate alpha operands |
927 | // - CMP: If ARG2 < 0, return ARG1, else return ARG0 | 1036 | * - CMPH: If ARG2 > 0.5, return ARG0, else return ARG1 |
928 | // - FLR: use FRC+MAD | 1037 | * - CMP: If ARG2 < 0, return ARG1, else return ARG0 |
929 | // - XPD: use MAD+MAD | 1038 | * - FLR: use FRC+MAD |
930 | // - SGE, SLT: use MAD+CMP | 1039 | * - XPD: use MAD+MAD |
931 | // - RSQ: use ABS modifier for argument | 1040 | * - SGE, SLT: use MAD+CMP |
932 | // - Use OUTC_REPL_ALPHA to write results of an alpha-only operation (e.g. RCP) | 1041 | * - RSQ: use ABS modifier for argument |
933 | // into color register | 1042 | * - Use OUTC_REPL_ALPHA to write results of an alpha-only operation |
934 | // - apparently, there's no quick DST operation | 1043 | * (e.g. RCP) into color register |
935 | // - fglrx set FPI2_UNKNOWN_31 on a "MAD fragment.color, tmp0, tmp1, tmp2" | 1044 | * - apparently, there's no quick DST operation |
936 | // - fglrx set FPI2_UNKNOWN_31 on a "MAX r2, r1, c0" | 1045 | * - fglrx set FPI2_UNKNOWN_31 on a "MAD fragment.color, tmp0, tmp1, tmp2" |
937 | // - fglrx once set FPI0_UNKNOWN_31 on a "FRC r1, r1" | 1046 | * - fglrx set FPI2_UNKNOWN_31 on a "MAX r2, r1, c0" |
938 | // | 1047 | * - fglrx once set FPI0_UNKNOWN_31 on a "FRC r1, r1" |
939 | // Operand selection | 1048 | * |
940 | // First stage selects three sources from the available registers and | 1049 | * Operand selection |
941 | // constant parameters. This is defined in INSTR1 (color) and INSTR3 (alpha). | 1050 | * First stage selects three sources from the available registers and |
942 | // fglrx sorts the three source fields: Registers before constants, | 1051 | * constant parameters. This is defined in INSTR1 (color) and INSTR3 (alpha). |
943 | // lower indices before higher indices; I do not know whether this is necessary. | 1052 | * fglrx sorts the three source fields: Registers before constants, |
944 | // fglrx fills unused sources with "read constant 0" | 1053 | * lower indices before higher indices; I do not know whether this is |
945 | // According to specs, you cannot select more than two different constants. | 1054 | * necessary. |
946 | // | 1055 | * |
947 | // Second stage selects the operands from the sources. This is defined in | 1056 | * fglrx fills unused sources with "read constant 0" |
948 | // INSTR0 (color) and INSTR2 (alpha). You can also select the special constants | 1057 | * According to specs, you cannot select more than two different constants. |
949 | // zero and one. | 1058 | * |
950 | // Swizzling and negation happens in this stage, as well. | 1059 | * Second stage selects the operands from the sources. This is defined in |
951 | // | 1060 | * INSTR0 (color) and INSTR2 (alpha). You can also select the special constants |
952 | // Important: Color and alpha seem to be mostly separate, i.e. their sources | 1061 | * zero and one. |
953 | // selection appears to be fully independent (the register storage is probably | 1062 | * Swizzling and negation happens in this stage, as well. |
954 | // physically split into a color and an alpha section). | 1063 | * |
955 | // However (because of the apparent physical split), there is some interaction | 1064 | * Important: Color and alpha seem to be mostly separate, i.e. their sources |
956 | // WRT swizzling. If, for example, you want to load an R component into an | 1065 | * selection appears to be fully independent (the register storage is probably |
957 | // Alpha operand, this R component is taken from a *color* source, not from | 1066 | * physically split into a color and an alpha section). |
958 | // an alpha source. The corresponding register doesn't even have to appear in | 1067 | * However (because of the apparent physical split), there is some interaction |
959 | // the alpha sources list. (I hope this alll makes sense to you) | 1068 | * WRT swizzling. If, for example, you want to load an R component into an |
960 | // | 1069 | * Alpha operand, this R component is taken from a *color* source, not from |
961 | // Destination selection | 1070 | * an alpha source. The corresponding register doesn't even have to appear in |
962 | // The destination register index is in FPI1 (color) and FPI3 (alpha) together | 1071 | * the alpha sources list. (I hope this all makes sense to you) |
963 | // with enable bits. | 1072 | * |
964 | // There are separate enable bits for writing into temporary registers | 1073 | * Destination selection |
965 | // (DSTC_REG_* /DSTA_REG) and and program output registers (DSTC_OUTPUT_* /DSTA_OUTPUT). | 1074 | * The destination register index is in FPI1 (color) and FPI3 (alpha) |
966 | // You can write to both at once, or not write at all (the same index | 1075 | * together with enable bits. |
967 | // must be used for both). | 1076 | * There are separate enable bits for writing into temporary registers |
968 | // | 1077 | * (DSTC_REG_* /DSTA_REG) and and program output registers (DSTC_OUTPUT_* |
969 | // Note: There is a special form for LRP | 1078 | * /DSTA_OUTPUT). You can write to both at once, or not write at all (the |
970 | // - Argument order is the same as in ARB_fragment_program. | 1079 | * same index must be used for both). |
971 | // - Operation is MAD | 1080 | * |
972 | // - ARG1 is set to ARGC_SRC1C_LRP/ARGC_SRC1A_LRP | 1081 | * Note: There is a special form for LRP |
973 | // - Set FPI0/FPI2_SPECIAL_LRP | 1082 | * - Argument order is the same as in ARB_fragment_program. |
974 | // Arbitrary LRP (including support for swizzling) requires vanilla MAD+MAD */ | 1083 | * - Operation is MAD |
1084 | * - ARG1 is set to ARGC_SRC1C_LRP/ARGC_SRC1A_LRP | ||
1085 | * - Set FPI0/FPI2_SPECIAL_LRP | ||
1086 | * Arbitrary LRP (including support for swizzling) requires vanilla MAD+MAD | ||
1087 | */ | ||
975 | #define R300_PFS_INSTR1_0 0x46C0 | 1088 | #define R300_PFS_INSTR1_0 0x46C0 |
976 | # define R300_FPI1_SRC0C_SHIFT 0 | 1089 | # define R300_FPI1_SRC0C_SHIFT 0 |
977 | # define R300_FPI1_SRC0C_MASK (31 << 0) | 1090 | # define R300_FPI1_SRC0C_MASK (31 << 0) |
@@ -982,6 +1095,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
982 | # define R300_FPI1_SRC2C_SHIFT 12 | 1095 | # define R300_FPI1_SRC2C_SHIFT 12 |
983 | # define R300_FPI1_SRC2C_MASK (31 << 12) | 1096 | # define R300_FPI1_SRC2C_MASK (31 << 12) |
984 | # define R300_FPI1_SRC2C_CONST (1 << 17) | 1097 | # define R300_FPI1_SRC2C_CONST (1 << 17) |
1098 | # define R300_FPI1_SRC_MASK 0x0003ffff | ||
985 | # define R300_FPI1_DSTC_SHIFT 18 | 1099 | # define R300_FPI1_DSTC_SHIFT 18 |
986 | # define R300_FPI1_DSTC_MASK (31 << 18) | 1100 | # define R300_FPI1_DSTC_MASK (31 << 18) |
987 | # define R300_FPI1_DSTC_REG_MASK_SHIFT 23 | 1101 | # define R300_FPI1_DSTC_REG_MASK_SHIFT 23 |
@@ -1003,6 +1117,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1003 | # define R300_FPI3_SRC2A_SHIFT 12 | 1117 | # define R300_FPI3_SRC2A_SHIFT 12 |
1004 | # define R300_FPI3_SRC2A_MASK (31 << 12) | 1118 | # define R300_FPI3_SRC2A_MASK (31 << 12) |
1005 | # define R300_FPI3_SRC2A_CONST (1 << 17) | 1119 | # define R300_FPI3_SRC2A_CONST (1 << 17) |
1120 | # define R300_FPI3_SRC_MASK 0x0003ffff | ||
1006 | # define R300_FPI3_DSTA_SHIFT 18 | 1121 | # define R300_FPI3_DSTA_SHIFT 18 |
1007 | # define R300_FPI3_DSTA_MASK (31 << 18) | 1122 | # define R300_FPI3_DSTA_MASK (31 << 18) |
1008 | # define R300_FPI3_DSTA_REG (1 << 23) | 1123 | # define R300_FPI3_DSTA_REG (1 << 23) |
@@ -1028,7 +1143,8 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1028 | # define R300_FPI0_ARGC_SRC1C_LRP 15 | 1143 | # define R300_FPI0_ARGC_SRC1C_LRP 15 |
1029 | # define R300_FPI0_ARGC_ZERO 20 | 1144 | # define R300_FPI0_ARGC_ZERO 20 |
1030 | # define R300_FPI0_ARGC_ONE 21 | 1145 | # define R300_FPI0_ARGC_ONE 21 |
1031 | # define R300_FPI0_ARGC_HALF 22 /* GUESS */ | 1146 | /* GUESS */ |
1147 | # define R300_FPI0_ARGC_HALF 22 | ||
1032 | # define R300_FPI0_ARGC_SRC0C_YZX 23 | 1148 | # define R300_FPI0_ARGC_SRC0C_YZX 23 |
1033 | # define R300_FPI0_ARGC_SRC1C_YZX 24 | 1149 | # define R300_FPI0_ARGC_SRC1C_YZX 24 |
1034 | # define R300_FPI0_ARGC_SRC2C_YZX 25 | 1150 | # define R300_FPI0_ARGC_SRC2C_YZX 25 |
@@ -1057,6 +1173,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1057 | # define R300_FPI0_OUTC_DP4 (2 << 23) | 1173 | # define R300_FPI0_OUTC_DP4 (2 << 23) |
1058 | # define R300_FPI0_OUTC_MIN (4 << 23) | 1174 | # define R300_FPI0_OUTC_MIN (4 << 23) |
1059 | # define R300_FPI0_OUTC_MAX (5 << 23) | 1175 | # define R300_FPI0_OUTC_MAX (5 << 23) |
1176 | # define R300_FPI0_OUTC_CMPH (7 << 23) | ||
1060 | # define R300_FPI0_OUTC_CMP (8 << 23) | 1177 | # define R300_FPI0_OUTC_CMP (8 << 23) |
1061 | # define R300_FPI0_OUTC_FRC (9 << 23) | 1178 | # define R300_FPI0_OUTC_FRC (9 << 23) |
1062 | # define R300_FPI0_OUTC_REPL_ALPHA (10 << 23) | 1179 | # define R300_FPI0_OUTC_REPL_ALPHA (10 << 23) |
@@ -1079,20 +1196,23 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1079 | # define R300_FPI2_ARGA_SRC1A_LRP 15 | 1196 | # define R300_FPI2_ARGA_SRC1A_LRP 15 |
1080 | # define R300_FPI2_ARGA_ZERO 16 | 1197 | # define R300_FPI2_ARGA_ZERO 16 |
1081 | # define R300_FPI2_ARGA_ONE 17 | 1198 | # define R300_FPI2_ARGA_ONE 17 |
1082 | # define R300_FPI2_ARGA_HALF 18 /* GUESS */ | 1199 | /* GUESS */ |
1083 | 1200 | # define R300_FPI2_ARGA_HALF 18 | |
1084 | # define R300_FPI2_ARG0A_SHIFT 0 | 1201 | # define R300_FPI2_ARG0A_SHIFT 0 |
1085 | # define R300_FPI2_ARG0A_MASK (31 << 0) | 1202 | # define R300_FPI2_ARG0A_MASK (31 << 0) |
1086 | # define R300_FPI2_ARG0A_NEG (1 << 5) | 1203 | # define R300_FPI2_ARG0A_NEG (1 << 5) |
1087 | # define R300_FPI2_ARG0A_ABS (1 << 6) /* GUESS */ | 1204 | /* GUESS */ |
1205 | # define R300_FPI2_ARG0A_ABS (1 << 6) | ||
1088 | # define R300_FPI2_ARG1A_SHIFT 7 | 1206 | # define R300_FPI2_ARG1A_SHIFT 7 |
1089 | # define R300_FPI2_ARG1A_MASK (31 << 7) | 1207 | # define R300_FPI2_ARG1A_MASK (31 << 7) |
1090 | # define R300_FPI2_ARG1A_NEG (1 << 12) | 1208 | # define R300_FPI2_ARG1A_NEG (1 << 12) |
1091 | # define R300_FPI2_ARG1A_ABS (1 << 13) /* GUESS */ | 1209 | /* GUESS */ |
1210 | # define R300_FPI2_ARG1A_ABS (1 << 13) | ||
1092 | # define R300_FPI2_ARG2A_SHIFT 14 | 1211 | # define R300_FPI2_ARG2A_SHIFT 14 |
1093 | # define R300_FPI2_ARG2A_MASK (31 << 14) | 1212 | # define R300_FPI2_ARG2A_MASK (31 << 14) |
1094 | # define R300_FPI2_ARG2A_NEG (1 << 19) | 1213 | # define R300_FPI2_ARG2A_NEG (1 << 19) |
1095 | # define R300_FPI2_ARG2A_ABS (1 << 20) /* GUESS */ | 1214 | /* GUESS */ |
1215 | # define R300_FPI2_ARG2A_ABS (1 << 20) | ||
1096 | # define R300_FPI2_SPECIAL_LRP (1 << 21) | 1216 | # define R300_FPI2_SPECIAL_LRP (1 << 21) |
1097 | # define R300_FPI2_OUTA_MAD (0 << 23) | 1217 | # define R300_FPI2_OUTA_MAD (0 << 23) |
1098 | # define R300_FPI2_OUTA_DP4 (1 << 23) | 1218 | # define R300_FPI2_OUTA_DP4 (1 << 23) |
@@ -1106,9 +1226,19 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1106 | # define R300_FPI2_OUTA_RSQ (11 << 23) | 1226 | # define R300_FPI2_OUTA_RSQ (11 << 23) |
1107 | # define R300_FPI2_OUTA_SAT (1 << 30) | 1227 | # define R300_FPI2_OUTA_SAT (1 << 30) |
1108 | # define R300_FPI2_UNKNOWN_31 (1 << 31) | 1228 | # define R300_FPI2_UNKNOWN_31 (1 << 31) |
1109 | /* END */ | 1229 | /* END: Fragment program instruction set */ |
1230 | |||
1231 | /* Fog state and color */ | ||
1232 | #define R300_RE_FOG_STATE 0x4BC0 | ||
1233 | # define R300_FOG_ENABLE (1 << 0) | ||
1234 | # define R300_FOG_MODE_LINEAR (0 << 1) | ||
1235 | # define R300_FOG_MODE_EXP (1 << 1) | ||
1236 | # define R300_FOG_MODE_EXP2 (2 << 1) | ||
1237 | # define R300_FOG_MODE_MASK (3 << 1) | ||
1238 | #define R300_FOG_COLOR_R 0x4BC8 | ||
1239 | #define R300_FOG_COLOR_G 0x4BCC | ||
1240 | #define R300_FOG_COLOR_B 0x4BD0 | ||
1110 | 1241 | ||
1111 | /* gap */ | ||
1112 | #define R300_PP_ALPHA_TEST 0x4BD4 | 1242 | #define R300_PP_ALPHA_TEST 0x4BD4 |
1113 | # define R300_REF_ALPHA_MASK 0x000000ff | 1243 | # define R300_REF_ALPHA_MASK 0x000000ff |
1114 | # define R300_ALPHA_TEST_FAIL (0 << 8) | 1244 | # define R300_ALPHA_TEST_FAIL (0 << 8) |
@@ -1123,6 +1253,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1123 | # define R300_ALPHA_TEST_ENABLE (1 << 11) | 1253 | # define R300_ALPHA_TEST_ENABLE (1 << 11) |
1124 | 1254 | ||
1125 | /* gap */ | 1255 | /* gap */ |
1256 | |||
1126 | /* Fragment program parameters in 7.16 floating point */ | 1257 | /* Fragment program parameters in 7.16 floating point */ |
1127 | #define R300_PFS_PARAM_0_X 0x4C00 | 1258 | #define R300_PFS_PARAM_0_X 0x4C00 |
1128 | #define R300_PFS_PARAM_0_Y 0x4C04 | 1259 | #define R300_PFS_PARAM_0_Y 0x4C04 |
@@ -1135,45 +1266,48 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1135 | #define R300_PFS_PARAM_31_W 0x4DFC | 1266 | #define R300_PFS_PARAM_31_W 0x4DFC |
1136 | 1267 | ||
1137 | /* Notes: | 1268 | /* Notes: |
1138 | // - AFAIK fglrx always sets BLEND_UNKNOWN when blending is used in the application | 1269 | * - AFAIK fglrx always sets BLEND_UNKNOWN when blending is used in |
1139 | // - AFAIK fglrx always sets BLEND_NO_SEPARATE when CBLEND and ABLEND are set to the same | 1270 | * the application |
1140 | // function (both registers are always set up completely in any case) | 1271 | * - AFAIK fglrx always sets BLEND_NO_SEPARATE when CBLEND and ABLEND |
1141 | // - Most blend flags are simply copied from R200 and not tested yet */ | 1272 | * are set to the same |
1273 | * function (both registers are always set up completely in any case) | ||
1274 | * - Most blend flags are simply copied from R200 and not tested yet | ||
1275 | */ | ||
1142 | #define R300_RB3D_CBLEND 0x4E04 | 1276 | #define R300_RB3D_CBLEND 0x4E04 |
1143 | #define R300_RB3D_ABLEND 0x4E08 | 1277 | #define R300_RB3D_ABLEND 0x4E08 |
1144 | /* the following only appear in CBLEND */ | 1278 | /* the following only appear in CBLEND */ |
1145 | # define R300_BLEND_ENABLE (1 << 0) | 1279 | # define R300_BLEND_ENABLE (1 << 0) |
1146 | # define R300_BLEND_UNKNOWN (3 << 1) | 1280 | # define R300_BLEND_UNKNOWN (3 << 1) |
1147 | # define R300_BLEND_NO_SEPARATE (1 << 3) | 1281 | # define R300_BLEND_NO_SEPARATE (1 << 3) |
1148 | /* the following are shared between CBLEND and ABLEND */ | 1282 | /* the following are shared between CBLEND and ABLEND */ |
1149 | # define R300_FCN_MASK (3 << 12) | 1283 | # define R300_FCN_MASK (3 << 12) |
1150 | # define R300_COMB_FCN_ADD_CLAMP (0 << 12) | 1284 | # define R300_COMB_FCN_ADD_CLAMP (0 << 12) |
1151 | # define R300_COMB_FCN_ADD_NOCLAMP (1 << 12) | 1285 | # define R300_COMB_FCN_ADD_NOCLAMP (1 << 12) |
1152 | # define R300_COMB_FCN_SUB_CLAMP (2 << 12) | 1286 | # define R300_COMB_FCN_SUB_CLAMP (2 << 12) |
1153 | # define R300_COMB_FCN_SUB_NOCLAMP (3 << 12) | 1287 | # define R300_COMB_FCN_SUB_NOCLAMP (3 << 12) |
1154 | # define R300_SRC_BLEND_GL_ZERO (32 << 16) | 1288 | # define R300_COMB_FCN_MIN (4 << 12) |
1155 | # define R300_SRC_BLEND_GL_ONE (33 << 16) | 1289 | # define R300_COMB_FCN_MAX (5 << 12) |
1156 | # define R300_SRC_BLEND_GL_SRC_COLOR (34 << 16) | 1290 | # define R300_COMB_FCN_RSUB_CLAMP (6 << 12) |
1157 | # define R300_SRC_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 16) | 1291 | # define R300_COMB_FCN_RSUB_NOCLAMP (7 << 12) |
1158 | # define R300_SRC_BLEND_GL_DST_COLOR (36 << 16) | 1292 | # define R300_BLEND_GL_ZERO (32) |
1159 | # define R300_SRC_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 16) | 1293 | # define R300_BLEND_GL_ONE (33) |
1160 | # define R300_SRC_BLEND_GL_SRC_ALPHA (38 << 16) | 1294 | # define R300_BLEND_GL_SRC_COLOR (34) |
1161 | # define R300_SRC_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 16) | 1295 | # define R300_BLEND_GL_ONE_MINUS_SRC_COLOR (35) |
1162 | # define R300_SRC_BLEND_GL_DST_ALPHA (40 << 16) | 1296 | # define R300_BLEND_GL_DST_COLOR (36) |
1163 | # define R300_SRC_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 16) | 1297 | # define R300_BLEND_GL_ONE_MINUS_DST_COLOR (37) |
1164 | # define R300_SRC_BLEND_GL_SRC_ALPHA_SATURATE (42 << 16) | 1298 | # define R300_BLEND_GL_SRC_ALPHA (38) |
1165 | # define R300_SRC_BLEND_MASK (63 << 16) | 1299 | # define R300_BLEND_GL_ONE_MINUS_SRC_ALPHA (39) |
1166 | # define R300_DST_BLEND_GL_ZERO (32 << 24) | 1300 | # define R300_BLEND_GL_DST_ALPHA (40) |
1167 | # define R300_DST_BLEND_GL_ONE (33 << 24) | 1301 | # define R300_BLEND_GL_ONE_MINUS_DST_ALPHA (41) |
1168 | # define R300_DST_BLEND_GL_SRC_COLOR (34 << 24) | 1302 | # define R300_BLEND_GL_SRC_ALPHA_SATURATE (42) |
1169 | # define R300_DST_BLEND_GL_ONE_MINUS_SRC_COLOR (35 << 24) | 1303 | # define R300_BLEND_GL_CONST_COLOR (43) |
1170 | # define R300_DST_BLEND_GL_DST_COLOR (36 << 24) | 1304 | # define R300_BLEND_GL_ONE_MINUS_CONST_COLOR (44) |
1171 | # define R300_DST_BLEND_GL_ONE_MINUS_DST_COLOR (37 << 24) | 1305 | # define R300_BLEND_GL_CONST_ALPHA (45) |
1172 | # define R300_DST_BLEND_GL_SRC_ALPHA (38 << 24) | 1306 | # define R300_BLEND_GL_ONE_MINUS_CONST_ALPHA (46) |
1173 | # define R300_DST_BLEND_GL_ONE_MINUS_SRC_ALPHA (39 << 24) | 1307 | # define R300_BLEND_MASK (63) |
1174 | # define R300_DST_BLEND_GL_DST_ALPHA (40 << 24) | 1308 | # define R300_SRC_BLEND_SHIFT (16) |
1175 | # define R300_DST_BLEND_GL_ONE_MINUS_DST_ALPHA (41 << 24) | 1309 | # define R300_DST_BLEND_SHIFT (24) |
1176 | # define R300_DST_BLEND_MASK (63 << 24) | 1310 | #define R300_RB3D_BLEND_COLOR 0x4E10 |
1177 | #define R300_RB3D_COLORMASK 0x4E0C | 1311 | #define R300_RB3D_COLORMASK 0x4E0C |
1178 | # define R300_COLORMASK0_B (1<<0) | 1312 | # define R300_COLORMASK0_B (1<<0) |
1179 | # define R300_COLORMASK0_G (1<<1) | 1313 | # define R300_COLORMASK0_G (1<<1) |
@@ -1181,41 +1315,49 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1181 | # define R300_COLORMASK0_A (1<<3) | 1315 | # define R300_COLORMASK0_A (1<<3) |
1182 | 1316 | ||
1183 | /* gap */ | 1317 | /* gap */ |
1318 | |||
1184 | #define R300_RB3D_COLOROFFSET0 0x4E28 | 1319 | #define R300_RB3D_COLOROFFSET0 0x4E28 |
1185 | # define R300_COLOROFFSET_MASK 0xFFFFFFF0 /* GUESS */ | 1320 | # define R300_COLOROFFSET_MASK 0xFFFFFFF0 /* GUESS */ |
1186 | #define R300_RB3D_COLOROFFSET1 0x4E2C /* GUESS */ | 1321 | #define R300_RB3D_COLOROFFSET1 0x4E2C /* GUESS */ |
1187 | #define R300_RB3D_COLOROFFSET2 0x4E30 /* GUESS */ | 1322 | #define R300_RB3D_COLOROFFSET2 0x4E30 /* GUESS */ |
1188 | #define R300_RB3D_COLOROFFSET3 0x4E34 /* GUESS */ | 1323 | #define R300_RB3D_COLOROFFSET3 0x4E34 /* GUESS */ |
1324 | |||
1189 | /* gap */ | 1325 | /* gap */ |
1326 | |||
1190 | /* Bit 16: Larger tiles | 1327 | /* Bit 16: Larger tiles |
1191 | // Bit 17: 4x2 tiles | 1328 | * Bit 17: 4x2 tiles |
1192 | // Bit 18: Extremely weird tile like, but some pixels duplicated? */ | 1329 | * Bit 18: Extremely weird tile like, but some pixels duplicated? |
1330 | */ | ||
1193 | #define R300_RB3D_COLORPITCH0 0x4E38 | 1331 | #define R300_RB3D_COLORPITCH0 0x4E38 |
1194 | # define R300_COLORPITCH_MASK 0x00001FF8 /* GUESS */ | 1332 | # define R300_COLORPITCH_MASK 0x00001FF8 /* GUESS */ |
1195 | # define R300_COLOR_TILE_ENABLE (1 << 16) /* GUESS */ | 1333 | # define R300_COLOR_TILE_ENABLE (1 << 16) /* GUESS */ |
1196 | # define R300_COLOR_MICROTILE_ENABLE (1 << 17) /* GUESS */ | 1334 | # define R300_COLOR_MICROTILE_ENABLE (1 << 17) /* GUESS */ |
1197 | # define R300_COLOR_ENDIAN_NO_SWAP (0 << 18) /* GUESS */ | 1335 | # define R300_COLOR_ENDIAN_NO_SWAP (0 << 18) /* GUESS */ |
1198 | # define R300_COLOR_ENDIAN_WORD_SWAP (1 << 18) /* GUESS */ | 1336 | # define R300_COLOR_ENDIAN_WORD_SWAP (1 << 18) /* GUESS */ |
1199 | # define R300_COLOR_ENDIAN_DWORD_SWAP (2 << 18) /* GUESS */ | 1337 | # define R300_COLOR_ENDIAN_DWORD_SWAP (2 << 18) /* GUESS */ |
1200 | # define R300_COLOR_FORMAT_RGB565 (2 << 22) | 1338 | # define R300_COLOR_FORMAT_RGB565 (2 << 22) |
1201 | # define R300_COLOR_FORMAT_ARGB8888 (3 << 22) | 1339 | # define R300_COLOR_FORMAT_ARGB8888 (3 << 22) |
1202 | #define R300_RB3D_COLORPITCH1 0x4E3C /* GUESS */ | 1340 | #define R300_RB3D_COLORPITCH1 0x4E3C /* GUESS */ |
1203 | #define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */ | 1341 | #define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */ |
1204 | #define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */ | 1342 | #define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */ |
1205 | 1343 | ||
1206 | /* gap */ | 1344 | /* gap */ |
1345 | |||
1207 | /* Guess by Vladimir. | 1346 | /* Guess by Vladimir. |
1208 | // Set to 0A before 3D operations, set to 02 afterwards. */ | 1347 | * Set to 0A before 3D operations, set to 02 afterwards. |
1348 | */ | ||
1209 | #define R300_RB3D_DSTCACHE_CTLSTAT 0x4E4C | 1349 | #define R300_RB3D_DSTCACHE_CTLSTAT 0x4E4C |
1210 | # define R300_RB3D_DSTCACHE_02 0x00000002 | 1350 | # define R300_RB3D_DSTCACHE_UNKNOWN_02 0x00000002 |
1211 | # define R300_RB3D_DSTCACHE_0A 0x0000000A | 1351 | # define R300_RB3D_DSTCACHE_UNKNOWN_0A 0x0000000A |
1212 | 1352 | ||
1213 | /* gap */ | 1353 | /* gap */ |
1214 | /* There seems to be no "write only" setting, so use Z-test = ALWAYS for this. */ | 1354 | /* There seems to be no "write only" setting, so use Z-test = ALWAYS |
1215 | /* Bit (1<<8) is the "test" bit. so plain write is 6 - vd */ | 1355 | * for this. |
1356 | * Bit (1<<8) is the "test" bit. so plain write is 6 - vd | ||
1357 | */ | ||
1216 | #define R300_RB3D_ZSTENCIL_CNTL_0 0x4F00 | 1358 | #define R300_RB3D_ZSTENCIL_CNTL_0 0x4F00 |
1217 | # define R300_RB3D_Z_DISABLED_1 0x00000010 /* GUESS */ | 1359 | # define R300_RB3D_Z_DISABLED_1 0x00000010 |
1218 | # define R300_RB3D_Z_DISABLED_2 0x00000014 /* GUESS */ | 1360 | # define R300_RB3D_Z_DISABLED_2 0x00000014 |
1219 | # define R300_RB3D_Z_TEST 0x00000012 | 1361 | # define R300_RB3D_Z_TEST 0x00000012 |
1220 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 | 1362 | # define R300_RB3D_Z_TEST_AND_WRITE 0x00000016 |
1221 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 | 1363 | # define R300_RB3D_Z_WRITE_ONLY 0x00000006 |
@@ -1226,7 +1368,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1226 | # define R300_RB3D_STENCIL_ENABLE 0x00000001 | 1368 | # define R300_RB3D_STENCIL_ENABLE 0x00000001 |
1227 | 1369 | ||
1228 | #define R300_RB3D_ZSTENCIL_CNTL_1 0x4F04 | 1370 | #define R300_RB3D_ZSTENCIL_CNTL_1 0x4F04 |
1229 | /* functions */ | 1371 | /* functions */ |
1230 | # define R300_ZS_NEVER 0 | 1372 | # define R300_ZS_NEVER 0 |
1231 | # define R300_ZS_LESS 1 | 1373 | # define R300_ZS_LESS 1 |
1232 | # define R300_ZS_LEQUAL 2 | 1374 | # define R300_ZS_LEQUAL 2 |
@@ -1236,7 +1378,7 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1236 | # define R300_ZS_NOTEQUAL 6 | 1378 | # define R300_ZS_NOTEQUAL 6 |
1237 | # define R300_ZS_ALWAYS 7 | 1379 | # define R300_ZS_ALWAYS 7 |
1238 | # define R300_ZS_MASK 7 | 1380 | # define R300_ZS_MASK 7 |
1239 | /* operations */ | 1381 | /* operations */ |
1240 | # define R300_ZS_KEEP 0 | 1382 | # define R300_ZS_KEEP 0 |
1241 | # define R300_ZS_ZERO 1 | 1383 | # define R300_ZS_ZERO 1 |
1242 | # define R300_ZS_REPLACE 2 | 1384 | # define R300_ZS_REPLACE 2 |
@@ -1245,9 +1387,8 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1245 | # define R300_ZS_INVERT 5 | 1387 | # define R300_ZS_INVERT 5 |
1246 | # define R300_ZS_INCR_WRAP 6 | 1388 | # define R300_ZS_INCR_WRAP 6 |
1247 | # define R300_ZS_DECR_WRAP 7 | 1389 | # define R300_ZS_DECR_WRAP 7 |
1248 | 1390 | /* front and back refer to operations done for front | |
1249 | /* front and back refer to operations done for front | 1391 | and back faces, i.e. separate stencil function support */ |
1250 | and back faces, i.e. separate stencil function support */ | ||
1251 | # define R300_RB3D_ZS1_DEPTH_FUNC_SHIFT 0 | 1392 | # define R300_RB3D_ZS1_DEPTH_FUNC_SHIFT 0 |
1252 | # define R300_RB3D_ZS1_FRONT_FUNC_SHIFT 3 | 1393 | # define R300_RB3D_ZS1_FRONT_FUNC_SHIFT 3 |
1253 | # define R300_RB3D_ZS1_FRONT_FAIL_OP_SHIFT 6 | 1394 | # define R300_RB3D_ZS1_FRONT_FAIL_OP_SHIFT 6 |
@@ -1269,45 +1410,64 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1269 | #define R300_RB3D_ZSTENCIL_FORMAT 0x4F10 | 1410 | #define R300_RB3D_ZSTENCIL_FORMAT 0x4F10 |
1270 | # define R300_DEPTH_FORMAT_16BIT_INT_Z (0 << 0) | 1411 | # define R300_DEPTH_FORMAT_16BIT_INT_Z (0 << 0) |
1271 | # define R300_DEPTH_FORMAT_24BIT_INT_Z (2 << 0) | 1412 | # define R300_DEPTH_FORMAT_24BIT_INT_Z (2 << 0) |
1413 | /* 16 bit format or some aditional bit ? */ | ||
1414 | # define R300_DEPTH_FORMAT_UNK32 (32 << 0) | ||
1415 | |||
1416 | #define R300_RB3D_EARLY_Z 0x4F14 | ||
1417 | # define R300_EARLY_Z_DISABLE (0 << 0) | ||
1418 | # define R300_EARLY_Z_ENABLE (1 << 0) | ||
1419 | |||
1420 | /* gap */ | ||
1421 | |||
1422 | #define R300_RB3D_ZCACHE_CTLSTAT 0x4F18 /* GUESS */ | ||
1423 | # define R300_RB3D_ZCACHE_UNKNOWN_01 0x1 | ||
1424 | # define R300_RB3D_ZCACHE_UNKNOWN_03 0x3 | ||
1272 | 1425 | ||
1273 | /* gap */ | 1426 | /* gap */ |
1427 | |||
1274 | #define R300_RB3D_DEPTHOFFSET 0x4F20 | 1428 | #define R300_RB3D_DEPTHOFFSET 0x4F20 |
1275 | #define R300_RB3D_DEPTHPITCH 0x4F24 | 1429 | #define R300_RB3D_DEPTHPITCH 0x4F24 |
1276 | # define R300_DEPTHPITCH_MASK 0x00001FF8 /* GUESS */ | 1430 | # define R300_DEPTHPITCH_MASK 0x00001FF8 /* GUESS */ |
1277 | # define R300_DEPTH_TILE_ENABLE (1 << 16) /* GUESS */ | 1431 | # define R300_DEPTH_TILE_ENABLE (1 << 16) /* GUESS */ |
1278 | # define R300_DEPTH_MICROTILE_ENABLE (1 << 17) /* GUESS */ | 1432 | # define R300_DEPTH_MICROTILE_ENABLE (1 << 17) /* GUESS */ |
1279 | # define R300_DEPTH_ENDIAN_NO_SWAP (0 << 18) /* GUESS */ | 1433 | # define R300_DEPTH_ENDIAN_NO_SWAP (0 << 18) /* GUESS */ |
1280 | # define R300_DEPTH_ENDIAN_WORD_SWAP (1 << 18) /* GUESS */ | 1434 | # define R300_DEPTH_ENDIAN_WORD_SWAP (1 << 18) /* GUESS */ |
1281 | # define R300_DEPTH_ENDIAN_DWORD_SWAP (2 << 18) /* GUESS */ | 1435 | # define R300_DEPTH_ENDIAN_DWORD_SWAP (2 << 18) /* GUESS */ |
1282 | 1436 | ||
1283 | /* BEGIN: Vertex program instruction set | 1437 | /* BEGIN: Vertex program instruction set */ |
1284 | // Every instruction is four dwords long: | 1438 | |
1285 | // DWORD 0: output and opcode | 1439 | /* Every instruction is four dwords long: |
1286 | // DWORD 1: first argument | 1440 | * DWORD 0: output and opcode |
1287 | // DWORD 2: second argument | 1441 | * DWORD 1: first argument |
1288 | // DWORD 3: third argument | 1442 | * DWORD 2: second argument |
1289 | // | 1443 | * DWORD 3: third argument |
1290 | // Notes: | 1444 | * |
1291 | // - ABS r, a is implemented as MAX r, a, -a | 1445 | * Notes: |
1292 | // - MOV is implemented as ADD to zero | 1446 | * - ABS r, a is implemented as MAX r, a, -a |
1293 | // - XPD is implemented as MUL + MAD | 1447 | * - MOV is implemented as ADD to zero |
1294 | // - FLR is implemented as FRC + ADD | 1448 | * - XPD is implemented as MUL + MAD |
1295 | // - apparently, fglrx tries to schedule instructions so that there is at least | 1449 | * - FLR is implemented as FRC + ADD |
1296 | // one instruction between the write to a temporary and the first read | 1450 | * - apparently, fglrx tries to schedule instructions so that there is at |
1297 | // from said temporary; however, violations of this scheduling are allowed | 1451 | * least one instruction between the write to a temporary and the first |
1298 | // - register indices seem to be unrelated with OpenGL aliasing to conventional state | 1452 | * read from said temporary; however, violations of this scheduling are |
1299 | // - only one attribute and one parameter can be loaded at a time; however, the | 1453 | * allowed |
1300 | // same attribute/parameter can be used for more than one argument | 1454 | * - register indices seem to be unrelated with OpenGL aliasing to |
1301 | // - the second software argument for POW is the third hardware argument (no idea why) | 1455 | * conventional state |
1302 | // - MAD with only temporaries as input seems to use VPI_OUT_SELECT_MAD_2 | 1456 | * - only one attribute and one parameter can be loaded at a time; however, |
1303 | // | 1457 | * the same attribute/parameter can be used for more than one argument |
1304 | // There is some magic surrounding LIT: | 1458 | * - the second software argument for POW is the third hardware argument |
1305 | // The single argument is replicated across all three inputs, but swizzled: | 1459 | * (no idea why) |
1306 | // First argument: xyzy | 1460 | * - MAD with only temporaries as input seems to use VPI_OUT_SELECT_MAD_2 |
1307 | // Second argument: xyzx | 1461 | * |
1308 | // Third argument: xyzw | 1462 | * There is some magic surrounding LIT: |
1309 | // Whenever the result is used later in the fragment program, fglrx forces x and w | 1463 | * The single argument is replicated across all three inputs, but swizzled: |
1310 | // to be 1.0 in the input selection; I don't know whether this is strictly necessary */ | 1464 | * First argument: xyzy |
1465 | * Second argument: xyzx | ||
1466 | * Third argument: xyzw | ||
1467 | * Whenever the result is used later in the fragment program, fglrx forces | ||
1468 | * x and w to be 1.0 in the input selection; I don't know whether this is | ||
1469 | * strictly necessary | ||
1470 | */ | ||
1311 | #define R300_VPI_OUT_OP_DOT (1 << 0) | 1471 | #define R300_VPI_OUT_OP_DOT (1 << 0) |
1312 | #define R300_VPI_OUT_OP_MUL (2 << 0) | 1472 | #define R300_VPI_OUT_OP_MUL (2 << 0) |
1313 | #define R300_VPI_OUT_OP_ADD (3 << 0) | 1473 | #define R300_VPI_OUT_OP_ADD (3 << 0) |
@@ -1318,26 +1478,33 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1318 | #define R300_VPI_OUT_OP_MIN (8 << 0) | 1478 | #define R300_VPI_OUT_OP_MIN (8 << 0) |
1319 | #define R300_VPI_OUT_OP_SGE (9 << 0) | 1479 | #define R300_VPI_OUT_OP_SGE (9 << 0) |
1320 | #define R300_VPI_OUT_OP_SLT (10 << 0) | 1480 | #define R300_VPI_OUT_OP_SLT (10 << 0) |
1321 | #define R300_VPI_OUT_OP_UNK12 (12 << 0) /* Used in GL_POINT_DISTANCE_ATTENUATION_ARB, vector(scalar, vector) */ | 1481 | /* Used in GL_POINT_DISTANCE_ATTENUATION_ARB, vector(scalar, vector) */ |
1482 | #define R300_VPI_OUT_OP_UNK12 (12 << 0) | ||
1483 | #define R300_VPI_OUT_OP_ARL (13 << 0) | ||
1322 | #define R300_VPI_OUT_OP_EXP (65 << 0) | 1484 | #define R300_VPI_OUT_OP_EXP (65 << 0) |
1323 | #define R300_VPI_OUT_OP_LOG (66 << 0) | 1485 | #define R300_VPI_OUT_OP_LOG (66 << 0) |
1324 | #define R300_VPI_OUT_OP_UNK67 (67 << 0) /* Used in fog computations, scalar(scalar) */ | 1486 | /* Used in fog computations, scalar(scalar) */ |
1487 | #define R300_VPI_OUT_OP_UNK67 (67 << 0) | ||
1325 | #define R300_VPI_OUT_OP_LIT (68 << 0) | 1488 | #define R300_VPI_OUT_OP_LIT (68 << 0) |
1326 | #define R300_VPI_OUT_OP_POW (69 << 0) | 1489 | #define R300_VPI_OUT_OP_POW (69 << 0) |
1327 | #define R300_VPI_OUT_OP_RCP (70 << 0) | 1490 | #define R300_VPI_OUT_OP_RCP (70 << 0) |
1328 | #define R300_VPI_OUT_OP_RSQ (72 << 0) | 1491 | #define R300_VPI_OUT_OP_RSQ (72 << 0) |
1329 | #define R300_VPI_OUT_OP_UNK73 (73 << 0) /* Used in GL_POINT_DISTANCE_ATTENUATION_ARB, scalar(scalar) */ | 1492 | /* Used in GL_POINT_DISTANCE_ATTENUATION_ARB, scalar(scalar) */ |
1493 | #define R300_VPI_OUT_OP_UNK73 (73 << 0) | ||
1330 | #define R300_VPI_OUT_OP_EX2 (75 << 0) | 1494 | #define R300_VPI_OUT_OP_EX2 (75 << 0) |
1331 | #define R300_VPI_OUT_OP_LG2 (76 << 0) | 1495 | #define R300_VPI_OUT_OP_LG2 (76 << 0) |
1332 | #define R300_VPI_OUT_OP_MAD_2 (128 << 0) | 1496 | #define R300_VPI_OUT_OP_MAD_2 (128 << 0) |
1333 | #define R300_VPI_OUT_OP_UNK129 (129 << 0) /* all temps, vector(scalar, vector, vector) */ | 1497 | /* all temps, vector(scalar, vector, vector) */ |
1498 | #define R300_VPI_OUT_OP_UNK129 (129 << 0) | ||
1334 | 1499 | ||
1335 | #define R300_VPI_OUT_REG_CLASS_TEMPORARY (0 << 8) | 1500 | #define R300_VPI_OUT_REG_CLASS_TEMPORARY (0 << 8) |
1501 | #define R300_VPI_OUT_REG_CLASS_ADDR (1 << 8) | ||
1336 | #define R300_VPI_OUT_REG_CLASS_RESULT (2 << 8) | 1502 | #define R300_VPI_OUT_REG_CLASS_RESULT (2 << 8) |
1337 | #define R300_VPI_OUT_REG_CLASS_MASK (31 << 8) | 1503 | #define R300_VPI_OUT_REG_CLASS_MASK (31 << 8) |
1338 | 1504 | ||
1339 | #define R300_VPI_OUT_REG_INDEX_SHIFT 13 | 1505 | #define R300_VPI_OUT_REG_INDEX_SHIFT 13 |
1340 | #define R300_VPI_OUT_REG_INDEX_MASK (31 << 13) /* GUESS based on fglrx native limits */ | 1506 | /* GUESS based on fglrx native limits */ |
1507 | #define R300_VPI_OUT_REG_INDEX_MASK (31 << 13) | ||
1341 | 1508 | ||
1342 | #define R300_VPI_OUT_WRITE_X (1 << 20) | 1509 | #define R300_VPI_OUT_WRITE_X (1 << 20) |
1343 | #define R300_VPI_OUT_WRITE_Y (1 << 21) | 1510 | #define R300_VPI_OUT_WRITE_Y (1 << 21) |
@@ -1348,14 +1515,16 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1348 | #define R300_VPI_IN_REG_CLASS_ATTRIBUTE (1 << 0) | 1515 | #define R300_VPI_IN_REG_CLASS_ATTRIBUTE (1 << 0) |
1349 | #define R300_VPI_IN_REG_CLASS_PARAMETER (2 << 0) | 1516 | #define R300_VPI_IN_REG_CLASS_PARAMETER (2 << 0) |
1350 | #define R300_VPI_IN_REG_CLASS_NONE (9 << 0) | 1517 | #define R300_VPI_IN_REG_CLASS_NONE (9 << 0) |
1351 | #define R300_VPI_IN_REG_CLASS_MASK (31 << 0) /* GUESS */ | 1518 | #define R300_VPI_IN_REG_CLASS_MASK (31 << 0) |
1352 | 1519 | ||
1353 | #define R300_VPI_IN_REG_INDEX_SHIFT 5 | 1520 | #define R300_VPI_IN_REG_INDEX_SHIFT 5 |
1354 | #define R300_VPI_IN_REG_INDEX_MASK (255 << 5) /* GUESS based on fglrx native limits */ | 1521 | /* GUESS based on fglrx native limits */ |
1522 | #define R300_VPI_IN_REG_INDEX_MASK (255 << 5) | ||
1355 | 1523 | ||
1356 | /* The R300 can select components from the input register arbitrarily. | 1524 | /* The R300 can select components from the input register arbitrarily. |
1357 | // Use the following constants, shifted by the component shift you | 1525 | * Use the following constants, shifted by the component shift you |
1358 | // want to select */ | 1526 | * want to select |
1527 | */ | ||
1359 | #define R300_VPI_IN_SELECT_X 0 | 1528 | #define R300_VPI_IN_SELECT_X 0 |
1360 | #define R300_VPI_IN_SELECT_Y 1 | 1529 | #define R300_VPI_IN_SELECT_Y 1 |
1361 | #define R300_VPI_IN_SELECT_Z 2 | 1530 | #define R300_VPI_IN_SELECT_Z 2 |
@@ -1373,11 +1542,11 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1373 | #define R300_VPI_IN_NEG_Y (1 << 26) | 1542 | #define R300_VPI_IN_NEG_Y (1 << 26) |
1374 | #define R300_VPI_IN_NEG_Z (1 << 27) | 1543 | #define R300_VPI_IN_NEG_Z (1 << 27) |
1375 | #define R300_VPI_IN_NEG_W (1 << 28) | 1544 | #define R300_VPI_IN_NEG_W (1 << 28) |
1376 | /* END */ | 1545 | /* END: Vertex program instruction set */ |
1377 | 1546 | ||
1378 | //BEGIN: Packet 3 commands | 1547 | /* BEGIN: Packet 3 commands */ |
1379 | 1548 | ||
1380 | // A primitive emission dword. | 1549 | /* A primitive emission dword. */ |
1381 | #define R300_PRIM_TYPE_NONE (0 << 0) | 1550 | #define R300_PRIM_TYPE_NONE (0 << 0) |
1382 | #define R300_PRIM_TYPE_POINT (1 << 0) | 1551 | #define R300_PRIM_TYPE_POINT (1 << 0) |
1383 | #define R300_PRIM_TYPE_LINE (2 << 0) | 1552 | #define R300_PRIM_TYPE_LINE (2 << 0) |
@@ -1389,7 +1558,8 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1389 | #define R300_PRIM_TYPE_RECT_LIST (8 << 0) | 1558 | #define R300_PRIM_TYPE_RECT_LIST (8 << 0) |
1390 | #define R300_PRIM_TYPE_3VRT_POINT_LIST (9 << 0) | 1559 | #define R300_PRIM_TYPE_3VRT_POINT_LIST (9 << 0) |
1391 | #define R300_PRIM_TYPE_3VRT_LINE_LIST (10 << 0) | 1560 | #define R300_PRIM_TYPE_3VRT_LINE_LIST (10 << 0) |
1392 | #define R300_PRIM_TYPE_POINT_SPRITES (11 << 0) // GUESS (based on r200) | 1561 | /* GUESS (based on r200) */ |
1562 | #define R300_PRIM_TYPE_POINT_SPRITES (11 << 0) | ||
1393 | #define R300_PRIM_TYPE_LINE_LOOP (12 << 0) | 1563 | #define R300_PRIM_TYPE_LINE_LOOP (12 << 0) |
1394 | #define R300_PRIM_TYPE_QUADS (13 << 0) | 1564 | #define R300_PRIM_TYPE_QUADS (13 << 0) |
1395 | #define R300_PRIM_TYPE_QUAD_STRIP (14 << 0) | 1565 | #define R300_PRIM_TYPE_QUAD_STRIP (14 << 0) |
@@ -1399,37 +1569,58 @@ I am fairly certain that they are correct unless stated otherwise in comments. | |||
1399 | #define R300_PRIM_WALK_LIST (2 << 4) | 1569 | #define R300_PRIM_WALK_LIST (2 << 4) |
1400 | #define R300_PRIM_WALK_RING (3 << 4) | 1570 | #define R300_PRIM_WALK_RING (3 << 4) |
1401 | #define R300_PRIM_WALK_MASK (3 << 4) | 1571 | #define R300_PRIM_WALK_MASK (3 << 4) |
1402 | #define R300_PRIM_COLOR_ORDER_BGRA (0 << 6) // GUESS (based on r200) | 1572 | /* GUESS (based on r200) */ |
1403 | #define R300_PRIM_COLOR_ORDER_RGBA (1 << 6) // GUESS | 1573 | #define R300_PRIM_COLOR_ORDER_BGRA (0 << 6) |
1574 | #define R300_PRIM_COLOR_ORDER_RGBA (1 << 6) | ||
1404 | #define R300_PRIM_NUM_VERTICES_SHIFT 16 | 1575 | #define R300_PRIM_NUM_VERTICES_SHIFT 16 |
1576 | #define R300_PRIM_NUM_VERTICES_MASK 0xffff | ||
1405 | 1577 | ||
1406 | // Draw a primitive from vertex data in arrays loaded via 3D_LOAD_VBPNTR. | 1578 | /* Draw a primitive from vertex data in arrays loaded via 3D_LOAD_VBPNTR. |
1407 | // Two parameter dwords: | 1579 | * Two parameter dwords: |
1408 | // 0. The first parameter appears to be always 0 | 1580 | * 0. The first parameter appears to be always 0 |
1409 | // 1. The second parameter is a standard primitive emission dword. | 1581 | * 1. The second parameter is a standard primitive emission dword. |
1582 | */ | ||
1410 | #define R300_PACKET3_3D_DRAW_VBUF 0x00002800 | 1583 | #define R300_PACKET3_3D_DRAW_VBUF 0x00002800 |
1411 | 1584 | ||
1412 | // Specify the full set of vertex arrays as (address, stride). | 1585 | /* Specify the full set of vertex arrays as (address, stride). |
1413 | // The first parameter is the number of vertex arrays specified. | 1586 | * The first parameter is the number of vertex arrays specified. |
1414 | // The rest of the command is a variable length list of blocks, where | 1587 | * The rest of the command is a variable length list of blocks, where |
1415 | // each block is three dwords long and specifies two arrays. | 1588 | * each block is three dwords long and specifies two arrays. |
1416 | // The first dword of a block is split into two words, the lower significant | 1589 | * The first dword of a block is split into two words, the lower significant |
1417 | // word refers to the first array, the more significant word to the second | 1590 | * word refers to the first array, the more significant word to the second |
1418 | // array in the block. | 1591 | * array in the block. |
1419 | // The low byte of each word contains the size of an array entry in dwords, | 1592 | * The low byte of each word contains the size of an array entry in dwords, |
1420 | // the high byte contains the stride of the array. | 1593 | * the high byte contains the stride of the array. |
1421 | // The second dword of a block contains the pointer to the first array, | 1594 | * The second dword of a block contains the pointer to the first array, |
1422 | // the third dword of a block contains the pointer to the second array. | 1595 | * the third dword of a block contains the pointer to the second array. |
1423 | // Note that if the total number of arrays is odd, the third dword of | 1596 | * Note that if the total number of arrays is odd, the third dword of |
1424 | // the last block is omitted. | 1597 | * the last block is omitted. |
1598 | */ | ||
1425 | #define R300_PACKET3_3D_LOAD_VBPNTR 0x00002F00 | 1599 | #define R300_PACKET3_3D_LOAD_VBPNTR 0x00002F00 |
1426 | 1600 | ||
1427 | #define R300_PACKET3_INDX_BUFFER 0x00003300 | 1601 | #define R300_PACKET3_INDX_BUFFER 0x00003300 |
1428 | # define R300_EB_UNK1_SHIFT 24 | 1602 | # define R300_EB_UNK1_SHIFT 24 |
1429 | # define R300_EB_UNK1 (0x80<<24) | 1603 | # define R300_EB_UNK1 (0x80<<24) |
1430 | # define R300_EB_UNK2 0x0810 | 1604 | # define R300_EB_UNK2 0x0810 |
1605 | #define R300_PACKET3_3D_DRAW_VBUF_2 0x00003400 | ||
1431 | #define R300_PACKET3_3D_DRAW_INDX_2 0x00003600 | 1606 | #define R300_PACKET3_3D_DRAW_INDX_2 0x00003600 |
1432 | 1607 | ||
1433 | //END | 1608 | /* END: Packet 3 commands */ |
1609 | |||
1610 | |||
1611 | /* Color formats for 2d packets | ||
1612 | */ | ||
1613 | #define R300_CP_COLOR_FORMAT_CI8 2 | ||
1614 | #define R300_CP_COLOR_FORMAT_ARGB1555 3 | ||
1615 | #define R300_CP_COLOR_FORMAT_RGB565 4 | ||
1616 | #define R300_CP_COLOR_FORMAT_ARGB8888 6 | ||
1617 | #define R300_CP_COLOR_FORMAT_RGB332 7 | ||
1618 | #define R300_CP_COLOR_FORMAT_RGB8 9 | ||
1619 | #define R300_CP_COLOR_FORMAT_ARGB4444 15 | ||
1620 | |||
1621 | /* | ||
1622 | * CP type-3 packets | ||
1623 | */ | ||
1624 | #define R300_CP_CMD_BITBLT_MULTI 0xC0009B00 | ||
1434 | 1625 | ||
1435 | #endif /* _R300_REG_H */ | 1626 | #endif /* _R300_REG_H */ |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 68338389d836..af5790f8fd53 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -36,7 +36,7 @@ | |||
36 | 36 | ||
37 | #define RADEON_FIFO_DEBUG 0 | 37 | #define RADEON_FIFO_DEBUG 0 |
38 | 38 | ||
39 | static int radeon_do_cleanup_cp(drm_device_t * dev); | 39 | static int radeon_do_cleanup_cp(struct drm_device * dev); |
40 | 40 | ||
41 | /* CP microcode (from ATI) */ | 41 | /* CP microcode (from ATI) */ |
42 | static const u32 R200_cp_microcode[][2] = { | 42 | static const u32 R200_cp_microcode[][2] = { |
@@ -816,7 +816,7 @@ static const u32 R300_cp_microcode[][2] = { | |||
816 | {0000000000, 0000000000}, | 816 | {0000000000, 0000000000}, |
817 | }; | 817 | }; |
818 | 818 | ||
819 | static int RADEON_READ_PLL(drm_device_t * dev, int addr) | 819 | static int RADEON_READ_PLL(struct drm_device * dev, int addr) |
820 | { | 820 | { |
821 | drm_radeon_private_t *dev_priv = dev->dev_private; | 821 | drm_radeon_private_t *dev_priv = dev->dev_private; |
822 | 822 | ||
@@ -1066,7 +1066,7 @@ static void radeon_do_cp_stop(drm_radeon_private_t * dev_priv) | |||
1066 | 1066 | ||
1067 | /* Reset the engine. This will stop the CP if it is running. | 1067 | /* Reset the engine. This will stop the CP if it is running. |
1068 | */ | 1068 | */ |
1069 | static int radeon_do_engine_reset(drm_device_t * dev) | 1069 | static int radeon_do_engine_reset(struct drm_device * dev) |
1070 | { | 1070 | { |
1071 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1071 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1072 | u32 clock_cntl_index, mclk_cntl, rbbm_soft_reset; | 1072 | u32 clock_cntl_index, mclk_cntl, rbbm_soft_reset; |
@@ -1122,7 +1122,7 @@ static int radeon_do_engine_reset(drm_device_t * dev) | |||
1122 | return 0; | 1122 | return 0; |
1123 | } | 1123 | } |
1124 | 1124 | ||
1125 | static void radeon_cp_init_ring_buffer(drm_device_t * dev, | 1125 | static void radeon_cp_init_ring_buffer(struct drm_device * dev, |
1126 | drm_radeon_private_t * dev_priv) | 1126 | drm_radeon_private_t * dev_priv) |
1127 | { | 1127 | { |
1128 | u32 ring_start, cur_read_ptr; | 1128 | u32 ring_start, cur_read_ptr; |
@@ -1174,7 +1174,7 @@ static void radeon_cp_init_ring_buffer(drm_device_t * dev, | |||
1174 | } else | 1174 | } else |
1175 | #endif | 1175 | #endif |
1176 | { | 1176 | { |
1177 | drm_sg_mem_t *entry = dev->sg; | 1177 | struct drm_sg_mem *entry = dev->sg; |
1178 | unsigned long tmp_ofs, page_ofs; | 1178 | unsigned long tmp_ofs, page_ofs; |
1179 | 1179 | ||
1180 | tmp_ofs = dev_priv->ring_rptr->offset - | 1180 | tmp_ofs = dev_priv->ring_rptr->offset - |
@@ -1384,7 +1384,7 @@ static void radeon_set_pcigart(drm_radeon_private_t * dev_priv, int on) | |||
1384 | } | 1384 | } |
1385 | } | 1385 | } |
1386 | 1386 | ||
1387 | static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | 1387 | static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init) |
1388 | { | 1388 | { |
1389 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1389 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1390 | 1390 | ||
@@ -1420,6 +1420,10 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | |||
1420 | return DRM_ERR(EINVAL); | 1420 | return DRM_ERR(EINVAL); |
1421 | } | 1421 | } |
1422 | 1422 | ||
1423 | /* Enable vblank on CRTC1 for older X servers | ||
1424 | */ | ||
1425 | dev_priv->vblank_crtc = DRM_RADEON_VBLANK_CRTC1; | ||
1426 | |||
1423 | switch(init->func) { | 1427 | switch(init->func) { |
1424 | case RADEON_INIT_R200_CP: | 1428 | case RADEON_INIT_R200_CP: |
1425 | dev_priv->microcode_version = UCODE_R200; | 1429 | dev_priv->microcode_version = UCODE_R200; |
@@ -1501,13 +1505,13 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | |||
1501 | RADEON_ROUND_MODE_TRUNC | | 1505 | RADEON_ROUND_MODE_TRUNC | |
1502 | RADEON_ROUND_PREC_8TH_PIX); | 1506 | RADEON_ROUND_PREC_8TH_PIX); |
1503 | 1507 | ||
1504 | DRM_GETSAREA(); | ||
1505 | 1508 | ||
1506 | dev_priv->ring_offset = init->ring_offset; | 1509 | dev_priv->ring_offset = init->ring_offset; |
1507 | dev_priv->ring_rptr_offset = init->ring_rptr_offset; | 1510 | dev_priv->ring_rptr_offset = init->ring_rptr_offset; |
1508 | dev_priv->buffers_offset = init->buffers_offset; | 1511 | dev_priv->buffers_offset = init->buffers_offset; |
1509 | dev_priv->gart_textures_offset = init->gart_textures_offset; | 1512 | dev_priv->gart_textures_offset = init->gart_textures_offset; |
1510 | 1513 | ||
1514 | dev_priv->sarea = drm_getsarea(dev); | ||
1511 | if (!dev_priv->sarea) { | 1515 | if (!dev_priv->sarea) { |
1512 | DRM_ERROR("could not find sarea!\n"); | 1516 | DRM_ERROR("could not find sarea!\n"); |
1513 | radeon_do_cleanup_cp(dev); | 1517 | radeon_do_cleanup_cp(dev); |
@@ -1731,7 +1735,7 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init) | |||
1731 | return 0; | 1735 | return 0; |
1732 | } | 1736 | } |
1733 | 1737 | ||
1734 | static int radeon_do_cleanup_cp(drm_device_t * dev) | 1738 | static int radeon_do_cleanup_cp(struct drm_device * dev) |
1735 | { | 1739 | { |
1736 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1740 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1737 | DRM_DEBUG("\n"); | 1741 | DRM_DEBUG("\n"); |
@@ -1787,7 +1791,7 @@ static int radeon_do_cleanup_cp(drm_device_t * dev) | |||
1787 | * | 1791 | * |
1788 | * Charl P. Botha <http://cpbotha.net> | 1792 | * Charl P. Botha <http://cpbotha.net> |
1789 | */ | 1793 | */ |
1790 | static int radeon_do_resume_cp(drm_device_t * dev) | 1794 | static int radeon_do_resume_cp(struct drm_device * dev) |
1791 | { | 1795 | { |
1792 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1796 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1793 | 1797 | ||
@@ -1914,7 +1918,7 @@ int radeon_cp_stop(DRM_IOCTL_ARGS) | |||
1914 | return 0; | 1918 | return 0; |
1915 | } | 1919 | } |
1916 | 1920 | ||
1917 | void radeon_do_release(drm_device_t * dev) | 1921 | void radeon_do_release(struct drm_device * dev) |
1918 | { | 1922 | { |
1919 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1923 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1920 | int i, ret; | 1924 | int i, ret; |
@@ -2042,12 +2046,12 @@ int radeon_fullscreen(DRM_IOCTL_ARGS) | |||
2042 | * they can't get the lock. | 2046 | * they can't get the lock. |
2043 | */ | 2047 | */ |
2044 | 2048 | ||
2045 | drm_buf_t *radeon_freelist_get(drm_device_t * dev) | 2049 | struct drm_buf *radeon_freelist_get(struct drm_device * dev) |
2046 | { | 2050 | { |
2047 | drm_device_dma_t *dma = dev->dma; | 2051 | struct drm_device_dma *dma = dev->dma; |
2048 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2052 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2049 | drm_radeon_buf_priv_t *buf_priv; | 2053 | drm_radeon_buf_priv_t *buf_priv; |
2050 | drm_buf_t *buf; | 2054 | struct drm_buf *buf; |
2051 | int i, t; | 2055 | int i, t; |
2052 | int start; | 2056 | int start; |
2053 | 2057 | ||
@@ -2082,12 +2086,12 @@ drm_buf_t *radeon_freelist_get(drm_device_t * dev) | |||
2082 | } | 2086 | } |
2083 | 2087 | ||
2084 | #if 0 | 2088 | #if 0 |
2085 | drm_buf_t *radeon_freelist_get(drm_device_t * dev) | 2089 | struct drm_buf *radeon_freelist_get(struct drm_device * dev) |
2086 | { | 2090 | { |
2087 | drm_device_dma_t *dma = dev->dma; | 2091 | struct drm_device_dma *dma = dev->dma; |
2088 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2092 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2089 | drm_radeon_buf_priv_t *buf_priv; | 2093 | drm_radeon_buf_priv_t *buf_priv; |
2090 | drm_buf_t *buf; | 2094 | struct drm_buf *buf; |
2091 | int i, t; | 2095 | int i, t; |
2092 | int start; | 2096 | int start; |
2093 | u32 done_age = DRM_READ32(dev_priv->ring_rptr, RADEON_SCRATCHOFF(1)); | 2097 | u32 done_age = DRM_READ32(dev_priv->ring_rptr, RADEON_SCRATCHOFF(1)); |
@@ -2116,15 +2120,15 @@ drm_buf_t *radeon_freelist_get(drm_device_t * dev) | |||
2116 | } | 2120 | } |
2117 | #endif | 2121 | #endif |
2118 | 2122 | ||
2119 | void radeon_freelist_reset(drm_device_t * dev) | 2123 | void radeon_freelist_reset(struct drm_device * dev) |
2120 | { | 2124 | { |
2121 | drm_device_dma_t *dma = dev->dma; | 2125 | struct drm_device_dma *dma = dev->dma; |
2122 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2126 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2123 | int i; | 2127 | int i; |
2124 | 2128 | ||
2125 | dev_priv->last_buf = 0; | 2129 | dev_priv->last_buf = 0; |
2126 | for (i = 0; i < dma->buf_count; i++) { | 2130 | for (i = 0; i < dma->buf_count; i++) { |
2127 | drm_buf_t *buf = dma->buflist[i]; | 2131 | struct drm_buf *buf = dma->buflist[i]; |
2128 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; | 2132 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; |
2129 | buf_priv->age = 0; | 2133 | buf_priv->age = 0; |
2130 | } | 2134 | } |
@@ -2166,11 +2170,11 @@ int radeon_wait_ring(drm_radeon_private_t * dev_priv, int n) | |||
2166 | return DRM_ERR(EBUSY); | 2170 | return DRM_ERR(EBUSY); |
2167 | } | 2171 | } |
2168 | 2172 | ||
2169 | static int radeon_cp_get_buffers(DRMFILE filp, drm_device_t * dev, | 2173 | static int radeon_cp_get_buffers(DRMFILE filp, struct drm_device * dev, |
2170 | drm_dma_t * d) | 2174 | struct drm_dma * d) |
2171 | { | 2175 | { |
2172 | int i; | 2176 | int i; |
2173 | drm_buf_t *buf; | 2177 | struct drm_buf *buf; |
2174 | 2178 | ||
2175 | for (i = d->granted_count; i < d->request_count; i++) { | 2179 | for (i = d->granted_count; i < d->request_count; i++) { |
2176 | buf = radeon_freelist_get(dev); | 2180 | buf = radeon_freelist_get(dev); |
@@ -2194,10 +2198,10 @@ static int radeon_cp_get_buffers(DRMFILE filp, drm_device_t * dev, | |||
2194 | int radeon_cp_buffers(DRM_IOCTL_ARGS) | 2198 | int radeon_cp_buffers(DRM_IOCTL_ARGS) |
2195 | { | 2199 | { |
2196 | DRM_DEVICE; | 2200 | DRM_DEVICE; |
2197 | drm_device_dma_t *dma = dev->dma; | 2201 | struct drm_device_dma *dma = dev->dma; |
2198 | int ret = 0; | 2202 | int ret = 0; |
2199 | drm_dma_t __user *argp = (void __user *)data; | 2203 | struct drm_dma __user *argp = (void __user *)data; |
2200 | drm_dma_t d; | 2204 | struct drm_dma d; |
2201 | 2205 | ||
2202 | LOCK_TEST_WITH_RETURN(dev, filp); | 2206 | LOCK_TEST_WITH_RETURN(dev, filp); |
2203 | 2207 | ||
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h index 66c4b6fed04f..5a8e23f916fc 100644 --- a/drivers/char/drm/radeon_drm.h +++ b/drivers/char/drm/radeon_drm.h | |||
@@ -417,7 +417,7 @@ typedef struct { | |||
417 | 417 | ||
418 | /* The current cliprects, or a subset thereof. | 418 | /* The current cliprects, or a subset thereof. |
419 | */ | 419 | */ |
420 | drm_clip_rect_t boxes[RADEON_NR_SAREA_CLIPRECTS]; | 420 | struct drm_clip_rect boxes[RADEON_NR_SAREA_CLIPRECTS]; |
421 | unsigned int nbox; | 421 | unsigned int nbox; |
422 | 422 | ||
423 | /* Counters for client-side throttling of rendering clients. | 423 | /* Counters for client-side throttling of rendering clients. |
@@ -426,7 +426,7 @@ typedef struct { | |||
426 | unsigned int last_dispatch; | 426 | unsigned int last_dispatch; |
427 | unsigned int last_clear; | 427 | unsigned int last_clear; |
428 | 428 | ||
429 | drm_tex_region_t tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS + | 429 | struct drm_tex_region tex_list[RADEON_NR_TEX_HEAPS][RADEON_NR_TEX_REGIONS + |
430 | 1]; | 430 | 1]; |
431 | unsigned int tex_age[RADEON_NR_TEX_HEAPS]; | 431 | unsigned int tex_age[RADEON_NR_TEX_HEAPS]; |
432 | int ctx_owner; | 432 | int ctx_owner; |
@@ -604,7 +604,7 @@ typedef struct drm_radeon_cmd_buffer { | |||
604 | int bufsz; | 604 | int bufsz; |
605 | char __user *buf; | 605 | char __user *buf; |
606 | int nbox; | 606 | int nbox; |
607 | drm_clip_rect_t __user *boxes; | 607 | struct drm_clip_rect __user *boxes; |
608 | } drm_radeon_cmd_buffer_t; | 608 | } drm_radeon_cmd_buffer_t; |
609 | 609 | ||
610 | typedef struct drm_radeon_tex_image { | 610 | typedef struct drm_radeon_tex_image { |
@@ -655,6 +655,7 @@ typedef struct drm_radeon_indirect { | |||
655 | #define RADEON_PARAM_GART_TEX_HANDLE 10 | 655 | #define RADEON_PARAM_GART_TEX_HANDLE 10 |
656 | #define RADEON_PARAM_SCRATCH_OFFSET 11 | 656 | #define RADEON_PARAM_SCRATCH_OFFSET 11 |
657 | #define RADEON_PARAM_CARD_TYPE 12 | 657 | #define RADEON_PARAM_CARD_TYPE 12 |
658 | #define RADEON_PARAM_VBLANK_CRTC 13 /* VBLANK CRTC */ | ||
658 | 659 | ||
659 | typedef struct drm_radeon_getparam { | 660 | typedef struct drm_radeon_getparam { |
660 | int param; | 661 | int param; |
@@ -708,7 +709,7 @@ typedef struct drm_radeon_setparam { | |||
708 | #define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */ | 709 | #define RADEON_SETPARAM_PCIGART_LOCATION 3 /* PCI Gart Location */ |
709 | #define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */ | 710 | #define RADEON_SETPARAM_NEW_MEMMAP 4 /* Use new memory map */ |
710 | #define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */ | 711 | #define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5 /* PCI GART Table Size */ |
711 | 712 | #define RADEON_SETPARAM_VBLANK_CRTC 6 /* VBLANK CRTC */ | |
712 | /* 1.14: Clients can allocate/free a surface | 713 | /* 1.14: Clients can allocate/free a surface |
713 | */ | 714 | */ |
714 | typedef struct drm_radeon_surface_alloc { | 715 | typedef struct drm_radeon_surface_alloc { |
@@ -721,4 +722,7 @@ typedef struct drm_radeon_surface_free { | |||
721 | unsigned int address; | 722 | unsigned int address; |
722 | } drm_radeon_surface_free_t; | 723 | } drm_radeon_surface_free_t; |
723 | 724 | ||
725 | #define DRM_RADEON_VBLANK_CRTC1 1 | ||
726 | #define DRM_RADEON_VBLANK_CRTC2 2 | ||
727 | |||
724 | #endif | 728 | #endif |
diff --git a/drivers/char/drm/radeon_drv.c b/drivers/char/drm/radeon_drv.c index 2eb652ec6745..349ac3d3b848 100644 --- a/drivers/char/drm/radeon_drv.c +++ b/drivers/char/drm/radeon_drv.c | |||
@@ -60,7 +60,7 @@ static struct drm_driver driver = { | |||
60 | .driver_features = | 60 | .driver_features = |
61 | DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG | | 61 | DRIVER_USE_AGP | DRIVER_USE_MTRR | DRIVER_PCI_DMA | DRIVER_SG | |
62 | DRIVER_HAVE_IRQ | DRIVER_HAVE_DMA | DRIVER_IRQ_SHARED | | 62 | DRIVER_HAVE_IRQ | DRIVER_HAVE_DMA | DRIVER_IRQ_SHARED | |
63 | DRIVER_IRQ_VBL, | 63 | DRIVER_IRQ_VBL | DRIVER_IRQ_VBL2, |
64 | .dev_priv_size = sizeof(drm_radeon_buf_priv_t), | 64 | .dev_priv_size = sizeof(drm_radeon_buf_priv_t), |
65 | .load = radeon_driver_load, | 65 | .load = radeon_driver_load, |
66 | .firstopen = radeon_driver_firstopen, | 66 | .firstopen = radeon_driver_firstopen, |
@@ -70,6 +70,7 @@ static struct drm_driver driver = { | |||
70 | .lastclose = radeon_driver_lastclose, | 70 | .lastclose = radeon_driver_lastclose, |
71 | .unload = radeon_driver_unload, | 71 | .unload = radeon_driver_unload, |
72 | .vblank_wait = radeon_driver_vblank_wait, | 72 | .vblank_wait = radeon_driver_vblank_wait, |
73 | .vblank_wait2 = radeon_driver_vblank_wait2, | ||
73 | .dri_library_name = dri_library_name, | 74 | .dri_library_name = dri_library_name, |
74 | .irq_preinstall = radeon_driver_irq_preinstall, | 75 | .irq_preinstall = radeon_driver_irq_preinstall, |
75 | .irq_postinstall = radeon_driver_irq_postinstall, | 76 | .irq_postinstall = radeon_driver_irq_postinstall, |
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index 54f49ef4bef0..3b3d9357201c 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h | |||
@@ -97,9 +97,10 @@ | |||
97 | * new packet type) | 97 | * new packet type) |
98 | * 1.26- Add support for variable size PCI(E) gart aperture | 98 | * 1.26- Add support for variable size PCI(E) gart aperture |
99 | * 1.27- Add support for IGP GART | 99 | * 1.27- Add support for IGP GART |
100 | * 1.28- Add support for VBL on CRTC2 | ||
100 | */ | 101 | */ |
101 | #define DRIVER_MAJOR 1 | 102 | #define DRIVER_MAJOR 1 |
102 | #define DRIVER_MINOR 27 | 103 | #define DRIVER_MINOR 28 |
103 | #define DRIVER_PATCHLEVEL 0 | 104 | #define DRIVER_PATCHLEVEL 0 |
104 | 105 | ||
105 | /* | 106 | /* |
@@ -154,7 +155,7 @@ enum radeon_chip_flags { | |||
154 | 155 | ||
155 | typedef struct drm_radeon_freelist { | 156 | typedef struct drm_radeon_freelist { |
156 | unsigned int age; | 157 | unsigned int age; |
157 | drm_buf_t *buf; | 158 | struct drm_buf *buf; |
158 | struct drm_radeon_freelist *next; | 159 | struct drm_radeon_freelist *next; |
159 | struct drm_radeon_freelist *prev; | 160 | struct drm_radeon_freelist *prev; |
160 | } drm_radeon_freelist_t; | 161 | } drm_radeon_freelist_t; |
@@ -277,13 +278,16 @@ typedef struct drm_radeon_private { | |||
277 | /* SW interrupt */ | 278 | /* SW interrupt */ |
278 | wait_queue_head_t swi_queue; | 279 | wait_queue_head_t swi_queue; |
279 | atomic_t swi_emitted; | 280 | atomic_t swi_emitted; |
281 | int vblank_crtc; | ||
282 | uint32_t irq_enable_reg; | ||
283 | int irq_enabled; | ||
280 | 284 | ||
281 | struct radeon_surface surfaces[RADEON_MAX_SURFACES]; | 285 | struct radeon_surface surfaces[RADEON_MAX_SURFACES]; |
282 | struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; | 286 | struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; |
283 | 287 | ||
284 | unsigned long pcigart_offset; | 288 | unsigned long pcigart_offset; |
285 | unsigned int pcigart_offset_set; | 289 | unsigned int pcigart_offset_set; |
286 | drm_ati_pcigart_info gart_info; | 290 | struct drm_ati_pcigart_info gart_info; |
287 | 291 | ||
288 | u32 scratch_ages[5]; | 292 | u32 scratch_ages[5]; |
289 | 293 | ||
@@ -299,7 +303,7 @@ typedef struct drm_radeon_kcmd_buffer { | |||
299 | int bufsz; | 303 | int bufsz; |
300 | char *buf; | 304 | char *buf; |
301 | int nbox; | 305 | int nbox; |
302 | drm_clip_rect_t __user *boxes; | 306 | struct drm_clip_rect __user *boxes; |
303 | } drm_radeon_kcmd_buffer_t; | 307 | } drm_radeon_kcmd_buffer_t; |
304 | 308 | ||
305 | extern int radeon_no_wb; | 309 | extern int radeon_no_wb; |
@@ -332,8 +336,8 @@ extern int radeon_engine_reset(DRM_IOCTL_ARGS); | |||
332 | extern int radeon_fullscreen(DRM_IOCTL_ARGS); | 336 | extern int radeon_fullscreen(DRM_IOCTL_ARGS); |
333 | extern int radeon_cp_buffers(DRM_IOCTL_ARGS); | 337 | extern int radeon_cp_buffers(DRM_IOCTL_ARGS); |
334 | 338 | ||
335 | extern void radeon_freelist_reset(drm_device_t * dev); | 339 | extern void radeon_freelist_reset(struct drm_device * dev); |
336 | extern drm_buf_t *radeon_freelist_get(drm_device_t * dev); | 340 | extern struct drm_buf *radeon_freelist_get(struct drm_device * dev); |
337 | 341 | ||
338 | extern int radeon_wait_ring(drm_radeon_private_t * dev_priv, int n); | 342 | extern int radeon_wait_ring(drm_radeon_private_t * dev_priv, int n); |
339 | 343 | ||
@@ -353,29 +357,33 @@ extern void radeon_mem_release(DRMFILE filp, struct mem_block *heap); | |||
353 | extern int radeon_irq_emit(DRM_IOCTL_ARGS); | 357 | extern int radeon_irq_emit(DRM_IOCTL_ARGS); |
354 | extern int radeon_irq_wait(DRM_IOCTL_ARGS); | 358 | extern int radeon_irq_wait(DRM_IOCTL_ARGS); |
355 | 359 | ||
356 | extern void radeon_do_release(drm_device_t * dev); | 360 | extern void radeon_do_release(struct drm_device * dev); |
357 | extern int radeon_driver_vblank_wait(drm_device_t * dev, | 361 | extern int radeon_driver_vblank_wait(struct drm_device * dev, |
358 | unsigned int *sequence); | 362 | unsigned int *sequence); |
363 | extern int radeon_driver_vblank_wait2(struct drm_device * dev, | ||
364 | unsigned int *sequence); | ||
359 | extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS); | 365 | extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS); |
360 | extern void radeon_driver_irq_preinstall(drm_device_t * dev); | 366 | extern void radeon_driver_irq_preinstall(struct drm_device * dev); |
361 | extern void radeon_driver_irq_postinstall(drm_device_t * dev); | 367 | extern void radeon_driver_irq_postinstall(struct drm_device * dev); |
362 | extern void radeon_driver_irq_uninstall(drm_device_t * dev); | 368 | extern void radeon_driver_irq_uninstall(struct drm_device * dev); |
369 | extern int radeon_vblank_crtc_get(struct drm_device *dev); | ||
370 | extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value); | ||
363 | 371 | ||
364 | extern int radeon_driver_load(struct drm_device *dev, unsigned long flags); | 372 | extern int radeon_driver_load(struct drm_device *dev, unsigned long flags); |
365 | extern int radeon_driver_unload(struct drm_device *dev); | 373 | extern int radeon_driver_unload(struct drm_device *dev); |
366 | extern int radeon_driver_firstopen(struct drm_device *dev); | 374 | extern int radeon_driver_firstopen(struct drm_device *dev); |
367 | extern void radeon_driver_preclose(drm_device_t * dev, DRMFILE filp); | 375 | extern void radeon_driver_preclose(struct drm_device * dev, DRMFILE filp); |
368 | extern void radeon_driver_postclose(drm_device_t * dev, drm_file_t * filp); | 376 | extern void radeon_driver_postclose(struct drm_device * dev, struct drm_file * filp); |
369 | extern void radeon_driver_lastclose(drm_device_t * dev); | 377 | extern void radeon_driver_lastclose(struct drm_device * dev); |
370 | extern int radeon_driver_open(drm_device_t * dev, drm_file_t * filp_priv); | 378 | extern int radeon_driver_open(struct drm_device * dev, struct drm_file * filp_priv); |
371 | extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd, | 379 | extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd, |
372 | unsigned long arg); | 380 | unsigned long arg); |
373 | 381 | ||
374 | /* r300_cmdbuf.c */ | 382 | /* r300_cmdbuf.c */ |
375 | extern void r300_init_reg_flags(void); | 383 | extern void r300_init_reg_flags(void); |
376 | 384 | ||
377 | extern int r300_do_cp_cmdbuf(drm_device_t * dev, DRMFILE filp, | 385 | extern int r300_do_cp_cmdbuf(struct drm_device * dev, DRMFILE filp, |
378 | drm_file_t * filp_priv, | 386 | struct drm_file * filp_priv, |
379 | drm_radeon_kcmd_buffer_t * cmdbuf); | 387 | drm_radeon_kcmd_buffer_t * cmdbuf); |
380 | 388 | ||
381 | /* Flags for stats.boxes | 389 | /* Flags for stats.boxes |
@@ -496,12 +504,15 @@ extern int r300_do_cp_cmdbuf(drm_device_t * dev, DRMFILE filp, | |||
496 | 504 | ||
497 | #define RADEON_GEN_INT_CNTL 0x0040 | 505 | #define RADEON_GEN_INT_CNTL 0x0040 |
498 | # define RADEON_CRTC_VBLANK_MASK (1 << 0) | 506 | # define RADEON_CRTC_VBLANK_MASK (1 << 0) |
507 | # define RADEON_CRTC2_VBLANK_MASK (1 << 9) | ||
499 | # define RADEON_GUI_IDLE_INT_ENABLE (1 << 19) | 508 | # define RADEON_GUI_IDLE_INT_ENABLE (1 << 19) |
500 | # define RADEON_SW_INT_ENABLE (1 << 25) | 509 | # define RADEON_SW_INT_ENABLE (1 << 25) |
501 | 510 | ||
502 | #define RADEON_GEN_INT_STATUS 0x0044 | 511 | #define RADEON_GEN_INT_STATUS 0x0044 |
503 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) | 512 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) |
504 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) | 513 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) |
514 | # define RADEON_CRTC2_VBLANK_STAT (1 << 9) | ||
515 | # define RADEON_CRTC2_VBLANK_STAT_ACK (1 << 9) | ||
505 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) | 516 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) |
506 | # define RADEON_SW_INT_TEST (1 << 25) | 517 | # define RADEON_SW_INT_TEST (1 << 25) |
507 | # define RADEON_SW_INT_TEST_ACK (1 << 25) | 518 | # define RADEON_SW_INT_TEST_ACK (1 << 25) |
diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c index 3ff0baa2fbfa..ad8a0ac7182e 100644 --- a/drivers/char/drm/radeon_irq.c +++ b/drivers/char/drm/radeon_irq.c | |||
@@ -64,7 +64,7 @@ static __inline__ u32 radeon_acknowledge_irqs(drm_radeon_private_t * dev_priv, | |||
64 | 64 | ||
65 | irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS) | 65 | irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS) |
66 | { | 66 | { |
67 | drm_device_t *dev = (drm_device_t *) arg; | 67 | struct drm_device *dev = (struct drm_device *) arg; |
68 | drm_radeon_private_t *dev_priv = | 68 | drm_radeon_private_t *dev_priv = |
69 | (drm_radeon_private_t *) dev->dev_private; | 69 | (drm_radeon_private_t *) dev->dev_private; |
70 | u32 stat; | 70 | u32 stat; |
@@ -73,18 +73,35 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS) | |||
73 | * outside the DRM | 73 | * outside the DRM |
74 | */ | 74 | */ |
75 | stat = radeon_acknowledge_irqs(dev_priv, (RADEON_SW_INT_TEST_ACK | | 75 | stat = radeon_acknowledge_irqs(dev_priv, (RADEON_SW_INT_TEST_ACK | |
76 | RADEON_CRTC_VBLANK_STAT)); | 76 | RADEON_CRTC_VBLANK_STAT | |
77 | RADEON_CRTC2_VBLANK_STAT)); | ||
77 | if (!stat) | 78 | if (!stat) |
78 | return IRQ_NONE; | 79 | return IRQ_NONE; |
79 | 80 | ||
81 | stat &= dev_priv->irq_enable_reg; | ||
82 | |||
80 | /* SW interrupt */ | 83 | /* SW interrupt */ |
81 | if (stat & RADEON_SW_INT_TEST) { | 84 | if (stat & RADEON_SW_INT_TEST) { |
82 | DRM_WAKEUP(&dev_priv->swi_queue); | 85 | DRM_WAKEUP(&dev_priv->swi_queue); |
83 | } | 86 | } |
84 | 87 | ||
85 | /* VBLANK interrupt */ | 88 | /* VBLANK interrupt */ |
86 | if (stat & RADEON_CRTC_VBLANK_STAT) { | 89 | if (stat & (RADEON_CRTC_VBLANK_STAT|RADEON_CRTC2_VBLANK_STAT)) { |
87 | atomic_inc(&dev->vbl_received); | 90 | int vblank_crtc = dev_priv->vblank_crtc; |
91 | |||
92 | if ((vblank_crtc & | ||
93 | (DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2)) == | ||
94 | (DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2)) { | ||
95 | if (stat & RADEON_CRTC_VBLANK_STAT) | ||
96 | atomic_inc(&dev->vbl_received); | ||
97 | if (stat & RADEON_CRTC2_VBLANK_STAT) | ||
98 | atomic_inc(&dev->vbl_received2); | ||
99 | } else if (((stat & RADEON_CRTC_VBLANK_STAT) && | ||
100 | (vblank_crtc & DRM_RADEON_VBLANK_CRTC1)) || | ||
101 | ((stat & RADEON_CRTC2_VBLANK_STAT) && | ||
102 | (vblank_crtc & DRM_RADEON_VBLANK_CRTC2))) | ||
103 | atomic_inc(&dev->vbl_received); | ||
104 | |||
88 | DRM_WAKEUP(&dev->vbl_queue); | 105 | DRM_WAKEUP(&dev->vbl_queue); |
89 | drm_vbl_send_signals(dev); | 106 | drm_vbl_send_signals(dev); |
90 | } | 107 | } |
@@ -92,7 +109,7 @@ irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS) | |||
92 | return IRQ_HANDLED; | 109 | return IRQ_HANDLED; |
93 | } | 110 | } |
94 | 111 | ||
95 | static int radeon_emit_irq(drm_device_t * dev) | 112 | static int radeon_emit_irq(struct drm_device * dev) |
96 | { | 113 | { |
97 | drm_radeon_private_t *dev_priv = dev->dev_private; | 114 | drm_radeon_private_t *dev_priv = dev->dev_private; |
98 | unsigned int ret; | 115 | unsigned int ret; |
@@ -110,7 +127,7 @@ static int radeon_emit_irq(drm_device_t * dev) | |||
110 | return ret; | 127 | return ret; |
111 | } | 128 | } |
112 | 129 | ||
113 | static int radeon_wait_irq(drm_device_t * dev, int swi_nr) | 130 | static int radeon_wait_irq(struct drm_device * dev, int swi_nr) |
114 | { | 131 | { |
115 | drm_radeon_private_t *dev_priv = | 132 | drm_radeon_private_t *dev_priv = |
116 | (drm_radeon_private_t *) dev->dev_private; | 133 | (drm_radeon_private_t *) dev->dev_private; |
@@ -127,19 +144,30 @@ static int radeon_wait_irq(drm_device_t * dev, int swi_nr) | |||
127 | return ret; | 144 | return ret; |
128 | } | 145 | } |
129 | 146 | ||
130 | int radeon_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | 147 | int radeon_driver_vblank_do_wait(struct drm_device * dev, unsigned int *sequence, |
148 | int crtc) | ||
131 | { | 149 | { |
132 | drm_radeon_private_t *dev_priv = | 150 | drm_radeon_private_t *dev_priv = |
133 | (drm_radeon_private_t *) dev->dev_private; | 151 | (drm_radeon_private_t *) dev->dev_private; |
134 | unsigned int cur_vblank; | 152 | unsigned int cur_vblank; |
135 | int ret = 0; | 153 | int ret = 0; |
136 | 154 | int ack = 0; | |
155 | atomic_t *counter; | ||
137 | if (!dev_priv) { | 156 | if (!dev_priv) { |
138 | DRM_ERROR("%s called with no initialization\n", __FUNCTION__); | 157 | DRM_ERROR("%s called with no initialization\n", __FUNCTION__); |
139 | return DRM_ERR(EINVAL); | 158 | return DRM_ERR(EINVAL); |
140 | } | 159 | } |
141 | 160 | ||
142 | radeon_acknowledge_irqs(dev_priv, RADEON_CRTC_VBLANK_STAT); | 161 | if (crtc == DRM_RADEON_VBLANK_CRTC1) { |
162 | counter = &dev->vbl_received; | ||
163 | ack |= RADEON_CRTC_VBLANK_STAT; | ||
164 | } else if (crtc == DRM_RADEON_VBLANK_CRTC2) { | ||
165 | counter = &dev->vbl_received2; | ||
166 | ack |= RADEON_CRTC2_VBLANK_STAT; | ||
167 | } else | ||
168 | return DRM_ERR(EINVAL); | ||
169 | |||
170 | radeon_acknowledge_irqs(dev_priv, ack); | ||
143 | 171 | ||
144 | dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE; | 172 | dev_priv->stats.boxes |= RADEON_BOX_WAIT_IDLE; |
145 | 173 | ||
@@ -148,7 +176,7 @@ int radeon_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | |||
148 | * using vertical blanks... | 176 | * using vertical blanks... |
149 | */ | 177 | */ |
150 | DRM_WAIT_ON(ret, dev->vbl_queue, 3 * DRM_HZ, | 178 | DRM_WAIT_ON(ret, dev->vbl_queue, 3 * DRM_HZ, |
151 | (((cur_vblank = atomic_read(&dev->vbl_received)) | 179 | (((cur_vblank = atomic_read(counter)) |
152 | - *sequence) <= (1 << 23))); | 180 | - *sequence) <= (1 << 23))); |
153 | 181 | ||
154 | *sequence = cur_vblank; | 182 | *sequence = cur_vblank; |
@@ -156,6 +184,16 @@ int radeon_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | |||
156 | return ret; | 184 | return ret; |
157 | } | 185 | } |
158 | 186 | ||
187 | int radeon_driver_vblank_wait(struct drm_device *dev, unsigned int *sequence) | ||
188 | { | ||
189 | return radeon_driver_vblank_do_wait(dev, sequence, DRM_RADEON_VBLANK_CRTC1); | ||
190 | } | ||
191 | |||
192 | int radeon_driver_vblank_wait2(struct drm_device *dev, unsigned int *sequence) | ||
193 | { | ||
194 | return radeon_driver_vblank_do_wait(dev, sequence, DRM_RADEON_VBLANK_CRTC2); | ||
195 | } | ||
196 | |||
159 | /* Needs the lock as it touches the ring. | 197 | /* Needs the lock as it touches the ring. |
160 | */ | 198 | */ |
161 | int radeon_irq_emit(DRM_IOCTL_ARGS) | 199 | int radeon_irq_emit(DRM_IOCTL_ARGS) |
@@ -204,9 +242,24 @@ int radeon_irq_wait(DRM_IOCTL_ARGS) | |||
204 | return radeon_wait_irq(dev, irqwait.irq_seq); | 242 | return radeon_wait_irq(dev, irqwait.irq_seq); |
205 | } | 243 | } |
206 | 244 | ||
245 | static void radeon_enable_interrupt(struct drm_device *dev) | ||
246 | { | ||
247 | drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; | ||
248 | |||
249 | dev_priv->irq_enable_reg = RADEON_SW_INT_ENABLE; | ||
250 | if (dev_priv->vblank_crtc & DRM_RADEON_VBLANK_CRTC1) | ||
251 | dev_priv->irq_enable_reg |= RADEON_CRTC_VBLANK_MASK; | ||
252 | |||
253 | if (dev_priv->vblank_crtc & DRM_RADEON_VBLANK_CRTC2) | ||
254 | dev_priv->irq_enable_reg |= RADEON_CRTC2_VBLANK_MASK; | ||
255 | |||
256 | RADEON_WRITE(RADEON_GEN_INT_CNTL, dev_priv->irq_enable_reg); | ||
257 | dev_priv->irq_enabled = 1; | ||
258 | } | ||
259 | |||
207 | /* drm_dma.h hooks | 260 | /* drm_dma.h hooks |
208 | */ | 261 | */ |
209 | void radeon_driver_irq_preinstall(drm_device_t * dev) | 262 | void radeon_driver_irq_preinstall(struct drm_device * dev) |
210 | { | 263 | { |
211 | drm_radeon_private_t *dev_priv = | 264 | drm_radeon_private_t *dev_priv = |
212 | (drm_radeon_private_t *) dev->dev_private; | 265 | (drm_radeon_private_t *) dev->dev_private; |
@@ -216,10 +269,11 @@ void radeon_driver_irq_preinstall(drm_device_t * dev) | |||
216 | 269 | ||
217 | /* Clear bits if they're already high */ | 270 | /* Clear bits if they're already high */ |
218 | radeon_acknowledge_irqs(dev_priv, (RADEON_SW_INT_TEST_ACK | | 271 | radeon_acknowledge_irqs(dev_priv, (RADEON_SW_INT_TEST_ACK | |
219 | RADEON_CRTC_VBLANK_STAT)); | 272 | RADEON_CRTC_VBLANK_STAT | |
273 | RADEON_CRTC2_VBLANK_STAT)); | ||
220 | } | 274 | } |
221 | 275 | ||
222 | void radeon_driver_irq_postinstall(drm_device_t * dev) | 276 | void radeon_driver_irq_postinstall(struct drm_device * dev) |
223 | { | 277 | { |
224 | drm_radeon_private_t *dev_priv = | 278 | drm_radeon_private_t *dev_priv = |
225 | (drm_radeon_private_t *) dev->dev_private; | 279 | (drm_radeon_private_t *) dev->dev_private; |
@@ -227,18 +281,48 @@ void radeon_driver_irq_postinstall(drm_device_t * dev) | |||
227 | atomic_set(&dev_priv->swi_emitted, 0); | 281 | atomic_set(&dev_priv->swi_emitted, 0); |
228 | DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); | 282 | DRM_INIT_WAITQUEUE(&dev_priv->swi_queue); |
229 | 283 | ||
230 | /* Turn on SW and VBL ints */ | 284 | radeon_enable_interrupt(dev); |
231 | RADEON_WRITE(RADEON_GEN_INT_CNTL, | ||
232 | RADEON_CRTC_VBLANK_MASK | RADEON_SW_INT_ENABLE); | ||
233 | } | 285 | } |
234 | 286 | ||
235 | void radeon_driver_irq_uninstall(drm_device_t * dev) | 287 | void radeon_driver_irq_uninstall(struct drm_device * dev) |
236 | { | 288 | { |
237 | drm_radeon_private_t *dev_priv = | 289 | drm_radeon_private_t *dev_priv = |
238 | (drm_radeon_private_t *) dev->dev_private; | 290 | (drm_radeon_private_t *) dev->dev_private; |
239 | if (!dev_priv) | 291 | if (!dev_priv) |
240 | return; | 292 | return; |
241 | 293 | ||
294 | dev_priv->irq_enabled = 0; | ||
295 | |||
242 | /* Disable *all* interrupts */ | 296 | /* Disable *all* interrupts */ |
243 | RADEON_WRITE(RADEON_GEN_INT_CNTL, 0); | 297 | RADEON_WRITE(RADEON_GEN_INT_CNTL, 0); |
244 | } | 298 | } |
299 | |||
300 | |||
301 | int radeon_vblank_crtc_get(struct drm_device *dev) | ||
302 | { | ||
303 | drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; | ||
304 | u32 flag; | ||
305 | u32 value; | ||
306 | |||
307 | flag = RADEON_READ(RADEON_GEN_INT_CNTL); | ||
308 | value = 0; | ||
309 | |||
310 | if (flag & RADEON_CRTC_VBLANK_MASK) | ||
311 | value |= DRM_RADEON_VBLANK_CRTC1; | ||
312 | |||
313 | if (flag & RADEON_CRTC2_VBLANK_MASK) | ||
314 | value |= DRM_RADEON_VBLANK_CRTC2; | ||
315 | return value; | ||
316 | } | ||
317 | |||
318 | int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value) | ||
319 | { | ||
320 | drm_radeon_private_t *dev_priv = (drm_radeon_private_t *) dev->dev_private; | ||
321 | if (value & ~(DRM_RADEON_VBLANK_CRTC1 | DRM_RADEON_VBLANK_CRTC2)) { | ||
322 | DRM_ERROR("called with invalid crtc 0x%x\n", (unsigned int)value); | ||
323 | return DRM_ERR(EINVAL); | ||
324 | } | ||
325 | dev_priv->vblank_crtc = (unsigned int)value; | ||
326 | radeon_enable_interrupt(dev); | ||
327 | return 0; | ||
328 | } | ||
diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c index 98c5f1d3a8e7..3ddf86f2abf0 100644 --- a/drivers/char/drm/radeon_state.c +++ b/drivers/char/drm/radeon_state.c | |||
@@ -39,7 +39,7 @@ | |||
39 | 39 | ||
40 | static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t * | 40 | static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t * |
41 | dev_priv, | 41 | dev_priv, |
42 | drm_file_t * filp_priv, | 42 | struct drm_file * filp_priv, |
43 | u32 *offset) | 43 | u32 *offset) |
44 | { | 44 | { |
45 | u64 off = *offset; | 45 | u64 off = *offset; |
@@ -90,7 +90,7 @@ static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t * | |||
90 | 90 | ||
91 | static __inline__ int radeon_check_and_fixup_packets(drm_radeon_private_t * | 91 | static __inline__ int radeon_check_and_fixup_packets(drm_radeon_private_t * |
92 | dev_priv, | 92 | dev_priv, |
93 | drm_file_t * filp_priv, | 93 | struct drm_file * filp_priv, |
94 | int id, u32 *data) | 94 | int id, u32 *data) |
95 | { | 95 | { |
96 | switch (id) { | 96 | switch (id) { |
@@ -264,7 +264,7 @@ static __inline__ int radeon_check_and_fixup_packets(drm_radeon_private_t * | |||
264 | 264 | ||
265 | static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t * | 265 | static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t * |
266 | dev_priv, | 266 | dev_priv, |
267 | drm_file_t *filp_priv, | 267 | struct drm_file *filp_priv, |
268 | drm_radeon_kcmd_buffer_t * | 268 | drm_radeon_kcmd_buffer_t * |
269 | cmdbuf, | 269 | cmdbuf, |
270 | unsigned int *cmdsz) | 270 | unsigned int *cmdsz) |
@@ -421,7 +421,7 @@ static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t * | |||
421 | */ | 421 | */ |
422 | 422 | ||
423 | static __inline__ void radeon_emit_clip_rect(drm_radeon_private_t * dev_priv, | 423 | static __inline__ void radeon_emit_clip_rect(drm_radeon_private_t * dev_priv, |
424 | drm_clip_rect_t * box) | 424 | struct drm_clip_rect * box) |
425 | { | 425 | { |
426 | RING_LOCALS; | 426 | RING_LOCALS; |
427 | 427 | ||
@@ -439,7 +439,7 @@ static __inline__ void radeon_emit_clip_rect(drm_radeon_private_t * dev_priv, | |||
439 | /* Emit 1.1 state | 439 | /* Emit 1.1 state |
440 | */ | 440 | */ |
441 | static int radeon_emit_state(drm_radeon_private_t * dev_priv, | 441 | static int radeon_emit_state(drm_radeon_private_t * dev_priv, |
442 | drm_file_t * filp_priv, | 442 | struct drm_file * filp_priv, |
443 | drm_radeon_context_regs_t * ctx, | 443 | drm_radeon_context_regs_t * ctx, |
444 | drm_radeon_texture_regs_t * tex, | 444 | drm_radeon_texture_regs_t * tex, |
445 | unsigned int dirty) | 445 | unsigned int dirty) |
@@ -608,7 +608,7 @@ static int radeon_emit_state(drm_radeon_private_t * dev_priv, | |||
608 | /* Emit 1.2 state | 608 | /* Emit 1.2 state |
609 | */ | 609 | */ |
610 | static int radeon_emit_state2(drm_radeon_private_t * dev_priv, | 610 | static int radeon_emit_state2(drm_radeon_private_t * dev_priv, |
611 | drm_file_t * filp_priv, | 611 | struct drm_file * filp_priv, |
612 | drm_radeon_state_t * state) | 612 | drm_radeon_state_t * state) |
613 | { | 613 | { |
614 | RING_LOCALS; | 614 | RING_LOCALS; |
@@ -844,7 +844,7 @@ static void radeon_cp_performance_boxes(drm_radeon_private_t * dev_priv) | |||
844 | * CP command dispatch functions | 844 | * CP command dispatch functions |
845 | */ | 845 | */ |
846 | 846 | ||
847 | static void radeon_cp_dispatch_clear(drm_device_t * dev, | 847 | static void radeon_cp_dispatch_clear(struct drm_device * dev, |
848 | drm_radeon_clear_t * clear, | 848 | drm_radeon_clear_t * clear, |
849 | drm_radeon_clear_rect_t * depth_boxes) | 849 | drm_radeon_clear_rect_t * depth_boxes) |
850 | { | 850 | { |
@@ -852,7 +852,7 @@ static void radeon_cp_dispatch_clear(drm_device_t * dev, | |||
852 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; | 852 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; |
853 | drm_radeon_depth_clear_t *depth_clear = &dev_priv->depth_clear; | 853 | drm_radeon_depth_clear_t *depth_clear = &dev_priv->depth_clear; |
854 | int nbox = sarea_priv->nbox; | 854 | int nbox = sarea_priv->nbox; |
855 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 855 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
856 | unsigned int flags = clear->flags; | 856 | unsigned int flags = clear->flags; |
857 | u32 rb3d_cntl = 0, rb3d_stencilrefmask = 0; | 857 | u32 rb3d_cntl = 0, rb3d_stencilrefmask = 0; |
858 | int i; | 858 | int i; |
@@ -1335,12 +1335,12 @@ static void radeon_cp_dispatch_clear(drm_device_t * dev, | |||
1335 | ADVANCE_RING(); | 1335 | ADVANCE_RING(); |
1336 | } | 1336 | } |
1337 | 1337 | ||
1338 | static void radeon_cp_dispatch_swap(drm_device_t * dev) | 1338 | static void radeon_cp_dispatch_swap(struct drm_device * dev) |
1339 | { | 1339 | { |
1340 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1340 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1341 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; | 1341 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; |
1342 | int nbox = sarea_priv->nbox; | 1342 | int nbox = sarea_priv->nbox; |
1343 | drm_clip_rect_t *pbox = sarea_priv->boxes; | 1343 | struct drm_clip_rect *pbox = sarea_priv->boxes; |
1344 | int i; | 1344 | int i; |
1345 | RING_LOCALS; | 1345 | RING_LOCALS; |
1346 | DRM_DEBUG("\n"); | 1346 | DRM_DEBUG("\n"); |
@@ -1412,10 +1412,10 @@ static void radeon_cp_dispatch_swap(drm_device_t * dev) | |||
1412 | ADVANCE_RING(); | 1412 | ADVANCE_RING(); |
1413 | } | 1413 | } |
1414 | 1414 | ||
1415 | static void radeon_cp_dispatch_flip(drm_device_t * dev) | 1415 | static void radeon_cp_dispatch_flip(struct drm_device * dev) |
1416 | { | 1416 | { |
1417 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1417 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1418 | drm_sarea_t *sarea = (drm_sarea_t *) dev_priv->sarea->handle; | 1418 | struct drm_sarea *sarea = (struct drm_sarea *) dev_priv->sarea->handle; |
1419 | int offset = (dev_priv->sarea_priv->pfCurrentPage == 1) | 1419 | int offset = (dev_priv->sarea_priv->pfCurrentPage == 1) |
1420 | ? dev_priv->front_offset : dev_priv->back_offset; | 1420 | ? dev_priv->front_offset : dev_priv->back_offset; |
1421 | RING_LOCALS; | 1421 | RING_LOCALS; |
@@ -1491,8 +1491,8 @@ typedef struct { | |||
1491 | unsigned int vc_format; | 1491 | unsigned int vc_format; |
1492 | } drm_radeon_tcl_prim_t; | 1492 | } drm_radeon_tcl_prim_t; |
1493 | 1493 | ||
1494 | static void radeon_cp_dispatch_vertex(drm_device_t * dev, | 1494 | static void radeon_cp_dispatch_vertex(struct drm_device * dev, |
1495 | drm_buf_t * buf, | 1495 | struct drm_buf * buf, |
1496 | drm_radeon_tcl_prim_t * prim) | 1496 | drm_radeon_tcl_prim_t * prim) |
1497 | { | 1497 | { |
1498 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1498 | drm_radeon_private_t *dev_priv = dev->dev_private; |
@@ -1537,7 +1537,7 @@ static void radeon_cp_dispatch_vertex(drm_device_t * dev, | |||
1537 | } while (i < nbox); | 1537 | } while (i < nbox); |
1538 | } | 1538 | } |
1539 | 1539 | ||
1540 | static void radeon_cp_discard_buffer(drm_device_t * dev, drm_buf_t * buf) | 1540 | static void radeon_cp_discard_buffer(struct drm_device * dev, struct drm_buf * buf) |
1541 | { | 1541 | { |
1542 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1542 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1543 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; | 1543 | drm_radeon_buf_priv_t *buf_priv = buf->dev_private; |
@@ -1554,8 +1554,8 @@ static void radeon_cp_discard_buffer(drm_device_t * dev, drm_buf_t * buf) | |||
1554 | buf->used = 0; | 1554 | buf->used = 0; |
1555 | } | 1555 | } |
1556 | 1556 | ||
1557 | static void radeon_cp_dispatch_indirect(drm_device_t * dev, | 1557 | static void radeon_cp_dispatch_indirect(struct drm_device * dev, |
1558 | drm_buf_t * buf, int start, int end) | 1558 | struct drm_buf * buf, int start, int end) |
1559 | { | 1559 | { |
1560 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1560 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1561 | RING_LOCALS; | 1561 | RING_LOCALS; |
@@ -1588,8 +1588,8 @@ static void radeon_cp_dispatch_indirect(drm_device_t * dev, | |||
1588 | } | 1588 | } |
1589 | } | 1589 | } |
1590 | 1590 | ||
1591 | static void radeon_cp_dispatch_indices(drm_device_t * dev, | 1591 | static void radeon_cp_dispatch_indices(struct drm_device * dev, |
1592 | drm_buf_t * elt_buf, | 1592 | struct drm_buf * elt_buf, |
1593 | drm_radeon_tcl_prim_t * prim) | 1593 | drm_radeon_tcl_prim_t * prim) |
1594 | { | 1594 | { |
1595 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1595 | drm_radeon_private_t *dev_priv = dev->dev_private; |
@@ -1647,13 +1647,13 @@ static void radeon_cp_dispatch_indices(drm_device_t * dev, | |||
1647 | #define RADEON_MAX_TEXTURE_SIZE RADEON_BUFFER_SIZE | 1647 | #define RADEON_MAX_TEXTURE_SIZE RADEON_BUFFER_SIZE |
1648 | 1648 | ||
1649 | static int radeon_cp_dispatch_texture(DRMFILE filp, | 1649 | static int radeon_cp_dispatch_texture(DRMFILE filp, |
1650 | drm_device_t * dev, | 1650 | struct drm_device * dev, |
1651 | drm_radeon_texture_t * tex, | 1651 | drm_radeon_texture_t * tex, |
1652 | drm_radeon_tex_image_t * image) | 1652 | drm_radeon_tex_image_t * image) |
1653 | { | 1653 | { |
1654 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1654 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1655 | drm_file_t *filp_priv; | 1655 | struct drm_file *filp_priv; |
1656 | drm_buf_t *buf; | 1656 | struct drm_buf *buf; |
1657 | u32 format; | 1657 | u32 format; |
1658 | u32 *buffer; | 1658 | u32 *buffer; |
1659 | const u8 __user *data; | 1659 | const u8 __user *data; |
@@ -1881,7 +1881,7 @@ static int radeon_cp_dispatch_texture(DRMFILE filp, | |||
1881 | return 0; | 1881 | return 0; |
1882 | } | 1882 | } |
1883 | 1883 | ||
1884 | static void radeon_cp_dispatch_stipple(drm_device_t * dev, u32 * stipple) | 1884 | static void radeon_cp_dispatch_stipple(struct drm_device * dev, u32 * stipple) |
1885 | { | 1885 | { |
1886 | drm_radeon_private_t *dev_priv = dev->dev_private; | 1886 | drm_radeon_private_t *dev_priv = dev->dev_private; |
1887 | int i; | 1887 | int i; |
@@ -2134,7 +2134,7 @@ static int radeon_cp_clear(DRM_IOCTL_ARGS) | |||
2134 | 2134 | ||
2135 | /* Not sure why this isn't set all the time: | 2135 | /* Not sure why this isn't set all the time: |
2136 | */ | 2136 | */ |
2137 | static int radeon_do_init_pageflip(drm_device_t * dev) | 2137 | static int radeon_do_init_pageflip(struct drm_device * dev) |
2138 | { | 2138 | { |
2139 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2139 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2140 | RING_LOCALS; | 2140 | RING_LOCALS; |
@@ -2206,10 +2206,10 @@ static int radeon_cp_vertex(DRM_IOCTL_ARGS) | |||
2206 | { | 2206 | { |
2207 | DRM_DEVICE; | 2207 | DRM_DEVICE; |
2208 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2208 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2209 | drm_file_t *filp_priv; | 2209 | struct drm_file *filp_priv; |
2210 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; | 2210 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; |
2211 | drm_device_dma_t *dma = dev->dma; | 2211 | struct drm_device_dma *dma = dev->dma; |
2212 | drm_buf_t *buf; | 2212 | struct drm_buf *buf; |
2213 | drm_radeon_vertex_t vertex; | 2213 | drm_radeon_vertex_t vertex; |
2214 | drm_radeon_tcl_prim_t prim; | 2214 | drm_radeon_tcl_prim_t prim; |
2215 | 2215 | ||
@@ -2289,10 +2289,10 @@ static int radeon_cp_indices(DRM_IOCTL_ARGS) | |||
2289 | { | 2289 | { |
2290 | DRM_DEVICE; | 2290 | DRM_DEVICE; |
2291 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2291 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2292 | drm_file_t *filp_priv; | 2292 | struct drm_file *filp_priv; |
2293 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; | 2293 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; |
2294 | drm_device_dma_t *dma = dev->dma; | 2294 | struct drm_device_dma *dma = dev->dma; |
2295 | drm_buf_t *buf; | 2295 | struct drm_buf *buf; |
2296 | drm_radeon_indices_t elts; | 2296 | drm_radeon_indices_t elts; |
2297 | drm_radeon_tcl_prim_t prim; | 2297 | drm_radeon_tcl_prim_t prim; |
2298 | int count; | 2298 | int count; |
@@ -2438,8 +2438,8 @@ static int radeon_cp_indirect(DRM_IOCTL_ARGS) | |||
2438 | { | 2438 | { |
2439 | DRM_DEVICE; | 2439 | DRM_DEVICE; |
2440 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2440 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2441 | drm_device_dma_t *dma = dev->dma; | 2441 | struct drm_device_dma *dma = dev->dma; |
2442 | drm_buf_t *buf; | 2442 | struct drm_buf *buf; |
2443 | drm_radeon_indirect_t indirect; | 2443 | drm_radeon_indirect_t indirect; |
2444 | RING_LOCALS; | 2444 | RING_LOCALS; |
2445 | 2445 | ||
@@ -2507,10 +2507,10 @@ static int radeon_cp_vertex2(DRM_IOCTL_ARGS) | |||
2507 | { | 2507 | { |
2508 | DRM_DEVICE; | 2508 | DRM_DEVICE; |
2509 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2509 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2510 | drm_file_t *filp_priv; | 2510 | struct drm_file *filp_priv; |
2511 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; | 2511 | drm_radeon_sarea_t *sarea_priv = dev_priv->sarea_priv; |
2512 | drm_device_dma_t *dma = dev->dma; | 2512 | struct drm_device_dma *dma = dev->dma; |
2513 | drm_buf_t *buf; | 2513 | struct drm_buf *buf; |
2514 | drm_radeon_vertex2_t vertex; | 2514 | drm_radeon_vertex2_t vertex; |
2515 | int i; | 2515 | int i; |
2516 | unsigned char laststate; | 2516 | unsigned char laststate; |
@@ -2603,7 +2603,7 @@ static int radeon_cp_vertex2(DRM_IOCTL_ARGS) | |||
2603 | } | 2603 | } |
2604 | 2604 | ||
2605 | static int radeon_emit_packets(drm_radeon_private_t * dev_priv, | 2605 | static int radeon_emit_packets(drm_radeon_private_t * dev_priv, |
2606 | drm_file_t * filp_priv, | 2606 | struct drm_file * filp_priv, |
2607 | drm_radeon_cmd_header_t header, | 2607 | drm_radeon_cmd_header_t header, |
2608 | drm_radeon_kcmd_buffer_t *cmdbuf) | 2608 | drm_radeon_kcmd_buffer_t *cmdbuf) |
2609 | { | 2609 | { |
@@ -2728,8 +2728,8 @@ static __inline__ int radeon_emit_veclinear(drm_radeon_private_t *dev_priv, | |||
2728 | return 0; | 2728 | return 0; |
2729 | } | 2729 | } |
2730 | 2730 | ||
2731 | static int radeon_emit_packet3(drm_device_t * dev, | 2731 | static int radeon_emit_packet3(struct drm_device * dev, |
2732 | drm_file_t * filp_priv, | 2732 | struct drm_file * filp_priv, |
2733 | drm_radeon_kcmd_buffer_t *cmdbuf) | 2733 | drm_radeon_kcmd_buffer_t *cmdbuf) |
2734 | { | 2734 | { |
2735 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2735 | drm_radeon_private_t *dev_priv = dev->dev_private; |
@@ -2754,16 +2754,16 @@ static int radeon_emit_packet3(drm_device_t * dev, | |||
2754 | return 0; | 2754 | return 0; |
2755 | } | 2755 | } |
2756 | 2756 | ||
2757 | static int radeon_emit_packet3_cliprect(drm_device_t *dev, | 2757 | static int radeon_emit_packet3_cliprect(struct drm_device *dev, |
2758 | drm_file_t *filp_priv, | 2758 | struct drm_file *filp_priv, |
2759 | drm_radeon_kcmd_buffer_t *cmdbuf, | 2759 | drm_radeon_kcmd_buffer_t *cmdbuf, |
2760 | int orig_nbox) | 2760 | int orig_nbox) |
2761 | { | 2761 | { |
2762 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2762 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2763 | drm_clip_rect_t box; | 2763 | struct drm_clip_rect box; |
2764 | unsigned int cmdsz; | 2764 | unsigned int cmdsz; |
2765 | int ret; | 2765 | int ret; |
2766 | drm_clip_rect_t __user *boxes = cmdbuf->boxes; | 2766 | struct drm_clip_rect __user *boxes = cmdbuf->boxes; |
2767 | int i = 0; | 2767 | int i = 0; |
2768 | RING_LOCALS; | 2768 | RING_LOCALS; |
2769 | 2769 | ||
@@ -2816,7 +2816,7 @@ static int radeon_emit_packet3_cliprect(drm_device_t *dev, | |||
2816 | return 0; | 2816 | return 0; |
2817 | } | 2817 | } |
2818 | 2818 | ||
2819 | static int radeon_emit_wait(drm_device_t * dev, int flags) | 2819 | static int radeon_emit_wait(struct drm_device * dev, int flags) |
2820 | { | 2820 | { |
2821 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2821 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2822 | RING_LOCALS; | 2822 | RING_LOCALS; |
@@ -2849,9 +2849,9 @@ static int radeon_cp_cmdbuf(DRM_IOCTL_ARGS) | |||
2849 | { | 2849 | { |
2850 | DRM_DEVICE; | 2850 | DRM_DEVICE; |
2851 | drm_radeon_private_t *dev_priv = dev->dev_private; | 2851 | drm_radeon_private_t *dev_priv = dev->dev_private; |
2852 | drm_file_t *filp_priv; | 2852 | struct drm_file *filp_priv; |
2853 | drm_device_dma_t *dma = dev->dma; | 2853 | struct drm_device_dma *dma = dev->dma; |
2854 | drm_buf_t *buf = NULL; | 2854 | struct drm_buf *buf = NULL; |
2855 | int idx; | 2855 | int idx; |
2856 | drm_radeon_kcmd_buffer_t cmdbuf; | 2856 | drm_radeon_kcmd_buffer_t cmdbuf; |
2857 | drm_radeon_cmd_header_t header; | 2857 | drm_radeon_cmd_header_t header; |
@@ -3085,6 +3085,9 @@ static int radeon_cp_getparam(DRM_IOCTL_ARGS) | |||
3085 | else | 3085 | else |
3086 | value = RADEON_CARD_PCI; | 3086 | value = RADEON_CARD_PCI; |
3087 | break; | 3087 | break; |
3088 | case RADEON_PARAM_VBLANK_CRTC: | ||
3089 | value = radeon_vblank_crtc_get(dev); | ||
3090 | break; | ||
3088 | default: | 3091 | default: |
3089 | DRM_DEBUG("Invalid parameter %d\n", param.param); | 3092 | DRM_DEBUG("Invalid parameter %d\n", param.param); |
3090 | return DRM_ERR(EINVAL); | 3093 | return DRM_ERR(EINVAL); |
@@ -3102,7 +3105,7 @@ static int radeon_cp_setparam(DRM_IOCTL_ARGS) | |||
3102 | { | 3105 | { |
3103 | DRM_DEVICE; | 3106 | DRM_DEVICE; |
3104 | drm_radeon_private_t *dev_priv = dev->dev_private; | 3107 | drm_radeon_private_t *dev_priv = dev->dev_private; |
3105 | drm_file_t *filp_priv; | 3108 | struct drm_file *filp_priv; |
3106 | drm_radeon_setparam_t sp; | 3109 | drm_radeon_setparam_t sp; |
3107 | struct drm_radeon_driver_file_fields *radeon_priv; | 3110 | struct drm_radeon_driver_file_fields *radeon_priv; |
3108 | 3111 | ||
@@ -3141,6 +3144,9 @@ static int radeon_cp_setparam(DRM_IOCTL_ARGS) | |||
3141 | if (dev_priv->gart_info.table_size < RADEON_PCIGART_TABLE_SIZE) | 3144 | if (dev_priv->gart_info.table_size < RADEON_PCIGART_TABLE_SIZE) |
3142 | dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE; | 3145 | dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE; |
3143 | break; | 3146 | break; |
3147 | case RADEON_SETPARAM_VBLANK_CRTC: | ||
3148 | return radeon_vblank_crtc_set(dev, sp.value); | ||
3149 | break; | ||
3144 | default: | 3150 | default: |
3145 | DRM_DEBUG("Invalid parameter %d\n", sp.param); | 3151 | DRM_DEBUG("Invalid parameter %d\n", sp.param); |
3146 | return DRM_ERR(EINVAL); | 3152 | return DRM_ERR(EINVAL); |
@@ -3156,7 +3162,7 @@ static int radeon_cp_setparam(DRM_IOCTL_ARGS) | |||
3156 | * | 3162 | * |
3157 | * DRM infrastructure takes care of reclaiming dma buffers. | 3163 | * DRM infrastructure takes care of reclaiming dma buffers. |
3158 | */ | 3164 | */ |
3159 | void radeon_driver_preclose(drm_device_t * dev, DRMFILE filp) | 3165 | void radeon_driver_preclose(struct drm_device *dev, DRMFILE filp) |
3160 | { | 3166 | { |
3161 | if (dev->dev_private) { | 3167 | if (dev->dev_private) { |
3162 | drm_radeon_private_t *dev_priv = dev->dev_private; | 3168 | drm_radeon_private_t *dev_priv = dev->dev_private; |
@@ -3167,7 +3173,7 @@ void radeon_driver_preclose(drm_device_t * dev, DRMFILE filp) | |||
3167 | } | 3173 | } |
3168 | } | 3174 | } |
3169 | 3175 | ||
3170 | void radeon_driver_lastclose(drm_device_t * dev) | 3176 | void radeon_driver_lastclose(struct drm_device *dev) |
3171 | { | 3177 | { |
3172 | if (dev->dev_private) { | 3178 | if (dev->dev_private) { |
3173 | drm_radeon_private_t *dev_priv = dev->dev_private; | 3179 | drm_radeon_private_t *dev_priv = dev->dev_private; |
@@ -3180,7 +3186,7 @@ void radeon_driver_lastclose(drm_device_t * dev) | |||
3180 | radeon_do_release(dev); | 3186 | radeon_do_release(dev); |
3181 | } | 3187 | } |
3182 | 3188 | ||
3183 | int radeon_driver_open(drm_device_t * dev, drm_file_t * filp_priv) | 3189 | int radeon_driver_open(struct drm_device *dev, struct drm_file *filp_priv) |
3184 | { | 3190 | { |
3185 | drm_radeon_private_t *dev_priv = dev->dev_private; | 3191 | drm_radeon_private_t *dev_priv = dev->dev_private; |
3186 | struct drm_radeon_driver_file_fields *radeon_priv; | 3192 | struct drm_radeon_driver_file_fields *radeon_priv; |
@@ -3202,7 +3208,7 @@ int radeon_driver_open(drm_device_t * dev, drm_file_t * filp_priv) | |||
3202 | return 0; | 3208 | return 0; |
3203 | } | 3209 | } |
3204 | 3210 | ||
3205 | void radeon_driver_postclose(drm_device_t * dev, drm_file_t * filp_priv) | 3211 | void radeon_driver_postclose(struct drm_device *dev, struct drm_file *filp_priv) |
3206 | { | 3212 | { |
3207 | struct drm_radeon_driver_file_fields *radeon_priv = | 3213 | struct drm_radeon_driver_file_fields *radeon_priv = |
3208 | filp_priv->driver_priv; | 3214 | filp_priv->driver_priv; |
diff --git a/drivers/char/drm/savage_bci.c b/drivers/char/drm/savage_bci.c index b94fab556809..18c7235f6b73 100644 --- a/drivers/char/drm/savage_bci.c +++ b/drivers/char/drm/savage_bci.c | |||
@@ -32,7 +32,7 @@ | |||
32 | #define SAVAGE_EVENT_USEC_TIMEOUT 5000000 /* 5s */ | 32 | #define SAVAGE_EVENT_USEC_TIMEOUT 5000000 /* 5s */ |
33 | #define SAVAGE_FREELIST_DEBUG 0 | 33 | #define SAVAGE_FREELIST_DEBUG 0 |
34 | 34 | ||
35 | static int savage_do_cleanup_bci(drm_device_t *dev); | 35 | static int savage_do_cleanup_bci(struct drm_device *dev); |
36 | 36 | ||
37 | static int | 37 | static int |
38 | savage_bci_wait_fifo_shadow(drm_savage_private_t * dev_priv, unsigned int n) | 38 | savage_bci_wait_fifo_shadow(drm_savage_private_t * dev_priv, unsigned int n) |
@@ -203,11 +203,11 @@ uint16_t savage_bci_emit_event(drm_savage_private_t * dev_priv, | |||
203 | /* | 203 | /* |
204 | * Freelist management | 204 | * Freelist management |
205 | */ | 205 | */ |
206 | static int savage_freelist_init(drm_device_t * dev) | 206 | static int savage_freelist_init(struct drm_device * dev) |
207 | { | 207 | { |
208 | drm_savage_private_t *dev_priv = dev->dev_private; | 208 | drm_savage_private_t *dev_priv = dev->dev_private; |
209 | drm_device_dma_t *dma = dev->dma; | 209 | struct drm_device_dma *dma = dev->dma; |
210 | drm_buf_t *buf; | 210 | struct drm_buf *buf; |
211 | drm_savage_buf_priv_t *entry; | 211 | drm_savage_buf_priv_t *entry; |
212 | int i; | 212 | int i; |
213 | DRM_DEBUG("count=%d\n", dma->buf_count); | 213 | DRM_DEBUG("count=%d\n", dma->buf_count); |
@@ -236,7 +236,7 @@ static int savage_freelist_init(drm_device_t * dev) | |||
236 | return 0; | 236 | return 0; |
237 | } | 237 | } |
238 | 238 | ||
239 | static drm_buf_t *savage_freelist_get(drm_device_t * dev) | 239 | static struct drm_buf *savage_freelist_get(struct drm_device * dev) |
240 | { | 240 | { |
241 | drm_savage_private_t *dev_priv = dev->dev_private; | 241 | drm_savage_private_t *dev_priv = dev->dev_private; |
242 | drm_savage_buf_priv_t *tail = dev_priv->tail.prev; | 242 | drm_savage_buf_priv_t *tail = dev_priv->tail.prev; |
@@ -269,7 +269,7 @@ static drm_buf_t *savage_freelist_get(drm_device_t * dev) | |||
269 | return NULL; | 269 | return NULL; |
270 | } | 270 | } |
271 | 271 | ||
272 | void savage_freelist_put(drm_device_t * dev, drm_buf_t * buf) | 272 | void savage_freelist_put(struct drm_device * dev, struct drm_buf * buf) |
273 | { | 273 | { |
274 | drm_savage_private_t *dev_priv = dev->dev_private; | 274 | drm_savage_private_t *dev_priv = dev->dev_private; |
275 | drm_savage_buf_priv_t *entry = buf->dev_private, *prev, *next; | 275 | drm_savage_buf_priv_t *entry = buf->dev_private, *prev, *next; |
@@ -535,7 +535,7 @@ static void savage_fake_dma_flush(drm_savage_private_t * dev_priv) | |||
535 | dev_priv->first_dma_page = dev_priv->current_dma_page = 0; | 535 | dev_priv->first_dma_page = dev_priv->current_dma_page = 0; |
536 | } | 536 | } |
537 | 537 | ||
538 | int savage_driver_load(drm_device_t *dev, unsigned long chipset) | 538 | int savage_driver_load(struct drm_device *dev, unsigned long chipset) |
539 | { | 539 | { |
540 | drm_savage_private_t *dev_priv; | 540 | drm_savage_private_t *dev_priv; |
541 | 541 | ||
@@ -558,7 +558,7 @@ int savage_driver_load(drm_device_t *dev, unsigned long chipset) | |||
558 | * in drm_addmap. Therefore we add them manually before the maps are | 558 | * in drm_addmap. Therefore we add them manually before the maps are |
559 | * initialized, and tear them down on last close. | 559 | * initialized, and tear them down on last close. |
560 | */ | 560 | */ |
561 | int savage_driver_firstopen(drm_device_t *dev) | 561 | int savage_driver_firstopen(struct drm_device *dev) |
562 | { | 562 | { |
563 | drm_savage_private_t *dev_priv = dev->dev_private; | 563 | drm_savage_private_t *dev_priv = dev->dev_private; |
564 | unsigned long mmio_base, fb_base, fb_size, aperture_base; | 564 | unsigned long mmio_base, fb_base, fb_size, aperture_base; |
@@ -655,7 +655,7 @@ int savage_driver_firstopen(drm_device_t *dev) | |||
655 | /* | 655 | /* |
656 | * Delete MTRRs and free device-private data. | 656 | * Delete MTRRs and free device-private data. |
657 | */ | 657 | */ |
658 | void savage_driver_lastclose(drm_device_t *dev) | 658 | void savage_driver_lastclose(struct drm_device *dev) |
659 | { | 659 | { |
660 | drm_savage_private_t *dev_priv = dev->dev_private; | 660 | drm_savage_private_t *dev_priv = dev->dev_private; |
661 | int i; | 661 | int i; |
@@ -667,7 +667,7 @@ void savage_driver_lastclose(drm_device_t *dev) | |||
667 | dev_priv->mtrr[i].size, DRM_MTRR_WC); | 667 | dev_priv->mtrr[i].size, DRM_MTRR_WC); |
668 | } | 668 | } |
669 | 669 | ||
670 | int savage_driver_unload(drm_device_t *dev) | 670 | int savage_driver_unload(struct drm_device *dev) |
671 | { | 671 | { |
672 | drm_savage_private_t *dev_priv = dev->dev_private; | 672 | drm_savage_private_t *dev_priv = dev->dev_private; |
673 | 673 | ||
@@ -676,7 +676,7 @@ int savage_driver_unload(drm_device_t *dev) | |||
676 | return 0; | 676 | return 0; |
677 | } | 677 | } |
678 | 678 | ||
679 | static int savage_do_init_bci(drm_device_t * dev, drm_savage_init_t * init) | 679 | static int savage_do_init_bci(struct drm_device * dev, drm_savage_init_t * init) |
680 | { | 680 | { |
681 | drm_savage_private_t *dev_priv = dev->dev_private; | 681 | drm_savage_private_t *dev_priv = dev->dev_private; |
682 | 682 | ||
@@ -711,7 +711,7 @@ static int savage_do_init_bci(drm_device_t * dev, drm_savage_init_t * init) | |||
711 | dev_priv->texture_offset = init->texture_offset; | 711 | dev_priv->texture_offset = init->texture_offset; |
712 | dev_priv->texture_size = init->texture_size; | 712 | dev_priv->texture_size = init->texture_size; |
713 | 713 | ||
714 | DRM_GETSAREA(); | 714 | dev_priv->sarea = drm_getsarea(dev); |
715 | if (!dev_priv->sarea) { | 715 | if (!dev_priv->sarea) { |
716 | DRM_ERROR("could not find sarea!\n"); | 716 | DRM_ERROR("could not find sarea!\n"); |
717 | savage_do_cleanup_bci(dev); | 717 | savage_do_cleanup_bci(dev); |
@@ -898,7 +898,7 @@ static int savage_do_init_bci(drm_device_t * dev, drm_savage_init_t * init) | |||
898 | return 0; | 898 | return 0; |
899 | } | 899 | } |
900 | 900 | ||
901 | static int savage_do_cleanup_bci(drm_device_t * dev) | 901 | static int savage_do_cleanup_bci(struct drm_device * dev) |
902 | { | 902 | { |
903 | drm_savage_private_t *dev_priv = dev->dev_private; | 903 | drm_savage_private_t *dev_priv = dev->dev_private; |
904 | 904 | ||
@@ -1007,9 +1007,9 @@ static int savage_bci_event_wait(DRM_IOCTL_ARGS) | |||
1007 | * DMA buffer management | 1007 | * DMA buffer management |
1008 | */ | 1008 | */ |
1009 | 1009 | ||
1010 | static int savage_bci_get_buffers(DRMFILE filp, drm_device_t *dev, drm_dma_t *d) | 1010 | static int savage_bci_get_buffers(DRMFILE filp, struct drm_device *dev, struct drm_dma *d) |
1011 | { | 1011 | { |
1012 | drm_buf_t *buf; | 1012 | struct drm_buf *buf; |
1013 | int i; | 1013 | int i; |
1014 | 1014 | ||
1015 | for (i = d->granted_count; i < d->request_count; i++) { | 1015 | for (i = d->granted_count; i < d->request_count; i++) { |
@@ -1034,13 +1034,13 @@ static int savage_bci_get_buffers(DRMFILE filp, drm_device_t *dev, drm_dma_t *d) | |||
1034 | int savage_bci_buffers(DRM_IOCTL_ARGS) | 1034 | int savage_bci_buffers(DRM_IOCTL_ARGS) |
1035 | { | 1035 | { |
1036 | DRM_DEVICE; | 1036 | DRM_DEVICE; |
1037 | drm_device_dma_t *dma = dev->dma; | 1037 | struct drm_device_dma *dma = dev->dma; |
1038 | drm_dma_t d; | 1038 | struct drm_dma d; |
1039 | int ret = 0; | 1039 | int ret = 0; |
1040 | 1040 | ||
1041 | LOCK_TEST_WITH_RETURN(dev, filp); | 1041 | LOCK_TEST_WITH_RETURN(dev, filp); |
1042 | 1042 | ||
1043 | DRM_COPY_FROM_USER_IOCTL(d, (drm_dma_t __user *) data, sizeof(d)); | 1043 | DRM_COPY_FROM_USER_IOCTL(d, (struct drm_dma __user *) data, sizeof(d)); |
1044 | 1044 | ||
1045 | /* Please don't send us buffers. | 1045 | /* Please don't send us buffers. |
1046 | */ | 1046 | */ |
@@ -1064,14 +1064,14 @@ int savage_bci_buffers(DRM_IOCTL_ARGS) | |||
1064 | ret = savage_bci_get_buffers(filp, dev, &d); | 1064 | ret = savage_bci_get_buffers(filp, dev, &d); |
1065 | } | 1065 | } |
1066 | 1066 | ||
1067 | DRM_COPY_TO_USER_IOCTL((drm_dma_t __user *) data, d, sizeof(d)); | 1067 | DRM_COPY_TO_USER_IOCTL((struct drm_dma __user *) data, d, sizeof(d)); |
1068 | 1068 | ||
1069 | return ret; | 1069 | return ret; |
1070 | } | 1070 | } |
1071 | 1071 | ||
1072 | void savage_reclaim_buffers(drm_device_t *dev, DRMFILE filp) | 1072 | void savage_reclaim_buffers(struct drm_device *dev, DRMFILE filp) |
1073 | { | 1073 | { |
1074 | drm_device_dma_t *dma = dev->dma; | 1074 | struct drm_device_dma *dma = dev->dma; |
1075 | drm_savage_private_t *dev_priv = dev->dev_private; | 1075 | drm_savage_private_t *dev_priv = dev->dev_private; |
1076 | int i; | 1076 | int i; |
1077 | 1077 | ||
@@ -1085,7 +1085,7 @@ void savage_reclaim_buffers(drm_device_t *dev, DRMFILE filp) | |||
1085 | /*i830_flush_queue(dev); */ | 1085 | /*i830_flush_queue(dev); */ |
1086 | 1086 | ||
1087 | for (i = 0; i < dma->buf_count; i++) { | 1087 | for (i = 0; i < dma->buf_count; i++) { |
1088 | drm_buf_t *buf = dma->buflist[i]; | 1088 | struct drm_buf *buf = dma->buflist[i]; |
1089 | drm_savage_buf_priv_t *buf_priv = buf->dev_private; | 1089 | drm_savage_buf_priv_t *buf_priv = buf->dev_private; |
1090 | 1090 | ||
1091 | if (buf->filp == filp && buf_priv && | 1091 | if (buf->filp == filp && buf_priv && |
diff --git a/drivers/char/drm/savage_drm.h b/drivers/char/drm/savage_drm.h index e1148e8e7994..8a576ef01821 100644 --- a/drivers/char/drm/savage_drm.h +++ b/drivers/char/drm/savage_drm.h | |||
@@ -47,7 +47,7 @@ | |||
47 | typedef struct _drm_savage_sarea { | 47 | typedef struct _drm_savage_sarea { |
48 | /* LRU lists for texture memory in agp space and on the card. | 48 | /* LRU lists for texture memory in agp space and on the card. |
49 | */ | 49 | */ |
50 | drm_tex_region_t texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS + | 50 | struct drm_tex_region texList[SAVAGE_NR_TEX_HEAPS][SAVAGE_NR_TEX_REGIONS + |
51 | 1]; | 51 | 1]; |
52 | unsigned int texAge[SAVAGE_NR_TEX_HEAPS]; | 52 | unsigned int texAge[SAVAGE_NR_TEX_HEAPS]; |
53 | 53 | ||
@@ -113,7 +113,7 @@ typedef struct drm_savage_cmdbuf { | |||
113 | unsigned int vb_size; /* size of client vertex buffer in bytes */ | 113 | unsigned int vb_size; /* size of client vertex buffer in bytes */ |
114 | unsigned int vb_stride; /* stride of vertices in 32bit words */ | 114 | unsigned int vb_stride; /* stride of vertices in 32bit words */ |
115 | /* boxes in client's address space */ | 115 | /* boxes in client's address space */ |
116 | drm_clip_rect_t __user *box_addr; | 116 | struct drm_clip_rect __user *box_addr; |
117 | unsigned int nbox; /* number of clipping boxes */ | 117 | unsigned int nbox; /* number of clipping boxes */ |
118 | } drm_savage_cmdbuf_t; | 118 | } drm_savage_cmdbuf_t; |
119 | 119 | ||
diff --git a/drivers/char/drm/savage_drv.h b/drivers/char/drm/savage_drv.h index 8f04b3d82292..5fd54de4280e 100644 --- a/drivers/char/drm/savage_drv.h +++ b/drivers/char/drm/savage_drv.h | |||
@@ -58,7 +58,7 @@ typedef struct drm_savage_buf_priv { | |||
58 | struct drm_savage_buf_priv *next; | 58 | struct drm_savage_buf_priv *next; |
59 | struct drm_savage_buf_priv *prev; | 59 | struct drm_savage_buf_priv *prev; |
60 | drm_savage_age_t age; | 60 | drm_savage_age_t age; |
61 | drm_buf_t *buf; | 61 | struct drm_buf *buf; |
62 | } drm_savage_buf_priv_t; | 62 | } drm_savage_buf_priv_t; |
63 | 63 | ||
64 | typedef struct drm_savage_dma_page { | 64 | typedef struct drm_savage_dma_page { |
@@ -192,7 +192,7 @@ typedef struct drm_savage_private { | |||
192 | /* Err, there is a macro wait_event in include/linux/wait.h. | 192 | /* Err, there is a macro wait_event in include/linux/wait.h. |
193 | * Avoid unwanted macro expansion. */ | 193 | * Avoid unwanted macro expansion. */ |
194 | void (*emit_clip_rect) (struct drm_savage_private * dev_priv, | 194 | void (*emit_clip_rect) (struct drm_savage_private * dev_priv, |
195 | const drm_clip_rect_t * pbox); | 195 | const struct drm_clip_rect * pbox); |
196 | void (*dma_flush) (struct drm_savage_private * dev_priv); | 196 | void (*dma_flush) (struct drm_savage_private * dev_priv); |
197 | } drm_savage_private_t; | 197 | } drm_savage_private_t; |
198 | 198 | ||
@@ -203,22 +203,22 @@ extern int savage_bci_buffers(DRM_IOCTL_ARGS); | |||
203 | /* BCI functions */ | 203 | /* BCI functions */ |
204 | extern uint16_t savage_bci_emit_event(drm_savage_private_t * dev_priv, | 204 | extern uint16_t savage_bci_emit_event(drm_savage_private_t * dev_priv, |
205 | unsigned int flags); | 205 | unsigned int flags); |
206 | extern void savage_freelist_put(drm_device_t * dev, drm_buf_t * buf); | 206 | extern void savage_freelist_put(struct drm_device * dev, struct drm_buf * buf); |
207 | extern void savage_dma_reset(drm_savage_private_t * dev_priv); | 207 | extern void savage_dma_reset(drm_savage_private_t * dev_priv); |
208 | extern void savage_dma_wait(drm_savage_private_t * dev_priv, unsigned int page); | 208 | extern void savage_dma_wait(drm_savage_private_t * dev_priv, unsigned int page); |
209 | extern uint32_t *savage_dma_alloc(drm_savage_private_t * dev_priv, | 209 | extern uint32_t *savage_dma_alloc(drm_savage_private_t * dev_priv, |
210 | unsigned int n); | 210 | unsigned int n); |
211 | extern int savage_driver_load(drm_device_t *dev, unsigned long chipset); | 211 | extern int savage_driver_load(struct drm_device *dev, unsigned long chipset); |
212 | extern int savage_driver_firstopen(drm_device_t *dev); | 212 | extern int savage_driver_firstopen(struct drm_device *dev); |
213 | extern void savage_driver_lastclose(drm_device_t *dev); | 213 | extern void savage_driver_lastclose(struct drm_device *dev); |
214 | extern int savage_driver_unload(drm_device_t *dev); | 214 | extern int savage_driver_unload(struct drm_device *dev); |
215 | extern void savage_reclaim_buffers(drm_device_t * dev, DRMFILE filp); | 215 | extern void savage_reclaim_buffers(struct drm_device * dev, DRMFILE filp); |
216 | 216 | ||
217 | /* state functions */ | 217 | /* state functions */ |
218 | extern void savage_emit_clip_rect_s3d(drm_savage_private_t * dev_priv, | 218 | extern void savage_emit_clip_rect_s3d(drm_savage_private_t * dev_priv, |
219 | const drm_clip_rect_t * pbox); | 219 | const struct drm_clip_rect * pbox); |
220 | extern void savage_emit_clip_rect_s4(drm_savage_private_t * dev_priv, | 220 | extern void savage_emit_clip_rect_s4(drm_savage_private_t * dev_priv, |
221 | const drm_clip_rect_t * pbox); | 221 | const struct drm_clip_rect * pbox); |
222 | 222 | ||
223 | #define SAVAGE_FB_SIZE_S3 0x01000000 /* 16MB */ | 223 | #define SAVAGE_FB_SIZE_S3 0x01000000 /* 16MB */ |
224 | #define SAVAGE_FB_SIZE_S4 0x02000000 /* 32MB */ | 224 | #define SAVAGE_FB_SIZE_S4 0x02000000 /* 32MB */ |
diff --git a/drivers/char/drm/savage_state.c b/drivers/char/drm/savage_state.c index 1ca1e9cb5a33..77497841478a 100644 --- a/drivers/char/drm/savage_state.c +++ b/drivers/char/drm/savage_state.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include "savage_drv.h" | 27 | #include "savage_drv.h" |
28 | 28 | ||
29 | void savage_emit_clip_rect_s3d(drm_savage_private_t * dev_priv, | 29 | void savage_emit_clip_rect_s3d(drm_savage_private_t * dev_priv, |
30 | const drm_clip_rect_t * pbox) | 30 | const struct drm_clip_rect * pbox) |
31 | { | 31 | { |
32 | uint32_t scstart = dev_priv->state.s3d.new_scstart; | 32 | uint32_t scstart = dev_priv->state.s3d.new_scstart; |
33 | uint32_t scend = dev_priv->state.s3d.new_scend; | 33 | uint32_t scend = dev_priv->state.s3d.new_scend; |
@@ -53,7 +53,7 @@ void savage_emit_clip_rect_s3d(drm_savage_private_t * dev_priv, | |||
53 | } | 53 | } |
54 | 54 | ||
55 | void savage_emit_clip_rect_s4(drm_savage_private_t * dev_priv, | 55 | void savage_emit_clip_rect_s4(drm_savage_private_t * dev_priv, |
56 | const drm_clip_rect_t * pbox) | 56 | const struct drm_clip_rect * pbox) |
57 | { | 57 | { |
58 | uint32_t drawctrl0 = dev_priv->state.s4.new_drawctrl0; | 58 | uint32_t drawctrl0 = dev_priv->state.s4.new_drawctrl0; |
59 | uint32_t drawctrl1 = dev_priv->state.s4.new_drawctrl1; | 59 | uint32_t drawctrl1 = dev_priv->state.s4.new_drawctrl1; |
@@ -277,7 +277,7 @@ static int savage_dispatch_state(drm_savage_private_t * dev_priv, | |||
277 | 277 | ||
278 | static int savage_dispatch_dma_prim(drm_savage_private_t * dev_priv, | 278 | static int savage_dispatch_dma_prim(drm_savage_private_t * dev_priv, |
279 | const drm_savage_cmd_header_t * cmd_header, | 279 | const drm_savage_cmd_header_t * cmd_header, |
280 | const drm_buf_t * dmabuf) | 280 | const struct drm_buf * dmabuf) |
281 | { | 281 | { |
282 | unsigned char reorder = 0; | 282 | unsigned char reorder = 0; |
283 | unsigned int prim = cmd_header->prim.prim; | 283 | unsigned int prim = cmd_header->prim.prim; |
@@ -536,7 +536,7 @@ static int savage_dispatch_vb_prim(drm_savage_private_t * dev_priv, | |||
536 | static int savage_dispatch_dma_idx(drm_savage_private_t * dev_priv, | 536 | static int savage_dispatch_dma_idx(drm_savage_private_t * dev_priv, |
537 | const drm_savage_cmd_header_t * cmd_header, | 537 | const drm_savage_cmd_header_t * cmd_header, |
538 | const uint16_t *idx, | 538 | const uint16_t *idx, |
539 | const drm_buf_t * dmabuf) | 539 | const struct drm_buf * dmabuf) |
540 | { | 540 | { |
541 | unsigned char reorder = 0; | 541 | unsigned char reorder = 0; |
542 | unsigned int prim = cmd_header->idx.prim; | 542 | unsigned int prim = cmd_header->idx.prim; |
@@ -792,7 +792,7 @@ static int savage_dispatch_clear(drm_savage_private_t * dev_priv, | |||
792 | const drm_savage_cmd_header_t * cmd_header, | 792 | const drm_savage_cmd_header_t * cmd_header, |
793 | const drm_savage_cmd_header_t *data, | 793 | const drm_savage_cmd_header_t *data, |
794 | unsigned int nbox, | 794 | unsigned int nbox, |
795 | const drm_clip_rect_t *boxes) | 795 | const struct drm_clip_rect *boxes) |
796 | { | 796 | { |
797 | unsigned int flags = cmd_header->clear0.flags; | 797 | unsigned int flags = cmd_header->clear0.flags; |
798 | unsigned int clear_cmd; | 798 | unsigned int clear_cmd; |
@@ -861,7 +861,7 @@ static int savage_dispatch_clear(drm_savage_private_t * dev_priv, | |||
861 | } | 861 | } |
862 | 862 | ||
863 | static int savage_dispatch_swap(drm_savage_private_t * dev_priv, | 863 | static int savage_dispatch_swap(drm_savage_private_t * dev_priv, |
864 | unsigned int nbox, const drm_clip_rect_t *boxes) | 864 | unsigned int nbox, const struct drm_clip_rect *boxes) |
865 | { | 865 | { |
866 | unsigned int swap_cmd; | 866 | unsigned int swap_cmd; |
867 | unsigned int i; | 867 | unsigned int i; |
@@ -892,11 +892,11 @@ static int savage_dispatch_swap(drm_savage_private_t * dev_priv, | |||
892 | static int savage_dispatch_draw(drm_savage_private_t * dev_priv, | 892 | static int savage_dispatch_draw(drm_savage_private_t * dev_priv, |
893 | const drm_savage_cmd_header_t *start, | 893 | const drm_savage_cmd_header_t *start, |
894 | const drm_savage_cmd_header_t *end, | 894 | const drm_savage_cmd_header_t *end, |
895 | const drm_buf_t * dmabuf, | 895 | const struct drm_buf * dmabuf, |
896 | const unsigned int *vtxbuf, | 896 | const unsigned int *vtxbuf, |
897 | unsigned int vb_size, unsigned int vb_stride, | 897 | unsigned int vb_size, unsigned int vb_stride, |
898 | unsigned int nbox, | 898 | unsigned int nbox, |
899 | const drm_clip_rect_t *boxes) | 899 | const struct drm_clip_rect *boxes) |
900 | { | 900 | { |
901 | unsigned int i, j; | 901 | unsigned int i, j; |
902 | int ret; | 902 | int ret; |
@@ -957,13 +957,13 @@ int savage_bci_cmdbuf(DRM_IOCTL_ARGS) | |||
957 | { | 957 | { |
958 | DRM_DEVICE; | 958 | DRM_DEVICE; |
959 | drm_savage_private_t *dev_priv = dev->dev_private; | 959 | drm_savage_private_t *dev_priv = dev->dev_private; |
960 | drm_device_dma_t *dma = dev->dma; | 960 | struct drm_device_dma *dma = dev->dma; |
961 | drm_buf_t *dmabuf; | 961 | struct drm_buf *dmabuf; |
962 | drm_savage_cmdbuf_t cmdbuf; | 962 | drm_savage_cmdbuf_t cmdbuf; |
963 | drm_savage_cmd_header_t *kcmd_addr = NULL; | 963 | drm_savage_cmd_header_t *kcmd_addr = NULL; |
964 | drm_savage_cmd_header_t *first_draw_cmd; | 964 | drm_savage_cmd_header_t *first_draw_cmd; |
965 | unsigned int *kvb_addr = NULL; | 965 | unsigned int *kvb_addr = NULL; |
966 | drm_clip_rect_t *kbox_addr = NULL; | 966 | struct drm_clip_rect *kbox_addr = NULL; |
967 | unsigned int i, j; | 967 | unsigned int i, j; |
968 | int ret = 0; | 968 | int ret = 0; |
969 | 969 | ||
@@ -1019,7 +1019,7 @@ int savage_bci_cmdbuf(DRM_IOCTL_ARGS) | |||
1019 | cmdbuf.vb_addr = kvb_addr; | 1019 | cmdbuf.vb_addr = kvb_addr; |
1020 | } | 1020 | } |
1021 | if (cmdbuf.nbox) { | 1021 | if (cmdbuf.nbox) { |
1022 | kbox_addr = drm_alloc(cmdbuf.nbox * sizeof(drm_clip_rect_t), | 1022 | kbox_addr = drm_alloc(cmdbuf.nbox * sizeof(struct drm_clip_rect), |
1023 | DRM_MEM_DRIVER); | 1023 | DRM_MEM_DRIVER); |
1024 | if (kbox_addr == NULL) { | 1024 | if (kbox_addr == NULL) { |
1025 | ret = DRM_ERR(ENOMEM); | 1025 | ret = DRM_ERR(ENOMEM); |
@@ -1027,7 +1027,7 @@ int savage_bci_cmdbuf(DRM_IOCTL_ARGS) | |||
1027 | } | 1027 | } |
1028 | 1028 | ||
1029 | if (DRM_COPY_FROM_USER(kbox_addr, cmdbuf.box_addr, | 1029 | if (DRM_COPY_FROM_USER(kbox_addr, cmdbuf.box_addr, |
1030 | cmdbuf.nbox * sizeof(drm_clip_rect_t))) { | 1030 | cmdbuf.nbox * sizeof(struct drm_clip_rect))) { |
1031 | ret = DRM_ERR(EFAULT); | 1031 | ret = DRM_ERR(EFAULT); |
1032 | goto done; | 1032 | goto done; |
1033 | } | 1033 | } |
@@ -1158,7 +1158,7 @@ done: | |||
1158 | /* If we didn't need to allocate them, these'll be NULL */ | 1158 | /* If we didn't need to allocate them, these'll be NULL */ |
1159 | drm_free(kcmd_addr, cmdbuf.size * 8, DRM_MEM_DRIVER); | 1159 | drm_free(kcmd_addr, cmdbuf.size * 8, DRM_MEM_DRIVER); |
1160 | drm_free(kvb_addr, cmdbuf.vb_size, DRM_MEM_DRIVER); | 1160 | drm_free(kvb_addr, cmdbuf.vb_size, DRM_MEM_DRIVER); |
1161 | drm_free(kbox_addr, cmdbuf.nbox * sizeof(drm_clip_rect_t), | 1161 | drm_free(kbox_addr, cmdbuf.nbox * sizeof(struct drm_clip_rect), |
1162 | DRM_MEM_DRIVER); | 1162 | DRM_MEM_DRIVER); |
1163 | 1163 | ||
1164 | return ret; | 1164 | return ret; |
diff --git a/drivers/char/drm/sis_drv.c b/drivers/char/drm/sis_drv.c index 690e0af8e7c2..1912f5857051 100644 --- a/drivers/char/drm/sis_drv.c +++ b/drivers/char/drm/sis_drv.c | |||
@@ -35,7 +35,7 @@ static struct pci_device_id pciidlist[] = { | |||
35 | sisdrv_PCI_IDS | 35 | sisdrv_PCI_IDS |
36 | }; | 36 | }; |
37 | 37 | ||
38 | static int sis_driver_load(drm_device_t *dev, unsigned long chipset) | 38 | static int sis_driver_load(struct drm_device *dev, unsigned long chipset) |
39 | { | 39 | { |
40 | drm_sis_private_t *dev_priv; | 40 | drm_sis_private_t *dev_priv; |
41 | int ret; | 41 | int ret; |
@@ -54,7 +54,7 @@ static int sis_driver_load(drm_device_t *dev, unsigned long chipset) | |||
54 | return ret; | 54 | return ret; |
55 | } | 55 | } |
56 | 56 | ||
57 | static int sis_driver_unload(drm_device_t *dev) | 57 | static int sis_driver_unload(struct drm_device *dev) |
58 | { | 58 | { |
59 | drm_sis_private_t *dev_priv = dev->dev_private; | 59 | drm_sis_private_t *dev_priv = dev->dev_private; |
60 | 60 | ||
diff --git a/drivers/char/drm/sis_drv.h b/drivers/char/drm/sis_drv.h index 70d4ede75fe8..5630df874353 100644 --- a/drivers/char/drm/sis_drv.h +++ b/drivers/char/drm/sis_drv.h | |||
@@ -46,6 +46,7 @@ enum sis_family { | |||
46 | 46 | ||
47 | #include "drm_sman.h" | 47 | #include "drm_sman.h" |
48 | 48 | ||
49 | |||
49 | #define SIS_BASE (dev_priv->mmio) | 50 | #define SIS_BASE (dev_priv->mmio) |
50 | #define SIS_READ(reg) DRM_READ32(SIS_BASE, reg); | 51 | #define SIS_READ(reg) DRM_READ32(SIS_BASE, reg); |
51 | #define SIS_WRITE(reg, val) DRM_WRITE32(SIS_BASE, reg, val); | 52 | #define SIS_WRITE(reg, val) DRM_WRITE32(SIS_BASE, reg, val); |
@@ -53,7 +54,7 @@ enum sis_family { | |||
53 | typedef struct drm_sis_private { | 54 | typedef struct drm_sis_private { |
54 | drm_local_map_t *mmio; | 55 | drm_local_map_t *mmio; |
55 | unsigned int idle_fault; | 56 | unsigned int idle_fault; |
56 | drm_sman_t sman; | 57 | struct drm_sman sman; |
57 | unsigned int chipset; | 58 | unsigned int chipset; |
58 | int vram_initialized; | 59 | int vram_initialized; |
59 | int agp_initialized; | 60 | int agp_initialized; |
@@ -61,9 +62,9 @@ typedef struct drm_sis_private { | |||
61 | unsigned long agp_offset; | 62 | unsigned long agp_offset; |
62 | } drm_sis_private_t; | 63 | } drm_sis_private_t; |
63 | 64 | ||
64 | extern int sis_idle(drm_device_t *dev); | 65 | extern int sis_idle(struct drm_device *dev); |
65 | extern void sis_reclaim_buffers_locked(drm_device_t *dev, struct file *filp); | 66 | extern void sis_reclaim_buffers_locked(struct drm_device *dev, struct file *filp); |
66 | extern void sis_lastclose(drm_device_t *dev); | 67 | extern void sis_lastclose(struct drm_device *dev); |
67 | 68 | ||
68 | extern drm_ioctl_desc_t sis_ioctls[]; | 69 | extern drm_ioctl_desc_t sis_ioctls[]; |
69 | extern int sis_max_ioctl; | 70 | extern int sis_max_ioctl; |
diff --git a/drivers/char/drm/sis_mm.c b/drivers/char/drm/sis_mm.c index d26f5dbb7853..0580fa33cb77 100644 --- a/drivers/char/drm/sis_mm.c +++ b/drivers/char/drm/sis_mm.c | |||
@@ -123,14 +123,14 @@ static int sis_fb_init(DRM_IOCTL_ARGS) | |||
123 | return 0; | 123 | return 0; |
124 | } | 124 | } |
125 | 125 | ||
126 | static int sis_drm_alloc(drm_device_t * dev, drm_file_t * priv, | 126 | static int sis_drm_alloc(struct drm_device *dev, struct drm_file * priv, |
127 | unsigned long data, int pool) | 127 | unsigned long data, int pool) |
128 | { | 128 | { |
129 | drm_sis_private_t *dev_priv = dev->dev_private; | 129 | drm_sis_private_t *dev_priv = dev->dev_private; |
130 | drm_sis_mem_t __user *argp = (drm_sis_mem_t __user *) data; | 130 | drm_sis_mem_t __user *argp = (drm_sis_mem_t __user *) data; |
131 | drm_sis_mem_t mem; | 131 | drm_sis_mem_t mem; |
132 | int retval = 0; | 132 | int retval = 0; |
133 | drm_memblock_item_t *item; | 133 | struct drm_memblock_item *item; |
134 | 134 | ||
135 | DRM_COPY_FROM_USER_IOCTL(mem, argp, sizeof(mem)); | 135 | DRM_COPY_FROM_USER_IOCTL(mem, argp, sizeof(mem)); |
136 | 136 | ||
@@ -229,12 +229,12 @@ static int sis_ioctl_agp_alloc(DRM_IOCTL_ARGS) | |||
229 | return sis_drm_alloc(dev, priv, data, AGP_TYPE); | 229 | return sis_drm_alloc(dev, priv, data, AGP_TYPE); |
230 | } | 230 | } |
231 | 231 | ||
232 | static drm_local_map_t *sis_reg_init(drm_device_t *dev) | 232 | static drm_local_map_t *sis_reg_init(struct drm_device *dev) |
233 | { | 233 | { |
234 | drm_map_list_t *entry; | 234 | struct drm_map_list *entry; |
235 | drm_local_map_t *map; | 235 | drm_local_map_t *map; |
236 | 236 | ||
237 | list_for_each_entry(entry, &dev->maplist->head, head) { | 237 | list_for_each_entry(entry, &dev->maplist, head) { |
238 | map = entry->map; | 238 | map = entry->map; |
239 | if (!map) | 239 | if (!map) |
240 | continue; | 240 | continue; |
@@ -245,7 +245,7 @@ static drm_local_map_t *sis_reg_init(drm_device_t *dev) | |||
245 | return NULL; | 245 | return NULL; |
246 | } | 246 | } |
247 | 247 | ||
248 | int sis_idle(drm_device_t *dev) | 248 | int sis_idle(struct drm_device *dev) |
249 | { | 249 | { |
250 | drm_sis_private_t *dev_priv = dev->dev_private; | 250 | drm_sis_private_t *dev_priv = dev->dev_private; |
251 | uint32_t idle_reg; | 251 | uint32_t idle_reg; |
@@ -314,10 +314,10 @@ void sis_lastclose(struct drm_device *dev) | |||
314 | mutex_unlock(&dev->struct_mutex); | 314 | mutex_unlock(&dev->struct_mutex); |
315 | } | 315 | } |
316 | 316 | ||
317 | void sis_reclaim_buffers_locked(drm_device_t * dev, struct file *filp) | 317 | void sis_reclaim_buffers_locked(struct drm_device * dev, struct file *filp) |
318 | { | 318 | { |
319 | drm_sis_private_t *dev_priv = dev->dev_private; | 319 | drm_sis_private_t *dev_priv = dev->dev_private; |
320 | drm_file_t *priv = filp->private_data; | 320 | struct drm_file *priv = filp->private_data; |
321 | 321 | ||
322 | mutex_lock(&dev->struct_mutex); | 322 | mutex_lock(&dev->struct_mutex); |
323 | if (drm_sman_owner_clean(&dev_priv->sman, (unsigned long)priv)) { | 323 | if (drm_sman_owner_clean(&dev_priv->sman, (unsigned long)priv)) { |
diff --git a/drivers/char/drm/via_dma.c b/drivers/char/drm/via_dma.c index 13a9c5ca4593..7ff2b623c2d4 100644 --- a/drivers/char/drm/via_dma.c +++ b/drivers/char/drm/via_dma.c | |||
@@ -151,7 +151,7 @@ static inline uint32_t *via_check_dma(drm_via_private_t * dev_priv, | |||
151 | return (uint32_t *) (dev_priv->dma_ptr + dev_priv->dma_low); | 151 | return (uint32_t *) (dev_priv->dma_ptr + dev_priv->dma_low); |
152 | } | 152 | } |
153 | 153 | ||
154 | int via_dma_cleanup(drm_device_t * dev) | 154 | int via_dma_cleanup(struct drm_device * dev) |
155 | { | 155 | { |
156 | if (dev->dev_private) { | 156 | if (dev->dev_private) { |
157 | drm_via_private_t *dev_priv = | 157 | drm_via_private_t *dev_priv = |
@@ -169,7 +169,7 @@ int via_dma_cleanup(drm_device_t * dev) | |||
169 | return 0; | 169 | return 0; |
170 | } | 170 | } |
171 | 171 | ||
172 | static int via_initialize(drm_device_t * dev, | 172 | static int via_initialize(struct drm_device * dev, |
173 | drm_via_private_t * dev_priv, | 173 | drm_via_private_t * dev_priv, |
174 | drm_via_dma_init_t * init) | 174 | drm_via_dma_init_t * init) |
175 | { | 175 | { |
@@ -262,7 +262,7 @@ static int via_dma_init(DRM_IOCTL_ARGS) | |||
262 | return retcode; | 262 | return retcode; |
263 | } | 263 | } |
264 | 264 | ||
265 | static int via_dispatch_cmdbuffer(drm_device_t * dev, drm_via_cmdbuffer_t * cmd) | 265 | static int via_dispatch_cmdbuffer(struct drm_device * dev, drm_via_cmdbuffer_t * cmd) |
266 | { | 266 | { |
267 | drm_via_private_t *dev_priv; | 267 | drm_via_private_t *dev_priv; |
268 | uint32_t *vb; | 268 | uint32_t *vb; |
@@ -316,7 +316,7 @@ static int via_dispatch_cmdbuffer(drm_device_t * dev, drm_via_cmdbuffer_t * cmd) | |||
316 | return 0; | 316 | return 0; |
317 | } | 317 | } |
318 | 318 | ||
319 | int via_driver_dma_quiescent(drm_device_t * dev) | 319 | int via_driver_dma_quiescent(struct drm_device * dev) |
320 | { | 320 | { |
321 | drm_via_private_t *dev_priv = dev->dev_private; | 321 | drm_via_private_t *dev_priv = dev->dev_private; |
322 | 322 | ||
@@ -356,7 +356,7 @@ static int via_cmdbuffer(DRM_IOCTL_ARGS) | |||
356 | return 0; | 356 | return 0; |
357 | } | 357 | } |
358 | 358 | ||
359 | static int via_dispatch_pci_cmdbuffer(drm_device_t * dev, | 359 | static int via_dispatch_pci_cmdbuffer(struct drm_device * dev, |
360 | drm_via_cmdbuffer_t * cmd) | 360 | drm_via_cmdbuffer_t * cmd) |
361 | { | 361 | { |
362 | drm_via_private_t *dev_priv = dev->dev_private; | 362 | drm_via_private_t *dev_priv = dev->dev_private; |
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/char/drm/via_dmablit.c index 2881a06b6f55..fdb8609dd76f 100644 --- a/drivers/char/drm/via_dmablit.c +++ b/drivers/char/drm/via_dmablit.c | |||
@@ -207,7 +207,7 @@ via_free_sg_info(struct pci_dev *pdev, drm_via_sg_info_t *vsg) | |||
207 | */ | 207 | */ |
208 | 208 | ||
209 | static void | 209 | static void |
210 | via_fire_dmablit(drm_device_t *dev, drm_via_sg_info_t *vsg, int engine) | 210 | via_fire_dmablit(struct drm_device *dev, drm_via_sg_info_t *vsg, int engine) |
211 | { | 211 | { |
212 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 212 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
213 | 213 | ||
@@ -289,7 +289,7 @@ via_alloc_desc_pages(drm_via_sg_info_t *vsg) | |||
289 | } | 289 | } |
290 | 290 | ||
291 | static void | 291 | static void |
292 | via_abort_dmablit(drm_device_t *dev, int engine) | 292 | via_abort_dmablit(struct drm_device *dev, int engine) |
293 | { | 293 | { |
294 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 294 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
295 | 295 | ||
@@ -297,7 +297,7 @@ via_abort_dmablit(drm_device_t *dev, int engine) | |||
297 | } | 297 | } |
298 | 298 | ||
299 | static void | 299 | static void |
300 | via_dmablit_engine_off(drm_device_t *dev, int engine) | 300 | via_dmablit_engine_off(struct drm_device *dev, int engine) |
301 | { | 301 | { |
302 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 302 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
303 | 303 | ||
@@ -314,7 +314,7 @@ via_dmablit_engine_off(drm_device_t *dev, int engine) | |||
314 | */ | 314 | */ |
315 | 315 | ||
316 | void | 316 | void |
317 | via_dmablit_handler(drm_device_t *dev, int engine, int from_irq) | 317 | via_dmablit_handler(struct drm_device *dev, int engine, int from_irq) |
318 | { | 318 | { |
319 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 319 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
320 | drm_via_blitq_t *blitq = dev_priv->blit_queues + engine; | 320 | drm_via_blitq_t *blitq = dev_priv->blit_queues + engine; |
@@ -433,7 +433,7 @@ via_dmablit_active(drm_via_blitq_t *blitq, int engine, uint32_t handle, wait_que | |||
433 | */ | 433 | */ |
434 | 434 | ||
435 | static int | 435 | static int |
436 | via_dmablit_sync(drm_device_t *dev, uint32_t handle, int engine) | 436 | via_dmablit_sync(struct drm_device *dev, uint32_t handle, int engine) |
437 | { | 437 | { |
438 | 438 | ||
439 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 439 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
@@ -466,7 +466,7 @@ static void | |||
466 | via_dmablit_timer(unsigned long data) | 466 | via_dmablit_timer(unsigned long data) |
467 | { | 467 | { |
468 | drm_via_blitq_t *blitq = (drm_via_blitq_t *) data; | 468 | drm_via_blitq_t *blitq = (drm_via_blitq_t *) data; |
469 | drm_device_t *dev = blitq->dev; | 469 | struct drm_device *dev = blitq->dev; |
470 | int engine = (int) | 470 | int engine = (int) |
471 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues); | 471 | (blitq - ((drm_via_private_t *)dev->dev_private)->blit_queues); |
472 | 472 | ||
@@ -502,7 +502,7 @@ static void | |||
502 | via_dmablit_workqueue(struct work_struct *work) | 502 | via_dmablit_workqueue(struct work_struct *work) |
503 | { | 503 | { |
504 | drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq); | 504 | drm_via_blitq_t *blitq = container_of(work, drm_via_blitq_t, wq); |
505 | drm_device_t *dev = blitq->dev; | 505 | struct drm_device *dev = blitq->dev; |
506 | unsigned long irqsave; | 506 | unsigned long irqsave; |
507 | drm_via_sg_info_t *cur_sg; | 507 | drm_via_sg_info_t *cur_sg; |
508 | int cur_released; | 508 | int cur_released; |
@@ -545,7 +545,7 @@ via_dmablit_workqueue(struct work_struct *work) | |||
545 | 545 | ||
546 | 546 | ||
547 | void | 547 | void |
548 | via_init_dmablit(drm_device_t *dev) | 548 | via_init_dmablit(struct drm_device *dev) |
549 | { | 549 | { |
550 | int i,j; | 550 | int i,j; |
551 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 551 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
@@ -582,7 +582,7 @@ via_init_dmablit(drm_device_t *dev) | |||
582 | 582 | ||
583 | 583 | ||
584 | static int | 584 | static int |
585 | via_build_sg_info(drm_device_t *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) | 585 | via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmablit_t *xfer) |
586 | { | 586 | { |
587 | int draw = xfer->to_fb; | 587 | int draw = xfer->to_fb; |
588 | int ret = 0; | 588 | int ret = 0; |
@@ -730,7 +730,7 @@ via_dmablit_release_slot(drm_via_blitq_t *blitq) | |||
730 | 730 | ||
731 | 731 | ||
732 | static int | 732 | static int |
733 | via_dmablit(drm_device_t *dev, drm_via_dmablit_t *xfer) | 733 | via_dmablit(struct drm_device *dev, drm_via_dmablit_t *xfer) |
734 | { | 734 | { |
735 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; | 735 | drm_via_private_t *dev_priv = (drm_via_private_t *)dev->dev_private; |
736 | drm_via_sg_info_t *vsg; | 736 | drm_via_sg_info_t *vsg; |
diff --git a/drivers/char/drm/via_dmablit.h b/drivers/char/drm/via_dmablit.h index f4036cd5d0e0..6f6a513d5147 100644 --- a/drivers/char/drm/via_dmablit.h +++ b/drivers/char/drm/via_dmablit.h | |||
@@ -59,7 +59,7 @@ typedef struct _drm_via_sg_info { | |||
59 | } drm_via_sg_info_t; | 59 | } drm_via_sg_info_t; |
60 | 60 | ||
61 | typedef struct _drm_via_blitq { | 61 | typedef struct _drm_via_blitq { |
62 | drm_device_t *dev; | 62 | struct drm_device *dev; |
63 | uint32_t cur_blit_handle; | 63 | uint32_t cur_blit_handle; |
64 | uint32_t done_blit_handle; | 64 | uint32_t done_blit_handle; |
65 | unsigned serviced; | 65 | unsigned serviced; |
diff --git a/drivers/char/drm/via_drm.h b/drivers/char/drm/via_drm.h index e4ee97d7156f..8f53c76062e9 100644 --- a/drivers/char/drm/via_drm.h +++ b/drivers/char/drm/via_drm.h | |||
@@ -40,7 +40,7 @@ | |||
40 | #define VIA_NR_XVMC_LOCKS 5 | 40 | #define VIA_NR_XVMC_LOCKS 5 |
41 | #define VIA_MAX_CACHELINE_SIZE 64 | 41 | #define VIA_MAX_CACHELINE_SIZE 64 |
42 | #define XVMCLOCKPTR(saPriv,lockNo) \ | 42 | #define XVMCLOCKPTR(saPriv,lockNo) \ |
43 | ((volatile drm_hw_lock_t *)(((((unsigned long) (saPriv)->XvMCLockArea) + \ | 43 | ((volatile struct drm_hw_lock *)(((((unsigned long) (saPriv)->XvMCLockArea) + \ |
44 | (VIA_MAX_CACHELINE_SIZE - 1)) & \ | 44 | (VIA_MAX_CACHELINE_SIZE - 1)) & \ |
45 | ~(VIA_MAX_CACHELINE_SIZE - 1)) + \ | 45 | ~(VIA_MAX_CACHELINE_SIZE - 1)) + \ |
46 | VIA_MAX_CACHELINE_SIZE*(lockNo))) | 46 | VIA_MAX_CACHELINE_SIZE*(lockNo))) |
@@ -182,7 +182,7 @@ typedef struct _drm_via_tex_region { | |||
182 | typedef struct _drm_via_sarea { | 182 | typedef struct _drm_via_sarea { |
183 | unsigned int dirty; | 183 | unsigned int dirty; |
184 | unsigned int nbox; | 184 | unsigned int nbox; |
185 | drm_clip_rect_t boxes[VIA_NR_SAREA_CLIPRECTS]; | 185 | struct drm_clip_rect boxes[VIA_NR_SAREA_CLIPRECTS]; |
186 | drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1]; | 186 | drm_via_tex_region_t texList[VIA_NR_TEX_REGIONS + 1]; |
187 | int texAge; /* last time texture was uploaded */ | 187 | int texAge; /* last time texture was uploaded */ |
188 | int ctxOwner; /* last context to upload state */ | 188 | int ctxOwner; /* last context to upload state */ |
diff --git a/drivers/char/drm/via_drv.h b/drivers/char/drm/via_drv.h index b46ca8e6306d..576711564a11 100644 --- a/drivers/char/drm/via_drv.h +++ b/drivers/char/drm/via_drv.h | |||
@@ -87,7 +87,7 @@ typedef struct drm_via_private { | |||
87 | uint32_t irq_pending_mask; | 87 | uint32_t irq_pending_mask; |
88 | int *irq_map; | 88 | int *irq_map; |
89 | unsigned int idle_fault; | 89 | unsigned int idle_fault; |
90 | drm_sman_t sman; | 90 | struct drm_sman sman; |
91 | int vram_initialized; | 91 | int vram_initialized; |
92 | int agp_initialized; | 92 | int agp_initialized; |
93 | unsigned long vram_offset; | 93 | unsigned long vram_offset; |
@@ -123,31 +123,31 @@ extern int via_wait_irq(DRM_IOCTL_ARGS); | |||
123 | extern int via_dma_blit_sync( DRM_IOCTL_ARGS ); | 123 | extern int via_dma_blit_sync( DRM_IOCTL_ARGS ); |
124 | extern int via_dma_blit( DRM_IOCTL_ARGS ); | 124 | extern int via_dma_blit( DRM_IOCTL_ARGS ); |
125 | 125 | ||
126 | extern int via_driver_load(drm_device_t *dev, unsigned long chipset); | 126 | extern int via_driver_load(struct drm_device *dev, unsigned long chipset); |
127 | extern int via_driver_unload(drm_device_t *dev); | 127 | extern int via_driver_unload(struct drm_device *dev); |
128 | 128 | ||
129 | extern int via_init_context(drm_device_t * dev, int context); | 129 | extern int via_init_context(struct drm_device * dev, int context); |
130 | extern int via_final_context(drm_device_t * dev, int context); | 130 | extern int via_final_context(struct drm_device * dev, int context); |
131 | 131 | ||
132 | extern int via_do_cleanup_map(drm_device_t * dev); | 132 | extern int via_do_cleanup_map(struct drm_device * dev); |
133 | extern int via_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence); | 133 | extern int via_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence); |
134 | 134 | ||
135 | extern irqreturn_t via_driver_irq_handler(DRM_IRQ_ARGS); | 135 | extern irqreturn_t via_driver_irq_handler(DRM_IRQ_ARGS); |
136 | extern void via_driver_irq_preinstall(drm_device_t * dev); | 136 | extern void via_driver_irq_preinstall(struct drm_device * dev); |
137 | extern void via_driver_irq_postinstall(drm_device_t * dev); | 137 | extern void via_driver_irq_postinstall(struct drm_device * dev); |
138 | extern void via_driver_irq_uninstall(drm_device_t * dev); | 138 | extern void via_driver_irq_uninstall(struct drm_device * dev); |
139 | 139 | ||
140 | extern int via_dma_cleanup(drm_device_t * dev); | 140 | extern int via_dma_cleanup(struct drm_device * dev); |
141 | extern void via_init_command_verifier(void); | 141 | extern void via_init_command_verifier(void); |
142 | extern int via_driver_dma_quiescent(drm_device_t * dev); | 142 | extern int via_driver_dma_quiescent(struct drm_device * dev); |
143 | extern void via_init_futex(drm_via_private_t * dev_priv); | 143 | extern void via_init_futex(drm_via_private_t * dev_priv); |
144 | extern void via_cleanup_futex(drm_via_private_t * dev_priv); | 144 | extern void via_cleanup_futex(drm_via_private_t * dev_priv); |
145 | extern void via_release_futex(drm_via_private_t * dev_priv, int context); | 145 | extern void via_release_futex(drm_via_private_t * dev_priv, int context); |
146 | 146 | ||
147 | extern void via_reclaim_buffers_locked(drm_device_t *dev, struct file *filp); | 147 | extern void via_reclaim_buffers_locked(struct drm_device *dev, struct file *filp); |
148 | extern void via_lastclose(drm_device_t *dev); | 148 | extern void via_lastclose(struct drm_device *dev); |
149 | 149 | ||
150 | extern void via_dmablit_handler(drm_device_t *dev, int engine, int from_irq); | 150 | extern void via_dmablit_handler(struct drm_device *dev, int engine, int from_irq); |
151 | extern void via_init_dmablit(drm_device_t *dev); | 151 | extern void via_init_dmablit(struct drm_device *dev); |
152 | 152 | ||
153 | #endif | 153 | #endif |
diff --git a/drivers/char/drm/via_irq.c b/drivers/char/drm/via_irq.c index 1ac5941ad237..8dc99b5fbab6 100644 --- a/drivers/char/drm/via_irq.c +++ b/drivers/char/drm/via_irq.c | |||
@@ -98,7 +98,7 @@ static unsigned time_diff(struct timeval *now, struct timeval *then) | |||
98 | 98 | ||
99 | irqreturn_t via_driver_irq_handler(DRM_IRQ_ARGS) | 99 | irqreturn_t via_driver_irq_handler(DRM_IRQ_ARGS) |
100 | { | 100 | { |
101 | drm_device_t *dev = (drm_device_t *) arg; | 101 | struct drm_device *dev = (struct drm_device *) arg; |
102 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 102 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
103 | u32 status; | 103 | u32 status; |
104 | int handled = 0; | 104 | int handled = 0; |
@@ -163,7 +163,7 @@ static __inline__ void viadrv_acknowledge_irqs(drm_via_private_t * dev_priv) | |||
163 | } | 163 | } |
164 | } | 164 | } |
165 | 165 | ||
166 | int via_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | 166 | int via_driver_vblank_wait(struct drm_device * dev, unsigned int *sequence) |
167 | { | 167 | { |
168 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 168 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
169 | unsigned int cur_vblank; | 169 | unsigned int cur_vblank; |
@@ -191,7 +191,7 @@ int via_driver_vblank_wait(drm_device_t * dev, unsigned int *sequence) | |||
191 | } | 191 | } |
192 | 192 | ||
193 | static int | 193 | static int |
194 | via_driver_irq_wait(drm_device_t * dev, unsigned int irq, int force_sequence, | 194 | via_driver_irq_wait(struct drm_device * dev, unsigned int irq, int force_sequence, |
195 | unsigned int *sequence) | 195 | unsigned int *sequence) |
196 | { | 196 | { |
197 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 197 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
@@ -244,7 +244,7 @@ via_driver_irq_wait(drm_device_t * dev, unsigned int irq, int force_sequence, | |||
244 | * drm_dma.h hooks | 244 | * drm_dma.h hooks |
245 | */ | 245 | */ |
246 | 246 | ||
247 | void via_driver_irq_preinstall(drm_device_t * dev) | 247 | void via_driver_irq_preinstall(struct drm_device * dev) |
248 | { | 248 | { |
249 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 249 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
250 | u32 status; | 250 | u32 status; |
@@ -293,7 +293,7 @@ void via_driver_irq_preinstall(drm_device_t * dev) | |||
293 | } | 293 | } |
294 | } | 294 | } |
295 | 295 | ||
296 | void via_driver_irq_postinstall(drm_device_t * dev) | 296 | void via_driver_irq_postinstall(struct drm_device * dev) |
297 | { | 297 | { |
298 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 298 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
299 | u32 status; | 299 | u32 status; |
@@ -312,7 +312,7 @@ void via_driver_irq_postinstall(drm_device_t * dev) | |||
312 | } | 312 | } |
313 | } | 313 | } |
314 | 314 | ||
315 | void via_driver_irq_uninstall(drm_device_t * dev) | 315 | void via_driver_irq_uninstall(struct drm_device * dev) |
316 | { | 316 | { |
317 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 317 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
318 | u32 status; | 318 | u32 status; |
diff --git a/drivers/char/drm/via_map.c b/drivers/char/drm/via_map.c index 4e3fc072aa3b..7fb9d2a2cce2 100644 --- a/drivers/char/drm/via_map.c +++ b/drivers/char/drm/via_map.c | |||
@@ -25,13 +25,13 @@ | |||
25 | #include "via_drm.h" | 25 | #include "via_drm.h" |
26 | #include "via_drv.h" | 26 | #include "via_drv.h" |
27 | 27 | ||
28 | static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init) | 28 | static int via_do_init_map(struct drm_device * dev, drm_via_init_t * init) |
29 | { | 29 | { |
30 | drm_via_private_t *dev_priv = dev->dev_private; | 30 | drm_via_private_t *dev_priv = dev->dev_private; |
31 | 31 | ||
32 | DRM_DEBUG("%s\n", __FUNCTION__); | 32 | DRM_DEBUG("%s\n", __FUNCTION__); |
33 | 33 | ||
34 | DRM_GETSAREA(); | 34 | dev_priv->sarea = drm_getsarea(dev); |
35 | if (!dev_priv->sarea) { | 35 | if (!dev_priv->sarea) { |
36 | DRM_ERROR("could not find sarea!\n"); | 36 | DRM_ERROR("could not find sarea!\n"); |
37 | dev->dev_private = (void *)dev_priv; | 37 | dev->dev_private = (void *)dev_priv; |
@@ -68,7 +68,7 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init) | |||
68 | return 0; | 68 | return 0; |
69 | } | 69 | } |
70 | 70 | ||
71 | int via_do_cleanup_map(drm_device_t * dev) | 71 | int via_do_cleanup_map(struct drm_device * dev) |
72 | { | 72 | { |
73 | via_dma_cleanup(dev); | 73 | via_dma_cleanup(dev); |
74 | 74 | ||
@@ -95,7 +95,7 @@ int via_map_init(DRM_IOCTL_ARGS) | |||
95 | return -EINVAL; | 95 | return -EINVAL; |
96 | } | 96 | } |
97 | 97 | ||
98 | int via_driver_load(drm_device_t *dev, unsigned long chipset) | 98 | int via_driver_load(struct drm_device *dev, unsigned long chipset) |
99 | { | 99 | { |
100 | drm_via_private_t *dev_priv; | 100 | drm_via_private_t *dev_priv; |
101 | int ret = 0; | 101 | int ret = 0; |
@@ -115,7 +115,7 @@ int via_driver_load(drm_device_t *dev, unsigned long chipset) | |||
115 | return ret; | 115 | return ret; |
116 | } | 116 | } |
117 | 117 | ||
118 | int via_driver_unload(drm_device_t *dev) | 118 | int via_driver_unload(struct drm_device *dev) |
119 | { | 119 | { |
120 | drm_via_private_t *dev_priv = dev->dev_private; | 120 | drm_via_private_t *dev_priv = dev->dev_private; |
121 | 121 | ||
diff --git a/drivers/char/drm/via_mm.c b/drivers/char/drm/via_mm.c index 2fcf0577a7aa..85d56acd9d82 100644 --- a/drivers/char/drm/via_mm.c +++ b/drivers/char/drm/via_mm.c | |||
@@ -127,7 +127,7 @@ int via_mem_alloc(DRM_IOCTL_ARGS) | |||
127 | 127 | ||
128 | drm_via_mem_t mem; | 128 | drm_via_mem_t mem; |
129 | int retval = 0; | 129 | int retval = 0; |
130 | drm_memblock_item_t *item; | 130 | struct drm_memblock_item *item; |
131 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 131 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
132 | unsigned long tmpSize; | 132 | unsigned long tmpSize; |
133 | 133 | ||
@@ -188,10 +188,10 @@ int via_mem_free(DRM_IOCTL_ARGS) | |||
188 | } | 188 | } |
189 | 189 | ||
190 | 190 | ||
191 | void via_reclaim_buffers_locked(drm_device_t * dev, struct file *filp) | 191 | void via_reclaim_buffers_locked(struct drm_device * dev, struct file *filp) |
192 | { | 192 | { |
193 | drm_via_private_t *dev_priv = dev->dev_private; | 193 | drm_via_private_t *dev_priv = dev->dev_private; |
194 | drm_file_t *priv = filp->private_data; | 194 | struct drm_file *priv = filp->private_data; |
195 | 195 | ||
196 | mutex_lock(&dev->struct_mutex); | 196 | mutex_lock(&dev->struct_mutex); |
197 | if (drm_sman_owner_clean(&dev_priv->sman, (unsigned long)priv)) { | 197 | if (drm_sman_owner_clean(&dev_priv->sman, (unsigned long)priv)) { |
diff --git a/drivers/char/drm/via_verifier.c b/drivers/char/drm/via_verifier.c index 2e7e08078287..832d48356e91 100644 --- a/drivers/char/drm/via_verifier.c +++ b/drivers/char/drm/via_verifier.c | |||
@@ -252,10 +252,9 @@ eat_words(const uint32_t ** buf, const uint32_t * buf_end, unsigned num_words) | |||
252 | static __inline__ drm_local_map_t *via_drm_lookup_agp_map(drm_via_state_t *seq, | 252 | static __inline__ drm_local_map_t *via_drm_lookup_agp_map(drm_via_state_t *seq, |
253 | unsigned long offset, | 253 | unsigned long offset, |
254 | unsigned long size, | 254 | unsigned long size, |
255 | drm_device_t * dev) | 255 | struct drm_device * dev) |
256 | { | 256 | { |
257 | struct list_head *list; | 257 | struct drm_map_list *r_list; |
258 | drm_map_list_t *r_list; | ||
259 | drm_local_map_t *map = seq->map_cache; | 258 | drm_local_map_t *map = seq->map_cache; |
260 | 259 | ||
261 | if (map && map->offset <= offset | 260 | if (map && map->offset <= offset |
@@ -263,8 +262,7 @@ static __inline__ drm_local_map_t *via_drm_lookup_agp_map(drm_via_state_t *seq, | |||
263 | return map; | 262 | return map; |
264 | } | 263 | } |
265 | 264 | ||
266 | list_for_each(list, &dev->maplist->head) { | 265 | list_for_each_entry(r_list, &dev->maplist, head) { |
267 | r_list = (drm_map_list_t *) list; | ||
268 | map = r_list->map; | 266 | map = r_list->map; |
269 | if (!map) | 267 | if (!map) |
270 | continue; | 268 | continue; |
@@ -964,7 +962,7 @@ via_parse_vheader6(drm_via_private_t * dev_priv, uint32_t const **buffer, | |||
964 | 962 | ||
965 | int | 963 | int |
966 | via_verify_command_stream(const uint32_t * buf, unsigned int size, | 964 | via_verify_command_stream(const uint32_t * buf, unsigned int size, |
967 | drm_device_t * dev, int agp) | 965 | struct drm_device * dev, int agp) |
968 | { | 966 | { |
969 | 967 | ||
970 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; | 968 | drm_via_private_t *dev_priv = (drm_via_private_t *) dev->dev_private; |
@@ -1039,7 +1037,7 @@ via_verify_command_stream(const uint32_t * buf, unsigned int size, | |||
1039 | } | 1037 | } |
1040 | 1038 | ||
1041 | int | 1039 | int |
1042 | via_parse_command_stream(drm_device_t * dev, const uint32_t * buf, | 1040 | via_parse_command_stream(struct drm_device * dev, const uint32_t * buf, |
1043 | unsigned int size) | 1041 | unsigned int size) |
1044 | { | 1042 | { |
1045 | 1043 | ||
diff --git a/drivers/char/drm/via_verifier.h b/drivers/char/drm/via_verifier.h index b77f59df0278..28b50296a7bd 100644 --- a/drivers/char/drm/via_verifier.h +++ b/drivers/char/drm/via_verifier.h | |||
@@ -47,7 +47,7 @@ typedef struct { | |||
47 | drm_via_sequence_t unfinished; | 47 | drm_via_sequence_t unfinished; |
48 | int agp_texture; | 48 | int agp_texture; |
49 | int multitex; | 49 | int multitex; |
50 | drm_device_t *dev; | 50 | struct drm_device *dev; |
51 | drm_local_map_t *map_cache; | 51 | drm_local_map_t *map_cache; |
52 | uint32_t vertex_count; | 52 | uint32_t vertex_count; |
53 | int agp; | 53 | int agp; |
@@ -55,8 +55,8 @@ typedef struct { | |||
55 | } drm_via_state_t; | 55 | } drm_via_state_t; |
56 | 56 | ||
57 | extern int via_verify_command_stream(const uint32_t * buf, unsigned int size, | 57 | extern int via_verify_command_stream(const uint32_t * buf, unsigned int size, |
58 | drm_device_t * dev, int agp); | 58 | struct drm_device * dev, int agp); |
59 | extern int via_parse_command_stream(drm_device_t *dev, const uint32_t *buf, | 59 | extern int via_parse_command_stream(struct drm_device *dev, const uint32_t *buf, |
60 | unsigned int size); | 60 | unsigned int size); |
61 | 61 | ||
62 | #endif | 62 | #endif |