[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-ati: Changes to 'debian-experimental'



 ChangeLog                         |  152 ++++++++++++++++++++++++++++++++++++++
 debian/changelog                  |    7 +
 man/radeon.man                    |    1 
 src/ati_pciids_gen.h              |    1 
 src/atipciids.h                   |    3 
 src/atombios_output.c             |   50 +++++++++++-
 src/pcidb/ati_pciids.csv          |    1 
 src/radeon.h                      |   11 +-
 src/radeon_atombios.c             |   25 +++++-
 src/radeon_bios.c                 |   62 +++++----------
 src/radeon_chipinfo_gen.h         |    1 
 src/radeon_chipset_gen.h          |    1 
 src/radeon_crtc.c                 |    9 ++
 src/radeon_cursor.c               |    4 -
 src/radeon_dri.c                  |   83 ++++++++++++++++++--
 src/radeon_driver.c               |   28 ++++---
 src/radeon_exa_render.c           |    6 +
 src/radeon_output.c               |   39 ++++++++-
 src/radeon_pci_chipset_gen.h      |    1 
 src/radeon_pci_device_match_gen.h |    1 
 src/radeon_probe.h                |    3 
 src/radeon_textured_video.c       |    8 --
 22 files changed, 409 insertions(+), 88 deletions(-)

New commits:
commit 863102938ed430f4e4f4dd28036cd669722774f1
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sat Nov 29 10:52:43 2008 +0100

    Prepare changelog for upload

diff --git a/debian/changelog b/debian/changelog
index baaebb7..7c77737 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,9 @@
-xserver-xorg-video-ati (1:6.9.0+git20081129.783cdb73-1) UNRELEASED; urgency=low
+xserver-xorg-video-ati (1:6.9.0+git20081129.783cdb73-1) experimental; urgency=low
 
   * Pull upstream snapshot, up to commit 783cdb73.
     + Add AGPMode quirk table, closes: #461144, #462590, #467460. 
 
- -- Brice Goglin <bgoglin@debian.org>  Sat, 29 Nov 2008 10:50:18 +0100
+ -- Brice Goglin <bgoglin@debian.org>  Sat, 29 Nov 2008 10:52:27 +0100
 
 xserver-xorg-video-ati (1:6.9.0+git20081012.c0e6cb6d-1) experimental; urgency=low
 

commit 1c2b3c94fa1ba1d193c6f4ec269ea6bf6ada2217
Author: Brice Goglin <bgoglin@debian.org>
Date:   Sat Nov 29 10:52:11 2008 +0100

    Pull upstream snapshot, up to commit 783cdb73

diff --git a/ChangeLog b/ChangeLog
index b935b07..4c4427d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,155 @@
+commit 783cdb7374941bb1d2b63eea375fbf2f1b808cc3
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Thu Nov 27 15:29:06 2008 +1000
+
+    r100/r200: EXA misrenders dst == a8 + dst alpha use.
+    
+    Fedora BZ#469556
+    
+    I've played with various dst and texture formats and rewritten large
+    parts of this to no avail, so I'm punting for now.
+
+commit 2d7cfc421713286edd5121b56999246f9ae70286
+Author: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
+Date:   Tue Nov 25 13:25:33 2008 -0500
+
+    Catch unsubstituted macro for PCI region base access
+    
+    also fix up some warnings.
+
+commit af7690b9c300d37c3a0c51e27e0ad2ca009224a2
+Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
+Date:   Tue Nov 25 02:57:30 2008 -0500
+
+    [PATCH] radeon: Fix PCI usage of 32-bit driver on 64-bit platform
+    
+    The radeon driver is storing PCI addresses in unsigned long's which
+    won't work well on 32-bit platforms with 64-bit physical address space
+    such as PowerPC 4xx. This fixes it by using unsigned long long instead.
+
+commit 065938617c0feab17f4274a5350de02a692ba065
+Author: Ramon van der Stelt <rvanderstelt@xs4all.nl>
+Date:   Tue Nov 25 02:23:46 2008 -0500
+
+    Interlaced mode fixes
+    
+    see bug 12626
+
+commit 36a7dc6ea1e1929e986ab1159497c71521cb2f10
+Author: Bryce Harrington <bryce@canonical.com>
+Date:   Tue Nov 25 01:04:37 2008 -0500
+
+    Additional AGP quirks
+    
+    bug 18693
+
+commit 2acb8e4ed220fccb21b22a53c5142ab3a35d32ef
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Tue Nov 25 15:07:09 2008 +1000
+
+    radeon: fixup shared DDC lines for some rv610 cards.
+    
+    Some cards share DDC between a HDMI and VGA output, and expect the
+    driver to use load detect or EDID to figure it out.
+    
+    airlied- shipped in RHEL5
+    
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+
+commit b01e35168de40d192fd7a9ce6884b9c7419afbd4
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Mon Nov 24 21:06:42 2008 -0500
+
+    Fix up posted logic
+    
+    noticed by benh on IRC
+
+commit d7a03e93372b17d642b42f5490464616ae7c99c1
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Mon Nov 24 15:52:05 2008 -0500
+
+    Get hardcoded edid from the bios for servers that support it
+    
+    should fix bug 11300
+
+commit 3858e31fa9d77d52a5cabb02f53f06385eab40f7
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Mon Nov 24 14:39:41 2008 -0500
+
+    Don't support rotation is accel is not available
+    
+    Fixes bug 18068
+
+commit 3d27876d91ef69d71f17b6cf8c07c26bf12857b4
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Nov 10 15:47:13 2008 +1000
+
+    radeon: always align dstPitch to 64 bytes for textured video
+    
+    bz# 18454
+
+commit 6c8b352264540ccc4622a7c0b704ce452dcd707d
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Wed Oct 29 15:53:57 2008 +1000
+
+    pciid: add HD3300 - 790GX chipset.
+    
+    RH BZ (#466706)
+
+commit 902eaf768142c6c7dcc487e10775027b84cd1f9a
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Thu Nov 6 15:46:43 2008 -0500
+
+    Check for LVDS on all IGP chips
+    
+    - fixes bug 18395
+
+commit 44abaa0ea8e5e3bbe833fa73e6d011618bb6d7e7
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Nov 3 15:09:28 2008 -0500
+
+    Fix HDMI output setup on DIG1/DIG2.
+    
+    The only reliable way to detect an HDMI sink is to check for the
+    appropriate EDID extension block, so this will only work right on
+    servers with xf86DoEEDID().  RANDR 1.2 will call this internally for
+    us if it exists, but pre-1.6 servers are out of luck.
+
+commit 937b7ac2a259cf504a19dcf62a58b1db1afb8eb9
+Author: Bryce Harrington <bryce@canonical.com>
+Date:   Wed Oct 29 01:31:50 2008 -0400
+
+    Add AGP quirk table
+    
+    - set known good default agp modes for problematic chip/bridge combos
+    - should fix bug 17360, others
+
+commit 67bc2ae7f227a2afedc8e699cf0458fa7960f301
+Author: Julien Cristau <jcristau@debian.org>
+Date:   Sun Oct 26 16:05:04 2008 +0100
+
+    Bug#7148: Fix manpage formatting
+
+commit 98fdd78a1229584b922f816f331a45bfc178c961
+Author: Dave Airlie <airlied@linux.ie>
+Date:   Tue Oct 21 18:36:22 2008 +1000
+
+    atombios: oops typo
+
+commit 763dff6c117a10b6a57ba1854c5b798359789e44
+Author: Dave Airlie <airlied@linux.ie>
+Date:   Tue Oct 21 18:35:44 2008 +1000
+
+    atombios: set missing pixel clock
+
+commit 435cf7da68186f2601c4b888296117d4f652c625
+Author: Alex Deucher <alexdeucher@gmail.com>
+Date:   Wed Oct 15 10:52:14 2008 -0400
+
+    Add LCD dithering quirk for macbook pro
+    
+    fixes bug 17897.
+
 commit c0e6cb6d0eeef8f2ea60d840e1cd668fa92cd7f9
 Author: Alex Deucher <alexdeucher@gmail.com>
 Date:   Fri Oct 10 11:09:27 2008 -0400
diff --git a/debian/changelog b/debian/changelog
index 2716030..baaebb7 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+xserver-xorg-video-ati (1:6.9.0+git20081129.783cdb73-1) UNRELEASED; urgency=low
+
+  * Pull upstream snapshot, up to commit 783cdb73.
+    + Add AGPMode quirk table, closes: #461144, #462590, #467460. 
+
+ -- Brice Goglin <bgoglin@debian.org>  Sat, 29 Nov 2008 10:50:18 +0100
+
 xserver-xorg-video-ati (1:6.9.0+git20081012.c0e6cb6d-1) experimental; urgency=low
 
   * Pull upstream snapshot, up to commit c0e6cb6d, closes: 500903.

commit 783cdb7374941bb1d2b63eea375fbf2f1b808cc3
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Nov 27 15:29:06 2008 +1000

    r100/r200: EXA misrenders dst == a8 + dst alpha use.
    
    Fedora BZ#469556
    
    I've played with various dst and texture formats and rewritten large
    parts of this to no avail, so I'm punting for now.

diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index 97199ae..e5cc196 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -533,6 +533,9 @@ static Bool FUNC_NAME(R100PrepareComposite)(int op,
     if (!RADEONGetDestFormat(pDstPicture, &dst_format))
 	return FALSE;
 
+    if (pDstPicture->format == PICT_a8 && RadeonBlendOp[op].dst_alpha)
+        RADEON_FALLBACK("Can't dst alpha blend A8\n");
+
     if (pMask)
 	info->accel_state->has_mask = TRUE;
     else
@@ -833,6 +836,9 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
     if (!RADEONGetDestFormat(pDstPicture, &dst_format))
 	return FALSE;
 
+    if (pDstPicture->format == PICT_a8 && RadeonBlendOp[op].dst_alpha)
+        RADEON_FALLBACK("Can't dst alpha blend A8\n");
+
     if (pMask)
 	info->accel_state->has_mask = TRUE;
     else

commit 2d7cfc421713286edd5121b56999246f9ae70286
Author: Eygene Ryabinkin <rea-fbsd@codelabs.ru>
Date:   Tue Nov 25 13:25:33 2008 -0500

    Catch unsubstituted macro for PCI region base access
    
    also fix up some warnings.

diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 960d784..f1a780d 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -925,7 +925,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
 	       "[agp] %d kB allocated with handle 0x%08x\n",
-	       info->dri->gartSize*1024, info->dri->agpMemHandle);
+	       info->dri->gartSize*1024,
+	       (unsigned int)info->dri->agpMemHandle);
 
     if (drmAgpBind(info->dri->drmFD,
 		   info->dri->agpMemHandle, info->dri->gartOffset) < 0) {
@@ -942,7 +943,8 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[agp] ring handle = 0x%08x\n", info->dri->ringHandle);
+	       "[agp] ring handle = 0x%08x\n",
+	       (unsigned int)info->dri->ringHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
 	       &info->dri->ring) < 0) {
@@ -961,7 +963,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[agp] ring read ptr handle = 0x%08x\n",
-	       info->dri->ringReadPtrHandle);
+	       (unsigned int)info->dri->ringReadPtrHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
 	       &info->dri->ringReadPtr) < 0) {
@@ -981,7 +983,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[agp] vertex/indirect buffers handle = 0x%08x\n",
-	       info->dri->bufHandle);
+	       (unsigned int)info->dri->bufHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
 	       &info->dri->buf) < 0) {
@@ -1001,7 +1003,7 @@ static Bool RADEONDRIAgpInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[agp] GART texture map handle = 0x%08x\n",
-	       info->dri->gartTexHandle);
+	       (unsigned int)info->dri->gartTexHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
 	       &info->dri->gartTex) < 0) {
@@ -1034,7 +1036,8 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
 	       "[pci] %d kB allocated with handle 0x%08x\n",
-	       info->dri->gartSize*1024, info->dri->pciMemHandle);
+	       info->dri->gartSize*1024,
+	       (unsigned int)info->dri->pciMemHandle);
 
     RADEONDRIInitGARTValues(info);
 
