Re: [PATCH] ALSA: ctxfi: Fix CA20K2 S/PDIF passthrough
From: Takashi Iwai
Date: Sun Sep 06 2026 - 04:03:03 EST
On Thu, 03 Sep 2026 23:14:44 +0200,
Roman Prucha via B4 Relay wrote:
>
> From: Roman Prucha <zorgan.roman@xxxxxxxxx>
>
> dao_rsc_init() encodes the DAIO configuration as
>
> conf = (desc->msr & 0x7) | (desc->passthru << 3);
>
> S/PDIF passthrough uses msr=1 and passthru=1, resulting in
> conf=9.
>
> daio_mgr_dao_init() masks conf with 0xf, but handles only values
> 1, 2, 4 and 8 when programming ATXCTL_NUC. As a result, conf=9
> falls through to the default case and leaves NUC at its previous
> setting.
>
> On a Creative X-Fi Titanium HD SB1270 (CA20K2), this breaks AC3
> IEC61937 passthrough when snd_ctxfi runs with
> reference_rate=48000,multiple=2. The receiver detects a non-audio
> stream but cannot decode the AC3 payload.
>
> With the unmodified driver, multiple=1 makes the same stream work.
> Handle conf=9 through the same NUC=0 path as conf=1.
>
> The change was runtime tested on the SB1270 with multiple=2 using
> IEC958 stereo PCM, pre-encoded AC3 IEC61937 passthrough and ALSA
> A52 live 5.1 encoding.
>
> Fixes: 26a9630c72eb ("ALSA: ctxfi: cthw20k2: fix mask on conf to allow 4 bits")
> Cc: stable@xxxxxxxxxxxxxxx
> Assisted-by: LLM
> Signed-off-by: Roman Prucha <zorgan.roman@xxxxxxxxx>
Applied now. Thanks.
Takashi