FreeBSD kernel usb device Code
|
Go to the source code of this file.
Data Structures | |
struct | ehci_itd |
struct | ehci_sitd |
struct | ehci_qtd |
struct | ehci_qh_sub |
struct | ehci_qh |
struct | ehci_fstn |
struct | ehci_hw_softc |
struct | ehci_config_desc |
union | ehci_hub_desc |
struct | ehci_softc |
Macros | |
#define | EHCI_MAX_DEVICES MIN(USB_MAX_DEVICES, 128) |
#define | EHCI_FRAMELIST_ALIGN 0x1000 /* bytes */ |
#define | EHCI_FRAMELIST_COUNT 1024 /* units */ |
#define | EHCI_VIRTUAL_FRAMELIST_COUNT 128 /* units */ |
#define | EHCI_LINK_TERMINATE 0x00000001 |
#define | EHCI_LINK_TYPE(x) ((x) & 0x00000006) |
#define | EHCI_LINK_ITD 0x0 |
#define | EHCI_LINK_QH 0x2 |
#define | EHCI_LINK_SITD 0x4 |
#define | EHCI_LINK_FSTN 0x6 |
#define | EHCI_LINK_ADDR(x) ((x) &~ 0x1f) |
#define | EHCI_ITD_ALIGN 128 |
#define | EHCI_SITD_ALIGN 64 |
#define | EHCI_QTD_ALIGN 64 |
#define | EHCI_QH_ALIGN 128 |
#define | EHCI_FSTN_ALIGN 32 |
#define | EHCI_PAGE_SIZE 0x1000 |
#define | EHCI_ITD_SET_LEN(x) ((x) << 16) |
#define | EHCI_ITD_GET_LEN(x) (((x) >> 16) & 0xFFF) |
#define | EHCI_ITD_IOC (1 << 15) |
#define | EHCI_ITD_SET_PG(x) ((x) << 12) |
#define | EHCI_ITD_GET_PG(x) (((x) >> 12) & 0x7) |
#define | EHCI_ITD_SET_OFFS(x) (x) |
#define | EHCI_ITD_GET_OFFS(x) (((x) >> 0) & 0xFFF) |
#define | EHCI_ITD_ACTIVE (1U << 31) |
#define | EHCI_ITD_DATABUFERR (1 << 30) |
#define | EHCI_ITD_BABBLE (1 << 29) |
#define | EHCI_ITD_XACTERR (1 << 28) |
#define | EHCI_ITD_SET_ADDR(x) (x) |
#define | EHCI_ITD_GET_ADDR(x) (((x) >> 0) & 0x7F) |
#define | EHCI_ITD_SET_ENDPT(x) ((x) << 8) |
#define | EHCI_ITD_GET_ENDPT(x) (((x) >> 8) & 0xF) |
#define | EHCI_ITD_SET_DIR_IN (1 << 11) |
#define | EHCI_ITD_SET_DIR_OUT (0 << 11) |
#define | EHCI_ITD_SET_MPL(x) (x) |
#define | EHCI_ITD_GET_MPL(x) (((x) >> 0) & 0x7FF) |
#define | EHCI_SITD_SET_DIR_OUT (0 << 31) |
#define | EHCI_SITD_SET_DIR_IN (1U << 31) |
#define | EHCI_SITD_SET_ADDR(x) (x) |
#define | EHCI_SITD_GET_ADDR(x) ((x) & 0x7F) |
#define | EHCI_SITD_SET_ENDPT(x) ((x) << 8) |
#define | EHCI_SITD_GET_ENDPT(x) (((x) >> 8) & 0xF) |
#define | EHCI_SITD_GET_DIR(x) ((x) >> 31) |
#define | EHCI_SITD_SET_PORT(x) ((x) << 24) |
#define | EHCI_SITD_GET_PORT(x) (((x) >> 24) & 0x7F) |
#define | EHCI_SITD_SET_HUBA(x) ((x) << 16) |
#define | EHCI_SITD_GET_HUBA(x) (((x) >> 16) & 0x7F) |
#define | EHCI_SITD_SET_SMASK(x) (x) |
#define | EHCI_SITD_SET_CMASK(x) ((x) << 8) |
#define | EHCI_SITD_COMPLETE_SPLIT (1<<1) |
#define | EHCI_SITD_START_SPLIT (0<<1) |
#define | EHCI_SITD_MISSED_MICRO_FRAME (1<<2) |
#define | EHCI_SITD_XACTERR (1<<3) |
#define | EHCI_SITD_BABBLE (1<<4) |
#define | EHCI_SITD_DATABUFERR (1<<5) |
#define | EHCI_SITD_ERROR (1<<6) |
#define | EHCI_SITD_ACTIVE (1<<7) |
#define | EHCI_SITD_IOC (1<<31) |
#define | EHCI_SITD_SET_LEN(len) ((len)<<16) |
#define | EHCI_SITD_GET_LEN(x) (((x)>>16) & 0x3FF) |
#define | EHCI_QTD_GET_STATUS(x) (((x) >> 0) & 0xff) |
#define | EHCI_QTD_SET_STATUS(x) ((x) << 0) |
#define | EHCI_QTD_ACTIVE 0x80 |
#define | EHCI_QTD_HALTED 0x40 |
#define | EHCI_QTD_BUFERR 0x20 |
#define | EHCI_QTD_BABBLE 0x10 |
#define | EHCI_QTD_XACTERR 0x08 |
#define | EHCI_QTD_MISSEDMICRO 0x04 |
#define | EHCI_QTD_SPLITXSTATE 0x02 |
#define | EHCI_QTD_PINGSTATE 0x01 |
#define | EHCI_QTD_STATERRS 0x74 |
#define | EHCI_QTD_GET_PID(x) (((x) >> 8) & 0x3) |
#define | EHCI_QTD_SET_PID(x) ((x) << 8) |
#define | EHCI_QTD_PID_OUT 0x0 |
#define | EHCI_QTD_PID_IN 0x1 |
#define | EHCI_QTD_PID_SETUP 0x2 |
#define | EHCI_QTD_GET_CERR(x) (((x) >> 10) & 0x3) |
#define | EHCI_QTD_SET_CERR(x) ((x) << 10) |
#define | EHCI_QTD_GET_C_PAGE(x) (((x) >> 12) & 0x7) |
#define | EHCI_QTD_SET_C_PAGE(x) ((x) << 12) |
#define | EHCI_QTD_GET_IOC(x) (((x) >> 15) & 0x1) |
#define | EHCI_QTD_IOC 0x00008000 |
#define | EHCI_QTD_GET_BYTES(x) (((x) >> 16) & 0x7fff) |
#define | EHCI_QTD_SET_BYTES(x) ((x) << 16) |
#define | EHCI_QTD_GET_TOGGLE(x) (((x) >> 31) & 0x1) |
#define | EHCI_QTD_SET_TOGGLE(x) ((x) << 31) |
#define | EHCI_QTD_TOGGLE_MASK 0x80000000 |
#define | EHCI_QTD_NBUFFERS 5 |
#define | EHCI_QTD_PAYLOAD_MAX ((EHCI_QTD_NBUFFERS-1)*EHCI_PAGE_SIZE) |
#define | EHCI_QH_GET_ADDR(x) (((x) >> 0) & 0x7f) /* endpoint addr */ |
#define | EHCI_QH_SET_ADDR(x) (x) |
#define | EHCI_QH_ADDRMASK 0x0000007f |
#define | EHCI_QH_GET_INACT(x) (((x) >> 7) & 0x01) /* inactivate on next */ |
#define | EHCI_QH_INACT 0x00000080 |
#define | EHCI_QH_GET_ENDPT(x) (((x) >> 8) & 0x0f) /* endpoint no */ |
#define | EHCI_QH_SET_ENDPT(x) ((x) << 8) |
#define | EHCI_QH_GET_EPS(x) (((x) >> 12) & 0x03) /* endpoint speed */ |
#define | EHCI_QH_SET_EPS(x) ((x) << 12) |
#define | EHCI_QH_SPEED_FULL 0x0 |
#define | EHCI_QH_SPEED_LOW 0x1 |
#define | EHCI_QH_SPEED_HIGH 0x2 |
#define | EHCI_QH_GET_DTC(x) (((x) >> 14) & 0x01) /* data toggle control */ |
#define | EHCI_QH_DTC 0x00004000 |
#define | EHCI_QH_GET_HRECL(x) (((x) >> 15) & 0x01) /* head of reclamation */ |
#define | EHCI_QH_HRECL 0x00008000 |
#define | EHCI_QH_GET_MPL(x) (((x) >> 16) & 0x7ff) /* max packet len */ |
#define | EHCI_QH_SET_MPL(x) ((x) << 16) |
#define | EHCI_QH_MPLMASK 0x07ff0000 |
#define | EHCI_QH_GET_CTL(x) (((x) >> 27) & 0x01) /* control endpoint */ |
#define | EHCI_QH_CTL 0x08000000 |
#define | EHCI_QH_GET_NRL(x) (((x) >> 28) & 0x0f) /* NAK reload */ |
#define | EHCI_QH_SET_NRL(x) ((x) << 28) |
#define | EHCI_QH_GET_SMASK(x) (((x) >> 0) & 0xff) /* intr sched mask */ |
#define | EHCI_QH_SET_SMASK(x) ((x) << 0) |
#define | EHCI_QH_GET_CMASK(x) (((x) >> 8) & 0xff) /* split completion mask */ |
#define | EHCI_QH_SET_CMASK(x) ((x) << 8) |
#define | EHCI_QH_GET_HUBA(x) (((x) >> 16) & 0x7f) /* hub address */ |
#define | EHCI_QH_SET_HUBA(x) ((x) << 16) |
#define | EHCI_QH_GET_PORT(x) (((x) >> 23) & 0x7f) /* hub port */ |
#define | EHCI_QH_SET_PORT(x) ((x) << 23) |
#define | EHCI_QH_GET_MULT(x) (((x) >> 30) & 0x03) /* pipe multiplier */ |
#define | EHCI_QH_SET_MULT(x) ((x) << 30) |
#define | EHCI_SCFLG_NORESTERM 0x0004 /* don't terminate reset sequence */ |
#define | EHCI_SCFLG_BIGEDESC 0x0008 /* big-endian byte order descriptors */ |
#define | EHCI_SCFLG_TT 0x0020 /* transaction translator present */ |
#define | EHCI_SCFLG_LOSTINTRBUG 0x0040 /* workaround for VIA / ATI chipsets */ |
#define | EHCI_SCFLG_IAADBUG 0x0080 /* workaround for nVidia chipsets */ |
#define | EHCI_SCFLG_DONTRESET 0x0100 /* don't reset ctrl. in ehci_init() */ |
#define | EHCI_SCFLG_DONEINIT 0x1000 /* ehci_init() has been called. */ |
#define | EREAD1(sc, a) bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define | EREAD2(sc, a) bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define | EREAD4(sc, a) bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define | EWRITE1(sc, a, x) bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
#define | EWRITE2(sc, a, x) bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
#define | EWRITE4(sc, a, x) bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
#define | EOREAD1(sc, a) bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define | EOREAD2(sc, a) bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define | EOREAD4(sc, a) bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define | EOWRITE1(sc, a, x) bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
#define | EOWRITE2(sc, a, x) bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
#define | EOWRITE4(sc, a, x) bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
Typedefs | |
typedef struct ehci_itd | ehci_itd_t |
typedef struct ehci_sitd | ehci_sitd_t |
typedef struct ehci_qtd | ehci_qtd_t |
typedef struct ehci_qh | ehci_qh_t |
typedef struct ehci_fstn | ehci_fstn_t |
typedef struct ehci_softc | ehci_softc_t |
Functions | |
struct ehci_itd | __aligned (EHCI_ITD_ALIGN) |
struct ehci_sitd | __aligned (EHCI_SITD_ALIGN) |
struct ehci_qtd | __aligned (EHCI_QTD_ALIGN) |
struct ehci_qh_sub | __aligned (4) |
struct ehci_qh | __aligned (EHCI_QH_ALIGN) |
struct ehci_fstn | __aligned (EHCI_FSTN_ALIGN) |
static __inline uint32_t | htohc32 (const struct ehci_softc *sc, const uint32_t v) |
static __inline uint16_t | htohc16 (const struct ehci_softc *sc, const uint16_t v) |
static __inline uint32_t | hc32toh (const struct ehci_softc *sc, const uint32_t v) |
static __inline uint16_t | hc16toh (const struct ehci_softc *sc, const uint16_t v) |
usb_error_t | ehci_reset (ehci_softc_t *sc) |
usb_error_t | ehci_init (ehci_softc_t *sc) |
void | ehci_detach (struct ehci_softc *sc) |
void | ehci_interrupt (ehci_softc_t *sc) |
uint16_t | ehci_get_port_speed_portsc (struct ehci_softc *sc, uint16_t index) |
uint16_t | ehci_get_port_speed_hostc (struct ehci_softc *sc, uint16_t index) |
Variables | |
volatile uint32_t | itd_next |
volatile uint32_t | itd_status [8] |
volatile uint32_t | itd_bp [7] |
volatile uint32_t | itd_bp_hi [7] |
uint32_t | itd_self |
struct ehci_itd * | next |
struct ehci_itd * | prev |
struct ehci_itd * | obj_next |
struct usb_page_cache * | page_cache |
volatile uint32_t | sitd_next |
volatile uint32_t | sitd_portaddr |
volatile uint32_t | sitd_mask |
volatile uint32_t | sitd_status |
volatile uint32_t | sitd_bp [2] |
volatile uint32_t | sitd_back |
volatile uint32_t | sitd_bp_hi [2] |
uint32_t | sitd_self |
volatile uint32_t | qtd_next |
volatile uint32_t | qtd_altnext |
volatile uint32_t | qtd_status |
volatile uint32_t | qtd_buffer [EHCI_QTD_NBUFFERS] |
volatile uint32_t | qtd_buffer_hi [EHCI_QTD_NBUFFERS] |
struct ehci_qtd * | alt_next |
uint32_t | qtd_self |
uint16_t | len |
volatile uint32_t | qh_link |
volatile uint32_t | qh_endp |
volatile uint32_t | qh_endphub |
volatile uint32_t | qh_curqtd |
struct ehci_qh_sub | qh_qtd |
uint32_t | qh_self |
volatile uint32_t | fstn_link |
volatile uint32_t | fstn_back |
struct ehci_hw_softc | __aligned |
struct ehci_config_desc | __packed |
usb_bus_mem_cb_t | ehci_iterate_hw_softc |
#define EHCI_MAX_DEVICES MIN(USB_MAX_DEVICES, 128) |
#define EHCI_QH_GET_CMASK | ( | x | ) | (((x) >> 8) & 0xff) /* split completion mask */ |
#define EHCI_QH_GET_CTL | ( | x | ) | (((x) >> 27) & 0x01) /* control endpoint */ |
#define EHCI_QH_GET_DTC | ( | x | ) | (((x) >> 14) & 0x01) /* data toggle control */ |
#define EHCI_QH_GET_ENDPT | ( | x | ) | (((x) >> 8) & 0x0f) /* endpoint no */ |
#define EHCI_QH_GET_EPS | ( | x | ) | (((x) >> 12) & 0x03) /* endpoint speed */ |
#define EHCI_QH_GET_HRECL | ( | x | ) | (((x) >> 15) & 0x01) /* head of reclamation */ |
#define EHCI_QH_GET_HUBA | ( | x | ) | (((x) >> 16) & 0x7f) /* hub address */ |
#define EHCI_QH_GET_INACT | ( | x | ) | (((x) >> 7) & 0x01) /* inactivate on next */ |
#define EHCI_QH_GET_MPL | ( | x | ) | (((x) >> 16) & 0x7ff) /* max packet len */ |
#define EHCI_QH_GET_MULT | ( | x | ) | (((x) >> 30) & 0x03) /* pipe multiplier */ |
#define EHCI_QH_GET_NRL | ( | x | ) | (((x) >> 28) & 0x0f) /* NAK reload */ |
#define EHCI_QH_GET_PORT | ( | x | ) | (((x) >> 23) & 0x7f) /* hub port */ |
#define EHCI_QH_GET_SMASK | ( | x | ) | (((x) >> 0) & 0xff) /* intr sched mask */ |
#define EHCI_QTD_PAYLOAD_MAX ((EHCI_QTD_NBUFFERS-1)*EHCI_PAGE_SIZE) |
#define EHCI_SCFLG_BIGEDESC 0x0008 /* big-endian byte order descriptors */ |
#define EHCI_SCFLG_DONEINIT 0x1000 /* ehci_init() has been called. */ |
#define EHCI_SCFLG_DONTRESET 0x0100 /* don't reset ctrl. in ehci_init() */ |
#define EHCI_SCFLG_IAADBUG 0x0080 /* workaround for nVidia chipsets */ |
#define EHCI_SCFLG_LOSTINTRBUG 0x0040 /* workaround for VIA / ATI chipsets */ |
#define EHCI_SCFLG_NORESTERM 0x0004 /* don't terminate reset sequence */ |
#define EHCI_SCFLG_TT 0x0020 /* transaction translator present */ |
#define EOREAD1 | ( | sc, | |
a | |||
) | bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define EOREAD2 | ( | sc, | |
a | |||
) | bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define EOREAD4 | ( | sc, | |
a | |||
) | bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a)) |
#define EOWRITE1 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
#define EOWRITE2 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
#define EOWRITE4 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (sc)->sc_offs+(a), (x)) |
#define EREAD1 | ( | sc, | |
a | |||
) | bus_space_read_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define EREAD2 | ( | sc, | |
a | |||
) | bus_space_read_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define EREAD4 | ( | sc, | |
a | |||
) | bus_space_read_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a)) |
#define EWRITE1 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_1((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
#define EWRITE2 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_2((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
#define EWRITE4 | ( | sc, | |
a, | |||
x | |||
) | bus_space_write_4((sc)->sc_io_tag, (sc)->sc_io_hdl, (a), (x)) |
typedef struct ehci_fstn ehci_fstn_t |
typedef struct ehci_itd ehci_itd_t |
typedef struct ehci_qtd ehci_qtd_t |
typedef struct ehci_sitd ehci_sitd_t |
typedef struct ehci_softc ehci_softc_t |
struct ehci_qh_sub __aligned | ( | 4 | ) |
struct ehci_fstn __aligned | ( | EHCI_FSTN_ALIGN | ) |
struct ehci_itd __aligned | ( | EHCI_ITD_ALIGN | ) |
struct ehci_qh __aligned | ( | EHCI_QH_ALIGN | ) |
struct ehci_qtd __aligned | ( | EHCI_QTD_ALIGN | ) |
struct ehci_sitd __aligned | ( | EHCI_SITD_ALIGN | ) |
void ehci_detach | ( | struct ehci_softc * | sc | ) |
Definition at line 553 of file ehci.c.
References DPRINTF, ehci_hcreset(), EHCI_USBINTR, EOWRITE4, ehci_softc::sc_bus, ehci_softc::sc_tmo_pcd, ehci_softc::sc_tmo_poll, USB_BUS_LOCK, USB_BUS_UNLOCK, usb_callout_drain, usb_callout_stop, and usb_pause_mtx().
Referenced by ehci_msm_detach(), ehci_pci_detach(), fsl_ehci_detach(), generic_ehci_detach(), imx_ehci_detach(), and mv_ehci_detach().
uint16_t ehci_get_port_speed_hostc | ( | struct ehci_softc * | sc, |
uint16_t | index | ||
) |
Definition at line 2970 of file ehci.c.
References EHCI_HOSTC, EHCI_HOSTC_PSPD_MASK, EHCI_HOSTC_PSPD_SHIFT, EHCI_PORT_SPEED_HIGH, EHCI_PORT_SPEED_LOW, EOREAD4, index, UPS_HIGH_SPEED, and UPS_LOW_SPEED.
uint16_t ehci_get_port_speed_portsc | ( | struct ehci_softc * | sc, |
uint16_t | index | ||
) |
Definition at line 2955 of file ehci.c.
References EHCI_PORT_SPEED_HIGH, EHCI_PORT_SPEED_LOW, EHCI_PORTSC, EHCI_PORTSC_PSPD_MASK, EHCI_PORTSC_PSPD_SHIFT, EOREAD4, index, UPS_HIGH_SPEED, and UPS_LOW_SPEED.
Referenced by imx_ehci_attach(), and mv_ehci_attach().
usb_error_t ehci_init | ( | ehci_softc_t * | sc | ) |
Definition at line 281 of file ehci.c.
References ehci_hw_softc::async_start_pc, usb_bus::bdev, usb_page_search::buffer, usb_bus::bus_mtx, DPRINTF, ehci_bus_methods, EHCI_CAPLEN_HCIVERSION, EHCI_CAPLENGTH, EHCI_CMD_FLS, ehci_do_poll(), EHCI_FRAMELIST_COUNT, EHCI_HCIVERSION, ehci_hcreset(), EHCI_HCS_N_PORTS, EHCI_HCSPARAMS, ehci_init_sub(), ehci_iterate_hw_softc(), EHCI_LINK_ITD, EHCI_LINK_QH, EHCI_LINK_SITD, EHCI_LINK_TERMINATE, EHCI_NORMAL_INTRS, EHCI_QH_HRECL, EHCI_QH_SET_EPS, EHCI_QH_SET_MULT, EHCI_QH_SPEED_HIGH, EHCI_QTD_HALTED, EHCI_SCFLG_DONTRESET, EHCI_SCFLG_IAADBUG, EHCI_SCFLG_LOSTINTRBUG, EHCI_USBCMD, EHCI_VIRTUAL_FRAMELIST_COUNT, EOREAD4, EREAD4, htohc32(), ehci_hw_softc::intr_start_pc, ehci_hw_softc::isoc_fs_start_pc, ehci_hw_softc::isoc_hs_start_pc, ehci_itd::itd_next, itd_self, ehci_itd::itd_self, usb_bus::methods, ehci_itd::page_cache, ehci_sitd::page_cache, ehci_qh::page_cache, ehci_hw_softc::pframes_pc, ehci_qh::qh_curqtd, ehci_qh::qh_endp, ehci_qh::qh_endphub, ehci_qh::qh_link, ehci_qh::qh_qtd, qh_self, ehci_qh::qh_self, ehci_qh_sub::qtd_altnext, ehci_qh_sub::qtd_next, ehci_qh_sub::qtd_status, ehci_softc::sc_async_p_last, ehci_softc::sc_bus, ehci_softc::sc_eintrs, ehci_softc::sc_flags, ehci_softc::sc_hw, ehci_softc::sc_intr_p_last, ehci_softc::sc_isoc_fs_p_last, ehci_softc::sc_isoc_hs_p_last, ehci_softc::sc_noport, ehci_softc::sc_offs, ehci_softc::sc_terminate_self, ehci_softc::sc_tmo_pcd, ehci_softc::sc_tmo_poll, ehci_sitd::sitd_back, ehci_sitd::sitd_next, ehci_sitd::sitd_self, ehci_hw_softc::terminate_pc, usb_bus_mem_flush_all(), usb_callout_init_mtx, USB_ERR_IOERROR, USB_REV_2_0, usbd_get_page(), and usb_bus::usbrev.
Referenced by ehci_msm_attach(), ehci_pci_attach(), fsl_ehci_attach(), generic_ehci_attach(), imx_ehci_attach(), and mv_ehci_attach().
void ehci_interrupt | ( | ehci_softc_t * | sc | ) |
Definition at line 1451 of file ehci.c.
References ehci_interrupt_poll(), ehci_pcd_enable(), ehci_poll_timeout(), ehci_root_intr(), EHCI_SCFLG_LOSTINTRBUG, EHCI_STS_ERRINT, EHCI_STS_HSE, EHCI_STS_IAA, EHCI_STS_INT, EHCI_STS_INTRS, EHCI_STS_PCD, EHCI_USBINTR, EHCI_USBSTS, EOREAD4, EOWRITE4, ehci_softc::sc_bus, ehci_softc::sc_eintrs, ehci_softc::sc_flags, ehci_softc::sc_tmo_pcd, ehci_softc::sc_tmo_poll, status, USB_BUS_LOCK, USB_BUS_UNLOCK, and usb_callout_reset.
Referenced by ehci_msm_attach(), ehci_pci_attach(), fsl_ehci_attach(), generic_ehci_attach(), imx_ehci_attach(), and mv_ehci_attach().
usb_error_t ehci_reset | ( | ehci_softc_t * | sc | ) |
Definition at line 184 of file ehci.c.
References usb_bus::bdev, EHCI_CMD_HCRESET, EHCI_USBCMD, EOREAD4, EOWRITE4, ehci_softc::sc_bus, ehci_softc::sc_vendor_post_reset, USB_ERR_IOERROR, and usb_pause_mtx().
Referenced by ehci_hcreset(), and fsl_ehci_attach().
|
static |
|
static |
Definition at line 433 of file ehci.h.
Referenced by ehci_check_transfer(), ehci_isoc_fs_done(), ehci_isoc_hs_done(), and ehci_non_isoc_done_sub().
|
static |
|
static |
Definition at line 421 of file ehci.h.
Referenced by ehci_check_transfer(), ehci_device_isoc_fs_enter(), ehci_device_isoc_fs_open(), ehci_device_isoc_hs_enter(), ehci_device_isoc_hs_open(), ehci_init(), ehci_setup_standard_chain(), ehci_setup_standard_chain_sub(), and ehci_xfer_setup().
struct r92s_tx_desc __aligned |
Referenced by dwc_otg_host_setup_tx(), dwc_otg_setup_rx(), rsu_join_bss(), udl_init_resolution(), and usie_hip_rsp().
struct ehci_config_desc __packed |
usb_bus_mem_cb_t ehci_iterate_hw_softc |
Definition at line 445 of file ehci.h.
Referenced by ehci_msm_attach(), ehci_msm_detach(), ehci_pci_attach(), ehci_pci_detach(), fsl_ehci_attach(), generic_ehci_attach(), generic_ehci_detach(), imx_ehci_attach(), imx_ehci_detach(), mv_ehci_attach(), and mv_ehci_detach().
uint32_t itd_self |
Definition at line 28 of file ehci.h.
Referenced by ehci_init().
uint16_t len |
Definition at line 41 of file ehci.h.
Referenced by acpi_uhub_parse_pld(), atmegadci_roothub_exec(), atmegadci_standard_done_sub(), avr32dci_roothub_exec(), avr32dci_standard_done_sub(), axe_rx_frame(), axe_rxeof(), axge_read_mem(), axge_rxeof(), axge_write_mem(), cdce_bulk_read_callback(), cp2112_get_report(), cp2112_set_report(), cp2112iic_intr_read_callback(), cp2112iic_send_req(), cp2112iic_transfer(), cue_bulk_read_callback(), cue_mem(), dwc_otg_roothub_exec(), dwc_otg_standard_done_sub(), ehci_isoc_fs_done(), ehci_isoc_hs_done(), ehci_non_isoc_done_sub(), ehci_roothub_exec(), get_pkt_len(), ipheth_bulk_read_callback(), kue_bulk_read_callback(), kue_ctl(), musbotg_roothub_exec(), musbotg_standard_done_sub(), ohci_isoc_done(), ohci_roothub_exec(), rsu_event_addba_req_report(), rsu_event_join_bss(), rsu_event_survey(), rsu_fw_cmd(), rsu_fw_loadsection(), rsu_read_region_1(), rsu_rx_event(), rsu_rx_multi_event(), rsu_rx_multi_frame(), rsu_rxeof(), rsu_write_region_1(), rue_read_mem(), rue_write_mem(), rum_bulk_read_callback(), rum_bulk_write_callback(), rum_cmd_sleepable(), rum_eeprom_read(), rum_read_multi(), rum_setup_tx_desc(), rum_write_multi(), run_read_region_1(), run_rx_frame(), run_set_region_4(), run_write_region_1(), u3g_sael_m460_init(), uath_cmd_write(), uath_cmdeof(), uath_config_multi(), ucom_get_data(), ucom_put_data(), ucycom_cfg_write(), ucycom_intr_read_callback(), udav_bulk_read_callback(), udav_csr_read(), udav_csr_write(), udl_cmd_insert_buf_le16(), udl_ctrl_msg(), udl_set_enc_key(), uep_intr_callback(), uether_rxbuf(), uether_rxmbuf(), ufoma_ctrl_read_callback(), ugold_intr_callback(), ugold_issue_cmd(), uhci_isoc_done(), uhci_non_isoc_done_sub(), uhci_roothub_exec(), uhid_get_report(), uhid_probe(), uhid_set_report(), uhso_mux_read_callback(), ukbd_get_state(), ukbd_intr_callback(), ukbd_parse_hid(), ukbd_set_leds_callback(), ulpt_attach(), umcs7840_get_reg_sync(), umcs7840_get_UART_reg_sync(), umct_cfg_do_request(), ums_hid_parse(), ums_intr_callback(), upgt_eeprom_parse_freq6(), upgt_tx_start(), ural_bulk_read_callback(), ural_bulk_write_callback(), ural_eeprom_read(), ural_read_multi(), ural_setup_tx_desc(), ural_write_multi(), ure_bulk_read_callback(), ure_bulk_write_callback(), ure_ctl(), ure_makembuf(), ure_read_mem(), ure_write_mem(), urndis_ctrl_query(), urndis_ctrl_send(), urndis_ctrl_set(), usb_hs_bandwidth_adjust(), usb_make_raw_desc(), usb_pc_buffer_is_aligned(), usb_strquirk(), usb_temp_get_desc(), usb_temp_sysctl(), usbd_copy_in(), usbd_copy_out(), usbd_do_request_proc(), usbd_frame_zero(), usbd_req_get_config_desc_full(), usbd_req_get_descriptor_ptr(), usbd_req_get_hub_descriptor(), usbd_req_get_report(), usbd_req_get_ss_hub_descriptor(), usbd_req_get_string_any(), usbd_req_set_report(), usbd_setup_ctrl_transfer(), usbd_xfer_frame_data(), usbd_xfer_set_frame_data(), usbd_xfer_set_frame_len(), usbhid_ctrl_callback(), usbhid_get_rdesc(), usbhid_intr_out_callback(), usbhid_set_report(), usbhid_write(), usbhid_xfer_check_len(), usie_hip_rsp(), usie_if_rx_callback(), uss820dci_roothub_exec(), uss820dci_standard_done_sub(), ustorage_fs_min_len(), ustorage_fs_mode_sense(), ustorage_fs_read(), ustorage_fs_write(), wmt_intr_callback(), wmt_process_report(), wsp_intr_callback(), xhci_generic_done_sub(), xhci_roothub_exec(), and zyd_rx_data().
struct ehci_qh * next |
Definition at line 29 of file ehci.h.
Referenced by _rsu_getbuf(), _uath_getbuf(), _upgt_getbuf(), _urtw_getbuf(), generic_ehci_fdt_attach(), generic_ehci_fdt_detach(), generic_ohci_attach(), generic_ohci_detach(), rsu_alloc_rx_list(), rsu_alloc_tx_list(), rsu_bulk_rx_callback(), rsu_bulk_tx_callback_sub(), rsu_freebuf(), rsu_fw_cmd(), rsu_fw_loadsection(), rsu_tx_start(), rum_bulk_write_callback(), rum_reset_tx_list(), rum_sendprot(), rum_setup_tx_list(), rum_tx_data(), rum_tx_free(), rum_tx_mgt(), rum_tx_raw(), run_bulk_tx_callbackN(), run_sendprot(), run_setup_tx_list(), run_tx(), run_tx_free(), run_tx_mgt(), run_tx_param(), uath_alloc_cmd_list(), uath_alloc_rx_data_list(), uath_alloc_tx_data_list(), uath_bulk_rx_callback(), uath_bulk_tx_callback(), uath_cmdsend(), uath_dataflush(), uath_get_cmdbuf(), uath_intr_rx_callback(), uath_intr_tx_callback(), uath_raw_xmit(), uath_start(), uath_tx_start(), uath_txfrag_cleanup(), uath_txfrag_setup(), upgt_alloc_rx(), upgt_alloc_tx(), upgt_bulk_rx_callback(), upgt_bulk_tx(), upgt_bulk_tx_callback(), upgt_gettxbuf(), upgt_raw_xmit(), upgt_set_led(), upgt_start(), ural_bulk_write_callback(), ural_sendprot(), ural_setup_tx_list(), ural_tx_bcn(), ural_tx_data(), ural_tx_free(), ural_tx_mgt(), ural_tx_raw(), urtw_alloc_rx_data_list(), urtw_alloc_tx_data_list(), urtw_bulk_rx_callback(), urtw_bulk_tx_callback(), urtw_raw_xmit(), urtw_start(), urtw_tx_start(), usb_trigger_reprobe_on_off(), zyd_bulk_write_callback(), zyd_setup_tx_list(), zyd_tx_free(), and zyd_tx_start().
struct usb_page_cache * page_cache |
volatile uint32_t qh_endp |
Definition at line 1 of file ehci.h.
Referenced by ehci_setup_standard_chain().
volatile uint32_t qh_endphub |
Definition at line 25 of file ehci.h.
Referenced by ehci_setup_standard_chain().
struct ehci_qh_sub qh_qtd |
uint32_t qh_self |
Definition at line 45 of file ehci.h.
Referenced by ehci_init().
volatile uint32_t qtd_altnext |
Definition at line 1 of file ehci.h.
Referenced by ehci_setup_standard_chain_sub().
volatile uint32_t sitd_mask |
Definition at line 13 of file ehci.h.
Referenced by ehci_device_isoc_fs_enter().
volatile uint32_t sitd_portaddr |
Definition at line 1 of file ehci.h.
Referenced by ehci_device_isoc_fs_open().