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

📄 radeon_driver.h

📁 ati driver
💻 H
字号:
/*	Copyright (c) 2002, Thomas Kurschel		Part of Radeon kernel driver			Common header file*/#ifndef _RADEON_DRIVER_H#define _RADEON_DRIVER_H#include "../shared/radeon_interface.h"#include "memmgr.h"#include <KernelExport.h>#include <GraphicsDefs.h>// logging helpersextern int debug_level_flow;extern int debug_level_info;extern int debug_level_error;/*#define DEBUG_WAIT_ON_MSG 1000000#define DEBUG_WAIT_ON_ERROR 1000000*/#define DEBUG_MSG_PREFIX "Radeon - "#include "debug_ext.h"#include "log_coll.h"#define MAX_DEVICES	8// size of PCI GART;// the only user is the command processor, which needs 1 MB,// so make sure that GART is large enough#define PCI_GART_SIZE 1024*1024// size of CP ring buffer in dwords#define CP_RING_SIZE 2048// GART info (either PCI or AGP)typedef struct {	// data accessed via GART	struct {		area_id area;			// area of data		size_t size;			// size of buffer		void *ptr;				// CPU pointer to data		area_id unaligned_area;	// unaligned address (see PCI_GART.c)	} buffer;	// GATT info (address translation table)	struct {		area_id area;			// area containing GATT		uint32 *ptr;			// CPU pointer to GATT		uint32 phys;			// physical address of GATT	} GATT;} GART_info;// info about graphics RAMtypedef struct {	int ml;	int MB;	int Trcd;	int Trp;	int Twr;	int CL;	int Tr2w;	int loop_latency;	int Rloop;} ram_info;// ROM informationtypedef struct {	area_id		bios_area;		// only mapped during detection		uint32		phys_address;	// physical address of BIOS	uint32		size;			// size in bytes		// the following is only useful if ROM is mapped during detection,	// but the difference if the offset of hw info	uint8		*bios_ptr;		// begin of entire BIOS	uint8		*rom_ptr;		// begin of ROM containing hw info} rom_info;// timer for VBI emulationtypedef struct {	timer		te;				/* timer entry for add_timer() */	struct device_info	*di;	/* pointer to the owning device */	bigtime_t	when_target;	/* when we're supposed to wake up */} timer_info;// info about one devicetypedef struct device_info {	uint32		is_open;	area_id		shared_area;	shared_info	*si;		area_id		virtual_card_area;	virtual_card *vc;	vuint8		*regs;	radeon_type	asic;	uint8 		num_crtc;	tv_chip_type tv_chip;	bool		is_mobility;	bool		new_pll;	bool		has_vip;	bool		is_igp;	//display_type_e disp_type[2];	fp_info		fp_info;		general_pll_info pll;	ram_info	ram;		char		ram_type[32];	// human-readable name of ram type	uint32		local_mem_size;	rom_info	rom;				GART_info	pci_gart;		// PCI GART	GART_info	agp_gart;		// AGP GART (unsupported)	memory_type_e	nonlocal_map;	// default type of non-local memory;		mem_info	*memmgr[mt_last+1];	// memory managers;								// if there is no AGP; the entries for non_local								// and PCI are the same		// VBI data	uint32      interrupt_count;	uint32		vbi_count[2];	// VBI emulation	int32		shutdown_virtual_irq;	// true, to shutdown virtual interrupts	timer_info  ti_a;           /* a pool of two timer managment buffers */    timer_info  ti_b;    timer_info  *current_timer; /* the timer buffer that's currently in use */        // DMA GUI engine    sem_id		dma_sem;    uint32		dma_desc_max_num;    uint32		dma_desc_handle;    uint32		dma_desc_offset;        // capture engine    spinlock	cap_spinlock;	// synchronization for following capture data   	sem_id		cap_sem;		// semaphore released on capture interrupt	uint32		cap_int_status;	// content of CAP_INT_STATUS during lost capture irq	uint32		cap_counter;	// counter of capture interrupts	bigtime_t	cap_timestamp;	// timestamp of last capture interrupt    	uint32		dac2_cntl;		// original dac2_cntl register content	pci_info	pcii;	char		name[MAX_RADEON_DEVICE_NAME_LENGTH];	char		video_name[MAX_RADEON_DEVICE_NAME_LENGTH];} device_info;// device list and some global datatypedef struct {	uint32		count;	benaphore	kernel;	// every device is exported as a graphics and a video card	char		*device_names[2*MAX_DEVICES+1];	device_info	di[MAX_DEVICES];} radeon_devices;extern pci_module_info *pci_bus;extern radeon_devices *devices;// detect.cbool Radeon_CardDetect( void );void Radeon_ProbeDevices( void );// init.cstatus_t Radeon_FirstOpen( device_info *di );void Radeon_LastClose( device_info *di );status_t Radeon_MapDevice( device_info *di, bool mmio_only );void Radeon_UnmapDevice(device_info *di);// bios.cstatus_t Radeon_MapBIOS( pci_info *pcii, rom_info *ri );void Radeon_UnmapBIOS( rom_info *ri );status_t Radeon_ReadBIOSData( device_info *di );	// PCI_GART.cstatus_t Radeon_InitPCIGART( device_info *di );void Radeon_CleanupPCIGART( device_info *di );// irq.cstatus_t Radeon_SetupIRQ( device_info *di, char *buffer );void Radeon_CleanupIRQ( device_info *di );// agp.cvoid Radeon_Fix_AGP();// mem_controller.cvoid Radeon_InitMemController( device_info *di );// CP_setup.cvoid Radeon_WaitForIdle( device_info *di, bool acquire_lock, bool keep_lock );void Radeon_WaitForFifo( device_info *di, int entries );void Radeon_ResetEngine( device_info *di );status_t Radeon_InitCP( device_info *di );void Radeon_UninitCP( device_info *di );// vip.cbool Radeon_VIPRead( device_info *di, uint channel, uint address, uint32 *data, bool lock );bool Radeon_VIPWrite( device_info *di, uint8 channel, uint address, uint32 data, bool lock );int Radeon_FindVIPDevice( device_info *di, uint32 device_id );// dma.cstatus_t Radeon_InitDMA( device_info *di );status_t Radeon_DMACopy( 	device_info *di, uint32 src, char *target, size_t size, 	bool lock_mem, bool contiguous );	#endif

⌨️ 快捷键说明

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