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

📄 radeon.cpp

📁 ati driver
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	dc.lock_mem = lock_mem;	dc.contiguous = contiguous;	return ioctl( fHandle, RADEON_DMACOPY, &dc );}status_t CRadeon::GetDeviceInformation(radeon_get_private_data & info){	info.magic = RADEON_PRIVATE_DATA_MAGIC;				return ioctl( fHandle, RADEON_GET_PRIVATE_DATA, &info, sizeof( info ));}status_t CRadeon::CloneArea(const char * name, area_id src_area, 	area_id *cloned_area, void ** map){	int res = clone_area( name, map, B_ANY_ADDRESS,		B_READ_AREA | B_WRITE_AREA, src_area );			if( res < 0 ) {		return res;	} else {		*cloned_area = res;		return B_OK;	}}status_t CRadeon::WaitInterrupt(int * mask, int * sequence, bigtime_t * time, bigtime_t timeout){	radeon_wait_for_cap_irq wvc;	status_t status;		wvc.magic = RADEON_PRIVATE_DATA_MAGIC;	wvc.timeout = timeout;		status = ioctl( fHandle, RADEON_WAIT_FOR_CAP_IRQ, &wvc );		if( status == B_OK ) {		*mask = wvc.int_status;		*sequence = wvc.counter;		*time = wvc.timestamp;	}		return status;}#if 0void CRadeon::PrintToStream(){	// ATI ROM Signature	if (ROM(0) == 0x55 && ROM(1) == 0xAA) {		for (int offset = 0; offset < 128 - 9; offset++) {			if (ROM(offset + 0) == '7' &&				ROM(offset + 1) == '6' &&				ROM(offset + 2) == '1' &&				ROM(offset + 3) == '2' &&				ROM(offset + 4) == '9' &&				ROM(offset + 5) == '5' &&				ROM(offset + 6) == '5' &&				ROM(offset + 7) == '2' &&				ROM(offset + 8) == '0')				break;		}	}	// Video BIOS	unsigned char *fVideoBIOS = fROM + fROM[0x48] + (fROM[0x49] << 8);		PRINT((		"----------------------------------------------------------------------\n"        "ATI RADEON VIDEO BIOS\n"        "\n"        "BIOS Revision: %03d.%03d.%03d%03d.%s\n"        "PCI Bus/Device/Function Code: 0x%04x\n"        "BIOS Runtime Segment Address: 0x%04x\n"        "I/O Base Address: 0x%04x\n"        "Subsystem Vendor ID: 0x%04x\n"        "Subsystem ID: 0x%04x\n"        "Post Vendor ID: 0x%04x\n"        "\n",        // OEM Revision (ID1.ID2.REVISION.CONFIG_FILE)        fVideoBIOS[2], fVideoBIOS[3],        fVideoBIOS[4], fVideoBIOS[5],        fROM + fVideoBIOS[0x10] + (fVideoBIOS[0x11] << 8),        // PCI bus, device, function code        fVideoBIOS[0x16] + (fVideoBIOS[0x17] << 8),        // ROM BIOS segment        fVideoBIOS[0x18] + (fVideoBIOS[0x19] << 8),        // I/O base address        fVideoBIOS[0x1a] + (fVideoBIOS[0x1b] << 8),        // Subsystem Vendor ID, Subsystem ID, Post Vendor ID        fVideoBIOS[0x1c] + (fVideoBIOS[0x1d] << 8),        fVideoBIOS[0x1e] + (fVideoBIOS[0x1f] << 8),        fVideoBIOS[0x20] + (fVideoBIOS[0x21] << 8)    ));	// PLL Information	unsigned char *fPLL = fROM + fVideoBIOS[0x30] + (fVideoBIOS[0x31] << 8);		PRINT((		"----------------------------------------------------------------------\n"        "ATI RADEON PLL INFORMATION TABLE\n"        "\n"        "External Clock: %g MHz\n"        "Reference Frequency: %g MHz\n"        "Reference Divisor: %d\n"        "Min PLL Frequency: %g MHz\n"        "Max PLL Frequency: %g MHz\n"        "\n",		(fPLL[0x08] + (fPLL[0x09] << 8)) / 1000.0,		(fPLL[0x0e] + (fPLL[0x0f] << 8)) / 100.0,		fPLL[0x10] + (fPLL[0x11] << 8),		(fPLL[0x12] + (fPLL[0x13] << 8) + (fPLL[0x14] << 16) + (fPLL[0x15] << 24)) / 1000.0,		(fPLL[0x12] + (fPLL[0x16] << 8) + (fPLL[0x17] << 16) + (fPLL[0x18] << 24)) / 1000.0));	// TV Table	unsigned char * fTVTable = fROM + fVideoBIOS[0x32] + (fVideoBIOS[0x33] << 8);	PRINT((		"----------------------------------------------------------------------\n"        "ATI RADEON TV INFORMATION TABLE\n"        "\n"        "Table Signature: %c%c%c\n"        "Table Version: %d\n"        "Table Size: %d bytes\n"        "\n"        "TVOut Support: %s\n"        "BIOS built-in TV standard: %s\n"        "TVOut information: %s, %s MHz\n"        "\n"        "Run time supported TV standard:%s%s%s%s%s%s\n"        "Initialization time supported TV standard:%s%s%s%s%s%s\n"        "\n",        // Table signature, version and size        fTVTable[0x00],fTVTable[0x01], fTVTable[0x02],        fTVTable[0x03],        fTVTable[0x04] + ((int) fTVTable[0x05] << 8),        // TVOut support        fTVTable[0x06] == 'N' ? "TVOut chip not found" : "TVOut chip on board",        // BIOS built-in initialization TV standard        (fTVTable[0x07] & 0x0f) == 0x01 ? "NTSC" :        (fTVTable[0x07] & 0x0f) == 0x02 ? "PAL" :        (fTVTable[0x07] & 0x0f) == 0x03 ? "PAL-M" :        (fTVTable[0x07] & 0x0f) == 0x04 ? "PAL-60" :        (fTVTable[0x07] & 0x0f) == 0x05 ? "NTSC-J" :        (fTVTable[0x07] & 0x0f) == 0x06 ? "SCART-PAL" : "Reserved",        // TV Out information        (fTVTable[0x09] & 0x03) == 0x00 ? "Invalid" :        (fTVTable[0x09] & 0x03) == 0x01 ? "TV off, CRT on" :        (fTVTable[0x09] & 0x03) == 0x02 ? "TV on, CRT off" : "TV on, CRT on",        (fTVTable[0x09] & 0x0c) == 0x00 ? "29.498928713" :        (fTVTable[0x09] & 0x0c) == 0x04 ? "28.63636" :        (fTVTable[0x09] & 0x0c) == 0x08 ? "14.31818" : "27.0",        // Runtime supported TV standard        (fTVTable[0x0a] & 0x01) != 0 ? " NTSC" : "",        (fTVTable[0x0a] & 0x02) != 0 ? " PAL" : "",        (fTVTable[0x0a] & 0x04) != 0 ? " PAL-M" : "",        (fTVTable[0x0a] & 0x08) != 0 ? " PAL-60" : "",        (fTVTable[0x0a] & 0x10) != 0 ? " NTSC-J" : "",        (fTVTable[0x0a] & 0x20) != 0 ? " SCART-PAL" : "",        // Initialization time supported TV standard        (fTVTable[0x0b] & 0x01) != 0 ? " NTSC" : "",        (fTVTable[0x0b] & 0x02) != 0 ? " PAL" : "",        (fTVTable[0x0b] & 0x04) != 0 ? " PAL-M" : "",        (fTVTable[0x0b] & 0x08) != 0 ? " PAL-60" : "",        (fTVTable[0x0b] & 0x10) != 0 ? " NTSC-J" : "",        (fTVTable[0x0b] & 0x20) != 0 ? " SCART-PAL" : ""    ));    // Hardware Configuration Table    unsigned char * fHWTable = fROM + fVideoBIOS[0x36] + (fVideoBIOS[0x37] << 8);	PRINT((		"----------------------------------------------------------------------\n"        "ATI RADEON HARDWARE CONFIGURATION TABLE\n"        "\n"        "Table Signature: %c%c%c%c\n"        "Table Revision: %d\n"        "Table Size: %d\n"        "\n"        "I2C Type: %s\n"        "TVOut Support: %s\n"        "Video Out Crystal: %s\n"        "ImpactTV Data Port: %s\n"        "\n"        "Video Port Capability:\n"        "   AMC/DVS0 Video Port: %s\n"        "   Zoom Video Port: %s\n"        "   AMC/DVS1 Video Port: %s\n"        "   VIP 16-bit Video Port: %s\n"        "\n"        "Host Port Configuration: %s\n"        "\n",        // Table Signature, Revision, Size        fHWTable[0x00], fHWTable[0x01], fHWTable[0x02], fHWTable[0x03],        fHWTable[0x04], fHWTable[0x05],        // I2C type        (fHWTable[0x06] & 0x0f) == 0x00 ? "Normal GP I/O (data=GP_IO2, clock=GP_IO1)" :        (fHWTable[0x06] & 0x0f) == 0x01 ? "ImpacTV GP I/O" :        (fHWTable[0x06] & 0x0f) == 0x02 ? "Dedicated I2C Pin" :        (fHWTable[0x06] & 0x0f) == 0x03 ? "GP I/O (data=GP_IO12, clock=GP_IO13)" :        (fHWTable[0x06] & 0x0f) == 0x04 ? "GP I/O (data=GPIO12, clock=GPIO10)" :        (fHWTable[0x06] & 0x0f) == 0x05 ? "RAGE THEATER I2C Master" :        (fHWTable[0x06] & 0x0f) == 0x06 ? "Rage128 MPP2 Pin" :        (fHWTable[0x06] & 0x0f) == 0x0f ? "No I2C Configuration" : "Reserved",        // TVOut support        (fHWTable[0x07] & 0x0f) == 0x00 ? "No TVOut supported" :        (fHWTable[0x07] & 0x0f) == 0x01 ? "ImpactTV1 supported" :        (fHWTable[0x07] & 0x0f) == 0x02 ? "ImpactTV2 supported" :        (fHWTable[0x07] & 0x0f) == 0x03 ? "Improved ImpactTV2 supported" :        (fHWTable[0x07] & 0x0f) == 0x04 ? "RAGE THEATER supported" : "Reserved",        // Video Out Crystal        (fHWTable[0x07] & 0x70) == 0x00 ? "TVOut not installed" :        (fHWTable[0x07] & 0x70) == 0x10 ? "28.63636 MHz" :        (fHWTable[0x07] & 0x70) == 0x20 ? "29.49892713 MHz" :        (fHWTable[0x07] & 0x70) == 0x30 ? "27.0 MHz" :        (fHWTable[0x07] & 0x70) == 0x40 ? "14.31818 MHz" : "Reserved",        // ImpactTV data port        (fHWTable[0x07] & 0x80) == 0x00 ? "MPP1" : "MPP2",        // Video Port Capability        (fHWTable[0x08] & 0x01) == 0x00 ? "Not Supported" : "Supported",        (fHWTable[0x08] & 0x02) == 0x00 ? "Not Supported" : "Supported",        (fHWTable[0x08] & 0x04) == 0x00 ? "Not Supported" : "Supported",        (fHWTable[0x08] & 0x08) == 0x00 ? "Not Supported" : "Supported",        // Host Port Configuration        (fHWTable[0x09] & 0x0f) == 0x00 ? "No Host Port" :        (fHWTable[0x09] & 0x0f) == 0x01 ? "MPP Host Port" :        (fHWTable[0x09] & 0x0f) == 0x02 ? "2 bit VIP Host Port" :        (fHWTable[0x09] & 0x0f) == 0x03 ? "4 bit VIP Host Port" :        (fHWTable[0x09] & 0x0f) == 0x04 ? "8 bit VIP Host Port" : "Reserved"    ));	// Multimedia Table	unsigned char * fMMTable = fROM + fVideoBIOS[0x38] + (fVideoBIOS[0x39] << 8);    PRINT((    	"----------------------------------------------------------------------\n"        "ATI RADEON MULTIMEDIA TABLE\n"        "\n"        "Table Revision: %d\n"        "Table Size: %d bytes\n"        "\n"        "Tuner Chip: %s\n"        "Tuner Input: %s\n"        "Tuner Voltage Regulator: %s\n"        "\n"        "Audio Chip: %s\n"        "FM Audio Decoder: %s\n"        "Audio Scrambling: %s\n"        "\n"        "Product Type: %s, Revision %d\n"        "Product ID: %s\n"        "\n"        "I2S Input Configuration: %s\n"        "I2S Output Configuration: %s\n"        "I2S Audio Chip: %s\n"        "S/PDIF Output Configuration: %s\n"        "\n"        "Video Decoder: %s\n"        "Video Standard/Crystal: %s\n"        "Video Decoder Host Config: %s\n"        "Hardware Teletext: %s\n"        "\n"        "Video Input:\n"        "    0: %s, %s (ID %d)\n"        "    1: %s, %s (ID %d)\n"        "    2: %s, %s (ID %d)\n"        "    3: %s, %s (ID %d)\n"        "    4: %s, %s (ID %d)\n"        "\n",        /* Hardware Table */        fMMTable[-2], fMMTable[-1],        /* Tuner Type */        (fMMTable[0] & 0x1f) == 0x00 ? "No Tuner" :        (fMMTable[0] & 0x1f) == 0x01 ? "Philips FI1236 MK1 NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x02 ? "Philips FI1236 MK2 NTSC M/N Japan" :        (fMMTable[0] & 0x1f) == 0x03 ? "Philips FI1216 MK2 PAL B/G" :        (fMMTable[0] & 0x1f) == 0x04 ? "Philips FI1246 MK2 PAL I" :        (fMMTable[0] & 0x1f) == 0x05 ? "Philips FI1216 MF MK2 PAL B/G, SECAM L/L'" :        (fMMTable[0] & 0x1f) == 0x06 ? "Philips FI1236 MK2 NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x07 ? "Philips FI1256 MK2 SECAM D/K" :        (fMMTable[0] & 0x1f) == 0x08 ? "Philips FM1236 MK2 NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x09 ? "Philips FI1216 MK2 PAL B/G - External Tuner POD" :        (fMMTable[0] & 0x1f) == 0x0a ? "Philips FI1246 MK2 PAL I - External Tuner POD" :        (fMMTable[0] & 0x1f) == 0x0b ? "Philips FI1216 MF MK2 PAL B/G, SECAM L/L' - External Tuner POD" :        (fMMTable[0] & 0x1f) == 0x0c ? "Philips FI1236 MK2 NTSC M/N North America - External Tuner POD" :        (fMMTable[0] & 0x1f) == 0x0d ? "Temic FN5AL RF3X7595 PAL I/B/G/DK & SECAM DK" :        (fMMTable[0] & 0x1f) == 0x10 ? "Alps TSBH5 NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x11 ? "Alps TSC?? NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x12 ? "Alps TSCH5 NTSC M/N North America" :        (fMMTable[0] & 0x1f) == 0x1f ? "Unknown Tuner Type" : "Reserved",        /* Video Input for Tuner */        (fMMTable[0] & 0xe0) == 0x00 ? "Video Input 0" :        (fMMTable[0] & 0xe0) == 0x20 ? "Video Input 1" :        (fMMTable[0] & 0xe0) == 0x40 ? "Video Input 2" :        (fMMTable[0] & 0xe0) == 0x60 ? "Video Input 3" :        (fMMTable[0] & 0xe0) == 0x80 ? "Video Input 4" : "Reserved",        /* Tuner Voltage */        (fMMTable[3] & 0x03) == 0x00 ? "No Tuner Power down feature" :        (fMMTable[3] & 0x03) == 0x01 ? "Tuner Power down feature" : "Reserved",        /* Audio Chip Type */        (fMMTable[1] & 0x0f) == 0x00 ? "Philips TEA5582 NTSC Stereo, no dbx, no volume" :        (fMMTable[1] & 0x0f) == 0x01 ? "Mono with audio mux" :        (fMMTable[1] & 0x0f) == 0x02 ? "Philips TDA9850 NTSC N.A. Stereo, dbx, mux, no volume" :        (fMMTable[1] & 0x0f) == 0x03 ? "Sony CXA2020S Japan NTSC Stereo, mux, no volume" :        (fMMTable[1] & 0x0f) == 0x04 ? "ITT MSP3410D Europe Stereo, volume, internal mux" :        (fMMTable[1] & 0x0f) == 0x05 ? "Crystal CS4236B" :        (fMMTable[1] & 0x0f) == 0x06 ? "Philips TDA9851 NTSC Stereo, volume, no dbx, no mux" :        (fMMTable[1] & 0x0f) == 0x07 ? "ITT MSP3415 (Europe)" :        (fMMTable[1] & 0x0f) == 0x08 ? "ITT MSP3430 (N.A.)" :        (fMMTable[1] & 0x0f) == 0x0f ? "No Audio Chip Installed" : "Reserved",        /* FM Audio Decoder */        (fMMTable[3] & 0x30) == 0x00 ? "No FM Audio Decoder" :        (fMMTable[3] & 0x30) == 0x10 ? "FM Audio Decoder (Rohm BA1332F)" : "Reserved",        /* Audio Scrambling */        (fMMTable[3] & 0x80) == 0x00 ? "Not Supported" : "Supported",        /* Product Type */        (fMMTable[1] & 0x10) == 0x00 ? "OEM Product" : "ATI Product",        /* OEM Revision */        (fMMTable[1] & 0xe0) >> 5,        /* Product ID */        (fMMTable[1] & 0x10) == 0x00 ? "<OEM ID>" :        (            fMMTable[2] == 0x00 ? "ATI Prototype Board" :            fMMTable[2] == 0x01 ? "ATI All in Wonder" :            fMMTable[2] == 0x02 ? "ATI All in Wonder Pro, no MPEG/DVD decoder" :            fMMTable[2] == 0x03 ? "ATI All in Wonder Pro, CD11 or similar MPEG/DVD decoder on MPP" :            fMMTable[2] == 0x04 ? "ATI All in Wonder Plus" :            fMMTable[2] == 0x05 ? "ATI Kitchener Board" :            fMMTable[2] == 0x06 ? "ATI Toronto Board (analog audio)" :            fMMTable[2] == 0x07 ? "ATI TV-Wonder" :            fMMTable[2] == 0x08 ? "ATI Victoria Board (Rage XL plus RAGE THEATER)" : "Reserved"        ),        /* I2S Input/Output Configuration */        (fMMTable[4] & 0x01) == 0x00 ? "Not Supported" : "Supported",        (fMMTable[4] & 0x02) == 0x00 ? "Not Supported" : "Supported",        /* I2S Audio Chip */        (fMMTable[4] & 0x1c) == 0x00 ? "TDA1309_32Strap" :        (fMMTable[4] & 0x1c) == 0x04 ? "TDA1309_64Strap" :        (fMMTable[4] & 0x1c) == 0x08 ? "ITT MSP3430" :        (fMMTable[4] & 0x1c) == 0x0c ? "ITT MSP3415" : "Reserved",        /* S/PDIF Output Config */        (fMMTable[4] & 0x20) == 0x00 ? "Not Supported" : "Supported",        /* Video Decoder Type */        (fMMTable[5] & 0x0f) == 0x00 ? "No Video Decoder" :        (fMMTable[5] & 0x0f) == 0x01 ? "Bt819" :        (fMMTable[5] & 0x0f) == 0x02 ? "Bt829" :        (fMMTable[5] & 0x0f) == 0x03 ? "Bt829A" :        (fMMTable[5] & 0x0f) == 0x04 ? "Philips SA7111" :        (fMMTable[5] & 0x0f) == 0x05 ? "Philips SA7112 or SA7112A" :        (fMMTable[5] & 0x0f) == 0x06 ? "RAGE THEATER" : "Reserved",        /* Video-In Standard/Crystal */        (fMMTable[5] & 0xf0) == 0x00 ? "NTSC and PAL Crystals installed" :        (fMMTable[5] & 0xf0) == 0x10 ? "NTSC Crystal only" :        (fMMTable[5] & 0xf0) == 0x20 ? "PAL Crystal only" :        (fMMTable[5] & 0xf0) == 0x30 ? "NTSC, PAL, SECAM Ssingle crystal for Bt829 and Bt879" :        (fMMTable[5] & 0xf0) == 0x40 ? "28.63636 MHz Crystal" :        (fMMTable[5] & 0xf0) == 0x50 ? "29.49892713 MHz Crystal" :        (fMMTable[5] & 0xf0) == 0x60 ? "27.0 MHz Crystal" :        (fMMTable[5] & 0xf0) == 0x70 ? "14.31818 MHz Crystal" : "Reserved",        /* Video Decoder Host Config */        (fMMTable[6] & 0x07) == 0x00 ? "I2C Device" :        (fMMTable[6] & 0x07) == 0x01 ? "MPP Device" :        (fMMTable[6] & 0x07) == 0x02 ? "2 bits VIP Device" :        (fMMTable[6] & 0x07) == 0x03 ? "4 bits VIP Device" :        (fMMTable[6] & 0x07) == 0x04 ? "8 bits VIP Device" :        (fMMTable[6] & 0x07) == 0x07 ? "PCI Device" : "Reserved",        /* Hardware Teletext */        (fMMTable[3] & 0x0c) == 0x00 ? "No Hardware Teletext" :        (fMMTable[3] & 0x0c) == 0x04 ? "Philips SAA5281" : "Reserved",        /* Video Input 0 */        (fMMTable[7] & 0x03) == 0x00 ? "Unused/Invalid" :        (fMMTable[7] & 0x03) == 0x01 ? "Tuner Input" :        (fMMTable[7] & 0x03) == 0x02 ? "Composite Input" : "S-Video Input",        (fMMTable[7] & 0x04) == 0x00 ? "Front Connector" : "Rear Connector",        (fMMTable[7] & 0x38) >> 3,        /* Video Input 1 */        (fMMTable[8] & 0x03) == 0x00 ? "Unused/Invalid" :        (fMMTable[8] & 0x03) == 0x01 ? "Tuner Input" :        (fMMTable[8] & 0x03) == 0x02 ? "Composite Input" : "S-Video Input",        (fMMTable[8] & 0x04) == 0x00 ? "Front Connector" : "Rear Connector",        (fMMTable[8] & 0x38) >> 3,        /* Video Input 2 */        (fMMTable[9] & 0x03) == 0x00 ? "Unused/Invalid" :        (fMMTable[9] & 0x03) == 0x01 ? "Tuner Input" :        (fMMTable[9] & 0x03) == 0x02 ? "Composite Input" : "S-Video Input",        (fMMTable[9] & 0x04) == 0x00 ? "Front Connector" : "Rear Connector",        (fMMTable[9] & 0x38) >> 3,        /* Video Input 3 */        (fMMTable[10] & 0x03) == 0x00 ? "Unused/Invalid" :        (fMMTable[10] & 0x03) == 0x01 ? "Tuner Input" :        (fMMTable[10] & 0x03) == 0x02 ? "Composite Input" : "S-Video Input",        (fMMTable[10] & 0x04) == 0x00 ? "Front Connector" : "Rear Connector",        (fMMTable[10] & 0x38) >> 3,        /* Video Input 4 */        (fMMTable[11] & 0x03) == 0x00 ? "Unused/Invalid" :        (fMMTable[11] & 0x03) == 0x01 ? "Tuner Input" :        (fMMTable[11] & 0x03) == 0x02 ? "Composite Input" : "S-Video Input",        (fMMTable[11] & 0x04) == 0x00 ? "Front Connector" : "Rear Connector",        (fMMTable[11] & 0x38) >> 3    ));}#endif

⌨️ 快捷键说明

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