From 10ba4f0a435d7c1ed9f4a36a8d607f0f0b63be30 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 18 Sep 2006 19:41:21 +1000 Subject: radeon: fix rn50 memmap This should fixup the rn50/m6/m7 memory map problem that has been reported since BenH's memory mapping changes (cherry picked from 9c0c805704f1df1b66adc2a6b9313597ae5b86cc commit) --- src/radeon_driver.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 03d1e89..6d62701 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -2296,7 +2296,8 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) { RADEONInfoPtr info = RADEONPTR(pScrn); unsigned char *RADEONMMIO = info->MMIO; - unsigned long agp_size, agp_base, mem_size; + unsigned long mem_size; + CARD32 aper_size; /* Default to existing values */ info->mc_fb_location = INREG(RADEON_MC_FB_LOCATION); @@ -2306,13 +2307,18 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) * but the real video RAM instead */ mem_size = INREG(RADEON_CONFIG_MEMSIZE); + aper_size = INREG(RADEON_CONFIG_APER_SIZE); if (mem_size == 0) mem_size = 0x800000; + /* Fix for RN50, M6, M7 with 8/16/32(??) MBs of VRAM - + Novell bug 204882 + along with lots of ubuntu ones */ + if (aper_size > mem_size) + mem_size = aper_size; + #ifdef XF86DRI /* Apply memory map limitation if using an old DRI */ if (info->directRenderingEnabled && !info->newMemoryMap) { - CARD32 aper_size = INREG(RADEON_CONFIG_APER_SIZE); if (aper_size < mem_size) mem_size = aper_size; } @@ -2361,8 +2367,6 @@ static void RADEONInitMemoryMap(ScrnInfoPtr pScrn) RADEONTRACE(("RADEONInitMemoryMap() : \n")); RADEONTRACE((" mem_size : 0x%08lx\n", mem_size)); - RADEONTRACE((" agp_size : 0x%08lx\n", agp_size)); - RADEONTRACE((" agp_base : 0x%08lx\n", agp_base)); RADEONTRACE((" MC_FB_LOCATION : 0x%08lx\n", info->mc_fb_location)); RADEONTRACE((" MC_AGP_LOCATION : 0x%08lx\n", info->mc_agp_location)); } -- cgit v1.2.3