Commit | Line | Data |
---|---|---|
ba11c79a SM |
1 | /* |
2 | * Header for Bestcomm FEC tasks driver | |
3 | * | |
4 | * | |
5 | * Copyright (C) 2006-2007 Sylvain Munaut <tnt@246tNt.com> | |
6 | * Copyright (C) 2003-2004 MontaVista, Software, Inc. | |
7 | * ( by Dale Farnsworth <dfarnsworth@mvista.com> ) | |
8 | * | |
9 | * This file is licensed under the terms of the GNU General Public License | |
10 | * version 2. This program is licensed "as is" without any warranty of any | |
11 | * kind, whether express or implied. | |
12 | */ | |
13 | ||
14 | #ifndef __BESTCOMM_FEC_H__ | |
15 | #define __BESTCOMM_FEC_H__ | |
16 | ||
17 | ||
18 | struct bcom_fec_bd { | |
19 | u32 status; | |
20 | u32 skb_pa; | |
21 | }; | |
22 | ||
23 | #define BCOM_FEC_TX_BD_TFD 0x08000000ul /* transmit frame done */ | |
24 | #define BCOM_FEC_TX_BD_TC 0x04000000ul /* transmit CRC */ | |
25 | #define BCOM_FEC_TX_BD_ABC 0x02000000ul /* append bad CRC */ | |
26 | ||
27 | #define BCOM_FEC_RX_BD_L 0x08000000ul /* buffer is last in frame */ | |
28 | #define BCOM_FEC_RX_BD_BC 0x00800000ul /* DA is broadcast */ | |
29 | #define BCOM_FEC_RX_BD_MC 0x00400000ul /* DA is multicast and not broadcast */ | |
30 | #define BCOM_FEC_RX_BD_LG 0x00200000ul /* Rx frame length violation */ | |
31 | #define BCOM_FEC_RX_BD_NO 0x00100000ul /* Rx non-octet aligned frame */ | |
32 | #define BCOM_FEC_RX_BD_CR 0x00040000ul /* Rx CRC error */ | |
33 | #define BCOM_FEC_RX_BD_OV 0x00020000ul /* overrun */ | |
34 | #define BCOM_FEC_RX_BD_TR 0x00010000ul /* Rx frame truncated */ | |
35 | #define BCOM_FEC_RX_BD_LEN_MASK 0x000007fful /* mask for length of received frame */ | |
36 | #define BCOM_FEC_RX_BD_ERRORS (BCOM_FEC_RX_BD_LG | BCOM_FEC_RX_BD_NO | \ | |
37 | BCOM_FEC_RX_BD_CR | BCOM_FEC_RX_BD_OV | BCOM_FEC_RX_BD_TR) | |
38 | ||
39 | ||
40 | extern struct bcom_task * | |
41 | bcom_fec_rx_init(int queue_len, phys_addr_t fifo, int maxbufsize); | |
42 | ||
43 | extern int | |
44 | bcom_fec_rx_reset(struct bcom_task *tsk); | |
45 | ||
46 | extern void | |
47 | bcom_fec_rx_release(struct bcom_task *tsk); | |
48 | ||
49 | ||
50 | extern struct bcom_task * | |
51 | bcom_fec_tx_init(int queue_len, phys_addr_t fifo); | |
52 | ||
53 | extern int | |
54 | bcom_fec_tx_reset(struct bcom_task *tsk); | |
55 | ||
56 | extern void | |
57 | bcom_fec_tx_release(struct bcom_task *tsk); | |
58 | ||
59 | ||
60 | #endif /* __BESTCOMM_FEC_H__ */ | |
61 |