Lines Matching refs:hcd

369 	struct usb_hcd *hcd;
376 hcd = rhub->hcd;
378 if (!hcd)
394 if (hcd->state == HC_STATE_SUSPENDED)
395 usb_hcd_resume_root_hub(hcd);
397 usb_hcd_poll_rh_status(hcd);
469 static int xhci_init(struct usb_hcd *hcd)
471 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
546 int xhci_run(struct usb_hcd *hcd)
550 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
556 hcd->uses_new_polling = 1;
557 if (hcd->msi_enabled)
560 if (!usb_hcd_is_primary_hcd(hcd))
585 "Finished %s for main hcd", __func__);
594 set_bit(HCD_FLAG_DEFER_RH_REGISTER, &hcd->flags);
609 void xhci_stop(struct usb_hcd *hcd)
612 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
618 if (!usb_hcd_is_primary_hcd(hcd)) {
669 void xhci_shutdown(struct usb_hcd *hcd)
671 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
674 usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev));
678 __func__, hcd->self.busnum);
679 clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
680 del_timer_sync(&hcd->rh_timer);
843 rhub->hcd->self.busnum, i + 1, portsc, t2);
894 struct usb_hcd *hcd = xhci_to_hcd(xhci);
898 if (!hcd->state)
901 if (hcd->state != HC_STATE_SUSPENDED ||
909 if (!HCD_HW_ACCESSIBLE(hcd))
916 __func__, hcd->self.busnum);
917 clear_bit(HCD_FLAG_POLL_RH, &hcd->flags);
918 del_timer_sync(&hcd->rh_timer);
928 clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
1008 struct usb_hcd *hcd = xhci_to_hcd(xhci);
1015 if (!hcd->state)
1026 set_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
1117 retval = xhci_init(hcd);
1123 retval = xhci_run(hcd);
1129 hcd->state = HC_STATE_SUSPENDED;
1178 usb_hcd_resume_root_hub(hcd);
1191 usb_asmedia_modifyflowcontrol(to_pci_dev(hcd->self.controller));
1195 __func__, hcd->self.busnum);
1200 set_bit(HCD_FLAG_POLL_RH, &hcd->flags);
1201 usb_hcd_poll_rh_status(hcd);
1210 static int xhci_map_temp_buffer(struct usb_hcd *hcd, struct urb *urb)
1221 dev_to_node(hcd->self.sysdev));
1230 urb->transfer_dma = dma_map_single(hcd->self.sysdev,
1235 if (dma_mapping_error(hcd->self.sysdev,
1246 static bool xhci_urb_temp_buffer_required(struct usb_hcd *hcd,
1286 static void xhci_unmap_temp_buf(struct usb_hcd *hcd, struct urb *urb)
1298 dma_unmap_single(hcd->self.sysdev,
1309 xhci_dbg(hcd_to_xhci(hcd),
1325 static int xhci_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
1330 xhci = hcd_to_xhci(hcd);
1336 if (xhci_urb_temp_buffer_required(hcd, urb))
1337 return xhci_map_temp_buffer(hcd, urb);
1339 return usb_hcd_map_urb_for_dma(hcd, urb, mem_flags);
1342 static void xhci_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
1347 xhci = hcd_to_xhci(hcd);
1353 xhci_unmap_temp_buf(hcd, urb);
1355 usb_hcd_unmap_urb_for_dma(hcd, urb);
1413 static int xhci_check_args(struct usb_hcd *hcd, struct usb_device *udev,
1419 if (!hcd || (check_ep && !ep) || !udev) {
1428 xhci = hcd_to_xhci(hcd);
1533 static int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags)
1535 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
1567 ret = xhci_check_args(hcd, urb->dev, urb->ep,
1576 if (!HCD_HW_ACCESSIBLE(hcd)) {
1667 static int xhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
1681 xhci = hcd_to_xhci(hcd);
1687 ret = usb_hcd_check_unlink_urb(hcd, urb, status);
1782 usb_hcd_unlink_urb_from_ep(hcd, urb);
1784 usb_hcd_giveback_urb(hcd, urb, -ESHUTDOWN);
1801 int xhci_drop_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
1813 ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
1816 xhci = hcd_to_xhci(hcd);
1884 int xhci_add_endpoint(struct usb_hcd *hcd, struct usb_device *udev,
1897 ret = xhci_check_args(hcd, udev, ep, 1, true, __func__);
1903 xhci = hcd_to_xhci(hcd);
2911 int xhci_check_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
2921 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__);
2924 xhci = hcd_to_xhci(hcd);
3010 void xhci_reset_bandwidth(struct usb_hcd *hcd, struct usb_device *udev)
3016 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__);
3019 xhci = hcd_to_xhci(hcd);
3047 static void xhci_endpoint_disable(struct usb_hcd *hcd,
3057 xhci = hcd_to_xhci(hcd);
3102 static void xhci_endpoint_reset(struct usb_hcd *hcd,
3116 xhci = hcd_to_xhci(hcd);
3404 static int xhci_alloc_streams(struct usb_hcd *hcd, struct usb_device *udev,
3426 xhci = hcd_to_xhci(hcd);
3571 static int xhci_free_streams(struct usb_hcd *hcd, struct usb_device *udev,
3584 xhci = hcd_to_xhci(hcd);
3703 static int xhci_discover_or_reset_device(struct usb_hcd *hcd,
3715 ret = xhci_check_args(hcd, udev, NULL, 0, false, __func__);
3718 xhci = hcd_to_xhci(hcd);
3724 ret = xhci_alloc_dev(hcd, udev);
3742 ret = xhci_alloc_dev(hcd, udev);
3865 static void xhci_free_dev(struct usb_hcd *hcd, struct usb_device *udev)
3867 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
3879 pm_runtime_put_noidle(hcd->self.controller);
3881 ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__);
3975 int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev)
3977 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
4047 pm_runtime_get_noresume(hcd->self.controller);
4063 * @hcd: USB host controller data structure.
4070 static int xhci_setup_device(struct usb_hcd *hcd, struct usb_device *udev,
4077 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
4194 xhci_alloc_dev(hcd, udev);
4255 static int xhci_address_device(struct usb_hcd *hcd, struct usb_device *udev,
4258 return xhci_setup_device(hcd, udev, SETUP_CONTEXT_ADDRESS, timeout_ms);
4261 static int xhci_enable_device(struct usb_hcd *hcd, struct usb_device *udev)
4263 return xhci_setup_device(hcd, udev, SETUP_CONTEXT_ONLY,
4273 int xhci_find_raw_port_number(struct usb_hcd *hcd, int port1)
4277 rhub = xhci_get_rhub(hcd);
4415 static int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd,
4418 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
4430 if (hcd->speed >= HCD_USB3 || !xhci->hw_lpm_support ||
4510 static int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
4512 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
4516 if (hcd->speed >= HCD_USB3 || !udev->lpm_capable || !xhci->hw_lpm_support)
4814 static u16 xhci_calculate_lpm_timeout(struct usb_hcd *hcd,
4817 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
4922 static int xhci_enable_usb3_lpm_timeout(struct usb_hcd *hcd,
4931 xhci = hcd_to_xhci(hcd);
4950 hub_encoded_timeout = xhci_calculate_lpm_timeout(hcd, udev, state);
4964 static int xhci_disable_usb3_lpm_timeout(struct usb_hcd *hcd,
4970 xhci = hcd_to_xhci(hcd);
4980 static int xhci_set_usb2_hardware_lpm(struct usb_hcd *hcd,
4986 static int xhci_update_device(struct usb_hcd *hcd, struct usb_device *udev)
4991 static int xhci_enable_usb3_lpm_timeout(struct usb_hcd *hcd,
4997 static int xhci_disable_usb3_lpm_timeout(struct usb_hcd *hcd,
5009 int xhci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev,
5012 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
5111 static int xhci_get_frame(struct usb_hcd *hcd)
5113 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
5118 static void xhci_hcd_init_usb2_data(struct xhci_hcd *xhci, struct usb_hcd *hcd)
5120 xhci->usb2_rhub.hcd = hcd;
5121 hcd->speed = HCD_USB2;
5122 hcd->self.root_hub->speed = USB_SPEED_HIGH;
5128 hcd->has_tt = 1;
5131 static void xhci_hcd_init_usb3_data(struct xhci_hcd *xhci, struct usb_hcd *hcd)
5151 hcd->speed = HCD_USB32;
5152 hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
5153 hcd->self.root_hub->rx_lanes = 2;
5154 hcd->self.root_hub->tx_lanes = 2;
5155 hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x2;
5158 hcd->speed = HCD_USB31;
5159 hcd->self.root_hub->speed = USB_SPEED_SUPER_PLUS;
5160 hcd->self.root_hub->ssp_rate = USB_SSP_GEN_2x1;
5166 xhci->usb3_rhub.hcd = hcd;
5169 int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
5176 struct device *dev = hcd->self.sysdev;
5180 hcd->self.sg_tablesize = ~0;
5183 hcd->self.no_sg_constraint = 1;
5186 hcd->self.no_stop_on_short = 1;
5188 xhci = hcd_to_xhci(hcd);
5190 if (!usb_hcd_is_primary_hcd(hcd)) {
5191 xhci_hcd_init_usb3_data(xhci, hcd);
5196 xhci->main_hcd = hcd;
5197 xhci->cap_regs = hcd->regs;
5198 xhci->op_regs = hcd->regs +
5200 xhci->run_regs = hcd->regs +
5272 retval = xhci_init(hcd);
5277 if (xhci_hcd_is_usb3(hcd))
5278 xhci_hcd_init_usb3_data(xhci, hcd);
5280 xhci_hcd_init_usb2_data(xhci, hcd);
5289 static void xhci_clear_tt_buffer_complete(struct usb_hcd *hcd,
5298 xhci = hcd_to_xhci(hcd);
5311 .description = "xhci-hcd",