aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/rio.h
diff options
context:
space:
mode:
authorAlexandre Bounine <alexandre.bounine@idt.com>2010-05-26 17:43:57 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-05-27 12:12:50 -0400
commit07590ff03935a2efbc03bc7861f20c059576a479 (patch)
tree2da1ee2032e1425a138bc2864066a2e10533ce64 /include/linux/rio.h
parentf67231f80126f4e08c79c7b2056989c5c89ad4c6 (diff)
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 {
213 * @route_table: Copy of switch routing table 213 * @route_table: Copy of switch routing table
214 * @add_entry: Callback for switch-specific route add function 214 * @add_entry: Callback for switch-specific route add function
215 * @get_entry: Callback for switch-specific route get function 215 * @get_entry: Callback for switch-specific route get function
216 * @clr_table: Callback for switch-specific clear route table function
216 */ 217 */
217struct rio_switch { 218struct rio_switch {
218 struct list_head node; 219 struct list_head node;
@@ -224,6 +225,8 @@ struct rio_switch {
224 u16 table, u16 route_destid, u8 route_port); 225 u16 table, u16 route_destid, u8 route_port);
225 int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount, 226 int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount,
226 u16 table, u16 route_destid, u8 * route_port); 227 u16 table, u16 route_destid, u8 * route_port);
228 int (*clr_table) (struct rio_mport *mport, u16 destid, u8 hopcount,
229 u16 table);
227}; 230};
228 231
229/* Low-level architecture-dependent routines */ 232/* Low-level architecture-dependent routines */
@@ -307,6 +310,7 @@ struct rio_device_id {
307 * @did: RIO device ID 310 * @did: RIO device ID
308 * @add_hook: Callback that adds a route entry 311 * @add_hook: Callback that adds a route entry
309 * @get_hook: Callback that gets a route entry 312 * @get_hook: Callback that gets a route entry
313 * @clr_hook: Callback that clears a switch route table (may be NULL)
310 * 314 *
311 * Defines the operations that are necessary to manipulate the route 315 * Defines the operations that are necessary to manipulate the route
312 * tables for a particular RIO switch device. 316 * tables for a particular RIO switch device.
@@ -317,6 +321,8 @@ struct rio_route_ops {
317 u16 table, u16 route_destid, u8 route_port); 321 u16 table, u16 route_destid, u8 route_port);
318 int (*get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount, 322 int (*get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount,
319 u16 table, u16 route_destid, u8 * route_port); 323 u16 table, u16 route_destid, u8 * route_port);
324 int (*clr_hook) (struct rio_mport *mport, u16 destid, u8 hopcount,
325 u16 table);
320}; 326};
321 327
322/* Architecture and hardware-specific functions */ 328/* Architecture and hardware-specific functions */