@@ -1045,7 +1048,8 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[pci] ring handle = 0x%08x\n", info->dri->ringHandle);
+	       "[pci] ring handle = 0x%08x\n",
+	       (unsigned int)info->dri->ringHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->ringHandle, info->dri->ringMapSize,
 	       &info->dri->ring) < 0) {
@@ -1067,7 +1071,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[pci] ring read ptr handle = 0x%08x\n",
-	       info->dri->ringReadPtrHandle);
+	       (unsigned int)info->dri->ringReadPtrHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->ringReadPtrHandle, info->dri->ringReadMapSize,
 	       &info->dri->ringReadPtr) < 0) {
@@ -1090,7 +1094,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[pci] vertex/indirect buffers handle = 0x%08x\n",
-	       info->dri->bufHandle);
+	       (unsigned int)info->dri->bufHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->bufHandle, info->dri->bufMapSize,
 	       &info->dri->buf) < 0) {
@@ -1113,7 +1117,7 @@ static Bool RADEONDRIPciInit(RADEONInfoPtr info, ScreenPtr pScreen)
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
  	       "[pci] GART texture map handle = 0x%08x\n",
-	       info->dri->gartTexHandle);
+	       (unsigned int)info->dri->gartTexHandle);
 
     if (drmMap(info->dri->drmFD, info->dri->gartTexHandle, info->dri->gartTexMapSize,
 	       &info->dri->gartTex) < 0) {
@@ -1140,7 +1144,8 @@ static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen)
 	return FALSE;
     }
     xf86DrvMsg(pScreen->myNum, X_INFO,
-	       "[drm] register handle = 0x%08x\n", info->dri->registerHandle);
+	       "[drm] register handle = 0x%08x\n",
+	       (unsigned int)info->dri->registerHandle);
 
     return TRUE;
 }
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index d670ab5..a888436 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1774,14 +1774,14 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
     if (dev->BiosBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
 		   "BIOS address override, using 0x%08lx instead of 0x%08lx\n",
-		   dev->BiosBase,
-		   info->BIOSAddr);
+		   (unsigned long)dev->BiosBase,
+		   (unsigned long)info->BIOSAddr);
 	info->BIOSAddr = dev->BiosBase;
 	from           = X_CONFIG;
     }
     if (info->BIOSAddr) {
 	xf86DrvMsg(pScrn->scrnIndex, from,
-		   "BIOS at 0x%08lx\n", info->BIOSAddr);
+		   "BIOS at 0x%08lx\n", (unsigned long)info->BIOSAddr);
     }
 #endif
 
