Lines Matching +full:multi +full:- +full:tt
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. */
157 unsigned has_tt:1; /* Integrated TT in root hub */
226 return &hcd->self; in hcd_to_bus()
234 /*-------------------------------------------------------------------------*/
238 const char *description; /* "ehci-hcd" etc */
320 /* force handover of high-speed port to full-speed companion */
375 /* Returns the hardware-chosen device address */
383 struct usb_tt *tt, gfp_t mem_flags);
391 /* Returns the USB3 hub-encoded value for the U1/U2 timeout. */
410 return hcd->driver->flags & HCD_BH; in hcd_giveback_urb_in_bh()
416 return hcd->high_prio_bh.completing_ep == ep; in hcd_periodic_completion_in_progress()
421 return IS_ENABLED(CONFIG_HAS_DMA) && (hcd->driver->flags & HCD_DMA); in hcd_uses_dma()
492 /* pci-ish (pdev null is ok) buffer alloc/mapping support */
518 /* The D0/D1 toggle bits ... USE WITH CAUTION (they're almost hcd-internal) */
519 #define usb_gettoggle(dev, ep, out) (((dev)->toggle[out] >> (ep)) & 1)
520 #define usb_dotoggle(dev, ep, out) ((dev)->toggle[out] ^= (1 << (ep)))
522 ((dev)->toggle[out] = ((dev)->toggle[out] & ~(1 << (ep))) | \
525 /* -------------------------------------------------------------------------- */
536 /*-------------------------------------------------------------------------*/
559 int multi; /* true means one TT per port */ member
571 unsigned tt; member
594 /* class requests from the USB 2.0 hub spec, table 11-15 */
610 /*-------------------------------------------------------------------------*/
612 /* class requests from USB 3.1 hub spec, table 10-7 */
621 /* Trying not to use worst-case bit-stuffing
633 /* 4 full-speed bit times (est.) */
657 /*-------------------------------------------------------------------------*/
662 /*-------------------------------------------------------------------------*/
690 /*-------------------------------------------------------------------------*/
705 if (bus->monitored) in usbmon_urb_submit()
706 (*mon_ops->urb_submit)(bus, urb); in usbmon_urb_submit()
712 if (bus->monitored) in usbmon_urb_submit_error()
713 (*mon_ops->urb_submit_error)(bus, urb, error); in usbmon_urb_submit_error()
719 if (bus->monitored) in usbmon_urb_complete()
720 (*mon_ops->urb_complete)(bus, urb, status); in usbmon_urb_complete()
736 /*-------------------------------------------------------------------------*/
740 /* This rwsem is for use only by the hub driver and ehci-hcd.