Hi,
This patchset is to simplify codes of ALSA bebob driver by giving up updating streams at bus reset.
DM1000/DM1100/DM1500 chipsets have a quirk to transfer packets with discontinuous value in 'dbc' field of CIP header. This is against packet streaming protocol (IEC 61883-1/6).
In the specification, units should continue packet streaming during 1 seconds after bus reset. During this period, connections are updated. Else, the streaming stops.
The discontinuity causes firewire-lib module (packet streaming layer) to stop streaming immediately. This is done far earlier than executing bus-reset handler. Therefore, updating streams at the bus-reset handler has no meaning.
This patchset will have little impacts for userspace applications because most users won't update IEEE 1394 bus when playbacking/recording. And PCM substream recovery is still available.
Regards
Takashi Sakamoto (4): ALSA: bebob: simplify bus-reset handling ALSA: bebob: move mutex from function callee to callers ALSA: bebob: change type of substream counter from atomic_t to unsigned int ALSA: bebob: give up updating streams at bus reset handler
sound/firewire/bebob/bebob.c | 21 ++++++++++---- sound/firewire/bebob/bebob.h | 5 +--- sound/firewire/bebob/bebob_midi.c | 16 +++++++--- sound/firewire/bebob/bebob_pcm.c | 28 +++++++++++++----- sound/firewire/bebob/bebob_stream.c | 58 +++---------------------------------- 5 files changed, 53 insertions(+), 75 deletions(-)