All pastes #1035135 Raw Edit

Untitled

public text v1 · immutable
#1035135 ·published 2008-05-31 18:18 UTC
rendered paste body
diff --git a/src/revenge_detect.c b/src/revenge_detect.c
index bfeb3fa..da5aeb0 100644
--- a/src/revenge_detect.c
+++ b/src/revenge_detect.c
@@ -117,18 +117,27 @@ void
 detect_fb_aperture (void)
 {
   /* R300 */
-  fb_addr = (register_read (RADEON_MC_FB_LOCATION) & 0xffff) << 16;
-  fb_len =
-    ((register_read (RADEON_MC_FB_LOCATION) & 0xffff0000) + 0x10000) -
-    fb_addr;
-
-  if (!fb_addr)
+  if (option_interface == INTERFACE_RS690)
+  {
+    unsigned int tmp = register_read_rs690 (RADEON_RS690FB_LOCATION);
+    fb_addr = (tmp & 0xffff) << 16;
+    fb_len = (tmp & 0xffff0000) - fb_addr + 0x10000;
+  }
+  else
+  {
+    fb_addr = (register_read (RADEON_MC_FB_LOCATION) & 0xffff) << 16;
+    fb_len =
+      ((register_read (RADEON_MC_FB_LOCATION) & 0xffff0000) + 0x10000) -
+      fb_addr;
+
+    if (!fb_addr)
     {
       /* R500 */
       fb_addr = register_read (AVIVO_CRTC1_FB_LOCATION);
       fb_len = register_read (AVIVO_CRTC1_FB_END) - fb_addr;
     }
-
+  }
+  
   if (option_debug)
     {
       printf ("%s: fb_addr = 0x%08x fb_len = 0x%08x\n", __func__, fb_addr,
diff --git a/src/revenge_main.h b/src/revenge_main.h
index fd7f443..2584ba4 100644
--- a/src/revenge_main.h
+++ b/src/revenge_main.h
@@ -115,6 +115,7 @@
 #define RADEON_RS690GART_DATA           0x7c
 
 #define RADEON_RS690GART_BASE_ADDR      0x2c
+#define RADEON_RS690FB_LOCATION         0x100
 #define RADEON_RS690GART_LOCATION       0x101
 
 #define R300_TX_SIZE_0                      0x4480