@@ -2750,7 +2750,8 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
     info->MMIOAddr = PCI_REGION_BASE(info->PciInfo, 2, REGION_MEM) & ~0xffULL;
     info->MMIOSize = PCI_REGION_SIZE(info->PciInfo, 2);
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TOTO SAYS %016llx\n", 
-		(unsigned long long)info->PciInfo->regions[2].base_addr);
+		(unsigned long long)PCI_REGION_BASE(info->PciInfo,
+		2, REGION_MEM));
     if (info->pEnt->device->IOBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
 		   "MMIO address override, using 0x%08lx instead of 0x%016llx\n",

commit af7690b9c300d37c3a0c51e27e0ad2ca009224a2
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Tue Nov 25 02:57:30 2008 -0500

    [PATCH] radeon: Fix PCI usage of 32-bit driver on 64-bit platform
    
    The radeon driver is storing PCI addresses in unsigned long's which
    won't work well on 32-bit platforms with 64-bit physical address space
    such as PowerPC 4xx. This fixes it by using unsigned long long instead.

diff --git a/src/radeon.h b/src/radeon.h
index 13dc15b..605b057 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -648,9 +648,9 @@ typedef struct {
     RADEONChipFamily  ChipFamily;
     RADEONErrata      ChipErrata;
 
-    unsigned long     LinearAddr;       /* Frame buffer physical address     */
-    unsigned long     MMIOAddr;         /* MMIO region physical address      */
-    unsigned long     BIOSAddr;         /* BIOS physical address             */
+    unsigned long long     LinearAddr;       /* Frame buffer physical address     */
+    unsigned long long     MMIOAddr;         /* MMIO region physical address      */
+    unsigned long long     BIOSAddr;         /* BIOS physical address             */
     uint32_t          fbLocation;
     uint32_t          gartLocation;
     uint32_t          mc_fb_location;
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 6164417..d670ab5 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -429,7 +429,7 @@ static Bool RADEONMapFB(ScrnInfoPtr pScrn)
     RADEONInfoPtr  info = RADEONPTR(pScrn);
 
     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, RADEON_LOGLEVEL_DEBUG,
-		   "Map: 0x%08lx, 0x%08lx\n", info->LinearAddr, info->FbMapSize);
+		   "Map: 0x%016llx, 0x%08lx\n", info->LinearAddr, info->FbMapSize);
 
 #ifndef XSERVER_LIBPCIACCESS
 
