aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/radeon_drm.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2008-03-30 07:51:49 +1000
committerDave Airlie <airlied@linux.ie>2008-03-30 07:51:49 +1000
commit0c76be35194563f56e02fc1775d0fe29281e84d4 (patch)
treece326ec271bb53323daf29f7098fb81ff6caae01 /drivers/char/drm/radeon_drm.h
parentMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 (diff)
downloadlinux-dev-0c76be35194563f56e02fc1775d0fe29281e84d4.tar.xz
linux-dev-0c76be35194563f56e02fc1775d0fe29281e84d4.zip
drm/r300: fix bug in r300 userspace hardware wait emission
This interface was originally designed wrong, confusing bit-fields and integers, major brown paper bag going back many years... But userspace only ever used 4 values so fix the interface for new users and fix the implementation to deal with the 4 values userspace has ever emitted (0x1, 0x2, 0x3, 0x6). Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to '')
-rw-r--r--drivers/char/drm/radeon_drm.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h
index 71e5b21fad2c..aab82e121e07 100644
--- a/drivers/char/drm/radeon_drm.h
+++ b/drivers/char/drm/radeon_drm.h
@@ -225,8 +225,20 @@ typedef union {
#define R300_CMD_WAIT 7
# define R300_WAIT_2D 0x1
# define R300_WAIT_3D 0x2
+/* these two defines are DOING IT WRONG - however
+ * we have userspace which relies on using these.
+ * The wait interface is backwards compat new
+ * code should use the NEW_WAIT defines below
+ * THESE ARE NOT BIT FIELDS
+ */
# define R300_WAIT_2D_CLEAN 0x3
# define R300_WAIT_3D_CLEAN 0x4
+
+# define R300_NEW_WAIT_2D_3D 0x3
+# define R300_NEW_WAIT_2D_2D_CLEAN 0x4
+# define R300_NEW_WAIT_3D_3D_CLEAN 0x6
+# define R300_NEW_WAIT_2D_2D_CLEAN_3D_3D_CLEAN 0x8
+
#define R300_CMD_SCRATCH 8
typedef union {