From: David Henningsson launchpad.web@epost.diwic.se
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 ---
sound/pci/ice1712/ice1724.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
* This is likely a regression since 2009-06-05, commit 92d71005e2f305d6dca126d8b8497e885b842dba.
* Tested on ESI Juli@.
* Affected bugs: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/441446 Probably this one as well: https://bugzilla.redhat.com/show_bug.cgi?id=525595
--- diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c index cc84a83..56d1bd8 100644 --- a/sound/pci/ice1712/ice1724.c +++ b/sound/pci/ice1712/ice1724.c @@ -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);