ALSA: snd-usb: fix stream info output in /proc
authorDaniel Mack <zonque@gmail.com>
Mon, 21 May 2012 10:47:36 +0000 (12:47 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 21 May 2012 10:51:08 +0000 (12:51 +0200)
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>
sound/usb/pcm.c

index 2d3a04d829b76a14b71f9471d76ae79e11c884f3..24839d932648c81849ecfe63214a8124d914dd0e 100644 (file)
@@ -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;
        }