From 6978bbc097c2f665c336927a9d56ae39ef75fa56 Mon Sep 17 00:00:00 2001
From: Matt Porter <mporter@kernel.crashing.org>
Date: Mon, 7 Nov 2005 01:00:20 -0800
Subject: [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>
---
 include/linux/rio.h     | 10 ++++++----
 include/linux/rio_drv.h | 12 ++++++------
 2 files changed, 12 insertions(+), 10 deletions(-)

(limited to 'include/linux')

diff --git a/include/linux/rio.h b/include/linux/rio.h
index 5c29f2f..c7e907f 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 7483dfc..3bd7cce 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 *);
-- 
cgit v1.1