当前位置: 技术问答>linux和unix
alsa driver ,dma_alloc_coherent問題
来源: 互联网 发布时间:2016-05-30
本文导语: 為什麼當我用dma_alloc_coherent時 request_irq的callback才會被執行到 如果用snd_pcm_lib_malloc_pages分配dma時 就不會執行到request_irq的callback ; why? | static int snd_nxc2600_hw_params(struct snd_pcm_substream *substream, st...
為什麼當我用dma_alloc_coherent時
request_irq的callback才會被執行到
如果用snd_pcm_lib_malloc_pages分配dma時
就不會執行到request_irq的callback
; why?
request_irq的callback才會被執行到
如果用snd_pcm_lib_malloc_pages分配dma時
就不會執行到request_irq的callback
; why?
|
static int snd_nxc2600_hw_params(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *hw_params)
{
struct audio_stream *stream = substream->private_data;
int err;
err = snd_pcm_lib_malloc_pages(substream,
params_buffer_bytes(hw_params));
if (substream->dma_addr == 0)
substream->dam_addr = virt_to_phy(substream->dma_area);
return 0;
}
不行吗?
如果系统有 DMA 内存,那么这个 snd_pcm_lib_malloc_pages 里面会调用 dma_alloc_coherent...