Loading sound/usb/pcm.c +12 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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; } Loading Loading
sound/usb/pcm.c +12 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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; } Loading @@ -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; } Loading