summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMatt Porter <mporter@kernel.crashing.org>2005-11-07 10:00:20 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 16:53:47 +0100
commit6978bbc097c2f665c336927a9d56ae39ef75fa56 (patch)
tree541673cd413025c09b52984c5dc0333133c46a71 /include
parent[PATCH] RapidIO support: ppc32 (diff)
downloadlinux-6978bbc097c2f665c336927a9d56ae39ef75fa56.tar.xz
linux-6978bbc097c2f665c336927a9d56ae39ef75fa56.zip
[PATCH] rapidio: message interface updates
Updates the RIO messaging interface to pass a device instance into the event registeration and callbacks. Signed-off-by: Matt Porter <mporter@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/rio.h10
-rw-r--r--include/linux/rio_drv.h12
2 files changed, 12 insertions, 10 deletions
diff --git a/include/linux/rio.h b/include/linux/rio.h
index 5c29f2f477c2..c7e907faae9c 100644
--- a/include/linux/rio.h
+++ b/include/linux/rio.h
@@ -132,7 +132,7 @@ struct rio_dev {
*/
struct rio_msg {
struct resource *res;
- void (*mcback) (struct rio_mport * mport, int mbox, int slot);
+ void (*mcback) (struct rio_mport * mport, void *dev_id, int mbox, int slot);
};
/**
@@ -140,11 +140,13 @@ struct rio_msg {
* @node: Node in list of doorbell events
* @res: Doorbell resource
* @dinb: Doorbell event callback
+ * @dev_id: Device specific pointer to pass on event
*/
struct rio_dbell {
struct list_head node;
struct resource *res;
- void (*dinb) (struct rio_mport * mport, u16 src, u16 dst, u16 info);
+ void (*dinb) (struct rio_mport *mport, void *dev_id, u16 src, u16 dst, u16 info);
+ void *dev_id;
};
/**
@@ -314,9 +316,9 @@ extern int rio_hw_add_outb_message(struct rio_mport *, struct rio_dev *, int,
void *, size_t);
extern int rio_hw_add_inb_buffer(struct rio_mport *, int, void *);
extern void *rio_hw_get_inb_message(struct rio_mport *, int);
-extern int rio_open_inb_mbox(struct rio_mport *, int, int);
+extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int);
extern void rio_close_inb_mbox(struct rio_mport *, int);
-extern int rio_open_outb_mbox(struct rio_mport *, int, int);
+extern int rio_open_outb_mbox(struct rio_mport *, void *, int, int);
extern void rio_close_outb_mbox(struct rio_mport *, int);
#endif /* __KERNEL__ */
diff --git a/include/linux/rio_drv.h b/include/linux/rio_drv.h
index 7483dfc0dfa3..3bd7cce19e26 100644
--- a/include/linux/rio_drv.h
+++ b/include/linux/rio_drv.h
@@ -348,8 +348,8 @@ static inline void rio_init_dbell_res(struct resource *res, u16 start, u16 end)
.asm_did = RIO_ANY_ID, .asm_vid = RIO_ANY_ID
/* Mailbox management */
-extern int rio_request_outb_mbox(struct rio_mport *, int, int,
- void (*)(struct rio_mport *, int, int));
+extern int rio_request_outb_mbox(struct rio_mport *, void *, int, int,
+ void (*)(struct rio_mport *, void *,int, int));
extern int rio_release_outb_mbox(struct rio_mport *, int);
/**
@@ -370,8 +370,8 @@ static inline int rio_add_outb_message(struct rio_mport *mport,
return rio_hw_add_outb_message(mport, rdev, mbox, buffer, len);
}
-extern int rio_request_inb_mbox(struct rio_mport *, int, int,
- void (*)(struct rio_mport *, int, int));
+extern int rio_request_inb_mbox(struct rio_mport *, void *, int, int,
+ void (*)(struct rio_mport *, void *, int, int));
extern int rio_release_inb_mbox(struct rio_mport *, int);
/**
@@ -403,8 +403,8 @@ static inline void *rio_get_inb_message(struct rio_mport *mport, int mbox)
}
/* Doorbell management */
-extern int rio_request_inb_dbell(struct rio_mport *, u16, u16,
- void (*)(struct rio_mport *, u16, u16, u16));
+extern int rio_request_inb_dbell(struct rio_mport *, void *, u16, u16,
+ void (*)(struct rio_mport *, void *, u16, u16, u16));
extern int rio_release_inb_dbell(struct rio_mport *, u16, u16);
extern struct resource *rio_request_outb_dbell(struct rio_dev *, u16, u16);
extern int rio_release_outb_dbell(struct rio_dev *, struct resource *);