DMAC_DESC_SRC
if (dx->dx_desc[DMAC_DESC_SRC].xd_increment) {
dxs->dxs_segs[DMAC_DESC_SRC].ds_nsegs--;
if (dxs->dxs_segs[DMAC_DESC_SRC].ds_nsegs == 0) {
dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg++;
dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg = dx->dx_desc[DMAC_DESC_SRC].xd_dma_segs;
dxs->dxs_segs[DMAC_DESC_SRC].ds_nsegs = dx->dx_desc[DMAC_DESC_SRC].xd_nsegs;
dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg->ds_addr);
DPRINTF(("Source address: 0x%x\n", (unsigned)dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg->ds_addr));
if (dx->dx_desc[DMAC_DESC_SRC].xd_bus_type == DMAC_BUS_TYPE_PERIPHERAL) {
if (dx->dx_desc[DMAC_DESC_SRC].xd_increment) {
if (dx->dx_desc[DMAC_DESC_SRC].xd_increment) {
transfer_size = dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg->ds_len;
dxs->dxs_segs[DMAC_DESC_SRC].ds_curseg->ds_len);
xfer->dx_desc[DMAC_DESC_SRC].xd_bus_type = DMAC_BUS_TYPE_SYSTEM;
xfer->dx_desc[DMAC_DESC_SRC].xd_increment = TRUE;
xfer->dx_desc[DMAC_DESC_SRC].xd_nsegs = buf->i2b_dmamap->dm_nsegs;
xfer->dx_desc[DMAC_DESC_SRC].xd_dma_segs = buf->i2b_dmamap->dm_segs;
xfer->dx_desc[DMAC_DESC_SRC].xd_bus_type = DMAC_BUS_TYPE_PERIPHERAL;
xfer->dx_desc[DMAC_DESC_SRC].xd_increment = FALSE;
xfer->dx_desc[DMAC_DESC_SRC].xd_nsegs = 1;
xfer->dx_desc[DMAC_DESC_SRC].xd_dma_segs = &i2s->sc_dr;
xfer->dx_desc[DMAC_DESC_SRC].xd_bus_type = DMAC_BUS_TYPE_PERIPHERAL;
xfer->dx_desc[DMAC_DESC_SRC].xd_increment = FALSE;
xfer->dx_desc[DMAC_DESC_SRC].xd_nsegs = 1;
xfer->dx_desc[DMAC_DESC_SRC].xd_dma_segs = &sc->sc_dr;
xfer->dx_desc[DMAC_DESC_SRC].xd_bus_type = DMAC_BUS_TYPE_SYSTEM;
xfer->dx_desc[DMAC_DESC_SRC].xd_increment = TRUE;
xfer->dx_desc[DMAC_DESC_SRC].xd_nsegs = cmd->c_dmamap->dm_nsegs;
xfer->dx_desc[DMAC_DESC_SRC].xd_dma_segs = cmd->c_dmamap->dm_segs;
dx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = false;
dx->dx_desc[DMAC_DESC_SRC].xd_nsegs = ad->ad_nsegs;
dx->dx_desc[DMAC_DESC_SRC].xd_dma_segs = ad->ad_segs;
dx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = true;
dx->dx_desc[DMAC_DESC_SRC].xd_nsegs = 1;
dx->dx_desc[DMAC_DESC_SRC].xd_dma_segs = &sc->sc_dr;
src_ds = &dxs->dxs_segs[DMAC_DESC_SRC];
src_xd = &dxs->dxs_desc[DMAC_DESC_SRC];
if (dxs->dxs_segs[DMAC_DESC_SRC].ds_nsegs == 0 ||
#define ds_src_addr_hold ds_xfer.dxs_desc[DMAC_DESC_SRC].xd_addr_hold
#define ds_src_burst ds_xfer.dxs_desc[DMAC_DESC_SRC].xd_burst_size
#define ds_src_dma_segs ds_xfer.dxs_desc[DMAC_DESC_SRC].xd_dma_segs
#define ds_src_nsegs ds_xfer.dxs_desc[DMAC_DESC_SRC].xd_nsegs
src = &dxs->dxs_desc[DMAC_DESC_SRC];
if ((err = dmac_init_desc(&dxs->dxs_segs[DMAC_DESC_SRC], src, &size,
dx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = false;
dx->dx_desc[DMAC_DESC_SRC].xd_nsegs = p->nsegs;
dx->dx_desc[DMAC_DESC_SRC].xd_dma_segs = p->segs;
dx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = true;
dx->dx_desc[DMAC_DESC_SRC].xd_nsegs = 1;
dx->dx_desc[DMAC_DESC_SRC].xd_dma_segs = &sc->sc_dr;
sc->sc_rxdx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = true;
sc->sc_rxdx->dx_desc[DMAC_DESC_SRC].xd_nsegs = 1;
sc->sc_rxdx->dx_desc[DMAC_DESC_SRC].xd_dma_segs = &sc->sc_rxdr;
sc->sc_txdx->dx_desc[DMAC_DESC_SRC].xd_addr_hold = false;
dx_desc = &sc->sc_txdx->dx_desc[DMAC_DESC_SRC];