Lines Matching +full:tpl +full:- +full:support
1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright (c) 2001-2002 by David Brownell
42 /*-------------------------------------------------------------------------*/
51 /*-------------------------------------------------------------------------*/
73 struct usb_bus self; /* hcd is-a bus */
79 * hcd->driver->flags & HCD_MASK
83 struct timer_list rh_timer; /* drives root-hub polling */
93 const struct hc_driver *driver; /* hw-specific hooks */
97 * other external phys should be software-transparent
119 #define HCD_HW_ACCESSIBLE(hcd) ((hcd)->flags & (1U << HCD_FLAG_HW_ACCESSIBLE))
120 #define HCD_POLL_RH(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_RH))
121 #define HCD_POLL_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_POLL_PENDING))
122 #define HCD_WAKEUP_PENDING(hcd) ((hcd)->flags & (1U << HCD_FLAG_WAKEUP_PENDING))
123 #define HCD_RH_RUNNING(hcd) ((hcd)->flags & (1U << HCD_FLAG_RH_RUNNING))
124 #define HCD_DEAD(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEAD))
125 #define HCD_DEFER_RH_REGISTER(hcd) ((hcd)->flags & (1U << HCD_FLAG_DEFER_RH_REGISTER))
133 ((hcd)->flags & (1U << HCD_FLAG_INTF_AUTHORIZED))
145 unsigned msix_enabled:1; /* driver has MSI-X enabled? */
155 * support the new root-hub polling mechanism. */
160 unsigned tpl_support:1; /* OTG & EH TPL support */
210 /* more shared queuing code would be good; it should support
226 return &hcd->self; in hcd_to_bus()
234 /*-------------------------------------------------------------------------*/
238 const char *description; /* "ehci-hcd" etc */
310 /* root hub support */
320 /* force handover of high-speed port to full-speed companion */
334 /* Change a group of bulk endpoints to support multiple stream IDs */
375 /* Set the hardware-chosen device address */
392 /* Returns the USB3 hub-encoded value for the U1/U2 timeout. */
411 return hcd->driver->flags & HCD_BH; in hcd_giveback_urb_in_bh()
417 return hcd->high_prio_bh.completing_ep == ep; in hcd_periodic_completion_in_progress()
422 return IS_ENABLED(CONFIG_HAS_DMA) && (hcd->driver->flags & HCD_DMA); in hcd_uses_dma()
496 if (driver->flags & (HCD_USB11 | HCD_USB3)) in usb_hcd_amd_resume_bug()
510 /* pci-ish (pdev null is ok) buffer alloc/mapping support */
536 /* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */
537 #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1)
538 #define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep)))
540 ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \
543 /* -------------------------------------------------------------------------- */
554 /*-------------------------------------------------------------------------*/
557 * HCD Root Hub support
612 /* class requests from the USB 2.0 hub spec, table 11-15 */
628 /*-------------------------------------------------------------------------*/
630 /* class requests from USB 3.1 hub spec, table 10-7 */
635 * Generic bandwidth allocation constants/support
639 /* Trying not to use worst-case bit-stuffing
647 * Full/low speed bandwidth allocation constants/support.
651 /* 4 full-speed bit times (est.) */
675 /*-------------------------------------------------------------------------*/
680 /*-------------------------------------------------------------------------*/
708 /*-------------------------------------------------------------------------*/
723 if (bus->monitored) in usbmon_urb_submit()
724 (*mon_ops->urb_submit)(bus, urb); in usbmon_urb_submit()
730 if (bus->monitored) in usbmon_urb_submit_error()
731 (*mon_ops->urb_submit_error)(bus, urb, error); in usbmon_urb_submit_error()
737 if (bus->monitored) in usbmon_urb_complete()
738 (*mon_ops->urb_complete)(bus, urb, status); in usbmon_urb_complete()
754 /*-------------------------------------------------------------------------*/
758 /* This rwsem is for use only by the hub driver and ehci-hcd.