/space/home/slher/rel/Beken/v6_4_5/macsw/modules/macif/src/macif_ipc.c File Reference

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.

Detailed Description

MACIF implementation when control layer is running on a remote host.

Copyright (C) RivieraWaves 2017-2019

Definition in file macif_ipc.c.


Define Documentation

#define CFM_LLICTRL
Value:

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().


Function Documentation

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.

Parameters:
[in] next_lli_cnt The target LLI count
Returns:
true if the target is reached or exceeded, false otherwise

Definition at line 325 of file macif_ipc.c.

References IPC_DMA_LLI_CFM_TX.

Referenced by macif_tx_cfm_dma_int_handler().


Generated on 14 Jan 2020 for Ceva-RW WLAN FullMAC SW documentation by  doxygen 1.6.1