rapidio: use default route value for CPS switches
authorAlexandre Bounine <alexandre.bounine@idt.com>
Wed, 26 May 2010 21:44:05 +0000 (14:44 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 27 May 2010 16:12:51 +0000 (09:12 -0700)
Fix to use correct default value for routing table entries.

Signed-off-by: Alexandre Bounine <alexandre.bounine@idt.com>
Cc: Matt Porter <mporter@kernel.crashing.org>
Cc: Li Yang <leoli@freescale.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Cc: Thomas Moll <thomas.moll@sysgo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rapidio/switches/idtcps.c

index 73c3677..2c790c1 100644 (file)
@@ -15,7 +15,8 @@
 #include <linux/rio_ids.h>
 #include "../rio.h"
 
-#define CPS_NO_ROUTE 0xdf
+#define CPS_DEFAULT_ROUTE      0xde
+#define CPS_NO_ROUTE           0xdf
 
 #define IDTCPS_RIO_DOMAIN 0xf20020
 
@@ -53,10 +54,11 @@ idtcps_route_get_entry(struct rio_mport *mport, u16 destid, u8 hopcount,
                rio_mport_read_config_32(mport, destid, hopcount,
                                RIO_STD_RTE_CONF_PORT_SEL_CSR, &result);
 
-               if (CPS_NO_ROUTE == (u8)result)
-                       result = RIO_INVALID_ROUTE;
-
-               *route_port = (u8)result;
+               if (CPS_DEFAULT_ROUTE == (u8)result ||
+                   CPS_NO_ROUTE == (u8)result)
+                       *route_port = RIO_INVALID_ROUTE;
+               else
+                       *route_port = (u8)result;
        }
 
        return 0;
@@ -74,9 +76,9 @@ idtcps_route_clr_table(struct rio_mport *mport, u16 destid, u8 hopcount,
                                RIO_STD_RTE_CONF_DESTID_SEL_CSR, i);
                        rio_mport_write_config_32(mport, destid, hopcount,
                                RIO_STD_RTE_CONF_PORT_SEL_CSR,
-                               (RIO_INVALID_ROUTE << 24) |
-                               (RIO_INVALID_ROUTE << 16) |
-                               (RIO_INVALID_ROUTE << 8) | RIO_INVALID_ROUTE);
+                               (CPS_DEFAULT_ROUTE << 24) |
+                               (CPS_DEFAULT_ROUTE << 16) |
+                               (CPS_DEFAULT_ROUTE << 8) | CPS_DEFAULT_ROUTE);
                        i += 4;
                }
        }