diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-01-26 12:03:45 -0500 |
---|---|---|
committer | Alex Deucher <alexdeucher@gmail.com> | 2010-01-27 16:01:31 -0500 |
commit | cbd642af7c76469d701471daea0c8d167567ccf8 (patch) | |
tree | fe8643a8ac610ded72124da2ae80170561801815 | |
parent | e5933fd74923a07aa401bdb4ecd8d1d641148440 (diff) |
radeon: use mmio bar size rather than hardcoded number for register ops
newer asics have larger mmio bars
-rw-r--r-- | src/radeon_atombios.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index b19e653c..d6c58bc3 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -2691,13 +2691,14 @@ UINT32 CailReadATIRegister(VOID* CAIL, UINT32 idx) { ScrnInfoPtr pScrn = xf86Screens[((atomBiosHandlePtr)CAIL)->scrnIndex]; + RADEONInfoPtr info = RADEONPTR(pScrn); RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); unsigned char *RADEONMMIO = pRADEONEnt->MMIO; UINT32 ret; UINT32 mm_reg = idx << 2; CAILFUNC(CAIL); - if (mm_reg < 0x10000) + if (mm_reg < info->MMIOSize) ret = INREG(mm_reg); else { OUTREG(RADEON_MM_INDEX, mm_reg); @@ -2712,12 +2713,13 @@ VOID CailWriteATIRegister(VOID *CAIL, UINT32 idx, UINT32 data) { ScrnInfoPtr pScrn = xf86Screens[((atomBiosHandlePtr)CAIL)->scrnIndex]; + RADEONInfoPtr info = RADEONPTR(pScrn); RADEONEntPtr pRADEONEnt = RADEONEntPriv(pScrn); unsigned char *RADEONMMIO = pRADEONEnt->MMIO; UINT32 mm_reg = idx << 2; CAILFUNC(CAIL); - if (mm_reg < 0x10000) + if (mm_reg < info->MMIOSize) OUTREG(mm_reg, data); else { OUTREG(RADEON_MM_INDEX, mm_reg); |