aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/drm/radeon_drv.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-05-27 23:52:28 -0400
committerDave Airlie <airlied@redhat.com>2008-06-18 21:27:40 -0400
commitc0beb2a723d69934a53f51a9d664c5b1dbbf634b (patch)
treea0057cb846b1935fd2303fb352b30730509952b5 /drivers/char/drm/radeon_drv.h
parent5b92c4045eaa42441b7ec249a406e4110ea400d4 (diff)
drm/radeon: add initial r500 support.
This contains all the command buffer processing for the r500 cards. It doesn't yet contain vblank support. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/char/drm/radeon_drv.h')
-rw-r--r--drivers/char/drm/radeon_drv.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index c3615cf20b85..d0dc47cee6c9 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 "20060524" 41#define DRIVER_DATE "20080528"
42 42
43/* Interface history: 43/* Interface history:
44 * 44 *
@@ -98,9 +98,10 @@
98 * 1.26- Add support for variable size PCI(E) gart aperture 98 * 1.26- Add support for variable size PCI(E) gart aperture
99 * 1.27- Add support for IGP GART 99 * 1.27- Add support for IGP GART
100 * 1.28- Add support for VBL on CRTC2 100 * 1.28- Add support for VBL on CRTC2
101 * 1.29- R500 3D cmd buffer support
101 */ 102 */
102#define DRIVER_MAJOR 1 103#define DRIVER_MAJOR 1
103#define DRIVER_MINOR 28 104#define DRIVER_MINOR 29
104#define DRIVER_PATCHLEVEL 0 105#define DRIVER_PATCHLEVEL 0
105 106
106/* 107/*
@@ -294,6 +295,7 @@ typedef struct drm_radeon_private {
294 int vblank_crtc; 295 int vblank_crtc;
295 uint32_t irq_enable_reg; 296 uint32_t irq_enable_reg;
296 int irq_enabled; 297 int irq_enabled;
298 uint32_t r500_disp_irq_reg;
297 299
298 struct radeon_surface surfaces[RADEON_MAX_SURFACES]; 300 struct radeon_surface surfaces[RADEON_MAX_SURFACES];
299 struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; 301 struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES];
@@ -1103,6 +1105,31 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
1103 1105
1104#define R200_VAP_PVS_CNTL_1 0x22D0 1106#define R200_VAP_PVS_CNTL_1 0x22D0
1105 1107
1108#define R500_D1CRTC_STATUS 0x609c
1109#define R500_D2CRTC_STATUS 0x689c
1110#define R500_CRTC_V_BLANK (1<<0)
1111
1112#define R500_D1CRTC_FRAME_COUNT 0x60a4
1113#define R500_D2CRTC_FRAME_COUNT 0x68a4
1114
1115#define R500_D1MODE_V_COUNTER 0x6530
1116#define R500_D2MODE_V_COUNTER 0x6d30
1117
1118#define R500_D1MODE_VBLANK_STATUS 0x6534
1119#define R500_D2MODE_VBLANK_STATUS 0x6d34
1120#define R500_VBLANK_OCCURED (1<<0)
1121#define R500_VBLANK_ACK (1<<4)
1122#define R500_VBLANK_STAT (1<<12)
1123#define R500_VBLANK_INT (1<<16)
1124
1125#define R500_DxMODE_INT_MASK 0x6540
1126#define R500_D1MODE_INT_MASK (1<<0)
1127#define R500_D2MODE_INT_MASK (1<<8)
1128
1129#define R500_DISP_INTERRUPT_STATUS 0x7edc
1130#define R500_D1_VBLANK_INTERRUPT (1 << 4)
1131#define R500_D2_VBLANK_INTERRUPT (1 << 5)
1132
1106/* Constants */ 1133/* Constants */
1107#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */ 1134#define RADEON_MAX_USEC_TIMEOUT 100000 /* 100 ms */
1108 1135