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