summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2010-08-10 10:47:47 +1000
committerDave Airlie <airlied@airlied-rhel5.(none)>2010-11-12 09:24:34 +1000
commit68618a6b0406c8952f571bf2414dd2f6d9037219 (patch)
treec6c0d4580f18b641b5cb8b5c810e297d64af776f
parentbd9d25c4271a30a64dcb0d78df630e49a9e2a802 (diff)
evergreen: add initial dac support
-rw-r--r--avivotool.c14
-rw-r--r--radeon_reg.h8
2 files changed, 21 insertions, 1 deletions
diff --git a/avivotool.c b/avivotool.c
index 5694956..184aa62 100644
--- a/avivotool.c
+++ b/avivotool.c
@@ -939,7 +939,7 @@ void eg_cmd_regs(const char *type)
int i;
uint32_t tmp, tmp1;
char tmpname[10];
-
+
for (i = 0; i < EG_NUM_OFFSETS; i++) {
tmp = EG_GET_MODE_REG(i, EVERGREEN_CRTC_CONTROL);
tmp1 = EG_GET_MODE_REG(i, EVERGREEN_CUR_CONTROL);
@@ -1010,6 +1010,18 @@ void eg_cmd_regs(const char *type)
EG_GET_MODE_REG(i, EVERGREEN_CUR_SURFACE_ADDRESS_HIGH),
EG_GET_MODE_REG(i, EVERGREEN_CUR_SURFACE_ADDRESS));
}
+
+ tmp = GET_REG(EVERGREEN_DACA_BASE);
+ printf("\nDACA: %s\n", tmp & 0x1 ? "Enabled" : "Disabled");
+ if (tmp & 0x1) {
+ printf("DACA en:%08x source:%08x\n", tmp, GET_REG(EVERGREEN_DACA_BASE + AVIVO_DAC_SOURCE_SELECT_OFFSET));
+ }
+
+ tmp = GET_REG(EVERGREEN_DACB_BASE);
+ printf("DACB: %s\n", tmp & 0x1 ? "Enabled" : "Disabled");
+ if (tmp & 0x1) {
+ printf("DACB: en:%08x source:%08x\n", tmp, GET_REG(EVERGREEN_DACB_BASE + AVIVO_DAC_SOURCE_SELECT_OFFSET));
+ }
printf("\n");
}
diff --git a/radeon_reg.h b/radeon_reg.h
index aa588f1..2951a7b 100644
--- a/radeon_reg.h
+++ b/radeon_reg.h
@@ -3070,3 +3070,11 @@
/* CRTC blocks at 0x6df0, 0x79f0, 0x105f0, 0x111f0, 0x11df0, 0x129f0 */
#define EVERGREEN_CRTC_CONTROL 0x6e70
+
+/* from ROM tables, EG DAC1 is at 0x66b0 and DAC2 at 0x6790 */
+#define EVERGREEN_DACA_BASE 0x6690
+#define EVERGREEN_DACB_BASE 0x6790
+
+#define EVERGREEN_DACA_CONTROL 0x6690
+#define EVERGREEN_DACA_SOURCE_SELECT 0x6694
+#define EVERGREEN_DACB_CONTROL 0x6790