CSR_WRITE_REG
CSR_WRITE_REG(sc, MGB_DMA_TX_TAIL(txqid), rdata->last_tail);
CSR_WRITE_REG(sc, MGB_DMA_RX_TAIL(rxqid), sc->rx_ring_data.last_tail);
CSR_WRITE_REG(sc, MGB_DMA_RX_BASE_H(channel),
CSR_WRITE_REG(sc, MGB_DMA_RX_BASE_L(channel),
CSR_WRITE_REG(sc, MGB_DMA_RX_HEAD_WB_H(channel),
CSR_WRITE_REG(sc, MGB_DMA_RX_HEAD_WB_L(channel),
CSR_WRITE_REG(sc, MGB_DMA_RX_CONFIG0(channel), MGB_DMA_HEAD_WB_ENBL);
CSR_WRITE_REG(sc, MGB_DMA_RX_CONFIG1(channel), ring_config);
CSR_WRITE_REG(sc, MGB_DMA_TX_BASE_H(channel),
CSR_WRITE_REG(sc, MGB_DMA_TX_BASE_L(channel),
CSR_WRITE_REG(sc, MGB_DMA_TX_CONFIG1(channel), ring_config);
CSR_WRITE_REG(sc, MGB_DMA_TX_CONFIG0(channel), ring_config);
CSR_WRITE_REG(sc, MGB_DMA_TX_HEAD_WB_H(channel),
CSR_WRITE_REG(sc, MGB_DMA_TX_HEAD_WB_L(channel),
CSR_WRITE_REG(sc, MGB_DMA_TX_TAIL(channel), rdata->last_tail);
CSR_WRITE_REG(sc, MGB_DMAC_CMD,
CSR_WRITE_REG(sc, MGB_DMAC_CMD,
CSR_WRITE_REG(sc, MGB_DMAC_CMD,
CSR_WRITE_REG(sc, reg, MGB_FCT_RESET(channel));
CSR_WRITE_REG(sc, reg, MGB_FCT_ENBL(channel));
CSR_WRITE_REG(sc, reg, MGB_FCT_DSBL(channel));
CSR_WRITE_REG(sc, MGB_DMAC_CMD, MGB_DMAC_RESET);
CSR_WRITE_REG(sc, MGB_MII_ACCESS, mii_access);
CSR_WRITE_REG(sc, MGB_MII_DATA, data);
CSR_WRITE_REG(sc, MGB_MII_ACCESS, mii_access);
CSR_WRITE_REG(sc, MGB_INTR_VEC_RX_MAP, 0);
CSR_WRITE_REG(sc, MGB_INTR_VEC_TX_MAP, 0);
CSR_WRITE_REG(sc, MGB_INTR_VEC_OTHER_MAP, 0);
CSR_WRITE_REG(sc, 0x24, 0xF); // DP_SEL & TX_RAM_0
CSR_WRITE_REG(sc, 0x2C, i); // DP_ADDR
CSR_WRITE_REG(sc, 0x28, 0); // DP_CMD
CSR_WRITE_REG(sc, MGB_INTR_ENBL_CLR,
CSR_WRITE_REG(sc, MGB_INTR_STS, MGB_INTR_STS_RX(qidx));
CSR_WRITE_REG(sc, MGB_INTR_STS, MGB_INTR_STS_TEST);
CSR_WRITE_REG(sc, MGB_INTR_ENBL_CLR,
CSR_WRITE_REG(sc, MGB_INTR_STS,
CSR_WRITE_REG(sc, MGB_INTR_ENBL_SET, intr_sts);
CSR_WRITE_REG(sc, MGB_INTR_VEC_ENBL_SET, vec_en);
CSR_WRITE_REG(sc, MGB_DMAC_INTR_STS, dmac_enable);
CSR_WRITE_REG(sc, MGB_DMAC_INTR_ENBL_SET, dmac_enable);
CSR_WRITE_REG(sc, MGB_INTR_ENBL_CLR, UINT32_MAX);
CSR_WRITE_REG(sc, MGB_INTR_VEC_ENBL_CLR, UINT32_MAX);
CSR_WRITE_REG(sc, MGB_INTR_STS, UINT32_MAX);
CSR_WRITE_REG(sc, MGB_DMAC_INTR_ENBL_CLR, UINT32_MAX);
CSR_WRITE_REG(sc, MGB_DMAC_INTR_STS, UINT32_MAX);
CSR_WRITE_REG(sc, MGB_INTR_VEC_ENBL_SET, MGB_INTR_RX_VEC_STS(qid));
CSR_WRITE_REG(sc, MGB_INTR_ENBL_SET, MGB_INTR_STS_RX(qid));
CSR_WRITE_REG(sc, MGB_DMAC_INTR_STS, MGB_DMAC_RX_INTR_ENBL(qid));
CSR_WRITE_REG(sc, MGB_DMAC_INTR_ENBL_SET, MGB_DMAC_RX_INTR_ENBL(qid));
CSR_WRITE_REG(sc, MGB_INTR_ENBL_SET, MGB_INTR_STS_TX(qid));
CSR_WRITE_REG(sc, MGB_DMAC_INTR_STS, MGB_DMAC_TX_INTR_ENBL(qid));
CSR_WRITE_REG(sc, MGB_DMAC_INTR_ENBL_SET, MGB_DMAC_TX_INTR_ENBL(qid));
CSR_WRITE_REG(sc, MGB_INTR_STS, MGB_INTR_STS_TEST);
CSR_WRITE_REG(sc, MGB_INTR_VEC_ENBL_SET, MGB_INTR_STS_ANY);
CSR_WRITE_REG(sc, MGB_INTR_ENBL_SET,
CSR_WRITE_REG(sc, MGB_INTR_SET, MGB_INTR_STS_TEST);
CSR_WRITE_REG(sc, MGB_INTR_ENBL_CLR, MGB_INTR_STS_TEST);
CSR_WRITE_REG(sc, MGB_INTR_STS, MGB_INTR_STS_TEST);
CSR_WRITE_REG(sc, reg, CSR_READ_REG(sc, reg) & ~(bits))
CSR_WRITE_REG(sc, reg, CSR_READ_REG(sc, reg) | (val))