/linux/drivers/usb/core/ |
H A D | hcd.c | 38 #include <linux/usb/hcd.h> 51 * HCD-specific behaviors/bugs. 60 * tracking overhead. The HCD code should only block on spinlocks or on 65 * and includes mostly a "HCDI" (HCD Interface) along with some APIs used 405 * @hcd: the host controller for this root hub 416 rh_string(int id, struct usb_hcd const *hcd, u8 *data, unsigned len) in rh_string() argument 433 s = hcd->self.bus_name; in rh_string() 437 s = hcd->product_desc; in rh_string() 442 init_utsname()->release, hcd->driver->description); in rh_string() 455 static int rh_call_control (struct usb_hcd *hcd, struct urb *urb) in rh_call_control() argument [all …]
|
H A D | buffer.c | 3 * DMA memory management for framework level HCD code (hc_driver) 21 #include <linux/usb/hcd.h> 53 * @hcd: the bus whose buffer pools are to be initialized 65 int hcd_buffer_create(struct usb_hcd *hcd) in hcd_buffer_create() argument 70 if (hcd->localmem_pool || !hcd_uses_dma(hcd)) in hcd_buffer_create() 78 hcd->pool[i] = dma_pool_create(name, hcd->self.sysdev, in hcd_buffer_create() 80 if (!hcd->pool[i]) { in hcd_buffer_create() 81 hcd_buffer_destroy(hcd); in hcd_buffer_create() 91 * @hcd: the bus whose buffer pools are to be destroyed 97 void hcd_buffer_destroy(struct usb_hcd *hcd) in hcd_buffer_destroy() argument [all …]
|
/linux/drivers/usb/isp1760/ |
H A D | isp1760-hcd.c | 23 #include <linux/usb/hcd.h> 34 #include "isp1760-hcd.h" 41 typedef void (packet_enqueue)(struct usb_hcd *hcd, struct isp1760_qh *qh, 44 static inline struct isp1760_hcd *hcd_to_priv(struct usb_hcd *hcd) in hcd_to_priv() argument 46 return *(struct isp1760_hcd **)hcd->hcd_priv; in hcd_to_priv() 150 /* the rest is HCD-private */ 200 static u32 isp1760_hcd_read(struct usb_hcd *hcd, u32 field) in isp1760_hcd_read() argument 202 struct isp1760_hcd *priv = hcd_to_priv(hcd); in isp1760_hcd_read() 225 static void isp1760_hcd_write(struct usb_hcd *hcd, u32 field, u32 val) in isp1760_hcd_write() argument 227 struct isp1760_hcd *priv = hcd_to_priv(hcd); in isp1760_hcd_write() [all …]
|
H A D | isp1760-core.c | 25 #include "isp1760-hcd.h" 31 struct isp1760_hcd *hcd = &isp->hcd; in isp1760_init_core() local 46 isp1760_field_set(hcd->fields, SW_RESET_RESET_ALL); in isp1760_init_core() 50 if ((isp->devflags & ISP1760_FLAG_ANALOG_OC) && hcd->is_isp1763) { in isp1760_init_core() 56 isp1760_field_clear(hcd->fields, HW_DATA_BUS_WIDTH); in isp1760_init_core() 58 isp1760_field_set(hcd->fields, HW_DATA_BUS_WIDTH); in isp1760_init_core() 60 isp1760_field_set(hcd->fields, HW_ANA_DIGI_OC); in isp1760_init_core() 62 isp1760_field_set(hcd->fields, HW_DACK_POL_HIGH); in isp1760_init_core() 64 isp1760_field_set(hcd->fields, HW_DREQ_POL_HIGH); in isp1760_init_core() 66 isp1760_field_set(hcd->fields, HW_INTR_HIGH_ACT); in isp1760_init_core() [all …]
|
/linux/drivers/usb/host/ |
H A D | ohci-ps3.c | 12 static int ps3_ohci_hc_reset(struct usb_hcd *hcd) in ps3_ohci_hc_reset() argument 14 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ps3_ohci_hc_reset() 21 static int ps3_ohci_hc_start(struct usb_hcd *hcd) in ps3_ohci_hc_start() argument 24 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ps3_ohci_hc_start() 36 dev_err(hcd->self.controller, "can't start %s\n", in ps3_ohci_hc_start() 37 hcd->self.bus_name); in ps3_ohci_hc_start() 38 ohci_stop(hcd); in ps3_ohci_hc_start() 70 struct usb_hcd *hcd; in ps3_ohci_probe() local 122 hcd = usb_create_hcd(&ps3_ohci_hc_driver, &dev->core, dev_name(&dev->core)); in ps3_ohci_probe() 124 if (!hcd) { in ps3_ohci_probe() [all …]
|
H A D | ehci-fsl.c | 21 #include <linux/usb/hcd.h> 50 struct usb_hcd *hcd; in fsl_ehci_drv_probe() local 83 hcd = __usb_create_hcd(&fsl_ehci_hc_driver, pdev->dev.parent, in fsl_ehci_drv_probe() 85 if (!hcd) { in fsl_ehci_drv_probe() 90 hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res); in fsl_ehci_drv_probe() 91 if (IS_ERR(hcd->regs)) { in fsl_ehci_drv_probe() 92 retval = PTR_ERR(hcd->regs); in fsl_ehci_drv_probe() 96 hcd->rsrc_start = res->start; in fsl_ehci_drv_probe() 97 hcd->rsrc_len = resource_size(res); in fsl_ehci_drv_probe() 99 pdata->regs = hcd->regs; in fsl_ehci_drv_probe() [all …]
|
H A D | xhci-plat.c | 30 static int xhci_plat_setup(struct usb_hcd *hcd); 31 static int xhci_plat_start(struct usb_hcd *hcd); 39 static void xhci_priv_plat_start(struct usb_hcd *hcd) in xhci_priv_plat_start() argument 41 struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd); in xhci_priv_plat_start() 44 priv->plat_start(hcd); in xhci_priv_plat_start() 47 static int xhci_priv_init_quirk(struct usb_hcd *hcd) in xhci_priv_init_quirk() argument 49 struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd); in xhci_priv_init_quirk() 54 return priv->init_quirk(hcd); in xhci_priv_init_quirk() 57 static int xhci_priv_suspend_quirk(struct usb_hcd *hcd) in xhci_priv_suspend_quirk() argument 59 struct xhci_plat_priv *priv = hcd_to_xhci_priv(hcd); in xhci_priv_suspend_quirk() [all …]
|
H A D | ehci-sh.c | 14 struct usb_hcd *hcd; member 17 static int ehci_sh_reset(struct usb_hcd *hcd) in ehci_sh_reset() argument 19 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_sh_reset() 21 ehci->caps = hcd->regs; in ehci_sh_reset() 23 return ehci_setup(hcd); in ehci_sh_reset() 78 struct usb_hcd *hcd; in ehci_hcd_sh_probe() local 90 /* initialize hcd */ in ehci_hcd_sh_probe() 91 hcd = usb_create_hcd(&ehci_sh_hc_driver, &pdev->dev, in ehci_hcd_sh_probe() 93 if (!hcd) { in ehci_hcd_sh_probe() 98 hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res); in ehci_hcd_sh_probe() [all …]
|
H A D | ehci-ps3.c | 40 static int ps3_ehci_hc_reset(struct usb_hcd *hcd) in ps3_ehci_hc_reset() argument 43 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ps3_ehci_hc_reset() 46 ehci->caps = hcd->regs; in ps3_ehci_hc_reset() 48 result = ehci_setup(hcd); in ps3_ehci_hc_reset() 87 struct usb_hcd *hcd; in ps3_ehci_probe() local 138 hcd = usb_create_hcd(&ps3_ehci_hc_driver, &dev->core, dev_name(&dev->core)); in ps3_ehci_probe() 140 if (!hcd) { in ps3_ehci_probe() 147 hcd->rsrc_start = dev->m_region->lpar_addr; in ps3_ehci_probe() 148 hcd->rsrc_len = dev->m_region->len; in ps3_ehci_probe() 150 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) in ps3_ehci_probe() [all …]
|
H A D | Makefile | 9 fhci-y := fhci-hcd.o fhci-hub.o fhci-q.o 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 [all …]
|
H A D | ohci-sa1111.c | 3 * OHCI HCD (Host Controller Driver) for USB. 44 static void dump_hci_status(struct usb_hcd *hcd, const char *label) 46 unsigned long status = readl_relaxed(hcd->regs + USB_STATUS); 57 static int ohci_sa1111_reset(struct usb_hcd *hcd) in ohci_sa1111_reset() argument 59 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ohci_sa1111_reset() 65 static int ohci_sa1111_start(struct usb_hcd *hcd) in ohci_sa1111_start() argument 67 struct ohci_hcd *ohci = hcd_to_ohci(hcd); in ohci_sa1111_start() 73 ohci_stop(hcd); in ohci_sa1111_start() 174 * then invokes the start() method for the HCD associated with it. 178 struct usb_hcd *hcd; in ohci_hcd_sa1111_probe() local [all …]
|
H A D | xhci-pci.c | 91 static int xhci_pci_setup(struct usb_hcd *hcd); 92 static int xhci_pci_run(struct usb_hcd *hcd); 93 static int xhci_pci_update_hub_device(struct usb_hcd *hcd, struct usb_device *hdev, 108 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_msix_sync_irqs() local 110 if (hcd->msix_enabled) { in xhci_msix_sync_irqs() 111 struct pci_dev *pdev = to_pci_dev(hcd->self.controller); in xhci_msix_sync_irqs() 121 struct usb_hcd *hcd = xhci_to_hcd(xhci); in xhci_cleanup_msix() local 122 struct pci_dev *pdev = to_pci_dev(hcd->self.controller); in xhci_cleanup_msix() 124 if (hcd->irq > 0) in xhci_cleanup_msix() 129 hcd->msix_enabled = 0; in xhci_cleanup_msix() [all …]
|
H A D | ehci-platform.c | 35 #include <linux/usb/hcd.h> 56 static int ehci_platform_reset(struct usb_hcd *hcd) in ehci_platform_reset() argument 58 struct platform_device *pdev = to_platform_device(hcd->self.controller); in ehci_platform_reset() 60 struct ehci_hcd *ehci = hcd_to_ehci(hcd); in ehci_platform_reset() 66 retval = pdata->pre_setup(hcd); in ehci_platform_reset() 71 ehci->caps = hcd->regs + pdata->caps_offset; in ehci_platform_reset() 72 retval = ehci_setup(hcd); in ehci_platform_reset() 88 struct usb_hcd *hcd = platform_get_drvdata(dev); in ehci_platform_power_on() local 89 struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd); in ehci_platform_power_on() 109 struct usb_hcd *hcd = platform_get_drvdata(dev); in ehci_platform_power_off() local [all …]
|
H A D | ohci-pci.c | 3 * OHCI HCD (Host Controller Driver) for USB. 23 #include <linux/usb/hcd.h> 35 static int broken_suspend(struct usb_hcd *hcd) in broken_suspend() argument 37 device_init_wakeup(&hcd->self.root_hub->dev, 0); in broken_suspend() 44 static int ohci_quirk_amd756(struct usb_hcd *hcd) in ohci_quirk_amd756() argument 46 struct ohci_hcd *ohci = hcd_to_ohci (hcd); in ohci_quirk_amd756() 52 return broken_suspend(hcd); in ohci_quirk_amd756() 59 static int ohci_quirk_opti(struct usb_hcd *hcd) in ohci_quirk_opti() argument 61 struct ohci_hcd *ohci = hcd_to_ohci (hcd); in ohci_quirk_opti() 72 static int ohci_quirk_ns(struct usb_hcd *hcd) in ohci_quirk_ns() argument [all …]
|
H A D | uhci-platform.c | 3 * Generic UHCI HCD (Host Controller Driver) for Platform Devices 15 static int uhci_platform_init(struct usb_hcd *hcd) in uhci_platform_init() argument 17 struct uhci_hcd *uhci = hcd_to_uhci(hcd); in uhci_platform_init() 21 uhci->rh_numports = uhci_count_ports(hcd); in uhci_platform_init() 70 struct usb_hcd *hcd; in uhci_hcd_platform_probe() local 87 hcd = usb_create_hcd(&uhci_platform_hc_driver, &pdev->dev, in uhci_hcd_platform_probe() 89 if (!hcd) in uhci_hcd_platform_probe() 92 uhci = hcd_to_uhci(hcd); in uhci_hcd_platform_probe() 94 hcd->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res); in uhci_hcd_platform_probe() 95 if (IS_ERR(hcd->regs)) { in uhci_hcd_platform_probe() [all …]
|
H A D | xhci-mtk.c | 142 struct usb_hcd *hcd = mtk->hcd; in xhci_mtk_set_frame_interval() local 148 value = readl(hcd->regs + HFCNTR_CFG); in xhci_mtk_set_frame_interval() 151 writel(value, hcd->regs + HFCNTR_CFG); in xhci_mtk_set_frame_interval() 153 value = readl(hcd->regs + LS_EOF_CFG); in xhci_mtk_set_frame_interval() 156 writel(value, hcd->regs + LS_EOF_CFG); in xhci_mtk_set_frame_interval() 158 value = readl(hcd->regs + FS_EOF_CFG); in xhci_mtk_set_frame_interval() 161 writel(value, hcd->regs + FS_EOF_CFG); in xhci_mtk_set_frame_interval() 163 value = readl(hcd->regs + SS_GEN1_EOF_CFG); in xhci_mtk_set_frame_interval() 166 writel(value, hcd->regs + SS_GEN1_EOF_CFG); in xhci_mtk_set_frame_interval() 168 value = readl(hcd->regs + SS_GEN2_EOF_CFG); in xhci_mtk_set_frame_interval() [all …]
|
H A D | uhci-pci.c | 3 * UHCI HCD (Host Controller Driver) PCI Bus Glue. 5 * Extracted from uhci-hcd.c: 46 * This function is called at the end of configure_hc in uhci-hcd.c. 114 static int uhci_pci_init(struct usb_hcd *hcd) in uhci_pci_init() argument 116 struct uhci_hcd *uhci = hcd_to_uhci(hcd); in uhci_pci_init() 118 uhci->io_addr = (unsigned long) hcd->rsrc_start; in uhci_pci_init() 120 uhci->rh_numports = uhci_count_ports(hcd); in uhci_pci_init() 165 struct usb_hcd *hcd = pci_get_drvdata(pdev); in uhci_shutdown() local 167 uhci_hc_died(hcd_to_uhci(hcd)); in uhci_shutdown() 172 static int uhci_pci_resume(struct usb_hcd *hcd, pm_message_t state); [all …]
|
H A D | ohci-mem.c | 3 * OHCI HCD (Host Controller Driver) for USB. 15 * - data used only by the HCD ... kmalloc is fine 16 * - async and periodic schedules, shared by HC and HCD ... these 18 * - driver buffers, read/written by HC ... the hcd glue or the 22 * No memory seen by this driver (or any HCD) may be paged out. 94 struct usb_hcd *hcd = ohci_to_hcd(hc); in td_alloc() local 96 if (hcd->localmem_pool) in td_alloc() 97 td = gen_pool_dma_zalloc_align(hcd->localmem_pool, in td_alloc() 114 struct usb_hcd *hcd = ohci_to_hcd(hc); in td_free() local 123 if (hcd->localmem_pool) in td_free() [all …]
|
H A D | xhci-hub.c | 279 static void xhci_usb2_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, in xhci_usb2_hub_descriptor() argument 334 static void xhci_usb3_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, in xhci_usb3_hub_descriptor() argument 367 static void xhci_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci, in xhci_hub_descriptor() argument 371 if (hcd->speed >= HCD_USB3) in xhci_hub_descriptor() 372 xhci_usb3_hub_descriptor(hcd, xhci, desc); in xhci_hub_descriptor() 374 xhci_usb2_hub_descriptor(hcd, xhci, desc); in xhci_hub_descriptor() 552 struct usb_hcd *hcd; in xhci_disable_port() local 555 hcd = port->rhub->hcd; in xhci_disable_port() 558 if (hcd->speed >= HCD_USB3) { in xhci_disable_port() 577 hcd->self.busnum, port->hcd_portnum + 1, portsc); in xhci_disable_port() [all …]
|
H A D | xen-hcd.c | 3 * xen-hcd.c 14 #include <linux/usb/hcd.h> 100 static inline struct xenhcd_info *xenhcd_hcd_to_info(struct usb_hcd *hcd) in xenhcd_hcd_to_info() argument 102 return (struct xenhcd_info *)hcd->hcd_priv; in xenhcd_hcd_to_info() 114 pr_alert("xen-hcd: protocol error: %s!\n", msg); in xenhcd_set_error() 312 static int xenhcd_bus_suspend(struct usb_hcd *hcd) in xenhcd_bus_suspend() argument 314 struct xenhcd_info *info = xenhcd_hcd_to_info(hcd); in xenhcd_bus_suspend() 321 if (!test_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags)) { in xenhcd_bus_suspend() 335 static int xenhcd_bus_resume(struct usb_hcd *hcd) in xenhcd_bus_resume() argument 337 struct xenhcd_info *info = xenhcd_hcd_to_info(hcd); in xenhcd_bus_resume() [all …]
|
H A D | sl811-hcd.c | 3 * SL811HS HCD (Host Controller Driver) for USB. 48 #include <linux/usb/hcd.h> 65 MODULE_ALIAS("platform:sl811-hcd"); 75 static const char hcd_name[] = "sl811-hcd"; 81 struct usb_hcd *hcd = sl811_to_hcd(sl811); in port_power() local 93 hcd->state = HC_STATE_HALT; in port_power() 101 dev_dbg(hcd->self.controller, "power %s\n", in port_power() 103 sl811->board->port_power(hcd->self.controller, is_on); in port_power() 108 sl811->board->reset(hcd->self.controller); in port_power() 124 /* This is a PIO-only HCD. Queueing appends URBs to the endpoint's queue, [all …]
|
/linux/drivers/staging/greybus/ |
H A D | usb.c | 12 #include <linux/usb/hcd.h> 38 static inline struct gb_usb_device *to_gb_usb_device(struct usb_hcd *hcd) in to_gb_usb_device() argument 40 return (struct gb_usb_device *)hcd->hcd_priv; in to_gb_usb_device() 48 static void hcd_stop(struct usb_hcd *hcd) in hcd_stop() argument 50 struct gb_usb_device *dev = to_gb_usb_device(hcd); in hcd_stop() 56 dev_err(&dev->gbphy_dev->dev, "HCD stop failed '%d'\n", ret); in hcd_stop() 59 static int hcd_start(struct usb_hcd *hcd) in hcd_start() argument 61 struct usb_bus *bus = hcd_to_bus(hcd); in hcd_start() 62 struct gb_usb_device *dev = to_gb_usb_device(hcd); in hcd_start() 68 dev_err(&dev->gbphy_dev->dev, "HCD start failed '%d'\n", ret); in hcd_start() [all …]
|
/linux/include/linux/usb/ |
H A D | hcd.h | 73 struct usb_bus self; /* hcd is-a bus */ 79 * hcd->driver->flags & HCD_MASK 119 #define HCD_HW_ACCESSIBLE(hcd) ((hcd)->flags & (1U << HCD_FLAG_HW_ACCESSIBLE)) argument 120 #define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH)) argument 121 #define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING)) argument 122 #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING)) argument 123 #define HCD_RH_RUNNING(hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING)) argument 124 #define HCD_DEAD(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD)) argument 125 #define HCD_DEFER_RH_REGISTER(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEFER_RH_REGISTER)) argument 132 #define HCD_INTF_AUTHORIZED(hcd) \ argument [all …]
|
/linux/drivers/usb/c67x00/ |
H A D | c67x00-hcd.c | 3 * c67x00-hcd.c: Cypress C67X00 USB Host Controller Driver 15 #include "c67x00-hcd.h" 47 static int c67x00_hub_status_data(struct usb_hcd *hcd, char *buf) in c67x00_hub_status_data() argument 49 struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd); in c67x00_hub_status_data() 66 static int c67x00_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue, in c67x00_hub_control() argument 69 struct c67x00_hcd *c67x00 = hcd_to_c67x00_hcd(hcd); in c67x00_hub_control() 239 struct usb_hcd *hcd = c67x00_hcd_to_hcd(c67x00); in c67x00_hcd_irq() local 250 if (unlikely(hcd->state == HC_STATE_HALT)) in c67x00_hcd_irq() 253 if (!HCD_HW_ACCESSIBLE(hcd)) in c67x00_hcd_irq() 266 static int c67x00_hcd_start(struct usb_hcd *hcd) in c67x00_hcd_start() argument [all …]
|
/linux/sound/soc/codecs/ |
H A D | hdmi-codec.c | 282 struct hdmi_codec_pdata hcd; member 448 bool has_capture = !hcp->hcd.no_i2s_capture; in hdmi_codec_startup() 449 bool has_playback = !hcp->hcd.no_i2s_playback; in hdmi_codec_startup() 462 if (hcp->hcd.ops->audio_startup) { in hdmi_codec_startup() 463 ret = hcp->hcd.ops->audio_startup(dai->dev->parent, hcp->hcd.data); in hdmi_codec_startup() 468 if (tx && hcp->hcd.ops->get_eld) { in hdmi_codec_startup() 469 ret = hcp->hcd.ops->get_eld(dai->dev->parent, hcp->hcd.data, in hdmi_codec_startup() 497 bool has_capture = !hcp->hcd.no_i2s_capture; in hdmi_codec_shutdown() 498 bool has_playback = !hcp->hcd.no_i2s_playback; in hdmi_codec_shutdown() 504 hcp->hcd.ops->audio_shutdown(dai->dev->parent, hcp->hcd.data); in hdmi_codec_shutdown() [all …]
|