PDK API Guide for J721E
Udma_ChHandle Struct Reference

Detailed Description

UDMA channel object.

UDMA channel handle.

Note: This is an internal/private driver structure and should not be used or modified by caller.

Data Fields

uint32_t chType
 
Udma_ChPrms chPrms
 
Udma_DrvHandle drvHandle
 
uint32_t txChNum
 
uint32_t rxChNum
 
uint32_t extChNum
 
uint32_t pdmaChNum
 
uint32_t peerThreadId
 
Udma_RingHandle fqRing
 
Udma_RingHandle cqRing
 
Udma_RingHandle tdCqRing
 
struct Udma_RingObj fqRingObj
 
struct Udma_RingObj cqRingObj
 
struct Udma_RingObj tdCqRingObj
 
Udma_FlowHandle defaultFlow
 
struct Udma_FlowObj defaultFlowObj
 
Udma_ChTxPrms txPrms
 
Udma_ChRxPrms rxPrms
 
Udma_ChUtcPrms utcPrms
 
uint32_t chInitDone
 
uint32_t chOesAllocDone
 
uint32_t trigger
 

Field Documentation

◆ chType

uint32_t Udma_ChHandle::chType

UDMA channel type. Refer Udma_ChType.

◆ chPrms

Udma_ChPrms Udma_ChHandle::chPrms

Object to store the channel params.

◆ drvHandle

Udma_DrvHandle Udma_ChHandle::drvHandle

Pointer to global driver handle.

◆ txChNum

uint32_t Udma_ChHandle::txChNum

Allocated TX channel number - this is relative channel number from base TX channel. This is valid only when the channel is opened for TX and block copy mode

◆ rxChNum

uint32_t Udma_ChHandle::rxChNum

Allocated RX channel number - this is relative channel number from base RX channel. This is valid only when the channel is opened for RX and block copy mode

◆ extChNum

uint32_t Udma_ChHandle::extChNum

Allocated Ext channel number - this is relative channel number from base External channel. This is valid only when the channel is opened for UTC mode

◆ pdmaChNum

uint32_t Udma_ChHandle::pdmaChNum

Allocated peer PDMA channel number. This is valid only when the channel is opened for PDMA mode

◆ peerThreadId

uint32_t Udma_ChHandle::peerThreadId

Peer channel thread ID - this is or'ed with thread offset.

◆ fqRing

Udma_RingHandle Udma_ChHandle::fqRing

Free queue ring handle

◆ cqRing

Udma_RingHandle Udma_ChHandle::cqRing

Completion queue ring handle For AM64x kind of devices, where there is no seperate Completion queue, this points to fqRing itself.

◆ tdCqRing

Udma_RingHandle Udma_ChHandle::tdCqRing

Teardown completion queue ring handle

◆ fqRingObj

struct Udma_RingObj Udma_ChHandle::fqRingObj

Free queue ring object

◆ cqRingObj

struct Udma_RingObj Udma_ChHandle::cqRingObj

Completion queue ring object Not used for AM64x kind of devices, where there is no seperate Completion queue.

◆ tdCqRingObj

struct Udma_RingObj Udma_ChHandle::tdCqRingObj

Teardown completion queue ring object Not used for AM64x kind of devices, where teardown function is not present.

◆ defaultFlow

Udma_FlowHandle Udma_ChHandle::defaultFlow

Default flow handle

◆ defaultFlowObj

struct Udma_FlowObj Udma_ChHandle::defaultFlowObj

Default flow object - Flow ID equal to the RX channel is reserved as the default flow for the channel. This object is used for providing handle to the caller to re-program the default flow using the standard flow API's

◆ txPrms

Udma_ChTxPrms Udma_ChHandle::txPrms

TX channel parameter passed during channel config.

◆ rxPrms

Udma_ChRxPrms Udma_ChHandle::rxPrms

RX channel parameter passed during channel config.

◆ utcPrms

Udma_ChUtcPrms Udma_ChHandle::utcPrms

UTC channel parameter passed during channel config.

◆ chInitDone

uint32_t Udma_ChHandle::chInitDone

Flag to set the channel object is init.

◆ chOesAllocDone

uint32_t Udma_ChHandle::chOesAllocDone

Flag to check if the channel's OES is allocated. This is required because the channel OES is used for chaining as well as for TR event registeration. This allows to check for error when both are requested by user on the same channel

◆ trigger

uint32_t Udma_ChHandle::trigger

Channel trigger used when chaining channels - needed at the time of breaking the chaining