From 26e6bab26a8d4e4ff3cce10ff7f56004234de6cc Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Mon, 21 May 2012 12:47:36 +0200 Subject: [PATCH] --- yaml --- r: 305806 b: refs/heads/master c: 97f8d3b6503082416898f893a442a78f8819c42a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/usb/pcm.c | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a603cf97e50d..d7f2d54ef5b5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4f7c39dc557cabdbc932ae83432cc225c480133c +refs/heads/master: 97f8d3b6503082416898f893a442a78f8819c42a diff --git a/trunk/sound/usb/pcm.c b/trunk/sound/usb/pcm.c index 2d3a04d829b7..24839d932648 100644 --- a/trunk/sound/usb/pcm.c +++ b/trunk/sound/usb/pcm.c @@ -474,6 +474,11 @@ static int snd_usb_hw_params(struct snd_pcm_substream *substream, mutex_unlock(&subs->stream->chip->shutdown_mutex); } + if (ret == 0) { + subs->interface = fmt->iface; + subs->altset_idx = fmt->altset_idx; + } + return ret; } @@ -1123,13 +1128,16 @@ static int snd_usb_substream_playback_trigger(struct snd_pcm_substream *substrea case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: subs->data_endpoint->prepare_data_urb = prepare_playback_urb; subs->data_endpoint->retire_data_urb = retire_playback_urb; + subs->running = 1; return 0; case SNDRV_PCM_TRIGGER_STOP: stop_endpoints(subs, 0, 0, 0); + subs->running = 0; return 0; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: subs->data_endpoint->prepare_data_urb = NULL; subs->data_endpoint->retire_data_urb = NULL; + subs->running = 0; return 0; } @@ -1148,15 +1156,19 @@ int snd_usb_substream_capture_trigger(struct snd_pcm_substream *substream, int c return err; subs->data_endpoint->retire_data_urb = retire_capture_urb; + subs->running = 1; return 0; case SNDRV_PCM_TRIGGER_STOP: stop_endpoints(subs, 0, 0, 0); + subs->running = 0; return 0; case SNDRV_PCM_TRIGGER_PAUSE_PUSH: subs->data_endpoint->retire_data_urb = NULL; + subs->running = 0; return 0; case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: subs->data_endpoint->retire_data_urb = retire_capture_urb; + subs->running = 1; return 0; }