From 07590ff03935a2efbc03bc7861f20c059576a479 Mon Sep 17 00:00:00 2001 From: Alexandre Bounine Date: Wed, 26 May 2010 14:43:57 -0700 Subject: 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 Tested-by: Thomas Moll Cc: Matt Porter Cc: Li Yang Cc: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- include/linux/rio.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include/linux/rio.h') 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 */ -- cgit v1.2.3-59-g8ed1b