xf86-video-ati: Branch 'master' - 2 commits

Alex Deucher agd5f at kemper.freedesktop.org
Thu Feb 19 15:59:50 PST 2009


 src/radeon_driver.c |   22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

New commits:
commit ca22390c8a5256bbc8eeff775d5eebf0e892d890
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Thu Feb 19 18:58:40 2009 -0500

    R6xx/R7xx: fix up a few more paths

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 8591b3c..709a789 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1508,6 +1508,9 @@ static uint32_t RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn)
     info->dri->newMemoryMap = TRUE;
 #endif /* XF86DRI */
 
+    if (info->ChipFamily >= CHIP_FAMILY_R600)
+	return aper_size;
+
     /* Set HDP_APER_CNTL only on cards that are known not to be broken,
      * that is has the 2nd generation multifunction PCI interface
      */
@@ -1516,7 +1519,7 @@ static uint32_t RADEONGetAccessibleVRAM(ScrnInfoPtr pScrn)
 	info->ChipFamily == CHIP_FAMILY_RV380 ||
 	info->ChipFamily == CHIP_FAMILY_R420 ||
 	info->ChipFamily == CHIP_FAMILY_RV410 ||
-        IS_AVIVO_VARIANT) {
+	IS_AVIVO_VARIANT) {
 	    OUTREGP (RADEON_HOST_PATH_CNTL, RADEON_HDP_APER_CNTL,
 		     ~RADEON_HDP_APER_CNTL);
 	    xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@@ -1593,9 +1596,10 @@ static Bool RADEONPreInitVRAM(ScrnInfoPtr pScrn)
     if (pScrn->videoRam > accessible)
 	pScrn->videoRam = accessible;
 
-    if (!IS_AVIVO_VARIANT)
+    if (!IS_AVIVO_VARIANT) {
 	info->MemCntl            = INREG(RADEON_SDRAM_MODE_REG);
-    info->BusCntl            = INREG(RADEON_BUS_CNTL);
+	info->BusCntl            = INREG(RADEON_BUS_CNTL);
+    }
 
     RADEONGetVRamType(pScrn);
 
commit cadae2a8d9979b2d61eae7d1f7a9ab8f5eb28e83
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Thu Feb 19 18:50:49 2009 -0500

    Fix MC setup on systems with more than 512 MB of VRAM
    
    many thanks to app4des on IRC for helping me sort this out.

diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 7424577..8591b3c 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -1261,8 +1261,8 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
 {
     RADEONInfoPtr  info   = RADEONPTR(pScrn);
     unsigned char *RADEONMMIO = info->MMIO;
-    uint32_t       mem_size;
-    uint32_t       aper_size;
+    uint64_t       mem_size;
+    uint64_t       aper_size;
 
     radeon_read_mc_fb_agp_location(pScrn, LOC_FB | LOC_AGP, &info->mc_fb_location,
 				   &info->mc_agp_location, &info->mc_agp_location_hi);
@@ -1333,12 +1333,14 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn)
 		    aper0_base &= ~(mem_size - 1);
 
 	    if (info->ChipFamily >= CHIP_FAMILY_R600) {
-		info->mc_fb_location = (aper0_base >> 24) |
-		    (((aper0_base + mem_size - 1) & 0xff000000U) >> 8);
+		uint64_t mc_fb = ((aper0_base >> 24) & 0xffff) |
+		    (((aper0_base + mem_size - 1) >> 8) & 0xffff0000);
+		info->mc_fb_location = mc_fb & 0xffffffff;
 		ErrorF("mc fb loc is %08x\n", (unsigned int)info->mc_fb_location);
 	    } else {
-		info->mc_fb_location = (aper0_base >> 16) |
+		uint64_t mc_fb = ((aper0_base >> 16) & 0xffff) |
 		    ((aper0_base + mem_size - 1) & 0xffff0000U);
+		info->mc_fb_location = mc_fb & 0xffffffff;
 	    }
 	}
     }


More information about the xorg-commit mailing list