Creative X-Fi hw20k2 (SB0880) that appeared in kernel 6.12.85

Cliff Brady <[email protected]>
Newsgroups org.alsa-project.alsa-devel
Message-ID <CAFGAnONFP+=y3p2VQ_ciZzX_d=wjKP0jZf-JfVK1p1_EAz2ZXA@mail.gmail.com>
Hi Takashi,

I'm writing to report a regression on the Creative X-Fi hw20k2 (SB0880)
that appeared in kernel 6.12.85, and which I believe is related to commit
b045ab3dff97 ("ALSA: ctxfi: Fix missing SPDIFI1 index handling").

Hardware:
  Card: Creative X-Fi 20K2, model SB0880 (PCI ID 1102:000b)
  Driver: snd_ctxfi
  Kernel: 6.12.85 (Home Assistant OS 17.3, generic x86-64)

Symptom:
After upgrading from HAOS 17.2 (kernel 6.12.77) to HAOS 17.3 (kernel
6.12.85), the X-Fi analog outputs produce no audio when accessed via
PulseAudio.  HAOS 17.1 (kernel 6.12.67) X-Fi analog outputs
also  successfully produced audio when accessed via PulseAudio  The PA sink
reports RUNNING and all ALSA mixer controls are at full volume and unmuted,
but no audio is heard from any analog output channel (front, rear, side,
center/LFE).

Diagnosis:
PA opens the device with device.access_mode = "mmap+timer". Direct ALSA
access via speaker-test bypassing PA produces audio correctly on all
channels. Forcing PA to close and reopen the PCM device via pactl
suspend-sink / resume-sink restores audio, suggesting the mmap buffer
handshake between PA and the ctxfi driver is failing silently on device
open.

The issue is reproducible every time PA opens the device fresh (e.g. after
pa restart or sink resume from suspended state following idle timeout). The
suspend/resume workaround reliably restores audio each time.

Hypothesis:
The out-of-bounds array access fixed by commit b045ab3dff97 in
daio_device_index() for hw20k2 may have been inadvertently masking a
pre-existing deficiency in the ctxfi mmap implementation. With the fix in
place, mmap+timer mode is negotiated successfully at the PA/kernel
interface but audio transfers silently fail. A possible fix would be to set
SNDRV_PCM_INFO_NO_MMAP in the hw20k2 PCM capabilities, forcing PA to fall
back to read/write mode which works correctly.

Kernel was working: 6.12.77
Kernel regression introduced: 6.12.85

I am happy to test any patch or provide further diagnostics.

Best regards

Cliff Brady
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.