diff options
author | Daniel Mack <zonque@gmail.com> | 2012-05-21 12:47:36 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2012-05-21 12:51:08 +0200 |
commit | 97f8d3b6503082416898f893a442a78f8819c42a (patch) | |
tree | 4f52f9c4146aeae2a54309e69a1ea94aa5a000e5 /sound/usb | |
parent | ALSA: pcm - Add proper state checks to snd_pcm_drain() (diff) | |
download | linux-97f8d3b6503082416898f893a442a78f8819c42a.tar.xz linux-97f8d3b6503082416898f893a442a78f8819c42a.zip |
ALSA: snd-usb: fix stream info output in /proc
Set some substream struct members to make the proc interface code work
again.
Signed-off-by: Daniel Mack <zonque@gmail.com>
Reported-by: Felix Homann <linuxaudio@showlabor.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/pcm.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c index 2d3a04d829b7..24839d932648 100644 --- a/sound/usb/pcm.c +++ b/sound/usb/pcm.c @@ -474,6 +474,11 @@ unlock: 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; } |