[alsa-devel] Is the mixer interface in the kernel protect against concurrent access?
Hi,
I am solving a locking bug in the at73c213 SPI sound driver, and wondered if the mixer API is protected against concurrent access in ALSA? Or should I implement a mutex to protect my hardware against concurrent access?
On Mon, 17 Dec 2007, Hans-Christian Egtvedt wrote:
Hi,
I am solving a locking bug in the at73c213 SPI sound driver, and wondered if the mixer API is protected against concurrent access in ALSA? Or should I implement a mutex to protect my hardware against concurrent access?
Control r/w callbacks are protected with a semaphore - card->controls_rwsem . See sound/core/control.c for more details. Anyway, you need to protect your registers with spinlocks (if required of course).
Jaroslav
----- Jaroslav Kysela perex@perex.cz Linux Kernel Sound Maintainer ALSA Project
On Mon, 2007-12-17 at 16:43 +0100, Jaroslav Kysela wrote:
On Mon, 17 Dec 2007, Hans-Christian Egtvedt wrote:
I am solving a locking bug in the at73c213 SPI sound driver, and wondered if the mixer API is protected against concurrent access in ALSA? Or should I implement a mutex to protect my hardware against concurrent access?
Control r/w callbacks are protected with a semaphore - card->controls_rwsem . See sound/core/control.c for more details. Anyway, you need to protect your registers with spinlocks (if required of course).
Thanks for the feedback. I settled upon a mutex since the SPI driver can not use spinlocks due to a might sleepy spi_sync function call.
participants (2)
-
Hans-Christian Egtvedt
-
Jaroslav Kysela