drm/radeon/kms: Fix up vertical blank interrupt support.

Fixes 3D apps timing out in the WAIT_VBLANK ioctl.

AVIVO bits compile-tested only.

Signed-off-by: Michel Dänzer <daenzer@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Michel Dänzer
2009-08-13 11:10:51 +02:00
committed by Dave Airlie
parent 3f8befec95
commit 7ed220d738
9 changed files with 217 additions and 77 deletions

View File

@@ -141,19 +141,42 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
*/
u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
{
/* FIXME: implement */
return 0;
struct radeon_device *rdev = dev->dev_private;
if (crtc < 0 || crtc > 1) {
DRM_ERROR("Invalid crtc %d\n", crtc);
return -EINVAL;
}
return radeon_get_vblank_counter(rdev, crtc);
}
int radeon_enable_vblank_kms(struct drm_device *dev, int crtc)
{
/* FIXME: implement */
return 0;
struct radeon_device *rdev = dev->dev_private;
if (crtc < 0 || crtc > 1) {
DRM_ERROR("Invalid crtc %d\n", crtc);
return -EINVAL;
}
rdev->irq.crtc_vblank_int[crtc] = true;
return radeon_irq_set(rdev);
}
void radeon_disable_vblank_kms(struct drm_device *dev, int crtc)
{
/* FIXME: implement */
struct radeon_device *rdev = dev->dev_private;
if (crtc < 0 || crtc > 1) {
DRM_ERROR("Invalid crtc %d\n", crtc);
return;
}
rdev->irq.crtc_vblank_int[crtc] = false;
radeon_irq_set(rdev);
}