Lines Matching +full:async +full:- +full:enum
1 /* SPDX-License-Identifier: GPL-2.0 */
5 #include <linux/usb/ehci-dbgp.h>
14 * To facilitate the strongest possible byte-order checking from "sparse"
33 /* fotg210_hcd->lock guards shared data against other CPUs:
34 * fotg210_hcd: async, unlink, periodic (and shadow), ...
49 enum fotg210_rh_state {
59 * ehci-timer.c) in parallel with this list.
61 enum fotg210_hrtimer_event {
62 FOTG210_HRTIMER_POLL_ASS, /* Poll for async schedule off */
67 FOTG210_HRTIMER_ASYNC_UNLINKS, /* Unlink empty async QHs */
70 FOTG210_HRTIMER_DISABLE_ASYNC, /* Wait to disable async sched */
78 enum fotg210_hrtimer_event next_hrtimer_event;
94 enum fotg210_rh_state rh_state;
104 /* async schedule support */
105 struct fotg210_qh *async; member
111 unsigned async_count; /* async activity count */
152 /* which ports have the change-suspend feature turned on */
161 /* per-HC memory pools (could be per-bus, but ...) */
193 return (struct fotg210_hcd *)(hcd->hcd_priv); in hcd_to_fotg210()
200 /*-------------------------------------------------------------------------*/
208 * some hosts treat caplength and hciversion as parts of a 32-bit
217 u32 hcs_params; /* HCSPARAMS - offset 0x4 */
220 u32 hcc_params; /* HCCPARAMS - offset 0x8 */
221 #define HCC_CANPARK(p) ((p)&(1 << 2)) /* true: can park on async qh */
223 u8 portroute[8]; /* nibbles for routing - offset 0xC */
235 #define CMD_PARK (1<<11) /* enable "park" on async qh */
237 #define CMD_IAAD (1<<6) /* "doorbell" interrupt async advance */
238 #define CMD_ASE (1<<5) /* async schedule enable */
246 #define STS_ASS (1<<15) /* Async Schedule Status */
252 #define STS_IAA (1<<5) /* Interrupted on async advance */
269 u32 async_next; /* address of next async queue head */
306 /*-------------------------------------------------------------------------*/
313 * See Fig 3-6 "Queue Element Transfer Descriptor Block Diagram".
344 /* the rest is HCD-private */
351 /* mask NakCnt+T in qh->hw_alt_next */
356 /*-------------------------------------------------------------------------*/
358 /* type tag from {qh,itd,fstn}->hw_next */
365 * can be used on one system with SoC EHCI controller using big-endian
366 * descriptors as well as a normal little-endian PCI EHCI controller.
374 /* next async queue entry, or pointer to interrupt/periodic QH */
378 /* for periodic/async schedules and qtd lists, mark end of list */
388 * For entries in the async schedule, the type tag always says "qh".
398 /*-------------------------------------------------------------------------*/
403 * See Fig 3-7 "Queue Head Structure Layout".
405 * These appear in both the async and (for interrupt) periodic schedules.
413 #define QH_HEAD (1 << 15) /* Head of async reclamation list */
425 __hc32 hw_current; /* qtd list - see EHCI 3.6.4 */
437 /* the rest is HCD-private */
469 unsigned clearing_tt:1; /* Clear-TT-Buf in progress */
472 /*-------------------------------------------------------------------------*/
477 u64 bufp; /* itd->hw_bufp{,_hi}[pg] |= */
478 __hc32 transaction; /* itd->hw_transaction[i] |= */
486 * beginning at stream->next_uframe
495 * fotg210_iso_stream - groups all (s)itds for this endpoint.
514 * trusting urb->interval == f(epdesc->bInterval) and
533 /*-------------------------------------------------------------------------*/
537 * Fig 3-4 "Isochronous Transaction Descriptor (iTD)"
548 #define FOTG210_ISOC_XACTERR (1<<28) /* XactErr - transaction error */
557 /* the rest is HCD-private */
568 unsigned index[8]; /* in urb->iso_frame_desc */
571 /*-------------------------------------------------------------------------*/
586 /* the rest is HCD-private */
591 /*-------------------------------------------------------------------------*/
601 /*-------------------------------------------------------------------------*/
605 * root hub. This is a non-standard feature. Each controller will need
613 return (readl(&fotg210->regs->otgcsr) in fotg210_get_speed()
632 /*-------------------------------------------------------------------------*/
638 * little-endian format, a minority (celleb companion chip) implement
680 /*-------------------------------------------------------------------------*/
684 return fotg210_readl(fotg210, &fotg210->regs->frame_index); in fotg210_read_frame_index()
687 /*-------------------------------------------------------------------------*/