The Advanced Linux Sound Architecture (ALSA) - library
Find a file
Takashi Iwai 2adc30e983 pcm: dmix: Fix resume with multiple instances
The fix for PCM dmix suspend/resume checks spcm->info bit of
SND_PCM_INFO_RESUME for applying a workaround for drivers with the
full resume support.  This assumed that scpm->info is exposed from the
underlying slave PCM device.

The above is true for the first opened instance, but for the second
opened instance, it's a copy from the saved data in shmem.  And, we
dropped SND_PCM_INFO_RESUME bit there to assure not to expose the full
resume capability to applications.  This resulted in the
inconsistencies, and when the second instance is resumed at first, it
misses the snd_pcm_resume() call, hence the driver doesn't react
properly any longer.

For addressing it, we keep SND_PCM_INFO_RESUME bit in shmptr->s.info
bits as is, while dropping the bit exposed to apps in
snd_pcm_direct_hw_refine() and *_hw_params() callbacks.

Fixes: 6d1d620ead ("pcm: dmix: resume workaround for buggy driver")
Reported-and-tested-by: Chancel Liu <chancel.liu@nxp.com>
Closes: https://lore.kernel.org/DB9PR04MB94988752ED7C43B399E0BC00E3942@DB9PR04MB9498.eurprd04.prod.outlook.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2024-09-06 10:13:29 +02:00
.github/workflows GitHub Actions: Use actions/checkout@v4 2024-03-17 09:42:55 +09:00
alsalisp Change FSF address (Franklin Street) 2017-11-14 14:29:26 +01:00
aserver aserver: fix buffer overwriting 2023-12-11 09:20:06 +01:00
doc ump: Add descriptions for UMP RawMidi interface 2024-06-26 11:25:32 +02:00
include Sync UAPI asound.h and asequencer.h with 6.12 kernel 2024-08-20 16:16:47 +02:00
m4 Fix symver build error on non-ELF platforms 2023-09-01 16:54:44 +02:00
modules mixer: simple module: python 3.10 PyTuple_SET_ITEM() fix 2022-05-20 10:03:10 +02:00
src pcm: dmix: Fix resume with multiple instances 2024-09-06 10:13:29 +02:00
test test: Add an example program to inquire UMP Endpoint and Block info 2024-08-15 16:41:53 +02:00
utils utils/alsa.m4: include <stdlib.h> for exit() 2023-01-29 18:51:54 +01:00
.gitignore .gitignore: Add test/umpinfo 2024-08-15 16:43:10 +02:00
acinclude.m4 fixed for the recent autoconf. 2004-01-26 15:52:17 +00:00
ChangeLog * update to libtool 1.3.3 1999-07-22 12:18:42 +00:00
configure.ac Release v1.2.12 2024-06-10 11:18:34 +02:00
COPYING Change FSF address (Franklin Street) 2017-11-14 14:29:26 +01:00
gitcompile gitcompile: Add static build 2023-09-04 09:37:29 +02:00
INSTALL pcm: Add thread-safety to PCM API 2016-07-11 15:25:30 +02:00
Makefile.am Makefile: Add README.md to EXTRA_DIST 2020-12-10 10:37:13 +01:00
MEMORY-LEAK Initial version 2003-02-04 14:56:07 +00:00
NOTES Change assert condition in error message handler 2007-10-24 12:53:08 +02:00
README.md README: Add link to GitHub Actions 2022-05-19 12:47:24 +02:00
TODO Added snd_config_load_override(). 2002-01-09 21:28:15 +00:00

alsa-lib

Advanced Linux Sound Architecture (ALSA) project

Build alsa-lib

The alsa-lib is a library to interface with ALSA in the Linux kernel and virtual devices using a plugin system.

The up-to-date reference generated from sources can be accessed here:

http://www.alsa-project.org/alsa-doc/alsa-lib/

You may give a look for more information about the ALSA project to URL http://www.alsa-project.org.

Submitting patches

The preferred way to submit patches is by sending them by email to the alsa-devel mailing list. Sending mail to the list requires subscription, subscribe here: https://mailman.alsa-project.org/mailman/listinfo/alsa-devel

Add Takashi Iwai <tiwai@suse.de> and/or Jaroslav Kysela <perex@perex.cz> to Cc so that your patch won't be missed.

Patches are also accepted as GitHub pull requests.