Subversion Repositories Kolibri OS

Rev

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)