Lines Matching refs:xd

560 static int icm_fr_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd,  in icm_fr_approve_xdomain_paths()  argument
570 request.link_info = xd->depth << ICM_LINK_INFO_DEPTH_SHIFT | xd->link; in icm_fr_approve_xdomain_paths()
571 memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); in icm_fr_approve_xdomain_paths()
590 static int icm_fr_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd, in icm_fr_disconnect_xdomain_paths() argument
597 phy_port = tb_phy_port_from_link(xd->link); in icm_fr_disconnect_xdomain_paths()
683 struct tb_xdomain *xd; in add_xdomain() local
687 xd = tb_xdomain_alloc(sw->tb, &sw->dev, route, local_uuid, remote_uuid); in add_xdomain()
688 if (!xd) in add_xdomain()
691 xd->link = link; in add_xdomain()
692 xd->depth = depth; in add_xdomain()
694 tb_port_at(route, sw)->xdomain = xd; in add_xdomain()
696 tb_xdomain_add(xd); in add_xdomain()
703 static void update_xdomain(struct tb_xdomain *xd, u64 route, u8 link) in update_xdomain() argument
705 xd->link = link; in update_xdomain()
706 xd->route = route; in update_xdomain()
707 xd->is_unplugged = false; in update_xdomain()
710 static void remove_xdomain(struct tb_xdomain *xd) in remove_xdomain() argument
714 sw = tb_to_switch(xd->dev.parent); in remove_xdomain()
715 tb_port_at(xd->route, sw)->xdomain = NULL; in remove_xdomain()
716 tb_xdomain_remove(xd); in remove_xdomain()
729 struct tb_xdomain *xd; in icm_fr_device_connected() local
820 xd = tb_xdomain_find_by_link_depth(tb, link, depth); in icm_fr_device_connected()
821 if (xd) { in icm_fr_device_connected()
822 remove_xdomain(xd); in icm_fr_device_connected()
823 tb_xdomain_put(xd); in icm_fr_device_connected()
906 struct tb_xdomain *xd; in icm_fr_xdomain_connected() local
922 xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); in icm_fr_xdomain_connected()
923 if (xd) { in icm_fr_xdomain_connected()
926 xd_phy_port = phy_port_from_route(xd->route, xd->depth); in icm_fr_xdomain_connected()
929 if (xd->depth == depth && xd_phy_port == phy_port) { in icm_fr_xdomain_connected()
930 update_xdomain(xd, route, link); in icm_fr_xdomain_connected()
931 tb_xdomain_put(xd); in icm_fr_xdomain_connected()
941 remove_xdomain(xd); in icm_fr_xdomain_connected()
942 tb_xdomain_put(xd); in icm_fr_xdomain_connected()
950 xd = tb_xdomain_find_by_link_depth(tb, link, depth); in icm_fr_xdomain_connected()
951 if (!xd) { in icm_fr_xdomain_connected()
956 xd = tb_xdomain_find_by_link_depth(tb, dual_link, in icm_fr_xdomain_connected()
959 if (xd) { in icm_fr_xdomain_connected()
960 remove_xdomain(xd); in icm_fr_xdomain_connected()
961 tb_xdomain_put(xd); in icm_fr_xdomain_connected()
992 struct tb_xdomain *xd; in icm_fr_xdomain_disconnected() local
999 xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); in icm_fr_xdomain_disconnected()
1000 if (xd) { in icm_fr_xdomain_disconnected()
1001 remove_xdomain(xd); in icm_fr_xdomain_disconnected()
1002 tb_xdomain_put(xd); in icm_fr_xdomain_disconnected()
1127 static int icm_tr_approve_xdomain_paths(struct tb *tb, struct tb_xdomain *xd, in icm_tr_approve_xdomain_paths() argument
1137 request.route_hi = upper_32_bits(xd->route); in icm_tr_approve_xdomain_paths()
1138 request.route_lo = lower_32_bits(xd->route); in icm_tr_approve_xdomain_paths()
1143 memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); in icm_tr_approve_xdomain_paths()
1157 static int icm_tr_xdomain_tear_down(struct tb *tb, struct tb_xdomain *xd, in icm_tr_xdomain_tear_down() argument
1167 request.route_hi = upper_32_bits(xd->route); in icm_tr_xdomain_tear_down()
1168 request.route_lo = lower_32_bits(xd->route); in icm_tr_xdomain_tear_down()
1169 memcpy(&request.remote_uuid, xd->remote_uuid, sizeof(*xd->remote_uuid)); in icm_tr_xdomain_tear_down()
1183 static int icm_tr_disconnect_xdomain_paths(struct tb *tb, struct tb_xdomain *xd, in icm_tr_disconnect_xdomain_paths() argument
1189 ret = icm_tr_xdomain_tear_down(tb, xd, 1); in icm_tr_disconnect_xdomain_paths()
1194 return icm_tr_xdomain_tear_down(tb, xd, 2); in icm_tr_disconnect_xdomain_paths()
1206 struct tb_xdomain *xd; in __icm_tr_device_connected() local
1255 xd = tb_xdomain_find_by_route(tb, route); in __icm_tr_device_connected()
1256 if (xd) { in __icm_tr_device_connected()
1257 remove_xdomain(xd); in __icm_tr_device_connected()
1258 tb_xdomain_put(xd); in __icm_tr_device_connected()
1329 struct tb_xdomain *xd; in icm_tr_xdomain_connected() local
1338 xd = tb_xdomain_find_by_uuid(tb, &pkg->remote_uuid); in icm_tr_xdomain_connected()
1339 if (xd) { in icm_tr_xdomain_connected()
1340 if (xd->route == route) { in icm_tr_xdomain_connected()
1341 update_xdomain(xd, route, 0); in icm_tr_xdomain_connected()
1342 tb_xdomain_put(xd); in icm_tr_xdomain_connected()
1346 remove_xdomain(xd); in icm_tr_xdomain_connected()
1347 tb_xdomain_put(xd); in icm_tr_xdomain_connected()
1351 xd = tb_xdomain_find_by_route(tb, route); in icm_tr_xdomain_connected()
1352 if (xd) { in icm_tr_xdomain_connected()
1353 remove_xdomain(xd); in icm_tr_xdomain_connected()
1354 tb_xdomain_put(xd); in icm_tr_xdomain_connected()
1383 struct tb_xdomain *xd; in icm_tr_xdomain_disconnected() local
1388 xd = tb_xdomain_find_by_route(tb, route); in icm_tr_xdomain_disconnected()
1389 if (xd) { in icm_tr_xdomain_disconnected()
1390 remove_xdomain(xd); in icm_tr_xdomain_disconnected()
1391 tb_xdomain_put(xd); in icm_tr_xdomain_disconnected()