DMAC_DESC_DST
if (dx->dx_desc[DMAC_DESC_DST].xd_increment) {
dxs->dxs_segs[DMAC_DESC_DST].ds_nsegs--;
if (dxs->dxs_segs[DMAC_DESC_DST].ds_nsegs == 0) {
dxs->dxs_segs[DMAC_DESC_DST].ds_curseg++;
dxs->dxs_segs[DMAC_DESC_DST].ds_curseg = dx->dx_desc[DMAC_DESC_DST].xd_dma_segs;
dxs->dxs_segs[DMAC_DESC_DST].ds_nsegs = dx->dx_desc[DMAC_DESC_DST].xd_nsegs;
DPRINTF(("Dest. address: 0x%x\n", (unsigned)dxs->dxs_segs[DMAC_DESC_DST].ds_curseg->ds_addr));
dxs->dxs_segs[DMAC_DESC_DST].ds_curseg->ds_addr);
if (dx->dx_desc[DMAC_DESC_DST].xd_bus_type == DMAC_BUS_TYPE_PERIPHERAL) {
if (dx->dx_desc[DMAC_DESC_DST].xd_increment) {
if (!dx->dx_desc[DMAC_DESC_DST].xd_increment) {
transfer_size = uimin(dxs->dxs_segs[DMAC_DESC_DST].ds_curseg->ds_len,
if (dx->dx_desc[DMAC_DESC_DST].xd_increment) {
transfer_size = dxs->dxs_segs[DMAC_DESC_DST].ds_curseg->ds_len;
xfer->dx_desc[DMAC_DESC_DST].xd_bus_type = DMAC_BUS_TYPE_PERIPHERAL;
xfer->dx_desc[DMAC_DESC_DST].xd_increment = FALSE;
xfer->dx_desc[DMAC_DESC_DST].xd_nsegs = 1;
xfer->dx_desc[DMAC_DESC_DST].xd_dma_segs = &i2s->sc_dr;
xfer->dx_desc[DMAC_DESC_DST].xd_bus_type = DMAC_BUS_TYPE_SYSTEM;
xfer->dx_desc[DMAC_DESC_DST].xd_increment = TRUE;
xfer->dx_desc[DMAC_DESC_DST].xd_nsegs = buf->i2b_dmamap->dm_nsegs;
xfer->dx_desc[DMAC_DESC_DST].xd_dma_segs = buf->i2b_dmamap->dm_segs;
xfer->dx_desc[DMAC_DESC_DST].xd_bus_type = DMAC_BUS_TYPE_SYSTEM;
xfer->dx_desc[DMAC_DESC_DST].xd_increment = TRUE;
xfer->dx_desc[DMAC_DESC_DST].xd_nsegs = cmd->c_dmamap->dm_nsegs;
xfer->dx_desc[DMAC_DESC_DST].xd_dma_segs = cmd->c_dmamap->dm_segs;
xfer->dx_desc[DMAC_DESC_DST].xd_bus_type = DMAC_BUS_TYPE_PERIPHERAL;
xfer->dx_desc[DMAC_DESC_DST].xd_increment = FALSE;
xfer->dx_desc[DMAC_DESC_DST].xd_nsegs = 1;
xfer->dx_desc[DMAC_DESC_DST].xd_dma_segs = &sc->sc_dr;
dx->dx_desc[DMAC_DESC_DST].xd_addr_hold = true;
dx->dx_desc[DMAC_DESC_DST].xd_nsegs = 1;
dx->dx_desc[DMAC_DESC_DST].xd_dma_segs = &sc->sc_dr;
dx->dx_desc[DMAC_DESC_DST].xd_addr_hold = false;
dx->dx_desc[DMAC_DESC_DST].xd_nsegs = ad->ad_nsegs;
dx->dx_desc[DMAC_DESC_DST].xd_dma_segs = ad->ad_segs;
dst_ds = &dxs->dxs_segs[DMAC_DESC_DST];
dst_xd = &dxs->dxs_desc[DMAC_DESC_DST];
dxs->dxs_segs[DMAC_DESC_DST].ds_nsegs == 0 ||
#define ds_dst_addr_hold ds_xfer.dxs_desc[DMAC_DESC_DST].xd_addr_hold
#define ds_dst_burst ds_xfer.dxs_desc[DMAC_DESC_DST].xd_burst_size
#define ds_dst_dma_segs ds_xfer.dxs_desc[DMAC_DESC_DST].xd_dma_segs
#define ds_dst_nsegs ds_xfer.dxs_desc[DMAC_DESC_DST].xd_nsegs
dst = &dxs->dxs_desc[DMAC_DESC_DST];
if ((err = dmac_init_desc(&dxs->dxs_segs[DMAC_DESC_DST], dst, &size,
dx->dx_desc[DMAC_DESC_DST].xd_addr_hold = true;
dx->dx_desc[DMAC_DESC_DST].xd_nsegs = 1;
dx->dx_desc[DMAC_DESC_DST].xd_dma_segs = &sc->sc_dr;
dx->dx_desc[DMAC_DESC_DST].xd_addr_hold = false;
dx->dx_desc[DMAC_DESC_DST].xd_nsegs = p->nsegs;
dx->dx_desc[DMAC_DESC_DST].xd_dma_segs = p->segs;
sc->sc_rxdx->dx_desc[DMAC_DESC_DST].xd_addr_hold = false;
sc->sc_txdx->dx_desc[DMAC_DESC_DST].xd_addr_hold = true;
sc->sc_txdx->dx_desc[DMAC_DESC_DST].xd_nsegs = 1;
sc->sc_txdx->dx_desc[DMAC_DESC_DST].xd_dma_segs = &sc->sc_txdr;
dx_desc = &sc->sc_rxdx->dx_desc[DMAC_DESC_DST];