Merge branch 'master' into drm-gem

This commit is contained in:
Eric Anholt 2008-06-10 11:32:49 -07:00
commit d0fda9d24c
4 changed files with 19 additions and 6 deletions

View File

@ -655,6 +655,7 @@ typedef struct _I830Rec {
uint32_t saveRENCLK_GATE_D2;
uint32_t saveDSPCLK_GATE_D;
uint32_t saveRAMCLK_GATE_D;
uint32_t savePWRCTXA;
enum last_3d *last_3d;

View File

@ -2099,6 +2099,9 @@ SaveHWState(ScrnInfoPtr pScrn)
pI830->saveRAMCLK_GATE_D = INREG(RAMCLK_GATE_D);
}
if (IS_I965GM(pI830) || IS_IGD_GM(pI830))
pI830->savePWRCTXA = INREG(PWRCTXA);
if (IS_MOBILE(pI830) && !IS_I830(pI830))
pI830->saveLVDS = INREG(LVDS);
pI830->savePFIT_CONTROL = INREG(PFIT_CONTROL);
@ -2165,6 +2168,10 @@ RestoreHWState(ScrnInfoPtr pScrn)
OUTREG(RENCLK_GATE_D2, pI830->saveRENCLK_GATE_D2);
OUTREG(RAMCLK_GATE_D, pI830->saveRAMCLK_GATE_D);
}
if (IS_I965GM(pI830) || IS_IGD_GM(pI830))
OUTREG(PWRCTXA, pI830->savePWRCTXA);
/*
* Pipe regs
* To restore the saved state, we first need to program the PLL regs,
@ -2896,9 +2903,6 @@ I830ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
return FALSE;
}
if (pI830->power_context)
OUTREG(PWRCTXA, pI830->power_context->offset | PWRCTX_EN);
I830UnmapMMIO(pScrn);
i830_fixup_mtrrs(pScrn);
@ -3370,6 +3374,9 @@ I830EnterVT(int scrnIndex, int flags)
i830_init_clock_gating(pScrn);
if (pI830->power_context)
OUTREG(PWRCTXA, pI830->power_context->offset | PWRCTX_EN);
/* Clear the framebuffer */
memset(pI830->FbBase + pScrn->fbOffset, 0,
pScrn->virtualY * pScrn->displayWidth * pI830->cpp);
@ -3517,9 +3524,6 @@ I830CloseScreen(int scrnIndex, ScreenPtr pScreen)
}
#endif
if (IS_I965GM(pI830) || IS_IGD_GM(pI830))
OUTREG(PWRCTXA, 0);
if (I830IsPrimary(pScrn)) {
xf86GARTCloseScreen(scrnIndex);

View File

@ -237,6 +237,8 @@ static i830_quirk i830_quirk_list[] = {
{ PCI_CHIP_I965_GM, 0x1028, 0x0256, quirk_ignore_tv },
/* Dell Inspiron 1318 */
{ PCI_CHIP_I965_GM, 0x1028, 0x0286, quirk_ignore_tv },
/* Dell Vostro A840 (LP: #235155) */
{ PCI_CHIP_I965_GM, 0x1028, 0x0298, quirk_ignore_tv },
/* Lenovo Napa TV (use dmi)*/
{ PCI_CHIP_I945_GM, 0x17aa, SUBSYS_ANY, quirk_lenovo_tv_dmi },
@ -272,6 +274,8 @@ static i830_quirk i830_quirk_list[] = {
{ PCI_CHIP_I855_GM, 0x1028, 0x0139, quirk_pipea_force },
/* Dell Latitude D500 needs pipe A force quirk */
{ PCI_CHIP_I855_GM, 0x1028, 0x0152, quirk_pipea_force },
/* Dell Latitude D505 needs pipe A force quirk (LP: #235643) */
{ PCI_CHIP_I855_GM, 0x1028, 0x0163, quirk_pipea_force },
/* Dell Latitude X300 needs pipe A force quirk */
{ PCI_CHIP_I855_GM, 0x1028, 0x014f, quirk_pipea_force },
/* Dell Inspiron 510m needs pipe A force quirk */

View File

@ -788,6 +788,7 @@ i830_tv_dpms(xf86OutputPtr output, int mode)
OUTREG(TV_CTL, INREG(TV_CTL) & ~TV_ENC_ENABLE);
break;
}
i830WaitForVblank(pScrn);
}
static void
@ -920,6 +921,7 @@ i830_tv_restore(xf86OutputPtr output)
OUTREG(TV_DAC, dev_priv->save_TV_DAC);
OUTREG(TV_CTL, dev_priv->save_TV_CTL);
i830WaitForVblank(pScrn);
}
static const tv_mode_t *
@ -1237,6 +1239,7 @@ i830_tv_mode_set(xf86OutputPtr output, DisplayModePtr mode,
OUTREG(TV_V_CHROMA_0 + (i<<2), tv_mode->filter_table[j++]);
OUTREG(TV_DAC, 0);
OUTREG(TV_CTL, tv_ctl);
i830WaitForVblank(pScrn);
}
static const DisplayModeRec reported_modes[] = {
@ -1303,6 +1306,7 @@ i830_tv_detect_type (xf86CrtcPtr crtc,
tv_dac = INREG(TV_DAC);
OUTREG(TV_DAC, save_tv_dac);
OUTREG(TV_CTL, save_tv_ctl);
i830WaitForVblank(pScrn);
}
/*
* A B C