Home | History | Annotate | Download | only in pci

Lines Matching refs:dma_maps

622 	struct pciide_dma_maps *dma_maps =
623 &sc->pciide_channels[channel].dma_maps[drive];
626 if (dma_maps->dma_table)
631 IDEDMA_TBL_ALIGN, IDEDMA_TBL_ALIGN, &dma_maps->dmamap_table_seg,
632 1, &dma_maps->dmamap_table_nseg, BUS_DMA_NOWAIT)) != 0) {
638 if ((error = bus_dmamem_map(sc->sc_dmat, &dma_maps->dmamap_table_seg,
639 dma_maps->dmamap_table_nseg, dma_table_size,
640 (void **)&dma_maps->dma_table,
648 "phy 0x%lx\n", dma_maps->dma_table, (u_long)dma_table_size,
649 (unsigned long)dma_maps->dmamap_table_seg.ds_addr), DEBUG_PROBE);
653 &dma_maps->dmamap_table)) != 0) {
660 dma_maps->dmamap_table,
661 dma_maps->dma_table,
669 (unsigned long)dma_maps->dmamap_table->dm_segs[0].ds_addr),
675 &dma_maps->dmamap_xfer)) != 0) {
688 struct pciide_dma_maps *dma_maps;
691 dma_maps = &cp->dma_maps[drive];
693 if (dma_maps->dma_table == NULL)
696 bus_dmamap_destroy(sc->sc_dmat, dma_maps->dmamap_xfer);
697 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_table);
698 bus_dmamap_destroy(sc->sc_dmat, dma_maps->dmamap_table);
699 bus_dmamem_unmap(sc->sc_dmat, dma_maps->dma_table,
701 bus_dmamem_free(sc->sc_dmat, &dma_maps->dmamap_table_seg,
702 dma_maps->dmamap_table_nseg);
704 dma_maps->dma_table = NULL;
715 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
718 dma_maps->dmamap_xfer,
728 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_xfer, 0,
729 dma_maps->dmamap_xfer->dm_mapsize,
733 for (seg = 0; seg < dma_maps->dmamap_xfer->dm_nsegs; seg++) {
734 bus_addr_t phys = dma_maps->dmamap_xfer->dm_segs[seg].ds_addr;
735 bus_size_t len = dma_maps->dmamap_xfer->dm_segs[seg].ds_len;
773 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_xfer);
776 dma_maps->dma_table[seg].base_addr = htole32(phys);
777 dma_maps->dma_table[seg].byte_count =
780 seg, le32toh(dma_maps->dma_table[seg].byte_count),
781 le32toh(dma_maps->dma_table[seg].base_addr)), DEBUG_DMA);
784 dma_maps->dma_table[dma_maps->dmamap_xfer->dm_nsegs -1].byte_count |=
787 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_table, 0,
788 dma_maps->dmamap_table->dm_mapsize,
792 if (dma_maps->dmamap_table->dm_segs[0].ds_addr & ~IDEDMA_TBL_MASK) {
795 (u_long)dma_maps->dmamap_table->dm_segs[0].ds_addr);
800 dma_maps->dma_flags = flags;
812 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
823 dma_maps->dmamap_table->dm_segs[0].ds_addr);
849 struct pciide_dma_maps *dma_maps = &cp->dma_maps[drive];
864 bus_dmamap_sync(sc->sc_dmat, dma_maps->dmamap_xfer, 0,
865 dma_maps->dmamap_xfer->dm_mapsize,
866 (dma_maps->dma_flags & WDC_DMA_READ) ?
868 bus_dmamap_unload(sc->sc_dmat, dma_maps->dmamap_xfer);