diff options
author | Alexandre Bounine <alexandre.bounine@idt.com> | 2010-05-27 01:43:57 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 20:12:50 +0400 |
commit | 07590ff03935a2efbc03bc7861f20c059576a479 (patch) | |
tree | 2da1ee2032e1425a138bc2864066a2e10533ce64 /include/linux/rio.h | |
parent | f67231f80126f4e08c79c7b2056989c5c89ad4c6 (diff) | |
download | linux-07590ff03935a2efbc03bc7861f20c059576a479.tar.xz |
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.h | 6 |
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 */ |