@@ -1750,11 +1750,11 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
     }
 
     from               = X_PROBED;
-    info->LinearAddr   = PCI_REGION_BASE(info->PciInfo, 0, REGION_MEM) & ~0x1ffffffUL;
+    info->LinearAddr   = PCI_REGION_BASE(info->PciInfo, 0, REGION_MEM) & ~0x1ffffffULL;
     pScrn->memPhysBase = info->LinearAddr;
     if (dev->MemBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-		   "Linear address override, using 0x%016lx instead of 0x%016lx\n",
+		   "Linear address override, using 0x%016lx instead of 0x%016llx\n",
 		   dev->MemBase,
 		   info->LinearAddr);
 	info->LinearAddr = dev->MemBase;
@@ -1765,7 +1765,7 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
 	return FALSE;
     }
     xf86DrvMsg(pScrn->scrnIndex, from,
-	       "Linear framebuffer at 0x%016lx\n", info->LinearAddr);
+	       "Linear framebuffer at 0x%016llx\n", info->LinearAddr);
 
 #ifndef XSERVER_LIBPCIACCESS
 				/* BIOS */
@@ -2747,11 +2747,13 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
     info->PciTag  = pciTag(PCI_DEV_BUS(info->PciInfo),
 			   PCI_DEV_DEV(info->PciInfo),
 			   PCI_DEV_FUNC(info->PciInfo));
-    info->MMIOAddr = PCI_REGION_BASE(info->PciInfo, 2, REGION_MEM) & ~0xffUL;
+    info->MMIOAddr = PCI_REGION_BASE(info->PciInfo, 2, REGION_MEM) & ~0xffULL;
     info->MMIOSize = PCI_REGION_SIZE(info->PciInfo, 2);
+	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "TOTO SAYS %016llx\n", 
+		(unsigned long long)info->PciInfo->regions[2].base_addr);
     if (info->pEnt->device->IOBase) {
 	xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
-		   "MMIO address override, using 0x%08lx instead of 0x%08lx\n",
+		   "MMIO address override, using 0x%08lx instead of 0x%016llx\n",
 		   info->pEnt->device->IOBase,
 		   info->MMIOAddr);
 	info->MMIOAddr = info->pEnt->device->IOBase;
