]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/gpu/drm/drm_irq.c
Merge branch 'v28-range-hrtimers-for-linus-v2' of git://git.kernel.org/pub/scm/linux...
[linux-2.6-omap-h63xx.git] / drivers / gpu / drm / drm_irq.c
index d0c13d954f529d1673461f0c9968e1113bec1cb0..212a94f715b23cf2db6103a301c91f9c6545a4ce 100644 (file)
@@ -228,12 +228,9 @@ int drm_irq_install(struct drm_device *dev)
        if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
                sh_flags = IRQF_SHARED;
 
-       ret = request_irq(dev->pdev->irq, dev->driver->irq_handler,
+       ret = request_irq(drm_dev_to_irq(dev), dev->driver->irq_handler,
                          sh_flags, dev->devname, dev);
-       /* Expose the device irq number to drivers that want to export it for
-        * whatever reason.
-        */
-       dev->irq = dev->pdev->irq;
+
        if (ret < 0) {
                mutex_lock(&dev->struct_mutex);
                dev->irq_enabled = 0;
@@ -597,11 +594,14 @@ int drm_wait_vblank(struct drm_device *dev, void *data,
                        goto done;
                }
 
+               /* Get a refcount on the vblank, which will be released by
+                * drm_vbl_send_signals().
+                */
                ret = drm_vblank_get(dev, crtc);
                if (ret) {
                        drm_free(vbl_sig, sizeof(struct drm_vbl_sig),
                                 DRM_MEM_DRIVER);
-                       return ret;
+                       goto done;
                }
 
                atomic_inc(&dev->vbl_signal_pending);