关于 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 位)。
这是发布到 alsa-devel 邮件列表的 Maya44 驱动程序的第一个测试版本(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 树中 #include 了相应的文件
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 输出”。
- 硬件
输出源通道 1
- 硬件 1
输出源通道 2
- 硬件 2
输出源通道 3
- 硬件 3
输出源通道 4
- 硬件 4 ... 硬件 9
未知功能,保留用于测试。
其中一些可能控制 S/PDIF 输出。 如果这些被证明未使用,它们将在以后的驱动程序版本中消失。
每个数字输出选择器的可选值是
- PCM 输出
相应通道的 DAC 输出(默认设置)
- 输入 1 ... 输入 4
直接从所选输入通道的 ADC 输出进行路由