]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ALSA: ice1724 - Make call to set hw params succeed on ESI Juli@
authorDavid Henningsson <launchpad.web@epost.diwic.se>
Sun, 11 Oct 2009 09:37:22 +0000 (11:37 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 10 Nov 2009 00:22:57 +0000 (16:22 -0800)
commit bd3c200e6d5495343c91db66d2acf1853b57a141 upstream.

If two streams are started immediately after one another (such as a
playback and a recording stream), the call to set hw params fails with
EBUSY. This patch makes the call succeed, so playback and recording will
work properly.

Signed-off-by: David Henningsson <launchpad.web@epost.diwic.se>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
sound/pci/ice1712/ice1724.c

index cc84a831eb21f19ee30099b6aece9e7f021c32d4..56d1bd8b61187a5b68e0da2633f4d8a1035d14c5 100644 (file)
@@ -643,7 +643,7 @@ static int snd_vt1724_set_pro_rate(struct snd_ice1712 *ice, unsigned int rate,
            (inb(ICEMT1724(ice, DMA_PAUSE)) & DMA_PAUSES)) {
                /* running? we cannot change the rate now... */
                spin_unlock_irqrestore(&ice->reg_lock, flags);
-               return -EBUSY;
+               return ((rate == ice->cur_rate) && !force) ? 0 : -EBUSY;
        }
        if (!force && is_pro_rate_locked(ice)) {
                spin_unlock_irqrestore(&ice->reg_lock, flags);