ALSA: gus: Support PCM sync_stop
authorTakashi Iwai <tiwai@suse.de>
Tue, 10 Dec 2019 06:34:41 +0000 (07:34 +0100)
committerTakashi Iwai <tiwai@suse.de>
Wed, 11 Dec 2019 06:25:56 +0000 (07:25 +0100)
The driver invokes snd_pcm_period_elapsed() simply from the interrupt
handler.  Set card->sync_irq for enabling the missing sync_stop PCM
operation.

Link: https://lore.kernel.org/r/20191210063454.31603-43-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/isa/gus/gus_main.c
sound/isa/gus/gusmax.c
sound/isa/gus/interwave.c

index af6b4d89d69523a8676e4724fa7f554c39043061..9f94b5f3b029b313b7a1a847e97a98efafdf07af 100644 (file)
@@ -181,6 +181,7 @@ int snd_gus_create(struct snd_card *card,
                return -EBUSY;
        }
        gus->gf1.irq = irq;
+       card->sync_irq = irq;
        if (request_dma(dma1, "GUS - 1")) {
                snd_printk(KERN_ERR "gus: can't grab DMA1 %d\n", dma1);
                snd_gus_free(gus);
index 53eca205f87041dc881d71b4cbfdf2945750cc6c..efe576625f485c3e7dab1b2bbcb3c7f5d72eba1e 100644 (file)
@@ -282,7 +282,8 @@ static int snd_gusmax_probe(struct device *pdev, unsigned int dev)
                goto _err;
        }
        maxcard->irq = xirq;
-       
+       card->sync_irq = maxcard->irq;
+
        err = snd_wss_create(card,
                             gus->gf1.port + 0x10c, -1, xirq,
                             xdma2 < 0 ? xdma1 : xdma2, xdma1,
index bc006dcf8de317c99ac75148cfb46258210d9fa1..5cd4aa477ba78b31573a90e73548412d21d3554b 100644 (file)
@@ -667,6 +667,7 @@ static int snd_interwave_probe(struct snd_card *card, int dev)
                return -EBUSY;
        }
        iwcard->irq = xirq;
+       card->sync_irq = iwcard->irq;
 
        err = snd_wss_create(card,
                             gus->gf1.port + 0x10c, -1, xirq,