Move definition of buffer descriptor to cpm.h
PATCH v2 8/8 Move definition of buffer descriptor to cpm.h
Buffer descriptors are used by both CPM1 and CPM2. Move the definitions from the cpm dependent include file to common cpm.h
Signed-off-by Jochen Friedrich <[email protected]>
--- include/asm-powerpc/cpm.h | 73 ++++++++++++++++++++++++++++++++++++++++++++ include/asm-powerpc/cpm1.h | 65 --------------------------------------- include/asm-powerpc/cpm2.h | 64 -------------------------------------- 3 files changed, 73 insertions(+), 129 deletions(-)
include/asm-powerpc/cpm.h +73 -0
@@ -4,6 +4,79 @@#include <linux/compiler.h> #include <linux/types.h> +/* Buffer descriptors used by many of the CPM protocols. */ +typedef struct cpm_buf_desc { +ushort cbd_sc;/* Status and Control */ +ushort cbd_datlen;/* Data length in buffer */ +uint cbd_bufaddr;/* Buffer address in host memory */ +}cbd_t ; + +/* Buffer descriptor control/status used by serial +*/ + +#define BD_SC_EMPTY (0x8000)/* Receive is empty */ +#define BD_SC_READY (0x8000)/* Transmit is ready */ +#define BD_SC_WRAP (0x2000)/* Last buffer descriptor */ +#define BD_SC_INTRPT (0x1000)/* Interrupt on change */ +#define BD_SC_LAST (0x0800)/* Last buffer in frame */ +#define BD_SC_TC (0x0400)/* Transmit CRC */ +#define BD_SC_CM (0x0200)/* Continous mode */ +#define BD_SC_ID (0x0100)/* Rec'd too many idles */ +#define BD_SC_P (0x0100)/* xmt preamble */ +#define BD_SC_BR (0x0020)/* Break received */ +#define BD_SC_FR (0x0010)/* Framing error */ +#define BD_SC_PR (0x0008)/* Parity error */ +#define BD_SC_NAK (0x0004)/* NAK - did not respond */ +#define BD_SC_OV (0x0002)/* Overrun */ +#define BD_SC_UN (0x0002)/* Underrun */ +#define BD_SC_CD (0x0001)/* */ +#define BD_SC_CL (0x0001)/* Collision */ + +/* Buffer descriptor control/status used by Ethernet receive. +* Common to SCC and FCC. +*/ +#define BD_ENET_RX_EMPTY (0x8000) +#define BD_ENET_RX_WRAP (0x2000) +#define BD_ENET_RX_INTR (0x1000) +#define BD_ENET_RX_LAST (0x0800) +#define BD_ENET_RX_FIRST (0x0400) +#define BD_ENET_RX_MISS (0x0100) +#define BD_ENET_RX_BC (0x0080)/* FCC Only */ +#define BD_ENET_RX_MC (0x0040)/* FCC Only */ +#define BD_ENET_RX_LG (0x0020) +#define BD_ENET_RX_NO (0x0010) +#define BD_ENET_RX_SH (0x0008) +#define BD_ENET_RX_CR (0x0004) +#define BD_ENET_RX_OV (0x0002) +#define BD_ENET_RX_CL (0x0001) +#define BD_ENET_RX_STATS (0x01ff)/* All status bits */ + +/* Buffer descriptor control/status used by Ethernet transmit. +* Common to SCC and FCC. +*/ +#define BD_ENET_TX_READY (0x8000) +#define BD_ENET_TX_PAD (0x4000) +#define BD_ENET_TX_WRAP (0x2000) +#define BD_ENET_TX_INTR (0x1000) +#define BD_ENET_TX_LAST (0x0800) +#define BD_ENET_TX_TC (0x0400) +#define BD_ENET_TX_DEF (0x0200) +#define BD_ENET_TX_HB (0x0100) +#define BD_ENET_TX_LC (0x0080) +#define BD_ENET_TX_RL (0x0040) +#define BD_ENET_TX_RCMASK (0x003c) +#define BD_ENET_TX_UN (0x0002) +#define BD_ENET_TX_CSL (0x0001) +#define BD_ENET_TX_STATS (0x03ff)/* All status bits */ + +/* Buffer descriptor control/status used by Transparent mode SCC. +*/ +#define BD_SCC_TX_LAST (0x0800) + +/* Buffer descriptor control/status used by I2C. +*/ +#define BD_I2C_START (0x0400) +int cpm_muram_init (void );unsigned long cpm_muram_alloc (unsigned long size,unsigned long align);int cpm_muram_free (unsigned long offset);
include/asm-powerpc/cpm1.h +0 -65
89 lines not on this page · raw message
include/asm-powerpc/cpm2.h +0 -64
88 lines not on this page · raw message
Signature · 1 line
1.5.3.8