微前端架构如何改变企业的开发模式与效率提升
759
2022-10-16
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~