aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm
diff options
context:
space:
mode:
authorDave Airlie <airlied@starflyer.(none)>2005-09-11 05:55:53 -0400
committerDave Airlie <airlied@linux.ie>2005-09-11 05:55:53 -0400
commit9d17601c4e132eee9fe450191f6866fb9fb5a762 (patch)
treef4bdfbc95a28370ad0bf9f0d0f42a821f5a8ec9d /drivers/char/drm
parent70dfcfea4b728ab26af1a3e0f331cc63a7e3554b (diff)
drm: update radeon driver to 1.18
Add support for GL_ATI_fragment_shader, new packets R200_EMIT_PP_AFS_0/1, R200_EMIT_PP_TXCTLALL_0-5 (replaces R200_EMIT_PP_TXFILTER_0-5, 2 more regs) and R200_EMIT_ATF_TFACTOR (replaces R200_EMIT_TFACTOR_0 (8 consts instead of 6) From: Roland Scheidegger, David Airlie Signed-off-by: David Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm')
-rw-r--r--drivers/char/drm/radeon_drm.h11
-rw-r--r--drivers/char/drm/radeon_drv.h11
-rw-r--r--drivers/char/drm/radeon_state.c18
3 files changed, 37 insertions, 3 deletions
diff --git a/drivers/char/drm/radeon_drm.h b/drivers/char/drm/radeon_drm.h
index 3792798270a4..67a8bf04970e 100644
--- a/drivers/char/drm/radeon_drm.h
+++ b/drivers/char/drm/radeon_drm.h
@@ -153,7 +153,16 @@
153#define RADEON_EMIT_PP_CUBIC_FACES_2 82 153#define RADEON_EMIT_PP_CUBIC_FACES_2 82
154#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83 154#define RADEON_EMIT_PP_CUBIC_OFFSETS_T2 83
155#define R200_EMIT_PP_TRI_PERF_CNTL 84 155#define R200_EMIT_PP_TRI_PERF_CNTL 84
156#define RADEON_MAX_STATE_PACKETS 85 156#define R200_EMIT_PP_AFS_0 85
157#define R200_EMIT_PP_AFS_1 86
158#define R200_EMIT_ATF_TFACTOR 87
159#define R200_EMIT_PP_TXCTLALL_0 88
160#define R200_EMIT_PP_TXCTLALL_1 89
161#define R200_EMIT_PP_TXCTLALL_2 90
162#define R200_EMIT_PP_TXCTLALL_3 91
163#define R200_EMIT_PP_TXCTLALL_4 92
164#define R200_EMIT_PP_TXCTLALL_5 93
165#define RADEON_MAX_STATE_PACKETS 94
157 166
158/* Commands understood by cmd_buffer ioctl. More can be added but 167/* Commands understood by cmd_buffer ioctl. More can be added but
159 * obviously these can't be removed or changed: 168 * obviously these can't be removed or changed:
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index f12a963ede18..430598e1fa67 100644
--- a/drivers/char/drm/radeon_drv.h
+++ b/drivers/char/drm/radeon_drv.h
@@ -38,7 +38,7 @@
38 38
39#define DRIVER_NAME "radeon" 39#define DRIVER_NAME "radeon"
40#define DRIVER_DESC "ATI Radeon" 40#define DRIVER_DESC "ATI Radeon"
41#define DRIVER_DATE "20050311" 41#define DRIVER_DATE "20050720"
42 42
43/* Interface history: 43/* Interface history:
44 * 44 *
@@ -83,9 +83,13 @@
83 * 1.16- Add R200_EMIT_PP_TRI_PERF_CNTL packet to support brilinear 83 * 1.16- Add R200_EMIT_PP_TRI_PERF_CNTL packet to support brilinear
84 * texture filtering on r200 84 * texture filtering on r200
85 * 1.17- Add initial support for R300 (3D). 85 * 1.17- Add initial support for R300 (3D).
86 * 1.18- Add support for GL_ATI_fragment_shader, new packets
87 * R200_EMIT_PP_AFS_0/1, R200_EMIT_PP_TXCTLALL_0-5 (replaces
88 * R200_EMIT_PP_TXFILTER_0-5, 2 more regs) and R200_EMIT_ATF_TFACTOR
89 * (replaces R200_EMIT_TFACTOR_0 (8 consts instead of 6)
86 */ 90 */
87#define DRIVER_MAJOR 1 91#define DRIVER_MAJOR 1
88#define DRIVER_MINOR 17 92#define DRIVER_MINOR 18
89#define DRIVER_PATCHLEVEL 0 93#define DRIVER_PATCHLEVEL 0
90 94
91#define GET_RING_HEAD(dev_priv) DRM_READ32( (dev_priv)->ring_rptr, 0 ) 95#define GET_RING_HEAD(dev_priv) DRM_READ32( (dev_priv)->ring_rptr, 0 )
@@ -857,6 +861,9 @@ extern int r300_do_cp_cmdbuf(drm_device_t* dev, DRMFILE filp,
857 861
858#define R200_PP_TRI_PERF 0x2cf8 862#define R200_PP_TRI_PERF 0x2cf8
859 863
864#define R200_PP_AFS_0 0x2f80
865#define R200_PP_AFS_1 0x2f00 /* same as txcblend_0 */
866
860/* Constants */ 867/* Constants */
861#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */ 868#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */
862 869
diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c
index 64a3e3a406ef..c4325f1e2294 100644
--- a/drivers/char/drm/radeon_state.c
+++ b/drivers/char/drm/radeon_state.c
@@ -207,6 +207,15 @@ static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_
207 case RADEON_EMIT_PP_CUBIC_FACES_1: 207 case RADEON_EMIT_PP_CUBIC_FACES_1:
208 case RADEON_EMIT_PP_CUBIC_FACES_2: 208 case RADEON_EMIT_PP_CUBIC_FACES_2:
209 case R200_EMIT_PP_TRI_PERF_CNTL: 209 case R200_EMIT_PP_TRI_PERF_CNTL:
210 case R200_EMIT_PP_AFS_0:
211 case R200_EMIT_PP_AFS_1:
212 case R200_EMIT_ATF_TFACTOR:
213 case R200_EMIT_PP_TXCTLALL_0:
214 case R200_EMIT_PP_TXCTLALL_1:
215 case R200_EMIT_PP_TXCTLALL_2:
216 case R200_EMIT_PP_TXCTLALL_3:
217 case R200_EMIT_PP_TXCTLALL_4:
218 case R200_EMIT_PP_TXCTLALL_5:
210 /* These packets don't contain memory offsets */ 219 /* These packets don't contain memory offsets */
211 break; 220 break;
212 221
@@ -568,6 +577,15 @@ static struct {
568 { RADEON_PP_CUBIC_FACES_2, 1, "RADEON_PP_CUBIC_FACES_2"}, 577 { RADEON_PP_CUBIC_FACES_2, 1, "RADEON_PP_CUBIC_FACES_2"},
569 { RADEON_PP_CUBIC_OFFSET_T2_0, 5, "RADEON_PP_CUBIC_OFFSET_T2_0"}, 578 { RADEON_PP_CUBIC_OFFSET_T2_0, 5, "RADEON_PP_CUBIC_OFFSET_T2_0"},
570 { R200_PP_TRI_PERF, 2, "R200_PP_TRI_PERF"}, 579 { R200_PP_TRI_PERF, 2, "R200_PP_TRI_PERF"},
580 { R200_PP_AFS_0, 32, "R200_PP_AFS_0"}, /* 85 */
581 { R200_PP_AFS_1, 32, "R200_PP_AFS_1"},
582 { R200_PP_TFACTOR_0, 8, "R200_ATF_TFACTOR"},
583 { R200_PP_TXFILTER_0, 8, "R200_PP_TXCTLALL_0"},
584 { R200_PP_TXFILTER_1, 8, "R200_PP_TXCTLALL_1"},
585 { R200_PP_TXFILTER_2, 8, "R200_PP_TXCTLALL_2"},
586 { R200_PP_TXFILTER_3, 8, "R200_PP_TXCTLALL_3"},
587 { R200_PP_TXFILTER_4, 8, "R200_PP_TXCTLALL_4"},
588 { R200_PP_TXFILTER_5, 8, "R200_PP_TXCTLALL_5"},
571}; 589};
572 590
573 591