其中函数set_dma_cll是设置dma链的,dma传输时用户空间的buffer大小为64k,分为16个块(block),每个块为4k,dma启用多块传输,当一个块传输完成后,都会会写刚刚使用的那个LLI中的CTL寄存器中的高32位,将其中的第13位置1,并且会产生块传输完成中断,中断处理程序会通知上层,往bufffer里写数据。dma链如下所示。
ALSA 驱动中dma的配置(2)
内容版权声明:除非注明,否则皆为本站原创文章。
其中函数set_dma_cll是设置dma链的,dma传输时用户空间的buffer大小为64k,分为16个块(block),每个块为4k,dma启用多块传输,当一个块传输完成后,都会会写刚刚使用的那个LLI中的CTL寄存器中的高32位,将其中的第13位置1,并且会产生块传输完成中断,中断处理程序会通知上层,往bufffer里写数据。dma链如下所示。
内容版权声明:除非注明,否则皆为本站原创文章。