Logo

Linux 内核

6.13.0-rc6

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 API
  • 驱动程序 API
  • 子系统
    • 核心子系统
    • 人机界面
      • 输入文档
      • 人机接口设备 (HID)
      • 声音子系统文档
      • GPU 驱动程序开发人员指南
      • 帧缓冲区
      • LED
    • 网络接口
    • 存储接口
    • 其他子系统
  • 锁定
  • 许可规则
  • 编写文档
  • 开发工具
  • 测试指南
  • 黑客指南
  • 跟踪
  • 故障注入
  • 热补丁
  • Rust
  • 管理
  • 构建系统
  • 报告问题
  • 用户空间工具
  • 用户空间 API
  • 固件
  • 固件和设备树
  • CPU 架构
  • 未分类的文档
  • 翻译

本页

  • 显示源代码

英特尔平台上的 HDAudio 多链路扩展¶

版权:

© 2023 英特尔公司

本文档记录了 2015 年随 Skylake 处理器引入的“多链路结构”,以及最近在较新的英特尔平台上的扩展

HDaudio 现有链路映射(2015 年在 Skylake 中添加)¶

外部 HDAudio 编解码器由链路 #0 处理,而用于 HDMI/DisplayPort 的 iDISP 编解码器由链路 #1 处理。

对 2015 年定义的唯一更改是声明 LCAP.ALT=0x0 - 由于 ALT 位之前是保留的,这是一个向后兼容的更改。

退出复位时会自动设置 LCTL.SPA 和 LCTL.CPA。它们仅在现有驱动程序需要校正 SCF 值时使用。

HDAudio 编解码器的基本结构¶

+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |---+
+-----------+   |
                |
                +--> 0x0 +---------------+ LCAP
                         | ALT=0         |
                         +---------------+
                         | S192          |
                         +---------------+
                         | S96           |
                         +---------------+
                         | S48           |
                         +---------------+
                         | S24           |
                         +---------------+
                         | S12           |
                         +---------------+
                         | S6            |
                         +---------------+

                     0x4 +---------------+ LCTL
                         | INTSTS        |
                         +---------------+
                         | CPA           |
                         +---------------+
                         | SPA           |
                         +---------------+
                         | SCF           |
                         +---------------+

                     0x8 +---------------+ LOSIDV
                         | L1OSIVD15     |
                         +---------------+
                         | L1OSIDV..     |
                         +---------------+
                         | L1OSIDV1      |
                         +---------------+

                     0xC +---------------+ LSDIID
                         | SDIID14       |
                         +---------------+
                         | SDIID...      |
                         +---------------+
                         | SDIID0        |
                         +---------------+

SoundWire HDAudio 扩展链路映射¶

当 LCAP.ALT=1 且 LEPTR.ID=0 时,标识 SoundWire 扩展链路。

DMA 控制使用现有的 LOSIDV 寄存器。

更改包括早期版本中不存在的用于枚举的额外描述。

  • 多链路同步:LCAP.LSS 中的功能以及 LSYNC 中的控制

  • LCAP.LSCOUNT 中的子链路(管理器 IP)数量

  • 电源管理从 SHIM 移至 LCTL.SPA 位

  • 移交给 DSP 以访问多链路寄存器,SHIM/IP 使用 LCTL.OFLEN

  • SoundWire 编解码器到 SDI ID 位的映射

  • SHIM 和 Cadence 寄存器移动到不同的偏移量,功能没有变化。LEPTR.PTR 值是从 ML 地址开始的偏移量,默认值为 0x30000。

SoundWire 的扩展结构(假设 4 个管理器 IP)¶

+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+   |
                |
                +--> 0x0 +---------------+ LCAP
                         | ALT=1         |
                         +---------------+
                         | INTC          |
                         +---------------+
                         | OFLS          |
                         +---------------+
                         | LSS           |
                         +---------------+
                         | SLCOUNT=4     |-----------+
                         +---------------+           |
                                                     |
                     0x4 +---------------+ LCTL      |
                         | INTSTS        |           |
                         +---------------+           |
                         | CPA (x bits)  |           |
                         +---------------+           |
                         | SPA (x bits)  |           |
                         +---------------+         for each sublink x
                         | INTEN         |           |
                         +---------------+           |
                         | OFLEN         |           |
                         +---------------+           |
                                                     |
                     0x8 +---------------+ LOSIDV    |
                         | L1OSIVD15     |           |
                         +---------------+           |
                         | L1OSIDV..     |           |
                         +---------------+           |
                         | L1OSIDV1      |       +---+----------------------------------------------------------+
                         +---------------+       |                                                              |
                                                 v                                                              |
           0xC + 0x2 * x +---------------+ LSDIIDx    +---> 0x30000  +-----------------+  0x00030000            |
                         | SDIID14       |            |              | SoundWire SHIM  |                        |
                         +---------------+            |              | generic         |                        |
                         | SDIID...      |            |              +-----------------+  0x00030100            |
                         +---------------+            |              | SoundWire IP    |                        |
                         | SDIID0        |            |              +-----------------+  0x00036000            |
                         +---------------+            |              | SoundWire SHIM  |                        |
                                                      |              | vendor-specific |                        |
                    0x1C +---------------+ LSYNC      |              +-----------------+                        |
                         | CMDSYNC       |            |                                                         v
                         +---------------+            |              +-----------------+  0x00030000 + 0x8000 * x
                         | SYNCGO        |            |              | SoundWire SHIM  |
                         +---------------+            |              | generic         |
                         | SYNCPU        |            |              +-----------------+  0x00030100 + 0x8000 * x
                         +---------------+            |              | SoundWire IP    |
                         | SYNPRD        |            |              +-----------------+  0x00036000 + 0x8000 * x
                         +---------------+            |              | SoundWire SHIM  |
                                                      |              | vendor-specific |
                    0x20 +---------------+ LEPTR      |              +-----------------+
                         | ID = 0        |            |
                         +---------------+            |
                         | VER           |            |
                         +---------------+            |
                         | PTR           |------------+
                         +---------------+

DMIC HDAudio 扩展链路映射¶

当设置 LCAP.ALT=1 和 LEPTR.ID=0xC1 时,标识 DMIC 扩展链路。

DMA 控制使用现有的 LOSIDV 寄存器

更改包括早期版本中不存在的用于枚举的额外描述。

  • 多链路同步:LCAP.LSS 中的功能以及 LSYNC 中的控制

  • 使用 LCTL.SPA 位进行电源管理

  • 移交给 DSP 以访问多链路寄存器,SHIM/IP 使用 LCTL.OFLEN

  • DMIC 寄存器移动到不同的偏移量,功能没有变化。LEPTR.PTR 值是从 ML 地址开始的偏移量,默认值为 0x10000。

DMIC 的扩展结构¶

+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+   |
                |
                +--> 0x0 +---------------+ LCAP
                         | ALT=1         |
                         +---------------+
                         | INTC          |
                         +---------------+
                         | OFLS          |
                         +---------------+
                         | SLCOUNT=1     |
                         +---------------+

                     0x4 +---------------+ LCTL
                         | INTSTS        |
                         +---------------+
                         | CPA           |
                         +---------------+
                         | SPA           |
                         +---------------+
                         | INTEN         |
                         +---------------+
                         | OFLEN         |
                         +---------------+           +---> 0x10000  +-----------------+  0x00010000
                                                     |              | DMIC SHIM       |
                     0x8 +---------------+ LOSIDV    |              | generic         |
                         | L1OSIVD15     |           |              +-----------------+  0x00010100
                         +---------------+           |              | DMIC IP         |
                         | L1OSIDV..     |           |              +-----------------+  0x00016000
                         +---------------+           |              | DMIC SHIM       |
                         | L1OSIDV1      |           |              | vendor-specific |
                         +---------------+           |              +-----------------+
                                                     |
                    0x20 +---------------+ LEPTR     |
                         | ID = 0xC1     |           |
                         +---------------+           |
                         | VER           |           |
                         +---------------+           |
                         | PTR           |-----------+
                         +---------------+

SSP HDAudio 扩展链路映射¶

当设置 LCAP.ALT=1 和 LEPTR.ID=0xC0 时,标识 DMIC 扩展链路。

DMA 控制使用现有的 LOSIDV 寄存器

更改包括早期版本中不存在的用于枚举和控制的额外描述:- LCAP.LSCOUNT 中的子链路数量(SSP IP 实例)- 电源管理从 SHIM 移至 LCTL.SPA 位 - 将访问多链路寄存器移交给 DSP,SHIM/IP 使用 LCTL.OFLEN - SHIM 和 SSP IP 寄存器移动到不同的偏移量,功能没有变化。LEPTR.PTR 值是从 ML 地址开始的偏移量,默认值为 0x28000。

SSP 的扩展结构(假设 IP 有 3 个实例)¶

+-----------+
| ML cap #0 |
+-----------+
| ML cap #1 |
+-----------+
| ML cap #2 |---+
+-----------+   |
                |
                +--> 0x0 +---------------+ LCAP
                         | ALT=1         |
                         +---------------+
                         | INTC          |
                         +---------------+
                         | OFLS          |
                         +---------------+
                         | SLCOUNT=3     |-------------------------for each sublink x -------------------------+
                         +---------------+                                                                     |
                                                                                                               |
                     0x4 +---------------+ LCTL                                                                |
                         | INTSTS        |                                                                     |
                         +---------------+                                                                     |
                         | CPA (x bits)  |                                                                     |
                         +---------------+                                                                     |
                         | SPA (x bits)  |                                                                     |
                         +---------------+                                                                     |
                         | INTEN         |                                                                     |
                         +---------------+                                                                     |
                         | OFLEN         |                                                                     |
                         +---------------+           +---> 0x28000  +-----------------+  0x00028000            |
                                                     |              | SSP SHIM        |                        |
                     0x8 +---------------+ LOSIDV    |              | generic         |                        |
                         | L1OSIVD15     |           |              +-----------------+  0x00028100            |
                         +---------------+           |              | SSP IP          |                        |
                         | L1OSIDV..     |           |              +-----------------+  0x00028C00            |
                         +---------------+           |              | SSP SHIM        |                        |
                         | L1OSIDV1      |           |              | vendor-specific |                        |
                         +---------------+           |              +-----------------+                        |
                                                     |                                                         v
                    0x20 +---------------+ LEPTR     |              +-----------------+  0x00028000 + 0x1000 * x
                         | ID = 0xC0     |           |              | SSP SHIM        |
                         +---------------+           |              | generic         |
                         | VER           |           |              +-----------------+  0x00028100 + 0x1000 * x
                         +---------------+           |              | SSP IP          |
                         | PTR           |-----------+              +-----------------+  0x00028C00 + 0x1000 * x
                         +---------------+                          | SSP SHIM        |
                                                                    | vendor-specific |
                                                                    +-----------------+
©内核开发社区。 | 由 Sphinx 5.3.0 & Alabaster 0.7.16 提供技术支持 | 页面源代码