高通音频驱动录音流程(五)
mixer path 设置过程分析


snd_soc_register_card

  • 录音通路配置
  • 调用tinycap命令时的音频播放流程

网上关于音频驱动的文章,大多是进行框架性的介绍,关于音频驱动控件的配置及录音播放介绍的很少,下面就已高通sm6350的mic通路配置及录音的配置,进行音频驱动流程的介绍。

录音通路配置

/* 下面这三个是对swr侧进行配置 */
tinymix "TX DEC1 MUX" "SWR_MIC"
tinymix "TX SMIC MUX1" "ADC0"
tinymix "TX_AIF1_CAP Mixer DEC1" "1"
/* Enables soundwire slave device data path */
tinymix "ADC1_MIXER Switch" "1"
/* 配置DMA的channel及bolero的音量增益 */
tinymix "TX_CDC_DMA_TX_3 Channels" "One"
tinymix "TX_DEC1 Volume" "80"
/* 将fe与be连接,其中MultiMedia1对应的时deep buffer playback */
tinymix "MultiMedia1 Mixer TX_CDC_DMA_TX_3" "1"

调用tinycap命令时的音频播放流程

tinycap /sdcard/Music/test.wav -c 1 -r 48000 -b 16 -T 10

pcm->fd = open(fn, O_RDWR|O_NONBLOCK);snd_opensnd_pcm_capture_opensnd_pcm_opensnd_pcm_open_filesnd_pcm_open_substreamsubstream->ops->open(substream))dpcm_fe_dai_opendpcm_fe_dai_startupdpcm_be_dai_startupsoc_pcm_opencpu_dai->driver->ops->startup(substream, cpu_dai)component->driver->ops->open(substream)codec_dai->driver->ops->startup(substream, codec_dai)rtd->dai_link->ops->startup(substream);
ioctl(pcm->fd, SNDRV_PCM_IOCTL_INFO, &info))snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_info_usersnd_pcm_info
ioctl(pcm->fd, SNDRV_PCM_IOCTL_HW_PARAMS, &params)snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_hw_params_usersnd_pcm_hw_paramssubstream->ops->hw_params(substream, params);dpcm_fe_dai_hw_paramsdpcm_be_dai_hw_paramsrtd->dai_link->be_hw_params_fixup(rtd, params)rtd->dai_link->ops->hw_params(substream, params)soc_dai_hw_params(substream, &codec_params, codec_dai)soc_dai_hw_params(substream, params, cpu_dai)rtd->dai_link->be_hw_params_fixup(rtd, params)dai->driver->ops->hw_params(substream, params, dai)component->driver->ops->hw_params(substream, params)ioctl(pcm->fd, SNDRV_PCM_IOCTL_SW_PARAMS, &sparams)snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_sw_params_usersnd_pcm_sw_params
ioctl(pcm->fd, SNDRV_PCM_IOCTL_PREPARE)snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_preparesnd_pcm_action_nonatomicsnd_pcm_action_preparesubstream->ops->prepare(substream)dpcm_fe_dai_preparedpcm_be_dai_preparesoc_pcm_preparertd->dai_link->ops->prepare(substream)component->driver->ops->prepare(substream)codec_dai->driver->ops->prepare(substream, codec_dai)cpu_dai->driver->ops->prepare(substream, cpu_dai)dai->driver->ops->mute_stream(dai, mute, direction)
ioctl(pcm->fd, SNDRV_PCM_IOCTL_START)snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_start_lock_irqsnd_pcm_action_lock_irqsnd_pcm_action_startsubstream->ops->trigger(substream, SNDRV_PCM_TRIGGER_START)dpcm_fe_dai_triggerdpcm_fe_dai_do_triggerdpcm_dai_trigger_fe_bedpcm_be_dai_triggersoc_pcm_triggercodec_dai->driver->ops->trigger(substream, cmd, codec_dai)                                 cmponent->driver->ops->trigger(substream, cmd)cpu_dai->driver->ops->trigger(substream, cmd, cpu_dai)rtd->dai_link->ops->trigger(substream, cmd)ioctl(pcm->fd, SNDRV_PCM_IOCTL_READI_FRAMES, &x)snd_pcm_ioctlsnd_pcm_common_ioctlsnd_pcm_xferi_frames_ioctlsnd_pcm_lib_read__snd_pcm_lib_xfer

