[alsa-devel] [PATCH 0/5 v3] ALSA: dice: improve card registration processing

Takashi Sakamoto o-takashi at sakamocchi.jp
Fri Dec 25 02:13:10 CET 2015


Hi,

This patchset updates my previous post.
[alsa-devel] [PATCH 0/4 v2] ALSA: dice: improve card registration processing
http://mailman.alsa-project.org/pipermail/alsa-devel/2015-December/102460.html

The previous patchset includes some bugs.
 * Mutex structure can be destroyed within critical section with it in
   releasing sound card.
 * Bus reset handler doesn't execute transaction re-initialization as long
   as sound card instance is not registered.
 * Work of sound card registration is not postpone even if bus reset occurs.
 * Devices in sound card are not released when sound card registration fails.

This version fixes these bugs, according to discussions between Takash Iwai and
Stefan Richter. Thanks for them.

Changes:
 * Use delayed workqueue API correctly.
 * Wait for registration work in .remove callback, instead of sound card
   free callback.
 * Obsolete mutex_lock()/mutex_unlock() for sound card registration purpose.
 * Keep devices of sound card and release them at registration failure.

In kerneldoc of 'mod_delayed_work', this function call has a side effect to
queueing the work. It seems that this function can be used instead of
schedule_delayed_work.
https://www.kernel.org/doc/htmldocs/device-drivers/API-mod-delayed-work.html

But as long as I tested, my Linux 4.2 system is freezed. I have no further
investigation. I use both of schedule_delayed_work() and mod_delayed_work() in
this patchset.

Takashi Sakamoto (5):
  ALSA: dice: split subaddress check from category check
  ALSA: dice: postpone card registration
  ALSA: dice: ensure to release sound devices after sound card
    registration fails
  ALSA: dice: purge transaction initialization at timeout of Dice
    notification
  ALSA: dice: expand timeout to wait for Dice notification

 sound/firewire/dice/dice-midi.c        |   2 +
 sound/firewire/dice/dice-pcm.c         |   2 +
 sound/firewire/dice/dice-transaction.c | 122 ++++++++++++--------
 sound/firewire/dice/dice.c             | 199 +++++++++++++++++----------------
 sound/firewire/dice/dice.h             |   5 +
 5 files changed, 191 insertions(+), 139 deletions(-)

-- 
2.5.0



More information about the Alsa-devel mailing list