Lines Matching refs:virt_dev
1506 struct xhci_virt_device *virt_dev; in xhci_check_args() local
1525 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_args()
1526 if (virt_dev->udev != udev) { in xhci_check_args()
1995 struct xhci_virt_device *virt_dev; in xhci_add_endpoint() local
2019 virt_dev = xhci->devs[udev->slot_id]; in xhci_add_endpoint()
2020 in_ctx = virt_dev->in_ctx; in xhci_add_endpoint()
2032 if (virt_dev->eps[ep_index].ring && in xhci_add_endpoint()
2054 if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) { in xhci_add_endpoint()
2074 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); in xhci_add_endpoint()
2086 static void xhci_zero_in_ctx(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev) in xhci_zero_in_ctx() argument
2093 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx); in xhci_zero_in_ctx()
2107 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_zero_in_ctx()
2112 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, i); in xhci_zero_in_ctx()
2360 struct xhci_virt_device *virt_dev, in xhci_check_tt_bw_table() argument
2367 bw_table = &xhci->rh_bw[virt_dev->rhub_port->hw_portnum].bw_table; in xhci_check_tt_bw_table()
2368 tt_info = virt_dev->tt_info; in xhci_check_tt_bw_table()
2390 struct xhci_virt_device *virt_dev) in xhci_check_ss_bw() argument
2395 if (virt_dev->bw_table->ss_bw_in > (SS_BW_LIMIT_IN - bw_reserved)) in xhci_check_ss_bw()
2399 if (virt_dev->bw_table->ss_bw_out > (SS_BW_LIMIT_OUT - bw_reserved)) in xhci_check_ss_bw()
2447 struct xhci_virt_device *virt_dev, in xhci_check_bw_table() argument
2461 if (virt_dev->udev->speed >= USB_SPEED_SUPER) in xhci_check_bw_table()
2462 return xhci_check_ss_bw(xhci, virt_dev); in xhci_check_bw_table()
2464 if (virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2473 bw_table = virt_dev->bw_table; in xhci_check_bw_table()
2477 block_size = xhci_get_block_size(virt_dev->udev); in xhci_check_bw_table()
2482 if (virt_dev->tt_info) { in xhci_check_bw_table()
2485 virt_dev->rhub_port->hw_portnum + 1); in xhci_check_bw_table()
2486 if (xhci_check_tt_bw_table(xhci, virt_dev, old_active_eps)) { in xhci_check_bw_table()
2493 virt_dev->tt_info->slot_id, in xhci_check_bw_table()
2494 virt_dev->tt_info->ttport); in xhci_check_bw_table()
2498 virt_dev->rhub_port->hw_portnum + 1); in xhci_check_bw_table()
2594 if (!virt_dev->tt_info && virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2600 xhci->rh_bw[virt_dev->rhub_port->hw_portnum].num_active_tts; in xhci_check_bw_table()
2780 struct xhci_virt_device *virt_dev, in xhci_update_tt_active_eps() argument
2784 if (!virt_dev->tt_info) in xhci_update_tt_active_eps()
2787 rh_bw_info = &xhci->rh_bw[virt_dev->rhub_port->hw_portnum]; in xhci_update_tt_active_eps()
2789 virt_dev->tt_info->active_eps != 0) { in xhci_update_tt_active_eps()
2793 virt_dev->tt_info->active_eps == 0) { in xhci_update_tt_active_eps()
2800 struct xhci_virt_device *virt_dev, in xhci_reserve_bandwidth() argument
2808 if (virt_dev->tt_info) in xhci_reserve_bandwidth()
2809 old_active_eps = virt_dev->tt_info->active_eps; in xhci_reserve_bandwidth()
2823 memcpy(&ep_bw_info[i], &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2830 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2831 virt_dev->bw_table, in xhci_reserve_bandwidth()
2832 virt_dev->udev, in xhci_reserve_bandwidth()
2833 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2834 virt_dev->tt_info); in xhci_reserve_bandwidth()
2837 xhci_update_bw_info(xhci, virt_dev->in_ctx, ctrl_ctx, virt_dev); in xhci_reserve_bandwidth()
2842 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2843 virt_dev->bw_table, in xhci_reserve_bandwidth()
2844 virt_dev->udev, in xhci_reserve_bandwidth()
2845 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2846 virt_dev->tt_info); in xhci_reserve_bandwidth()
2849 if (!xhci_check_bw_table(xhci, virt_dev, old_active_eps)) { in xhci_reserve_bandwidth()
2853 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); in xhci_reserve_bandwidth()
2867 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2868 virt_dev->bw_table, in xhci_reserve_bandwidth()
2869 virt_dev->udev, in xhci_reserve_bandwidth()
2870 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2871 virt_dev->tt_info); in xhci_reserve_bandwidth()
2874 memcpy(&virt_dev->eps[i].bw_info, &ep_bw_info[i], in xhci_reserve_bandwidth()
2879 &virt_dev->eps[i].bw_info, in xhci_reserve_bandwidth()
2880 virt_dev->bw_table, in xhci_reserve_bandwidth()
2881 virt_dev->udev, in xhci_reserve_bandwidth()
2882 &virt_dev->eps[i], in xhci_reserve_bandwidth()
2883 virt_dev->tt_info); in xhci_reserve_bandwidth()
2968 struct xhci_virt_device *virt_dev; in xhci_configure_endpoint() local
2981 virt_dev = xhci->devs[udev->slot_id]; in xhci_configure_endpoint()
3000 xhci_reserve_bandwidth(xhci, virt_dev, command->in_ctx)) { in xhci_configure_endpoint()
3085 struct xhci_virt_device *virt_dev; in xhci_check_bandwidth() local
3099 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_bandwidth()
3105 command->in_ctx = virt_dev->in_ctx; in xhci_check_bandwidth()
3126 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_check_bandwidth()
3130 if ((virt_dev->eps[i-1].ring && !(ctrl_ctx->drop_flags & le32)) in xhci_check_bandwidth()
3148 xhci_free_endpoint_ring(xhci, virt_dev, i); in xhci_check_bandwidth()
3149 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i); in xhci_check_bandwidth()
3152 xhci_zero_in_ctx(xhci, virt_dev); in xhci_check_bandwidth()
3158 if (!virt_dev->eps[i].new_ring) in xhci_check_bandwidth()
3163 if (virt_dev->eps[i].ring) { in xhci_check_bandwidth()
3164 xhci_free_endpoint_ring(xhci, virt_dev, i); in xhci_check_bandwidth()
3166 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i); in xhci_check_bandwidth()
3167 virt_dev->eps[i].ring = virt_dev->eps[i].new_ring; in xhci_check_bandwidth()
3168 virt_dev->eps[i].new_ring = NULL; in xhci_check_bandwidth()
3169 xhci_debugfs_create_endpoint(xhci, virt_dev, i); in xhci_check_bandwidth()
3182 struct xhci_virt_device *virt_dev; in xhci_reset_bandwidth() local
3191 virt_dev = xhci->devs[udev->slot_id]; in xhci_reset_bandwidth()
3194 if (virt_dev->eps[i].new_ring) { in xhci_reset_bandwidth()
3195 xhci_debugfs_remove_endpoint(xhci, virt_dev, i); in xhci_reset_bandwidth()
3196 xhci_ring_free(xhci, virt_dev->eps[i].new_ring); in xhci_reset_bandwidth()
3197 virt_dev->eps[i].new_ring = NULL; in xhci_reset_bandwidth()
3200 xhci_zero_in_ctx(xhci, virt_dev); in xhci_reset_bandwidth()
3869 struct xhci_virt_device *virt_dev, bool drop_control_ep) in xhci_free_device_endpoint_resources() argument
3876 if (virt_dev->eps[i].ring) { in xhci_free_device_endpoint_resources()
3917 struct xhci_virt_device *virt_dev; in xhci_discover_or_reset_device() local
3927 virt_dev = xhci->devs[slot_id]; in xhci_discover_or_reset_device()
3928 if (!virt_dev) { in xhci_discover_or_reset_device()
3938 if (virt_dev->tt_info) in xhci_discover_or_reset_device()
3939 old_active_eps = virt_dev->tt_info->active_eps; in xhci_discover_or_reset_device()
3941 if (virt_dev->udev != udev) { in xhci_discover_or_reset_device()
3957 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_discover_or_reset_device()
4023 xhci_get_slot_state(xhci, virt_dev->out_ctx)); in xhci_discover_or_reset_device()
4026 virt_dev->flags = 0; in xhci_discover_or_reset_device()
4045 xhci_free_device_endpoint_resources(xhci, virt_dev, false); in xhci_discover_or_reset_device()
4051 struct xhci_virt_ep *ep = &virt_dev->eps[i]; in xhci_discover_or_reset_device()
4064 xhci_debugfs_remove_endpoint(xhci, virt_dev, i); in xhci_discover_or_reset_device()
4065 xhci_free_endpoint_ring(xhci, virt_dev, i); in xhci_discover_or_reset_device()
4067 if (!list_empty(&virt_dev->eps[i].bw_endpoint_list)) in xhci_discover_or_reset_device()
4069 &virt_dev->eps[i].bw_info, in xhci_discover_or_reset_device()
4070 virt_dev->bw_table, in xhci_discover_or_reset_device()
4072 &virt_dev->eps[i], in xhci_discover_or_reset_device()
4073 virt_dev->tt_info); in xhci_discover_or_reset_device()
4074 xhci_clear_endpoint_bw_info(&virt_dev->eps[i].bw_info); in xhci_discover_or_reset_device()
4077 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps); in xhci_discover_or_reset_device()
4078 virt_dev->flags = 0; in xhci_discover_or_reset_device()
4094 struct xhci_virt_device *virt_dev; in xhci_free_dev() local
4114 virt_dev = xhci->devs[udev->slot_id]; in xhci_free_dev()
4115 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_free_dev()
4120 virt_dev->eps[i].ep_state &= ~EP_STOP_CMD_PENDING; in xhci_free_dev()
4121 virt_dev->udev = NULL; in xhci_free_dev()
4125 xhci_free_virt_device(xhci, virt_dev, udev->slot_id); in xhci_free_dev()
4309 struct xhci_virt_device *virt_dev; in xhci_setup_device() local
4331 virt_dev = xhci->devs[udev->slot_id]; in xhci_setup_device()
4333 if (WARN_ON(!virt_dev)) { in xhci_setup_device()
4344 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
4361 command->in_ctx = virt_dev->in_ctx; in xhci_setup_device()
4364 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx); in xhci_setup_device()
4365 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx); in xhci_setup_device()
4385 trace_xhci_address_ctx(xhci, virt_dev->in_ctx); in xhci_setup_device()
4389 trace_xhci_setup_device(virt_dev); in xhci_setup_device()
4390 ret = xhci_queue_address_device(xhci, command, virt_dev->in_ctx->dma, in xhci_setup_device()
4445 trace_xhci_address_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
4462 (unsigned long long)virt_dev->out_ctx->dma); in xhci_setup_device()
4463 trace_xhci_address_ctx(xhci, virt_dev->in_ctx); in xhci_setup_device()
4468 trace_xhci_address_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
4472 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx); in xhci_setup_device()
4520 struct xhci_virt_device *virt_dev; in xhci_change_max_exit_latency() local
4533 virt_dev = xhci->devs[udev->slot_id]; in xhci_change_max_exit_latency()
4541 if (!virt_dev || max_exit_latency == virt_dev->current_mel) { in xhci_change_max_exit_latency()
4557 xhci_slot_copy(xhci, command->in_ctx, virt_dev->out_ctx); in xhci_change_max_exit_latency()
4575 virt_dev->current_mel = max_exit_latency; in xhci_change_max_exit_latency()