Lines Matching refs:udev
1198 static int xhci_check_args(struct usb_hcd *hcd, struct usb_device *udev, in xhci_check_args() argument
1204 if (!hcd || (check_ep && !ep) || !udev) { in xhci_check_args()
1208 if (!udev->parent) { in xhci_check_args()
1215 if (!udev->slot_id || !xhci->devs[udev->slot_id]) { in xhci_check_args()
1221 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_args()
1222 if (virt_dev->udev != udev) { in xhci_check_args()
1236 struct usb_device *udev, struct xhci_command *command,
1644 int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev, in xhci_drop_endpoint() argument
1656 ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); in xhci_drop_endpoint()
1663 xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); in xhci_drop_endpoint()
1671 in_ctx = xhci->devs[udev->slot_id]->in_ctx; in xhci_drop_endpoint()
1672 out_ctx = xhci->devs[udev->slot_id]->out_ctx; in xhci_drop_endpoint()
1690 if (xhci->devs[udev->slot_id]->eps[ep_index].ring != NULL) in xhci_drop_endpoint()
1702 xhci_endpoint_zero(xhci, xhci->devs[udev->slot_id], ep); in xhci_drop_endpoint()
1706 udev->slot_id, in xhci_drop_endpoint()
1725 int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev, in xhci_add_endpoint() argument
1737 ret = xhci_check_args(hcd, udev, ep, 1, true, __func__); in xhci_add_endpoint()
1758 virt_dev = xhci->devs[udev->slot_id]; in xhci_add_endpoint()
1793 if (xhci_endpoint_init(xhci, virt_dev, udev, ep, GFP_NOIO) < 0) { in xhci_add_endpoint()
1794 dev_dbg(&udev->dev, "%s - could not initialize ep %#x\n", in xhci_add_endpoint()
1811 ep->hcpriv = udev; in xhci_add_endpoint()
1815 udev->slot_id, in xhci_add_endpoint()
1856 struct usb_device *udev, u32 *cmd_status) in xhci_configure_endpoint_result() argument
1867 dev_warn(&udev->dev, in xhci_configure_endpoint_result()
1874 dev_warn(&udev->dev, in xhci_configure_endpoint_result()
1881 dev_warn(&udev->dev, "ERROR: Endpoint drop flag = 0, " in xhci_configure_endpoint_result()
1887 dev_warn(&udev->dev, in xhci_configure_endpoint_result()
1906 struct usb_device *udev, u32 *cmd_status) in xhci_evaluate_context_result() argument
1909 struct xhci_virt_device *virt_dev = xhci->devs[udev->slot_id]; in xhci_evaluate_context_result()
1918 dev_warn(&udev->dev, in xhci_evaluate_context_result()
1923 dev_warn(&udev->dev, in xhci_evaluate_context_result()
1928 dev_warn(&udev->dev, in xhci_evaluate_context_result()
1934 dev_warn(&udev->dev, in xhci_evaluate_context_result()
1940 dev_warn(&udev->dev, "WARN: Max Exit Latency too large\n"); in xhci_evaluate_context_result()
2064 static unsigned int xhci_get_block_size(struct usb_device *udev) in xhci_get_block_size() argument
2066 switch (udev->speed) { in xhci_get_block_size()
2198 if (virt_dev->udev->speed == USB_SPEED_SUPER) in xhci_check_bw_table()
2201 if (virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2214 block_size = xhci_get_block_size(virt_dev->udev); in xhci_check_bw_table()
2331 if (!virt_dev->tt_info && virt_dev->udev->speed == USB_SPEED_HIGH) { in xhci_check_bw_table()
2389 struct usb_device *udev, in xhci_drop_ep_from_interval_table() argument
2399 if (udev->speed == USB_SPEED_SUPER) { in xhci_drop_ep_from_interval_table()
2401 xhci->devs[udev->slot_id]->bw_table->ss_bw_in -= in xhci_drop_ep_from_interval_table()
2404 xhci->devs[udev->slot_id]->bw_table->ss_bw_out -= in xhci_drop_ep_from_interval_table()
2417 if (udev->speed == USB_SPEED_HIGH) in xhci_drop_ep_from_interval_table()
2426 switch (udev->speed) { in xhci_drop_ep_from_interval_table()
2452 struct usb_device *udev, in xhci_add_ep_to_interval_table() argument
2463 if (udev->speed == USB_SPEED_SUPER) { in xhci_add_ep_to_interval_table()
2465 xhci->devs[udev->slot_id]->bw_table->ss_bw_in += in xhci_add_ep_to_interval_table()
2468 xhci->devs[udev->slot_id]->bw_table->ss_bw_out += in xhci_add_ep_to_interval_table()
2476 if (udev->speed == USB_SPEED_HIGH) in xhci_add_ep_to_interval_table()
2485 switch (udev->speed) { in xhci_add_ep_to_interval_table()
2575 virt_dev->udev, in xhci_reserve_bandwidth()
2587 virt_dev->udev, in xhci_reserve_bandwidth()
2612 virt_dev->udev, in xhci_reserve_bandwidth()
2624 virt_dev->udev, in xhci_reserve_bandwidth()
2636 struct usb_device *udev, in xhci_configure_endpoint() argument
2649 virt_dev = xhci->devs[udev->slot_id]; in xhci_configure_endpoint()
2679 udev->slot_id, must_succeed); in xhci_configure_endpoint()
2683 udev->slot_id, must_succeed); in xhci_configure_endpoint()
2699 ret = xhci_configure_endpoint_result(xhci, udev, in xhci_configure_endpoint()
2702 ret = xhci_evaluate_context_result(xhci, udev, in xhci_configure_endpoint()
2743 int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) in xhci_check_bandwidth() argument
2753 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); in xhci_check_bandwidth()
2761 xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); in xhci_check_bandwidth()
2762 virt_dev = xhci->devs[udev->slot_id]; in xhci_check_bandwidth()
2804 ret = xhci_configure_endpoint(xhci, udev, command, in xhci_check_bandwidth()
2847 void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev) in xhci_reset_bandwidth() argument
2853 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); in xhci_reset_bandwidth()
2858 xhci_dbg(xhci, "%s called for udev %p\n", __func__, udev); in xhci_reset_bandwidth()
2859 virt_dev = xhci->devs[udev->slot_id]; in xhci_reset_bandwidth()
2929 struct usb_device *udev = td->urb->dev; in xhci_cleanup_stalled_ring() local
2933 ep = &xhci->devs[udev->slot_id]->eps[ep_index]; in xhci_cleanup_stalled_ring()
2937 xhci_find_new_dequeue_state(xhci, udev->slot_id, in xhci_cleanup_stalled_ring()
2949 xhci_queue_new_dequeue_state(xhci, udev->slot_id, in xhci_cleanup_stalled_ring()
2960 xhci_setup_input_ctx_for_quirk(xhci, udev->slot_id, in xhci_cleanup_stalled_ring()
2995 struct usb_device *udev, struct usb_host_endpoint *ep, in xhci_check_streams_endpoint() argument
3004 ret = xhci_check_args(xhci_to_hcd(xhci), udev, ep, 1, true, __func__); in xhci_check_streams_endpoint()
3061 struct usb_device *udev, in xhci_calculate_streams_and_bitmask() argument
3071 ret = xhci_check_streams_endpoint(xhci, udev, in xhci_calculate_streams_and_bitmask()
3072 eps[i], udev->slot_id); in xhci_calculate_streams_and_bitmask()
3093 struct usb_device *udev, in xhci_calculate_no_streams_bitmask() argument
3102 slot_id = udev->slot_id; in xhci_calculate_no_streams_bitmask()
3149 int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev, in xhci_alloc_streams() argument
3199 ret = xhci_calculate_streams_and_bitmask(xhci, udev, eps, in xhci_alloc_streams()
3213 vdev = xhci->devs[udev->slot_id]; in xhci_alloc_streams()
3263 ret = xhci_configure_endpoint(xhci, udev, config_cmd, in xhci_alloc_streams()
3278 udev->slot_id, ep_index); in xhci_alloc_streams()
3310 int xhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev, in xhci_free_streams() argument
3324 vdev = xhci->devs[udev->slot_id]; in xhci_free_streams()
3329 udev, eps, num_eps); in xhci_free_streams()
3354 xhci->devs[udev->slot_id]->eps[ep_index].ep_state |= in xhci_free_streams()
3370 ret = xhci_configure_endpoint(xhci, udev, command, in xhci_free_streams()
3442 int xhci_discover_or_reset_device(struct usb_hcd *hcd, struct usb_device *udev) in xhci_discover_or_reset_device() argument
3454 ret = xhci_check_args(hcd, udev, NULL, 0, false, __func__); in xhci_discover_or_reset_device()
3458 slot_id = udev->slot_id; in xhci_discover_or_reset_device()
3463 ret = xhci_alloc_dev(hcd, udev); in xhci_discover_or_reset_device()
3473 if (virt_dev->udev != udev) { in xhci_discover_or_reset_device()
3481 ret = xhci_alloc_dev(hcd, udev); in xhci_discover_or_reset_device()
3583 udev, in xhci_discover_or_reset_device()
3605 void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev) in xhci_free_dev() argument
3628 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); in xhci_free_dev()
3637 virt_dev = xhci->devs[udev->slot_id]; in xhci_free_dev()
3650 xhci_free_virt_device(xhci, udev->slot_id); in xhci_free_dev()
3657 udev->slot_id)) { in xhci_free_dev()
3698 int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) in xhci_alloc_dev() argument
3753 if (!xhci_alloc_virt_device(xhci, slot_id, udev, GFP_NOIO)) { in xhci_alloc_dev()
3757 udev->slot_id = slot_id; in xhci_alloc_dev()
3780 udev->slot_id)) in xhci_alloc_dev()
3790 static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev, in xhci_setup_device() argument
3808 if (!udev->slot_id) { in xhci_setup_device()
3810 "Bad Slot ID %d", udev->slot_id); in xhci_setup_device()
3815 virt_dev = xhci->devs[udev->slot_id]; in xhci_setup_device()
3824 udev->slot_id); in xhci_setup_device()
3861 xhci_setup_addressable_virt_dev(xhci, udev); in xhci_setup_device()
3864 xhci_copy_ep0_dequeue_into_input_ctx(xhci, udev); in xhci_setup_device()
3868 xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id); in xhci_setup_device()
3875 udev->slot_id, setup); in xhci_setup_device()
3901 act, udev->slot_id); in xhci_setup_device()
3905 dev_warn(&udev->dev, "Device not responding to setup %s.\n", act); in xhci_setup_device()
3909 dev_warn(&udev->dev, in xhci_setup_device()
3921 xhci_dbg(xhci, "Slot ID %d Output Context:\n", udev->slot_id); in xhci_setup_device()
3934 udev->slot_id, in xhci_setup_device()
3935 &xhci->dcbaa->dev_context_ptrs[udev->slot_id], in xhci_setup_device()
3937 le64_to_cpu(xhci->dcbaa->dev_context_ptrs[udev->slot_id])); in xhci_setup_device()
3941 xhci_dbg(xhci, "Slot ID %d Input Context:\n", udev->slot_id); in xhci_setup_device()
3945 xhci_dbg(xhci, "Slot ID %d Output Context:\n", udev->slot_id); in xhci_setup_device()
3967 int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev) in xhci_address_device() argument
3969 return xhci_setup_device(hcd, udev, SETUP_CONTEXT_ADDRESS); in xhci_address_device()
3972 int xhci_enable_device(struct usb_hcd *hcd, struct usb_device *udev) in xhci_enable_device() argument
3974 return xhci_setup_device(hcd, udev, SETUP_CONTEXT_ONLY); in xhci_enable_device()
4004 struct usb_device *udev, u16 max_exit_latency) in xhci_change_max_exit_latency() argument
4015 virt_dev = xhci->devs[udev->slot_id]; in xhci_change_max_exit_latency()
4049 xhci_dbg(xhci, "Slot %u Input Context:\n", udev->slot_id); in xhci_change_max_exit_latency()
4053 ret = xhci_configure_endpoint(xhci, udev, command, in xhci_change_max_exit_latency()
4055 xhci_dbg(xhci, "Slot %u Output Context:\n", udev->slot_id); in xhci_change_max_exit_latency()
4074 struct usb_device *udev) in xhci_calculate_hird_besl() argument
4081 field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); in xhci_calculate_hird_besl()
4108 static int xhci_calculate_usb2_hw_lpm_params(struct usb_device *udev) in xhci_calculate_usb2_hw_lpm_params() argument
4115 field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); in xhci_calculate_usb2_hw_lpm_params()
4118 l1 = udev->l1_params.timeout / 256; in xhci_calculate_usb2_hw_lpm_params()
4130 struct usb_device *udev, int enable) in xhci_set_usb2_hardware_lpm() argument
4142 !udev->lpm_capable) in xhci_set_usb2_hardware_lpm()
4145 if (!udev->parent || udev->parent->parent || in xhci_set_usb2_hardware_lpm()
4146 udev->descriptor.bDeviceClass == USB_CLASS_HUB) in xhci_set_usb2_hardware_lpm()
4149 if (udev->usb2_hw_lpm_capable != 1) in xhci_set_usb2_hardware_lpm()
4155 port_num = udev->portnum - 1; in xhci_set_usb2_hardware_lpm()
4159 field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); in xhci_set_usb2_hardware_lpm()
4166 if (udev->usb2_hw_lpm_besl_capable) { in xhci_set_usb2_hardware_lpm()
4175 hird = udev->l1_params.besl; in xhci_set_usb2_hardware_lpm()
4188 ret = xhci_change_max_exit_latency(xhci, udev, in xhci_set_usb2_hardware_lpm()
4196 hlpm_val = xhci_calculate_usb2_hw_lpm_params(udev); in xhci_set_usb2_hardware_lpm()
4201 hird = xhci_calculate_hird_besl(xhci, udev); in xhci_set_usb2_hardware_lpm()
4205 pm_val |= PORT_HIRD(hird) | PORT_RWE | PORT_L1DS(udev->slot_id); in xhci_set_usb2_hardware_lpm()
4217 if (udev->usb2_hw_lpm_besl_capable) { in xhci_set_usb2_hardware_lpm()
4220 xhci_change_max_exit_latency(xhci, udev, 0); in xhci_set_usb2_hardware_lpm()
4253 int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) in xhci_update_device() argument
4256 int portnum = udev->portnum - 1; in xhci_update_device()
4259 !udev->lpm_capable) in xhci_update_device()
4263 if (!udev->parent || udev->parent->parent || in xhci_update_device()
4264 udev->descriptor.bDeviceClass == USB_CLASS_HUB) in xhci_update_device()
4270 udev->usb2_hw_lpm_capable = 1; in xhci_update_device()
4271 udev->l1_params.timeout = XHCI_L1_TIMEOUT; in xhci_update_device()
4272 udev->l1_params.besl = XHCI_DEFAULT_BESL; in xhci_update_device()
4275 udev->usb2_hw_lpm_besl_capable = 1; in xhci_update_device()
4290 static u16 xhci_get_timeout_no_hub_lpm(struct usb_device *udev, in xhci_get_timeout_no_hub_lpm() argument
4301 sel = DIV_ROUND_UP(udev->u1_params.sel, 1000); in xhci_get_timeout_no_hub_lpm()
4302 pel = DIV_ROUND_UP(udev->u1_params.pel, 1000); in xhci_get_timeout_no_hub_lpm()
4307 sel = DIV_ROUND_UP(udev->u2_params.sel, 1000); in xhci_get_timeout_no_hub_lpm()
4308 pel = DIV_ROUND_UP(udev->u2_params.pel, 1000); in xhci_get_timeout_no_hub_lpm()
4313 dev_warn(&udev->dev, "%s: Can't get timeout for non-U1 or U2 state.\n", in xhci_get_timeout_no_hub_lpm()
4322 dev_dbg(&udev->dev, "Device-initiated %s disabled " in xhci_get_timeout_no_hub_lpm()
4326 dev_dbg(&udev->dev, "Device-initiated %s disabled " in xhci_get_timeout_no_hub_lpm()
4341 struct usb_device *udev, in xhci_calculate_intel_u1_timeout() argument
4351 timeout_ns = udev->u1_params.sel * 3; in xhci_calculate_intel_u1_timeout()
4354 timeout_ns = udev->u1_params.sel * 5; in xhci_calculate_intel_u1_timeout()
4359 timeout_ns = udev->u1_params.sel * 3; in xhci_calculate_intel_u1_timeout()
4366 if (timeout_ns < udev->u1_params.sel * 2) in xhci_calculate_intel_u1_timeout()
4367 timeout_ns = udev->u1_params.sel * 2; in xhci_calculate_intel_u1_timeout()
4378 struct usb_device *udev, in xhci_calculate_u1_timeout() argument
4384 timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc); in xhci_calculate_u1_timeout()
4386 timeout_ns = udev->u1_params.sel; in xhci_calculate_u1_timeout()
4401 dev_dbg(&udev->dev, "Hub-initiated U1 disabled " in xhci_calculate_u1_timeout()
4403 return xhci_get_timeout_no_hub_lpm(udev, USB3_LPM_U1); in xhci_calculate_u1_timeout()
4413 struct usb_device *udev, in xhci_calculate_intel_u2_timeout() argument
4425 u2_del_ns = le16_to_cpu(udev->bos->ss_cap->bU2DevExitLat) * 1000ULL; in xhci_calculate_intel_u2_timeout()
4434 struct usb_device *udev, in xhci_calculate_u2_timeout() argument
4440 timeout_ns = xhci_calculate_intel_u2_timeout(udev, desc); in xhci_calculate_u2_timeout()
4442 timeout_ns = udev->u2_params.sel; in xhci_calculate_u2_timeout()
4451 dev_dbg(&udev->dev, "Hub-initiated U2 disabled " in xhci_calculate_u2_timeout()
4453 return xhci_get_timeout_no_hub_lpm(udev, USB3_LPM_U2); in xhci_calculate_u2_timeout()
4457 struct usb_device *udev, in xhci_call_host_update_timeout_for_endpoint() argument
4463 return xhci_calculate_u1_timeout(xhci, udev, desc); in xhci_call_host_update_timeout_for_endpoint()
4465 return xhci_calculate_u2_timeout(xhci, udev, desc); in xhci_call_host_update_timeout_for_endpoint()
4471 struct usb_device *udev, in xhci_update_timeout_for_endpoint() argument
4478 alt_timeout = xhci_call_host_update_timeout_for_endpoint(xhci, udev, in xhci_update_timeout_for_endpoint()
4496 struct usb_device *udev, in xhci_update_timeout_for_interface() argument
4504 if (xhci_update_timeout_for_endpoint(xhci, udev, in xhci_update_timeout_for_interface()
4512 static int xhci_check_intel_tier_policy(struct usb_device *udev, in xhci_check_intel_tier_policy() argument
4522 for (parent = udev->parent, num_hubs = 0; parent->parent; in xhci_check_intel_tier_policy()
4529 dev_dbg(&udev->dev, "Disabling U1 link state for device" in xhci_check_intel_tier_policy()
4531 dev_dbg(&udev->dev, "Plug device into first-tier hub " in xhci_check_intel_tier_policy()
4537 struct usb_device *udev, in xhci_check_tier_policy() argument
4541 return xhci_check_intel_tier_policy(udev, state); in xhci_check_tier_policy()
4552 struct usb_device *udev, enum usb3_link_state state) in xhci_calculate_lpm_timeout() argument
4565 dev_warn(&udev->dev, "Can't enable unknown link state %i\n", in xhci_calculate_lpm_timeout()
4570 if (xhci_check_tier_policy(xhci, udev, state) < 0) in xhci_calculate_lpm_timeout()
4576 if (xhci_update_timeout_for_endpoint(xhci, udev, &udev->ep0.desc, in xhci_calculate_lpm_timeout()
4580 config = udev->actconfig; in xhci_calculate_lpm_timeout()
4597 dev_dbg(&udev->dev, "Hub-initiated %s disabled " in xhci_calculate_lpm_timeout()
4600 return xhci_get_timeout_no_hub_lpm(udev, state); in xhci_calculate_lpm_timeout()
4608 if (xhci_update_timeout_for_interface(xhci, udev, in xhci_calculate_lpm_timeout()
4616 static int calculate_max_exit_latency(struct usb_device *udev, in calculate_max_exit_latency() argument
4641 if ((udev->u1_params.timeout != USB3_LPM_DISABLED && !disabling_u1) || in calculate_max_exit_latency()
4643 u1_mel_us = DIV_ROUND_UP(udev->u1_params.mel, 1000); in calculate_max_exit_latency()
4644 if ((udev->u2_params.timeout != USB3_LPM_DISABLED && !disabling_u2) || in calculate_max_exit_latency()
4646 u2_mel_us = DIV_ROUND_UP(udev->u2_params.mel, 1000); in calculate_max_exit_latency()
4654 dev_warn(&udev->dev, "Link PM max exit latency of %lluus " in calculate_max_exit_latency()
4663 struct usb_device *udev, enum usb3_link_state state) in xhci_enable_usb3_lpm_timeout() argument
4676 !xhci->devs[udev->slot_id]) in xhci_enable_usb3_lpm_timeout()
4679 hub_encoded_timeout = xhci_calculate_lpm_timeout(hcd, udev, state); in xhci_enable_usb3_lpm_timeout()
4680 mel = calculate_max_exit_latency(udev, state, hub_encoded_timeout); in xhci_enable_usb3_lpm_timeout()
4687 ret = xhci_change_max_exit_latency(xhci, udev, mel); in xhci_enable_usb3_lpm_timeout()
4694 struct usb_device *udev, enum usb3_link_state state) in xhci_disable_usb3_lpm_timeout() argument
4701 !xhci->devs[udev->slot_id]) in xhci_disable_usb3_lpm_timeout()
4704 mel = calculate_max_exit_latency(udev, state, USB3_LPM_DISABLED); in xhci_disable_usb3_lpm_timeout()
4705 return xhci_change_max_exit_latency(xhci, udev, mel); in xhci_disable_usb3_lpm_timeout()
4710 struct usb_device *udev, int enable) in xhci_set_usb2_hardware_lpm() argument
4715 int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev) in xhci_update_device() argument
4721 struct usb_device *udev, enum usb3_link_state state) in xhci_enable_usb3_lpm_timeout() argument
4727 struct usb_device *udev, enum usb3_link_state state) in xhci_disable_usb3_lpm_timeout() argument