@@ -2760,7 +2762,7 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, int flags)
 	goto fail1;
     }
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-	       "MMIO registers at 0x%016lx: size %ldKB\n", info->MMIOAddr, info->MMIOSize / 1024);
+	       "MMIO registers at 0x%016llx: size %ldKB\n", info->MMIOAddr, info->MMIOSize / 1024);
 
     if(!RADEONMapMMIO(pScrn)) {
 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR,

commit 065938617c0feab17f4274a5350de02a692ba065
Author: Ramon van der Stelt <rvanderstelt@xs4all.nl>
Date:   Tue Nov 25 02:23:46 2008 -0500

    Interlaced mode fixes
    
    see bug 12626

diff --git a/src/radeon_cursor.c b/src/radeon_cursor.c
index 08bfddf..0fcdcf0 100644
--- a/src/radeon_cursor.c
+++ b/src/radeon_cursor.c
@@ -221,9 +221,7 @@ radeon_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
 	OUTREG(AVIVO_D1CUR_HOT_SPOT + radeon_crtc->crtc_offset, (xorigin << 16) | yorigin);
 	avivo_lock_cursor(crtc, FALSE);
     } else {
-	if (mode->Flags & V_INTERLACE)
-	    y /= 2;
-	else if (mode->Flags & V_DBLSCAN)
+	if (mode->Flags & V_DBLSCAN)
 	    y *= 2;
 
 	if (crtc_id == 0) {
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 0ac19e7..035f2b8 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -477,6 +477,12 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
 
     radeon_output->Flags &= ~RADEON_USE_RMX;
 
+    /* 
+     *  Refresh the Crtc values without INTERLACE_HALVE_V 
+     *  Should we use output->scrn->adjustFlags like xf86RandRModeConvert() does? 
+     */
+    xf86SetModeCrtc(adjusted_mode, 0);
+
     /* decide if we are using RMX */
     if ((radeon_output->MonType == MT_LCD || radeon_output->MonType == MT_DFP)
 	&& radeon_output->rmx_type != RMX_OFF) {
@@ -536,7 +542,7 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
     if (IS_AVIVO_VARIANT) {
 	/* hw bug */
 	if ((mode->Flags & V_INTERLACE)
-	    && (mode->CrtcVSyncStart < (mode->CrtcVDisplay + 2)))
+	    && (adjusted_mode->CrtcVSyncStart < (adjusted_mode->CrtcVDisplay + 2)))
 	    adjusted_mode->CrtcVSyncStart = adjusted_mode->CrtcVDisplay + 2;
     }
 

commit 36a7dc6ea1e1929e986ab1159497c71521cb2f10
Author: Bryce Harrington <bryce@canonical.com>
Date:   Tue Nov 25 01:04:37 2008 -0500

    Additional AGP quirks
    
    bug 18693

diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index cb7df2c..960d784 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -744,10 +744,16 @@ static radeon_agpmode_quirk radeon_agpmode_quirk_list[] = {
     { PCI_VENDOR_INTEL,0x3575,  PCI_VENDOR_ATI,0x4c59,  PCI_VENDOR_DELL,0x00e3,  2 },
     /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (deb #467460) */
     { PCI_VENDOR_INTEL,0x3580,  PCI_VENDOR_ATI,0x4e50,  0x1025,0x0061,  1 },
+    /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (lp #141551) */
+    { PCI_VENDOR_INTEL,0x3580,  PCI_VENDOR_ATI,0x4e50,  0x1043,0x1942,  1 },
+    /* Intel 82852/82855 host bridge / Mobility FireGL 9000 R250 Needs AGPMode 1 (lp #296617) */
+    { PCI_VENDOR_INTEL,0x3580,  PCI_VENDOR_ATI,0x4c66,  0x1028,0x0149,  1 },
 
     /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (LP: #133192) */
     { 0x1849,0x3189,            PCI_VENDOR_ATI,0x5960,  0x1787, 0x5960,          4},
 
+    /* VIA VT8363 Host Bridge / R200 QL [Radeon 8500] Needs AGPMode 2 (lp #141551) */
+    { 0x1106,0x0305,            PCI_VENDOR_ATI,0x514c,  0x1002,0x013a,           2 },
     /* VIA VT8377 Host Bridge / R200 QM [Radeon 9100] Needs AGPMode 4 (deb #461144) */
     { 0x1106,0x3189,            PCI_VENDOR_ATI,0x514d,  0x174b,0x7149,           4 },
 

commit 2acb8e4ed220fccb21b22a53c5142ab3a35d32ef
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Tue Nov 25 15:07:09 2008 +1000

    radeon: fixup shared DDC lines for some rv610 cards.
    
    Some cards share DDC between a HDMI and VGA output, and expect the
    driver to use load detect or EDID to figure it out.
    
    airlied- shipped in RHEL5
    
    Signed-off-by: Dave Airlie <airlied@redhat.com>

diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c
index 851014b..3dfca17 100644
--- a/src/radeon_atombios.c
+++ b/src/radeon_atombios.c
@@ -1509,8 +1509,11 @@ RADEONLookupGPIOLineForDDC(ScrnInfoPtr pScrn, uint8_t id)
 
 static RADEONI2CBusRec
 rhdAtomParseI2CRecord(ScrnInfoPtr pScrn, atomBiosHandlePtr handle,
-			ATOM_I2C_RECORD *Record)
+		      ATOM_I2C_RECORD *Record, int i)
 {
+    RADEONInfoPtr info = RADEONPTR (pScrn);
+
+    info->BiosConnector[i].i2c_line_mux = Record->sucI2cId.bfI2C_LineMux;
     return RADEONLookupGPIOLineForDDC(pScrn, Record->sucI2cId.bfI2C_LineMux);
 }
 
@@ -1664,7 +1667,7 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
 	    switch (Record->ucRecordType) {
 		case ATOM_I2C_RECORD_TYPE:
 		    info->BiosConnector[i].ddc_i2c = rhdAtomParseI2CRecord(pScrn, info->atomBIOS,
-									   (ATOM_I2C_RECORD *)Record);
+									   (ATOM_I2C_RECORD *)Record, i);
 		    break;
 		case ATOM_HPD_INT_RECORD_TYPE:
 		    break;
@@ -1676,6 +1679,20 @@ RADEONGetATOMConnectorInfoFromBIOSObject (ScrnInfoPtr pScrn)
 		((char *)Record + Record->ucRecordSize);
 	}
     }
+
+    for (i = 0; i < ATOM_MAX_SUPPORTED_DEVICE; i++) {
+	if (info->BiosConnector[i].valid) {
+	    for (j = 0; j < ATOM_MAX_SUPPORTED_DEVICE; j++) {
+		if (info->BiosConnector[j].valid && (i != j) ) {
+		    if (info->BiosConnector[i].i2c_line_mux == info->BiosConnector[j].i2c_line_mux) {
+			info->BiosConnector[i].shared_ddc = TRUE;
+			info->BiosConnector[j].shared_ddc = TRUE;
+		    }
+		}
+	    }
+	}
+    }
+
     return TRUE;
 }
 
@@ -1929,6 +1946,7 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn)
 #endif
 
 	info->BiosConnector[i].valid = TRUE;
+	info->BiosConnector[i].shared_ddc = FALSE;
 	info->BiosConnector[i].output_id = ci.sucI2cId.sbfAccess.bfI2C_LineMux;
 	info->BiosConnector[i].devices = (1 << i);
 	info->BiosConnector[i].ConnectorType = ci.sucConnectorInfo.sbfAccess.bfConnectorType;
@@ -2028,6 +2046,9 @@ RADEONGetATOMConnectorInfoFromBIOSConnectorTable (ScrnInfoPtr pScrn)
 			    info->BiosConnector[j].DACType = info->BiosConnector[i].DACType;
 			    info->BiosConnector[j].devices |= info->BiosConnector[i].devices;
 			    info->BiosConnector[i].valid = FALSE;
+			} else {
+			    info->BiosConnector[i].shared_ddc = TRUE;
+			    info->BiosConnector[j].shared_ddc = TRUE;
 			}
 			/* other possible combos?  */
 		    }
