Rev 1268 | Rev 1403 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1268 | Rev 1321 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | * Jerome Glisse |
26 | * Jerome Glisse |
27 | */ |
27 | */ |
28 | #ifndef __RADEON_H__ |
28 | #ifndef __RADEON_H__ |
29 | #define __RADEON_H__ |
29 | #define __RADEON_H__ |
Line 30... | Line -... | ||
30 | - | ||
31 | //#include "radeon_object.h" |
- | |
32 | 30 | ||
33 | /* TODO: Here are things that needs to be done : |
31 | /* TODO: Here are things that needs to be done : |
34 | * - surface allocator & initializer : (bit like scratch reg) should |
32 | * - surface allocator & initializer : (bit like scratch reg) should |
35 | * initialize HDP_ stuff on RS600, R600, R700 hw, well anythings |
33 | * initialize HDP_ stuff on RS600, R600, R700 hw, well anythings |
36 | * related to surface |
34 | * related to surface |
Line 60... | Line 58... | ||
60 | * function should do is setting the GPU |
58 | * function should do is setting the GPU |
61 | * memory controller (only MC setup failure |
59 | * memory controller (only MC setup failure |
62 | * are considered as fatal) |
60 | * are considered as fatal) |
63 | */ |
61 | */ |
Line -... | Line 62... | ||
- | 62 | ||
Line -... | Line 63... | ||
- | 63 | #include |
|
64 | 64 | ||
Line -... | Line 65... | ||
- | 65 | #include |
|
- | 66 | #include |
|
- | 67 | ||
- | 68 | #include |
|
Line 65... | Line -... | ||
65 | - | ||
Line 66... | Line 69... | ||
66 | #include |
69 | #include |
Line 67... | Line 70... | ||
67 | 70 | #include |
|
68 | 71 | #include |
|
Line 91... | Line 94... | ||
91 | extern int radeon_gart_size; |
94 | extern int radeon_gart_size; |
92 | extern int radeon_benchmarking; |
95 | extern int radeon_benchmarking; |
93 | extern int radeon_testing; |
96 | extern int radeon_testing; |
94 | extern int radeon_connector_table; |
97 | extern int radeon_connector_table; |
95 | extern int radeon_tv; |
98 | extern int radeon_tv; |
- | 99 | extern int radeon_new_pll; |
|
- | 100 | ||
Line 96... | Line 101... | ||
96 | 101 | ||
97 | typedef struct |
102 | typedef struct |
98 | { |
103 | { |
99 | int width; |
104 | int width; |
100 | int height; |
105 | int height; |
101 | int bpp; |
106 | int bpp; |
102 | int freq; |
107 | int freq; |
Line 103... | Line 108... | ||
103 | }mode_t; |
108 | }videomode_t; |
104 | 109 | ||
105 | static inline uint8_t __raw_readb(const volatile void __iomem *addr) |
110 | static inline uint8_t __raw_readb(const volatile void __iomem *addr) |
106 | { |
111 | { |
Line 210... | Line 215... | ||
210 | /* |
215 | /* |
211 | * Fences. |
216 | * Fences. |
212 | */ |
217 | */ |
213 | struct radeon_fence_driver { |
218 | struct radeon_fence_driver { |
214 | uint32_t scratch_reg; |
219 | uint32_t scratch_reg; |
215 | // atomic_t seq; |
220 | atomic_t seq; |
216 | uint32_t last_seq; |
221 | uint32_t last_seq; |
217 | unsigned long count_timeout; |
222 | unsigned long count_timeout; |
218 | // wait_queue_head_t queue; |
223 | // wait_queue_head_t queue; |
219 | // rwlock_t lock; |
224 | rwlock_t lock; |
220 | struct list_head created; |
225 | struct list_head created; |
221 | struct list_head emited; |
226 | struct list_head emited; |
222 | struct list_head signaled; |
227 | struct list_head signaled; |
223 | }; |
228 | }; |
Line 224... | Line 229... | ||
224 | 229 | ||
225 | struct radeon_fence { |
230 | struct radeon_fence { |
226 | struct radeon_device *rdev; |
231 | struct radeon_device *rdev; |
227 | // struct kref kref; |
232 | struct kref kref; |
228 | struct list_head list; |
233 | struct list_head list; |
229 | /* protected by radeon_fence.lock */ |
234 | /* protected by radeon_fence.lock */ |
230 | uint32_t seq; |
235 | uint32_t seq; |
231 | unsigned long timeout; |
236 | unsigned long timeout; |
Line 247... | Line 252... | ||
247 | 252 | ||
248 | /* |
253 | /* |
249 | * Tiling registers |
254 | * Tiling registers |
250 | */ |
255 | */ |
251 | struct radeon_surface_reg { |
256 | struct radeon_surface_reg { |
252 | struct radeon_object *robj; |
257 | struct radeon_bo *bo; |
Line 253... | Line 258... | ||
253 | }; |
258 | }; |
Line 254... | Line 259... | ||
254 | 259 | ||
255 | #define RADEON_GEM_MAX_SURFACES 8 |
260 | #define RADEON_GEM_MAX_SURFACES 8 |
256 | 261 | ||
- | 262 | /* |
|
- | 263 | * TTM. |
|
- | 264 | */ |
|
- | 265 | struct radeon_mman { |
|
- | 266 | struct ttm_bo_global_ref bo_global_ref; |
|
- | 267 | struct ttm_global_reference mem_global_ref; |
|
- | 268 | bool mem_global_referenced; |
|
257 | /* |
269 | struct ttm_bo_device bdev; |
- | 270 | }; |
|
- | 271 | ||
- | 272 | struct radeon_bo { |
|
- | 273 | /* Protected by gem.mutex */ |
|
- | 274 | struct list_head list; |
|
- | 275 | /* Protected by tbo.reserved */ |
|
- | 276 | u32 placements[3]; |
|
- | 277 | struct ttm_placement placement; |
|
- | 278 | struct ttm_buffer_object tbo; |
|
- | 279 | struct ttm_bo_kmap_obj kmap; |
|
- | 280 | unsigned pin_count; |
|
- | 281 | void *kptr; |
|
- | 282 | u32 tiling_flags; |
|
- | 283 | u32 pitch; |
|
- | 284 | int surface_reg; |
|
- | 285 | /* Constant after initialization */ |
|
Line 258... | Line 286... | ||
258 | * Radeon buffer. |
286 | struct radeon_device *rdev; |
259 | */ |
287 | struct drm_gem_object *gobj; |
260 | struct radeon_object; |
288 | }; |
261 | 289 | ||
262 | struct radeon_object_list { |
290 | struct radeon_bo_list { |
263 | struct list_head list; |
291 | struct list_head list; |
264 | struct radeon_object *robj; |
292 | struct radeon_bo *bo; |
265 | uint64_t gpu_offset; |
293 | uint64_t gpu_offset; |
Line 266... | Line -... | ||
266 | unsigned rdomain; |
- | |
267 | unsigned wdomain; |
- | |
268 | uint32_t tiling_flags; |
- | |
269 | }; |
- | |
270 | - | ||
271 | int radeon_object_init(struct radeon_device *rdev); |
- | |
272 | void radeon_object_fini(struct radeon_device *rdev); |
- | |
273 | int radeon_object_create(struct radeon_device *rdev, |
- | |
274 | struct drm_gem_object *gobj, |
- | |
275 | unsigned long size, |
- | |
276 | bool kernel, |
- | |
277 | uint32_t domain, |
294 | unsigned rdomain; |
278 | bool interruptible, |
295 | unsigned wdomain; |
279 | struct radeon_object **robj_ptr); |
296 | u32 tiling_flags; |
280 | 297 | }; |
|
281 | 298 | ||
Line 289... | Line 306... | ||
289 | int radeon_gem_init(struct radeon_device *rdev); |
306 | int radeon_gem_init(struct radeon_device *rdev); |
290 | void radeon_gem_fini(struct radeon_device *rdev); |
307 | void radeon_gem_fini(struct radeon_device *rdev); |
291 | int radeon_gem_object_create(struct radeon_device *rdev, int size, |
308 | int radeon_gem_object_create(struct radeon_device *rdev, int size, |
292 | int alignment, int initial_domain, |
309 | int alignment, int initial_domain, |
293 | bool discardable, bool kernel, |
310 | bool discardable, bool kernel, |
294 | bool interruptible, |
- | |
295 | struct drm_gem_object **obj); |
311 | struct drm_gem_object **obj); |
296 | int radeon_gem_object_pin(struct drm_gem_object *obj, uint32_t pin_domain, |
312 | int radeon_gem_object_pin(struct drm_gem_object *obj, uint32_t pin_domain, |
297 | uint64_t *gpu_addr); |
313 | uint64_t *gpu_addr); |
298 | void radeon_gem_object_unpin(struct drm_gem_object *obj); |
314 | void radeon_gem_object_unpin(struct drm_gem_object *obj); |
Line 306... | Line 322... | ||
306 | struct radeon_gart_table_ram { |
322 | struct radeon_gart_table_ram { |
307 | volatile uint32_t *ptr; |
323 | volatile uint32_t *ptr; |
308 | }; |
324 | }; |
Line 309... | Line 325... | ||
309 | 325 | ||
310 | struct radeon_gart_table_vram { |
326 | struct radeon_gart_table_vram { |
311 | struct radeon_object *robj; |
327 | struct radeon_bo *robj; |
312 | volatile uint32_t *ptr; |
328 | volatile uint32_t *ptr; |
Line 313... | Line 329... | ||
313 | }; |
329 | }; |
314 | 330 | ||
Line 387... | Line 403... | ||
387 | struct radeon_irq { |
403 | struct radeon_irq { |
388 | bool installed; |
404 | bool installed; |
389 | bool sw_int; |
405 | bool sw_int; |
390 | /* FIXME: use a define max crtc rather than hardcode it */ |
406 | /* FIXME: use a define max crtc rather than hardcode it */ |
391 | bool crtc_vblank_int[2]; |
407 | bool crtc_vblank_int[2]; |
- | 408 | /* FIXME: use defines for max hpd/dacs */ |
|
- | 409 | bool hpd[6]; |
|
- | 410 | spinlock_t sw_lock; |
|
- | 411 | int sw_refcount; |
|
392 | }; |
412 | }; |
Line 393... | Line 413... | ||
393 | 413 | ||
394 | int radeon_irq_kms_init(struct radeon_device *rdev); |
414 | int radeon_irq_kms_init(struct radeon_device *rdev); |
395 | void radeon_irq_kms_fini(struct radeon_device *rdev); |
- | |
- | 415 | void radeon_irq_kms_fini(struct radeon_device *rdev); |
|
- | 416 | void radeon_irq_kms_sw_irq_get(struct radeon_device *rdev); |
|
Line 396... | Line 417... | ||
396 | 417 | void radeon_irq_kms_sw_irq_put(struct radeon_device *rdev); |
|
397 | 418 | ||
398 | /* |
419 | /* |
399 | * CP & ring. |
420 | * CP & ring. |
Line 411... | Line 432... | ||
411 | * locking - |
432 | * locking - |
412 | * mutex protects scheduled_ibs, ready, alloc_bm |
433 | * mutex protects scheduled_ibs, ready, alloc_bm |
413 | */ |
434 | */ |
414 | struct radeon_ib_pool { |
435 | struct radeon_ib_pool { |
415 | // struct mutex mutex; |
436 | // struct mutex mutex; |
416 | struct radeon_object *robj; |
437 | struct radeon_bo *robj; |
417 | struct list_head scheduled_ibs; |
438 | struct list_head scheduled_ibs; |
418 | struct radeon_ib ibs[RADEON_IB_POOL_SIZE]; |
439 | struct radeon_ib ibs[RADEON_IB_POOL_SIZE]; |
419 | bool ready; |
440 | bool ready; |
420 | DECLARE_BITMAP(alloc_bm, RADEON_IB_POOL_SIZE); |
441 | DECLARE_BITMAP(alloc_bm, RADEON_IB_POOL_SIZE); |
421 | }; |
442 | }; |
Line 422... | Line 443... | ||
422 | 443 | ||
423 | struct radeon_cp { |
444 | struct radeon_cp { |
424 | struct radeon_object *ring_obj; |
445 | struct radeon_bo *ring_obj; |
425 | volatile uint32_t *ring; |
446 | volatile uint32_t *ring; |
426 | unsigned rptr; |
447 | unsigned rptr; |
427 | unsigned wptr; |
448 | unsigned wptr; |
428 | unsigned wptr_old; |
449 | unsigned wptr_old; |
Line 434... | Line 455... | ||
434 | uint32_t ptr_mask; |
455 | uint32_t ptr_mask; |
435 | // struct mutex mutex; |
456 | // struct mutex mutex; |
436 | bool ready; |
457 | bool ready; |
437 | }; |
458 | }; |
Line -... | Line 459... | ||
- | 459 | ||
- | 460 | /* |
|
- | 461 | * R6xx+ IH ring |
|
- | 462 | */ |
|
- | 463 | struct r600_ih { |
|
- | 464 | struct radeon_bo *ring_obj; |
|
- | 465 | volatile uint32_t *ring; |
|
- | 466 | unsigned rptr; |
|
- | 467 | unsigned wptr; |
|
- | 468 | unsigned wptr_old; |
|
- | 469 | unsigned ring_size; |
|
- | 470 | uint64_t gpu_addr; |
|
- | 471 | uint32_t align_mask; |
|
- | 472 | uint32_t ptr_mask; |
|
- | 473 | spinlock_t lock; |
|
- | 474 | bool enabled; |
|
- | 475 | }; |
|
438 | 476 | ||
439 | struct r600_blit { |
477 | struct r600_blit { |
440 | struct radeon_object *shader_obj; |
478 | struct radeon_bo *shader_obj; |
441 | u64 shader_gpu_addr; |
479 | u64 shader_gpu_addr; |
442 | u32 vs_offset, ps_offset; |
480 | u32 vs_offset, ps_offset; |
443 | u32 state_offset; |
481 | u32 state_offset; |
444 | u32 state_len; |
482 | u32 state_len; |
Line 465... | Line 503... | ||
465 | /* |
503 | /* |
466 | * CS. |
504 | * CS. |
467 | */ |
505 | */ |
468 | struct radeon_cs_reloc { |
506 | struct radeon_cs_reloc { |
469 | // struct drm_gem_object *gobj; |
507 | // struct drm_gem_object *gobj; |
470 | struct radeon_object *robj; |
508 | struct radeon_bo *robj; |
471 | struct radeon_object_list lobj; |
509 | // struct radeon_bo_list lobj; |
472 | uint32_t handle; |
510 | uint32_t handle; |
473 | uint32_t flags; |
511 | uint32_t flags; |
474 | }; |
512 | }; |
Line 475... | Line 513... | ||
475 | 513 | ||
Line 554... | Line 592... | ||
554 | 592 | ||
555 | /* |
593 | /* |
556 | * AGP |
594 | * AGP |
557 | */ |
595 | */ |
- | 596 | int radeon_agp_init(struct radeon_device *rdev); |
|
558 | int radeon_agp_init(struct radeon_device *rdev); |
597 | void radeon_agp_resume(struct radeon_device *rdev); |
Line 559... | Line 598... | ||
559 | void radeon_agp_fini(struct radeon_device *rdev); |
598 | void radeon_agp_fini(struct radeon_device *rdev); |
560 | 599 | ||
561 | 600 | ||
562 | /* |
601 | /* |
563 | * Writeback |
602 | * Writeback |
564 | */ |
603 | */ |
565 | struct radeon_wb { |
604 | struct radeon_wb { |
566 | struct radeon_object *wb_obj; |
605 | struct radeon_bo *wb_obj; |
Line 567... | Line 606... | ||
567 | volatile uint32_t *wb; |
606 | volatile uint32_t *wb; |
Line 649... | Line 688... | ||
649 | int (*set_surface_reg)(struct radeon_device *rdev, int reg, |
688 | int (*set_surface_reg)(struct radeon_device *rdev, int reg, |
650 | uint32_t tiling_flags, uint32_t pitch, |
689 | uint32_t tiling_flags, uint32_t pitch, |
651 | uint32_t offset, uint32_t obj_size); |
690 | uint32_t offset, uint32_t obj_size); |
652 | int (*clear_surface_reg)(struct radeon_device *rdev, int reg); |
691 | int (*clear_surface_reg)(struct radeon_device *rdev, int reg); |
653 | void (*bandwidth_update)(struct radeon_device *rdev); |
692 | void (*bandwidth_update)(struct radeon_device *rdev); |
- | 693 | void (*hdp_flush)(struct radeon_device *rdev); |
|
- | 694 | void (*hpd_init)(struct radeon_device *rdev); |
|
- | 695 | void (*hpd_fini)(struct radeon_device *rdev); |
|
- | 696 | bool (*hpd_sense)(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
|
- | 697 | void (*hpd_set_polarity)(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
|
654 | }; |
698 | }; |
Line 655... | Line 699... | ||
655 | 699 | ||
656 | /* |
700 | /* |
657 | * Asic structures |
701 | * Asic structures |
Line 736... | Line 780... | ||
736 | int disp_priority; |
780 | int disp_priority; |
737 | /* BIOS */ |
781 | /* BIOS */ |
738 | uint8_t *bios; |
782 | uint8_t *bios; |
739 | bool is_atom_bios; |
783 | bool is_atom_bios; |
740 | uint16_t bios_header_start; |
784 | uint16_t bios_header_start; |
741 | - | ||
742 | // struct radeon_object *stollen_vga_memory; |
785 | struct radeon_bo *stollen_vga_memory; |
743 | struct fb_info *fbdev_info; |
786 | struct fb_info *fbdev_info; |
744 | struct radeon_object *fbdev_robj; |
787 | struct radeon_bo *fbdev_rbo; |
745 | struct radeon_framebuffer *fbdev_rfb; |
788 | struct radeon_framebuffer *fbdev_rfb; |
746 | /* Register mmio */ |
789 | /* Register mmio */ |
747 | unsigned long rmmio_base; |
790 | unsigned long rmmio_base; |
748 | unsigned long rmmio_size; |
791 | unsigned long rmmio_size; |
749 | void *rmmio; |
792 | void *rmmio; |
Line 757... | Line 800... | ||
757 | struct radeon_clock clock; |
800 | struct radeon_clock clock; |
758 | struct radeon_mc mc; |
801 | struct radeon_mc mc; |
759 | struct radeon_gart gart; |
802 | struct radeon_gart gart; |
760 | struct radeon_mode_info mode_info; |
803 | struct radeon_mode_info mode_info; |
761 | struct radeon_scratch scratch; |
804 | struct radeon_scratch scratch; |
762 | // struct radeon_mman mman; |
805 | struct radeon_mman mman; |
763 | struct radeon_fence_driver fence_drv; |
806 | struct radeon_fence_driver fence_drv; |
764 | struct radeon_cp cp; |
807 | struct radeon_cp cp; |
765 | struct radeon_ib_pool ib_pool; |
808 | struct radeon_ib_pool ib_pool; |
766 | // struct radeon_irq irq; |
809 | // struct radeon_irq irq; |
767 | struct radeon_asic *asic; |
810 | struct radeon_asic *asic; |
Line 815... | Line 858... | ||
815 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); |
858 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); |
816 | writel(v, ((void __iomem *)rdev->rmmio) + RADEON_MM_DATA); |
859 | writel(v, ((void __iomem *)rdev->rmmio) + RADEON_MM_DATA); |
817 | } |
860 | } |
818 | } |
861 | } |
Line -... | Line 862... | ||
- | 862 | ||
- | 863 | /* |
|
- | 864 | * Cast helper |
|
- | 865 | */ |
|
Line 819... | Line 866... | ||
819 | 866 | #define to_radeon_fence(p) ((struct radeon_fence *)(p)) |
|
820 | 867 | ||
821 | /* |
868 | /* |
822 | * Registers read & write functions. |
869 | * Registers read & write functions. |
Line 949... | Line 996... | ||
949 | #define radeon_copy_dma(rdev, s, d, np, f) (rdev)->asic->copy_dma((rdev), (s), (d), (np), (f)) |
996 | #define radeon_copy_dma(rdev, s, d, np, f) (rdev)->asic->copy_dma((rdev), (s), (d), (np), (f)) |
950 | #define radeon_copy(rdev, s, d, np, f) (rdev)->asic->copy((rdev), (s), (d), (np), (f)) |
997 | #define radeon_copy(rdev, s, d, np, f) (rdev)->asic->copy((rdev), (s), (d), (np), (f)) |
951 | #define radeon_get_engine_clock(rdev) (rdev)->asic->get_engine_clock((rdev)) |
998 | #define radeon_get_engine_clock(rdev) (rdev)->asic->get_engine_clock((rdev)) |
952 | #define radeon_set_engine_clock(rdev, e) (rdev)->asic->set_engine_clock((rdev), (e)) |
999 | #define radeon_set_engine_clock(rdev, e) (rdev)->asic->set_engine_clock((rdev), (e)) |
953 | #define radeon_get_memory_clock(rdev) (rdev)->asic->get_memory_clock((rdev)) |
1000 | #define radeon_get_memory_clock(rdev) (rdev)->asic->get_memory_clock((rdev)) |
954 | #define radeon_set_memory_clock(rdev, e) (rdev)->asic->set_engine_clock((rdev), (e)) |
1001 | #define radeon_set_memory_clock(rdev, e) (rdev)->asic->set_memory_clock((rdev), (e)) |
955 | #define radeon_set_pcie_lanes(rdev, l) (rdev)->asic->set_pcie_lanes((rdev), (l)) |
1002 | #define radeon_set_pcie_lanes(rdev, l) (rdev)->asic->set_pcie_lanes((rdev), (l)) |
956 | #define radeon_set_clock_gating(rdev, e) (rdev)->asic->set_clock_gating((rdev), (e)) |
1003 | #define radeon_set_clock_gating(rdev, e) (rdev)->asic->set_clock_gating((rdev), (e)) |
957 | #define radeon_set_surface_reg(rdev, r, f, p, o, s) ((rdev)->asic->set_surface_reg((rdev), (r), (f), (p), (o), (s))) |
1004 | #define radeon_set_surface_reg(rdev, r, f, p, o, s) ((rdev)->asic->set_surface_reg((rdev), (r), (f), (p), (o), (s))) |
958 | #define radeon_clear_surface_reg(rdev, r) ((rdev)->asic->clear_surface_reg((rdev), (r))) |
1005 | #define radeon_clear_surface_reg(rdev, r) ((rdev)->asic->clear_surface_reg((rdev), (r))) |
959 | #define radeon_bandwidth_update(rdev) (rdev)->asic->bandwidth_update((rdev)) |
1006 | #define radeon_bandwidth_update(rdev) (rdev)->asic->bandwidth_update((rdev)) |
- | 1007 | #define radeon_hdp_flush(rdev) (rdev)->asic->hdp_flush((rdev)) |
|
- | 1008 | #define radeon_hpd_init(rdev) (rdev)->asic->hpd_init((rdev)) |
|
- | 1009 | #define radeon_hpd_fini(rdev) (rdev)->asic->hpd_fini((rdev)) |
|
- | 1010 | #define radeon_hpd_sense(rdev, hpd) (rdev)->asic->hpd_sense((rdev), (hpd)) |
|
- | 1011 | #define radeon_hpd_set_polarity(rdev, hpd) (rdev)->asic->hpd_set_polarity((rdev), (hpd)) |
|
Line 960... | Line 1012... | ||
960 | 1012 | ||
961 | /* Common functions */ |
1013 | /* Common functions */ |
962 | extern int radeon_gart_table_vram_pin(struct radeon_device *rdev); |
1014 | extern int radeon_gart_table_vram_pin(struct radeon_device *rdev); |
963 | extern int radeon_modeset_init(struct radeon_device *rdev); |
1015 | extern int radeon_modeset_init(struct radeon_device *rdev); |
964 | extern void radeon_modeset_fini(struct radeon_device *rdev); |
1016 | extern void radeon_modeset_fini(struct radeon_device *rdev); |
- | 1017 | extern bool radeon_card_posted(struct radeon_device *rdev); |
|
965 | extern bool radeon_card_posted(struct radeon_device *rdev); |
1018 | extern bool radeon_boot_test_post_card(struct radeon_device *rdev); |
966 | extern int radeon_clocks_init(struct radeon_device *rdev); |
1019 | extern int radeon_clocks_init(struct radeon_device *rdev); |
967 | extern void radeon_clocks_fini(struct radeon_device *rdev); |
1020 | extern void radeon_clocks_fini(struct radeon_device *rdev); |
968 | extern void radeon_scratch_init(struct radeon_device *rdev); |
1021 | extern void radeon_scratch_init(struct radeon_device *rdev); |
969 | extern void radeon_surface_init(struct radeon_device *rdev); |
1022 | extern void radeon_surface_init(struct radeon_device *rdev); |
970 | extern int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data); |
1023 | extern int radeon_cs_parser_init(struct radeon_cs_parser *p, void *data); |
971 | extern void radeon_legacy_set_clock_gating(struct radeon_device *rdev, int enable); |
1024 | extern void radeon_legacy_set_clock_gating(struct radeon_device *rdev, int enable); |
- | 1025 | extern void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable); |
|
Line 972... | Line 1026... | ||
972 | extern void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable); |
1026 | extern void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain); |
973 | 1027 | ||
974 | /* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */ |
1028 | /* r100,rv100,rs100,rv200,rs200,r200,rv250,rs300,rv280 */ |
975 | struct r100_mc_save { |
1029 | struct r100_mc_save { |
Line 1005... | Line 1059... | ||
1005 | extern int r100_rb2d_reset(struct radeon_device *rdev); |
1059 | extern int r100_rb2d_reset(struct radeon_device *rdev); |
1006 | extern int r100_cp_reset(struct radeon_device *rdev); |
1060 | extern int r100_cp_reset(struct radeon_device *rdev); |
1007 | extern void r100_vga_render_disable(struct radeon_device *rdev); |
1061 | extern void r100_vga_render_disable(struct radeon_device *rdev); |
1008 | extern int r100_cs_track_check_pkt3_indx_buffer(struct radeon_cs_parser *p, |
1062 | extern int r100_cs_track_check_pkt3_indx_buffer(struct radeon_cs_parser *p, |
1009 | struct radeon_cs_packet *pkt, |
1063 | struct radeon_cs_packet *pkt, |
1010 | struct radeon_object *robj); |
1064 | struct radeon_bo *robj); |
1011 | extern int r100_cs_parse_packet0(struct radeon_cs_parser *p, |
1065 | extern int r100_cs_parse_packet0(struct radeon_cs_parser *p, |
1012 | struct radeon_cs_packet *pkt, |
1066 | struct radeon_cs_packet *pkt, |
1013 | const unsigned *auth, unsigned n, |
1067 | const unsigned *auth, unsigned n, |
1014 | radeon_packet0_check_t check); |
1068 | radeon_packet0_check_t check); |
1015 | extern int r100_cs_packet_parse(struct radeon_cs_parser *p, |
1069 | extern int r100_cs_packet_parse(struct radeon_cs_parser *p, |
1016 | struct radeon_cs_packet *pkt, |
1070 | struct radeon_cs_packet *pkt, |
1017 | unsigned idx); |
1071 | unsigned idx); |
- | 1072 | extern void r100_enable_bm(struct radeon_device *rdev); |
|
- | 1073 | extern void r100_set_common_regs(struct radeon_device *rdev); |
|
Line 1018... | Line 1074... | ||
1018 | 1074 | ||
1019 | /* rv200,rv250,rv280 */ |
1075 | /* rv200,rv250,rv280 */ |
Line 1020... | Line 1076... | ||
1020 | extern void r200_set_safe_registers(struct radeon_device *rdev); |
1076 | extern void r200_set_safe_registers(struct radeon_device *rdev); |
Line 1088... | Line 1144... | ||
1088 | extern int r600_wb_enable(struct radeon_device *rdev); |
1144 | extern int r600_wb_enable(struct radeon_device *rdev); |
1089 | extern void r600_wb_disable(struct radeon_device *rdev); |
1145 | extern void r600_wb_disable(struct radeon_device *rdev); |
1090 | extern void r600_scratch_init(struct radeon_device *rdev); |
1146 | extern void r600_scratch_init(struct radeon_device *rdev); |
1091 | extern int r600_blit_init(struct radeon_device *rdev); |
1147 | extern int r600_blit_init(struct radeon_device *rdev); |
1092 | extern void r600_blit_fini(struct radeon_device *rdev); |
1148 | extern void r600_blit_fini(struct radeon_device *rdev); |
1093 | extern int r600_cp_init_microcode(struct radeon_device *rdev); |
1149 | extern int r600_init_microcode(struct radeon_device *rdev); |
1094 | extern int r600_gpu_reset(struct radeon_device *rdev); |
1150 | extern int r600_gpu_reset(struct radeon_device *rdev); |
- | 1151 | /* r600 irq */ |
|
- | 1152 | extern int r600_irq_init(struct radeon_device *rdev); |
|
- | 1153 | extern void r600_irq_fini(struct radeon_device *rdev); |
|
- | 1154 | extern void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size); |
|
- | 1155 | extern int r600_irq_set(struct radeon_device *rdev); |
|
Line 1095... | Line -... | ||
1095 | - | ||
- | 1156 | ||
Line 1096... | Line 1157... | ||
1096 | 1157 | #include "radeon_object.h" |
|
Line 1097... | Line 1158... | ||
1097 | 1158 | ||
1098 | #define DRM_UDELAY(d) udelay(d) |
1159 | #define DRM_UDELAY(d) udelay(d) |