diff options
author | Dave Airlie <airlied@linux.ie> | 2007-07-10 22:16:01 -0400 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2007-07-10 22:16:01 -0400 |
commit | ddbee33328dcfb892cd91f2d57a1822f4d6f70d9 (patch) | |
tree | 6db71299d2cf09f22201a44487d925e222facb33 /drivers/char/drm/radeon_drv.h | |
parent | 7c158acef8f0e51c3a5f71133aaf402628370a64 (diff) |
radeon: add support for vblank on crtc2
This adds support for CRTC2 vblank on radeon similiar to the i915.
Signed-off-by: Dave Airlie <airlied@linux.ie>
Diffstat (limited to 'drivers/char/drm/radeon_drv.h')
-rw-r--r-- | drivers/char/drm/radeon_drv.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index 54f49ef4bef0..4422ae3a68bc 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h | |||
@@ -97,9 +97,10 @@ | |||
97 | * new packet type) | 97 | * new packet type) |
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 | */ | 101 | */ |
101 | #define DRIVER_MAJOR 1 | 102 | #define DRIVER_MAJOR 1 |
102 | #define DRIVER_MINOR 27 | 103 | #define DRIVER_MINOR 28 |
103 | #define DRIVER_PATCHLEVEL 0 | 104 | #define DRIVER_PATCHLEVEL 0 |
104 | 105 | ||
105 | /* | 106 | /* |
@@ -277,6 +278,9 @@ typedef struct drm_radeon_private { | |||
277 | /* SW interrupt */ | 278 | /* SW interrupt */ |
278 | wait_queue_head_t swi_queue; | 279 | wait_queue_head_t swi_queue; |
279 | atomic_t swi_emitted; | 280 | atomic_t swi_emitted; |
281 | int vblank_crtc; | ||
282 | uint32_t irq_enable_reg; | ||
283 | int irq_enabled; | ||
280 | 284 | ||
281 | struct radeon_surface surfaces[RADEON_MAX_SURFACES]; | 285 | struct radeon_surface surfaces[RADEON_MAX_SURFACES]; |
282 | struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; | 286 | struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES]; |
@@ -356,10 +360,14 @@ extern int radeon_irq_wait(DRM_IOCTL_ARGS); | |||
356 | extern void radeon_do_release(drm_device_t * dev); | 360 | extern void radeon_do_release(drm_device_t * dev); |
357 | extern int radeon_driver_vblank_wait(drm_device_t * dev, | 361 | extern int radeon_driver_vblank_wait(drm_device_t * dev, |
358 | unsigned int *sequence); | 362 | unsigned int *sequence); |
363 | extern int radeon_driver_vblank_wait2(drm_device_t * dev, | ||
364 | unsigned int *sequence); | ||
359 | extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS); | 365 | extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS); |
360 | extern void radeon_driver_irq_preinstall(drm_device_t * dev); | 366 | extern void radeon_driver_irq_preinstall(drm_device_t * dev); |
361 | extern void radeon_driver_irq_postinstall(drm_device_t * dev); | 367 | extern void radeon_driver_irq_postinstall(drm_device_t * dev); |
362 | extern void radeon_driver_irq_uninstall(drm_device_t * dev); | 368 | extern void radeon_driver_irq_uninstall(drm_device_t * dev); |
369 | extern int radeon_vblank_crtc_get(drm_device_t *dev); | ||
370 | extern int radeon_vblank_crtc_set(drm_device_t *dev, int64_t value); | ||
363 | 371 | ||
364 | extern int radeon_driver_load(struct drm_device *dev, unsigned long flags); | 372 | extern int radeon_driver_load(struct drm_device *dev, unsigned long flags); |
365 | extern int radeon_driver_unload(struct drm_device *dev); | 373 | extern int radeon_driver_unload(struct drm_device *dev); |
@@ -496,12 +504,15 @@ extern int r300_do_cp_cmdbuf(drm_device_t * dev, DRMFILE filp, | |||
496 | 504 | ||
497 | #define RADEON_GEN_INT_CNTL 0x0040 | 505 | #define RADEON_GEN_INT_CNTL 0x0040 |
498 | # define RADEON_CRTC_VBLANK_MASK (1 << 0) | 506 | # define RADEON_CRTC_VBLANK_MASK (1 << 0) |
507 | # define RADEON_CRTC2_VBLANK_MASK (1 << 9) | ||
499 | # define RADEON_GUI_IDLE_INT_ENABLE (1 << 19) | 508 | # define RADEON_GUI_IDLE_INT_ENABLE (1 << 19) |
500 | # define RADEON_SW_INT_ENABLE (1 << 25) | 509 | # define RADEON_SW_INT_ENABLE (1 << 25) |
501 | 510 | ||
502 | #define RADEON_GEN_INT_STATUS 0x0044 | 511 | #define RADEON_GEN_INT_STATUS 0x0044 |
503 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) | 512 | # define RADEON_CRTC_VBLANK_STAT (1 << 0) |
504 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) | 513 | # define RADEON_CRTC_VBLANK_STAT_ACK (1 << 0) |
514 | # define RADEON_CRTC2_VBLANK_STAT (1 << 9) | ||
515 | # define RADEON_CRTC2_VBLANK_STAT_ACK (1 << 9) | ||
505 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) | 516 | # define RADEON_GUI_IDLE_INT_TEST_ACK (1 << 19) |
506 | # define RADEON_SW_INT_TEST (1 << 25) | 517 | # define RADEON_SW_INT_TEST (1 << 25) |
507 | # define RADEON_SW_INT_TEST_ACK (1 << 25) | 518 | # define RADEON_SW_INT_TEST_ACK (1 << 25) |