摘要: ##概要 asoc驱动指基于asoc框架实现的驱动模块,包括platform、codec、DAI、machine。 platform驱动注册接口snd_soc_register_platform codec、codec dai驱动注册接口snd_soc_register_codec machine驱 阅读全文
posted @ 2020-11-12 23:38 bobfly1984 阅读(262) 评论(0) 推荐(0) 编辑
摘要: ##PCM设备创建流程 上图中ops是struct file_operations snd_pcm_f_ops[2],是PCM设备文件操作入口函数。 打开PCM设备文件时,创建相应的pcm substream实例,通过snd_pcm_set_ops()设置pcm substream的pcm操作。 # 阅读全文
posted @ 2020-11-12 23:25 bobfly1984 阅读(369) 评论(0) 推荐(0) 编辑
摘要: ##声卡逻辑设备 逻辑设备最终都是通过snd_device_new()创建。 ##声卡设备 声卡设备通过snd_card_new()创建 ##声卡和逻辑设备关系 阅读全文
posted @ 2020-11-12 23:15 bobfly1984 阅读(568) 评论(0) 推荐(0) 编辑
摘要: ##概述 DAPM机制的入口函数是 dapm_power_widgets。 所谓dapm机制简单来说就是遍历声卡上所有标记为dirty的widget,根据widgets之间path实例的connect状态决定widget和源/目的 widget是否连通。 找到连通的源/目的widget,把其标记为d 阅读全文
posted @ 2020-11-12 23:09 bobfly1984 阅读(389) 评论(0) 推荐(0) 编辑
摘要: ##概要 通过dapm事件机制,widget可以定义自己的event回调函数来监听dapm事件。 有些dapm widget和其它组件 在上下电顺序上有要求,而且这些组件电源不是通过寄存器控制或者说这些组件无法定义成widget注册到dapm框架,通过dapm机制控制其电源。可以通过dapm事件机制 阅读全文
posted @ 2020-11-12 22:40 bobfly1984 阅读(344) 评论(0) 推荐(0) 编辑
摘要: #DAPM ##概要 设计dapm的主要目的之一,就是希望声卡上的各种部件的电源按需分配,需要的就上电,不需要的就下电,使得整个音频系统总是处于最小的耗电状态,最主要的就是,这一切对用户空间的应用程序是透明的,也就是说,用户空间的应用程序无需关心那个部件何时需要电源,它只要按需要设定好音频路径,播放 阅读全文
posted @ 2020-11-12 22:31 bobfly1984 阅读(550) 评论(0) 推荐(0) 编辑
摘要: snd_soc_register_card -->遍历dai link,创建 struct snd_soc_pcm_runtime 实例 -->snd_soc_instantiate_card -->soc_bind_dai_link // 为每个dai link查找 相应的DAI实例(compon 阅读全文
posted @ 2020-11-12 20:36 bobfly1984 阅读(1612) 评论(0) 推荐(0) 编辑
摘要: http://tinylab.org/kernel-explore-regmap-framework/ http://kcmetercec.top/2018/05/25/linux_driver_regmap_usage/ ##regmap 读写逻辑 _regmap_read函数逻辑: 如果设置ca 阅读全文
posted @ 2020-11-12 20:29 bobfly1984 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-11-12 00:06 bobfly1984 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 1:vfs >sysfs >kobject >attibute >kobj_type >sysfs_ops >xxx_attribute,其中kobj_type、sysfs_ops和xxx_attribute都是由包含kobject的上层数据结构实现,例如 struct device等。 2:dri 阅读全文
posted @ 2020-11-12 00:05 bobfly1984 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1:概要 uevent机制就是设备驱动模型中任意设备可以把uevent字符串上报给用户空间。主要用于热插拔设备或设备状态变化时。 无论是usermodehelper还是netlink的方式,uevent对系统性能是有影响的。特别是netlink的方式,上报的event会通知到所有的用户进程,所以还是 阅读全文
posted @ 2020-11-12 00:01 bobfly1984 阅读(1007) 评论(0) 推荐(0) 编辑