Public bug reported:
IEC61937 S/PDIF passthrough fails on a Creative Sound Blaster X-Fi
Titanium HD SB1270 (CA20K2) using the snd_ctxfi driver when the driver
operates with:
reference_rate=48000
multiple=2
The same hardware and S/PDIF output work when using multiple=1.
Affected Ubuntu kernel:
linux-image-7.0.0-30-generic 7.0.0-30.30
The Apport report confirms that this kernel package has origin: Ubuntu.
S/PDIF PCM device used for testing:
hw:0,4
## Steps to reproduce
1. Load the stock snd_ctxfi driver with:
reference_rate=48000
multiple=2
2. Send an IEC61937 AC3/DTS encoded stream through the X-Fi S/PDIF PCM
device hw:0,4.
3. Encoded S/PDIF passthrough fails.
4. Change the driver configuration to:
reference_rate=48000
multiple=1
5. Repeat exactly the same IEC61937 test.
Result: passthrough works.
## Expected result
IEC61937 AC3/DTS passthrough should work with:
reference_rate=48000
multiple=2
## Actual result
With the stock snd_ctxfi driver:
multiple=2 -> FAIL
multiple=1 -> PASS
## Root cause analysis
The problem was isolated to the CA20K2 DAIO transmitter configuration.
In:
sound/pci/ctxfi/ctdaio.c
the configuration is generated as:
conf = (desc->msr & 0x7) | (desc->passthru << 3);
For the failing passthrough configuration, this produces:
conf == 0x9
The CA20K2 implementation in:
sound/pci/ctxfi/cthw20k2.c
uses:
switch (conf & 0xf)
to configure ATXCTL_NUC.
The existing switch handles cases 1, 2, 4 and 8, but does not handle
case 9.
A minimal test modification was made so that configuration 9 is handled
together with configuration 1:
case 1:
case 9:
set_field(&ctl->txctl[idx], ATXCTL_NUC, 0);
break;
A replacement snd-ctxfi.ko was rebuilt from the source corresponding to
the running Ubuntu kernel. No unrelated driver logic was changed.
The rebuilt module has matching vermagic:
7.0.0-30-generic
The patched driver was then tested again using the original
configuration:
reference_rate=48000
multiple=2
Results:
IEC61937 AC3 passthrough: PASS
IEC61937 DTS passthrough: PASS
5.1 decoding/output: PASS
Additional regression tests of the audio driver passed.
This demonstrates that multiple=1 is only a workaround. The CA20K2
hardware is capable of correct IEC61937 passthrough with multiple=2 once
configuration 0x9 is explicitly handled.
The same missing case 9 is also present in the current upstream Linux
snd_ctxfi CA20K2 implementation, so this does not appear to be an
Ubuntu-specific source modification.
I can provide the exact minimal source diff/patch and additional test
details if required.
ProblemType: Bug
DistroRelease: AnduinOS 2.0.2
Package: linux-image-7.0.0-30-generic 7.0.0-30.30 [origin: Ubuntu]
ProcVersionSignature: Ubuntu 7.0.0-30.30-generic 7.0.12
Uname: Linux 7.0.0-30-generic x86_64
ApportVersion: 2.34.1-0ubuntu0.1
Architecture: amd64
AudioDevicesInUse:
USER PID ACCESS COMMAND
/dev/snd/controlC0: zorgan 3141 F.... wireplumber
/dev/snd/controlC1: zorgan 3141 F.... wireplumber
/dev/snd/seq: zorgan 3133 F.... pipewire
CasperMD5CheckResult: unknown
CurrentDesktop: GNOME
Date: Sun Aug 30 21:38:19 2026
MachineType: Gigabyte Technology Co., Ltd. Z590 D
ProcFB: 0 nvidia-drmdrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-30-generic
root=UUID=8506df91-3e89-4e62-8c8b-165299db5989 ro quiet splash preempt=full
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No
PulseAudio daemon running, or not running as session daemon.
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog:
dmi.bios.date: 06/10/2025
dmi.bios.release: 5.19
dmi.bios.vendor: American Megatrends International, LLC.
dmi.bios.version: F11b
dmi.board.asset.tag: Default string
dmi.board.name: Z590 D
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.board.version: Default string
dmi.chassis.asset.tag: Default string
dmi.chassis.type: 3
dmi.chassis.vendor: Default string
dmi.chassis.version: Default string
dmi.modalias:
dmi:bvnAmericanMegatrendsInternational,LLC.:bvrF11b:bd06/10/2025:br5.19:svnGigabyteTechnologyCo.,Ltd.:pnZ590D:pvrDefaultstring:rvnGigabyteTechnologyCo.,Ltd.:rnZ590D:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:skuDefaultstring:pfaZ590MB:
dmi.product.family: Z590 MB
dmi.product.name: Z590 D
dmi.product.sku: Default string
dmi.product.version: Default string
dmi.sys.vendor: Gigabyte Technology Co., Ltd.
** Affects: linux (Ubuntu)
Importance: Undecided
Status: New
** Tags: amd64 apport-bug resolute third-party-packages wayland-session
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2165857
Title:
snd_ctxfi: CA20K2 SB1270 S/PDIF IEC61937 passthrough fails with
multiple=2 due to unhandled DAIO conf 0x9
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2165857/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs