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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>  Sat, 29 Nov 2008 10:50:18 +0100
+ -- Brice Goglin <[EMAIL PROTECTED]>  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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+Date:   Tue Nov 25 02:23:46 2008 -0500
+
+    Interlaced mode fixes
+    
+    see bug 12626
+
+commit 36a7dc6ea1e1929e986ab1159497c71521cb2f10
+Author: Bryce Harrington <[EMAIL PROTECTED]>
+Date:   Tue Nov 25 01:04:37 2008 -0500
+
+    Additional AGP quirks
+    
+    bug 18693
+
+commit 2acb8e4ed220fccb21b22a53c5142ab3a35d32ef
+Author: Alex Deucher <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+
+commit b01e35168de40d192fd7a9ce6884b9c7419afbd4
+Author: Alex Deucher <[EMAIL PROTECTED]>
+Date:   Mon Nov 24 21:06:42 2008 -0500
+
+    Fix up posted logic
+    
+    noticed by benh on IRC
+
+commit d7a03e93372b17d642b42f5490464616ae7c99c1
+Author: Alex Deucher <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+Date:   Wed Oct 29 15:53:57 2008 +1000
+
+    pciid: add HD3300 - 790GX chipset.
+    
+    RH BZ (#466706)
+
+commit 902eaf768142c6c7dcc487e10775027b84cd1f9a
+Author: Alex Deucher <[EMAIL PROTECTED]>
+Date:   Thu Nov 6 15:46:43 2008 -0500
+
+    Check for LVDS on all IGP chips
+    
+    - fixes bug 18395
+
+commit 44abaa0ea8e5e3bbe833fa73e6d011618bb6d7e7
+Author: Adam Jackson <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+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 <[EMAIL PROTECTED]>
+Date:   Sun Oct 26 16:05:04 2008 +0100
+
+    Bug#7148: Fix manpage formatting
+
+commit 98fdd78a1229584b922f816f331a45bfc178c961
+Author: Dave Airlie <[EMAIL PROTECTED]>
+Date:   Tue Oct 21 18:36:22 2008 +1000
+
+    atombios: oops typo
+
+commit 763dff6c117a10b6a57ba1854c5b798359789e44
+Author: Dave Airlie <[EMAIL PROTECTED]>
+Date:   Tue Oct 21 18:35:44 2008 +1000
+
+    atombios: set missing pixel clock
+
+commit 435cf7da68186f2601c4b888296117d4f652c625
+Author: Alex Deucher <[EMAIL PROTECTED]>
+Date:   Wed Oct 15 10:52:14 2008 -0400
+
+    Add LCD dithering quirk for macbook pro
+    
+    fixes bug 17897.
+
 commit c0e6cb6d0eeef8f2ea60d840e1cd668fa92cd7f9
 Author: Alex Deucher <[EMAIL PROTECTED]>
 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 <[EMAIL PROTECTED]>  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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>

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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>
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 <[EMAIL PROTECTED]>


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to