⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 radeon_drv.h

📁 ati driver
💻 H
📖 第 1 页 / 共 3 页
字号:
/* radeon_drv.h -- Private header for radeon driver -*- linux-c -*- * * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. * Copyright 2000 VA Linux Systems, Inc., Fremont, California. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * * Authors: *    Kevin E. Martin <martin@valinux.com> *    Gareth Hughes <gareth@valinux.com> */#ifndef __RADEON_DRV_H__#define __RADEON_DRV_H__#define GET_RING_HEAD(ring)		DRM_READ32(  (volatile u32 *) (ring)->head )#define SET_RING_HEAD(ring,val)		DRM_WRITE32( (volatile u32 *) (ring)->head , (val))typedef struct drm_radeon_freelist {   	unsigned int age;   	drm_buf_t *buf;   	struct drm_radeon_freelist *next;   	struct drm_radeon_freelist *prev;} drm_radeon_freelist_t;typedef struct drm_radeon_ring_buffer {	u32 *start;	u32 *end;	int size;	int size_l2qw;	volatile u32 *head;	u32 tail;	u32 tail_mask;	int space;	int high_mark;} drm_radeon_ring_buffer_t;typedef struct drm_radeon_depth_clear_t {	u32 rb3d_cntl;	u32 rb3d_zstencilcntl;	u32 se_cntl;} drm_radeon_depth_clear_t;struct mem_block {	struct mem_block *next;	struct mem_block *prev;	int start;	int size;	int pid;		/* 0: free, -1: heap, other: real pids */};typedef struct drm_radeon_private {	drm_radeon_ring_buffer_t ring;	drm_radeon_sarea_t *sarea_priv;	int agp_size;	u32 agp_vm_start;	unsigned long agp_buffers_offset;	int cp_mode;	int cp_running;   	drm_radeon_freelist_t *head;   	drm_radeon_freelist_t *tail;	int last_buf;	volatile u32 *scratch;	int writeback_works;	int usec_timeout;	int is_r200;	int is_pci;	unsigned long phys_pci_gart;	dma_addr_t bus_pci_gart;	struct {		u32 boxes;		int freelist_timeouts;		int freelist_loops;		int requested_bufs;		int last_frame_reads;		int last_clear_reads;		int clears;		int texture_uploads;	} stats;	int do_boxes;	int page_flipping;	int current_page;	u32 color_fmt;	unsigned int front_offset;	unsigned int front_pitch;	unsigned int back_offset;	unsigned int back_pitch;	u32 depth_fmt;	unsigned int depth_offset;	unsigned int depth_pitch;	u32 front_pitch_offset;	u32 back_pitch_offset;	u32 depth_pitch_offset;	drm_radeon_depth_clear_t depth_clear;	drm_map_t *sarea;	drm_map_t *fb;	drm_map_t *mmio;	drm_map_t *cp_ring;	drm_map_t *ring_rptr;	drm_map_t *buffers;	drm_map_t *agp_textures;	struct mem_block *agp_heap;	struct mem_block *fb_heap;	/* SW interrupt */   	wait_queue_head_t swi_queue;   	atomic_t swi_emitted;} drm_radeon_private_t;typedef struct drm_radeon_buf_priv {	u32 age;} drm_radeon_buf_priv_t;				/* radeon_cp.c */extern int radeon_cp_init( DRM_IOCTL_ARGS );extern int radeon_cp_start( DRM_IOCTL_ARGS );extern int radeon_cp_stop( DRM_IOCTL_ARGS );extern int radeon_cp_reset( DRM_IOCTL_ARGS );extern int radeon_cp_idle( DRM_IOCTL_ARGS );extern int radeon_engine_reset( DRM_IOCTL_ARGS );extern int radeon_fullscreen( DRM_IOCTL_ARGS );extern int radeon_cp_buffers( DRM_IOCTL_ARGS );extern void radeon_freelist_reset( drm_device_t *dev );extern drm_buf_t *radeon_freelist_get( drm_device_t *dev );extern int radeon_wait_ring( drm_radeon_private_t *dev_priv, int n );extern int radeon_do_cp_idle( drm_radeon_private_t *dev_priv );extern int radeon_do_cleanup_cp( drm_device_t *dev );extern int radeon_do_cleanup_pageflip( drm_device_t *dev );				/* radeon_state.c */extern int radeon_cp_clear( DRM_IOCTL_ARGS );extern int radeon_cp_swap( DRM_IOCTL_ARGS );extern int radeon_cp_vertex( DRM_IOCTL_ARGS );extern int radeon_cp_indices( DRM_IOCTL_ARGS );extern int radeon_cp_texture( DRM_IOCTL_ARGS );extern int radeon_cp_stipple( DRM_IOCTL_ARGS );extern int radeon_cp_indirect( DRM_IOCTL_ARGS );extern int radeon_cp_vertex2( DRM_IOCTL_ARGS );extern int radeon_cp_cmdbuf( DRM_IOCTL_ARGS );extern int radeon_cp_getparam( DRM_IOCTL_ARGS );extern int radeon_cp_flip( DRM_IOCTL_ARGS );extern int radeon_mem_alloc( DRM_IOCTL_ARGS );extern int radeon_mem_free( DRM_IOCTL_ARGS );extern int radeon_mem_init_heap( DRM_IOCTL_ARGS );extern void radeon_mem_takedown( struct mem_block **heap );extern void radeon_mem_release( struct mem_block *heap );				/* radeon_irq.c */extern int radeon_irq_emit( DRM_IOCTL_ARGS );extern int radeon_irq_wait( DRM_IOCTL_ARGS );extern int radeon_emit_and_wait_irq(drm_device_t *dev);extern int radeon_wait_irq(drm_device_t *dev, int swi_nr);extern int radeon_emit_irq(drm_device_t *dev);/* Flags for stats.boxes */#define RADEON_BOX_DMA_IDLE      0x1#define RADEON_BOX_RING_FULL     0x2#define RADEON_BOX_FLIP          0x4#define RADEON_BOX_WAIT_IDLE     0x8#define RADEON_BOX_TEXTURE_LOAD  0x10/* Register definitions, register access macros and drmAddMap constants * for Radeon kernel driver. */#define RADEON_AGP_COMMAND		0x0f60#define RADEON_AUX_SCISSOR_CNTL		0x26f0#	define RADEON_EXCLUSIVE_SCISSOR_0	(1 << 24)#	define RADEON_EXCLUSIVE_SCISSOR_1	(1 << 25)#	define RADEON_EXCLUSIVE_SCISSOR_2	(1 << 26)#	define RADEON_SCISSOR_0_ENABLE		(1 << 28)#	define RADEON_SCISSOR_1_ENABLE		(1 << 29)#	define RADEON_SCISSOR_2_ENABLE		(1 << 30)#define RADEON_BUS_CNTL			0x0030#	define RADEON_BUS_MASTER_DIS		(1 << 6)#define RADEON_CLOCK_CNTL_DATA		0x000c#	define RADEON_PLL_WR_EN			(1 << 7)#define RADEON_CLOCK_CNTL_INDEX		0x0008#define RADEON_CONFIG_APER_SIZE		0x0108#define RADEON_CRTC_OFFSET		0x0224#define RADEON_CRTC_OFFSET_CNTL		0x0228#	define RADEON_CRTC_TILE_EN		(1 << 15)#	define RADEON_CRTC_OFFSET_FLIP_CNTL	(1 << 16)#define RADEON_CRTC2_OFFSET		0x0324#define RADEON_CRTC2_OFFSET_CNTL	0x0328#define RADEON_RB3D_COLORPITCH		0x1c48#define RADEON_DP_GUI_MASTER_CNTL	0x146c#	define RADEON_GMC_SRC_PITCH_OFFSET_CNTL	(1 << 0)#	define RADEON_GMC_DST_PITCH_OFFSET_CNTL	(1 << 1)#	define RADEON_GMC_BRUSH_SOLID_COLOR	(13 << 4)#	define RADEON_GMC_BRUSH_NONE		(15 << 4)#	define RADEON_GMC_DST_16BPP		(4 << 8)#	define RADEON_GMC_DST_24BPP		(5 << 8)#	define RADEON_GMC_DST_32BPP		(6 << 8)#	define RADEON_GMC_DST_DATATYPE_SHIFT	8#	define RADEON_GMC_SRC_DATATYPE_COLOR	(3 << 12)#	define RADEON_DP_SRC_SOURCE_MEMORY	(2 << 24)#	define RADEON_DP_SRC_SOURCE_HOST_DATA	(3 << 24)#	define RADEON_GMC_CLR_CMP_CNTL_DIS	(1 << 28)#	define RADEON_GMC_WR_MSK_DIS		(1 << 30)#	define RADEON_ROP3_S			0x00cc0000#	define RADEON_ROP3_P			0x00f00000#define RADEON_DP_WRITE_MASK		0x16cc#define RADEON_DST_PITCH_OFFSET		0x142c#define RADEON_DST_PITCH_OFFSET_C	0x1c80#	define RADEON_DST_TILE_LINEAR		(0 << 30)#	define RADEON_DST_TILE_MACRO		(1 << 30)#	define RADEON_DST_TILE_MICRO		(2 << 30)#	define RADEON_DST_TILE_BOTH		(3 << 30)#define RADEON_SCRATCH_REG0		0x15e0#define RADEON_SCRATCH_REG1		0x15e4#define RADEON_SCRATCH_REG2		0x15e8#define RADEON_SCRATCH_REG3		0x15ec#define RADEON_SCRATCH_REG4		0x15f0#define RADEON_SCRATCH_REG5		0x15f4#define RADEON_SCRATCH_UMSK		0x0770#define RADEON_SCRATCH_ADDR		0x0774#define GET_SCRATCH( x )	(dev_priv->writeback_works			\				? DRM_READ32( &dev_priv->scratch[(x)] )		\				: RADEON_READ( RADEON_SCRATCH_REG0 + 4*(x) ) )#define RADEON_GEN_INT_CNTL		0x0040#	define RADEON_CRTC_VBLANK_MASK		(1 << 0)#	define RADEON_GUI_IDLE_INT_ENABLE	(1 << 19)#	define RADEON_SW_INT_ENABLE		(1 << 25)#define RADEON_GEN_INT_STATUS		0x0044#	define RADEON_CRTC_VBLANK_STAT		(1 << 0)#	define RADEON_CRTC_VBLANK_STAT_ACK   	(1 << 0)#	define RADEON_GUI_IDLE_INT_TEST_ACK     (1 << 19)#	define RADEON_SW_INT_TEST		(1 << 25)#	define RADEON_SW_INT_TEST_ACK   	(1 << 25)#	define RADEON_SW_INT_FIRE		(1 << 26)#define RADEON_HOST_PATH_CNTL		0x0130#	define RADEON_HDP_SOFT_RESET		(1 << 26)#	define RADEON_HDP_WC_TIMEOUT_MASK	(7 << 28)#	define RADEON_HDP_WC_TIMEOUT_28BCLK	(7 << 28)#define RADEON_ISYNC_CNTL		0x1724#	define RADEON_ISYNC_ANY2D_IDLE3D	(1 << 0)#	define RADEON_ISYNC_ANY3D_IDLE2D	(1 << 1)#	define RADEON_ISYNC_TRIG2D_IDLE3D	(1 << 2)#	define RADEON_ISYNC_TRIG3D_IDLE2D	(1 << 3)#	define RADEON_ISYNC_WAIT_IDLEGUI	(1 << 4)#	define RADEON_ISYNC_CPSCRATCH_IDLEGUI	(1 << 5)#define RADEON_RBBM_GUICNTL		0x172c#	define RADEON_HOST_DATA_SWAP_NONE	(0 << 0)#	define RADEON_HOST_DATA_SWAP_16BIT	(1 << 0)#	define RADEON_HOST_DATA_SWAP_32BIT	(2 << 0)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -