--- xserver-xorg-driver-i810-1.4.1.3.orig/src/i830_driver.c +++ xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c @@ -3725,7 +3725,7 @@ clock = VBEGetPixelClock(pI830->pVbe, mode, block->PixelClock); #ifdef DEBUG ErrorF("Setting clock %.2fMHz, closest is %.2fMHz\n", - (double)data->block->PixelClock / 1000000.0, + (double)block->PixelClock / 1000000.0, (double)clock / 1000000.0); #endif if (clock) --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/patches/i810-i945gm.dpatch +++ xserver-xorg-driver-i810-1.4.1.3/debian/patches/i810-i945gm.dpatch @@ -0,0 +1,381 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## i810-i945gm.dpatch by Paul Sladen +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/common.h xserver-xorg-driver-i810-1.4.1.3/src/common.h +--- xserver-xorg-driver-i810-1.4.1.3~/src/common.h 2005-05-31 17:58:26.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/common.h 2006-04-21 20:00:38.000000000 +0000 +@@ -322,6 +322,11 @@ + #define PCI_CHIP_I945_G_BRIDGE 0x2770 + #endif + ++#ifndef PCI_CHIP_I945_GM ++#define PCI_CHIP_I945_GM 0x27A2 ++#define PCI_CHIP_I945_GM_BRIDGE 0x27A0 ++#endif ++ + #define IS_I810(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I810 || \ + pI810->PciInfo->chipType == PCI_CHIP_I810_DC100 || \ + pI810->PciInfo->chipType == PCI_CHIP_I810_E) +@@ -332,11 +337,14 @@ + #define IS_I852(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I855_GM && (pI810->variant == I852_GM || pI810->variant == I852_GME)) + #define IS_I855(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I855_GM && (pI810->variant == I855_GM || pI810->variant == I855_GME)) + #define IS_I865G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I865_G) ++ + #define IS_I915G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I915_G || pI810->PciInfo->chipType == PCI_CHIP_E7221_G) + #define IS_I915GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I915_GM) + #define IS_I945G(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I945_G) ++#define IS_I945GM(pI810) (pI810->PciInfo->chipType == PCI_CHIP_I945_GM) ++#define IS_I9XX(pI810) (IS_I915G(pI810) || IS_I915GM(pI810) || IS_I945G(pI810) || IS_I945GM(pI810)) + +-#define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810)) ++#define IS_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810) || IS_I945GM(pI810)) + + #define GTT_PAGE_SIZE KB(4) + #define ROUND_TO(x, y) (((x) + (y) - 1) / (y) * (y)) +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i810_driver.c xserver-xorg-driver-i810-1.4.1.3/src/i810_driver.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i810_driver.c 2005-08-05 23:04:33.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i810_driver.c 2006-04-21 20:00:38.000000000 +0000 +@@ -136,6 +136,7 @@ + {PCI_CHIP_E7221_G, "E7221 (i915)"}, + {PCI_CHIP_I915_GM, "915GM"}, + {PCI_CHIP_I945_G, "945G"}, ++ {PCI_CHIP_I945_GM, "945GM"}, + {-1, NULL} + }; + +@@ -154,6 +155,7 @@ + {PCI_CHIP_E7221_G, PCI_CHIP_E7221_G, RES_SHARED_VGA}, + {PCI_CHIP_I915_GM, PCI_CHIP_I915_GM, RES_SHARED_VGA}, + {PCI_CHIP_I945_G, PCI_CHIP_I945_G, RES_SHARED_VGA}, ++ {PCI_CHIP_I945_GM, PCI_CHIP_I945_GM, RES_SHARED_VGA}, + {-1, -1, RES_UNDEFINED } + }; + +@@ -569,6 +571,7 @@ + case PCI_CHIP_E7221_G: + case PCI_CHIP_I915_GM: + case PCI_CHIP_I945_G: ++ case PCI_CHIP_I945_GM: + xf86SetEntitySharable(usedChips[i]); + + /* Allocate an entity private if necessary */ +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_cursor.c xserver-xorg-driver-i810-1.4.1.3/src/i830_cursor.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_cursor.c 2005-07-11 02:29:51.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_cursor.c 2006-04-21 20:00:38.000000000 +0000 +@@ -86,7 +86,7 @@ + + DPRINTF(PFX, "I830InitHWCursor\n"); + /* Initialise the HW cursor registers, leaving the cursor hidden. */ +- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) { ++ if (IS_MOBILE(pI830) || IS_I9XX(pI830)) { + temp = INREG(CURSOR_A_CONTROL); + temp &= ~(CURSOR_MODE | MCURSOR_GAMMA_ENABLE | MCURSOR_MEM_TYPE_LOCAL | + MCURSOR_PIPE_SELECT); +@@ -308,7 +308,7 @@ + } + + /* have to upload the base for the new position */ +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + if (pI830->CursorIsARGB) + OUTREG(CURSOR_A_BASE, pI830->CursorMemARGB->Physical); + else +@@ -339,7 +339,7 @@ + pI830->CursorMemARGB->Physical, pI830->CursorMemARGB->Start); + + pI830->cursorOn = TRUE; +- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) { ++ if (IS_MOBILE(pI830) || IS_I9XX(pI830)) { + temp = INREG(CURSOR_A_CONTROL); + temp &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT); + if (pI830->CursorIsARGB) +@@ -387,7 +387,7 @@ + DPRINTF(PFX, "I830HideCursor\n"); + + pI830->cursorOn = FALSE; +- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) { ++ if (IS_MOBILE(pI830) || IS_I9XX(pI830)) { + temp = INREG(CURSOR_A_CONTROL); + temp &= ~CURSOR_MODE; + temp |= CURSOR_MODE_DISABLE; +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c 2006-04-21 19:34:59.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c 2006-04-21 20:00:38.000000000 +0000 +@@ -196,6 +196,7 @@ + {PCI_CHIP_E7221_G, "E7221 (i915)"}, + {PCI_CHIP_I915_GM, "915GM"}, + {PCI_CHIP_I945_G, "945G"}, ++ {PCI_CHIP_I945_GM, "945GM"}, + {-1, NULL} + }; + +@@ -208,6 +209,7 @@ + {PCI_CHIP_E7221_G, PCI_CHIP_E7221_G, RES_SHARED_VGA}, + {PCI_CHIP_I915_GM, PCI_CHIP_I915_GM, RES_SHARED_VGA}, + {PCI_CHIP_I945_G, PCI_CHIP_I945_G, RES_SHARED_VGA}, ++ {PCI_CHIP_I945_GM, PCI_CHIP_I945_GM, RES_SHARED_VGA}, + {-1, -1, RES_UNDEFINED} + }; + +@@ -1323,7 +1325,7 @@ + * The GTT varying according the the FbMapSize and the popup is 4KB */ + range = (pI830->FbMapSize / (1024*1024)) + 4; + +- if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I85X(pI830) || IS_I865G(pI830) || IS_I9XX(pI830)) { + switch (gmch_ctrl & I830_GMCH_GMS_MASK) { + case I855_GMCH_GMS_STOLEN_1M: + memsize = MB(1) - KB(range); +@@ -1341,11 +1343,11 @@ + memsize = MB(32) - KB(range); + break; + case I915G_GMCH_GMS_STOLEN_48M: +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ++ if (IS_I9XX(pI830)) + memsize = MB(48) - KB(range); + break; + case I915G_GMCH_GMS_STOLEN_64M: +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ++ if (IS_I9XX(pI830)) + memsize = MB(64) - KB(range); + break; + } +@@ -2127,8 +2129,8 @@ + pI830->LinearAddr = pI830->pEnt->device->MemBase; + from = X_CONFIG; + } else { +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { +- pI830->LinearAddr = pI830->PciInfo->memBase[2] & 0xF0000000; ++ if (IS_I9XX(pI830)) { ++ pI830->LinearAddr = pI830->PciInfo->memBase[2] & 0xFF000000; + from = X_PROBED; + } else if (pI830->PciInfo->memBase[1] != 0) { + /* XXX Check mask. */ +@@ -2149,7 +2151,7 @@ + pI830->MMIOAddr = pI830->pEnt->device->IOBase; + from = X_CONFIG; + } else { +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + pI830->MMIOAddr = pI830->PciInfo->memBase[0] & 0xFFF80000; + from = X_PROBED; + } else if (pI830->PciInfo->memBase[1]) { +@@ -2194,7 +2196,7 @@ + pI830->FbMapSize = 0x4000000; /* 64MB - has this been tested ?? */ + } + } else { +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + if (pI830->PciInfo->memBase[2] & 0x08000000) + pI830->FbMapSize = 0x8000000; /* 128MB aperture */ + else +@@ -2227,7 +2229,7 @@ + if (pI830->PciInfo->chipType == PCI_CHIP_E7221_G) + pI830->availablePipes = 1; + else +- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) ++ if (IS_MOBILE(pI830) || IS_I9XX(pI830)) + pI830->availablePipes = 2; + else + pI830->availablePipes = 1; +@@ -2872,7 +2874,7 @@ + } + + /* Check if the HW cursor needs physical address. */ +- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) ++ if (IS_MOBILE(pI830) || IS_I9XX(pI830)) + pI830->CursorNeedsPhysical = TRUE; + else + pI830->CursorNeedsPhysical = FALSE; +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_memory.c xserver-xorg-driver-i810-1.4.1.3/src/i830_memory.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_memory.c 2005-08-15 07:30:05.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_memory.c 2006-04-21 20:00:38.000000000 +0000 +@@ -1239,7 +1239,7 @@ + + i830Reg->Fence[nr] = 0; + +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ++ if (IS_I9XX(pI830)) + fence_mask = ~I915G_FENCE_START_MASK; + else + fence_mask = ~I830_FENCE_START_MASK; +@@ -1247,7 +1247,7 @@ + if (start & fence_mask) { + xf86DrvMsg(X_WARNING, pScrn->scrnIndex, + "SetFence: %d: start (0x%08x) is not %s aligned\n", +- nr, start, (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ? "1MB" : "512k"); ++ nr, start, (IS_I9XX(pI830)) ? "1MB" : "512k"); + return; + } + +@@ -1267,7 +1267,7 @@ + + val = (start | FENCE_X_MAJOR | FENCE_VALID); + +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + switch (size) { + case MB(1): + val |= I915G_FENCE_SIZE_1M; +@@ -1328,7 +1328,7 @@ + } + } + +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ++ if (IS_I9XX(pI830)) + fence_pitch = pitch / 512; + else + fence_pitch = pitch / 128; +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_video.c xserver-xorg-driver-i810-1.4.1.3/src/i830_video.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_video.c 2005-07-11 02:29:51.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_video.c 2006-04-21 20:00:38.000000000 +0000 +@@ -617,7 +617,7 @@ + adapt->nAttributes = NUM_ATTRIBUTES; + if (pI830->Clone) + adapt->nAttributes += CLONE_ATTRIBUTES; +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) ++ if (IS_I9XX(pI830)) + adapt->nAttributes += GAMMA_ATTRIBUTES; /* has gamma */ + adapt->pAttributes = xnfalloc(sizeof(XF86AttributeRec) * adapt->nAttributes); + /* Now copy the attributes */ +@@ -628,7 +628,7 @@ + memcpy((char*)att, (char*)CloneAttributes, sizeof(XF86AttributeRec) * CLONE_ATTRIBUTES); + att+=CLONE_ATTRIBUTES; + } +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + memcpy((char*)att, (char*)GammaAttributes, sizeof(XF86AttributeRec) * GAMMA_ATTRIBUTES); + att+=GAMMA_ATTRIBUTES; + } +@@ -688,7 +688,7 @@ + if (pI830->Clone) + xvPipe = MAKE_ATOM("XV_PIPE"); + +- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { ++ if (IS_I9XX(pI830)) { + xvGamma0 = MAKE_ATOM("XV_GAMMA0"); + xvGamma1 = MAKE_ATOM("XV_GAMMA1"); + xvGamma2 = MAKE_ATOM("XV_GAMMA2"); +@@ -806,7 +806,7 @@ + overlay->OCONFIG |= OVERLAY_PIPE_B; + if (pPriv->overlayOK) + OVERLAY_UPDATE; +- } else if (attribute == xvGamma0 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma0 && IS_I9XX(pI830)) { + /* Avoid video anomalies, so set gamma registers when overlay is off */ + /* We also clamp the values if they are outside the ranges */ + if (!*pI830->overlayOn) { +@@ -815,35 +815,35 @@ + pPriv->gamma1 = pPriv->gamma0 + 0x7d; + } else + return BadRequest; +- } else if (attribute == xvGamma1 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma1 && IS_I9XX(pI830)) { + if (!*pI830->overlayOn) { + pPriv->gamma1 = value; + if (pPriv->gamma1 - pPriv->gamma0 > 0x7d) + pPriv->gamma0 = pPriv->gamma1 - 0x7d; + } else + return BadRequest; +- } else if (attribute == xvGamma2 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma2 && IS_I9XX(pI830)) { + if (!*pI830->overlayOn) { + pPriv->gamma2 = value; + if (pPriv->gamma3 - pPriv->gamma2 > 0x7d) + pPriv->gamma3 = pPriv->gamma2 + 0x7d; + } else + return BadRequest; +- } else if (attribute == xvGamma3 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma3 && IS_I9XX(pI830)) { + if (!*pI830->overlayOn) { + pPriv->gamma3 = value; + if (pPriv->gamma3 - pPriv->gamma2 > 0x7d) + pPriv->gamma2 = pPriv->gamma3 - 0x7d; + } else + return BadRequest; +- } else if (attribute == xvGamma4 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma4 && IS_I9XX(pI830)) { + if (!*pI830->overlayOn) { + pPriv->gamma4 = value; + if (pPriv->gamma5 - pPriv->gamma4 > 0x7d) + pPriv->gamma5 = pPriv->gamma4 + 0x7d; + } else + return BadRequest; +- } else if (attribute == xvGamma5 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma5 && IS_I9XX(pI830)) { + if (!*pI830->overlayOn) { + pPriv->gamma5 = value; + if (pPriv->gamma5 - pPriv->gamma4 > 0x7d) +@@ -875,7 +875,7 @@ + attribute == xvGamma2 || + attribute == xvGamma3 || + attribute == xvGamma4 || +- attribute == xvGamma5) && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ attribute == xvGamma5) && IS_I9XX(pI830)) { + I830UpdateGamma(pScrn); + } + +@@ -895,17 +895,17 @@ + *value = pPriv->contrast; + } else if (pI830->Clone && attribute == xvPipe) { + *value = pPriv->pipe; +- } else if (attribute == xvGamma0 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma0 && IS_I9XX(pI830)) { + *value = pPriv->gamma0; +- } else if (attribute == xvGamma1 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma1 && IS_I9XX(pI830)) { + *value = pPriv->gamma1; +- } else if (attribute == xvGamma2 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma2 && IS_I9XX(pI830)) { + *value = pPriv->gamma2; +- } else if (attribute == xvGamma3 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma3 && IS_I9XX(pI830)) { + *value = pPriv->gamma3; +- } else if (attribute == xvGamma4 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma4 && IS_I9XX(pI830)) { + *value = pPriv->gamma4; +- } else if (attribute == xvGamma5 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { ++ } else if (attribute == xvGamma5 && IS_I9XX(pI830)) { + *value = pPriv->gamma5; + } else if (attribute == xvColorKey) { + *value = pPriv->colorKey; +@@ -1182,7 +1182,7 @@ + if (!pPriv->overlayOK) + return; + +- if (IS_I915G(pI830) || IS_I915GM(pI830)) { ++ if (IS_I9XX(pI830)) { + shift = 6; + mask = 0x3f; + } else { +@@ -1221,7 +1221,7 @@ + swidth = ((offsety + width + mask) >> shift) - + (offsety >> shift); + +- if (IS_I915G(pI830) || IS_I915GM(pI830)) ++ if (IS_I9XX(pI830)) + swidth <<= 1; + + swidth -= 1; +@@ -1233,7 +1233,7 @@ + swidth = ((offsetu + (width / 2) + mask) >> shift) - + (offsetu >> shift); + +- if (IS_I915G(pI830) || IS_I915GM(pI830)) ++ if (IS_I9XX(pI830)) + swidth <<= 1; + + swidth -= 1; +@@ -1257,7 +1257,7 @@ + swidth = ((offsety + (width << 1) + mask) >> shift) - + (offsety >> shift); + +- if (IS_I915G(pI830) || IS_I915GM(pI830)) ++ if (IS_I9XX(pI830)) + swidth <<= 1; + + swidth -= 1; --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/patches/i810-PipeAccess.dpatch +++ xserver-xorg-driver-i810-1.4.1.3/debian/patches/i810-PipeAccess.dpatch @@ -0,0 +1,31 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## i810-PipeAccess.dpatch by Reinhard Tartler +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c 2006-04-21 19:34:59.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c 2006-04-21 20:01:30.000000000 +0000 +@@ -3334,10 +3334,12 @@ + xf86LoaderReqSymLists(I810shadowFBSymbols, NULL); + } + ++#if 0 + VBEFreeVBEInfo(pI830->vbeInfo); + pI830->vbeInfo = NULL; + vbeFree(pI830->pVbe); + pI830->pVbe = NULL; ++#endif + + /* Use the VBE mode restore workaround by default. */ + pI830->vbeRestoreWorkaround = TRUE; +@@ -4524,6 +4526,7 @@ + * If we're changing the BIOS's view of the video memory size, do that + * first, then re-initialise the VBE information. + */ ++ SetPipeAccess(pScrn); + if (pI830->pVbe) + vbeFree(pI830->pVbe); + pI830->pVbe = VBEInit(NULL, pI830->pEnt->index); --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/patches/00list +++ xserver-xorg-driver-i810-1.4.1.3/debian/patches/00list @@ -0,0 +1,5 @@ +i810-PipeAccess.dpatch* +i810-i945gm.dpatch* +dualhead.dpatch* +i810-PipeAccess.dpatch* +i810-i945gm.dpatch* --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/patches/dualhead.dpatch +++ xserver-xorg-driver-i810-1.4.1.3/debian/patches/dualhead.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## dualhead.dpatch by Reinhard Tartler +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: No description. + +@DPATCH@ +diff -urNad xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c +--- xserver-xorg-driver-i810-1.4.1.3~/src/i830_driver.c 2006-04-21 20:12:38.000000000 +0000 ++++ xserver-xorg-driver-i810-1.4.1.3/src/i830_driver.c 2006-04-21 20:13:09.000000000 +0000 +@@ -872,9 +872,6 @@ + + DPRINTF(PFX, "SetDisplayDevices: devices 0x%x\n", devices); + +- if (!pI830->specifiedMonitor) +- return TRUE; +- + #ifdef I915G_WORKAROUND + if (pI830->preinit) + setmode = TRUE; +@@ -3318,6 +3315,11 @@ + xf86LoaderReqSymLists(I810ramdacSymbols, NULL); + } + ++ if (!SetDisplayDevices(pScrn, pI830->savedDevices)) { ++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++ "Failed to switch to saved display devices, continuing.\n"); ++ } ++ + I830UnmapMMIO(pScrn); + + /* We won't be using the VGA access after the probe. */ --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/changelog +++ xserver-xorg-driver-i810-1.4.1.3/debian/changelog @@ -0,0 +1,60 @@ +xserver-xorg-driver-i810 (1:1.4.1.3-0ubuntu3) dapper; urgency=low + + * Apply patch from freedesktop for fixing segfault in i810 dualhead configs + (setPipeAccess, see https://bugs.freedesktop.org/show_bug.cgi?id=3105) + Closes: M#26341 + * Use dpatch + + -- Reinhard Tartler Fri, 21 Apr 2006 21:44:25 +0200 + +xserver-xorg-driver-i810 (1:1.4.1.3-0ubuntu2) dapper; urgency=low + + * debian/patches/xserver-xorg-i810-i945gm.patch for i945GM PCI IDs + + -- Paul Sladen Wed, 22 Mar 2006 05:07:01 +0000 + +xserver-xorg-driver-i810 (1:1.4.1.3-0ubuntu1) dapper; urgency=low + + * New upstream release. + * Add provides on xserver-xorg-driver. + + -- Daniel Stone Wed, 4 Jan 2006 19:57:22 +1100 + +xserver-xorg-driver-i810 (1:1.4.1.2-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Mon, 19 Dec 2005 09:06:03 +1100 + +xserver-xorg-driver-i810 (1:1.4.1.1-0ubuntu1) dapper; urgency=low + + * New upstream release. + * Bump Build-Depends on libdrm-dev to >> 2.0. + + -- Daniel Stone Mon, 12 Dec 2005 13:20:11 +1100 + +xserver-xorg-driver-i810 (1:1.4.1-0ubuntu2) dapper; urgency=low + + * Add missing Build-Depends (x11proto-core-dev, x11proto-fonts-dev, + x11proto-randr-dev, x11proto-render-dev, libdrm (>> 1.0.5), + x11proto-xf86dri-dev). + + -- Daniel Stone Mon, 5 Dec 2005 12:54:24 +1100 + +xserver-xorg-driver-i810 (1:1.4.1-0ubuntu1) dapper; urgency=low + + * New upstream release. + + -- Daniel Stone Tue, 22 Nov 2005 13:30:52 +1100 + +xserver-xorg-driver-i810 (1:1.4.0.1-1) dapper; urgency=low + + * New upstream version. + + -- Daniel Stone Thu, 20 Oct 2005 13:37:40 +1000 + +xserver-xorg-driver-i810 (1:1.4.0-1) breezy; urgency=low + + * First xserver-xorg-driver-i810 release. + + -- Daniel Stone Wed, 6 Jul 2005 15:48:17 +1000 --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/compat +++ xserver-xorg-driver-i810-1.4.1.3/debian/compat @@ -0,0 +1 @@ +4 --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/rules +++ xserver-xorg-driver-i810-1.4.1.3/debian/rules @@ -0,0 +1,99 @@ +#!/usr/bin/make -f +# debian/rules for the Debian xserver-xorg-driver-i810 package. +# Copyright © 2004 Scott James Remnant +# Copyright © 2005 Daniel Stone +# Copyright © 2006 Paul Sladen + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + INSTALL_PROGRAM += -s +endif + +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) + confflags += --build=$(DEB_HOST_GNU_TYPE) +else + confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) +endif + +# kbd_drv.a isn't phenomenally useful; kbd_drv.so more so +confflags += --disable-static + +patch: patch-stamp +patch-stamp: + dpatch apply-all + touch patch-stamp + +unpatch: + dpatch deapply-all + rm -rf patch-stamp debian/patched + +build: patch build-stamp +build-stamp: + dh_testdir + + mkdir obj-$(DEB_BUILD_GNU_TYPE) + cd obj-$(DEB_BUILD_GNU_TYPE) && \ + ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ + --infodir=\$${prefix}/share/info $(confflags) \ + CFLAGS="$(CFLAGS)" + cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) + + touch build-stamp + +clean: unpatch + dh_testdir + dh_testroot + rm -f build-stamp + + + rm -f config.cache config.log config.status + rm -f */config.cache */config.log */config.status + rm -f conftest* */conftest* + rm -rf autom4te.cache */autom4te.cache + rm -rf obj-* + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + + dh_installdocs + dh_installchangelogs + dh_install --sourcedir=debian/tmp + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +# Build architecture-independent files here. +binary-indep: build install +# Nothing to do + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/control +++ xserver-xorg-driver-i810-1.4.1.3/debian/control @@ -0,0 +1,26 @@ +Source: xserver-xorg-driver-i810 +Section: x11 +Priority: optional +Maintainer: Daniel Stone +Build-Depends: debhelper (>= 4.0.0), pkg-config, xserver-xorg-dev, x11proto-gl-dev, x11proto-video-dev, libdrm-dev, libgl1-mesa-dev | libgl-dev, libxvmc-dev, x11proto-core-dev, x11proto-fonts-dev, x11proto-randr-dev, x11proto-render-dev, libdrm-dev (>> 2.0), x11proto-xf86dri-dev, dpatch +Standards-Version: 3.6.1.0 + +Package: xserver-xorg-driver-i810 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, xserver-xorg-core (>= 1:0.99.0-1) +Provides: xserver-xorg-driver +Replaces: xserver-xorg (<< 6.8.2-35) +Description: X.Org X server -- Intel i8xx, i9xx display driver + This package provides the driver for the Intel i8xx and i9xx family + of chipsets, including i810, i815, i830, i845, i855, i865, i915, and + i945 series chips. + . + This package also provides an XvMC (XVideo Motion Compensation) driver + for the same chipsets. + . + More information about X.Org can be found at: + + + . + This module can be found as the module 'driver/xf86-video-i810' at + :pserver:anoncvs@cvs.freedesktop.org:/cvs/xorg --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/copyright +++ xserver-xorg-driver-i810-1.4.1.3/debian/copyright @@ -0,0 +1,114 @@ +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright © 2002 David Dawes +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Copyright 2000 by Alan Hourihane, Sychdyn, North Wales, UK. + +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 Alan Hourihane not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Alan Hourihane makes no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +ALAN HOURIHANE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL ALAN HOURIHANE 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. + +Copyright 2000 Intel Corporation. All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL INTEL, AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR +THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Copyright 2001 VA Linux Systems Inc., Fremont, California. +Copyright © 2002 by David Dawes + +All Rights Reserved. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +on the rights to use, copy, modify, merge, publish, distribute, sub +license, and/or sell copies of the Software, and to permit persons to whom +the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL +ATI, VA LINUX SYSTEMS AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. + +Copyright © 2002 David Dawes + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF +OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Except as contained in this notice, the name of the author(s) shall +not be used in advertising or otherwise to promote the sale, use or other +dealings in this Software without prior written authorization from +the author(s). --- xserver-xorg-driver-i810-1.4.1.3.orig/debian/xserver-xorg-driver-i810.install +++ xserver-xorg-driver-i810-1.4.1.3/debian/xserver-xorg-driver-i810.install @@ -0,0 +1,3 @@ +usr/lib/xorg/modules/drivers/*.so +usr/lib/libI810XvMC.so* +usr/share/man/man4/*