|
@@ -114,7 +114,7 @@ static int sound_alloc_dmap(struct dma_buffparms *dmap)
|
|
|
}
|
|
|
}
|
|
|
dmap->raw_buf = start_addr;
|
|
|
- dmap->raw_buf_phys = virt_to_bus(start_addr);
|
|
|
+ dmap->raw_buf_phys = dma_map_single(NULL, start_addr, dmap->buffsize, DMA_BIDIRECTIONAL);
|
|
|
|
|
|
for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
|
|
|
SetPageReserved(page);
|
|
@@ -139,6 +139,7 @@ static void sound_free_dmap(struct dma_buffparms *dmap)
|
|
|
for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
|
|
|
ClearPageReserved(page);
|
|
|
|
|
|
+ dma_unmap_single(NULL, dmap->raw_buf_phys, dmap->buffsize, DMA_BIDIRECTIONAL);
|
|
|
free_pages((unsigned long) dmap->raw_buf, sz);
|
|
|
dmap->raw_buf = NULL;
|
|
|
}
|