aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rio.h
diff options
context:
space:
mode:
authorAlexandre Bounine <alexandre.bounine@idt.com>2010-05-26 14:43:57 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-27 09:12:50 -0700
commit07590ff03935a2efbc03bc7861f20c059576a479 (patch)
tree2da1ee2032e1425a138bc2864066a2e10533ce64 /include/linux/rio.h
parentdrivers/char/applicom.c: use memdup_user (diff)
downloadlinux-dev-07590ff03935a2efbc03bc7861f20c059576a479.tar.xz
linux-dev-07590ff03935a2efbc03bc7861f20c059576a479.zip
rapidio: add IDT CPS/TSI switches
Extentions to RapidIO switch support: 1. modify switch route operation declarations to allow using single switch-specific file for family of switches that share the same route table operations. 2. add standard route table operations for switches that that support route table manipulation registers as defined in the Rev.1.3 of RapidIO specification. 3. add clear-route-table operation for switches 4. add CPSxx and TSIxxx families of RapidIO switches Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com> Tested-by: Thomas Moll <thomas.moll@sysgo.com> Cc: Matt Porter <mporter@kernel.crashing.org> Cc: Li Yang <leoli@freescale.com> Cc: Kumar Gala <galak@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/rio.h')
-rw-r--r--include/linux/rio.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/rio.h b/include/linux/rio.h
index dc0c75556c63..29d98997c6c8 100644
--- a/include/linux/rio.h
+++ b/include/linux/rio.h
@@ -213,6 +213,7 @@ struct rio_net {
* @route_table: Copy of switch routing table
* @add_entry: Callback for switch-specific route add function
* @get_entry: Callback for switch-specific route get function
+ * @clr_table: Callback for switch-specific clear route table function
*/
struct rio_switch {
struct list_head node;
@@ -224,6 +225,8 @@ struct rio_switch {
u16 table, u16 route_destid, u8 route_port);
int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,
u16 table, u16 route_destid, u8 * route_port);
+ int (*clr_table) (struct rio_mport *mport, u16 destid, u8 hopcount,
+ u16 table);
};
/* Low-level architecture-dependent routines */
@@ -307,6 +310,7 @@ struct rio_device_id {
* @did: RIO device ID
* @add_hook: Callback that adds a route entry
* @get_hook: Callback that gets a route entry
+ * @clr_hook: Callback that clears a switch route table (may be NULL)
*
* Defines the operations that are necessary to manipulate the route
* tables for a particular RIO switch device.
@@ -317,6 +321,8 @@ struct rio_route_ops {
u16 table, u16 route_destid, u8 route_port);
int (*get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount,
u16 table, u16 route_destid, u8 * route_port);
+ int (*clr_hook) (struct rio_mport *mport, u16 destid, u8 hopcount,
+ u16 table);
};
/* Architecture and hardware-specific functions */