summaryrefslogtreecommitdiff
path: root/bsd-core/drm_irq.c
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2005-06-06 06:45:41 +0000
committerEric Anholt <anholt@freebsd.org>2005-06-06 06:45:41 +0000
commit751765dba5b15f431a12308e09237d895c65e471 (patch)
tree449413b86789b28e3e9ba33467cdfa96f33bb69d /bsd-core/drm_irq.c
parent805a07714f05833a1ed4e4a01f8086fafd46e849 (diff)
Add a few more bits of Tonnerre's NetBSD port (Still need to deal with the
device attachment).
Diffstat (limited to 'bsd-core/drm_irq.c')
-rw-r--r--bsd-core/drm_irq.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/bsd-core/drm_irq.c b/bsd-core/drm_irq.c
index d0434c4d..8c5660c5 100644
--- a/bsd-core/drm_irq.c
+++ b/bsd-core/drm_irq.c
@@ -69,6 +69,9 @@ drm_irq_handler_wrap(DRM_IRQ_ARGS)
int drm_irq_install(drm_device_t *dev)
{
int retcode;
+#ifdef __NetBSD__
+ pci_intr_handle_t ih;
+#endif
if (dev->irq == 0 || dev->dev_private == NULL)
return DRM_ERR(EINVAL);
@@ -109,12 +112,12 @@ int drm_irq_install(drm_device_t *dev)
if (retcode != 0)
goto err;
#elif defined(__NetBSD__) || defined(__OpenBSD__)
- if (pci_intr_map(&dev->pa, &dev->ih) != 0) {
+ if (pci_intr_map(&dev->pa, &ih) != 0) {
retcode = ENOENT;
goto err;
}
- dev->irqh = pci_intr_establish(&dev->pa.pa_pc, dev->ih, IPL_TTY,
- (irqreturn_t (*)(DRM_IRQ_ARGS))dev->irq_handler, dev);
+ dev->irqh = pci_intr_establish(&dev->pa.pa_pc, ih, IPL_TTY,
+ (irqreturn_t (*)(void *))dev->irq_handler, dev);
if (!dev->irqh) {
retcode = ENOENT;
goto err;
@@ -144,14 +147,18 @@ err:
int drm_irq_uninstall(drm_device_t *dev)
{
+#ifdef __FreeBSD__
int irqrid;
+#endif
if (!dev->irq_enabled)
return DRM_ERR(EINVAL);
dev->irq_enabled = 0;
+#ifdef __FreeBSD__
irqrid = dev->irqrid;
dev->irqrid = 0;
+#endif
DRM_DEBUG( "%s: irq=%d\n", __FUNCTION__, dev->irq );