aboutsummaryrefslogtreecommitdiff
path: root/include/rv
diff options
context:
space:
mode:
authorGravatar Oswald Buddenhagen <oswald.buddenhagen@gmx.de> 2024-04-28 11:37:14 +0200
committerGravatar Takashi Iwai <tiwai@suse.de> 2024-04-28 11:58:12 +0200
commit2d3f4810886eb7c319cec41b6d725d2953bfa88a (patch)
treeff2074e6771efcb25dfd1ddccd690f9781de1c7e /include/rv
parentALSA: emu10k1: move the whole GPIO event handling to the workqueue (diff)
downloadlinux-2d3f4810886eb7c319cec41b6d725d2953bfa88a.tar.gz
linux-2d3f4810886eb7c319cec41b6d725d2953bfa88a.tar.bz2
linux-2d3f4810886eb7c319cec41b6d725d2953bfa88a.zip
ALSA: emu10k1: use mutex for E-MU FPGA access locking
The FPGA access through the GPIO port does not interfere with other sound processor register access, so there is no need to subject it to emu_lock. And after moving all FPGA access out of the interrupt handler, it does not need to be IRQ-safe, either. What's more, attaching the dock causes a firmware upload, which takes several seconds. We really don't want to disable IRQs for this long, and even less also have someone else spin with IRQs disabled waiting for us. Therefore, use a mutex for FPGA access locking. This makes the code somewhat more noisy, as we need to wrap bigger sections into the mutex, as it needs to enclose the spinlocks. The latter has the "side effect" of fixing dock FPGA programming in a corner case: a really badly timed mixer access right between entering FPGA programming mode and uploading the netlist would mess up the protocol. Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Message-ID: <20240428093716.3198666-5-oswald.buddenhagen@gmx.de>
Diffstat (limited to 'include/rv')
0 files changed, 0 insertions, 0 deletions