Lines Matching refs:virt_dev
1261 struct xhci_virt_device *virt_dev; in xhci_check_args() local
1280 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_args()
1281 if (virt_dev->udev != udev) { in xhci_check_args()
1781 struct xhci_virt_device *virt_dev; in xhci_add_endpoint() local
1805 virt_dev = xhci->devs[udev->slot_id]; in xhci_add_endpoint()
1806 in_ctx = virt_dev->in_ctx; in xhci_add_endpoint()
1818 if (virt_dev->eps[ep_index].ring && in xhci_add_endpoint()
1840 if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) { in xhci_add_endpoint()
1868 static void xhci_zero_in_ctx(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev) in xhci_zero_in_ctx() argument
1875 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx); in xhci_zero_in_ctx()
1889 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_zero_in_ctx()
1894 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, i); in xhci_zero_in_ctx()
1956 struct xhci_virt_device *virt_dev = xhci->devs[udev->slot_id]; in xhci_evaluate_context_result() local
1977 xhci_dbg_ctx(xhci, virt_dev->out_ctx, 1); in xhci_evaluate_context_result()
2145 struct xhci_virt_device *virt_dev, in xhci_check_tt_bw_table() argument
2152 bw_table = &xhci->rh_bw[virt_dev->real_port - 1].bw_table; in xhci_check_tt_bw_table()
2153 tt_info = virt_dev->tt_info; in xhci_check_tt_bw_table()
2175 struct xhci_virt_device *virt_dev) in xhci_check_ss_bw() argument
2180 if (virt_dev->bw_table->ss_bw_in > (SS_BW_LIMIT_IN - bw_reserved)) in xhci_check_ss_bw()
2184 if (virt_dev->bw_table->ss_bw_out > (SS_BW_LIMIT_OUT - bw_reserved)) in xhci_check_ss_bw()
2232 struct xhci_virt_device *virt_dev, in xhci_check_bw_table() argument
2246 if (virt_dev->udev->speed >= USB_SPEED_SUPER) in xhci_check_bw_table()
2247 return xhci_check_ss_bw(xhci, virt_dev); in xhci_check_bw_table()
2249 if (virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2258 bw_table = virt_dev->bw_table; in xhci_check_bw_table()
2262 block_size = xhci_get_block_size(virt_dev->udev); in xhci_check_bw_table()
2267 if (virt_dev->tt_info) { in xhci_check_bw_table()
2270 virt_dev->real_port); in xhci_check_bw_table()
2271 if (xhci_check_tt_bw_table(xhci, virt_dev, old_active_eps)) { in xhci_check_bw_table()
2278 virt_dev->tt_info->slot_id, in xhci_check_bw_table()
2279 virt_dev->tt_info->ttport); in xhci_check_bw_table()
2283 virt_dev->real_port); in xhci_check_bw_table()
2379 if (!virt_dev->tt_info && virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2380 unsigned int port_index = virt_dev->real_port - 1; in xhci_check_bw_table()
2573 struct xhci_virt_device *virt_dev, in xhci_update_tt_active_eps() argument
2577 if (!virt_dev->tt_info) in xhci_update_tt_active_eps()
2580 rh_bw_info = &xhci->rh_bw[virt_dev->real_port - 1]; in xhci_update_tt_active_eps()
2582 virt_dev->tt_info->active_eps != 0) { in xhci_update_tt_active_eps()
2586 virt_dev->tt_info->active_eps == 0) { in xhci_update_tt_active_eps()
2593 struct xhci_virt_device *virt_dev, in xhci_reserve_bandwidth() argument
2601 if (virt_dev->tt_info) in xhci_reserve_bandwidth()
2602 old_active_eps = virt_dev->tt_info->active_eps; in xhci_reserve_bandwidth()
2616 memcpy(&ep_bw_info[i], &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2623 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2624 virt_dev->bw_table, in xhci_reserve_bandwidth()
2625 virt_dev->udev, in xhci_reserve_bandwidth()
2626 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2627 virt_dev->tt_info); in xhci_reserve_bandwidth()
2630 xhci_update_bw_info(xhci, virt_dev->in_ctx, ctrl_ctx, virt_dev); in xhci_reserve_bandwidth()
2635 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2636 virt_dev->bw_table, in xhci_reserve_bandwidth()
2637 virt_dev->udev, in xhci_reserve_bandwidth()
2638 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2639 virt_dev->tt_info); in xhci_reserve_bandwidth()
2642 if (!xhci_check_bw_table(xhci, virt_dev, old_active_eps)) { in xhci_reserve_bandwidth()
2646 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); in xhci_reserve_bandwidth()
2660 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2661 virt_dev->bw_table, in xhci_reserve_bandwidth()
2662 virt_dev->udev, in xhci_reserve_bandwidth()
2663 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2664 virt_dev->tt_info); in xhci_reserve_bandwidth()
2667 memcpy(&virt_dev->eps[i].bw_info, &ep_bw_info[i], in xhci_reserve_bandwidth()
2672 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2673 virt_dev->bw_table, in xhci_reserve_bandwidth()
2674 virt_dev->udev, in xhci_reserve_bandwidth()
2675 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2676 virt_dev->tt_info); in xhci_reserve_bandwidth()
2693 struct xhci_virt_device *virt_dev; in xhci_configure_endpoint() local
2699 virt_dev = xhci->devs[udev->slot_id]; in xhci_configure_endpoint()
2718 xhci_reserve_bandwidth(xhci, virt_dev, command->in_ctx)) { in xhci_configure_endpoint()
2798 struct xhci_virt_device *virt_dev; in xhci_check_bandwidth() local
2812 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_bandwidth()
2818 command->in_ctx = virt_dev->in_ctx; in xhci_check_bandwidth()
2839 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_check_bandwidth()
2843 if ((virt_dev->eps[i-1].ring && !(ctrl_ctx->drop_flags & le32)) in xhci_check_bandwidth()
2851 xhci_dbg_ctx(xhci, virt_dev->in_ctx, in xhci_check_bandwidth()
2861 xhci_dbg_ctx(xhci, virt_dev->out_ctx, in xhci_check_bandwidth()
2868 xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); in xhci_check_bandwidth()
2869 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i); in xhci_check_bandwidth()
2872 xhci_zero_in_ctx(xhci, virt_dev); in xhci_check_bandwidth()
2878 if (!virt_dev->eps[i].new_ring) in xhci_check_bandwidth()
2883 if (virt_dev->eps[i].ring) { in xhci_check_bandwidth()
2884 xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); in xhci_check_bandwidth()
2886 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i); in xhci_check_bandwidth()
2887 virt_dev->eps[i].ring = virt_dev->eps[i].new_ring; in xhci_check_bandwidth()
2888 virt_dev->eps[i].new_ring = NULL; in xhci_check_bandwidth()
2900 struct xhci_virt_device *virt_dev; in xhci_reset_bandwidth() local
2909 virt_dev = xhci->devs[udev->slot_id]; in xhci_reset_bandwidth()
2912 if (virt_dev->eps[i].new_ring) { in xhci_reset_bandwidth()
2913 xhci_ring_free(xhci, virt_dev->eps[i].new_ring); in xhci_reset_bandwidth()
2914 virt_dev->eps[i].new_ring = NULL; in xhci_reset_bandwidth()
2917 xhci_zero_in_ctx(xhci, virt_dev); in xhci_reset_bandwidth()
3453 struct xhci_virt_device *virt_dev, bool drop_control_ep) in xhci_free_device_endpoint_resources() argument
3460 if (virt_dev->eps[i].ring) { in xhci_free_device_endpoint_resources()
3498 struct xhci_virt_device *virt_dev; in xhci_discover_or_reset_device() local
3509 virt_dev = xhci->devs[slot_id]; in xhci_discover_or_reset_device()
3510 if (!virt_dev) { in xhci_discover_or_reset_device()
3520 if (virt_dev->tt_info) in xhci_discover_or_reset_device()
3521 old_active_eps = virt_dev->tt_info->active_eps; in xhci_discover_or_reset_device()
3523 if (virt_dev->udev != udev) { in xhci_discover_or_reset_device()
3539 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_discover_or_reset_device()
3587 xhci_get_slot_state(xhci, virt_dev->out_ctx)); in xhci_discover_or_reset_device()
3608 xhci_free_device_endpoint_resources(xhci, virt_dev, false); in xhci_discover_or_reset_device()
3615 struct xhci_virt_ep *ep = &virt_dev->eps[i]; in xhci_discover_or_reset_device()
3626 xhci_free_or_cache_endpoint_ring(xhci, virt_dev, i); in xhci_discover_or_reset_device()
3629 if (!list_empty(&virt_dev->eps[i].bw_endpoint_list)) in xhci_discover_or_reset_device()
3631 &virt_dev->eps[i].bw_info, in xhci_discover_or_reset_device()
3632 virt_dev->bw_table, in xhci_discover_or_reset_device()
3634 &virt_dev->eps[i], in xhci_discover_or_reset_device()
3635 virt_dev->tt_info); in xhci_discover_or_reset_device()
3636 xhci_clear_endpoint_bw_info(&virt_dev->eps[i].bw_info); in xhci_discover_or_reset_device()
3639 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); in xhci_discover_or_reset_device()
3642 xhci_dbg_ctx(xhci, virt_dev->out_ctx, last_freed_endpoint); in xhci_discover_or_reset_device()
3658 struct xhci_virt_device *virt_dev; in xhci_free_dev() local
3687 virt_dev = xhci->devs[udev->slot_id]; in xhci_free_dev()
3691 virt_dev->eps[i].ep_state &= ~EP_HALT_PENDING; in xhci_free_dev()
3692 del_timer_sync(&virt_dev->eps[i].stop_cmd_timer); in xhci_free_dev()
3697 virt_dev->udev = NULL; in xhci_free_dev()
3848 struct xhci_virt_device *virt_dev; in xhci_setup_device() local
3870 virt_dev = xhci->devs[udev->slot_id]; in xhci_setup_device()
3872 if (WARN_ON(!virt_dev)) { in xhci_setup_device()
3885 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
3899 command->in_ctx = virt_dev->in_ctx; in xhci_setup_device()
3902 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_setup_device()
3903 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx); in xhci_setup_device()
3924 xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); in xhci_setup_device()
3925 trace_xhci_address_ctx(xhci, virt_dev->in_ctx, in xhci_setup_device()
3929 ret = xhci_queue_address_device(xhci, command, virt_dev->in_ctx->dma, in xhci_setup_device()
3977 xhci_dbg_ctx(xhci, virt_dev->out_ctx, 2); in xhci_setup_device()
3978 trace_xhci_address_ctx(xhci, virt_dev->out_ctx, 1); in xhci_setup_device()
3995 (unsigned long long)virt_dev->out_ctx->dma); in xhci_setup_device()
3997 xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); in xhci_setup_device()
3998 trace_xhci_address_ctx(xhci, virt_dev->in_ctx, in xhci_setup_device()
4001 xhci_dbg_ctx(xhci, virt_dev->out_ctx, 2); in xhci_setup_device()
4006 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
4007 trace_xhci_address_ctx(xhci, virt_dev->out_ctx, in xhci_setup_device()
4061 struct xhci_virt_device *virt_dev; in xhci_change_max_exit_latency() local
4070 virt_dev = xhci->devs[udev->slot_id]; in xhci_change_max_exit_latency()
4078 if (!virt_dev || max_exit_latency == virt_dev->current_mel) { in xhci_change_max_exit_latency()
4093 xhci_slot_copy(xhci, command->in_ctx, virt_dev->out_ctx); in xhci_change_max_exit_latency()
4111 xhci_dbg_ctx(xhci, virt_dev->out_ctx, 0); in xhci_change_max_exit_latency()
4115 virt_dev->current_mel = max_exit_latency; in xhci_change_max_exit_latency()