0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef __BESTCOMM_FEC_H__
0015 #define __BESTCOMM_FEC_H__
0016
0017
0018 struct bcom_fec_bd {
0019 u32 status;
0020 u32 skb_pa;
0021 };
0022
0023 #define BCOM_FEC_TX_BD_TFD 0x08000000ul
0024 #define BCOM_FEC_TX_BD_TC 0x04000000ul
0025 #define BCOM_FEC_TX_BD_ABC 0x02000000ul
0026
0027 #define BCOM_FEC_RX_BD_L 0x08000000ul
0028 #define BCOM_FEC_RX_BD_BC 0x00800000ul
0029 #define BCOM_FEC_RX_BD_MC 0x00400000ul
0030 #define BCOM_FEC_RX_BD_LG 0x00200000ul
0031 #define BCOM_FEC_RX_BD_NO 0x00100000ul
0032 #define BCOM_FEC_RX_BD_CR 0x00040000ul
0033 #define BCOM_FEC_RX_BD_OV 0x00020000ul
0034 #define BCOM_FEC_RX_BD_TR 0x00010000ul
0035 #define BCOM_FEC_RX_BD_LEN_MASK 0x000007fful
0036 #define BCOM_FEC_RX_BD_ERRORS (BCOM_FEC_RX_BD_LG | BCOM_FEC_RX_BD_NO | \
0037 BCOM_FEC_RX_BD_CR | BCOM_FEC_RX_BD_OV | BCOM_FEC_RX_BD_TR)
0038
0039
0040 extern struct bcom_task *
0041 bcom_fec_rx_init(int queue_len, phys_addr_t fifo, int maxbufsize);
0042
0043 extern int
0044 bcom_fec_rx_reset(struct bcom_task *tsk);
0045
0046 extern void
0047 bcom_fec_rx_release(struct bcom_task *tsk);
0048
0049
0050 extern struct bcom_task *
0051 bcom_fec_tx_init(int queue_len, phys_addr_t fifo);
0052
0053 extern int
0054 bcom_fec_tx_reset(struct bcom_task *tsk);
0055
0056 extern void
0057 bcom_fec_tx_release(struct bcom_task *tsk);
0058
0059
0060 #endif
0061