Lines Matching defs:dma_maps
625 struct pciide_dma_maps *dma_maps =
626 &sc->pciide_channels[channel].dma_maps[drive];
629 if (dma_maps->dma_table)
634 IDEDMA_TBL_ALIGN, IDEDMA_TBL_ALIGN, &dma_maps->dmamap_table_seg,
635 1, &dma_maps->dmamap_table_nseg, BUS_DMA_NOWAIT)) != 0) {
641 if ((error = bus_dmamem_map(sc->sc_dmat, &dma_maps->dmamap_table_seg,
642 dma_maps->dmamap_table_nseg, dma_table_size,
643 (void **)&dma_maps->dma_table,
651 "phy 0x%lx\n", dma_maps->dma_table, (u_long)dma_table_size,
652 (unsigned long)dma_maps->dmamap_table_seg.ds_addr), DEBUG_PROBE);
656 &dma_maps->dmamap_table)) != 0) {
663 dma_maps->dmamap_table,
664 dma_maps->dma_table,
672 (unsigned long)dma_maps->dmamap_table->dm_segs[0].ds_addr),
678 &dma_maps->dmamap_xfer)) != 0) {
691 struct pciide_dma_maps *dma_maps;
694 dma_maps = &cp->dma_maps[drive];
696 if (dma_maps->dma_table == NULL)
699 bus_dmamap_destroy(sc->sc_dmat, dma_maps->dmamap_xfer);
700 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_table);
701 bus_dmamap_destroy(sc->sc_dmat, dma_maps->dmamap_table);
702 bus_dmamem_unmap(sc->sc_dmat, dma_maps->dma_table,
704 bus_dmamem_free(sc->sc_dmat, &dma_maps->dmamap_table_seg,
705 dma_maps->dmamap_table_nseg);
707 dma_maps->dma_table = NULL;
718 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
721 dma_maps->dmamap_xfer,
731 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_xfer, 0,
732 dma_maps->dmamap_xfer->dm_mapsize,
736 for (seg = 0; seg < dma_maps->dmamap_xfer->dm_nsegs; seg++) {
737 bus_addr_t phys = dma_maps->dmamap_xfer->dm_segs[seg].ds_addr;
738 bus_size_t len = dma_maps->dmamap_xfer->dm_segs[seg].ds_len;
776 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_xfer);
779 dma_maps->dma_table[seg].base_addr = htole32(phys);
780 dma_maps->dma_table[seg].byte_count =
783 seg, le32toh(dma_maps->dma_table[seg].byte_count),
784 le32toh(dma_maps->dma_table[seg].base_addr)), DEBUG_DMA);
787 dma_maps->dma_table[dma_maps->dmamap_xfer->dm_nsegs -1].byte_count |=
790 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_table, 0,
791 dma_maps->dmamap_table->dm_mapsize,
795 if (dma_maps->dmamap_table->dm_segs[0].ds_addr & ~IDEDMA_TBL_MASK) {
798 (u_long)dma_maps->dmamap_table->dm_segs[0].ds_addr);
803 dma_maps->dma_flags = flags;
815 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
826 dma_maps->dmamap_table->dm_segs[0].ds_addr);
852 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
867 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_xfer, 0,
868 dma_maps->dmamap_xfer->dm_mapsize,
869 (dma_maps->dma_flags & WDC_DMA_READ) ?
871 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_xfer);