[RFC PATCH] move drm to pci_request_irq

Frederik Deweerdt
2006-10-02T18:13:55Z

Hi,

This proof-of-concept patch converts the drm driver to use the
pci_request_irq() function.

Regards,
Frederik

diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c
index b366c5b..5b000cd 100644
--- a/drivers/char/drm/drm_drv.c
+++ b/drivers/char/drm/drm_drv.c
@@ -234,6 +234,8 @@ int drm_lastclose(drm_device_t * dev)
}
mutex_unlock(&dev->struct_mutex);

+ pci_set_drvdata(dev, NULL);
+
DRM_DEBUG("lastclose completed\n");
return 0;
}
diff --git a/drivers/char/drm/drm_irq.c b/drivers/char/drm/drm_irq.c
index 4553a3a..5dd12cb 100644
--- a/drivers/char/drm/drm_irq.c
+++ b/drivers/char/drm/drm_irq.c
@@ -132,8 +132,10 @@ static int drm_irq_install(drm_device_t
if (drm_core_check_feature(dev, DRIVER_IRQ_SHARED))
sh_flags = IRQF_SHARED;

- ret = request_irq(dev->irq, dev->driver->irq_handler,
- sh_flags, dev->devname, dev);
+ pci_set_drvdata(dev->pdev, dev);
+
+ ret = pci_request_irq(dev->pdev, dev->driver->irq_handler,
+ sh_flags, dev->devname);
if (ret < 0) {
mutex_lock(&dev->struct_mutex);
dev->irq_enabled = 0;
@@ -173,7 +175,7 @@ int drm_irq_uninstall(drm_device_t * dev

dev->driver->irq_uninstall(dev);

- free_irq(dev->irq, dev);
+ pci_free_irq(dev->pdev);

return 0;
}