dwc_otg_hcd Struct Reference

This structure holds the state of the HCD, including the non-periodic and periodic schedules. More...

#include <dwc_otg_hcd.h>


Data Fields

dwc_otg_core_if_tcore_if
 DWC OTG Core Interface Layer.
dwc_otg_hcd_function_opsfops
 Function HCD driver callbacks.
dwc_otg_hcd::dwc_otg_hcd_internal_flags flags
 Internal DWC HCD Flags.
dwc_list_link_t non_periodic_sched_inactive
 Inactive items in the non-periodic schedule.
dwc_list_link_t non_periodic_sched_active
 Active items in the non-periodic schedule.
dwc_list_link_t * non_periodic_qh_ptr
 Pointer to the next Queue Head to process in the active non-periodic schedule.
dwc_list_link_t periodic_sched_inactive
 Inactive items in the periodic schedule.
dwc_list_link_t periodic_sched_ready
 List of periodic QHs that are ready for execution in the next frame, but have not yet been assigned to host channels.
dwc_list_link_t periodic_sched_assigned
 List of periodic QHs to be executed in the next frame that are assigned to host channels.
dwc_list_link_t periodic_sched_queued
 List of periodic QHs that have been queued for execution.
uint16_t periodic_usecs
 Total bandwidth claimed so far for periodic transfers.
uint16_t frame_number
 Frame number read from the core at SOF.
hc_list free_hc_list
 Free host channels in the controller.
int periodic_channels
 Number of host channels assigned to periodic transfers.
int non_periodic_channels
 Number of host channels assigned to non-periodic transfers.
dwc_hchc_ptr_array [MAX_EPS_CHANNELS]
 Array of pointers to the host channel descriptors.
uint8_t * status_buf
 Buffer to use for any data received during the status phase of a control transfer.
dma_addr_t status_buf_dma
 DMA address for status_buf.
dwc_timer_t * conn_timer
 Connection timer.
dwc_tasklet_t * reset_tasklet
dwc_spinlock_t * lock
void * priv
 Private data that could be used by OS wrapper.
uint8_t otg_port
uint32_t * frame_list
 Frame List.
dma_addr_t frame_list_dma
 Frame List DMA address.

Data Structures

union  dwc_otg_hcd_internal_flags
 Internal DWC HCD Flags. More...


Detailed Description

This structure holds the state of the HCD, including the non-periodic and periodic schedules.

Definition at line 372 of file dwc_otg_hcd.h.


Field Documentation

dwc_list_link_t dwc_otg_hcd::non_periodic_sched_inactive

Inactive items in the non-periodic schedule.

This is a list of Queue Heads. Transfers associated with these Queue Heads are not currently assigned to a host channel.

Definition at line 399 of file dwc_otg_hcd.h.

dwc_list_link_t dwc_otg_hcd::non_periodic_sched_active

Active items in the non-periodic schedule.

This is a list of Queue Heads. Transfers associated with these Queue Heads are currently assigned to a host channel.

Definition at line 406 of file dwc_otg_hcd.h.

dwc_list_link_t dwc_otg_hcd::periodic_sched_inactive

Inactive items in the periodic schedule.

This is a list of QHs for periodic transfers that are _not_ scheduled for the next frame. Each QH in the list has an interval counter that determines when it needs to be scheduled for execution. This scheduling mechanism allows only a simple calculation for periodic bandwidth used (i.e. must assume that all periodic transfers may need to execute in the same frame). However, it greatly simplifies scheduling and should be sufficient for the vast majority of OTG hosts, which need to connect to a small number of peripherals at one time.

Items move from this list to periodic_sched_ready when the QH interval counter is 0 at SOF.

Definition at line 428 of file dwc_otg_hcd.h.

dwc_list_link_t dwc_otg_hcd::periodic_sched_ready

List of periodic QHs that are ready for execution in the next frame, but have not yet been assigned to host channels.

Items move from this list to periodic_sched_assigned as host channels become available during the current frame.

Definition at line 437 of file dwc_otg_hcd.h.

dwc_list_link_t dwc_otg_hcd::periodic_sched_assigned

List of periodic QHs to be executed in the next frame that are assigned to host channels.

Items move from this list to periodic_sched_queued as the transactions for the QH are queued to the DWC_otg controller.

Definition at line 446 of file dwc_otg_hcd.h.

dwc_list_link_t dwc_otg_hcd::periodic_sched_queued

List of periodic QHs that have been queued for execution.

Items move from this list to either periodic_sched_inactive or periodic_sched_ready when the channel associated with the transfer is released. If the interval for the QH is 1, the item moves to periodic_sched_ready because it must be rescheduled for the next frame. Otherwise, the item moves to periodic_sched_inactive.

Definition at line 457 of file dwc_otg_hcd.h.

uint16_t dwc_otg_hcd::periodic_usecs

Total bandwidth claimed so far for periodic transfers.

This value is in microseconds per (micro)frame. The assumption is that all periodic transfers may occur in the same (micro)frame.

Definition at line 464 of file dwc_otg_hcd.h.

uint16_t dwc_otg_hcd::frame_number

Frame number read from the core at SOF.

The value ranges from 0 to DWC_HFNUM_MAX_FRNUM.

Definition at line 470 of file dwc_otg_hcd.h.

struct hc_list dwc_otg_hcd::free_hc_list

Free host channels in the controller.

This is a list of dwc_hc_t items.

Definition at line 476 of file dwc_otg_hcd.h.

int dwc_otg_hcd::periodic_channels

Number of host channels assigned to periodic transfers.

Currently assuming that there is a dedicated host channel for each periodic transaction and at least one host channel available for non-periodic transactions.

Definition at line 483 of file dwc_otg_hcd.h.

struct dwc_hc* dwc_otg_hcd::hc_ptr_array[MAX_EPS_CHANNELS]

Array of pointers to the host channel descriptors.

Allows accessing a host channel descriptor given the host channel number. This is useful in interrupt handlers.

Definition at line 495 of file dwc_otg_hcd.h.

uint8_t* dwc_otg_hcd::status_buf

Buffer to use for any data received during the status phase of a control transfer.

Normally no data is transferred during the status phase. This buffer is used as a bit bucket.

Definition at line 502 of file dwc_otg_hcd.h.

dwc_timer_t* dwc_otg_hcd::conn_timer

Connection timer.

An OTG host must display a message if the device does not connect. Started when the VBus power is turned on via sysfs attribute "buspower".

Definition at line 515 of file dwc_otg_hcd.h.


The documentation for this struct was generated from the following file:
Generated on Tue May 5 02:22:49 2009 for DesignWare USB 2.0 OTG Controller (DWC_otg) Device Driver by  doxygen 1.4.7