/Linux-v6.6/drivers/usb/host/ |
D | xhci.c | 87 void xhci_quiesce(struct xhci_hcd *xhci) in xhci_quiesce() argument 94 halted = readl(&xhci->op_regs->status) & STS_HALT; in xhci_quiesce() 98 cmd = readl(&xhci->op_regs->command); in xhci_quiesce() 100 writel(cmd, &xhci->op_regs->command); in xhci_quiesce() 111 int xhci_halt(struct xhci_hcd *xhci) in xhci_halt() argument 115 xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Halt the HC"); in xhci_halt() 116 xhci_quiesce(xhci); in xhci_halt() 118 ret = xhci_handshake(&xhci->op_regs->status, in xhci_halt() 121 xhci_warn(xhci, "Host halt failed, %d\n", ret); in xhci_halt() 125 xhci->xhc_state |= XHCI_STATE_HALTED; in xhci_halt() [all …]
|
D | xhci-mem.c | 29 static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, in xhci_segment_alloc() argument 37 struct device *dev = xhci_to_hcd(xhci)->self.sysdev; in xhci_segment_alloc() 43 seg->trbs = dma_pool_zalloc(xhci->segment_pool, flags, &dma); in xhci_segment_alloc() 53 dma_pool_free(xhci->segment_pool, seg->trbs, dma); in xhci_segment_alloc() 69 static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) in xhci_segment_free() argument 72 dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); in xhci_segment_free() 79 static void xhci_free_segments_for_ring(struct xhci_hcd *xhci, in xhci_free_segments_for_ring() argument 87 xhci_segment_free(xhci, seg); in xhci_free_segments_for_ring() 90 xhci_segment_free(xhci, first); in xhci_free_segments_for_ring() 127 static void xhci_link_rings(struct xhci_hcd *xhci, struct xhci_ring *ring, in xhci_link_rings() argument [all …]
|
D | xhci-pci.c | 92 static void xhci_msix_sync_irqs(struct xhci_hcd *xhci) in xhci_msix_sync_irqs() argument 94 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_msix_sync_irqs() 100 for (i = 0; i < xhci->msix_count; i++) in xhci_msix_sync_irqs() 106 static void xhci_cleanup_msix(struct xhci_hcd *xhci) in xhci_cleanup_msix() argument 108 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_cleanup_msix() 118 for (i = 0; i < xhci->msix_count; i++) in xhci_cleanup_msix() 119 free_irq(pci_irq_vector(pdev, i), xhci_to_hcd(xhci)); in xhci_cleanup_msix() 121 free_irq(pci_irq_vector(pdev, 0), xhci_to_hcd(xhci)); in xhci_cleanup_msix() 131 static int xhci_setup_msi(struct xhci_hcd *xhci) in xhci_setup_msi() argument 137 struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); in xhci_setup_msi() [all …]
|
D | xhci-ring.c | 61 static int queue_command(struct xhci_hcd *xhci, struct xhci_command *cmd, 142 static void next_trb(struct xhci_hcd *xhci, in next_trb() argument 158 void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) in inc_deq() argument 178 xhci_warn(xhci, "Missing link TRB at end of segment\n"); in inc_deq() 188 xhci_warn(xhci, "Ring is an endless link TRB loop\n"); in inc_deq() 214 static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, in inc_enq() argument 224 xhci_err(xhci, "Tried to move enqueue past ring segment\n"); in inc_enq() 248 (xhci->quirks & XHCI_AMD_0x96_HOST)) && in inc_enq() 249 !xhci_link_trb_quirk(xhci)) { in inc_enq() 266 xhci_warn(xhci, "%s: Ring link TRB loop\n", __func__); in inc_enq() [all …]
|
D | xhci-hub.c | 35 static int xhci_create_usb3x_bos_desc(struct xhci_hcd *xhci, char *buf, in xhci_create_usb3x_bos_desc() argument 60 for (i = 0; i < xhci->num_port_caps; i++) { in xhci_create_usb3x_bos_desc() 61 u8 major = xhci->port_caps[i].maj_rev; in xhci_create_usb3x_bos_desc() 62 u8 minor = xhci->port_caps[i].min_rev; in xhci_create_usb3x_bos_desc() 67 port_cap = &xhci->port_caps[i]; in xhci_create_usb3x_bos_desc() 111 reg = readl(&xhci->cap_regs->hcc_params); in xhci_create_usb3x_bos_desc() 115 if ((xhci->quirks & XHCI_LPM_SUPPORT)) { in xhci_create_usb3x_bos_desc() 116 reg = readl(&xhci->cap_regs->hcs_params3); in xhci_create_usb3x_bos_desc() 255 static void xhci_common_hub_descriptor(struct xhci_hcd *xhci, in xhci_common_hub_descriptor() argument 265 if (HCC_PPC(xhci->hcc_params)) in xhci_common_hub_descriptor() [all …]
|
D | xhci-plat.c | 76 static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_plat_quirks() argument 78 struct xhci_plat_priv *priv = xhci_to_priv(xhci); in xhci_plat_quirks() 80 xhci->quirks |= priv->quirks; in xhci_plat_quirks() 145 struct xhci_hcd *xhci; in xhci_plat_probe() local 189 xhci = hcd_to_xhci(hcd); in xhci_plat_probe() 191 xhci->allow_single_roothub = 1; in xhci_plat_probe() 197 xhci->reg_clk = devm_clk_get_optional(&pdev->dev, "reg"); in xhci_plat_probe() 198 if (IS_ERR(xhci->reg_clk)) { in xhci_plat_probe() 199 ret = PTR_ERR(xhci->reg_clk); in xhci_plat_probe() 203 xhci->clk = devm_clk_get_optional(&pdev->dev, NULL); in xhci_plat_probe() [all …]
|
D | Makefile | 14 xhci-hcd-y := xhci.o xhci-mem.o xhci-ext-caps.o 15 xhci-hcd-y += xhci-ring.o xhci-hub.o xhci-dbg.o 16 xhci-hcd-y += xhci-trace.o 19 xhci-hcd-y += xhci-dbgcap.o xhci-dbgtty.o 22 xhci-mtk-hcd-y := xhci-mtk.o xhci-mtk-sch.o 24 xhci-plat-hcd-y := xhci-plat.o 26 xhci-plat-hcd-y += xhci-mvebu.o 29 xhci-hcd-y += xhci-debugfs.o 32 xhci-rcar-hcd-y += xhci-rcar.o 33 xhci-rcar-hcd-$(CONFIG_USB_XHCI_RZV2M) += xhci-rzv2m.o [all …]
|
D | xhci-debugfs.c | 86 static struct xhci_regset *xhci_debugfs_alloc_regset(struct xhci_hcd *xhci) in xhci_debugfs_alloc_regset() argument 99 list_add_tail(®set->list, &xhci->regset_list); in xhci_debugfs_alloc_regset() 114 static void xhci_debugfs_regset(struct xhci_hcd *xhci, u32 base, in xhci_debugfs_regset() argument 122 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_debugfs_regset() 124 rgs = xhci_debugfs_alloc_regset(xhci); in xhci_debugfs_regset() 141 static void xhci_debugfs_extcap_regset(struct xhci_hcd *xhci, int cap_id, in xhci_debugfs_extcap_regset() argument 148 void __iomem *base = &xhci->cap_regs->hc_capbase; in xhci_debugfs_extcap_regset() 157 xhci_debugfs_regset(xhci, offset, regs, nregs, in xhci_debugfs_extcap_regset() 158 xhci->debugfs_root, "%s:%02d", in xhci_debugfs_extcap_regset() 261 struct xhci_hcd *xhci; in xhci_slot_context_show() local [all …]
|
D | xhci-debugfs.h | 107 void xhci_debugfs_init(struct xhci_hcd *xhci); 108 void xhci_debugfs_exit(struct xhci_hcd *xhci); 111 void xhci_debugfs_create_slot(struct xhci_hcd *xhci, int slot_id); 112 void xhci_debugfs_remove_slot(struct xhci_hcd *xhci, int slot_id); 113 void xhci_debugfs_create_endpoint(struct xhci_hcd *xhci, 116 void xhci_debugfs_remove_endpoint(struct xhci_hcd *xhci, 119 void xhci_debugfs_create_stream_files(struct xhci_hcd *xhci, 123 static inline void xhci_debugfs_init(struct xhci_hcd *xhci) { } in xhci_debugfs_init() argument 124 static inline void xhci_debugfs_exit(struct xhci_hcd *xhci) { } in xhci_debugfs_exit() argument 130 xhci_debugfs_create_endpoint(struct xhci_hcd *xhci, in xhci_debugfs_create_endpoint() argument [all …]
|
D | xhci.h | 955 struct xhci_hcd *xhci; member 1975 static inline struct usb_hcd *xhci_to_hcd(struct xhci_hcd *xhci) in xhci_to_hcd() argument 1977 return xhci->main_hcd; in xhci_to_hcd() 1980 static inline struct usb_hcd *xhci_get_usb3_hcd(struct xhci_hcd *xhci) in xhci_get_usb3_hcd() argument 1982 if (xhci->shared_hcd) in xhci_get_usb3_hcd() 1983 return xhci->shared_hcd; in xhci_get_usb3_hcd() 1985 if (!xhci->usb2_rhub.num_ports) in xhci_get_usb3_hcd() 1986 return xhci->main_hcd; in xhci_get_usb3_hcd() 1993 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_hcd_is_usb3() local 1995 return hcd == xhci_get_usb3_hcd(xhci); in xhci_hcd_is_usb3() [all …]
|
D | xhci-histb.c | 193 struct xhci_hcd *xhci; in xhci_histb_probe() local 252 xhci = hcd_to_xhci(hcd); in xhci_histb_probe() 256 xhci->main_hcd = hcd; in xhci_histb_probe() 257 xhci->shared_hcd = usb_create_shared_hcd(driver, dev, dev_name(dev), in xhci_histb_probe() 259 if (!xhci->shared_hcd) { in xhci_histb_probe() 265 xhci->quirks |= XHCI_HW_LPM_DISABLE; in xhci_histb_probe() 268 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_histb_probe() 271 xhci->imod_interval = 40000; in xhci_histb_probe() 273 &xhci->imod_interval); in xhci_histb_probe() 279 if (HCC_MAX_PSA(xhci->hcc_params) >= 4) in xhci_histb_probe() [all …]
|
D | xhci-mtk.c | 416 static void xhci_mtk_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_mtk_quirks() argument 418 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_mtk_quirks() 421 xhci->quirks |= XHCI_MTK_HOST; in xhci_mtk_quirks() 426 xhci->quirks |= XHCI_SPURIOUS_SUCCESS; in xhci_mtk_quirks() 428 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_mtk_quirks() 430 xhci->quirks |= XHCI_HW_LPM_DISABLE; in xhci_mtk_quirks() 436 if (xhci->hci_version < 0x100 && HCC_MAX_PSA(xhci->hcc_params) == 4) in xhci_mtk_quirks() 437 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_mtk_quirks() 481 struct xhci_hcd *xhci; in xhci_mtk_probe() local 591 xhci = hcd_to_xhci(hcd); in xhci_mtk_probe() [all …]
|
D | xhci-dbgcap.c | 923 struct xhci_hcd *xhci; in dbc_show() local 925 xhci = hcd_to_xhci(dev_get_drvdata(dev)); in dbc_show() 926 dbc = xhci->dbc; in dbc_show() 958 struct xhci_hcd *xhci; in dbc_store() local 961 xhci = hcd_to_xhci(dev_get_drvdata(dev)); in dbc_store() 962 dbc = xhci->dbc; in dbc_store() 979 struct xhci_hcd *xhci; in dbc_idVendor_show() local 981 xhci = hcd_to_xhci(dev_get_drvdata(dev)); in dbc_idVendor_show() 982 dbc = xhci->dbc; in dbc_idVendor_show() 992 struct xhci_hcd *xhci; in dbc_idVendor_store() local [all …]
|
D | xhci-ext-caps.c | 28 static int xhci_create_intel_xhci_sw_pdev(struct xhci_hcd *xhci, u32 cap_offset) in xhci_create_intel_xhci_sw_pdev() argument 30 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_create_intel_xhci_sw_pdev() 39 xhci_err(xhci, "couldn't allocate %s platform device\n", in xhci_create_intel_xhci_sw_pdev() 84 int xhci_ext_cap_init(struct xhci_hcd *xhci) in xhci_ext_cap_init() argument 86 void __iomem *base = &xhci->cap_regs->hc_capbase; in xhci_ext_cap_init() 97 if (xhci->quirks & XHCI_INTEL_USB_ROLE_SW) { in xhci_ext_cap_init() 98 ret = xhci_create_intel_xhci_sw_pdev(xhci, in xhci_ext_cap_init()
|
D | xhci-dbgcap.h | 124 struct xhci_hcd *xhci; member 202 int xhci_create_dbc_dev(struct xhci_hcd *xhci); 203 void xhci_remove_dbc_dev(struct xhci_hcd *xhci); 208 int xhci_dbc_tty_probe(struct device *dev, void __iomem *res, struct xhci_hcd *xhci); 219 int xhci_dbc_suspend(struct xhci_hcd *xhci); 220 int xhci_dbc_resume(struct xhci_hcd *xhci); 223 static inline int xhci_create_dbc_dev(struct xhci_hcd *xhci) in xhci_create_dbc_dev() argument 228 static inline void xhci_remove_dbc_dev(struct xhci_hcd *xhci) in xhci_remove_dbc_dev() argument 238 static inline int xhci_dbc_suspend(struct xhci_hcd *xhci) in xhci_dbc_suspend() argument 243 static inline int xhci_dbc_resume(struct xhci_hcd *xhci) in xhci_dbc_resume() argument
|
D | xhci-dbg.c | 13 char *xhci_get_slot_state(struct xhci_hcd *xhci, in xhci_get_slot_state() argument 16 struct xhci_slot_ctx *slot_ctx = xhci_get_slot_ctx(xhci, ctx); in xhci_get_slot_state() 22 void xhci_dbg_trace(struct xhci_hcd *xhci, void (*trace)(struct va_format *), in xhci_dbg_trace() argument 31 xhci_dbg(xhci, "%pV\n", &vaf); in xhci_dbg_trace()
|
D | xhci-mtk-sch.c | 122 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in get_bw_info() local 126 virt_dev = xhci->devs[udev->slot_id]; in get_bw_info() 139 bw_index = virt_dev->real_port + xhci->usb3_rhub.num_ports - 1; in get_bw_info() 602 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in xhci_mtk_sch_init() local 607 num_usb_bus = xhci->usb3_rhub.num_ports * 2 + xhci->usb2_rhub.num_ports; in xhci_mtk_sch_init() 630 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in add_ep_quirk() local 636 virt_dev = xhci->devs[udev->slot_id]; in add_ep_quirk() 638 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); in add_ep_quirk() 652 xhci_dbg(xhci, "%s %s\n", __func__, decode_ep(ep, udev->speed)); in add_ep_quirk() 670 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in drop_ep_quirk() local [all …]
|
D | xhci-tegra.c | 1292 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xhci_set_port_power() local 1293 struct usb_hcd *hcd = main ? xhci->main_hcd : xhci->shared_hcd; in tegra_xhci_set_port_power() 1345 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xhci_id_work() local 1372 xhci->shared_hcd, GetPortStatus, in tegra_xhci_id_work() 1541 struct xhci_hcd *xhci; in tegra_xusb_probe() local 1819 xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_probe() 1821 xhci->shared_hcd = usb_create_shared_hcd(&tegra_xhci_hc_driver, in tegra_xusb_probe() 1825 if (!xhci->shared_hcd) { in tegra_xusb_probe() 1831 if (HCC_MAX_PSA(xhci->hcc_params) >= 4) in tegra_xusb_probe() 1832 xhci->shared_hcd->can_do_streams = 1; in tegra_xusb_probe() [all …]
|
D | xhci-trace.h | 12 #define TRACE_SYSTEM xhci-hcd 74 TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, 76 TP_ARGS(xhci, ctx, ep_num), 84 ((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 8) * 89 __entry->ctx_64 = HCC_64BYTE_CONTEXT(xhci->hcc_params); 95 ((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 32) * 105 TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, 107 TP_ARGS(xhci, ctx, ep_num) 620 #define TRACE_INCLUDE_FILE xhci-trace
|
D | xhci-mvebu.c | 79 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mvebu_a3700_init_quirk() local 82 xhci->quirks |= XHCI_RESET_ON_RESUME; in xhci_mvebu_a3700_init_quirk()
|
/Linux-v6.6/drivers/usb/cdns3/ |
D | host.c | 29 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_cdns3_plat_start() local 33 value = readl(&xhci->op_regs->command); in xhci_cdns3_plat_start() 35 writel(value, &xhci->op_regs->command); in xhci_cdns3_plat_start() 62 struct platform_device *xhci; in __cdns_host_init() local 68 xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); in __cdns_host_init() 69 if (!xhci) { in __cdns_host_init() 74 xhci->dev.parent = cdns->dev; in __cdns_host_init() 75 cdns->host_dev = xhci; in __cdns_host_init() 77 ret = platform_device_add_resources(xhci, cdns->xhci_res, in __cdns_host_init() 94 ret = platform_device_add_data(xhci, cdns->xhci_plat_data, in __cdns_host_init() [all …]
|
/Linux-v6.6/drivers/usb/dwc3/ |
D | host.c | 65 struct platform_device *xhci; in dwc3_host_init() local 73 xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); in dwc3_host_init() 74 if (!xhci) { in dwc3_host_init() 79 xhci->dev.parent = dwc->dev; in dwc3_host_init() 81 dwc->xhci = xhci; in dwc3_host_init() 83 ret = platform_device_add_resources(xhci, dwc->xhci_resources, in dwc3_host_init() 111 ret = device_create_managed_software_node(&xhci->dev, props, NULL); in dwc3_host_init() 118 ret = platform_device_add(xhci); in dwc3_host_init() 126 platform_device_put(xhci); in dwc3_host_init() 132 platform_device_unregister(dwc->xhci); in dwc3_host_exit() [all …]
|
/Linux-v6.6/Documentation/devicetree/bindings/usb/ |
D | dwc3-cavium.txt | 22 xhci@1690000000000 { 23 compatible = "cavium,octeon-7130-xhci", "snps,dwc3";
|
/Linux-v6.6/Documentation/ABI/testing/ |
D | sysfs-bus-pci-drivers-xhci_hcd | 32 presented in the USB device descriptor by this xhci debug 45 presented in the USB device descriptor by this xhci debug 57 presented in the USB device descriptor by this xhci debug 70 presented in the USB Interface descriptor by the xhci debug
|
/Linux-v6.6/arch/arm64/boot/dts/broadcom/stingray/ |
D | stingray-usb.dtsi | 25 compatible = "generic-xhci"; 59 compatible = "generic-xhci";
|