diff --git a/src/radeon_output.c b/src/radeon_output.c
index bff65ad..0ac19e7 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -243,8 +243,6 @@ radeon_ddc_connected(xf86OutputPtr output)
 	}
     }
     if (MonInfo) {
-	if (!xf86ReturnOptValBool(info->Options, OPTION_IGNORE_EDID, FALSE))
-	    xf86OutputSetEDID(output, MonInfo);
 	if (radeon_output->type == OUTPUT_LVDS)
 	    MonType = MT_LCD;
 	else if (radeon_output->type == OUTPUT_DVI_D)
@@ -258,6 +256,24 @@ radeon_ddc_connected(xf86OutputPtr output)
 	    MonType = MT_DFP;
 	else
 	    MonType = MT_CRT;
+
+	if (radeon_output->shared_ddc) {
+	    if (radeon_output->type == OUTPUT_VGA) {
+		if (MonInfo->rawData[0x14] & 0x80) /* if it's digital and VGA */
+		    MonType = MT_NONE;
+		else
+		    MonType = MT_CRT;
+	    } else {
+		if (MonInfo->rawData[0x14] & 0x80) /* if it's digital and DVI/HDMI/etc. */
+		    MonType = MT_DFP;
+		else
+		    MonType = MT_NONE;
+	    }
+	}
+
+	if (MonType != MT_NONE)
+	    if (!xf86ReturnOptValBool(info->Options, OPTION_IGNORE_EDID, FALSE))
+		xf86OutputSetEDID(output, MonInfo);
     } else
 	MonType = MT_NONE;
 
