为什么以及何时应该实现snd_pcm_ops?

时间:2017-03-10 05:43:16

标签: linux alsa

我不知道我是否可以在这里问。

我正在尝试了解Linux中的Alsa驱动程序。

我对编解码器驱动程序,机器驱动程序和平台驱动程序有所了解。

编解码器驱动程序: 此驱动程序用于编解码器特定的内容。

计算机驱动程序: 此驱动程序绑定编解码器驱动程序和平台驱动程序。

平台驱动程序: 此驱动程序注册与平台相关的dai和DMA。

最近我找到了一个平台驱动程序,他们使用snd_pcm_ops并且他们没有在他们的探测中注册任何dai ops和DMA相关的东西。

/* define all pcm ops of hi6210 pcm */
static struct snd_pcm_ops hi6210_pcm_ops = {
    .open       = hi6210_pcm_open,
    .close      = hi6210_pcm_close,
    .ioctl      = snd_pcm_lib_ioctl,
    .hw_params  = hi6210_pcm_hw_params,
    .hw_free    = hi6210_pcm_hw_free,
    .prepare    = hi6210_pcm_prepare,
    .trigger    = hi6210_pcm_trigger,
    .pointer    = hi6210_pcm_pointer,
};
/* Code from an Android mobile kernel */

我只是想了解我们应该使用snd_pcm_ops注册我们的平台驱动程序的时间和原因。

我找到了doc,我无法理解我们可以使用它们的情况。

我们从未在RPI i2s驱动程序中使用过那些。

有人能解释一下这个吗?

0 个答案:

没有答案