Lines Matching full:bandwidth
23 * How many time bandwidth allocation request from graphics driver is
29 * Minimum bandwidth (in Mb/s) that is needed in the single transmitter/receiver
30 * direction. This is 40G - 10% guard band bandwidth.
35 * Threshold bandwidth (in Mb/s) that is used to switch the links to
62 * @groups: Bandwidth groups used in this domain.
540 * tb_consumed_usb3_pcie_bandwidth() - Consumed USB3/PCIe bandwidth over a single link
544 * @port: USB4 port the consumed bandwidth is calculated
545 * @consumed_up: Consumed upsream bandwidth (Mb/s)
546 * @consumed_down: Consumed downstream bandwidth (Mb/s)
548 * Calculates consumed USB3 and PCIe bandwidth at @port between path
550 * @src_port and ending on @src_port into account because that bandwidth is
589 * tb_consumed_dp_bandwidth() - Consumed DP bandwidth over a single link
593 * @port: USB4 port the consumed bandwidth is calculated
594 * @consumed_up: Consumed upsream bandwidth (Mb/s)
595 * @consumed_down: Consumed downstream bandwidth (Mb/s)
597 * Calculates consumed DP bandwidth at @port between path from @src_port
601 * If there is bandwidth reserved for any of the groups between
603 * account in the returned consumed bandwidth.
622 * their consumed bandwidth from the available. in tb_consumed_dp_bandwidth()
649 * re-calculating estimated bandwidth. in tb_consumed_dp_bandwidth()
690 * tb_maximum_bandwidth() - Maximum bandwidth over a single link
694 * @port: USB4 port the total bandwidth is calculated
695 * @max_up: Maximum upstream bandwidth (Mb/s)
696 * @max_down: Maximum downstream bandwidth (Mb/s)
697 * @include_asym: Include bandwidth if the link is switched from
700 * Returns maximum possible bandwidth in @max_up and @max_down over a
735 * this bandwidth as available (even though it in tb_maximum_bandwidth()
768 * this bandwidth as available (even though it in tb_maximum_bandwidth()
788 tb_port_dbg(port, "link maximum bandwidth %d/%d Mb/s\n", *max_up, *max_down); in tb_maximum_bandwidth()
793 * tb_available_bandwidth() - Available bandwidth for tunneling
797 * @available_up: Available bandwidth upstream (Mb/s)
798 * @available_down: Available bandwidth downstream (Mb/s)
799 * @include_asym: Include bandwidth if the link is switched from
802 * Calculates maximum available bandwidth for protocol tunneling between
804 * link bandwidth across all links reduced by currently consumed
805 * bandwidth on that link.
807 * If @include_asym is true then includes also bandwidth that can be
818 /* Maximum possible bandwidth asymmetric Gen 4 link is 120 Gb/s */ in tb_available_bandwidth()
821 /* Find the minimum available bandwidth over all links */ in tb_available_bandwidth()
882 tb_tunnel_dbg(tunnel, "reclaiming unused bandwidth\n"); in tb_reclaim_usb3_bandwidth()
885 * Calculate available bandwidth for the first hop USB3 tunnel. in tb_reclaim_usb3_bandwidth()
886 * That determines the whole USB3 bandwidth for this branch. in tb_reclaim_usb3_bandwidth()
891 tb_tunnel_warn(tunnel, "failed to calculate available bandwidth\n"); in tb_reclaim_usb3_bandwidth()
895 tb_tunnel_dbg(tunnel, "available bandwidth %d/%d Mb/s\n", available_up, in tb_reclaim_usb3_bandwidth()
941 /* Make all unused bandwidth available for the new tunnel */ in tb_tunnel_usb3()
952 tb_port_dbg(up, "available bandwidth for new USB3 tunnel %d/%d Mb/s\n", in tb_tunnel_usb3()
1014 * @requested_up: Additional bandwidth (Mb/s) required upstream
1015 * @requested_down: Additional bandwidth (Mb/s) required downstream
1019 * in the opposite direction, if the bandwidth requirements
1127 * transition the link to symmetric if the currently consumed bandwidth
1238 * above into symmetric if bandwidth allows. in tb_configure_link()
1410 tb_dbg(tb, "re-calculating bandwidth estimation for group %u\n", in tb_recalc_estimated_bandwidth_for_group()
1428 * Since USB3 bandwidth is shared by all DP in tb_recalc_estimated_bandwidth_for_group()
1431 * can release USB3 bandwidth just once and not in tb_recalc_estimated_bandwidth_for_group()
1439 "failed to release unused bandwidth\n"); in tb_recalc_estimated_bandwidth_for_group()
1449 "failed to re-calculate estimated bandwidth\n"); in tb_recalc_estimated_bandwidth_for_group()
1454 * Estimated bandwidth includes: in tb_recalc_estimated_bandwidth_for_group()
1455 * - already allocated bandwidth for the DP tunnel in tb_recalc_estimated_bandwidth_for_group()
1456 * - available bandwidth along the path in tb_recalc_estimated_bandwidth_for_group()
1457 * - bandwidth allocated for USB 3.x but not used. in tb_recalc_estimated_bandwidth_for_group()
1465 * If there is reserved bandwidth for the group that is in tb_recalc_estimated_bandwidth_for_group()
1469 "re-calculated estimated bandwidth %u (+ %u reserved) = %u Mb/s\n", in tb_recalc_estimated_bandwidth_for_group()
1476 "failed to update estimated bandwidth\n"); in tb_recalc_estimated_bandwidth_for_group()
1483 tb_dbg(tb, "bandwidth estimation for group %u done\n", group->index); in tb_recalc_estimated_bandwidth_for_group()
1491 tb_dbg(tb, "bandwidth consumption changed, re-calculating estimated bandwidth\n"); in tb_recalc_estimated_bandwidth()
1500 tb_dbg(tb, "bandwidth re-calculation done\n"); in tb_recalc_estimated_bandwidth()
1526 * links back to symmetric if bandwidth requirement < asym_threshold. in __configure_group_sym()
1529 * if the graphics released bandwidth for other tunnel in the in __configure_group_sym()
1575 tb_port_dbg(in, "attached to bandwidth group %d\n", group->index); in tb_bandwidth_group_attach_port()
1624 tb_port_warn(in, "no available bandwidth groups\n"); in tb_attach_bandwidth_group()
1655 tb_port_dbg(in, "detached from bandwidth group %d\n", group->index); in tb_detach_bandwidth_group()
1657 /* No more tunnels so release the reserved bandwidth if any */ in tb_detach_bandwidth_group()
1717 * If bandwidth on a link is < asym_threshold in tb_deactivate_and_free_tunnel()
1735 * bandwidth. in tb_deactivate_and_free_tunnel()
1889 /* If fail reading tunnel's consumed bandwidth, tear it down */ in tb_dp_tunnel_active()
1894 "failed to read consumed bandwidth, tearing down\n"); in tb_dp_tunnel_active()
1905 * Update the domain with the new bandwidth in tb_dp_tunnel_active()
1952 * topology). For these try to share the DP bandwidth between in tb_tunnel_one_dp()
1982 /* Make all unused USB3 bandwidth available for the new DP tunnel */ in tb_tunnel_one_dp()
1985 tb_warn(tb, "failed to release unused bandwidth\n"); in tb_tunnel_one_dp()
1994 tb_dbg(tb, "available bandwidth for new DP tunnel %u/%u Mb/s\n", in tb_tunnel_one_dp()
2520 tb_tunnel_dbg(tunnel, "bandwidth allocated currently %d/%d Mb/s\n", in tb_alloc_dp_bandwidth()
2562 tb_tunnel_dbg(tunnel, "corrected bandwidth request %d/%d Mb/s\n", in tb_alloc_dp_bandwidth()
2568 "bandwidth request too high (%d/%d Mb/s > %d/%d Mb/s)\n", in tb_alloc_dp_bandwidth()
2583 * If requested bandwidth is less or equal than in tb_alloc_dp_bandwidth()
2586 * and add the released bandwidth for the group in tb_alloc_dp_bandwidth()
2618 * More bandwidth is requested. Release all the potential in tb_alloc_dp_bandwidth()
2619 * bandwidth from USB3 first. in tb_alloc_dp_bandwidth()
2628 * that we use with the normal bandwidth allocation). in tb_alloc_dp_bandwidth()
2635 tb_tunnel_dbg(tunnel, "bandwidth available for allocation %d/%d (+ %u reserved) Mb/s\n", in tb_alloc_dp_bandwidth()
2645 * If bandwidth on a link is >= asym_threshold in tb_alloc_dp_bandwidth()
2658 tb_tunnel_warn(tunnel, "failed to allocate bandwidth\n"); in tb_alloc_dp_bandwidth()
2713 tb_warn(tb, "bandwidth request from non-existent router %llx\n", in tb_handle_dp_bandwidth_request()
2720 tb_port_warn(in, "bandwidth request to non-DP IN adapter\n"); in tb_handle_dp_bandwidth_request()
2724 tb_port_dbg(in, "handling bandwidth allocation request, retry %d\n", ev->retry); in tb_handle_dp_bandwidth_request()
2739 tb_port_dbg(in, "DPTX disabled bandwidth allocation mode\n"); in tb_handle_dp_bandwidth_request()
2741 tb_port_warn(in, "bandwidth allocation mode not enabled\n"); in tb_handle_dp_bandwidth_request()
2754 * can offer an better bandwidth estimatation. in tb_handle_dp_bandwidth_request()
2756 tb_port_dbg(in, "DPTX enabled bandwidth allocation mode, updating estimated bandwidth\n"); in tb_handle_dp_bandwidth_request()
2759 tb_port_warn(in, "failed to read requested bandwidth\n"); in tb_handle_dp_bandwidth_request()
2765 tb_port_dbg(in, "requested bandwidth %d Mb/s\n", requested_bw); in tb_handle_dp_bandwidth_request()
2779 "not enough bandwidth available\n"); in tb_handle_dp_bandwidth_request()
2783 * We got bandwidth allocation request but the in tb_handle_dp_bandwidth_request()
2791 "retrying bandwidth allocation request\n"); in tb_handle_dp_bandwidth_request()
2802 "failed to change bandwidth allocation\n"); in tb_handle_dp_bandwidth_request()
2806 "bandwidth allocation changed to %d/%d Mb/s\n", in tb_handle_dp_bandwidth_request()
2924 /* Cancel all the release bandwidth workers */ in tb_deinit()