318 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			318 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/****************************************************************************
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
							 | 
						||
| 
								 | 
							
								be copied by any method or incorporated into another program without
							 | 
						||
| 
								 | 
							
								the express written consent of Aerospace C.Power. This Information or any portion
							 | 
						||
| 
								 | 
							
								thereof remains the property of Aerospace C.Power. The Information contained herein
							 | 
						||
| 
								 | 
							
								is believed to be accurate and Aerospace C.Power assumes no responsibility or
							 | 
						||
| 
								 | 
							
								liability for its use in any way and conveys no license or title under
							 | 
						||
| 
								 | 
							
								any patent or copyright and makes no representation or warranty that this
							 | 
						||
| 
								 | 
							
								Information is free from patent or copyright infringement.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								****************************************************************************/
							 | 
						||
| 
								 | 
							
								#ifndef MAC_TXQ_HW_H
							 | 
						||
| 
								 | 
							
								#define MAC_TXQ_HW_H
							 | 
						||
| 
								 | 
							
								#include "os_types.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define MAX_MAC_TXQ_NUM     24  /* 0 - 23 */
							 | 
						||
| 
								 | 
							
								#define MAX_MAC_DCU_NUM     5   /* 0 - 4 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define HWQ_DEBUG_MODE          1
							 | 
						||
| 
								 | 
							
								#define HWQ_SCHE_MODE           0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* mac pcs busy timeout value */
							 | 
						||
| 
								 | 
							
								#define MAC_PCS_BUSY_TIMEOUT            2000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* mac pcs idle timeout value */
							 | 
						||
| 
								 | 
							
								#define MAC_PCS_IDLE_TIMEOUT            2000
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_cfg_bcn_miss_num() -  set hw rx mode both sr and qr
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_rx_sr_qr_mode_set();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_cfg_bcn_miss_num() -  config tx beacon miss num
							 | 
						||
| 
								 | 
							
								 * @param: num --    miss beacon num
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_bcn_miss_num(uint32_t num);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief cfg_phy_tx_phase_select() -  force tx phase
							 | 
						||
| 
								 | 
							
								 * @param: enable --    1:enable 0:disable
							 | 
						||
| 
								 | 
							
								 * @param: phase --     0:all phase, 1:A , 2:B , 3:C
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void cfg_phy_tx_phase_select(uint32_t enable, uint32_t phase);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								* @brief mac_cfg_phy_tx_underflow_force() - force phy tx underflow.
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* @param        none
							 | 
						||
| 
								 | 
							
								*
							 | 
						||
