首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASoC驱动程序:哪些文件是平台、机器和编解码器驱动程序?

ASoC驱动程序:哪些文件是平台、机器和编解码器驱动程序?
EN

Stack Overflow用户
提问于 2013-11-21 01:34:41
回答 2查看 4.4K关注 0票数 5

在导航Linux ASoC文件时,哪些文件属于以下类别:

  • 站台司机:?(某地/soc/ ?)
  • 机器司机:?(某地/soc/ ?)
  • 编解码器驱动程序:声音/soc/编解码器/partname.c

来自内核文档:https://www.kernel.org/doc/Documentation/sound/alsa/soc/overview.txt

为了实现这一切,ASoC基本上将嵌入式音频系统分为三个组件:-

  • 编解码器驱动程序:编解码器驱动程序与平台无关,包含音频控制、音频接口功能、编解码器DAPM定义和编解码IO功能。
  • 平台驱动程序:平台驱动程序包含该平台的音频DMA引擎和音频接口驱动程序(例如I2S、AC97、PCM)。
  • 机器驱动程序:机器驱动程序处理任何特定于机器的控件和音频事件(例如,在播放开始时打开一个放大器)。

另外,这些碎片的发射点在哪里?(当我发现它们在哪个文件中时,可能是不言自明的)

EN

回答 2

Stack Overflow用户

发布于 2019-01-06 09:09:37

参考这个链接https://01.org/linuxgraphics/gfx-docs/drm/sound/soc/index.html,它对ASOC有很好的解释。

编解码类驱动程序:编解码类驱动程序与平台无关,包含音频控件、音频接口功能、编解码器定义和编解码IO功能。如果需要,此类扩展到BT、FM和调制解调器集成电路。编解码器类驱动程序应该是通用代码,可以在任何体系结构和机器上运行。

平台类驱动程序:平台类驱动程序包括音频DMA引擎驱动程序、数字音频接口驱动程序(DAI)驱动程序(如I2S、AC97、PCM)以及该平台的任何音频驱动程序。

机器类驱动程序:--机器驱动程序类充当描述和绑定其他组件驱动程序的胶水,从而形成一个ALSA“声卡设备”。它处理任何特定于机器的控件和机器级音频事件(例如,在播放开始时打开一个放大器)。

您可以将此信息与源代码匹配,以找到相应的编解码器、平台和机器驱动程序。

示例

代码驱动程序: https://elixir.bootlin.com/linux/latest/source/sound/soc/codecs/max98927.c

平台驱动程序: https://elixir.bootlin.com/linux/latest/source/sound/soc/qcom/lpass-platform.c

机器驱动程序: https://elixir.bootlin.com/linux/latest/source/sound/soc/qcom/sdm845.c

票数 2
EN

Stack Overflow用户

发布于 2019-11-06 13:10:50

CL的答案可以作为经验法则。

但是,我认为最好的方法是通过分析驱动程序代码所使用的结构来确定哪个文件有哪个驱动程序代码(平台、机器、编解码器)。

编解码类驱动程序必须提供DAI的PCM配置。因此,它必须有一个struct snd_soc_dai_driver实例。此外,还必须定义音频控件和DAPM处理程序,这是通过使用struct snd_soc_codec_driver完成的。

更多信息这里

平台驱动程序必须定义PCM操作。这是通过使用struct snd_pcm_ops完成的

机器驱动程序充当两者之间的纽带。因此,它必须使用struct snd_soc_dai_link。这个结构有成员cpu_dai_namecodec_dai_name,用于提到将要链接的平台和编解码器驱动程序。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20110801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档