aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMatt Porter <mporter@kernel.crashing.org>2005-11-07 04:00:20 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-07 10:53:47 -0500
commit6978bbc097c2f665c336927a9d56ae39ef75fa56 (patch)
tree541673cd413025c09b52984c5dc0333133c46a71 /include
parent2b0c28d7f8846f80a436093e906f5175d1fa8f55 (diff)
[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 {
132 */ 132 */
133struct rio_msg { 133struct rio_msg {
134 struct resource *res; 134 struct resource *res;
135 void (*mcback) (struct rio_mport * mport, int mbox, int slot); 135 void (*mcback) (struct rio_mport * mport, void *dev_id, int mbox, int slot);
136}; 136};
137 137
138/** 138/**
@@ -140,11 +140,13 @@ struct rio_msg {
140 * @node: Node in list of doorbell events 140 * @node: Node in list of doorbell events
141 * @res: Doorbell resource 141 * @res: Doorbell resource
142 * @dinb: Doorbell event callback 142 * @dinb: Doorbell event callback
143 * @dev_id: Device specific pointer to pass on event
143 */ 144 */
144struct rio_dbell { 145struct rio_dbell {
145 struct list_head node; 146 struct list_head node;
146 struct resource *res; 147 struct resource *res;
147 void (*dinb) (struct rio_mport * mport, u16 src, u16 dst, u16 info); 148 void (*dinb) (struct rio_mport *mport, void *dev_id, u16 src, u16 dst, u16 info);
149 void *dev_id;
148}; 150};
149 151
150/** 152/**
@@ -314,9 +316,9 @@ extern int rio_hw_add_outb_message(struct rio_mport *, struct rio_dev *, int,
314 void *, size_t); 316 void *, size_t);
315extern int rio_hw_add_inb_buffer(struct rio_mport *, int, void *); 317extern int rio_hw_add_inb_buffer(struct rio_mport *, int, void *);
316extern void *rio_hw_get_inb_message(struct rio_mport *, int); 318extern void *rio_hw_get_inb_message(struct rio_mport *, int);
317extern int rio_open_inb_mbox(struct rio_mport *, int, int); 319extern int rio_open_inb_mbox(struct rio_mport *, void *, int, int);
318extern void rio_close_inb_mbox(struct rio_mport *, int); 320extern void rio_close_inb_mbox(struct rio_mport *, int);
319extern int rio_open_outb_mbox(struct rio_mport *, int, int); 321extern int rio_open_outb_mbox(struct rio_mport *, void *, int, int);
320extern void rio_close_outb_mbox(struct rio_mport *, int); 322extern void rio_close_outb_mbox(struct rio_mport *, int);
321 323
322#endif /* __KERNEL__ */ 324#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)
348 .asm_did = RIO_ANY_ID, .asm_vid = RIO_ANY_ID 348 .asm_did = RIO_ANY_ID, .asm_vid = RIO_ANY_ID
349 349
350/* Mailbox management */ 350/* Mailbox management */
351extern int rio_request_outb_mbox(struct rio_mport *, int, int, 351extern int rio_request_outb_mbox(struct rio_mport *, void *, int, int,
352 void (*)(struct rio_mport *, int, int)); 352 void (*)(struct rio_mport *, void *,int, int));
353extern int rio_release_outb_mbox(struct rio_mport *, int); 353extern int rio_release_outb_mbox(struct rio_mport *, int);
354 354
355/** 355/**
@@ -370,8 +370,8 @@ static inline int rio_add_outb_message(struct rio_mport *mport,
370 return rio_hw_add_outb_message(mport, rdev, mbox, buffer, len); 370 return rio_hw_add_outb_message(mport, rdev, mbox, buffer, len);
371} 371}
372 372
373extern int rio_request_inb_mbox(struct rio_mport *, int, int, 373extern int rio_request_inb_mbox(struct rio_mport *, void *, int, int,
374 void (*)(struct rio_mport *, int, int)); 374 void (*)(struct rio_mport *, void *, int, int));
375extern int rio_release_inb_mbox(struct rio_mport *, int); 375extern int rio_release_inb_mbox(struct rio_mport *, int);
376 376
377/** 377/**
@@ -403,8 +403,8 @@ static inline void *rio_get_inb_message(struct rio_mport *mport, int mbox)
403} 403}
404 404
405/* Doorbell management */ 405/* Doorbell management */
406extern int rio_request_inb_dbell(struct rio_mport *, u16, u16, 406extern int rio_request_inb_dbell(struct rio_mport *, void *, u16, u16,
407 void (*)(struct rio_mport *, u16, u16, u16)); 407 void (*)(struct rio_mport *, void *, u16, u16, u16));
408extern int rio_release_inb_dbell(struct rio_mport *, u16, u16); 408extern int rio_release_inb_dbell(struct rio_mport *, u16, u16);
409extern struct resource *rio_request_outb_dbell(struct rio_dev *, u16, u16); 409extern struct resource *rio_request_outb_dbell(struct rio_dev *, u16, u16);
410extern int rio_release_outb_dbell(struct rio_dev *, struct resource *); 410extern int rio_release_outb_dbell(struct rio_dev *, struct resource *);