diff options
author | Dave Airlie <airlied@redhat.com> | 2008-05-27 23:52:28 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2008-06-18 21:27:40 -0400 |
commit | c0beb2a723d69934a53f51a9d664c5b1dbbf634b (patch) | |
tree | a0057cb846b1935fd2303fb352b30730509952b5 /drivers/char/drm/radeon_drv.h | |
parent | 5b92c4045eaa42441b7ec249a406e4110ea400d4 (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.h | 31 |
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 | ||