UDMA ring related parameters and API.
Go to the source code of this file.
Data Structures | |
struct | Udma_RingPrms |
UDMA ring parameters. More... | |
struct | Udma_RingObject |
Opaque UDMA ring object. More... | |
Macros | |
#define | UDMA_RING_INVALID ((uint16_t) TISCI_MSG_VALUE_RM_NULL_RING_TYPE) |
Macro used to specify that ring ID is invalid. Used in the API Udma_ringGetNum. More... | |
#define | UDMA_RING_ANY ((uint16_t) 0xFFFEU) |
Macro used to specify any available free ring while requesting one. Used in the API Udma_ringAlloc. More... | |
#define | UDMA_RING_VIRTID_INVALID ((uint16_t) 0xFFFFU) |
Macro used to specify that ring virt ID is invalid. Used in the API Udma_ringAlloc. More... | |
#define | UDMA_RING_SIZE_CHECK_SKIP (0xABDCABCDU) |
Macro used to skip the ring size check by driver. More... | |
#define | UDMA_RING_ORDERID_MAX (0x0FU) |
Macro used to specificy the maximum ring order id value. More... | |
UDMA Ring element size | |
#define | UDMA_RING_ES_4BYTES ((uint8_t) 0x00U) |
4 bytes Element size More... | |
#define | UDMA_RING_ES_8BYTES ((uint8_t) 0x01U) |
8 bytes Element size More... | |
#define | UDMA_RING_ES_16BYTES ((uint8_t) 0x02U) |
16 bytes Element size More... | |
#define | UDMA_RING_ES_32BYTES ((uint8_t) 0x03U) |
32 bytes Element size More... | |
#define | UDMA_RING_ES_64BYTES ((uint8_t) 0x04U) |
64 bytes Element size More... | |
#define | UDMA_RING_ES_128BYTES ((uint8_t) 0x05U) |
128 bytes Element size More... | |
#define | UDMA_RING_ES_256BYTES ((uint8_t) 0x06U) |
256 bytes Element size More... | |
Functions | |
int32_t | Udma_ringAlloc (Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint16_t ringNum, const Udma_RingPrms *ringPrms) |
UDMA ring allocation and configuration API. More... | |
int32_t | Udma_ringFree (Udma_RingHandle ringHandle) |
UDMA free ring. More... | |
int32_t | Udma_ringAttach (Udma_DrvHandle drvHandle, Udma_RingHandle ringHandle, uint16_t ringNum) |
UDMA ring attach API. This API is used to attach to an already allocated and configured ring. This API differs from ring alloc API in this aspect - it doesn't allocate resource from RM and doesn't configure the ring through sciclient/DMSC API. More... | |
int32_t | Udma_ringDetach (Udma_RingHandle ringHandle) |
UDMA detach ring API. More... | |
int32_t | Udma_ringQueueRaw (Udma_RingHandle ringHandle, uint64_t phyDescMem) |
UDMA queue descriptor to a ring - raw version (Takes all physical pointers) More... | |
int32_t | Udma_ringDequeueRaw (Udma_RingHandle ringHandle, uint64_t *phyDescMem) |
UDMA dequeue descriptor from a ring - raw version (Takes all physical pointers). More... | |
int32_t | Udma_ringFlushRaw (Udma_RingHandle ringHandle, uint64_t *phyDescMem) |
UDMA dequeue descriptor from a ring when UDMA channel is disabled - raw version (Takes all physical pointers). More... | |
void | Udma_ringPrime (Udma_RingHandle ringHandle, uint64_t phyDescMem) |
UDMA prime descriptor to a exposed/"RING" mode ring - raw version (Takes all physical pointers). This will write the descriptor to the ring memory without setting the doorbell (doesn't commit the push). More... | |
void | Udma_ringPrimeRead (Udma_RingHandle ringHandle, uint64_t *phyDescMem) |
UDMA read descriptor from a exposed/"RING" mode ring - raw version (Reads physical pointers). This will read the descriptor address from the ring memory without setting the doorbell (doesn't commit the pop). More... | |
void | Udma_ringSetDoorBell (Udma_RingHandle ringHandle, int32_t count) |
UDMA ring API to set the doorbell in exposed/"RING" mode ring. This will commit the previously primed operation using Udma_ringPrime API. More... | |
uint16_t | Udma_ringGetNum (Udma_RingHandle ringHandle) |
Returns the ring number allocated for this ring. More... | |
void * | Udma_ringGetMemPtr (Udma_RingHandle ringHandle) |
Returns the ring memory pointer which is passed during ring alloc. More... | |
uint32_t | Udma_ringGetMode (Udma_RingHandle ringHandle) |
Returns the ring mode which is configured during ring alloc. More... | |
uint32_t | Udma_ringGetElementCnt (Udma_RingHandle ringHandle) |
Returns the ring element count which is passed during ring alloc. More... | |
uint32_t | Udma_ringGetForwardRingOcc (Udma_RingHandle ringHandle) |
Returns the forward ring occupancy. More... | |
uint32_t | Udma_ringGetReverseRingOcc (Udma_RingHandle ringHandle) |
Returns the reverse ring occupancy. More... | |
uint32_t | Udma_ringGetWrIdx (Udma_RingHandle ringHandle) |
Returns the ring write index value. More... | |
uint32_t | Udma_ringGetRdIdx (Udma_RingHandle ringHandle) |
Returns the ring read index value. More... | |
void | UdmaRingPrms_init (Udma_RingPrms *ringPrms) |
Udma_RingPrms structure init function. More... | |