sound/isa/sc6000.c | 193 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 132 insertions(+), 61 deletions(-)
The SC-6000 driver has to program board-level DSP routing before the
WSS codec can operate correctly. Today that setup has two related
problems.
First, the probe path may auto-select IRQ and DMA resources, but the
SC-6000 soft configuration is still derived from the raw module
parameter arrays. When irq=auto or dma=auto is used, the WSS codec can
be created with the selected live resources while the board itself is
programmed with unresolved values.
Second, the driver still lacks suspend/resume support. The WSS layer can
save and restore codec registers, but the SC-6000-specific DSP routing
and MSS initialization are done only during probe and are not replayed
after resume.
This series fixes the probe-time resource mismatch first and then reuses
that cached board state to restore the hardware on resume. Keeping the
board programming in a shared helper also keeps the old/new DSP split in
one place so probe and resume cannot drift apart.
- Patch 1 stores the computed SC-6000 board state in card-private data and
builds it from the live resources selected at probe time.
- Patch 2 wires ISA suspend/resume callbacks and restores the cached
board setup before the WSS codec resume path runs.
Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
---
Cássio Gabriel (2):
ALSA: sc6000: Keep the programmed board state in card-private data
ALSA: sc6000: Restore board setup across suspend
sound/isa/sc6000.c | 193 ++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 132 insertions(+), 61 deletions(-)
---
base-commit: 4c468a99786e2cf41bf7b2c95064472e99a6776f
change-id: 20260407-alsa-sc6000-pm-4fd109aaf04f
Best regards,
--
Cássio Gabriel <cassiogabrielcontato@gmail.com>
On Fri, 10 Apr 2026 05:54:31 +0200, Cássio Gabriel wrote: > > The SC-6000 driver has to program board-level DSP routing before the > WSS codec can operate correctly. Today that setup has two related > problems. > > First, the probe path may auto-select IRQ and DMA resources, but the > SC-6000 soft configuration is still derived from the raw module > parameter arrays. When irq=auto or dma=auto is used, the WSS codec can > be created with the selected live resources while the board itself is > programmed with unresolved values. > > Second, the driver still lacks suspend/resume support. The WSS layer can > save and restore codec registers, but the SC-6000-specific DSP routing > and MSS initialization are done only during probe and are not replayed > after resume. > > This series fixes the probe-time resource mismatch first and then reuses > that cached board state to restore the hardware on resume. Keeping the > board programming in a shared helper also keeps the old/new DSP split in > one place so probe and resume cannot drift apart. > > - Patch 1 stores the computed SC-6000 board state in card-private data and > builds it from the live resources selected at probe time. > - Patch 2 wires ISA suspend/resume callbacks and restores the cached > board setup before the WSS codec resume path runs. > > Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com> > --- > Cássio Gabriel (2): > ALSA: sc6000: Keep the programmed board state in card-private data > ALSA: sc6000: Restore board setup across suspend Applied both patches now. Thanks. Takashi
© 2016 - 2026 Red Hat, Inc.