MACIF implementation when control layer is running on a remote host. More...
#include "ipc_emb.h"#include "dma.h"#include "macif.h"#include "ps.h"#include "rxl_cntrl.h"#include "rxu_cntrl.h"#include "txl_buffer.h"Go to the source code of this file.
Data Structures | |
| struct | macif_tx_cfm_tag |
| MACIF TX confirmation control structure. More... | |
| struct | macif_ipc_env_tag |
| MACIF IPC environment structure. More... | |
Defines | |
| #define | CFM_PENDING_MAX 16 |
| Maximum number of confirmation uploads that can be pending simultaneously This value shall be a power of 2. | |
| #define | CFM_IDX_MSK (CFM_PENDING_MAX - 1) |
| Mask of the confirmation indexes. | |
| #define | CFM_STATUS_OFFSET offsetof_b(struct txl_buffer_control, status) |
| Offset of the status element in the TX buffer. | |
| #define | CFM_CNT_THRESHOLD 8 |
| Number of prepared confirmations after which we program the DMA to transmit them. | |
| #define | UF_RX_VEC_VALID_PATTERN 0x0000C0DE |
| valid pattern for buffers pushed by the driver | |
| #define | CFM_LLICTRL |
| Conversion from Access Category to corresponding bridge DMA control field. | |
Functions | |
| int | macif_init (void) |
| Initialize the MAC interface. | |
| void | macif_msg_evt (int dummy) |
| Kernel event handler for the handling of messages pushed by control layer. | |
| void | macif_kmsg_fwd (const struct ke_msg *ke_msg) |
| Forward a kernel message to the MAC interface. | |
| void | macif_prim_tbtt_ind (void) |
| Indicate control layer that the primary TBTT is pending. | |
| void | macif_sec_tbtt_ind (void) |
| Indicate control layer that the secondary TBTT is pending. | |
| uint8_t | macif_rx_get_packet_threshold (void) |
| Get the number of received packets above which the host shall be warned. | |
| void | macif_rx_data_ind (void) |
| Signal to the upper layers the presence of data in the host RX buffers. | |
| bool | macif_rx_buf_check (void) |
| Checks if a host buffer is currently available. | |
| uint32_t | macif_rx_buf_get (uint32_t *host_id) |
| Retrieve a RX host buffer address for future DMA transfer. | |
| void | macif_rx_desc_upload (struct co_list *desc_list) |
| Upload the list of prepared RX status descriptors to upper layers. | |
| void | macif_tx_evt (int queue_idx) |
| Kernel event handler for the handling of the TX descriptor pushed by the upper layers. | |
| bool | macif_tx_q_has_data (int queue_idx) |
| Get the status of the TX queue. | |
| uint8_t | macif_tx_q_len (int queue_idx, int vif_idx) |
| Check how many tx descriptors are available on the requested queue for a VIF. | |
| uint32_t | macif_tx_pattern_addr_get (void) |
| Get the host address of the TX payload descriptor pattern It is not used in fully hosted partitioning. | |
| uint32_t | macif_buffered_get (uint8_t sta, uint8_t tid) |
| Get the buffered data for a given sta/tid. | |
| void | macif_tx_enable_users (int queue_idx, uint8_t active_users) |
| Re-enable the user queues that were disabled. | |
| static bool | macif_tx_cfm_lli_done (uint16_t next_lli_cnt) |
| This function checks if the IPC DMA already processed the transfers up to the target count. | |
| void | macif_tx_cfm_start (uint8_t access_category) |
| Initialize a new TX confirmation upload process. | |
| void | macif_tx_cfm_push (uint8_t access_category, struct txdesc *txdesc) |
| Push a TX confirmation for upload to upper layers. | |
| void | macif_tx_cfm_done (uint8_t access_category, bool poll) |
| Program the pending confirmation for upload. | |
| void | macif_tx_cfm_dma_int_handler (void) |
| Handler for DMA transfer of confirmations. | |
Variables | |
| struct macif_ipc_env_tag | macif_ipc_env |
| MACIF IPC context. | |
MACIF implementation when control layer is running on a remote host.
Copyright (C) RivieraWaves 2017-2019
Definition in file macif_ipc.c.
| #define CFM_LLICTRL |
(IPC_DMA_LLI_COUNTER_EN | (IPC_DMA_LLI_CFM_TX << IPC_DMA_LLI_COUNTER_POS) | \ IPC_DMA_LLI_IRQ_EN | (IPC_DMA_LLI_CFM_TX << IPC_DMA_LLI_IRQ_POS))
Conversion from Access Category to corresponding bridge DMA control field.
Definition at line 40 of file macif_ipc.c.
Referenced by macif_tx_cfm_done().
| static bool macif_tx_cfm_lli_done | ( | uint16_t | next_lli_cnt | ) | [static] |
This function checks if the IPC DMA already processed the transfers up to the target count.
| [in] | next_lli_cnt | The target LLI count |
Definition at line 325 of file macif_ipc.c.
References IPC_DMA_LLI_CFM_TX.
Referenced by macif_tx_cfm_dma_int_handler().
1.6.1