summaryrefslogtreecommitdiffstats
path: root/sys/dev/drm/radeon_irq.c
diff options
context:
space:
mode:
authorrnoland <rnoland@FreeBSD.org>2009-02-28 02:37:55 +0000
committerrnoland <rnoland@FreeBSD.org>2009-02-28 02:37:55 +0000
commitddd5c68e843d2a001ea8e2dea8a1df60e8b9c96f (patch)
treee6ddfaf5a2ddb8d00739616a566b685c59b9fa61 /sys/dev/drm/radeon_irq.c
parente9bc5839af5067790590a780d1d396234ee550e9 (diff)
downloadFreeBSD-src-ddd5c68e843d2a001ea8e2dea8a1df60e8b9c96f.zip
FreeBSD-src-ddd5c68e843d2a001ea8e2dea8a1df60e8b9c96f.tar.gz
Initialize the vblank structures at load time. Previously we did this
at irq install/uninstall time, but when we vt switch, we uninstall the irq handler. When the irq handler is reinstalled, the modeset ioctl happens first. The modeset ioctl is supposed to tell us that we can disable vblank interrupts if there are no active consumers. This will fail after a vt switch until another modeset ioctl is called via dpms or xrandr. Leading to cases where either interrupts are on and can't be disabled, or worse, no interrupts at all. MFC after: 2 weeks
Diffstat (limited to 'sys/dev/drm/radeon_irq.c')
-rw-r--r--sys/dev/drm/radeon_irq.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/sys/dev/drm/radeon_irq.c b/sys/dev/drm/radeon_irq.c
index b6d03b2..3844fd6 100644
--- a/sys/dev/drm/radeon_irq.c
+++ b/sys/dev/drm/radeon_irq.c
@@ -372,15 +372,10 @@ int radeon_driver_irq_postinstall(struct drm_device * dev)
{
drm_radeon_private_t *dev_priv =
(drm_radeon_private_t *) dev->dev_private;
- int ret;
atomic_set(&dev_priv->swi_emitted, 0);
DRM_INIT_WAITQUEUE(&dev_priv->swi_queue);
- ret = drm_vblank_init(dev, 2);
- if (ret)
- return ret;
-
dev->max_vblank_count = 0x001fffff;
radeon_irq_set_state(dev, RADEON_SW_INT_ENABLE, 1);
OpenPOWER on IntegriCloud