summaryrefslogtreecommitdiff
path: root/shared-core/radeon_state.c
diff options
context:
space:
mode:
authorMichel Daenzer <michel@daenzer.net>2002-07-11 20:31:12 +0000
committerMichel Daenzer <michel@daenzer.net>2002-07-11 20:31:12 +0000
commitfd86ac9561dc77ef23e19d28723b40c72bdf1e97 (patch)
tree4c1b91512341d46f5a2988ab6266fffa76edf14f /shared-core/radeon_state.c
parent2ec9c15d8ce45d95ef395a4fff114109c908a572 (diff)
Don't read scratch registers directly, obtain the values via the GET_PARAM
ioctl. The DRM reads them from memory addresses the chip writes to on updates. Fall back to reading the registers directly with an old DRM. (Tim Smith, cleanups by myself)
Diffstat (limited to 'shared-core/radeon_state.c')
-rw-r--r--shared-core/radeon_state.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/shared-core/radeon_state.c b/shared-core/radeon_state.c
index 83fae493..15cd759a 100644
--- a/shared-core/radeon_state.c
+++ b/shared-core/radeon_state.c
@@ -1843,6 +1843,15 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
case RADEON_PARAM_AGP_BUFFER_OFFSET:
value = dev_priv->agp_buffers_offset;
break;
+ case RADEON_PARAM_LAST_FRAME:
+ value = DRM_READ32(&dev_priv->scratch[0]);
+ break;
+ case RADEON_PARAM_LAST_DISPATCH:
+ value = DRM_READ32(&dev_priv->scratch[1]);
+ break;
+ case RADEON_PARAM_LAST_CLEAR:
+ value = DRM_READ32(&dev_priv->scratch[2]);
+ break;
default:
return DRM_ERR(EINVAL);
}