diff -u xserver-xorg-video-intel-2.1.1/debian/patches/04_fix_hw_restore.diff xserver-xorg-video-intel-2.1.1/debian/patches/04_fix_hw_restore.diff --- xserver-xorg-video-intel-2.1.1/debian/patches/04_fix_hw_restore.diff +++ xserver-xorg-video-intel-2.1.1/debian/patches/04_fix_hw_restore.diff @@ -1,8 +1,30 @@ Index: xserver-xorg-video-intel-2.1.1/src/i830_driver.c =================================================================== ---- xserver-xorg-video-intel-2.1.1.orig/src/i830_driver.c 2007-10-12 14:37:57.000000000 +0100 -+++ xserver-xorg-video-intel-2.1.1/src/i830_driver.c 2007-10-12 14:39:08.000000000 +0100 -@@ -1985,11 +1985,12 @@ +--- xserver-xorg-video-intel-2.1.1.orig/src/i830_driver.c 2007-10-16 18:34:44.000000000 +0100 ++++ xserver-xorg-video-intel-2.1.1/src/i830_driver.c 2007-10-16 18:36:13.000000000 +0100 +@@ -1928,7 +1928,9 @@ + OUTREG(DSPABASE, pI830->saveDSPABASE); + if (IS_I965G(pI830)) + OUTREG(DSPASURF, pI830->saveDSPASURF); +- OUTREG(PIPEACONF, pI830->savePIPEACONF); ++ if ((pI830->saveDPLL_A & DPLL_VCO_ENABLE) && ++ (pI830->saveDPLL_A & DPLL_VGA_MODE_DIS)) ++ OUTREG(PIPEACONF, pI830->savePIPEACONF); + i830WaitForVblank(pScrn); + OUTREG(DSPACNTR, pI830->saveDSPACNTR); + OUTREG(DSPABASE, INREG(DSPABASE)); +@@ -1965,7 +1967,9 @@ + OUTREG(DSPBBASE, pI830->saveDSPBBASE); + if (IS_I965G(pI830)) + OUTREG(DSPBSURF, pI830->saveDSPBSURF); +- OUTREG(PIPEBCONF, pI830->savePIPEBCONF); ++ if ((pI830->saveDPLL_B & DPLL_VCO_ENABLE) && ++ (pI830->saveDPLL_B & DPLL_VGA_MODE_DIS)) ++ OUTREG(PIPEBCONF, pI830->savePIPEBCONF); + i830WaitForVblank(pScrn); + OUTREG(DSPBCNTR, pI830->saveDSPBCNTR); + OUTREG(DSPBBASE, INREG(DSPBBASE)); +@@ -1985,11 +1989,12 @@ OUTREG(VCLK_DIVISOR_VGA1, pI830->saveVCLK_DIVISOR_VGA1); OUTREG(VCLK_POST_DIV, pI830->saveVCLK_POST_DIV); diff -u xserver-xorg-video-intel-2.1.1/debian/patches/series xserver-xorg-video-intel-2.1.1/debian/patches/series --- xserver-xorg-video-intel-2.1.1/debian/patches/series +++ xserver-xorg-video-intel-2.1.1/debian/patches/series @@ -5,0 +6,2 @@ +06_sync_quirks.diff +08_fix_855_3D_state.diff diff -u xserver-xorg-video-intel-2.1.1/debian/changelog xserver-xorg-video-intel-2.1.1/debian/changelog --- xserver-xorg-video-intel-2.1.1/debian/changelog +++ xserver-xorg-video-intel-2.1.1/debian/changelog @@ -1,3 +1,23 @@ +xserver-xorg-video-intel (2:2.1.1-0ubuntu10) gutsy-proposed; urgency=low + + [Peter Clifton] + * 08_fix_855_3D_state.diff + - Emit the invariant 3D state to the GPU during EnterVT after + marking the 3D state as clobbered. This fixes / works around + textured surface corruption after resume on 855GM hardware. + (Closes LP: #133118) + * 04_fix_hw_restore.diff + - Only restore PIPE[AB]CONF if the DPLL for that PIPE is running + and not in VGA pipeline mode. + (Closes LP: #108056) + + [Kyle McMartin, Bryce Harrington] + * 06_sync_quirks.diff: + - Sync TV out quirks with upstream + (Closes LP: #131646) + + -- Bryce Harrington Thu, 08 Nov 2007 20:27:17 -0800 + xserver-xorg-video-intel (2:2.1.1-0ubuntu9) gutsy; urgency=low [Peter Clifton] only in patch2: unchanged: --- xserver-xorg-video-intel-2.1.1.orig/debian/patches/08_fix_855_3D_state.diff +++ xserver-xorg-video-intel-2.1.1/debian/patches/08_fix_855_3D_state.diff @@ -0,0 +1,12 @@ +Index: xserver-xorg-video-intel-2.1.1/src/i830_driver.c +=================================================================== +--- xserver-xorg-video-intel-2.1.1.orig/src/i830_driver.c 2007-10-21 22:08:58.000000000 +0100 ++++ xserver-xorg-video-intel-2.1.1/src/i830_driver.c 2007-10-21 22:28:04.000000000 +0100 +@@ -3055,6 +3067,7 @@ + + /* Mark 3D state as being clobbered */ + *pI830->last_3d = LAST_3D_OTHER; ++ IntelEmitInvarientState(pScrn); + + return TRUE; + } only in patch2: unchanged: --- xserver-xorg-video-intel-2.1.1.orig/debian/patches/06_sync_quirks.diff +++ xserver-xorg-video-intel-2.1.1/debian/patches/06_sync_quirks.diff @@ -0,0 +1,47 @@ +--- xserver-xorg-video-intel-2.1.1/src/i830_quirks.c 2007-08-13 21:58:29.000000000 -0700 ++++ xserver-xorg-video-intel-2.1.1-quirks/src/i830_quirks.c 2007-10-29 21:23:49.000000000 -0700 +@@ -54,19 +54,36 @@ static void quirk_mac_mini (I830Ptr pI83 + pI830->quirk_flag |= QUIRK_IGNORE_MACMINI_LVDS; + } + ++/* keep this list sorted by OEM, then by chip ID */ + static i830_quirk i830_quirk_list[] = { ++ /* Aopen mini pc */ ++ { PCI_CHIP_I945_GM, 0xa0a0, SUBSYS_ANY, quirk_ignore_lvds }, ++ ++ /* AOpen 965GM mini pc */ ++ { PCI_CHIP_I965_GM, 0x8086, 0x1999, quirk_ignore_lvds }, ++ ++ /* Apple Mac mini has no lvds, but macbook pro does */ ++ { PCI_CHIP_I945_GM, 0x8086, 0x7270, quirk_mac_mini }, ++ ++ /* Dell Latitude X1 */ ++ { PCI_CHIP_I945_GM, 0x1028, 0x01a3, quirk_ignore_tv }, ++ /* Dell XPS 1330 */ ++ { PCI_CHIP_I965_GM, 0x1028, 0x0209, quirk_ignore_tv }, ++ ++ /* Lenovo X60s has no TV output */ ++ { PCI_CHIP_I945_GM, 0x17aa, 0x201a, quirk_ignore_tv }, + /* Lenovo T61 has no TV output */ + { PCI_CHIP_I965_GM, 0x17aa, 0x20b5, quirk_ignore_tv }, +- /* Panasonic Toughbook CF-Y4 has no TV output */ +- { PCI_CHIP_I915_GM, 0x10f7, 0x8338, quirk_ignore_tv }, + /* Lenovo 3000 v200 */ + { PCI_CHIP_I965_GM, 0x17aa, 0x3c18, quirk_ignore_tv }, +- /* Dell XPS 1330 */ +- { PCI_CHIP_I965_GM, 0x1028, 0x0209, quirk_ignore_tv }, +- /* Aopen mini pc */ +- { PCI_CHIP_I945_GM, 0xa0a0, SUBSYS_ANY, quirk_ignore_lvds }, +- /* Mac mini has no lvds, but macbook pro does */ +- { PCI_CHIP_I945_GM, 0x8086, 0x7270, quirk_mac_mini }, ++ ++ /* Panasonic Toughbook CF-Y4 has no TV output */ ++ { PCI_CHIP_I915_GM, 0x10f7, 0x8338, quirk_ignore_tv }, ++ /* Panasonic Toughbook CF-Y7 has no TV output */ ++ { PCI_CHIP_I965_GM, 0x10f7, 0x8338, quirk_ignore_tv }, ++ ++ /* Samsung Q35 has no TV output */ ++ { PCI_CHIP_I945_GM, 0x144d, 0xc504, quirk_ignore_tv }, + { 0, 0, 0, NULL }, + }; +