aboutsummaryrefslogtreecommitdiff
path: root/shared-core/radeon_drm.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-11-03 09:39:53 +1000
committerDave Airlie <airlied@redhat.com>2008-11-03 09:39:53 +1000
commit8b2925468d326ab6fa31a312e845a3bc71343106 (patch)
treeb60eff35801641db3dd38fe31dd95418b984bb35 /shared-core/radeon_drm.h
parent563e7e5930a8d628b33cb1f7a9aaea251f2fc50b (diff)
radeon: make new CS2 command submission interface port older interface to this
Diffstat (limited to 'shared-core/radeon_drm.h')
-rw-r--r--shared-core/radeon_drm.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/shared-core/radeon_drm.h b/shared-core/radeon_drm.h
index c924c689..bc2eb45a 100644
--- a/shared-core/radeon_drm.h
+++ b/shared-core/radeon_drm.h
@@ -514,6 +514,7 @@ typedef struct {
#define DRM_RADEON_GEM_INDIRECT 0x24 // temporary for X server
#define DRM_RADEON_CS 0x25
+#define DRM_RADEON_CS2 0x26
#define DRM_IOCTL_RADEON_CP_INIT DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
#define DRM_IOCTL_RADEON_CP_START DRM_IO( DRM_COMMAND_BASE + DRM_RADEON_CP_START)
@@ -554,6 +555,7 @@ typedef struct {
#define DRM_IOCTL_RADEON_GEM_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INDIRECT, struct drm_radeon_gem_indirect)
#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
+#define DRM_IOCTL_RADEON_CS2 DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS2, struct drm_radeon_cs2)
typedef struct drm_radeon_init {
@@ -874,11 +876,26 @@ struct drm_radeon_gem_indirect {
struct drm_radeon_cs {
-// uint32_t __user *packets;
uint32_t dwords;
uint32_t cs_id;
uint64_t packets;
+};
+
+#define RADEON_CHUNK_ID_RELOCS 0x01
+#define RADEON_CHUNK_ID_IB 0x02
+#define RADEON_CHUNK_ID_OLD 0xff
+
+struct drm_radeon_cs_chunk {
+ uint32_t chunk_id;
+ uint32_t length_dw;
+ uint64_t chunk_data;
+};
+struct drm_radeon_cs2 {
+ uint32_t num_chunks;
+ uint32_t cs_id;
+ uint64_t chunks; /* this points to uint64_t * which point to
+ cs chunks */
};