alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/15] ALSA: usb-audio: fix playback/capture concurrent usage
@ 2013-10-06 20:31 Eldad Zack
  2013-10-06 20:31 ` [PATCH v4 01/15] ALSA: usb-audio: remove unused parameter from sync_ep_set_params Eldad Zack
                   ` (16 more replies)
  0 siblings, 17 replies; 32+ messages in thread
From: Eldad Zack @ 2013-10-06 20:31 UTC (permalink / raw)
  To: Takashi Iwai, Clemens Ladisch, Daniel Mack, Nikolay Martynov
  Cc: alsa-devel, Eldad Zack

Hi,

This patch series attempts to fix a long standing problem with the concurrent
usage of playback and capture on implicit feedback devices.

Now the following work properly on my system:
* Full-duplex with jack :)

* All tests I ran with my tool. Will post it in case anyone want to try it,
  it takes about 15 minutes to run all the tests.

* Starting a capture-only jackd instance, e.g.:
    jackd -n 1 -d alsa -d hw:2,0 -C
  and then playback-only:
    jackd -n 2 -d alsa -d hw:2,0 -P
  and then stop and start the playback.
  The same with playback running and restarting capture.

* Trying to start a second substream with parameter mismatch (rate or
  period bytes is all I can test with my device) will fail,
  without ill effects.

With this series applied there are now 3 usage tracking variables:
 - substream usage flag
 - endpoint param_set (to protect the parameters until the endpoint is started)
 - the existing endpoint use_count

Changes from v3:
* Added substream "used" flag, to prevent failure in some combinations of ops. (#13)
* Moved start_endpoints for capture to prepare (#14)
* Added more constraints to the endpoint_may_set_params function (#10)
* Cleanups (#12, #15)

v3:
http://mailman.alsa-project.org/pipermail/alsa-devel/2013-August/065744.html

Applies against for-next, tested on upstream 3.12-rc3 (needs Alan Stern's recent
patch "improve buffer size computations for USB PCM audio" to apply cleanly
on current mainline).

Daniel and Nikolay: if you can test again with this series I'd appreciate it.

Cheers,
Eldad

Eldad Zack (15):
  ALSA: usb-audio: remove unused parameter from sync_ep_set_params
  ALSA: usb-audio: remove deactivate_endpoints()
  ALSA: usb-audio: prevent NULL dereference on stop trigger
  ALSA: usb-audio: don't deactivate URBs on in-use EP
  ALSA: usb-audio: void return type of snd_usb_endpoint_deactivate()
  ALSA: usb-audio: clear SUBSTREAM_FLAG_SYNC_EP_STARTED on error
  ALSA: usb-audio: correct ep use_count semantics (add set_param flag)
  ALSA: usb-audio: rename alt_idx to altsetting
  ALSA: usb-audio: conditional interface altsetting
  ALSA: usb-audio: conditional concurrent usage of endpoint
  ALSA: usb-audio: remove altset_idx from snd_usb_substream
  ALSA: usb-audio: remove unused endpoint flag EP_FLAG_ACTIVATED
  ALSA: usb-audio: clear sync subs hw_params
  ALSA: usb-audio: always wait in start_endpoints
  ALSA: usb-audio: improve logging messages

 sound/usb/card.h     |   9 ++-
 sound/usb/endpoint.c | 122 ++++++++++++++++++++---------
 sound/usb/endpoint.h |  13 +++-
 sound/usb/pcm.c      | 214 ++++++++++++++++++++++++++++++++++++---------------
 sound/usb/pcm.h      |   2 +
 sound/usb/proc.c     |   4 +-
 6 files changed, 258 insertions(+), 106 deletions(-)

-- 
1.8.1.5

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2013-10-28 17:45 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-06 20:31 [PATCH v4 00/15] ALSA: usb-audio: fix playback/capture concurrent usage Eldad Zack
2013-10-06 20:31 ` [PATCH v4 01/15] ALSA: usb-audio: remove unused parameter from sync_ep_set_params Eldad Zack
2013-10-06 20:31 ` [PATCH v4 02/15] ALSA: usb-audio: remove deactivate_endpoints() Eldad Zack
2013-10-06 20:31 ` [PATCH v4 03/15] ALSA: usb-audio: prevent NULL dereference on stop trigger Eldad Zack
2013-10-07  8:57   ` Takashi Iwai
2013-10-06 20:31 ` [PATCH v4 04/15] ALSA: usb-audio: don't deactivate URBs on in-use EP Eldad Zack
2013-10-06 20:31 ` [PATCH v4 05/15] ALSA: usb-audio: void return type of snd_usb_endpoint_deactivate() Eldad Zack
2013-10-06 20:31 ` [PATCH v4 06/15] ALSA: usb-audio: clear SUBSTREAM_FLAG_SYNC_EP_STARTED on error Eldad Zack
2013-10-06 20:31 ` [PATCH v4 07/15] ALSA: usb-audio: correct ep use_count semantics (add set_param flag) Eldad Zack
2013-10-07  9:21   ` Takashi Iwai
2013-10-07 19:31     ` Eldad Zack
2013-10-08  7:01       ` Takashi Iwai
2013-10-06 20:31 ` [PATCH v4 08/15] ALSA: usb-audio: rename alt_idx to altsetting Eldad Zack
2013-10-06 20:31 ` [PATCH v4 09/15] ALSA: usb-audio: conditional interface altsetting Eldad Zack
2013-10-07 10:34   ` Takashi Iwai
2013-10-07 18:00     ` Eldad Zack
2013-10-07 18:23       ` Clemens Ladisch
2013-10-07 19:31         ` Takashi Iwai
2013-10-06 20:31 ` [PATCH v4 10/15] ALSA: usb-audio: conditional concurrent usage of endpoint Eldad Zack
2013-10-06 20:31 ` [PATCH v4 11/15] ALSA: usb-audio: remove altset_idx from snd_usb_substream Eldad Zack
2013-10-06 20:31 ` [PATCH v4 12/15] ALSA: usb-audio: remove unused endpoint flag EP_FLAG_ACTIVATED Eldad Zack
2013-10-06 20:31 ` [PATCH v4 13/15] ALSA: usb-audio: clear sync subs hw_params Eldad Zack
2013-10-06 20:31 ` [PATCH v4 14/15] ALSA: usb-audio: always wait in start_endpoints Eldad Zack
2013-10-07  9:26   ` Takashi Iwai
2013-10-07 19:26     ` Eldad Zack
2013-10-08  7:05       ` Takashi Iwai
2013-10-08 19:25         ` Eldad Zack
2013-10-06 20:31 ` [PATCH v4 15/15] ALSA: usb-audio: improve logging messages Eldad Zack
2013-10-07  9:23   ` Takashi Iwai
2013-10-07  9:30 ` [PATCH v4 00/15] ALSA: usb-audio: fix playback/capture concurrent usage Takashi Iwai
2013-10-07 17:20   ` Eldad Zack
2013-10-28 17:45 ` Nikolay Martynov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).