subs->data_endpoint->retire_data_urb = retire_playback_urb;
subs->running = 0;
return 0;
- stop_endpoints(subs, true);
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ if (subs->stream->chip->setup_fmt_after_resume_quirk) {
++ stop_endpoints(subs);
+ subs->need_setup_fmt = true;
+ return 0;
+ }
+ break;
}
return -EINVAL;
subs->data_endpoint->retire_data_urb = retire_capture_urb;
subs->running = 1;
return 0;
- stop_endpoints(subs, true);
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ if (subs->stream->chip->setup_fmt_after_resume_quirk) {
++ stop_endpoints(subs);
+ subs->need_setup_fmt = true;
+ return 0;
+ }
+ break;
}
return -EINVAL;