linux/sound/pci
Takashi Iwai 473f414564 ALSA: hda - Loop interrupt handling until really cleared
Currently the interrupt handler of HD-audio driver assumes that no irq
update is needed while processing the irq.  But in reality, it has
been confirmed that the HW irq is issued even during the irq
handling.  Since we clear the irq status at the beginning, process the
interrupt, then exits from the handler, the lately issued interrupt is
left untouched without being properly processed.

This patch changes the interrupt handler code to loop over the
check-and-process.  The handler tries repeatedly as long as the IRQ
status are turned on, and either stream or CORB/RIRB is handled.

For checking the stream handling, snd_hdac_bus_handle_stream_irq()
returns a value indicating the stream indices bits.  Other than that,
the change is only in the irq handler itself.

Reported-by: Libin Yang <libin.yang@linux.intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2016-02-26 08:50:31 +01:00
..
ac97
ali5451
asihpi
au88x0
aw2
ca0106
cs46xx ALSA: cs46xx: Fix suspend for all channels 2015-10-30 12:33:21 +01:00
cs5535audio ALSA: cs5535audio: constify cs5535audio_dma_ops structures 2015-12-30 22:49:40 +01:00
ctxfi ALSA: ctxfi: constify rsc ops structures 2015-11-11 08:40:56 +01:00
echoaudio
emu10k1 ALSA: emu10k1: correctly handling failed thread creation 2016-01-29 17:30:25 +01:00
hda ALSA: hda - Loop interrupt handling until really cleared 2016-02-26 08:50:31 +01:00
ice1712 ALSA: i2c: constify snd_i2c_ops structures 2015-11-30 11:40:08 +01:00
korg1212 ALSA: korg1212: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:27 +02:00
lola
lx6464es ALSA: lx6464es: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:28 +02:00
mixart
nm256
oxygen
pcxhr
riptide
rme9652 Merge branch 'topic/hw-constraint-single' into for-next 2015-10-23 06:57:50 +02:00
trident
vx222
ymfpci
Kconfig ALSA: Add missing dependency on CONFIG_SND_TIMER 2016-01-27 07:10:38 +01:00
Makefile
ad1889.c
ad1889.h
ak4531_codec.c
als300.c
als4000.c
atiixp.c ALSA: atiixp: constify atiixp_dma_ops structures 2015-12-30 22:49:37 +01:00
atiixp_modem.c ALSA: atiixp: constify atiixp_dma_ops structures 2015-12-30 22:49:37 +01:00
azt3328.c ALSA: azt3328: Remove unnecessary synchronize_irq() before free_irq() 2015-11-21 17:40:07 +01:00
azt3328.h
bt87x.c
cmipci.c
cs4281.c
cs5530.c
ens1370.c
ens1371.c
es1938.c
es1968.c [media] media, sound: tea575x: constify snd_tea575x_ops structures 2015-12-03 11:26:45 -02:00
fm801.c sound updates for 4.5-rc1 2016-01-17 12:05:31 -08:00
intel8x0.c
intel8x0m.c
maestro3.c ALSA: maestro3: Fix Allegro mute until master volume/mute is touched 2015-11-02 08:46:30 +01:00
rme32.c ALSA: rme32: Use snd_pcm_hw_constraint_single() 2015-10-21 14:24:28 +02:00
rme96.c ALSA: rme96: Fix unexpected volume reset after rate changes 2015-12-04 20:39:49 +01:00
sis7019.c
sis7019.h
sonicvibes.c
via82xx.c
via82xx_modem.c