xf86-video-ati: Branch 'master'
Alex Deucher
agd5f at kemper.freedesktop.org
Thu Jul 23 10:29:41 PDT 2009
src/radeon_driver.c | 13 +++++++++++++
src/radeon_reg.h | 5 +++++
2 files changed, 18 insertions(+)
New commits:
commit 328e4c816348b6f867df30b39856dbe78c8e0dcc
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Thu Jul 23 13:28:36 2009 -0400
RS780: fill in MC access functions
Also, r6xx/r7xx don't have indirect MC space, so
don't try to access it.
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 535b316..3791305 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -621,6 +621,12 @@ unsigned RADEONINMC(ScrnInfoPtr pScrn, int addr)
} else if (info->ChipFamily == CHIP_FAMILY_RS600) {
OUTREG(RS600_MC_INDEX, ((addr & RS600_MC_ADDR_MASK) | RS600_MC_IND_CITF_ARB0));
data = INREG(RS600_MC_DATA);
+ } else if ((info->ChipFamily == CHIP_FAMILY_RS780) ||
+ (info->ChipFamily == CHIP_FAMILY_RS880)) {
+ OUTREG(RS780_MC_INDEX, (addr & RS780_MC_INDEX_MASK));
+ data = INREG(RS780_MC_DATA);
+ } else if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ data = 0;
} else if (IS_AVIVO_VARIANT) {
OUTREG(AVIVO_MC_INDEX, (addr & 0xff) | 0x7f0000);
(void)INREG(AVIVO_MC_INDEX);
@@ -657,6 +663,13 @@ void RADEONOUTMC(ScrnInfoPtr pScrn, int addr, uint32_t data)
RS600_MC_IND_CITF_ARB0 |
RS600_MC_IND_WR_EN));
OUTREG(RS600_MC_DATA, data);
+ } else if ((info->ChipFamily == CHIP_FAMILY_RS780) ||
+ (info->ChipFamily == CHIP_FAMILY_RS880)) {
+ OUTREG(RS780_MC_INDEX, ((addr & RS780_MC_INDEX_MASK) |
+ RS780_MC_INDEX_WR_EN));
+ OUTREG(RS780_MC_DATA, data);
+ } else if (info->ChipFamily >= CHIP_FAMILY_R600) {
+ // do nothing
} else if (IS_AVIVO_VARIANT) {
OUTREG(AVIVO_MC_INDEX, (addr & 0xff) | 0xff0000);
(void)INREG(AVIVO_MC_INDEX);
diff --git a/src/radeon_reg.h b/src/radeon_reg.h
index 1db7c67..9df7fff 100644
--- a/src/radeon_reg.h
+++ b/src/radeon_reg.h
@@ -3549,6 +3549,11 @@
# define R520_MEM_NUM_CHANNELS_SHIFT 24
# define R520_MC_CHANNEL_SIZE (1 << 23)
+#define RS780_MC_INDEX 0x28f8
+# define RS780_MC_INDEX_MASK 0x1ff
+# define RS780_MC_INDEX_WR_EN (1 << 9)
+#define RS780_MC_DATA 0x28fc
+
#define R600_RAMCFG 0x2408
# define R600_CHANSIZE (1 << 7)
# define R600_CHANSIZE_OVERRIDE (1 << 10)
More information about the xorg-commit
mailing list