打印
[i.MX]

MX6下使用WM8962偶发收不到DMA中断

[复制链接]
1147|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zoe6553|  楼主 | 2015-5-19 10:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的MX6平台使用WM8962作为音频芯片,跑android4.4。目前发生了音乐播放时反复点击播放/暂停按钮会偶发播放进程卡住的现象。经调试发现在BUG复现时,snd_pcm_update_hw_ptr0()这个函数会走到 no_delta_check:
        if (runtime->status->hw_ptr == new_hw_ptr){
                return 0;
        }

之后就再也不走到这个函数导致等待进程不会被唤醒。而且snd_pcm_period_elapsed()这个函数也没有再被走到过,说明DMA再没有触发过中断。在ALSA方面小弟刚接触不久,希望各位大侠能给点意见

相关帖子

沙发
FSL_TICS_Rita| | 2015-5-19 16:26 | 只看该作者
非常感谢你的技术问题。我们建议您将此i.mx的技术问题提交到飞思卡尔的英文论坛。网址是https://community.freescale.com/welcome 谢谢。

使用特权

评论回复
板凳
zoe6553|  楼主 | 2015-5-19 17:20 | 只看该作者
问了,但没有回音~~

使用特权

评论回复
地板
zoe6553|  楼主 | 2015-5-22 16:05 | 只看该作者
更新下这个BUG的进展,目前已经排除了不少因素,看到BUG复现时,按下播放按钮,alsa pcm会调用trigger,IMX6的Code是调用了snd_imx_pcm_trigger(..., int cmd), cmd = SNDRV_PCM_TRIGGER_START, 这里面会按照传进来的DMA描述符来传输数据了,传输完成后会触发中断并调用描述符的回掉函数,但是在BUG复现的时候居然就使能channel后不产生中断。 在往后我有点没方向了,按理说我不应该再怀疑MX6的DMA,但除此之外我不知道还应该往哪些方向再去试了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

1

粉丝