7b6666530e
We have found some issues with Au1550 AC'97 OSS driver in 2.6 (sound/oss/au1550_ac97.c), though it also should concern 2.4 driver (drivers/sound/au1550_psc.c). start_dac() grabs a spinlock already held by its caller, au1550_write(). This doesn't show up with the standard UP spinlock impelmentation but when the different one (mutex based) is in use, a lockup happens. And the interrupt handlers also didn't grab the spinlock -- that's OK in the usual kernel but not when the IRQ handlers are threaded. So, they're grabbing the spinlock now (as every correct interrupt handler should do). Signed-off-by: Konstantin Baidarov <kbaidarov@ru.mvista.com> Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
---|---|---|
.. | ||
cs4281 | ||
dmasound | ||
emu10k1 | ||
ac97_codec.c | ||
ac97_plugin_ad1980.c | ||
ac97.c | ||
ac97.h | ||
aci.c | ||
aci.h | ||
ad1816.c | ||
ad1848_mixer.h | ||
ad1848.c | ||
ad1848.h | ||
ad1889.c | ||
ad1889.h | ||
adlib_card.c | ||
aedsp16.c | ||
ali5455.c | ||
au1000.c | ||
au1550_ac97.c | ||
audio_syms.c | ||
audio.c | ||
awe_hw.h | ||
awe_wave.c | ||
awe_wave.h | ||
bin2hex.c | ||
btaudio.c | ||
CHANGELOG | ||
cmpci.c | ||
coproc.h | ||
COPYING | ||
cs46xx_wrapper-24.h | ||
cs46xx.c | ||
cs46xxpm-24.h | ||
cs46xxpm.h | ||
cs461x_image.h | ||
cs461x.h | ||
cs4232.c | ||
dev_table.c | ||
dev_table.h | ||
dm.h | ||
dmabuf.c | ||
es1370.c | ||
es1371.c | ||
esssolo1.c | ||
forte.c | ||
gus_card.c | ||
gus_hw.h | ||
gus_linearvol.h | ||
gus_midi.c | ||
gus_vol.c | ||
gus_wave.c | ||
gus.h | ||
hal2.c | ||
hal2.h | ||
harmony.c | ||
hex2hex.c | ||
i810_audio.c | ||
ics2101.c | ||
ite8172.c | ||
iwmem.h | ||
kahlua.c | ||
Kconfig | ||
mad16.c | ||
maestro3.c | ||
maestro3.h | ||
maestro.c | ||
maestro.h | ||
Makefile | ||
maui.c | ||
midi_ctrl.h | ||
midi_syms.c | ||
midi_synth.c | ||
midi_synth.h | ||
midibuf.c | ||
mpu401.c | ||
mpu401.h | ||
msnd_classic.c | ||
msnd_classic.h | ||
msnd_pinnacle.c | ||
msnd_pinnacle.h | ||
msnd.c | ||
msnd.h | ||
nec_vrc5477.c | ||
nm256_audio.c | ||
nm256_coeff.h | ||
nm256.h | ||
opl3_hw.h | ||
opl3.c | ||
opl3.h | ||
opl3sa2.c | ||
opl3sa.c | ||
os.h | ||
pas2_card.c | ||
pas2_midi.c | ||
pas2_mixer.c | ||
pas2_pcm.c | ||
pas2.h | ||
pss.c | ||
README.FIRST | ||
rme96xx.c | ||
rme96xx.h | ||
sb_audio.c | ||
sb_card.c | ||
sb_card.h | ||
sb_common.c | ||
sb_ess.c | ||
sb_ess.h | ||
sb_midi.c | ||
sb_mixer.c | ||
sb_mixer.h | ||
sb.h | ||
sequencer_syms.c | ||
sequencer.c | ||
sgalaxy.c | ||
sh_dac_audio.c | ||
sonicvibes.c | ||
sound_calls.h | ||
sound_config.h | ||
sound_firmware.h | ||
sound_syms.c | ||
sound_timer.c | ||
soundcard.c | ||
soundvers.h | ||
sscape.c | ||
swarm_cs4297a.c | ||
sys_timer.c | ||
trident.c | ||
trident.h | ||
trix.c | ||
tuning.h | ||
uart401.c | ||
uart6850.c | ||
ulaw.h | ||
v_midi.c | ||
v_midi.h | ||
via82cxxx_audio.c | ||
vidc_fill.S | ||
vidc.c | ||
vidc.h | ||
vwsnd.c | ||
waveartist.c | ||
waveartist.h | ||
wavfront.c | ||
wf_midi.c | ||
ymfpci_image.h | ||
ymfpci.c | ||
ymfpci.h | ||
yss225.c | ||
yss225.h |
The modular sound driver patches were funded by Red Hat Software (www.redhat.com). The sound driver here is thus a modified version of Hannu's code. Please bear that in mind when considering the appropriate forums for bug reporting. Alan Cox