sound: oss/dmabuf: use dma_map_single
The virt_to_bus/bus_to_virt functions have been deprecated for as long as I can remember, and they are used in very few remaining instances, usually in obscure ISA device drivers. The OSS sound drivers are the only ones that are still used on the ARM architecture, and only on some of the earliest StrongARM machines. The problem for converting the OSS subsystem to use dma_map_single instead is that the caller of virt_to_bus does not have a device pointer, since the subsystem has never been ported to use the common device infrastructure. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
7603935838
commit
4b417cf016
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue