asoc总结 2

网友投稿 759 2022-10-16

asoc总结 2

asoc总结 2

1 因为 snd_soc_register_codec snd_soc_register_dai 函数都需要 platform_device 相关数据。 所以 在probe 函数中调用 2 snd_soc_register_codec 中 snd_soc_codec_driver 没用name,那么它会继承 probe函数的参数 platform_device的名字 同样 snd_soc_register_dai中的 snd_soc_dai_drive 也没用name,它也会继承 probe函数的参数 platform_device的名字。 3 codec 跟 platform 都用 snd_soc_dai_driver 用来描述 各自的dai snd_soc_codec_driver 中的 ops 涉及到 启动 关闭 参数设置 4 控制接口:snd_soc_codec_driver 作为codec的驱动,跟 snd_soc_platform_driver 驱动一样辅助自己模块的dai。

codec注意 :

1 .codec_name = “wm8976-codec”, // 对应驱动 codec 文件 .codec_dai_name = “wm8976-iis”, // 对应驱动 codec 文件 .cpu_dai_name = “s3c2440-iis”,

2 其中两个name 会出现在 codec 文件中

3 两个关键点 DAI:snd_soc_dai_driver 描述的是codec的参数 控制接口:snd_soc_codec_driver

4 int snd_soc_register_codec(struct device *dev, const struct snd_soc_codec_driver *codec_drv, struct snd_soc_dai_driver *dai_drv, int num_dai) 上面两个关键点 通过这个函数进行绑定

5 snd_soc_codec_driver (控制接口) 是做什么的? 猜测是 对codec 进行读写 参考​​​Alsa驱动snd_soc_read_driver的实现​​

platform注意:

1 关键点 DAI:snd_soc_dai_drive 2 使用 snd_soc_register_dai 对 snd_soc_dai_drive结构体进行注册 3 snd_soc_dai_drive 描述的是 平台(platform)的参数

platform 扩展

1 关键点 snd_soc_platform_driver

2 snd_soc_platform_driver 作用 (用来控制,似乎主流是dma。辅助cpu跟dai) a 负责管理音频数据 b 把音频数据通过dma或其他操作传送至cpu dai

3 链接函数 snd_soc_register_platform (同样会使 snd_soc_platform_driver 继承 platform_device 的name

4 snd_soc_platform_driver 中的 ops 中的 open函数会 把snd_pcm_substream中的runtime中的hw 成员进行赋值,类型是snd_pcm_hardware. (platform 里面的ops的open,会在应用层的open设备节点的时候,就调用)

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序打开App,小程序打开app技术服务
下一篇:AppFuse- Web开发框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~