summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroga <oga@openbsd.org>2009-04-03 13:47:03 +0000
committeroga <oga@openbsd.org>2009-04-03 13:47:03 +0000
commit267ba0f34b86d3a00c740115edcb14c2629bf8be (patch)
tree56f6f42836ec766052463cf84a33d5d01fc985ec
parentFinal irq_lock piece. Switch inteldrm over like radeomdrm and the rest. (diff)
downloadwireguard-openbsd-267ba0f34b86d3a00c740115edcb14c2629bf8be.tar.xz
wireguard-openbsd-267ba0f34b86d3a00c740115edcb14c2629bf8be.zip
Remove dev->irq_lock, the drm_irq_handler_wrap irq handler, and remove
the dev->driver irq_handler member since we now don't need to know. Shaves a few bytes, and makes me happy.
-rw-r--r--sys/dev/pci/drm/drmP.h3
-rw-r--r--sys/dev/pci/drm/drm_irq.c15
-rw-r--r--sys/dev/pci/drm/i915_drv.c1
-rw-r--r--sys/dev/pci/drm/i915_drv.h1
-rw-r--r--sys/dev/pci/drm/i915_irq.c1
-rw-r--r--sys/dev/pci/drm/mach64_drv.c1
-rw-r--r--sys/dev/pci/drm/mach64_drv.h1
-rw-r--r--sys/dev/pci/drm/mach64_irq.c2
-rw-r--r--sys/dev/pci/drm/mga_drv.c1
-rw-r--r--sys/dev/pci/drm/mga_drv.h1
-rw-r--r--sys/dev/pci/drm/mga_irq.c2
-rw-r--r--sys/dev/pci/drm/r128_drv.c1
-rw-r--r--sys/dev/pci/drm/r128_drv.h1
-rw-r--r--sys/dev/pci/drm/r128_irq.c2
-rw-r--r--sys/dev/pci/drm/radeon_drv.c1
-rw-r--r--sys/dev/pci/drm/radeon_drv.h1
-rw-r--r--sys/dev/pci/drm/radeon_irq.c1
17 files changed, 8 insertions, 28 deletions
diff --git a/sys/dev/pci/drm/drmP.h b/sys/dev/pci/drm/drmP.h
index 43d3fd77d84..23e35da1507 100644
--- a/sys/dev/pci/drm/drmP.h
+++ b/sys/dev/pci/drm/drmP.h
@@ -384,7 +384,6 @@ struct drm_driver_info {
int (*context_dtor)(struct drm_device *, int);
int (*irq_install)(struct drm_device *);
void (*irq_uninstall)(struct drm_device *);
- irqreturn_t (*irq_handler)(DRM_IRQ_ARGS);
int vblank_pipes;
u_int32_t (*get_vblank_counter)(struct drm_device *, int);
int (*enable_vblank)(struct drm_device *, int);
@@ -427,7 +426,6 @@ struct drm_device {
int if_version; /* Highest interface version set */
/* Locks */
- struct mutex irq_lock; /* protects irq condition checks */
struct rwlock dev_lock; /* protects everything else */
/* Usage Counters */
@@ -546,7 +544,6 @@ void drm_reclaim_buffers(struct drm_device *, struct drm_file *);
/* IRQ support (drm_irq.c) */
int drm_irq_install(struct drm_device *);
int drm_irq_uninstall(struct drm_device *);
-irqreturn_t drm_irq_handler_wrap(DRM_IRQ_ARGS);
void drm_vblank_cleanup(struct drm_device *);
int drm_vblank_init(struct drm_device *, int);
u_int32_t drm_vblank_count(struct drm_device *, int);
diff --git a/sys/dev/pci/drm/drm_irq.c b/sys/dev/pci/drm/drm_irq.c
index 9d72580e3d1..ba9d1b8f82d 100644
--- a/sys/dev/pci/drm/drm_irq.c
+++ b/sys/dev/pci/drm/drm_irq.c
@@ -56,19 +56,6 @@ drm_irq_by_busid(struct drm_device *dev, void *data, struct drm_file *file_priv)
return 0;
}
-irqreturn_t
-drm_irq_handler_wrap(DRM_IRQ_ARGS)
-{
- irqreturn_t ret;
- struct drm_device *dev = (struct drm_device *)arg;
-
- mtx_enter(&dev->irq_lock);
- ret = dev->driver->irq_handler(arg);
- mtx_leave(&dev->irq_lock);
-
- return ret;
-}
-
int
drm_irq_install(struct drm_device *dev)
{
@@ -87,8 +74,6 @@ drm_irq_install(struct drm_device *dev)
dev->irq_enabled = 1;
DRM_UNLOCK();
- mtx_init(&dev->irq_lock, IPL_BIO);
-
if ((ret = dev->driver->irq_install(dev)) != 0)
goto err;
diff --git a/sys/dev/pci/drm/i915_drv.c b/sys/dev/pci/drm/i915_drv.c
index 75bde5862e0..70ec61b25c0 100644
--- a/sys/dev/pci/drm/i915_drv.c
+++ b/sys/dev/pci/drm/i915_drv.c
@@ -101,7 +101,6 @@ static const struct drm_driver_info inteldrm_driver = {
.disable_vblank = i915_disable_vblank,
.irq_install = i915_driver_irq_install,
.irq_uninstall = i915_driver_irq_uninstall,
- .irq_handler = i915_driver_irq_handler,
.name = DRIVER_NAME,
.desc = DRIVER_DESC,
diff --git a/sys/dev/pci/drm/i915_drv.h b/sys/dev/pci/drm/i915_drv.h
index 4fab276fd79..0f4ea6fb93d 100644
--- a/sys/dev/pci/drm/i915_drv.h
+++ b/sys/dev/pci/drm/i915_drv.h
@@ -244,7 +244,6 @@ extern int i915_irq_emit(struct drm_device *dev, void *data,
extern int i915_irq_wait(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-extern irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS);
extern int i915_driver_irq_install(struct drm_device * dev);
extern void i915_driver_irq_uninstall(struct drm_device * dev);
extern int i915_vblank_pipe_get(struct drm_device *dev, void *data,
diff --git a/sys/dev/pci/drm/i915_irq.c b/sys/dev/pci/drm/i915_irq.c
index 8b6526b5f79..a9bd03b4b86 100644
--- a/sys/dev/pci/drm/i915_irq.c
+++ b/sys/dev/pci/drm/i915_irq.c
@@ -31,6 +31,7 @@
#include "i915_drm.h"
#include "i915_drv.h"
+irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS);
void i915_enable_irq(drm_i915_private_t *, u_int32_t);
void i915_disable_irq(drm_i915_private_t *, u_int32_t);
void i915_enable_pipestat(drm_i915_private_t *, int, u_int32_t);
diff --git a/sys/dev/pci/drm/mach64_drv.c b/sys/dev/pci/drm/mach64_drv.c
index b2c3f67da44..e60ffefa114 100644
--- a/sys/dev/pci/drm/mach64_drv.c
+++ b/sys/dev/pci/drm/mach64_drv.c
@@ -77,7 +77,6 @@ static const struct drm_driver_info machdrm_driver = {
.disable_vblank = mach64_disable_vblank,
.irq_install = mach64_driver_irq_install,
.irq_uninstall = mach64_driver_irq_uninstall,
- .irq_handler = mach64_driver_irq_handler,
.dma_ioctl = mach64_dma_buffers,
.name = DRIVER_NAME,
diff --git a/sys/dev/pci/drm/mach64_drv.h b/sys/dev/pci/drm/mach64_drv.h
index 73449388e2e..977fc01e87f 100644
--- a/sys/dev/pci/drm/mach64_drv.h
+++ b/sys/dev/pci/drm/mach64_drv.h
@@ -170,7 +170,6 @@ extern int mach64_get_param(struct drm_device *dev, void *data,
extern u32 mach64_get_vblank_counter(struct drm_device *dev, int crtc);
extern int mach64_enable_vblank(struct drm_device *dev, int crtc);
extern void mach64_disable_vblank(struct drm_device *dev, int crtc);
-extern irqreturn_t mach64_driver_irq_handler(DRM_IRQ_ARGS);
extern int mach64_driver_irq_install(struct drm_device *dev);
extern void mach64_driver_irq_uninstall(struct drm_device *dev);
diff --git a/sys/dev/pci/drm/mach64_irq.c b/sys/dev/pci/drm/mach64_irq.c
index ec4afe84076..1759b2e8aef 100644
--- a/sys/dev/pci/drm/mach64_irq.c
+++ b/sys/dev/pci/drm/mach64_irq.c
@@ -40,6 +40,8 @@
#include "mach64_drm.h"
#include "mach64_drv.h"
+irqreturn_t mach64_driver_irq_handler(DRM_IRQ_ARGS);
+
irqreturn_t
mach64_driver_irq_handler(DRM_IRQ_ARGS)
{
diff --git a/sys/dev/pci/drm/mga_drv.c b/sys/dev/pci/drm/mga_drv.c
index 5e5464b4532..9f110f1d50f 100644
--- a/sys/dev/pci/drm/mga_drv.c
+++ b/sys/dev/pci/drm/mga_drv.c
@@ -112,7 +112,6 @@ static const struct drm_driver_info mga_driver = {
.get_vblank_counter = mga_get_vblank_counter,
.irq_install = mga_driver_irq_install,
.irq_uninstall = mga_driver_irq_uninstall,
- .irq_handler = mga_driver_irq_handler,
.dma_ioctl = mga_dma_buffers,
.dma_quiescent = mga_driver_dma_quiescent,
diff --git a/sys/dev/pci/drm/mga_drv.h b/sys/dev/pci/drm/mga_drv.h
index 0c979ce9b55..dae0d19c80e 100644
--- a/sys/dev/pci/drm/mga_drv.h
+++ b/sys/dev/pci/drm/mga_drv.h
@@ -188,7 +188,6 @@ extern int mga_enable_vblank(struct drm_device *dev, int crtc);
extern void mga_disable_vblank(struct drm_device *dev, int crtc);
extern u32 mga_get_vblank_counter(struct drm_device *dev, int crtc);
extern int mga_driver_fence_wait(struct drm_device * dev, u_int32_t *sequence);
-extern irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS);
extern int mga_driver_irq_install(struct drm_device * dev);
extern void mga_driver_irq_uninstall(struct drm_device * dev);
extern long mga_compat_ioctl(struct file *filp, unsigned int cmd,
diff --git a/sys/dev/pci/drm/mga_irq.c b/sys/dev/pci/drm/mga_irq.c
index 6e0a736f84d..c0526e3c54a 100644
--- a/sys/dev/pci/drm/mga_irq.c
+++ b/sys/dev/pci/drm/mga_irq.c
@@ -36,6 +36,8 @@
#include "mga_drm.h"
#include "mga_drv.h"
+irqreturn_t mga_driver_irq_handler(DRM_IRQ_ARGS);
+
u_int32_t
mga_get_vblank_counter(struct drm_device *dev, int crtc)
{
diff --git a/sys/dev/pci/drm/r128_drv.c b/sys/dev/pci/drm/r128_drv.c
index 480256daf26..a2fd3c38c3e 100644
--- a/sys/dev/pci/drm/r128_drv.c
+++ b/sys/dev/pci/drm/r128_drv.c
@@ -93,7 +93,6 @@ static const struct drm_driver_info ragedrm_driver = {
.disable_vblank = r128_disable_vblank,
.irq_install = r128_driver_irq_install,
.irq_uninstall = r128_driver_irq_uninstall,
- .irq_handler = r128_driver_irq_handler,
.dma_ioctl = r128_cce_buffers,
.name = DRIVER_NAME,
diff --git a/sys/dev/pci/drm/r128_drv.h b/sys/dev/pci/drm/r128_drv.h
index 8353b6346c6..6ba5ae8f89a 100644
--- a/sys/dev/pci/drm/r128_drv.h
+++ b/sys/dev/pci/drm/r128_drv.h
@@ -169,7 +169,6 @@ extern int r128_do_cleanup_cce(struct drm_device * dev);
extern int r128_enable_vblank(struct drm_device *dev, int crtc);
extern void r128_disable_vblank(struct drm_device *dev, int crtc);
extern u32 r128_get_vblank_counter(struct drm_device *dev, int crtc);
-extern irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS);
extern int r128_driver_irq_install(struct drm_device * dev);
extern void r128_driver_irq_uninstall(struct drm_device * dev);
extern void r128_driver_lastclose(struct drm_device * dev);
diff --git a/sys/dev/pci/drm/r128_irq.c b/sys/dev/pci/drm/r128_irq.c
index e67883ddce5..c7126524dec 100644
--- a/sys/dev/pci/drm/r128_irq.c
+++ b/sys/dev/pci/drm/r128_irq.c
@@ -35,6 +35,8 @@
#include "r128_drm.h"
#include "r128_drv.h"
+irqreturn_t r128_driver_irq_handler(DRM_IRQ_ARGS);
+
u_int32_t
r128_get_vblank_counter(struct drm_device *dev, int crtc)
{
diff --git a/sys/dev/pci/drm/radeon_drv.c b/sys/dev/pci/drm/radeon_drv.c
index db9c3af263e..1561962b452 100644
--- a/sys/dev/pci/drm/radeon_drv.c
+++ b/sys/dev/pci/drm/radeon_drv.c
@@ -496,7 +496,6 @@ static const struct drm_driver_info radeondrm_driver = {
.disable_vblank = radeon_disable_vblank,
.irq_install = radeon_driver_irq_install,
.irq_uninstall = radeon_driver_irq_uninstall,
- .irq_handler = radeon_driver_irq_handler,
.dma_ioctl = radeon_cp_buffers,
.name = DRIVER_NAME,
diff --git a/sys/dev/pci/drm/radeon_drv.h b/sys/dev/pci/drm/radeon_drv.h
index 82c23c3fd49..91ce40568e8 100644
--- a/sys/dev/pci/drm/radeon_drv.h
+++ b/sys/dev/pci/drm/radeon_drv.h
@@ -377,7 +377,6 @@ extern int radeon_irq_wait(struct drm_device *dev, void *data, struct drm_file *
extern u32 radeon_get_vblank_counter(struct drm_device *dev, int crtc);
extern int radeon_enable_vblank(struct drm_device *dev, int crtc);
extern void radeon_disable_vblank(struct drm_device *dev, int crtc);
-extern irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS);
extern int radeon_driver_irq_install(struct drm_device * dev);
extern void radeon_driver_irq_uninstall(struct drm_device * dev);
diff --git a/sys/dev/pci/drm/radeon_irq.c b/sys/dev/pci/drm/radeon_irq.c
index 374bb5eb98a..962ef17c707 100644
--- a/sys/dev/pci/drm/radeon_irq.c
+++ b/sys/dev/pci/drm/radeon_irq.c
@@ -35,6 +35,7 @@
#include "radeon_drm.h"
#include "radeon_drv.h"
+irqreturn_t radeon_driver_irq_handler(DRM_IRQ_ARGS);
void r500_vbl_irq_set_state(struct drm_device *, u_int32_t, int);
u_int32_t radeon_acknowledge_irqs(drm_radeon_private_t *, u_int32_t *);
int radeon_emit_irq(struct drm_device *);