Home
last modified time | relevance | path

Searched refs:xhci (Results 1 – 25 of 85) sorted by relevance

1234

/Linux-v5.15/drivers/usb/host/
Dxhci.c86 void xhci_quiesce(struct xhci_hcd *xhci) in xhci_quiesce() argument
93 halted = readl(&xhci->op_regs->status) & STS_HALT; in xhci_quiesce()
97 cmd = readl(&xhci->op_regs->command); in xhci_quiesce()
99 writel(cmd, &xhci->op_regs->command); in xhci_quiesce()
110 int xhci_halt(struct xhci_hcd *xhci) in xhci_halt() argument
113 xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Halt the HC"); in xhci_halt()
114 xhci_quiesce(xhci); in xhci_halt()
116 ret = xhci_handshake(&xhci->op_regs->status, in xhci_halt()
119 xhci_warn(xhci, "Host halt failed, %d\n", ret); in xhci_halt()
122 xhci->xhc_state |= XHCI_STATE_HALTED; in xhci_halt()
[all …]
Dxhci-mem.c28 static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci, in xhci_segment_alloc() argument
36 struct device *dev = xhci_to_hcd(xhci)->self.sysdev; in xhci_segment_alloc()
42 seg->trbs = dma_pool_zalloc(xhci->segment_pool, flags, &dma); in xhci_segment_alloc()
52 dma_pool_free(xhci->segment_pool, seg->trbs, dma); in xhci_segment_alloc()
68 static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) in xhci_segment_free() argument
71 dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); in xhci_segment_free()
78 static void xhci_free_segments_for_ring(struct xhci_hcd *xhci, in xhci_free_segments_for_ring() argument
86 xhci_segment_free(xhci, seg); in xhci_free_segments_for_ring()
89 xhci_segment_free(xhci, first); in xhci_free_segments_for_ring()
126 static void xhci_link_rings(struct xhci_hcd *xhci, struct xhci_ring *ring, in xhci_link_rings() argument
[all …]
Dxhci-ring.c61 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()
190 xhci_warn(xhci, "Ring is an endless link TRB loop\n"); in inc_deq()
216 static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, in inc_enq() argument
229 xhci_err(xhci, "Tried to move enqueue past ring segment\n"); in inc_enq()
253 (xhci->quirks & XHCI_AMD_0x96_HOST)) && in inc_enq()
254 !xhci_link_trb_quirk(xhci)) { in inc_enq()
271 xhci_warn(xhci, "%s: Ring link TRB loop\n", __func__); in inc_enq()
[all …]
Dxhci-pci.c85 static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev) in xhci_pci_reinit() argument
95 xhci_dbg(xhci, "MWI active\n"); in xhci_pci_reinit()
97 xhci_dbg(xhci, "Finished xhci_pci_reinit\n"); in xhci_pci_reinit()
101 static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_pci_quirks() argument
111 xhci->quirks |= driver_data->quirks; in xhci_pci_quirks()
121 xhci->quirks |= XHCI_RESET_EP_QUIRK; in xhci_pci_quirks()
122 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
128 xhci->quirks |= XHCI_SLOW_SUSPEND; in xhci_pci_quirks()
129 xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, in xhci_pci_quirks()
135 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_pci_quirks()
[all …]
Dxhci-hub.c35 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
266 if (HCC_PPC(xhci->hcc_params)) in xhci_common_hub_descriptor()
[all …]
DMakefile14 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-plat-hcd-y += xhci-rcar.o
33 xhci-hcd-y += xhci-debugfs.o
69 obj-$(CONFIG_USB_XHCI_HCD) += xhci-hcd.o
[all …]
Dxhci-debugfs.c86 static struct xhci_regset *xhci_debugfs_alloc_regset(struct xhci_hcd *xhci) in xhci_debugfs_alloc_regset() argument
99 list_add_tail(&regset->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()
140 static void xhci_debugfs_extcap_regset(struct xhci_hcd *xhci, int cap_id, in xhci_debugfs_extcap_regset() argument
147 void __iomem *base = &xhci->cap_regs->hc_capbase; in xhci_debugfs_extcap_regset()
156 xhci_debugfs_regset(xhci, offset, regs, nregs, in xhci_debugfs_extcap_regset()
157 xhci->debugfs_root, "%s:%02d", in xhci_debugfs_extcap_regset()
260 struct xhci_hcd *xhci; in xhci_slot_context_show() local
[all …]
Dxhci-plat.c87 static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_plat_quirks() argument
89 struct xhci_plat_priv *priv = xhci_to_priv(xhci); in xhci_plat_quirks()
96 xhci->quirks |= XHCI_PLAT | priv->quirks; in xhci_plat_quirks()
192 struct xhci_hcd *xhci; in xhci_plat_probe() local
264 xhci = hcd_to_xhci(hcd); in xhci_plat_probe()
270 xhci->reg_clk = devm_clk_get_optional(&pdev->dev, "reg"); in xhci_plat_probe()
271 if (IS_ERR(xhci->reg_clk)) { in xhci_plat_probe()
272 ret = PTR_ERR(xhci->reg_clk); in xhci_plat_probe()
276 ret = clk_prepare_enable(xhci->reg_clk); in xhci_plat_probe()
280 xhci->clk = devm_clk_get_optional(&pdev->dev, NULL); in xhci_plat_probe()
[all …]
Dxhci-debugfs.h107 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 …]
Dxhci-mtk.c391 static void xhci_mtk_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_mtk_quirks() argument
393 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_mtk_quirks()
401 xhci->quirks |= XHCI_PLAT; in xhci_mtk_quirks()
402 xhci->quirks |= XHCI_MTK_HOST; in xhci_mtk_quirks()
407 xhci->quirks |= XHCI_SPURIOUS_SUCCESS; in xhci_mtk_quirks()
409 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_mtk_quirks()
411 xhci->quirks |= XHCI_HW_LPM_DISABLE; in xhci_mtk_quirks()
417 if (xhci->hci_version < 0x100 && HCC_MAX_PSA(xhci->hcc_params) == 4) in xhci_mtk_quirks()
418 xhci->quirks |= XHCI_BROKEN_STREAMS; in xhci_mtk_quirks()
465 struct xhci_hcd *xhci; in xhci_mtk_probe() local
[all …]
Dxhci-histb.c167 static void xhci_histb_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_histb_quirks() argument
174 xhci->quirks |= XHCI_PLAT; in xhci_histb_quirks()
203 struct xhci_hcd *xhci; in xhci_histb_probe() local
262 xhci = hcd_to_xhci(hcd); in xhci_histb_probe()
266 xhci->main_hcd = hcd; in xhci_histb_probe()
267 xhci->shared_hcd = usb_create_shared_hcd(driver, dev, dev_name(dev), in xhci_histb_probe()
269 if (!xhci->shared_hcd) { in xhci_histb_probe()
275 xhci->quirks |= XHCI_HW_LPM_DISABLE; in xhci_histb_probe()
278 xhci->quirks |= XHCI_LPM_SUPPORT; in xhci_histb_probe()
281 xhci->imod_interval = 40000; in xhci_histb_probe()
[all …]
Dxhci.h950 struct xhci_hcd *xhci; member
1963 static inline struct usb_hcd *xhci_to_hcd(struct xhci_hcd *xhci) in xhci_to_hcd() argument
1965 return xhci->main_hcd; in xhci_to_hcd()
1968 #define xhci_dbg(xhci, fmt, args...) \ argument
1969 dev_dbg(xhci_to_hcd(xhci)->self.controller , fmt , ## args)
1970 #define xhci_err(xhci, fmt, args...) \ argument
1971 dev_err(xhci_to_hcd(xhci)->self.controller , fmt , ## args)
1972 #define xhci_warn(xhci, fmt, args...) \ argument
1973 dev_warn(xhci_to_hcd(xhci)->self.controller , fmt , ## args)
1974 #define xhci_warn_ratelimited(xhci, fmt, args...) \ argument
[all …]
Dxhci-dbgcap.h123 struct xhci_hcd *xhci; member
197 int xhci_dbc_init(struct xhci_hcd *xhci);
198 void xhci_dbc_exit(struct xhci_hcd *xhci);
199 int xhci_dbc_tty_probe(struct xhci_hcd *xhci);
207 int xhci_dbc_suspend(struct xhci_hcd *xhci);
208 int xhci_dbc_resume(struct xhci_hcd *xhci);
211 static inline int xhci_dbc_init(struct xhci_hcd *xhci) in xhci_dbc_init() argument
216 static inline void xhci_dbc_exit(struct xhci_hcd *xhci) in xhci_dbc_exit() argument
220 static inline int xhci_dbc_suspend(struct xhci_hcd *xhci) in xhci_dbc_suspend() argument
225 static inline int xhci_dbc_resume(struct xhci_hcd *xhci) in xhci_dbc_resume() argument
Dxhci-ext-caps.c28 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()
Dxhci-dbgcap.c917 static void xhci_do_dbc_exit(struct xhci_hcd *xhci) in xhci_do_dbc_exit() argument
921 spin_lock_irqsave(&xhci->lock, flags); in xhci_do_dbc_exit()
922 kfree(xhci->dbc); in xhci_do_dbc_exit()
923 xhci->dbc = NULL; in xhci_do_dbc_exit()
924 spin_unlock_irqrestore(&xhci->lock, flags); in xhci_do_dbc_exit()
927 static int xhci_do_dbc_init(struct xhci_hcd *xhci) in xhci_do_dbc_init() argument
935 base = &xhci->cap_regs->hc_capbase; in xhci_do_dbc_init()
953 spin_lock_irqsave(&xhci->lock, flags); in xhci_do_dbc_init()
954 if (xhci->dbc) { in xhci_do_dbc_init()
955 spin_unlock_irqrestore(&xhci->lock, flags); in xhci_do_dbc_init()
[all …]
Dxhci-dbg.c13 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()
Dxhci-mtk-sch.c127 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in get_bw_info() local
131 virt_dev = xhci->devs[udev->slot_id]; in get_bw_info()
144 bw_index = virt_dev->real_port + xhci->usb3_rhub.num_ports - 1; in get_bw_info()
662 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in xhci_mtk_sch_init() local
667 num_usb_bus = xhci->usb3_rhub.num_ports * 2 + xhci->usb2_rhub.num_ports; in xhci_mtk_sch_init()
690 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in add_ep_quirk() local
696 virt_dev = xhci->devs[udev->slot_id]; in add_ep_quirk()
698 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); in add_ep_quirk()
712 xhci_dbg(xhci, "%s %s\n", __func__, decode_ep(ep, udev->speed)); in add_ep_quirk()
730 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in drop_ep_quirk() local
[all …]
Dxhci-mvebu.c80 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mvebu_a3700_plat_setup() local
104 xhci->quirks |= XHCI_SKIP_PHY_INIT; in xhci_mvebu_a3700_plat_setup()
121 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_mvebu_a3700_init_quirk() local
124 xhci->quirks |= XHCI_RESET_ON_RESUME; in xhci_mvebu_a3700_init_quirk()
Dxhci-tegra.c1157 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xhci_set_port_power() local
1158 struct usb_hcd *hcd = main ? xhci->main_hcd : xhci->shared_hcd; in tegra_xhci_set_port_power()
1210 struct xhci_hcd *xhci = hcd_to_xhci(tegra->hcd); in tegra_xhci_id_work() local
1234 xhci->shared_hcd, GetPortStatus, in tegra_xhci_id_work()
1406 struct xhci_hcd *xhci; in tegra_xusb_probe() local
1672 xhci = hcd_to_xhci(tegra->hcd); in tegra_xusb_probe()
1674 xhci->shared_hcd = usb_create_shared_hcd(&tegra_xhci_hc_driver, in tegra_xusb_probe()
1678 if (!xhci->shared_hcd) { in tegra_xusb_probe()
1684 err = usb_add_hcd(xhci->shared_hcd, tegra->xhci_irq, IRQF_SHARED); in tegra_xusb_probe()
1720 device_init_wakeup(&xhci->shared_hcd->self.root_hub->dev, true); in tegra_xusb_probe()
[all …]
Dxhci-trace.h12 #define TRACE_SYSTEM xhci-hcd
74 TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
76 TP_ARGS(xhci, ctx, ep_num),
85 ((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 8) *
91 udev = to_usb_device(xhci_to_hcd(xhci)->self.controller);
92 __entry->ctx_64 = HCC_64BYTE_CONTEXT(xhci->hcc_params);
99 ((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 32) *
109 TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
111 TP_ARGS(xhci, ctx, ep_num)
633 #define TRACE_INCLUDE_FILE xhci-trace
/Linux-v5.15/drivers/usb/cdns3/
Dhost.c35 struct platform_device *xhci; in __cdns_host_init() local
41 xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); in __cdns_host_init()
42 if (!xhci) { in __cdns_host_init()
47 xhci->dev.parent = cdns->dev; in __cdns_host_init()
48 cdns->host_dev = xhci; in __cdns_host_init()
50 ret = platform_device_add_resources(xhci, cdns->xhci_res, in __cdns_host_init()
67 ret = platform_device_add_data(xhci, cdns->xhci_plat_data, in __cdns_host_init()
72 ret = platform_device_add(xhci); in __cdns_host_init()
79 hcd = platform_get_drvdata(xhci); in __cdns_host_init()
88 platform_device_put(xhci); in __cdns_host_init()
[all …]
/Linux-v5.15/drivers/usb/dwc3/
Dhost.c48 struct platform_device *xhci; in dwc3_host_init() local
72 xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); in dwc3_host_init()
73 if (!xhci) { in dwc3_host_init()
78 xhci->dev.parent = dwc->dev; in dwc3_host_init()
79 ACPI_COMPANION_SET(&xhci->dev, ACPI_COMPANION(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()
[all …]
/Linux-v5.15/Documentation/devicetree/bindings/usb/
Ddwc3-cavium.txt22 xhci@1690000000000 {
23 compatible = "cavium,octeon-7130-xhci", "synopsys,dwc3";
Dhisilicon,histb-xhci.txt6 - compatible: should be "hisilicon,hi3798cv200-xhci"
33 compatible = "hisilicon,hi3798cv200-xhci";
/Linux-v5.15/arch/arm64/boot/dts/broadcom/stingray/
Dstingray-usb.dtsi25 compatible = "generic-xhci";
59 compatible = "generic-xhci";

1234