Commit 4b417cf01657c8dcd03abb0aa49f3825fede6539

Authored by Arnd Bergmann
Committed by Takashi Iwai
1 parent 7603935838

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>

Showing 1 changed file with 2 additions and 1 deletions Side-by-side Diff

... ... @@ -114,7 +114,7 @@
114 114 }
115 115 }
116 116 dmap->raw_buf = start_addr;
117   - dmap->raw_buf_phys = virt_to_bus(start_addr);
  117 + dmap->raw_buf_phys = dma_map_single(NULL, start_addr, dmap->buffsize, DMA_BIDIRECTIONAL);
118 118  
119 119 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
120 120 SetPageReserved(page);
... ... @@ -139,6 +139,7 @@
139 139 for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++)
140 140 ClearPageReserved(page);
141 141  
  142 + dma_unmap_single(NULL, dmap->raw_buf_phys, dmap->buffsize, DMA_BIDIRECTIONAL);
142 143 free_pages((unsigned long) dmap->raw_buf, sz);
143 144 dmap->raw_buf = NULL;
144 145 }