亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aticonsole.c

?? x.org上有關ati系列顯卡最新驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c,v 1.22 2003/11/13 18:42:47 tsi Exp $ *//* * Copyright 1997 through 2004 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that * the above copyright notice appear in all copies and that both that copyright * notice and this permission notice appear in supporting documentation, and * that the name of Marc Aurele La France not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission.  Marc Aurele La France makes no representations * about the suitability of this software for any purpose.  It is provided * "as-is" without express or implied warranty. * * MARC AURELE LA FRANCE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO * EVENT SHALL MARC AURELE LA FRANCE BE LIABLE FOR ANY SPECIAL, INDIRECT OR * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * * DRI support by: *    Manuel Teira *    Leif Delgass <ldelgass@retinalburn.net> */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "ati.h"#include "atiadapter.h"#include "aticonsole.h"#include "aticrtc.h"#include "atii2c.h"#include "atilock.h"#include "atimach64.h"#include "atimach64io.h"#include "atimode.h"#include "atistruct.h"#include "ativga.h"#include "atividmem.h"#ifdef XF86DRI_DEVEL#include "mach64_common.h"#include "atidri.h"#endif#include "mach64_common.h"#include "xf86.h"#ifdef TV_OUT#include "atichip.h"#include "atiprint.h"#include "atioption.h"#include "vbe.h"static const char *vbeSymbols[] = {    "VBEGetVBEMode",    NULL};#endif /* TV_OUT *//* * ATISaveScreen -- * * This function is a screen saver hook for DIX. */BoolATISaveScreen(    ScreenPtr pScreen,    int       Mode){    ScrnInfoPtr pScreenInfo;    ATIPtr      pATI;    if ((Mode != SCREEN_SAVER_ON) && (Mode != SCREEN_SAVER_CYCLE))        SetTimeSinceLastInputEvent();    if (!pScreen)        return TRUE;    pScreenInfo = xf86Screens[pScreen->myNum];    if (!pScreenInfo->vtSema)        return TRUE;    pATI = ATIPTR(pScreenInfo);    switch (pATI->NewHW.crtc)    {#ifndef AVOID_CPIO        case ATI_CRTC_VGA:            ATIVGASaveScreen(pATI, Mode);            break;#endif /* AVOID_CPIO */        case ATI_CRTC_MACH64:            ATIMach64SaveScreen(pATI, Mode);            break;        default:            break;    }    return TRUE;}/* * ATISetDPMSMode -- * * This function sets the adapter's VESA Display Power Management Signaling * mode. */voidATISetDPMSMode(    ScrnInfoPtr pScreenInfo,    int         DPMSMode,    int         flags){    ATIPtr pATI;    if (!pScreenInfo || !pScreenInfo->vtSema)        return;    pATI = ATIPTR(pScreenInfo);    switch (pATI->Adapter)    {        case ATI_ADAPTER_MACH64:            ATIMach64SetDPMSMode(pScreenInfo, pATI, DPMSMode);            break;        default:#ifndef AVOID_CPIO            /* Assume EGA/VGA */            ATIVGASetDPMSMode(pATI, DPMSMode);            break;        case ATI_ADAPTER_NONE:        case ATI_ADAPTER_8514A:        case ATI_ADAPTER_MACH8:#endif /* AVOID_CPIO */            break;    }}#ifdef TV_OUTstatic voidATIProbeAndSetActiveDisplays(    ScrnInfoPtr pScreenInfo,    ATIPtr      pATI){    vbeInfoPtr pVbe;    Bool tv_attached, crt_attached, lcd_attached;    int disp_request;    ATITVStandard tv_std, tv_std_request;    xf86LoaderRefSymLists(vbeSymbols, NULL);    if (xf86GetVerbosity() > 3) {	xf86ErrorFVerb(4, "\n Before TV-Out queries\n\n");	ATIPrintRegisters(pATI);    }    pATI->tvActive = FALSE;    pVbe = pATI->pVBE;    if (pVbe) {	/* LT Pro, XL, Mobility specific BIOS functions */	if (pATI->Chip == ATI_CHIP_264LTPRO ||	    pATI->Chip == ATI_CHIP_264XL || 	    pATI->Chip == ATI_CHIP_MOBILITY) {    	    /* Get attached display(s) - LTPro, XL, Mobility */	    pVbe->pInt10->num = 0x10;	    pVbe->pInt10->ax = 0xa083;	    pVbe->pInt10->cx = 0x0700; /* ch=0x07 - probe all, 0x01 CRT, 0x02 TV, 0x04 LCD */	    xf86ExecX86int10(pVbe->pInt10);	    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 		       "Attached displays: ax=0x%04x, cx=0x%04x\n",		       pVbe->pInt10->ax, pVbe->pInt10->cx);	    tv_attached = crt_attached = lcd_attached = FALSE;	    if (pVbe->pInt10->ax & 0xff00) {		xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 			   "Failed to detect attached displays\n");	    } else {					if (pVbe->pInt10->cx & 0x3)		{			xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				   "   CRT attached\n");			crt_attached = TRUE;		}		else		    crt_attached = FALSE;		if ((pVbe->pInt10->cx >> 2) & 0x3)		{		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   DFP/LCD attached\n");		    lcd_attached = TRUE;		}		else		    lcd_attached = FALSE;		switch ((pVbe->pInt10->cx >> 4) & 0x3) {		case 0:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   No TV attached\n");		    break;		case 1:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   TV attached (composite connector)\n");		    tv_attached = TRUE;		    break;		case 2:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   TV attached (S-video connector)\n");		    tv_attached = TRUE;		    break;		case 3:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   TV attached (S-video/composite connectors)\n");		    tv_attached = TRUE;		    break;		default:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 			       "Unrecognized return code: 0x%04x\n", 			       pVbe->pInt10->cx);		}	    }	    /* Get active display  - LTPro, XL, Mobility */	    pVbe->pInt10->num = 0x10;	    pVbe->pInt10->ax = 0xa084;	    pVbe->pInt10->bx = 0x0000; /* bh=0x00 get active, bh=0x01 set active */	    xf86ExecX86int10(pVbe->pInt10);	    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 		       "Active displays: ax=0x%04x, bx=0x%04x, cx=0x%04x\n",		       pVbe->pInt10->ax, pVbe->pInt10->bx, pVbe->pInt10->cx);	    if (pVbe->pInt10->ax & 0xff00) {		xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 			   "Failed to detect active display\n");	    } else {		if (pVbe->pInt10->bx & 0x1) 		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 		       			       "   DFP/LCD is active\n");		if (pVbe->pInt10->bx & 0x2) 		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   CRT is active\n");		if (pVbe->pInt10->bx & 0x4) {		    		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "   TV is active\n");		    if (!tv_attached) {			/* tv not connected - disable tv */			disp_request = 0x00;			if (crt_attached)			    disp_request |= 0x02; /* enable CRT */			if (lcd_attached && pATI->OptionPanelDisplay)			    disp_request |= 0x01; /* enable DFP/LCD */			pVbe->pInt10->num = 0x10;			pVbe->pInt10->ax = 0xa084;			pVbe->pInt10->bx = 0x0100; /* bh=0x01 set active */			pVbe->pInt10->cx = disp_request; 			xf86ExecX86int10(pVbe->pInt10);			xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				   "TV not present, disabling: ax=0x%04x, bx=0x%04x, cx=0x%04x\n",				   pVbe->pInt10->ax, pVbe->pInt10->bx, pVbe->pInt10->cx);			if (pVbe->pInt10->ax & 0xff00) {			    xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 				       "Disabling TV failed\n");			}		    } else {			pATI->tvActive = TRUE;		    }		} else if (tv_attached && (pVbe->pInt10->bx & 0x0400)) {		    /* tv connected and available - enable TV */		    disp_request = 0x04;          /* enable TV */#if 0		    /* This works, but CRT image is vertically compressed */		    if (crt_attached)			    disp_request |= 0x02; /* enable CRT */		    /* NOTE: For me, LCD+TV does NOT work */		    /*if (lcd_attached && pATI->OptionPanelDisplay)			    disp_request |= 0x01; * enable DFP/LCD */#endif		    pVbe->pInt10->num = 0x10;		    pVbe->pInt10->ax = 0xa084;		    pVbe->pInt10->bx = 0x0100; /* bh=0x01 set active */		    pVbe->pInt10->cx = disp_request; /* try to activate TV */		    xf86ExecX86int10(pVbe->pInt10);		    		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "Setting TV active: ax=0x%04x, bx=0x%04x, cx=0x%04x\n",			       pVbe->pInt10->ax, pVbe->pInt10->bx, pVbe->pInt10->cx);		    if (pVbe->pInt10->ax & 0xff00) {			xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 				   "Setting TV active failed\n");		    } else {			pATI->tvActive = TRUE;		    }		}	    }	} else { /* pATI->Chip < ATI_CHIP_264LTPRO */	    /* TVOut Hooks - Check for TVOut BIOS/hardware */	    pVbe->pInt10->num = 0x10;	    pVbe->pInt10->ax = 0xa019;	    pVbe->pInt10->cx = 0x0000; /* TVOut BIOS query */	    xf86ExecX86int10(pVbe->pInt10);	    tv_attached = FALSE;	    if (pVbe->pInt10->ax & 0xff00) {		xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 			   "Failed to detect TV-Out BIOS\n");	    } else {		switch (pVbe->pInt10->ax & 0x0003) {		case 3:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "TV-Out BIOS detected and active\n");		    /* TV attached query */		    pVbe->pInt10->num = 0x10;		    pVbe->pInt10->ax = 0xa070;		    pVbe->pInt10->bx = 0x0002; /* Sub-function: return tv attached info */		    xf86ExecX86int10(pVbe->pInt10);		    if (pVbe->pInt10->ax & 0xff00) {			xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 				   "Failed to detect if TV is attached\n");		    } else {			switch (pVbe->pInt10->cx & 0x0003) {			case 3:			    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				       "TV attached to composite and S-video connectors\n");			    tv_attached = TRUE;			    break;			case 2:			    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				       "TV attached to S-video connector\n");			    tv_attached = TRUE;			    break;			case 1:			    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				       "TV attached to composite connector\n");			    tv_attached = TRUE;			    break;			default:			    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 				       "TV is not attached\n");			}		    }		    break;		case 1:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "TV-Out BIOS service is not available due to" 			       "a system BIOS error or TV-Out hardware not being installed\n");		    break;		default:		    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			       "No TV-Out BIOS or hardware detected\n");		}	    }	}	/* Return TV-Out configuration 	 * see Programmer's Guide under "TV Out Specific Functions"	 * It's not clear exactly which adapters support these	 */	pVbe->pInt10->num = 0x10;	pVbe->pInt10->ax = 0xa070;	pVbe->pInt10->bx = 0x00;	xf86ExecX86int10(pVbe->pInt10);	xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 		   "TV-Out query: ax=0x%04x, bx=0x%04x, cx=0x%04x, dx=0x%04x\n",		   pVbe->pInt10->ax, pVbe->pInt10->bx, pVbe->pInt10->cx, pVbe->pInt10->dx);	if (pVbe->pInt10->ax & 0xff00) {	    xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING, 		       "Failed to detect TV-Out configuration.\n");	} else if (pVbe->pInt10->bx == 0) {	    if (pVbe->pInt10->dx == 0) {		xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			   "TV-Out is not detected.\n");	    } else {		xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 			   "TV-Out is detected but not supported.\n");	    }	} else if ((pVbe->pInt10->cx & 0xff) == 0) {	    xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO, 		       "TV-Out is currently disabled.\n");	    if (tv_attached && pATI->Chip < ATI_CHIP_264LTPRO) {		/* Try to enable TV-Out */		pVbe->pInt10->num = 0x10;		pVbe->pInt10->ax = 0xa070;		pVbe->pInt10->bx = 0x0001; /* Sub-function: Select TV Out */		/* cl=0x001 enable, cl=0x000 disable, 		 * cl=0x080 disable with feature connector bit preserved 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久第一福利 | 日韩欧美黄色影院| 3d成人动漫网站| 精品盗摄一区二区三区| 国产欧美日韩在线| 香蕉成人伊视频在线观看| 亚洲欧洲国产日韩| 五月综合激情婷婷六月色窝| 精品亚洲成a人| 欧美日韩精品欧美日韩精品 | 欧美一区日韩一区| 亚洲日本在线天堂| 国产成人精品午夜视频免费 | 在线成人av影院| 亚洲欧美激情小说另类| 国产乱理伦片在线观看夜一区| 欧美久久高跟鞋激| 亚洲一区二区三区美女| 一本色道久久综合亚洲91| 久久影视一区二区| 国产一区二区三区在线观看免费 | 在线观看亚洲专区| 成人欧美一区二区三区黑人麻豆 | 日韩美一区二区三区| 日日夜夜精品视频天天综合网| 色婷婷亚洲婷婷| 1024国产精品| 99国产精品国产精品久久| 国产欧美精品一区二区三区四区 | 久久99这里只有精品| 欧美偷拍一区二区| 亚洲一区二区精品久久av| 91国产免费观看| 亚洲一区电影777| 欧美精品在线视频| 青青草国产成人av片免费| 欧美二区三区91| 免费不卡在线观看| 亚洲精品一区二区三区在线观看| 青青青爽久久午夜综合久久午夜| 日韩视频中午一区| 激情欧美日韩一区二区| 久久蜜臀精品av| 成人av电影在线网| 亚洲图片激情小说| 欧美日韩中文字幕一区二区| 日韩中文字幕1| 日韩欧美的一区| 国产福利一区在线| 国产精品成人一区二区艾草| 91成人免费网站| 日本欧美在线观看| 久久亚洲精精品中文字幕早川悠里| 国产成人免费视频精品含羞草妖精| 国产精品久久久久影院亚瑟| 在线观看日韩国产| 蜜桃久久久久久久| 国产精品乱码人人做人人爱 | 欧美精品一区二区三区蜜桃视频 | 丁香一区二区三区| 亚洲视频资源在线| 51精品国自产在线| 丰满放荡岳乱妇91ww| 亚洲自拍偷拍麻豆| 久久综合九色综合久久久精品综合| 高清不卡一二三区| 亚洲成a人v欧美综合天堂| 日韩一区二区不卡| 不卡视频一二三四| 日韩av网站免费在线| 国产精品午夜免费| 欧美精品日韩综合在线| 粉嫩嫩av羞羞动漫久久久 | 国产精品美女久久久久久2018| 欧美在线观看18| 国产精品一区二区无线| 一区二区三区精品久久久| 精品日韩99亚洲| 精品视频免费在线| www.色综合.com| 麻豆国产精品视频| 亚洲国产综合91精品麻豆| 26uuu国产日韩综合| 欧美亚洲免费在线一区| 成人性生交大片免费看在线播放| 日韩精品欧美成人高清一区二区| 国产精品久久99| 久久久精品国产免大香伊| 欧美美女bb生活片| 色综合激情久久| 成人av在线观| 国产一区二区精品久久| 蜜桃在线一区二区三区| 亚洲午夜视频在线| 日韩伦理电影网| 国产精品麻豆一区二区| 久久久久久久久伊人| 日韩视频123| 欧美日韩色综合| 在线观看视频一区| 日本道精品一区二区三区| 成人av在线影院| 成人午夜视频网站| 国产福利一区在线观看| 国产一区二区精品久久| 国内精品免费**视频| 久久超碰97中文字幕| 日本va欧美va精品发布| 水野朝阳av一区二区三区| 亚洲国产综合人成综合网站| 亚洲在线视频免费观看| 一级做a爱片久久| 一区二区三区日韩精品视频| 亚洲乱码精品一二三四区日韩在线 | 三级精品在线观看| 亚洲国产视频a| 亚洲成人免费看| 日韩成人一级片| 日韩av一区二区三区| 六月婷婷色综合| 国产一区二区在线观看免费 | 久久久国产精品麻豆| 精品国产1区二区| 久久亚洲春色中文字幕久久久| 久久综合成人精品亚洲另类欧美 | 高清国产午夜精品久久久久久| 国产精品亚洲午夜一区二区三区| 国产在线国偷精品产拍免费yy| 韩国女主播成人在线观看| 国产一区二区影院| 成人美女在线观看| 欧洲日韩一区二区三区| 91麻豆精品国产91久久久久久久久 | 国产精品一区二区久久不卡 | 久久综合久色欧美综合狠狠| 久久先锋影音av鲁色资源| 国产精品少妇自拍| 中文字幕在线一区免费| 亚洲综合色噜噜狠狠| 免费在线观看不卡| 国产精品一线二线三线| 色综合久久天天综合网| 日韩一区二区三区视频| 日本一区二区三区久久久久久久久不 | 26uuu国产在线精品一区二区| 国产日韩三级在线| 亚洲永久精品大片| 经典三级一区二区| 色综合欧美在线| 日韩女同互慰一区二区| 中文字幕精品—区二区四季| 午夜精品久久久久久久久久久 | 久久精品国产亚洲一区二区三区| 国产成人99久久亚洲综合精品| 色一区在线观看| 久久麻豆一区二区| 亚洲成av人综合在线观看| 国产激情91久久精品导航| 欧美性大战久久久久久久蜜臀| 久久毛片高清国产| 婷婷综合五月天| 白白色亚洲国产精品| 欧美v亚洲v综合ⅴ国产v| 亚洲男人天堂av| 国产成人免费网站| 欧美一区二区三区日韩视频| 亚洲欧美另类小说| 国产在线精品国自产拍免费| 欧美日韩国产中文| 亚洲嫩草精品久久| 成人一道本在线| 久久综合色天天久久综合图片| 亚洲成国产人片在线观看| www.色精品| 欧美经典一区二区| 久草热8精品视频在线观看| 欧美日韩国产精品成人| 国产精品不卡在线观看| 国产激情一区二区三区桃花岛亚洲| 欧美夫妻性生活| 午夜在线成人av| 在线观看视频欧美| 亚洲精品写真福利| 99国产精品久久| 中文字幕制服丝袜一区二区三区 | 九色|91porny| 欧美一区二区播放| 日本v片在线高清不卡在线观看| 91久久一区二区| 亚洲精品老司机| 91久久国产最好的精华液| 亚洲视频一区二区在线| 99精品国产99久久久久久白柏| 欧美国产日韩在线观看| 国产经典欧美精品| 国产欧美精品一区| 成人97人人超碰人人99| 国产精品人妖ts系列视频| 成人视屏免费看| 亚洲日本韩国一区|