summaryrefslogtreecommitdiffstats
path: root/sound/pci/es1968.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-12-10 07:34:18 +0100
committerTakashi Iwai <tiwai@suse.de>2019-12-11 07:25:46 +0100
commitdbb71ab05f39162e7e65dbde36cd60be50a4bd5c (patch)
tree81a8be318952a95c0cdbb3a14bf9f182b87e45ce /sound/pci/es1968.c
parentALSA: es1938: Support PCM sync_stop (diff)
downloadlinux-dbb71ab05f39162e7e65dbde36cd60be50a4bd5c.tar.xz
linux-dbb71ab05f39162e7e65dbde36cd60be50a4bd5c.zip
ALSA: es1968: Support PCM sync_stop
The driver invokes snd_pcm_period_elapsed() simply from the interrupt handler. Set card->sync_irq for enabling the missing sync_stop PCM operation, as well as removing the superfluous synchronize_irq() call. Link: https://lore.kernel.org/r/20191210063454.31603-20-tiwai@suse.de Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/es1968.c')
-rw-r--r--sound/pci/es1968.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index 4f5063ebce89..3610aa1da94c 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -2602,8 +2602,6 @@ static int snd_es1968_free(struct es1968 *chip)
#endif
if (chip->io_port) {
- if (chip->irq >= 0)
- synchronize_irq(chip->irq);
outw(1, chip->io_port + 0x04); /* clear WP interrupts */
outw(0, chip->io_port + ESM_PORT_HOST_IRQ); /* disable IRQ */
}
@@ -2712,6 +2710,7 @@ static int snd_es1968_create(struct snd_card *card,
return -EBUSY;
}
chip->irq = pci->irq;
+ card->sync_irq = chip->irq;
/* Clear Maestro_map */
for (i = 0; i < 32; i++)