@@ -2667,6 +2683,7 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
      */
     for (i = 0; i < RADEON_MAX_BIOS_CONNECTOR; i++) {
 	info->BiosConnector[i].valid = FALSE;
+	info->BiosConnector[i].shared_ddc = FALSE;
 	info->BiosConnector[i].ddc_i2c.valid = FALSE;
 	info->BiosConnector[i].DACType = DAC_NONE;
 	info->BiosConnector[i].TMDSType = TMDS_NONE;
@@ -2790,6 +2807,7 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
 	    radeon_output->output_id = info->BiosConnector[i].output_id;
 	    radeon_output->ddc_i2c = info->BiosConnector[i].ddc_i2c;
 	    radeon_output->igp_lane_info = info->BiosConnector[i].igp_lane_info;
+	    radeon_output->shared_ddc = info->BiosConnector[i].shared_ddc;
 
 	    if (radeon_output->ConnectorType == CONNECTOR_DVI_D)
 		radeon_output->DACType = DAC_NONE;
diff --git a/src/radeon_probe.h b/src/radeon_probe.h
index c14241e..a971a31 100644
--- a/src/radeon_probe.h
+++ b/src/radeon_probe.h
@@ -208,6 +208,8 @@ typedef struct {
     int hpd_mask;
     RADEONI2CBusRec ddc_i2c;
     int igp_lane_info;
+    Bool shared_ddc;
+    int i2c_line_mux;
 } RADEONBIOSConnector;
 
 typedef struct _RADEONOutputPrivateRec {
@@ -267,6 +269,7 @@ typedef struct _RADEONOutputPrivateRec {
     int               output_id;
     int               devices;
     Bool enabled;
+    Bool shared_ddc;
 } RADEONOutputPrivateRec, *RADEONOutputPrivatePtr;
 
 struct avivo_pll_state {

commit b01e35168de40d192fd7a9ce6884b9c7419afbd4
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 24 21:06:42 2008 -0500

    Fix up posted logic
    
    noticed by benh on IRC

diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index 1b85e8d..3e3613a 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -98,7 +98,7 @@ radeon_read_bios(ScrnInfoPtr pScrn)
 }
 
 static Bool
-radeon_read_unposted_bios(ScrnInfoPtr pScrn)
+radeon_read_disabled_bios(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr info     = RADEONPTR(pScrn);
     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
@@ -293,7 +293,6 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
     RADEONInfoPtr info     = RADEONPTR(pScrn);
     int tmp;
     unsigned short dptr;
-    Bool posted = TRUE;
 
 #ifdef XSERVER_LIBPCIACCESS
     int size = info->PciInfo->rom_size > RADEON_VBIOS_SIZE ? info->PciInfo->rom_size : RADEON_VBIOS_SIZE;
@@ -310,10 +309,8 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
 	    info->BIOSAddr = pInt10->BIOSseg << 4;
 	    (void)memcpy(info->VBIOS, xf86int10Addr(pInt10, info->BIOSAddr),
 			 RADEON_VBIOS_SIZE);
-	} else if (!radeon_read_bios(pScrn)) {
-	    (void)radeon_read_unposted_bios(pScrn);
-	    posted = FALSE;
-	}
+	} else if (!radeon_read_bios(pScrn))
+	    (void)radeon_read_disabled_bios(pScrn);
     }
 
     if (info->VBIOS[0] != 0x55 || info->VBIOS[1] != 0xaa) {
@@ -407,17 +404,14 @@ RADEONGetBIOSInfo(ScrnInfoPtr pScrn, xf86Int10InfoPtr  pInt10)
      * so let's work around this for now by only POSTing if none of the
      * CRTCs are enabled
      */
-    if ((!posted) && info->VBIOS) {
-	posted = radeon_card_posted(pScrn);
-    }
-
-    if ((!posted) && info->VBIOS) {
+    if ((!radeon_card_posted(pScrn)) && info->VBIOS) {
 	if (info->IsAtomBios) {
 	    if (!rhdAtomASICInit(info->atomBIOS))
 		xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
 			   "%s: AsicInit failed.\n",__func__);
 	} else {
 #if 0
+	    /* FIX ME */
 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Attempting to POST via legacy BIOS tables\n");
 	    RADEONGetBIOSInitTableOffsets(pScrn);
 	    RADEONPostCardFromBIOSTables(pScrn);

commit d7a03e93372b17d642b42f5490464616ae7c99c1
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 24 15:52:05 2008 -0500

    Get hardcoded edid from the bios for servers that support it
    
    should fix bug 11300

diff --git a/src/radeon.h b/src/radeon.h
index f7ae1a8..13dc15b 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -836,6 +836,9 @@ typedef struct {
     Bool              r600_shadow_fb;
     void *fb_shadow;
 
+    /* some server chips have a hardcoded edid in the bios so that they work with KVMs */
+    Bool get_hardcoded_edid_from_bios;
+
 } RADEONInfoRec, *RADEONInfoPtr;
 
 #define RADEONWaitForFifo(pScrn, entries)				\
@@ -926,7 +929,7 @@ extern Bool RADEONGetClockInfoFromBIOS(ScrnInfoPtr pScrn);
 extern Bool RADEONGetConnectorInfoFromBIOS(ScrnInfoPtr pScrn);
 extern Bool RADEONGetDAC2InfoFromBIOS(xf86OutputPtr output);
 extern Bool RADEONGetExtTMDSInfoFromBIOS(xf86OutputPtr output);
-extern Bool RADEONGetHardCodedEDIDFromBIOS(xf86OutputPtr output);
+extern xf86MonPtr RADEONGetHardCodedEDIDFromBIOS(xf86OutputPtr output);
 extern Bool RADEONGetBIOSInitTableOffsets(ScrnInfoPtr pScrn);
 extern Bool RADEONGetLVDSInfoFromBIOS(xf86OutputPtr output);
 extern Bool RADEONGetTMDSInfoFromBIOS(xf86OutputPtr output);
diff --git a/src/radeon_bios.c b/src/radeon_bios.c
index 89c816c..1b85e8d 100644
--- a/src/radeon_bios.c
+++ b/src/radeon_bios.c
@@ -1053,39 +1053,27 @@ Bool RADEONGetLVDSInfoFromBIOS (xf86OutputPtr output)
     return TRUE;
 }
 
-Bool RADEONGetHardCodedEDIDFromBIOS (xf86OutputPtr output)
+xf86MonPtr RADEONGetHardCodedEDIDFromBIOS (xf86OutputPtr output)
 {
     ScrnInfoPtr pScrn = output->scrn;
-    RADEONInfoPtr  info       = RADEONPTR(pScrn);
-    RADEONOutputPrivatePtr radeon_output = output->driver_private;
+    RADEONInfoPtr info = RADEONPTR(pScrn);
     unsigned long tmp;
-    char EDID[256];
+    unsigned char edid[256];
+    xf86MonPtr mon = NULL;
 
-    if (!info->VBIOS) return FALSE;
+    if (!info->VBIOS)
+	return mon;
 
-    if (info->IsAtomBios) {
-	/* Not yet */
-	return FALSE;
-    } else {
-	if (!(tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x4c))) {
-	    return FALSE;
+    if (!info->IsAtomBios) {
+	tmp = RADEON_BIOS16(info->ROMHeaderStart + 0x4c);
+	if (tmp) {
+	    memcpy(edid, (unsigned char*)(info->VBIOS + tmp), 256);
+	    if (edid[1] == 0xff)
+		mon = xf86InterpretEDID(output->scrn->scrnIndex, edid);
 	}
-
-	memcpy(EDID, (char*)(info->VBIOS + tmp), 256);
-
-	radeon_output->DotClock = (*(uint16_t*)(EDID+54)) * 10;
-	radeon_output->PanelXRes = (*(uint8_t*)(EDID+56)) + ((*(uint8_t*)(EDID+58))>>4)*256;
-	radeon_output->HBlank = (*(uint8_t*)(EDID+57)) + ((*(uint8_t*)(EDID+58)) & 0xf)*256;
-	radeon_output->HOverPlus = (*(uint8_t*)(EDID+62)) + ((*(uint8_t*)(EDID+65)>>6)*256);
-	radeon_output->HSyncWidth = (*(uint8_t*)(EDID+63)) + (((*(uint8_t*)(EDID+65)>>4) & 3)*256);
-	radeon_output->PanelYRes = (*(uint8_t*)(EDID+59)) + ((*(uint8_t*)(EDID+61))>>4)*256;
-	radeon_output->VBlank = ((*(uint8_t*)(EDID+60)) + ((*(uint8_t*)(EDID+61)) & 0xf)*256);
-	radeon_output->VOverPlus = (((*(uint8_t*)(EDID+64))>>4) + (((*(uint8_t*)(EDID+65)>>2) & 3)*16));
-	radeon_output->VSyncWidth = (((*(uint8_t*)(EDID+64)) & 0xf) + ((*(uint8_t*)(EDID+65)) & 3)*256);
-	radeon_output->Flags      = V_NHSYNC | V_NVSYNC; /**(uint8_t*)(EDID+71);*/
-	xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Hardcoded EDID data will be used for TMDS panel\n");
     }
-    return TRUE;
+
+    return mon;
 }
 
 Bool RADEONGetTMDSInfoFromBIOS (xf86OutputPtr output)
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index c759bd6..6164417 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1688,6 +1688,7 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
     info->IsDellServer = FALSE;
     info->HasSingleDAC = FALSE;
     info->InternalTVOut = TRUE;
+    info->get_hardcoded_edid_from_bios = FALSE;
 
     for (i = 0; i < sizeof(RADEONCards) / sizeof(RADEONCardInfo); i++) {
 	if (info->Chipset == RADEONCards[i].pci_device_id) {
@@ -1705,6 +1706,10 @@ static Bool RADEONPreInitChipType(ScrnInfoPtr pScrn)
     switch (info->Chipset) {
     case PCI_CHIP_RN50_515E:  /* RN50 is based on the RV100 but 3D isn't guaranteed to work.  YMMV. */
     case PCI_CHIP_RN50_5969:
+	/* Some Sun servers have a hardcoded edid so KVMs work properly */
+	if ((PCI_SUB_VENDOR_ID(info->PciInfo) == 0x108e) &&
+	    (PCI_SUB_DEVICE_ID(info->PciInfo) == 0x4133))
+	    info->get_hardcoded_edid_from_bios = TRUE;
     case PCI_CHIP_RV100_QY:
     case PCI_CHIP_RV100_QZ:
 	/* DELL triple-head configuration. */
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 8c794fb..bff65ad 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -229,7 +229,14 @@ radeon_ddc_connected(xf86OutputPtr output)
 	    (radeon_output->ddc_i2c.mask_clk_reg == RADEON_GPIO_VGA_DDC) &&
 	    info->IsAtomBios)
 	    MonInfo = radeon_atom_get_edid(output);
-	else {
+	else if (info->get_hardcoded_edid_from_bios) {
+	    MonInfo = RADEONGetHardCodedEDIDFromBIOS(output);
+	    if (MonInfo == NULL) {
+		RADEONI2CDoLock(output, TRUE);
+		MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
+		RADEONI2CDoLock(output, FALSE);
+	    }
+	} else {
 	    RADEONI2CDoLock(output, TRUE);
 	    MonInfo = xf86OutputGetEDID(output, radeon_output->pI2CBus);
 	    RADEONI2CDoLock(output, FALSE);

commit 3858e31fa9d77d52a5cabb02f53f06385eab40f7
Author: Alex Deucher <alexdeucher@gmail.com>
Date:   Mon Nov 24 14:39:41 2008 -0500

    Don't support rotation is accel is not available
    
    Fixes bug 18068

diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 9040bae..d764782 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -472,7 +472,7 @@ radeon_crtc_shadow_destroy(xf86CrtcPtr crtc, PixmapPtr rotate_pixmap, void *data
 
 }
 
-static const xf86CrtcFuncsRec radeon_crtc_funcs = {
+static xf86CrtcFuncsRec radeon_crtc_funcs = {
     .dpms = radeon_crtc_dpms,
     .save = NULL, /* XXX */
     .restore = NULL, /* XXX */
@@ -536,6 +536,13 @@ Bool RADEONAllocateControllers(ScrnInfoPtr pScrn, int mask)
     RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn);
     RADEONInfoPtr  info = RADEONPTR(pScrn);
 
+    if ((info->ChipFamily < CHIP_FAMILY_R600) &&
+	(!xf86ReturnOptValBool(info->Options, OPTION_NOACCEL, FALSE))) {
+	radeon_crtc_funcs.shadow_create = radeon_crtc_shadow_create;
+	radeon_crtc_funcs.shadow_allocate = radeon_crtc_shadow_allocate;
+	radeon_crtc_funcs.shadow_destroy = radeon_crtc_shadow_destroy;
+    }
+
     if (mask & 1) {
 	if (pRADEONEnt->Controller[0])
 	    return TRUE;

commit 3d27876d91ef69d71f17b6cf8c07c26bf12857b4
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Nov 10 15:47:13 2008 +1000

    radeon: always align dstPitch to 64 bytes for textured video
    
    bz# 18454

diff --git a/src/radeon_textured_video.c b/src/radeon_textured_video.c
index c185b46..35b332b 100644
--- a/src/radeon_textured_video.c
+++ b/src/radeon_textured_video.c
@@ -188,13 +188,7 @@ RADEONPutImageTextured(ScrnInfoPtr pScrn,
 	break;
     }
 
-#ifdef XF86DRI
-   if (info->directRenderingEnabled && info->DMAForXv)
-       /* The upload blit only supports multiples of 64 bytes */
-       dstPitch = (dstPitch + 63) & ~63;
-   else
-#endif
-       dstPitch = (dstPitch + 15) & ~15;
+   dstPitch = (dstPitch + 63) & ~63;
 
     if (pPriv->video_memory != NULL && size != pPriv->size) {
 	radeon_legacy_free_memory(pScrn, pPriv->video_memory);

commit 6c8b352264540ccc4622a7c0b704ce452dcd707d
Author: Dave Airlie <airlied@redhat.com>


Reply to: