Maya44 USB 音频支持说明

注意

以下是 Rainer 补丁的原始文档,当前 maya44 代码基于该补丁。某些内容可能已过时,但我在此保留作为参考 -- tiwai

2008 年 2 月 14 日

Rainer Zimmermann <mail@lightshed.de>

开发状态

此驱动程序是在 Piotr Makowski (oponek@gmail.com) 的倡议下开发,由 Lars Bergmann 资助。 由 Rainer Zimmermann (mail@lightshed.de) 进行开发。

ESI 提供了 Maya44 卡的样品用于开发工作。

但是,不幸的是,很难获得详细的编程信息,因此我(Rainer Zimmermann)不得不通过实验和推测来找出一些特定于卡的信息。 某些信息(特别是,几个 GPIO 位)仍然缺失。

这是 Maya44 驱动程序的第一个测试版本,已发布到 alsa-devel 邮件列表(2008 年 2 月 5 日)。

以下功能有效,已由 Rainer Zimmermann 和 Piotr Makowski 测试

  • 所有采样率下的播放和捕获

  • 输入/输出电平

  • 交叉混音

  • 线路/麦克风开关

  • 幻象电源开关

  • 模拟监听,又名旁路

以下功能应该有效,但未经过全面测试

  • 通道 3+4 模拟 - S/PDIF 输入切换

  • S/PDIF 输出

  • M/IO/DIO 扩展卡上的所有输入/输出

  • 内部/外部时钟选择

特别是,我们感谢任何拥有 M/IO/DIO 扩展卡的人员对这些功能进行测试。

似乎不起作用的事情

  • ‘alsamixer’ 中的电平表(“多轨”)似乎对信号没有反应(如果这是一个错误,则可能存在于现有的 ICE1724 代码中)。

  • Ardour 2.1 似乎只能通过 JACK 工作,而不能直接通过 ALSA 或通过 OSS 工作。 这仍然需要追踪。

驱动程序详细信息

添加了以下文件

  • pci/ice1724/maya44.c - Maya44 特定代码

  • pci/ice1724/maya44.h

  • pci/ice1724/ice1724.patch

  • pci/ice1724/ice1724.h.patch - 建议的 ice1724.h 补丁(参见采样率)

  • i2c/other/wm8776.c - Wolfson WM8776 编解码器的底层访问例程

  • include/wm8776.h

请注意,wm8776.c 代码旨在独立于卡,实际上并未在 ALSA 基础结构中注册编解码器。 这在 maya44.c 中完成,主要是因为某些 WM8776 控件以 Maya44 特定的方式使用,因此应进行适当的命名。

在 pci/ice1724 中创建了以下文件,仅包含 alsa-kernel 树中的相应文件

  • wtm.h

  • vt1720_mobo.h

  • revo.h

  • prodigy192.h

  • pontis.h

  • phase.h

  • maya44.h

  • juli.h

  • aureon.h

  • amp.h

  • envy24ht.h

  • se.h

  • prodigy_hifi.h

我希望这是正确的方法。

采样率

Maya44 卡(或更准确地说,Wolfson WM8776 编解码器)允许的最大采样率,播放为 192 kHz,捕获为 92 kHz。

由于 ICE1724 芯片只允许一个全局采样率,因此处理方式如下

  • 在 maya44 卡上的任何打开的 PCM 设备上设置采样率将始终设置所有播放和捕获通道的全局采样率。

  • 在驱动程序的当前状态下,即使对于捕获设备,也允许设置高达 192 kHz 的速率。

避免以高于 96kHz 的速率捕获,即使它看起来可以工作。 编解码器实际上无法以这种速率捕获,这意味着质量很差。

我建议一些额外的代码,用于限制在捕获 PCM 设备上设置时的采样率。 但是,由于全局采样率,此逻辑将有些问题。

建议的代码(当前已停用)位于 ice1712.h.patch、ice1724.c 和 maya44.c (在 pci/ice1712 中)。

声音设备

PCM 设备对应于以下输入/输出(假设 Maya44 是卡 #0)

  • hw:0,0 输入 - 立体声,模拟输入 1+2

  • hw:0,0 输出 - 立体声,模拟输出 1+2

  • hw:0,1 输入 - 立体声,模拟输入 3+4 或 S/PDIF 输入

  • hw:0,1 输出 - 立体声,模拟输出 3+4 (和 SPDIF 输出)

混音器控件的命名

(有关信号流的更多信息,请参考 ESI Maya44 手册第 24 页或 ESI windows 软件中的框图)。

PCM

通道 1+2 的(数字)输出电平

PCM 1

通道 3+4 相同

麦克风幻象 +48V

用于输入 1/2 上静电麦克风的 +48V 幻象电源的开关。

确保在将任何其他音源连接到输入 1/2 时未打开此开关。 它可能会损坏音源和/或 maya44 卡。

麦克风/线路输入

如果开关打开,则输入插孔 1/2 为麦克风输入(单声道),否则为线路输入(立体声)。

旁路

通道 1+2 从 ADC 输入到输出的模拟旁路。 与 windows 驱动程序中的“监听”相同。

旁路 1

通道 3+4 相同。

交叉混音

从通道 1+2 到通道 3+4 的交叉混音器

交叉混音 1

从通道 3+4 到通道 1+2 的交叉混音器

IEC958 输出

S/PDIF 输出的开关。

ESI windows 驱动程序不支持此功能。 S/PDIF 应该输出与通道 3+4 相同的信号。 [未经测试!]

数字输出选择器

这些开关允许从 ADC 到 DAC 的直接数字路由。 每个开关确定到一个 DAC 的数字输入数据来自哪里。 ESI windows 驱动程序不支持它们。 对于正常操作,它们都应设置为“PCM 输出”。

H/W

输出源通道 1

H/W 1

输出源通道 2

H/W 2

输出源通道 3

H/W 3

输出源通道 4

H/W 4 ... H/W 9

未知功能,保留用于启用测试。

可能其中一些控制 S/PDIF 输出。 如果这些被证明未使用,它们将在以后的驱动程序版本中消失。

每个数字输出选择器的可选值为

PCM 输出

相应通道的 DAC 输出(默认设置)

输入 1 ... 输入 4

从所选输入通道的 ADC 输出直接路由