summaryrefslogtreecommitdiff
path: root/shared-core/radeon_drm.h
diff options
context:
space:
mode:
authorMichel Daenzer <michel@daenzer.net>2003-11-04 00:46:05 +0000
committerMichel Daenzer <michel@daenzer.net>2003-11-04 00:46:05 +0000
commit2655ccddf4c026f37dcc76754cdfde6f0a4a4c86 (patch)
tree98ae7d93c77d64e24863fb27d5ce8342fd2fe2fa /shared-core/radeon_drm.h
parent84dfe702e27e0ef22801f8fe366120bea90adf4f (diff)
Memory layout transition:
the 2D driver initializes MC_FB_LOCATION and related registers sanely the DRM deduces the layout from these registers clients use the new SETPARAM ioctl to tell the DRM where they think the framebuffer is located in the card's address space the DRM uses all this information to check client state and fix it up if necessary This is a prerequisite for things like direct rendering with IGP chips and video capturing.
Diffstat (limited to 'shared-core/radeon_drm.h')
-rw-r--r--shared-core/radeon_drm.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/shared-core/radeon_drm.h b/shared-core/radeon_drm.h
index c4a74649..f56b188d 100644
--- a/shared-core/radeon_drm.h
+++ b/shared-core/radeon_drm.h
@@ -390,6 +390,7 @@ typedef struct {
#define DRM_IOCTL_RADEON_IRQ_WAIT DRM_IOW( 0x57, drm_radeon_irq_wait_t)
/* added by Charl P. Botha - see radeon_cp.c for details */
#define DRM_IOCTL_RADEON_CP_RESUME DRM_IO(0x58)
+#define DRM_IOCTL_RADEON_SETPARAM DRM_IOW(0x59, drm_radeon_setparam_t)
typedef struct drm_radeon_init {
enum {
@@ -502,7 +503,7 @@ typedef struct drm_radeon_tex_image {
} drm_radeon_tex_image_t;
typedef struct drm_radeon_texture {
- int offset;
+ unsigned int offset;
int pitch;
int format;
int width; /* Texture image coordinates */
@@ -537,6 +538,7 @@ typedef struct drm_radeon_indirect {
#define RADEON_PARAM_STATUS_HANDLE 8
#define RADEON_PARAM_SAREA_HANDLE 9
#define RADEON_PARAM_GART_TEX_HANDLE 10
+#define RADEON_PARAM_SCRATCH_OFFSET 11
typedef struct drm_radeon_getparam {
int param;
@@ -578,4 +580,16 @@ typedef struct drm_radeon_irq_wait {
} drm_radeon_irq_wait_t;
+/* 1.10: Clients tell the DRM where they think the framebuffer is located in
+ * the card's address space, via a new generic ioctl to set parameters
+ */
+
+typedef struct drm_radeon_setparam {
+ unsigned int param;
+ int64_t value;
+} drm_radeon_setparam_t;
+
+#define RADEON_SETPARAM_FB_LOCATION 1 /* determined framebuffer location */
+
+
#endif