Home
last modified time | relevance | path

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

123

/linux/drivers/usb/host/
H A Dxhci.c91 int xhci_handshake_check_state(struct xhci_hcd *xhci, void __iomem *ptr, in xhci_handshake_check_state() argument
100 xhci->xhc_state & exit_state, in xhci_handshake_check_state()
103 if (result == U32_MAX || xhci->xhc_state & exit_state) in xhci_handshake_check_state()
112 void xhci_quiesce(struct xhci_hcd *xhci) in xhci_quiesce() argument
119 halted = readl(&xhci->op_regs->status) & STS_HALT; in xhci_quiesce()
123 cmd = readl(&xhci->op_regs->command); in xhci_quiesce()
125 writel(cmd, &xhci->op_regs->command); in xhci_quiesce()
136 int xhci_halt(struct xhci_hcd *xhci) in xhci_halt() argument
140 xhci_dbg_trace(xhci, trace_xhci_dbg_init, "// Halt the HC"); in xhci_halt()
141 xhci_quiesce(xhci); in xhci_halt()
[all …]
H A Dxhci-mem.c29 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()
64 static void xhci_segment_free(struct xhci_hcd *xhci, struct xhci_segment *seg) in xhci_segment_free() argument
67 dma_pool_free(xhci->segment_pool, seg->trbs, seg->dma); in xhci_segment_free()
74 static void xhci_ring_segments_free(struct xhci_hcd *xhci, struct xhci_ring *ring) in xhci_ring_segments_free() argument
83 xhci_segment_free(xhci, seg); in xhci_ring_segments_free()
116 static void xhci_initialize_ring_segments(struct xhci_hcd *xhci, struct xhci_ring *ring) in xhci_initialize_ring_segments() argument
124 chain_links = xhci_link_chain_quirk(xhci, ring->type); in xhci_initialize_ring_segments()
[all …]
H A Dxhci-ring.c63 static int queue_command(struct xhci_hcd *xhci, struct xhci_command *cmd,
164 void inc_deq(struct xhci_hcd *xhci, struct xhci_ring *ring) in inc_deq() argument
187 xhci_warn(xhci, "Missing link TRB at end of segment\n"); in inc_deq()
199 xhci_warn(xhci, "Ring is an endless link TRB loop\n"); in inc_deq()
222 static void inc_enq(struct xhci_hcd *xhci, struct xhci_ring *ring, in inc_enq() argument
232 xhci_err(xhci, "Tried to move enqueue past ring segment\n"); in inc_enq()
255 if (!xhci_link_chain_quirk(xhci, ring->type)) { in inc_enq()
274 xhci_warn(xhci, "%s: Ring link TRB loop\n", __func__); in inc_enq()
322 static unsigned int xhci_ring_expansion_needed(struct xhci_hcd *xhci, struct xhci_ring *ring, in xhci_ring_expansion_needed() argument
354 xhci_dbg(xhci, "Adding %d trbs requires expanding ring by %d segments\n", in xhci_ring_expansion_needed()
[all …]
H A Dxhci-pci.c106 static void xhci_msix_sync_irqs(struct xhci_hcd *xhci) in xhci_msix_sync_irqs() argument
108 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_msix_sync_irqs()
119 static void xhci_cleanup_msix(struct xhci_hcd *xhci) in xhci_cleanup_msix() argument
121 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_cleanup_msix()
127 free_irq(pci_irq_vector(pdev, 0), xhci_to_hcd(xhci)); in xhci_cleanup_msix()
136 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_try_enable_msi() local
143 if (xhci->quirks & XHCI_BROKEN_MSI) in xhci_try_enable_msi()
156 xhci->nvecs = min(num_online_cpus() + 1, xhci->max_interrupters); in xhci_try_enable_msi()
159 xhci->nvecs = pci_alloc_irq_vectors(pdev, 1, xhci->nvecs, in xhci_try_enable_msi()
161 if (xhci->nvecs < 0) { in xhci_try_enable_msi()
[all …]
H A Dxhci-hub.c36 static int xhci_create_usb3x_bos_desc(struct xhci_hcd *xhci, char *buf, in xhci_create_usb3x_bos_desc() argument
61 for (i = 0; i < xhci->num_port_caps; i++) { in xhci_create_usb3x_bos_desc()
62 u8 major = xhci->port_caps[i].maj_rev; in xhci_create_usb3x_bos_desc()
63 u8 minor = xhci->port_caps[i].min_rev; in xhci_create_usb3x_bos_desc()
68 port_cap = &xhci->port_caps[i]; in xhci_create_usb3x_bos_desc()
112 reg = readl(&xhci->cap_regs->hcc_params); in xhci_create_usb3x_bos_desc()
116 if ((xhci->quirks & XHCI_LPM_SUPPORT)) { in xhci_create_usb3x_bos_desc()
117 reg = readl(&xhci->cap_regs->hcs_params3); in xhci_create_usb3x_bos_desc()
256 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 …]
H A Dxhci-plat.c77 static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci) in xhci_plat_quirks() argument
79 struct xhci_plat_priv *priv = xhci_to_priv(xhci); in xhci_plat_quirks()
81 xhci->quirks |= priv->quirks; in xhci_plat_quirks()
149 struct xhci_hcd *xhci; in xhci_plat_probe() local
193 xhci = hcd_to_xhci(hcd); in xhci_plat_probe()
195 xhci->allow_single_roothub = 1; in xhci_plat_probe()
201 xhci->reg_clk = devm_clk_get_optional(&pdev->dev, "reg"); in xhci_plat_probe()
202 if (IS_ERR(xhci->reg_clk)) { in xhci_plat_probe()
203 ret = PTR_ERR(xhci->reg_clk); in xhci_plat_probe()
207 xhci->clk = devm_clk_get_optional(&pdev->dev, NULL); in xhci_plat_probe()
[all …]
H A 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-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 …]
H A Dxhci.h677 struct xhci_hcd *xhci; member
1703 static inline struct usb_hcd *xhci_to_hcd(struct xhci_hcd *xhci) in xhci_to_hcd() argument
1705 return xhci->main_hcd; in xhci_to_hcd()
1708 static inline struct usb_hcd *xhci_get_usb3_hcd(struct xhci_hcd *xhci) in xhci_get_usb3_hcd() argument
1710 if (xhci->shared_hcd) in xhci_get_usb3_hcd()
1711 return xhci->shared_hcd; in xhci_get_usb3_hcd()
1713 if (!xhci->usb2_rhub.num_ports) in xhci_get_usb3_hcd()
1714 return xhci->main_hcd; in xhci_get_usb3_hcd()
1721 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_hcd_is_usb3() local
1723 return hcd == xhci_get_usb3_hcd(xhci); in xhci_hcd_is_usb3()
[all …]
H A 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 …]
H A 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()
H A Dxhci-dbgcap.h126 struct xhci_hcd *xhci; member
205 int xhci_create_dbc_dev(struct xhci_hcd *xhci);
206 void xhci_remove_dbc_dev(struct xhci_hcd *xhci);
211 int xhci_dbc_tty_probe(struct device *dev, void __iomem *res, struct xhci_hcd *xhci);
222 int xhci_dbc_suspend(struct xhci_hcd *xhci);
223 int xhci_dbc_resume(struct xhci_hcd *xhci);
226 static inline int xhci_create_dbc_dev(struct xhci_hcd *xhci) in xhci_create_dbc_dev() argument
231 static inline void xhci_remove_dbc_dev(struct xhci_hcd *xhci) in xhci_remove_dbc_dev() argument
241 static inline int xhci_dbc_suspend(struct xhci_hcd *xhci) in xhci_dbc_suspend() argument
246 static inline int xhci_dbc_resume(struct xhci_hcd *xhci) in xhci_dbc_resume() argument
H A 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()
H A Dxhci-mtk-sch.c130 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in get_bw_info() local
134 virt_dev = xhci->devs[udev->slot_id]; in get_bw_info()
147 bw_index = virt_dev->rhub_port->hw_portnum + xhci->usb3_rhub.num_ports; in get_bw_info()
887 struct xhci_hcd *xhci = hcd_to_xhci(mtk->hcd); in xhci_mtk_sch_init() local
892 num_usb_bus = xhci->usb3_rhub.num_ports * 2 + xhci->usb2_rhub.num_ports; in xhci_mtk_sch_init()
915 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in add_ep_quirk() local
921 virt_dev = xhci->devs[udev->slot_id]; in add_ep_quirk()
923 ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index); in add_ep_quirk()
937 xhci_dbg(xhci, "%s %s\n", __func__, decode_ep(ep, udev->speed)); in add_ep_quirk()
955 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in drop_ep_quirk() local
[all …]
H A Dxhci-mvebu.c79 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/drivers/usb/cdns3/
H A Dhost.c34 struct xhci_hcd *xhci = hcd_to_xhci(hcd); in xhci_cdns3_plat_start() local
38 value = readl(&xhci->op_regs->command); in xhci_cdns3_plat_start()
40 writel(value, &xhci->op_regs->command); in xhci_cdns3_plat_start()
71 struct platform_device *xhci; in __cdns_host_init() local
77 xhci = platform_device_alloc("xhci-hcd", PLATFORM_DEVID_AUTO); in __cdns_host_init()
78 if (!xhci) { in __cdns_host_init()
83 xhci->dev.parent = cdns->dev; in __cdns_host_init()
84 cdns->host_dev = xhci; in __cdns_host_init()
86 ret = platform_device_add_resources(xhci, cdns->xhci_res, in __cdns_host_init()
108 ret = platform_device_add_data(xhci, cdns->xhci_plat_data, in __cdns_host_init()
[all …]
/linux/Documentation/devicetree/bindings/usb/
H A Ddwc3-cavium.txt22 xhci@1690000000000 {
23 compatible = "cavium,octeon-7130-xhci", "snps,dwc3";
H A Dhisilicon,histb-xhci.txt6 - compatible: should be "hisilicon,hi3798cv200-xhci"
33 compatible = "hisilicon,hi3798cv200-xhci";
/linux/Documentation/ABI/testing/
H A Dsysfs-bus-pci-drivers-xhci_hcd32 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/arch/arm64/boot/dts/broadcom/stingray/
H A Dstingray-usb.dtsi25 compatible = "generic-xhci";
59 compatible = "generic-xhci";
/linux/drivers/usb/dwc3/
H A Ddwc3-imx8mp.c111 if ((dwc3->current_dr_role == DWC3_GCTL_PRTCAP_HOST) && dwc3->xhci) { in dwc3_imx8mp_wakeup_enable()
153 if ((dwc->current_dr_role == DWC3_GCTL_PRTCAP_HOST) && dwc->xhci) in dwc3_imx8mp_interrupt()
154 pm_runtime_resume(&dwc->xhci->dev); in dwc3_imx8mp_interrupt()
/linux/drivers/usb/early/
H A DMakefile7 obj-$(CONFIG_EARLY_PRINTK_USB_XDBC) += xhci-dbc.o
/linux/drivers/usb/roles/
H A DMakefile5 obj-$(CONFIG_USB_ROLES_INTEL_XHCI) += intel-xhci-usb-role-switch.o
/linux/arch/arm64/boot/dts/broadcom/bcmbca/
H A Dbcm4908-netgear-raxe500.dts23 &xhci {
/linux/arch/arm/boot/dts/marvell/
H A Darmada-395.dtsi31 compatible = "marvell,armada-380-xhci";
/linux/arch/arm/boot/dts/broadcom/
H A Dbcm-nsp-ax.dtsi40 &xhci {

123