Lines Matching full:peer
321 struct usb_port *peer = port_dev->peer; in usb_port_runtime_resume() local
333 * Power on our usb3 peer before this usb2 port to prevent a usb3 in usb_port_runtime_resume()
336 if (!port_dev->is_superspeed && peer) in usb_port_runtime_resume()
337 pm_runtime_get_sync(&peer->dev); in usb_port_runtime_resume()
379 struct usb_port *peer = port_dev->peer; in usb_port_runtime_suspend() local
406 * Our peer usb3 port may now be able to suspend, so in usb_port_runtime_suspend()
410 if (!port_dev->is_superspeed && peer) in usb_port_runtime_suspend()
411 pm_runtime_put(&peer->dev); in usb_port_runtime_suspend()
449 if (left->peer == right && right->peer == left) in link_peers()
452 if (left->peer || right->peer) { in link_peers()
453 struct usb_port *lpeer = left->peer; in link_peers()
454 struct usb_port *rpeer = right->peer; in link_peers()
462 pr_debug("usb: failed to peer %s and %s by %s (%s:%s) (%s:%s)\n", in link_peers()
471 rc = sysfs_create_link(&left->dev.kobj, &right->dev.kobj, "peer"); in link_peers()
474 rc = sysfs_create_link(&right->dev.kobj, &left->dev.kobj, "peer"); in link_peers()
476 sysfs_remove_link(&left->dev.kobj, "peer"); in link_peers()
482 * setting ->peer with usb_port_runtime_suspend(). Otherwise we in link_peers()
496 left->peer = right; in link_peers()
497 right->peer = left; in link_peers()
521 dev_dbg(&left->dev, "failed to peer to %s (%d)\n", in link_peers_report()
532 WARN(right->peer != left || left->peer != right, in unlink_peers()
539 * when ->peer is !NULL. in unlink_peers()
551 sysfs_remove_link(&left->dev.kobj, "peer"); in unlink_peers()
552 right->peer = NULL; in unlink_peers()
553 sysfs_remove_link(&right->dev.kobj, "peer"); in unlink_peers()
554 left->peer = NULL; in unlink_peers()
565 * peer domain of the given port_dev, and if it is check to see if it
572 struct usb_port *port_dev = p, *peer; in match_location() local
581 /* peer_hcd is provisional until we verify it against the known peer */ in match_location()
586 peer = peer_hub->ports[port1 - 1]; in match_location()
587 if (peer && peer->connect_type != USB_PORT_NOT_USED && in match_location()
588 peer->location == port_dev->location) { in match_location()
589 link_peers_report(port_dev, peer); in match_location()
598 * Find the peer port either via explicit platform firmware "location"
599 * data, the peer hcd for root hubs, or the upstream peer relationship
604 struct usb_port *port_dev = hub->ports[port1 - 1], *peer; in find_and_link_peer() local
610 * If location data is available then we can only peer this port in find_and_link_peer()
611 * by a location match, not the default peer (lest we create a in find_and_link_peer()
616 /* we link the peer in match_location() if found */ in find_and_link_peer()
636 if (!upstream || !upstream->peer) in find_and_link_peer()
639 peer_hdev = upstream->peer->child; in find_and_link_peer()
647 * we found a valid default peer, last check is to make sure it in find_and_link_peer()
650 peer = peer_hub->ports[port1 - 1]; in find_and_link_peer()
651 if (peer && peer->location == 0) in find_and_link_peer()
652 link_peers_report(port_dev, peer); in find_and_link_peer()
800 struct usb_port *peer; in usb_hub_remove_port_device() local
802 peer = port_dev->peer; in usb_hub_remove_port_device()
803 if (peer) in usb_hub_remove_port_device()
804 unlink_peers(port_dev, peer); in usb_hub_remove_port_device()