linux/sound/isa
Cássio Gabriel 713e0f0111 ALSA: sscape: Add suspend and resume support
The SoundScape ISA driver has lacked suspend and resume callbacks since
commit 277e926c9b ("[ALSA] sscape - Use platform_device").

A plain snd_wss resume is not sufficient for SoundScape. Resume also
needs to restore the board-specific gate-array routing, and non-VIVO
boards need to reinitialize the probe-time MIDI firmware and MIDI
control state when the MPU-401 side was enabled during probe.

That firmware reload can be handled in-kernel because
commit acd4710091 ("ALSA: sscape: convert to firmware loader framework")
moved the driver to request_firmware().

Add ISA and ISA-PnP PM callbacks, reconfigure the board on resume,
reload the non-VIVO MIDI firmware, restore the MIDI state, and then
resume the WSS codec. If MIDI firmware reload fails, keep the WSS resume
path alive and leave MIDI unavailable instead of failing the whole
device resume.

Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com>
Link: https://patch.msgid.link/20260411-alsa-sscape-pm-v2-2-aeb5682e14b0@gmail.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2026-04-12 10:00:34 +02:00
..
ad1816a ALSA: ad1816a: Use guard() for spin locks 2025-09-01 13:53:01 +02:00
ad1848 ALSA: isa: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:48 +02:00
cs423x ALSA: cs423x: Use guard() for spin locks 2025-09-01 13:53:01 +02:00
es1688 ALSA: es1688: add ISA suspend and resume callbacks 2026-04-01 14:46:41 +02:00
galaxy ALSA: galaxy: Use safer strscpy() instead of strcpy() 2025-07-11 09:53:15 +02:00
gus ALSA: interwave: guard PM-only restore helpers with CONFIG_PM 2026-04-10 16:34:50 +02:00
msnd ALSA: msnd: add ISA and PnP system sleep callbacks 2026-04-09 12:02:39 +02:00
opti9xx ALSA: isa: Add SPDX id lines to some files 2026-02-18 08:56:47 +01:00
sb Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
wavefront Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
wss ALSA: wss: Use guard() for spin locks 2025-09-01 13:53:03 +02:00
adlib.c ALSA: adlib: Use safer strscpy() instead of strcpy() 2025-07-11 09:53:14 +02:00
als100.c ALSA: als100: Use safer strscpy() instead of strcpy() 2025-07-11 09:53:14 +02:00
azt2320.c ALSA: azt2320: Replace deprecated strcpy() with strscpy() 2025-04-08 11:48:37 +02:00
cmi8328.c ALSA: cmi8328: Use safer strscpy() instead of strcpy() 2025-07-11 09:53:14 +02:00
cmi8330.c ALSA: cmi8330: Use guard() for spin locks 2025-09-01 13:53:01 +02:00
es18xx.c ALSA: es18xx: Use guard() for spin locks 2025-09-01 13:53:01 +02:00
Kconfig ALSA: add HAS_IOPORT dependencies 2023-05-22 16:43:47 +02:00
Makefile ALSA: isa: Use *-y instead of *-objs in Makefile 2024-05-08 18:17:48 +02:00
opl3sa2.c ALSA: opl3sa2: Use guard() for spin locks 2025-09-01 13:53:02 +02:00
sc6000.c ALSA: sc6000: Restore board setup across suspend 2026-04-10 14:59:47 +02:00
sscape.c ALSA: sscape: Add suspend and resume support 2026-04-12 10:00:34 +02:00