summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Whitwell <keith@tungstengraphics.com>2002-09-23 10:12:38 +0000
committerKeith Whitwell <keith@tungstengraphics.com>2002-09-23 10:12:38 +0000
commit1d22386aff693d96bb68fe9ead529ba33ec555e3 (patch)
tree4e586f3db0c19189363ea1da20b7250f4eaa71ed
parent61ed1d25859ebbaaf88f3d35864263fee36c373b (diff)
add agp_base query to getparam
-rw-r--r--shared-core/radeon_drm.h11
-rw-r--r--shared-core/radeon_state.c3
-rw-r--r--shared/radeon.h2
-rw-r--r--shared/radeon_drm.h11
-rw-r--r--shared/radeon_state.c3
5 files changed, 20 insertions, 10 deletions
diff --git a/shared-core/radeon_drm.h b/shared-core/radeon_drm.h
index 8a4d8174..9a747e04 100644
--- a/shared-core/radeon_drm.h
+++ b/shared-core/radeon_drm.h
@@ -513,11 +513,12 @@ typedef struct drm_radeon_indirect {
/* 1.3: An ioctl to get parameters that aren't available to the 3d
* client any other way.
*/
-#define RADEON_PARAM_AGP_BUFFER_OFFSET 1
-#define RADEON_PARAM_LAST_FRAME 2
-#define RADEON_PARAM_LAST_DISPATCH 3
-#define RADEON_PARAM_LAST_CLEAR 4
-#define RADEON_PARAM_IRQ_ACTIVE 5
+#define RADEON_PARAM_AGP_BUFFER_OFFSET 1 /* card offset of 1st agp buffer */
+#define RADEON_PARAM_LAST_FRAME 2
+#define RADEON_PARAM_LAST_DISPATCH 3
+#define RADEON_PARAM_LAST_CLEAR 4
+#define RADEON_PARAM_IRQ_ACTIVE 5
+#define RADEON_PARAM_AGP_BASE 6 /* card offset of agp base */
typedef struct drm_radeon_getparam {
int param;
diff --git a/shared-core/radeon_state.c b/shared-core/radeon_state.c
index 5f3c8b01..218a5e85 100644
--- a/shared-core/radeon_state.c
+++ b/shared-core/radeon_state.c
@@ -2172,6 +2172,9 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
dev_priv->stats.last_clear_reads++;
value = GET_SCRATCH( 2 );
break;
+ case RADEON_PARAM_AGP_BASE:
+ value = dev_priv->agp_vm_start;
+ break;
default:
return DRM_ERR(EINVAL);
}
diff --git a/shared/radeon.h b/shared/radeon.h
index ff5bad97..4cb00986 100644
--- a/shared/radeon.h
+++ b/shared/radeon.h
@@ -71,6 +71,8 @@
* 1.6 - Add static agp memory manager
* Add irq handler (won't be turned on unless X server knows to)
* Add irq ioctls and irq_active getparam.
+ * Add wait command for cmdbuf ioctl
+ * Add agp offset query for getparam
*/
#define DRIVER_IOCTLS \
[DRM_IOCTL_NR(DRM_IOCTL_DMA)] = { radeon_cp_buffers, 1, 0 }, \
diff --git a/shared/radeon_drm.h b/shared/radeon_drm.h
index 8a4d8174..9a747e04 100644
--- a/shared/radeon_drm.h
+++ b/shared/radeon_drm.h
@@ -513,11 +513,12 @@ typedef struct drm_radeon_indirect {
/* 1.3: An ioctl to get parameters that aren't available to the 3d
* client any other way.
*/
-#define RADEON_PARAM_AGP_BUFFER_OFFSET 1
-#define RADEON_PARAM_LAST_FRAME 2
-#define RADEON_PARAM_LAST_DISPATCH 3
-#define RADEON_PARAM_LAST_CLEAR 4
-#define RADEON_PARAM_IRQ_ACTIVE 5
+#define RADEON_PARAM_AGP_BUFFER_OFFSET 1 /* card offset of 1st agp buffer */
+#define RADEON_PARAM_LAST_FRAME 2
+#define RADEON_PARAM_LAST_DISPATCH 3
+#define RADEON_PARAM_LAST_CLEAR 4
+#define RADEON_PARAM_IRQ_ACTIVE 5
+#define RADEON_PARAM_AGP_BASE 6 /* card offset of agp base */
typedef struct drm_radeon_getparam {
int param;
diff --git a/shared/radeon_state.c b/shared/radeon_state.c
index 5f3c8b01..218a5e85 100644
--- a/shared/radeon_state.c
+++ b/shared/radeon_state.c
@@ -2172,6 +2172,9 @@ int radeon_cp_getparam( DRM_IOCTL_ARGS )
dev_priv->stats.last_clear_reads++;
value = GET_SCRATCH( 2 );
break;
+ case RADEON_PARAM_AGP_BASE:
+ value = dev_priv->agp_vm_start;
+ break;
default:
return DRM_ERR(EINVAL);
}