static void gk20a_ram_put(struct nouveau_fb *pfb, struct nouveau_mem **pmem) { struct gk20a_mem *mem = to_gk20a_mem(*pmem); *pmem = NULL; if (unlikely(mem == NULL)) return; #if defined(__NetBSD__) if (likely(mem->base.pages)) { const bus_dma_tag_t dmat = nv_device(pfb)->platformdev->dmat; bus_dmamap_unload(dmat, mem->base.pages); bus_dmamem_unmap(dmat, mem->cpuaddr, mem->dmasize); bus_dmamap_destroy(dmat, mem->base.pages); bus_dmamem_free(dmat, &mem->dmaseg, 1); } #else struct device *dev = nv_device_base(nv_device(pfb)); if (likely(mem->cpuaddr)) dma_free_coherent(dev, mem->base.size << PAGE_SHIFT, mem->cpuaddr, mem->handle); kfree(mem->base.pages); #endif kfree(mem); }
static void gk20a_ram_put(struct nouveau_fb *pfb, struct nouveau_mem **pmem) { struct device *dev = nv_device_base(nv_device(pfb)); struct gk20a_mem *mem = to_gk20a_mem(*pmem); *pmem = NULL; if (unlikely(mem == NULL)) return; if (likely(mem->cpuaddr)) dma_free_coherent(dev, mem->base.size << PAGE_SHIFT, mem->cpuaddr, mem->handle); kfree(mem->base.pages); kfree(mem); }