Lines Matching refs:virt_dev
1376 struct xhci_virt_device *virt_dev;
1395 virt_dev = xhci->devs[udev->slot_id];
1396 if (virt_dev->udev != udev) {
1398 "virt_dev does not match\n", func);
1863 struct xhci_virt_device *virt_dev;
1887 virt_dev = xhci->devs[udev->slot_id];
1888 in_ctx = virt_dev->in_ctx;
1900 if (virt_dev->eps[ep_index].ring &&
1922 if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) {
1942 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
1954 static void xhci_zero_in_ctx(struct xhci_hcd *xhci, struct xhci_virt_device *virt_dev)
1961 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx);
1975 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
1980 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, i);
2228 struct xhci_virt_device *virt_dev,
2235 bw_table = &xhci->rh_bw[virt_dev->real_port - 1].bw_table;
2236 tt_info = virt_dev->tt_info;
2258 struct xhci_virt_device *virt_dev)
2263 if (virt_dev->bw_table->ss_bw_in > (SS_BW_LIMIT_IN - bw_reserved))
2267 if (virt_dev->bw_table->ss_bw_out > (SS_BW_LIMIT_OUT - bw_reserved))
2315 struct xhci_virt_device *virt_dev,
2329 if (virt_dev->udev->speed >= USB_SPEED_SUPER)
2330 return xhci_check_ss_bw(xhci, virt_dev);
2332 if (virt_dev->udev->speed == USB_SPEED_HIGH) {
2341 bw_table = virt_dev->bw_table;
2345 block_size = xhci_get_block_size(virt_dev->udev);
2350 if (virt_dev->tt_info) {
2353 virt_dev->real_port);
2354 if (xhci_check_tt_bw_table(xhci, virt_dev, old_active_eps)) {
2361 virt_dev->tt_info->slot_id,
2362 virt_dev->tt_info->ttport);
2366 virt_dev->real_port);
2462 if (!virt_dev->tt_info && virt_dev->udev->speed == USB_SPEED_HIGH) {
2463 unsigned int port_index = virt_dev->real_port - 1;
2650 struct xhci_virt_device *virt_dev,
2654 if (!virt_dev->tt_info)
2657 rh_bw_info = &xhci->rh_bw[virt_dev->real_port - 1];
2659 virt_dev->tt_info->active_eps != 0) {
2663 virt_dev->tt_info->active_eps == 0) {
2670 struct xhci_virt_device *virt_dev,
2678 if (virt_dev->tt_info)
2679 old_active_eps = virt_dev->tt_info->active_eps;
2693 memcpy(&ep_bw_info[i], &virt_dev->eps[i].bw_info,
2700 &virt_dev->eps[i].bw_info,
2701 virt_dev->bw_table,
2702 virt_dev->udev,
2703 &virt_dev->eps[i],
2704 virt_dev->tt_info);
2707 xhci_update_bw_info(xhci, virt_dev->in_ctx, ctrl_ctx, virt_dev);
2712 &virt_dev->eps[i].bw_info,
2713 virt_dev->bw_table,
2714 virt_dev->udev,
2715 &virt_dev->eps[i],
2716 virt_dev->tt_info);
2719 if (!xhci_check_bw_table(xhci, virt_dev, old_active_eps)) {
2723 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps);
2737 &virt_dev->eps[i].bw_info,
2738 virt_dev->bw_table,
2739 virt_dev->udev,
2740 &virt_dev->eps[i],
2741 virt_dev->tt_info);
2744 memcpy(&virt_dev->eps[i].bw_info, &ep_bw_info[i],
2749 &virt_dev->eps[i].bw_info,
2750 virt_dev->bw_table,
2751 virt_dev->udev,
2752 &virt_dev->eps[i],
2753 virt_dev->tt_info);
2770 struct xhci_virt_device *virt_dev;
2783 virt_dev = xhci->devs[udev->slot_id];
2802 xhci_reserve_bandwidth(xhci, virt_dev, command->in_ctx)) {
2887 struct xhci_virt_device *virt_dev;
2901 virt_dev = xhci->devs[udev->slot_id];
2907 command->in_ctx = virt_dev->in_ctx;
2928 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
2932 if ((virt_dev->eps[i-1].ring && !(ctrl_ctx->drop_flags & le32))
2950 xhci_free_endpoint_ring(xhci, virt_dev, i);
2951 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i);
2954 xhci_zero_in_ctx(xhci, virt_dev);
2960 if (!virt_dev->eps[i].new_ring)
2965 if (virt_dev->eps[i].ring) {
2966 xhci_free_endpoint_ring(xhci, virt_dev, i);
2968 xhci_check_bw_drop_ep_streams(xhci, virt_dev, i);
2969 virt_dev->eps[i].ring = virt_dev->eps[i].new_ring;
2970 virt_dev->eps[i].new_ring = NULL;
2971 xhci_debugfs_create_endpoint(xhci, virt_dev, i);
2984 struct xhci_virt_device *virt_dev;
2993 virt_dev = xhci->devs[udev->slot_id];
2996 if (virt_dev->eps[i].new_ring) {
2997 xhci_debugfs_remove_endpoint(xhci, virt_dev, i);
2998 xhci_ring_free(xhci, virt_dev->eps[i].new_ring);
2999 virt_dev->eps[i].new_ring = NULL;
3002 xhci_zero_in_ctx(xhci, virt_dev);
3614 struct xhci_virt_device *virt_dev, bool drop_control_ep)
3621 if (virt_dev->eps[i].ring) {
3648 * If the virt_dev to be reset does not exist or does not match the udev,
3660 struct xhci_virt_device *virt_dev;
3670 virt_dev = xhci->devs[slot_id];
3671 if (!virt_dev) {
3681 if (virt_dev->tt_info)
3682 old_active_eps = virt_dev->tt_info->active_eps;
3684 if (virt_dev->udev != udev) {
3685 /* If the virt_dev and the udev does not match, this virt_dev
3700 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx);
3750 xhci_get_slot_state(xhci, virt_dev->out_ctx));
3771 xhci_free_device_endpoint_resources(xhci, virt_dev, false);
3777 struct xhci_virt_ep *ep = &virt_dev->eps[i];
3788 xhci_debugfs_remove_endpoint(xhci, virt_dev, i);
3789 xhci_free_endpoint_ring(xhci, virt_dev, i);
3791 if (!list_empty(&virt_dev->eps[i].bw_endpoint_list))
3793 &virt_dev->eps[i].bw_info,
3794 virt_dev->bw_table,
3796 &virt_dev->eps[i],
3797 virt_dev->tt_info);
3798 xhci_clear_endpoint_bw_info(&virt_dev->eps[i].bw_info);
3801 xhci_update_tt_active_eps(xhci, virt_dev, old_active_eps);
3802 virt_dev->flags = 0;
3818 struct xhci_virt_device *virt_dev;
3838 virt_dev = xhci->devs[udev->slot_id];
3839 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx);
3844 virt_dev->eps[i].ep_state &= ~EP_STOP_CMD_PENDING;
3845 virt_dev->udev = NULL;
4019 struct xhci_virt_device *virt_dev;
4041 virt_dev = xhci->devs[udev->slot_id];
4043 if (WARN_ON(!virt_dev)) {
4046 * a zero-dereference was observed once due to virt_dev = 0.
4054 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx);
4071 command->in_ctx = virt_dev->in_ctx;
4073 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->in_ctx);
4074 ctrl_ctx = xhci_get_input_control_ctx(virt_dev->in_ctx);
4094 trace_xhci_address_ctx(xhci, virt_dev->in_ctx,
4099 trace_xhci_setup_device(virt_dev);
4100 ret = xhci_queue_address_device(xhci, command, virt_dev->in_ctx->dma,
4154 trace_xhci_address_ctx(xhci, virt_dev->out_ctx, 1);
4171 (unsigned long long)virt_dev->out_ctx->dma);
4172 trace_xhci_address_ctx(xhci, virt_dev->in_ctx,
4178 trace_xhci_address_ctx(xhci, virt_dev->out_ctx,
4183 slot_ctx = xhci_get_slot_ctx(xhci, virt_dev->out_ctx);
4229 struct xhci_virt_device *virt_dev;
4242 virt_dev = xhci->devs[udev->slot_id];
4245 * virt_dev might not exists yet if xHC resumed from hibernate (S4) and
4250 if (!virt_dev || max_exit_latency == virt_dev->current_mel) {
4266 xhci_slot_copy(xhci, command->in_ctx, virt_dev->out_ctx);
4284 virt_dev->current_mel = max_exit_latency;