• 展锐平台音频框架


    Audio DT介绍

    1.概述

    DT(Device Tree)是一种描述硬件的数据结构,DTS即设备树源码。

    2.Audio DTS 文件架构

    \bsp\kernel\kernel.4.14\arch\arm64\boot\sprd

    ums512.dts   //SOC级相关节点

    ——sc2730.dtsi  //Codec

    ——sharkl5Pro.dtsi  //Platform、VBC、I2S、audio misc

    ——sprd-sound-fe-be.dtsi //headset\sound card

    ——extra_sound_card_component.dtsi  //Ext Smart PA 的dai-link

    如果同一个SOC对应不同的board,则需要添加对应类似ums521-1h10-overlay.dtsi文件加以区分

    3.Audio 各个模块DT 详解

    3.1 Code 级DT

    3.2 CPU 级DT

    VBC DT、I2S DT、sprd_fe_dai DT(sound card FE/BE 架构里)

    3.3 Platform 级DT

    (1)一类是面向DAL-Link 的FE,主要实现了DMA相关的设置已经数据流向的控制

    sprd_pcm,sprd_comper,sprd_pcm_iis

    (2)一类用于DAI-Link 的BE,实现与FE的连接

    sprd_route_pcm

    3.4 声卡DT

    sprdphone card 和 I2S card 两种声卡

    4.SOC 级 DT

    5.常用参数

    compatible status reg

    音频驱动概述

    1.音频硬件概述

    第三方smartPA接在VBC上,与平台Codec 处于并列位置

    数据流向:AP _>  ADSP _>  VBC  _>  Codec

    2.音频驱动结构

    2.1FE 与 BE 的定义

    在android 平台上,音频驱动采用DPCM 的 方式(即PCM device)对FE进行固定,BE 采用动态配置的方式进行选择

    2.2 FE 与 BE 的分类

    FE 根据stream 的属性进行分类

    BE 根据FE与输出、输入的硬件类别进行分类

    2.3 动态连接与驱动实现

    2.3.1 动态连接

    FE 与 BE 通过 Switch control进行链接,在audio_route.xml 中根据场景进行动态配置

    2.3.2 驱动实现

    snd_dai_driver 结构体定义的实例中

    .probe 表示 DAI 控件和 DAI 接口

    .stream_name 表示 DAI控件

    .aif_name 表示 DAI路由接口

    xxx_dai_ops 表示DMA 操作

    SPRD Audio 介绍

    AudioPolicy

    AudioPolicyManagerSprd ——> AudioPolicyManager  ——> Audio_policy_Configuration.xml

    2.1 AudioPolicy 配置

    2.2.1 engine 配置

    AudioPolicy 支持2种 engine:

    default:策略通过代码实现

    configurable:策略通过配置实现

  • 相关阅读:
    【python】anaconda使用指南
    redisson springboot配置
    瑞吉外卖项目Day07-缓存优化
    总结影响系统健壮性的一些因素
    2023高频前端面试题-vue
    医疗在线OLAP场景下基于Apache Hudi 模式演变的改造与应用
    UDS知识整理(六):通讯控制——0x28服务
    详细解说iptables 高阶用法,用来完成哪些高效率网络路由策略场景,iptables 实现域名过滤,Linux如何利用iptables屏蔽某些域名?
    cat命令详解
    什么是0day漏洞?如何预防0day攻击?
  • 原文地址:https://blog.csdn.net/weixin_41274501/article/details/132595719