Hi,
In a commit f9e5ecdfc2c2 ("ALSA: firewire-lib: add replay target to cache sequence of packet"), I categorize devices supported by drivers in ALSA firewire stack in terms of the way to deliver effective sampling transfer frequency. This patchset is for the devices in group 2.
The devices are known to have problems when ALSA dice/bebob drivers handle. Many of them sometimes transfer packets with discontinued counter, corrupt at break of CMP connection, generates bus-reset voluntarily.
The devices interpret presentation time to decide playback timing. The drivers process presentation time expressed in syt field of CIP header for outgoing packets. Current implementation of the drivers processes the sequence of outgoing packet by computation according to nominal sampling transfer frequency, assisted by ALSA IEC 61883-1/6 packet streaming engine. However, the ideal sequence is not adequate to the devices, actually.
With this patchset, the drivers are going to replay the sequence of incoming packets for media clock recovery. For the detail of sequence replay, please refer to a commit 39c2649c71d8 ("ALSA: firewire-lib: replay sequence of incoming packets for outgoing packets").
Takashi Sakamoto (3): ALSA: dice: wait just for NOTIFY_CLOCK_ACCEPTED after GLOBAL_CLOCK_SELECT operation ALSA: dice: perform sequence replay for media clock recovery ALSA: bebob: perform sequence replay for media clock recovery
sound/firewire/bebob/bebob_stream.c | 13 +++++++--- sound/firewire/dice/dice-stream.c | 35 +++++++++----------------- sound/firewire/dice/dice-transaction.c | 2 +- 3 files changed, 22 insertions(+), 28 deletions(-)