ALSA: pcm - fix page conversion on non-coherent MIPS arch
[safe/jmp/linux-2.6] / sound / core / pcm_native.c
index c906be2..e48c5f6 100644 (file)
@@ -3066,6 +3066,10 @@ static inline struct page *
 snd_pcm_default_page_ops(struct snd_pcm_substream *substream, unsigned long ofs)
 {
        void *vaddr = substream->runtime->dma_area + ofs;
+#if defined(CONFIG_MIPS) && defined(CONFIG_DMA_NONCOHERENT)
+       if (substream->dma_buffer.dev.type == SNDRV_DMA_TYPE_DEV)
+               return virt_to_page(CAC_ADDR(vaddr));
+#endif
        return virt_to_page(vaddr);
 }