summaryrefslogtreecommitdiffstats
path: root/drivers/staging/vme/vme_bridge.h
diff options
context:
space:
mode:
authorMartyn Welch2009-10-29 17:34:54 +0100
committerGreg Kroah-Hartman2009-12-11 21:23:17 +0100
commitc813f592a5e65cfd9321f51c95a6977e9518dde6 (patch)
treee2d75f7720bff912ddbf92e7921d3856079eacad /drivers/staging/vme/vme_bridge.h
parentstaging: vme: correct array overflow (diff)
downloadkernel-qcow2-linux-c813f592a5e65cfd9321f51c95a6977e9518dde6.tar.gz
kernel-qcow2-linux-c813f592a5e65cfd9321f51c95a6977e9518dde6.tar.xz
kernel-qcow2-linux-c813f592a5e65cfd9321f51c95a6977e9518dde6.zip
Staging: vme: Pull common VME interrupt handling into core code
Currently the VME callback infrastructure is replicated in each VME driver. Move this common code into the VME core. Rename functions to fit in better with naming of other VME functions. Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/vme/vme_bridge.h')
-rw-r--r--drivers/staging/vme/vme_bridge.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/staging/vme/vme_bridge.h b/drivers/staging/vme/vme_bridge.h
index e43cc19103b3..851fa92559f6 100644
--- a/drivers/staging/vme/vme_bridge.h
+++ b/drivers/staging/vme/vme_bridge.h
@@ -120,6 +120,8 @@ struct vme_bridge {
/* Interrupt callbacks */
struct vme_irq irq[7];
+ /* Locking for VME irq callback configuration */
+ struct mutex irq_mtx;
/* Slave Functions */
int (*slave_get) (struct vme_slave_resource *, int *,
@@ -149,9 +151,8 @@ struct vme_bridge {
int (*dma_list_empty) (struct vme_dma_list *);
/* Interrupt Functions */
- int (*request_irq) (int, int, void (*cback)(int, int, void*), void *);
- void (*free_irq) (int, int);
- int (*generate_irq) (int, int);
+ void (*irq_set) (int, int, int);
+ int (*irq_generate) (int, int);
/* Location monitor functions */
int (*lm_set) (struct vme_lm_resource *, unsigned long long,
@@ -175,6 +176,8 @@ struct vme_bridge {
#endif
};
+void vme_irq_handler(struct vme_bridge *, int, int);
+
int vme_register_bridge (struct vme_bridge *);
void vme_unregister_bridge (struct vme_bridge *);