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 ...) */
195 return (struct fotg210_hcd *)(hcd->hcd_priv); in hcd_to_fotg210()
202 /*-------------------------------------------------------------------------*/
210 * some hosts treat caplength and hciversion as parts of a 32-bit
219 u32 hcs_params; /* HCSPARAMS - offset 0x4 */
222 u32 hcc_params; /* HCCPARAMS - offset 0x8 */
223 #define HCC_CANPARK(p) ((p)&(1 << 2)) /* true: can park on async qh */
225 u8 portroute[8]; /* nibbles for routing - offset 0xC */
237 #define CMD_PARK (1<<11) /* enable "park" on async qh */
239 #define CMD_IAAD (1<<6) /* "doorbell" interrupt async advance */
240 #define CMD_ASE (1<<5) /* async schedule enable */
248 #define STS_ASS (1<<15) /* Async Schedule Status */
254 #define STS_IAA (1<<5) /* Interrupted on async advance */
271 u32 async_next; /* address of next async queue head */
308 /*-------------------------------------------------------------------------*/
315 * See Fig 3-6 "Queue Element Transfer Descriptor Block Diagram".
346 /* the rest is HCD-private */
353 /* mask NakCnt+T in qh->hw_alt_next */
358 /*-------------------------------------------------------------------------*/
360 /* type tag from {qh,itd,fstn}->hw_next */
367 * can be used on one system with SoC EHCI controller using big-endian
368 * descriptors as well as a normal little-endian PCI EHCI controller.
376 /* next async queue entry, or pointer to interrupt/periodic QH */
380 /* for periodic/async schedules and qtd lists, mark end of list */
390 * For entries in the async schedule, the type tag always says "qh".
400 /*-------------------------------------------------------------------------*/
405 * See Fig 3-7 "Queue Head Structure Layout".
407 * These appear in both the async and (for interrupt) periodic schedules.
415 #define QH_HEAD (1 << 15) /* Head of async reclamation list */
427 __hc32 hw_current; /* qtd list - see EHCI 3.6.4 */
439 /* the rest is HCD-private */
471 unsigned clearing_tt:1; /* Clear-TT-Buf in progress */
474 /*-------------------------------------------------------------------------*/
479 u64 bufp; /* itd->hw_bufp{,_hi}[pg] |= */
480 __hc32 transaction; /* itd->hw_transaction[i] |= */
488 * beginning at stream->next_uframe
497 * fotg210_iso_stream - groups all (s)itds for this endpoint.
516 * trusting urb->interval == f(epdesc->bInterval) and
535 /*-------------------------------------------------------------------------*/
539 * Fig 3-4 "Isochronous Transaction Descriptor (iTD)"
550 #define FOTG210_ISOC_XACTERR (1<<28) /* XactErr - transaction error */
559 /* the rest is HCD-private */
570 unsigned index[8]; /* in urb->iso_frame_desc */
573 /*-------------------------------------------------------------------------*/
588 /* the rest is HCD-private */
593 /*-------------------------------------------------------------------------*/
603 /*-------------------------------------------------------------------------*/
607 * root hub. This is a non-standard feature. Each controller will need
615 return (readl(&fotg210->regs->otgcsr) in fotg210_get_speed()
634 /*-------------------------------------------------------------------------*/
640 * little-endian format, a minority (celleb companion chip) implement
682 /*-------------------------------------------------------------------------*/
686 return fotg210_readl(fotg210, &fotg210->regs->frame_index); in fotg210_read_frame_index()
689 /*-------------------------------------------------------------------------*/