diff --git a/man/i810.man b/man/i810.man index d1ee2da0..2215c7a4 100644 --- a/man/i810.man +++ b/man/i810.man @@ -129,51 +129,6 @@ other drivers. Disable or enable XVideo support. Default: XVideo is enabled for configurations where it is supported. .TP -.BI "Option \*qMonitorLayout\*q \*q" anystr \*q -Allow different monitor configurations. e.g. \*qCRT,LFP\*q will -configure a CRT on Pipe A and an LFP on Pipe B. Regardless of the -primary heads' pipe it is always configured as \*q,\*q. -Additionally you can add different configurations such as -\*qCRT+DFP,LFP\*q which would put a digital flat panel and a CRT -on pipe A, and a local flat panel on pipe B. -For single pipe configurations you can just specify the monitors types -on Pipe A, such as \*qCRT+DFP\*q which will enable the CRT and DFP -on Pipe A. -Valid monitors are CRT, LFP, DFP, TV, CRT2, LFP2, DFP2, TV2 and NONE. -NOTE: Some configurations of monitor types may fail, this depends on -the Video BIOS and system configuration. -Default: Not configured, and will use the current head's pipe and monitor. -.TP -.BI "Option \*qClone\*q \*q" boolean \*q -Enable Clone mode on pipe B. This will setup the second head as a complete -mirror of the monitor attached to pipe A. -NOTE: Video overlay functions will not work on the second head in this mode. -If you require this, then use the MonitorLayout above and do (as an example) -\*qCRT+DFP,NONE\*q to configure both a CRT and DFP on Pipe A to achieve -local mirroring and disable the use of this option. -Default: Clone mode on pipe B is disabled. -.TP -.BI "Option \*qCloneRefresh\*q \*q" integer \*q -When the Clone option is specified we can drive the second monitor at a -different refresh rate than the primary. -Default: 60Hz. -.TP -.BI "Option \*qCheckLid\*q \*q" boolean \*q -On mobile platforms it's desirable to monitor the lid status and switch -the outputs accordingly when the lid is opened or closed. By default this -option is on, but may incur a very minor performance penalty as we need -to poll a register on the card to check for this activity. It can be -turned off using this option. This only works with the 830M, 852GM and 855GM -systems. -Default: enabled. -.TP -.BI "Option \*qFlipPrimary\*q \*q" boolean \*q -When using a dual pipe system, it may be preferable to switch the primary -screen to the alternate pipe to display on the other monitor connection. -NOTE: Using this option may cause text mode to be restored incorrectly, -and thus should be used with caution. -Default: disabled. -.TP .BI "Option \*qRotate\*q \*q90\*q" Rotate the desktop 90 degrees counterclockwise. Other valid options are 0, 90, 180 and 270 degrees. The RandR extension is used for rotation diff --git a/src/i810_reg.h b/src/i810_reg.h index 33b059d6..68cce930 100644 --- a/src/i810_reg.h +++ b/src/i810_reg.h @@ -401,7 +401,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # define ERR_VERTEX_MAX (1 << 5) /* lpt/cst */ # define ERR_PGTBL_ERROR (1 << 4) # define ERR_DISPLAY_OVERLAY_UNDERRUN (1 << 3) -# define ERR_MAIN_MEMORY_REFRESH (1 << 2) +# define ERR_MAIN_MEMORY_REFRESH (1 << 1) # define ERR_INSTRUCTION_ERROR (1 << 0) diff --git a/src/i830_debug.c b/src/i830_debug.c index 897ab926..e0be0a4a 100644 --- a/src/i830_debug.c +++ b/src/i830_debug.c @@ -462,7 +462,7 @@ void i830DumpRegs (ScrnInfoPtr pScrn) break; default: p2 = 1; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "p2 out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "p2 out of range\n"); break; } switch ((dpll >> 16) & 0xff) { @@ -484,33 +484,39 @@ void i830DumpRegs (ScrnInfoPtr pScrn) p1 = 8; break; default: p1 = 1; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "p1 out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "p1 out of range\n"); break; } switch ((dpll >> 13) & 0x3) { case 0: ref = 96000; break; + case 3: + ref = 100000; + break; default: ref = 0; - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "ref out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, "ref out of range\n"); break; } - phase = (dpll >> 9) & 0xf; - switch (phase) { - case 6: - break; - default: - xf86DrvMsg (pScrn->scrnIndex, X_INFO, - "SDVO phase shift %d out of range -- probobly not " - "an issue.\n", phase); - break; + if (IS_I965G(pI830)) { + phase = (dpll >> 9) & 0xf; + switch (phase) { + case 6: + break; + default: + xf86DrvMsg (pScrn->scrnIndex, X_INFO, + "SDVO phase shift %d out of range -- probobly not " + "an issue.\n", phase); + break; + } } switch ((dpll >> 8) & 1) { case 0: break; default: - xf86DrvMsg (pScrn->scrnIndex, X_ERROR, "fp select out of range\n"); + xf86DrvMsg (pScrn->scrnIndex, X_WARNING, + "fp select out of range\n"); break; } n = ((fp >> 16) & 0x3f); @@ -645,13 +651,18 @@ i830_check_error_state(ScrnInfoPtr pScrn) temp = INREG16(ESR); if (temp != 0) { + Bool vertex_max = !IS_I965G(pI830) && (temp & ERR_VERTEX_MAX); + Bool pgtbl = temp & ERR_PGTBL_ERROR; + Bool underrun = !IS_I965G(pI830) && + (temp & ERR_DISPLAY_OVERLAY_UNDERRUN); + Bool instruction = !IS_I965G(pI830) && (temp & ERR_INSTRUCTION_ERROR); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "ESR is 0x%08lx%s%s%s%s\n", temp, - temp & ERR_VERTEX_MAX ? ", max vertices exceeded" : "", - temp & ERR_PGTBL_ERROR ? ", page table error" : "", - temp & ERR_DISPLAY_OVERLAY_UNDERRUN ? - ", display/overlay underrun" : "", - temp & ERR_INSTRUCTION_ERROR ? ", instruction error" : ""); + vertex_max ? ", max vertices exceeded" : "", + pgtbl ? ", page table error" : "", + underrun ? ", display/overlay underrun" : "", + instruction ? ", instruction error" : ""); errors++; } /* Check first for page table errors */ @@ -665,7 +676,7 @@ i830_check_error_state(ScrnInfoPtr pScrn) } else { temp = INREG(PGTBL_ER); if (temp != 0) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "PGTBL_ER is 0x%08lx" "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n", temp, temp & PGTBL_ERR_HOST_GTT_PTE ? ", host gtt pte" : "", diff --git a/src/i830_driver.c b/src/i830_driver.c index 7c365db3..0f663115 100644 --- a/src/i830_driver.c +++ b/src/i830_driver.c @@ -270,12 +270,7 @@ typedef enum { OPTION_XVIDEO, OPTION_VIDEO_KEY, OPTION_COLOR_KEY, - OPTION_VBE_RESTORE, - OPTION_DISPLAY_INFO, - OPTION_DEVICE_PRESENCE, - OPTION_MONITOR_LAYOUT, OPTION_CHECKDEVICES, - OPTION_FIXEDPIPE, OPTION_LINEARALLOC, OPTION_INTELTEXPOOL, OPTION_INTELMMSIZE @@ -293,9 +288,7 @@ static OptionInfoRec I830Options[] = { {OPTION_XVIDEO, "XVideo", OPTV_BOOLEAN, {0}, TRUE}, {OPTION_COLOR_KEY, "ColorKey", OPTV_INTEGER, {0}, FALSE}, {OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE}, - {OPTION_MONITOR_LAYOUT, "MonitorLayout", OPTV_ANYSTR,{0}, FALSE}, {OPTION_CHECKDEVICES, "CheckDevices",OPTV_BOOLEAN, {0}, FALSE}, - {OPTION_FIXEDPIPE, "FixedPipe", OPTV_ANYSTR, {0}, FALSE}, {OPTION_LINEARALLOC, "LinearAlloc", OPTV_INTEGER, {0}, FALSE}, {OPTION_INTELTEXPOOL,"Legacy3D", OPTV_BOOLEAN, {0}, FALSE}, {OPTION_INTELMMSIZE, "AperTexSize", OPTV_INTEGER, {0}, FALSE}, @@ -3049,8 +3042,8 @@ I830EnterVT(int scrnIndex, int flags) return FALSE; if (i830_check_error_state(pScrn)) { - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, - "Existing errors found in hardware state\n"); + xf86DrvMsg(pScrn->scrnIndex, X_WARNING, + "Existing errors found in hardware state.\n"); } ResetState(pScrn, FALSE);