Lines Matching full:peer
282 struct usb_port *peer = port_dev->peer; in usb_port_runtime_resume() local
294 * Power on our usb3 peer before this usb2 port to prevent a usb3 in usb_port_runtime_resume()
297 if (!port_dev->is_superspeed && peer) in usb_port_runtime_resume()
298 pm_runtime_get_sync(&peer->dev); in usb_port_runtime_resume()
340 struct usb_port *peer = port_dev->peer; in usb_port_runtime_suspend() local
367 * Our peer usb3 port may now be able to suspend, so in usb_port_runtime_suspend()
371 if (!port_dev->is_superspeed && peer) in usb_port_runtime_suspend()
372 pm_runtime_put(&peer->dev); in usb_port_runtime_suspend()
410 if (left->peer == right && right->peer == left) in link_peers()
413 if (left->peer || right->peer) { in link_peers()
414 struct usb_port *lpeer = left->peer; in link_peers()
415 struct usb_port *rpeer = right->peer; in link_peers()
423 pr_debug("usb: failed to peer %s and %s by %s (%s:%s) (%s:%s)\n", in link_peers()
432 rc = sysfs_create_link(&left->dev.kobj, &right->dev.kobj, "peer"); in link_peers()
435 rc = sysfs_create_link(&right->dev.kobj, &left->dev.kobj, "peer"); in link_peers()
437 sysfs_remove_link(&left->dev.kobj, "peer"); in link_peers()
443 * setting ->peer with usb_port_runtime_suspend(). Otherwise we in link_peers()
457 left->peer = right; in link_peers()
458 right->peer = left; in link_peers()
482 dev_dbg(&left->dev, "failed to peer to %s (%d)\n", in link_peers_report()
493 WARN(right->peer != left || left->peer != right, in unlink_peers()
500 * when ->peer is !NULL. in unlink_peers()
512 sysfs_remove_link(&left->dev.kobj, "peer"); in unlink_peers()
513 right->peer = NULL; in unlink_peers()
514 sysfs_remove_link(&right->dev.kobj, "peer"); in unlink_peers()
515 left->peer = NULL; in unlink_peers()
526 * peer domain of the given port_dev, and if it is check to see if it
533 struct usb_port *port_dev = p, *peer; in match_location() local
542 /* peer_hcd is provisional until we verify it against the known peer */ in match_location()
547 peer = peer_hub->ports[port1 - 1]; in match_location()
548 if (peer && peer->location == port_dev->location) { in match_location()
549 link_peers_report(port_dev, peer); in match_location()
558 * Find the peer port either via explicit platform firmware "location"
559 * data, the peer hcd for root hubs, or the upstream peer relationship
564 struct usb_port *port_dev = hub->ports[port1 - 1], *peer; in find_and_link_peer() local
570 * If location data is available then we can only peer this port in find_and_link_peer()
571 * by a location match, not the default peer (lest we create a in find_and_link_peer()
576 /* we link the peer in match_location() if found */ in find_and_link_peer()
596 if (!upstream || !upstream->peer) in find_and_link_peer()
599 peer_hdev = upstream->peer->child; in find_and_link_peer()
607 * we found a valid default peer, last check is to make sure it in find_and_link_peer()
610 peer = peer_hub->ports[port1 - 1]; in find_and_link_peer()
611 if (peer && peer->location == 0) in find_and_link_peer()
612 link_peers_report(port_dev, peer); in find_and_link_peer()
734 struct usb_port *peer; in usb_hub_remove_port_device() local
736 peer = port_dev->peer; in usb_hub_remove_port_device()
737 if (peer) in usb_hub_remove_port_device()
738 unlink_peers(port_dev, peer); in usb_hub_remove_port_device()