FreeBSD Bugzilla – Attachment 68492 Details for
Bug 100673
Update port: x11-servers/xorg-server Add support to Intel 945GM
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
xorg-server.patch
xorg-server.patch (text/plain), 15.20 KB, created by
Marcus Alves Grando
on 2006-07-21 15:10:20 UTC
(
hide
)
Description:
xorg-server.patch
Filename:
MIME Type:
Creator:
Marcus Alves Grando
Created:
2006-07-21 15:10:20 UTC
Size:
15.20 KB
patch
obsolete
>Index: files/patch-945GM.patch >=================================================================== >RCS file: files/patch-945GM.patch >diff -N files/patch-945GM.patch >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ files/patch-945GM.patch 17 Jul 2006 15:01:07 -0000 >@@ -0,0 +1,335 @@ >+# >+# Add support to Intel 945GM >+# >+--- programs/Xserver/hw/xfree86/drivers/i810/common.h.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/common.h Mon Jul 17 11:43:00 2006 >+@@ -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) >+@@ -335,6 +340,7 @@ >+ #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_MOBILE(pI810) (IS_I830(pI810) || IS_I85X(pI810) || IS_I915GM(pI810)) >+ >+--- programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c Mon Jul 17 11:44:09 2006 >+@@ -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 */ >+--- programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/i830_cursor.c Mon Jul 17 11:46:20 2006 >+@@ -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_I915G(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) { >+ temp = INREG(CURSOR_A_CONTROL); >+ temp &= ~CURSOR_MODE; >+ temp |= CURSOR_MODE_DISABLE; >+--- programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/i830_driver.c Mon Jul 17 11:49:23 2006 >+@@ -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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) >+ memsize = MB(64) - KB(range); >+ break; >+ } >+@@ -2090,6 +2092,9 @@ >+ case PCI_CHIP_I945_G: >+ chipname = "945G"; >+ break; >++ case PCI_CHIP_I945_GM: >++ chipname = "945GM"; >++ break; >+ default: >+ chipname = "unknown chipset"; >+ break; >+@@ -2127,7 +2132,7 @@ >+ pI830->LinearAddr = pI830->pEnt->device->MemBase; >+ from = X_CONFIG; >+ } else { >+- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { >++ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) { >+ pI830->LinearAddr = pI830->PciInfo->memBase[2] & 0xF0000000; >+ from = X_PROBED; >+ } else if (pI830->PciInfo->memBase[1] != 0) { >+@@ -2149,7 +2154,7 @@ >+ pI830->MMIOAddr = pI830->pEnt->device->IOBase; >+ from = X_CONFIG; >+ } else { >+- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { >++ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) { >+ pI830->MMIOAddr = pI830->PciInfo->memBase[0] & 0xFFF80000; >+ from = X_PROBED; >+ } else if (pI830->PciInfo->memBase[1]) { >+@@ -2194,7 +2199,7 @@ >+ pI830->FbMapSize = 0x4000000; /* 64MB - has this been tested ?? */ >+ } >+ } else { >+- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) { >++ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) { >+ if (pI830->PciInfo->memBase[2] & 0x08000000) >+ pI830->FbMapSize = 0x8000000; /* 128MB aperture */ >+ else >+@@ -2227,7 +2232,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_I915G(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) >+ pI830->availablePipes = 2; >+ else >+ pI830->availablePipes = 1; >+@@ -2872,7 +2877,7 @@ >+ } >+ >+ /* Check if the HW cursor needs physical address. */ >+- if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830)) >++ if (IS_MOBILE(pI830) || IS_I915G(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) >+ pI830->CursorNeedsPhysical = TRUE; >+ else >+ pI830->CursorNeedsPhysical = FALSE; >+--- programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/i830_memory.c Mon Jul 17 11:51:02 2006 >+@@ -1239,7 +1239,7 @@ >+ >+ i830Reg->Fence[nr] = 0; >+ >+- if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830)) >++ if (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830)) >+ fence_pitch = pitch / 512; >+ else >+ fence_pitch = pitch / 128; >+--- programs/Xserver/hw/xfree86/drivers/i810/i830_video.c.orig Mon Jul 17 11:41:34 2006 >++++ programs/Xserver/hw/xfree86/drivers/i810/i830_video.c Mon Jul 17 11:52:36 2006 >+@@ -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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(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_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma0; >+- } else if (attribute == xvGamma1 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { >++ } else if (attribute == xvGamma1 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma1; >+- } else if (attribute == xvGamma2 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { >++ } else if (attribute == xvGamma2 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma2; >+- } else if (attribute == xvGamma3 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { >++ } else if (attribute == xvGamma3 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma3; >+- } else if (attribute == xvGamma4 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { >++ } else if (attribute == xvGamma4 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma4; >+- } else if (attribute == xvGamma5 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830))) { >++ } else if (attribute == xvGamma5 && (IS_I915G(pI830) || IS_I915GM(pI830) || IS_I945G(pI830) || IS_I945GM(pI830))) { >+ *value = pPriv->gamma5; >+ } else if (attribute == xvColorKey) { >+ *value = pPriv->colorKey;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 100673
: 68492