| 
								 | 
							
								* @return       none
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								void mac_cfg_phy_tx_underflow_force(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* set the cfg of the specific qid */
							 | 
						||
| 
								 | 
							
								void mac_txq_cfg(uint32_t qid, uint32_t cap, \
							 | 
						||
| 
								 | 
							
								    uint32_t is_csma);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* enable the queue with the first tx desc */
							 | 
						||
| 
								 | 
							
								void mac_txq_enable(uint32_t qid, void *tx_desc);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* if enable, return none-zero
							 | 
						||
| 
								 | 
							
								 * else, return 0
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_is_enable(uint32_t qid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* get txq tx comp status bitmap */
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_get_txcomp_status();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* clr the hwq txcomp */
							 | 
						||
| 
								 | 
							
								void mac_txq_clr_txcomp_status(uint32_t hwqid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* enable/disable txq dbg mode */
							 | 
						||
| 
								 | 
							
								void mac_txq_set_dbg_mode(uint32_t is_dbg);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* set the txq poll interval, us unit */
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_set_poll_intval(uint32_t intvl_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* set the packet in hwq immediately */
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_trigger_send(uint32_t qid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint32_t mac_tx_hw_get_bcn_swcrc_cfg();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_hw_set_bcn_swcrc_cfg(uint32_t is_by_sw);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* check if dbg mode */
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_is_dbg_mode();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_start_desc_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_end_desc_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_phy_tx_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_aes_key_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_buf_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_desc_timeout(uint32_t enable, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_txq_cfg_tdma_do_cca(uint32_t enable);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_txq_clr_all_txcomp_status(uint32_t bitmap);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								uint32_t mac_txq_is_csma(uint32_t qid);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_set_slottime(uint32_t cap, uint32_t time_us);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void mac_set_tx_bts_dly(int32_t delay_ntb);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_set_min_backoff_slotnum() -
							 | 
						||
| 
								 | 
							
								 *          set 2^x of min backoff be value
							 | 
						||
| 
								 | 
							
								 * @param tmr:    2^(_2_be)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_set_min_backoff_slotnum(uint32_t _2_be);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_rx_common_rifs_tmr_set() - set common RIFS time.
							 | 
						||
| 
								 | 
							
								 * @param tmr:    RIFS time(us)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_tx_rx_common_rifs_tmr_set(uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_only_tx_rifs_tmr_set() - set tx RIFS time.
							 | 
						||
| 
								 | 
							
								 * @param tmr:    RIFS time(us)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_only_tx_rifs_tmr_set(uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_only_rx_rifs_tmr_set() - set rx RIFS time.
							 | 
						||
| 
								 | 
							
								 * @param tmr:    RIFS time(us)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_only_rx_rifs_tmr_set(uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cfg_cifs_tmr_init     init cifs config
							 | 
						||
| 
								 | 
							
								 * @param proto:        current protocol, see PLC_PROTO_TYPE_XXX
							 | 
						||
| 
								 | 
							
								 * @return              none
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cfg_cifs_tmr_init(uint32_t proto);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cfg_rifs_tmr_init     init rifs config
							 | 
						||
| 
								 | 
							
								 * @param is_cert:      0 - normal mode case, others - cert mode case
							 | 
						||
| 
								 | 
							
								 * @param proto:        current protocol, see PLC_PROTO_TYPE_XXX
							 | 
						||
| 
								 | 
							
								 * @return              none
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cfg_rifs_tmr_init(uint8_t is_cert, uint32_t proto);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_set_fc_fl_cfg_status() - set sw cfg fc frame len
							 | 
						||
| 
								 | 
							
								 * @param flag 0 : hw cfg, 1 : sw cfg
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_set_fc_fl_cfg_status(uint8_t flag);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_get_fc_fl_cfg_status() - get fc frame len cfg status
							 | 
						||
| 
								 | 
							
								 * @return  0 : hw cfg, 1 : sw cfg
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_get_fc_fl_cfg_status();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_get_tx_cifs() - get tx cifs value
							 | 
						||
| 
								 | 
							
								 * @return cifs value
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_get_tx_cifs();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_get_tx_rifs() - get tx rifs value
							 | 
						||
| 
								 | 
							
								 * @return rifs value
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_get_tx_rifs();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* @brief mac_get_tx_bifs() - get tx bifs value
							 | 
						||
| 
								 | 
							
								 * @param proto             current porotocol, see PLC_PROTO_TYPE_XXX
							 | 
						||
| 
								 | 
							
								 * @return:      bifs value - us
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_get_tx_bifs(uint32_t proto);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief set cifs time
							 | 
						||
| 
								 | 
							
								 * @param tmr - [value of us unit time]
							 | 
						||
| 
								 | 
							
								 * @return - [none]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_tx_cifs_tmr_set(uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief set bifs time
							 | 
						||
| 
								 | 
							
								 * @param proto     [current porotocol, see PLC_PROTO_TYPE_XXX]
							 | 
						||
| 
								 | 
							
								 * @param tmr       [value of us unit time]
							 | 
						||
| 
								 | 
							
								 * @return - [none]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_tx_bifs_tmr_set(uint32_t proto, uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief mac_tx_hw_set_delay  set count, and used to sw delay .
							 | 
						||
| 
								 | 
							
								 *@param tmr                [delay time]
							 | 
						||
| 
								 | 
							
								 *@exception                [none.]
							 | 
						||
| 
								 | 
							
								 *@return                   [none.]
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								void mac_tx_hw_set_delay(uint32_t tmr);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 *@brief mac_tx_hw_get_delay  get count, used to sw delay.
							 | 
						||
| 
								 | 
							
								 *@exception                [none.]
							 | 
						||
| 
								 | 
							
								 *@return                   [get time]
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								uint32_t mac_tx_hw_get_delay();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_get_sche_rx_phase  get schedule rx phase
							 | 
						||
| 
								 | 
							
								 * @param tmr - [value of us unit time]
							 | 
						||
| 
								 | 
							
								 * @return - [rx phase]
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_get_sche_rx_phase();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_set_cca_pcs_busy_timeout_ms   -this api is to set
							 | 
						||
| 
								 | 
							
								 *        the timeout ms value of cca's pcs busy, because the isr maybe trigger
							 | 
						||
| 
								 | 
							
								 *        if the value is too small, so we need to set the value before the isr enabled
							 | 
						||
| 
								 | 
							
								 * @param uint32_t ena                      -enable / disable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t time_ms                  -timeout value.
							 | 
						||
| 
								 | 
							
								 * @return                                  -0
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_set_cca_pcs_busy_timeout_ms(uint32_t ena, uint32_t time_ms);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_set_cca_pcs_idle_timeout_ms      -this api is to set
							 | 
						||
| 
								 | 
							
								 *        the timeout ms value of cca's pcs idle, because the isr maybe trigger
							 | 
						||
| 
								 | 
							
								 *        if the value is too small, so we need to set the value before the isr enabled
							 | 
						||
| 
								 | 
							
								 * @param uint32_t ena                         -enable / disable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t time_ms                     -timeout value.
							 | 
						||
| 
								 | 
							
								 * @return                                     -0
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_set_cca_pcs_idle_timeout_ms(uint32_t ena, uint32_t time_ms);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_pcs_busy_isr_enable  -pcs busy isr enable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority addr.
							 | 
						||
| 
								 | 
							
								 * @return                             -none.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cca_pcs_busy_isr_enable(uint32_t pri);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_pcs_busy_isr_disable -pcs busy isr disable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority.
							 | 
						||
| 
								 | 
							
								 * @return                             -none.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cca_pcs_busy_isr_disable(uint32_t pri);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_pcs_idle_isr_enable  -pcs idle isr enable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority.
							 | 
						||
| 
								 | 
							
								 * @return                             -none.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cca_pcs_idle_isr_enable(uint32_t pri);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_pcs_idle_isr_disable -pcs busy isr disable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority.
							 | 
						||
| 
								 | 
							
								 * @return                             -none.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_cca_pcs_idle_isr_disable(uint32_t pri);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_get_int_sts          -get cca int.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority.
							 | 
						||
| 
								 | 
							
								 * @return uint32_t                    -int status.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_cca_get_int_sts(uint32_t pri);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_cca_int_clear            -cca int clear.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t pri                 -intterupte priority addr.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t int_sts             -int status.
							 | 
						||
| 
								 | 
							
								 * @return                             -0.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_cca_int_clear(uint32_t pri, uint32_t int_sts);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_cfg_cmd_slot_guard_interval      used for calculate if this
							 | 
						||
| 
								 | 
							
								                                                  frame may cross scheduler command
							 | 
						||
| 
								 | 
							
								 * @param uint32_t hw_write_time                  time for hw write mpdu end. uint us.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								void mac_tx_cfg_cmd_slot_guard_interval(uint32_t hw_write_time);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_get_cmd_slot_guard_interval      get cmd slot guard time.
							 | 
						||
| 
								 | 
							
								 * @return                                        time for hw write mpdu end.
							 | 
						||
| 
								 | 
							
								 *                                                uint: us.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_tx_get_cmd_slot_guard_interval(void);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @brief mac_tx_phy_sts_filter        -tx filter enable config.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t filter_en           -filter enable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t err0_en             -error update 0 enable.
							 | 
						||
| 
								 | 
							
								 * @param uint32_t err1_en             -error update 1 enable.
							 | 
						||
| 
								 | 
							
								 * @return                             -0.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								uint32_t mac_tx_phy_sts_filter( \
							 | 
						||
| 
								 | 
							
								    bool_t filter_en, bool_t err0_en, bool_t err1_en);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // !MAC_TXQ_HW_H
							 |