diff options
| -rw-r--r-- | drivers/rapidio/switches/idt_gen2.c | 9 | ||||
| -rw-r--r-- | drivers/rapidio/switches/idtcps.c | 6 | ||||
| -rw-r--r-- | drivers/rapidio/switches/tsi57x.c | 6 |
3 files changed, 21 insertions, 0 deletions
diff --git a/drivers/rapidio/switches/idt_gen2.c b/drivers/rapidio/switches/idt_gen2.c index ac2701b22e71..043ee3136e40 100644 --- a/drivers/rapidio/switches/idt_gen2.c +++ b/drivers/rapidio/switches/idt_gen2.c | |||
| @@ -95,6 +95,9 @@ idtg2_route_add_entry(struct rio_mport *mport, u16 destid, u8 hopcount, | |||
| 95 | else | 95 | else |
| 96 | table++; | 96 | table++; |
| 97 | 97 | ||
| 98 | if (route_port == RIO_INVALID_ROUTE) | ||
| 99 | route_port = IDT_DEFAULT_ROUTE; | ||
| 100 | |||
| 98 | rio_mport_write_config_32(mport, destid, hopcount, | 101 | rio_mport_write_config_32(mport, destid, hopcount, |
| 99 | LOCAL_RTE_CONF_DESTID_SEL, table); | 102 | LOCAL_RTE_CONF_DESTID_SEL, table); |
| 100 | 103 | ||
| @@ -411,6 +414,12 @@ static int idtg2_switch_init(struct rio_dev *rdev, int do_enum) | |||
| 411 | rdev->rswitch->em_handle = idtg2_em_handler; | 414 | rdev->rswitch->em_handle = idtg2_em_handler; |
| 412 | rdev->rswitch->sw_sysfs = idtg2_sysfs; | 415 | rdev->rswitch->sw_sysfs = idtg2_sysfs; |
| 413 | 416 | ||
| 417 | if (do_enum) { | ||
| 418 | /* Ensure that default routing is disabled on startup */ | ||
| 419 | rio_write_config_32(rdev, | ||
| 420 | RIO_STD_RTE_DEFAULT_PORT, IDT_NO_ROUTE); | ||
| 421 | } | ||
| 422 | |||
| 414 | return 0; | 423 | return 0; |
| 415 | } | 424 | } |
| 416 | 425 | ||
diff --git a/drivers/rapidio/switches/idtcps.c b/drivers/rapidio/switches/idtcps.c index 3a971077e7bf..d06ee2d44b44 100644 --- a/drivers/rapidio/switches/idtcps.c +++ b/drivers/rapidio/switches/idtcps.c | |||
| @@ -26,6 +26,9 @@ idtcps_route_add_entry(struct rio_mport *mport, u16 destid, u8 hopcount, | |||
| 26 | { | 26 | { |
| 27 | u32 result; | 27 | u32 result; |
| 28 | 28 | ||
| 29 | if (route_port == RIO_INVALID_ROUTE) | ||
| 30 | route_port = CPS_DEFAULT_ROUTE; | ||
| 31 | |||
| 29 | if (table == RIO_GLOBAL_TABLE) { | 32 | if (table == RIO_GLOBAL_TABLE) { |
| 30 | rio_mport_write_config_32(mport, destid, hopcount, | 33 | rio_mport_write_config_32(mport, destid, hopcount, |
| 31 | RIO_STD_RTE_CONF_DESTID_SEL_CSR, route_destid); | 34 | RIO_STD_RTE_CONF_DESTID_SEL_CSR, route_destid); |
| @@ -130,6 +133,9 @@ static int idtcps_switch_init(struct rio_dev *rdev, int do_enum) | |||
| 130 | /* set TVAL = ~50us */ | 133 | /* set TVAL = ~50us */ |
| 131 | rio_write_config_32(rdev, | 134 | rio_write_config_32(rdev, |
| 132 | rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x8e << 8); | 135 | rdev->phys_efptr + RIO_PORT_LINKTO_CTL_CSR, 0x8e << 8); |
| 136 | /* Ensure that default routing is disabled on startup */ | ||
| 137 | rio_write_config_32(rdev, | ||
| 138 | RIO_STD_RTE_DEFAULT_PORT, CPS_NO_ROUTE); | ||
| 133 | } | 139 | } |
| 134 | 140 | ||
| 135 | return 0; | 141 | return 0; |
diff --git a/drivers/rapidio/switches/tsi57x.c b/drivers/rapidio/switches/tsi57x.c index 1a62934bfebc..db8b8028988d 100644 --- a/drivers/rapidio/switches/tsi57x.c +++ b/drivers/rapidio/switches/tsi57x.c | |||
| @@ -303,6 +303,12 @@ static int tsi57x_switch_init(struct rio_dev *rdev, int do_enum) | |||
| 303 | rdev->rswitch->em_init = tsi57x_em_init; | 303 | rdev->rswitch->em_init = tsi57x_em_init; |
| 304 | rdev->rswitch->em_handle = tsi57x_em_handler; | 304 | rdev->rswitch->em_handle = tsi57x_em_handler; |
| 305 | 305 | ||
| 306 | if (do_enum) { | ||
| 307 | /* Ensure that default routing is disabled on startup */ | ||
| 308 | rio_write_config_32(rdev, RIO_STD_RTE_DEFAULT_PORT, | ||
| 309 | RIO_INVALID_ROUTE); | ||
| 310 | } | ||
| 311 | |||
| 306 | return 0; | 312 | return 0; |
| 307 | } | 313 | } |
| 308 | 314 | ||