高通音频驱动录音流程(五)相关推荐

  1. 高通音频驱动录音流程(二)

    高通音频驱动录音流程(二) 目录 高通音频驱动录音流程(二) Front End CPU的注册 Front End Codec注册 Front End PCM的注册 Front End CPU的注册 ...

  2. 高通音频驱动录音流程(三)

    高通音频驱动录音流程(三) 目录 高通音频驱动录音流程(三) Back End CPU的注册 Back End Codec注册 Back End PCM的注册 Back End CPU的注册 vend ...

  3. 高通音频驱动调试(十七)

    android audio 生产者与消费者 简介 全面接触生产者/消费者问题是在操作系统原理中,并发性原理讨论的问题 生产者/消费者问题.最近的工作偏向音频,接着上一篇文章,用生产者,消费者模型来理解 ...

  4. 【Android驱动】高通Camera代码probe流程

    参看博客: Android camera架构: 基于qualcomm平台的camera 驱动详解_Winston-CSDN博客_高通camera驱动架构 Android Camera MSM HAL: ...

  5. 高通平台RF配置流程

    高通平台RF配置流程 **注:**本文参考项目路径和代码为SIM7600 LE20分支 1 准备工作 需要的资料: 各个器件的datasheet 原理图 逻辑表(内容包含支持哪些制式.band,各个b ...

  6. 高通msm-V4L2-Camera驱动浅析5-buffer

    ##系列文章 高通msm-V4L2-Camera驱动浅析1-初识 高通msm-V4L2-Camera驱动浅析2-框架详解 高通msm-V4L2-Camera驱动浅析3-session 上一篇文章讲到传 ...

  7. 高通msm-V4L2-Camera驱动浅析1-初识

    ##系列文章 ##系列文章 高通msm-V4L2-Camera驱动浅析1-初识 高通msm-V4L2-Camera驱动浅析2-框架详解 高通msm-V4L2-Camera驱动浅析3-session 前 ...

  8. 高通LCD bring up流程

    高通LCD bring up流程 前言 kernel 添加LCD的dtsi 将屏的dtsi放到平台的dtsi中 电压配置 lk 添加屏的.h文件 Panel configuration Panel r ...

  9. 高通Camera 驱动调试要点(一)

    高通Camera 驱动调试要点(一)_bobuddy的博客-CSDN博客_camera 驱动调试

最新文章

  1. python图片旋转脚本_Python+OpenCV 实现图片无损旋转90°且无黑边
  2. 图解Java的substring()方法底层干了啥?
  3. python 基础学习 正则表达式1(规则)
  4. 一文读懂JDK7,8,JD9的HashMap,HashTable,ConcurrentHashMap及他们的区别
  5. 行业谈实践,客户送祝福
  6. 美链BEC合约漏洞技术分析
  7. 数字调制2ASK误码率分析matlab实现
  8. 大数据教你实现预测未来,这不是梦
  9. SpringBoot+拦截器+自定义异常+自定义注解+全局异常处理简单实现接口权限管理...
  10. python如何计算个人gpa_【Python】计算GPA | 学步园
  11. Windows自动关机命令脚本
  12. 直接选择排序算法时间 / 空间复杂度
  13. MetaMask账号注册
  14. 解决fegin post requestbody 400报错问题
  15. 用C语言编程验证 “ 哥德巴赫猜想 ”
  16. IKAnalyzer 配置文件介绍
  17. GLES2.0中文API-glGet
  18. mysql 开源入门_入门教程:安装配置新版MySQL 8开源数据库
  19. 阿里云 幸运券 分享 2017 10
  20. 惠普HP Deskjet F378 多功能一体机驱动

热门文章

  1. python QRcode
  2. [构造]Repetitions Decoding Codeforces1642D
  3. 视频剪辑工具:剪映专业版 for Mac
  4. 企业在产品同质化的今天如何提高竞争力
  5. 2018年90后薪资报告出炉:看看你被甩了多远!
  6. 《保健养生》---保健专家齐国力[2]
  7. 用 kali 工具 apache 搭建简易网站 LAMP
  8. dedeCMS采集规则各大CMS采集规则通用
  9. 免费顺丰快递鸟单号查询不限次数api接口申请步骤
  10. 五年程序员工作小结技巧