aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJerome Glisse <[email protected]>2009-05-22 23:44:44 +0200
committerJerome Glisse <[email protected]>2009-05-22 23:44:44 +0200
commit434f9200422a9e937277ca592ef14a63781dec16 (patch)
tree6019ac1991ab488ff14c505864268fc337ef593d
parentd7cc0eb47930d6c8ebfd18fefbe48fe8eec696a0 (diff)
radeon: reading back to scratch reg through status map doesn't work
For some unknown reasons the scratch reg value doesn't endup in the status map at the scratch reg offset, this is a temporary work around until we figure out why it doesn't work.
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_bo_legacy.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
index 03a6299ed8a..6a8da402b1b 100644
--- a/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
+++ b/src/mesa/drivers/dri/radeon/radeon_bo_legacy.c
@@ -48,6 +48,7 @@
#include "radeon_drm.h"
#include "radeon_common.h"
#include "radeon_bocs_wrapper.h"
+#include "radeon_macros.h"
/* no seriously texmem.c is this screwed up */
struct bo_legacy_texture_object {
@@ -164,6 +165,7 @@ static int legacy_free_handle(struct bo_manager_legacy *bom, uint32_t handle)
static void legacy_get_current_age(struct bo_manager_legacy *boml)
{
drm_radeon_getparam_t gp;
+ unsigned char *RADEONMMIO = NULL;
int r;
if (IS_R300_CLASS(boml->screen)) {
@@ -175,8 +177,11 @@ static void legacy_get_current_age(struct bo_manager_legacy *boml)
fprintf(stderr, "%s: drmRadeonGetParam: %d\n", __FUNCTION__, r);
exit(1);
}
- } else
- boml->current_age = boml->screen->scratch[3];
+ } else {
+ RADEONMMIO = boml->screen->mmio.map;
+ boml->current_age = boml->screen->scratch[3];
+ boml->current_age = INREG(RADEON_GUI_SCRATCH_REG3);
+ }
}
static int legacy_is_pending(struct radeon_bo *bo)