26 u32 offset = 0x10000 + 0xa00 + ((route_destid / 2)&~0x3);
31 result &= ~(0xf << (4*(route_destid & 0x7)));
33 rio_mport_write_config_32(mport, destid, hopcount, offset + (0x20000*i), result | (route_port << (4*(route_destid & 0x7))));
37 result &= ~(0xf << (4*(route_destid & 0x7)));
38 rio_mport_write_config_32(mport, destid, hopcount, offset + (0x20000*table), result | (route_port << (4*(route_destid & 0x7))));
45 tsi500_route_get_entry(
struct rio_mport *mport,
u16 destid,
u8 hopcount,
u16 table,
u16 route_destid,
u8 *route_port)
48 u32 offset = 0x10000 + 0xa00 + ((route_destid / 2)&~0x3);
56 result &= 0xf << (4*(route_destid & 0x7));
57 *route_port = result >> (4*(route_destid & 0x7));
64 static int tsi500_switch_init(
struct rio_dev *
rdev,
int do_enum)
66 pr_debug(
"RIO: %s for %s\n", __func__, rio_name(rdev));
67 rdev->
rswitch->add_entry = tsi500_route_add_entry;
68 rdev->
rswitch->get_entry = tsi500_route_get_entry;