int ret, i;
ulong rate;
u32 val, tx_fifo_sz, rx_fifo_sz, tqs, rqs, pbl;
- ulong last_rx_desc;
ulong desc_pad;
ulong addr64;
* that's not distinguishable from none of the descriptors being
* available.
*/
- last_rx_desc = (ulong)eqos_get_desc(eqos, EQOS_DESCRIPTORS_RX - 1, true);
- writel(last_rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer);
+ addr64 = (ulong)eqos_get_desc(eqos, EQOS_DESCRIPTORS_RX - 1, true);
+ writel(lower_32_bits(addr64), &eqos->dma_regs->ch0_rxdesc_tail_pointer);
eqos->started = true;
tx_desc->des3 = EQOS_DESC3_OWN | EQOS_DESC3_FD | EQOS_DESC3_LD | length;
eqos->config->ops->eqos_flush_desc(tx_desc);
- writel((ulong)eqos_get_desc(eqos, eqos->tx_desc_idx, false),
- &eqos->dma_regs->ch0_txdesc_tail_pointer);
+ writel(lower_32_bits((ulong)eqos_get_desc(eqos, eqos->tx_desc_idx, false)),
+ &eqos->dma_regs->ch0_txdesc_tail_pointer);
for (i = 0; i < 1000000; i++) {
eqos->config->ops->eqos_inval_desc(tx_desc);
rx_desc->des3 = EQOS_DESC3_OWN | EQOS_DESC3_BUF1V;
eqos->config->ops->eqos_flush_desc(rx_desc);
}
- writel((ulong)rx_desc, &eqos->dma_regs->ch0_rxdesc_tail_pointer);
+ writel(lower_32_bits((ulong)rx_desc),
+ &eqos->dma_regs->ch0_rxdesc_tail_pointer);
}
eqos->rx_desc_idx++;