80 |
|
|
81 |
/* IDMA buffer descriptor */ |
/* IDMA buffer descriptor */ |
82 |
struct mpc860_idma_bd { |
struct mpc860_idma_bd { |
83 |
m_uint16_t offset; /* Offset in DPRAM memory */ |
m_uint16_t offset; /* Offset in DPRAM memory */ |
84 |
|
|
85 |
m_uint16_t ctrl; /* Control Word */ |
m_uint16_t ctrl; /* Control Word */ |
86 |
m_uint8_t dfcr,sfcr; /* Src/Dst Function code registers */ |
m_uint8_t dfcr,sfcr; /* Src/Dst Function code registers */ |
126 |
|
|
127 |
static inline void dpram_w8(struct mpc860_data *d,m_uint16_t offset, |
static inline void dpram_w8(struct mpc860_data *d,m_uint16_t offset, |
128 |
m_uint8_t val) |
m_uint8_t val) |
129 |
{ |
{ |
130 |
d->dpram[offset] = val; |
d->dpram[offset] = val; |
131 |
} |
} |
132 |
|
|
141 |
|
|
142 |
static inline void dpram_w16(struct mpc860_data *d,m_uint16_t offset, |
static inline void dpram_w16(struct mpc860_data *d,m_uint16_t offset, |
143 |
m_uint16_t val) |
m_uint16_t val) |
144 |
{ |
{ |
145 |
d->dpram[offset] = val >> 8; |
d->dpram[offset] = val >> 8; |
146 |
d->dpram[offset+1] = val & 0xFF; |
d->dpram[offset+1] = val & 0xFF; |
147 |
} |
} |
285 |
|
|
286 |
/* Clear the Valid bit */ |
/* Clear the Valid bit */ |
287 |
bd.ctrl &= ~MPC860_IDMA_CTRL_V; |
bd.ctrl &= ~MPC860_IDMA_CTRL_V; |
288 |
dpram_w16(d,bd_offset+0x00,bd.ctrl); |
dpram_w16(d,bd_offset-MPC860_DPRAM_OFFSET+0x00,bd.ctrl); |
289 |
|
|
290 |
/* Generate an interrupt for this buffer ? */ |
/* Generate an interrupt for this buffer ? */ |
291 |
if (bd.ctrl & MPC860_IDMA_CTRL_I) |
if (bd.ctrl & MPC860_IDMA_CTRL_I) |