[alsa-devel] [PATCH 00/19] ALSA: firewire: introduce AMDTP domain

Takashi Sakamoto o-takashi at sakamocchi.jp
Sun Aug 4 08:21:19 CEST 2019


Hi,

This patchset is to implement AMDTP domain I addressed in my previous
patchset:
https://mailman.alsa-project.org/pipermail/alsa-devel/2019-July/152430.html

My work for libhinoko[1][2] allows me to sniff actual packet transmission
between devices and drivers in Windows/Mac OS for long period (e.g. 1
hour). As a result, some supported devices don't follow packet sequences
transferred by the drivers. They expect drivers to parse isoc packets
in tx stream and recover frequency of data block then transfer isoc packets
as rx stream.

(I note that no specification describes this mechanism as long as I know.
In the specification, clock recovery is one-way from transmitter to
receivers, thus recovered clock is not necessarily used for transmission
from the receiver to the transmitter.)

For the clock recovery in driver side, several isoc contexts should be
handled in one time to parse packets in incoming stream and to build
packets in outgoing stream. The AMDTP domain is designed for this purpose.

In this time, the AMDTP domain implements the functionalities to
start/stop a couple of isoc contexts for some AMDTP streams. Each
context still runs in own handler for scheduled hardware IRQs. I'll post
further work after merged.

[1] https://mailman.alsa-project.org/pipermail/alsa-devel/2019-April/147862.html
[2] https://github.com/takaswie/libhinoko

Takashi Sakamoto (19):
  ALSA: firewire-lib: add AMDTP domain structure to handle several isoc
    context in one interrupt callback
  ALSA: firewire-lib: add a kernel API to stop a couple of AMDTP streams
    in AMDTP domain
  ALSA: firewire-lib: add a kernel API to add AMDTP stream into AMDTP
    domain
  ALSA: firewire-lib: add a kernel API to start AMDTP streams in AMDTP
    domain
  ALSA: fireworks: code refactoring for initialization/destruction of
    AMDTP streams
  ALSA: fireworks: code refactoring for bus reset handler
  ALSA: firewire-digi00x: code refactoring for
    initialization/destruction of AMDTP stream
  ALSA: firewire-tascam: code refactoring for initialization/destruction
    of AMDTP stream
  ALSA: firewire-motu: code refactoring for initialization/destruction
    of AMDTP stream
  ALSA: fireface: code refactoring for initialization/destruction of
    AMDTP stream
  ALSA: bebob: support AMDTP domain
  ALSA: fireworks: support AMDTP domain
  ALSA: oxfw: support AMDTP domain
  ALSA: dice: support AMDTP domain
  ALSA: firewire-digi00x: support AMDTP domain
  ALSA: firewire-tascam: support AMDTP domain
  ALSA: firewire-motu: support AMDTP domain
  ALSA: fireface: support AMDTP domain
  ALSA: firewire-lib: localize kernel APIs to start/stop each AMDTP
    stream

 sound/firewire/amdtp-stream.c               |  94 ++++++++++-
 sound/firewire/amdtp-stream.h               |  20 ++-
 sound/firewire/bebob/bebob.h                |   2 +
 sound/firewire/bebob/bebob_stream.c         |  62 +++----
 sound/firewire/dice/dice-stream.c           |  32 +++-
 sound/firewire/dice/dice.h                  |   2 +
 sound/firewire/digi00x/digi00x-stream.c     | 106 +++++++-----
 sound/firewire/digi00x/digi00x.h            |   2 +
 sound/firewire/fireface/ff-stream.c         |  96 ++++++-----
 sound/firewire/fireface/ff.h                |   2 +
 sound/firewire/fireworks/fireworks.h        |   2 +
 sound/firewire/fireworks/fireworks_stream.c | 176 ++++++++++----------
 sound/firewire/motu/motu-stream.c           | 131 +++++++--------
 sound/firewire/motu/motu.h                  |   2 +
 sound/firewire/oxfw/oxfw-stream.c           |  72 ++++----
 sound/firewire/oxfw/oxfw.h                  |   2 +
 sound/firewire/tascam/tascam-stream.c       | 123 ++++++++------
 sound/firewire/tascam/tascam.h              |   2 +
 18 files changed, 558 insertions(+), 370 deletions(-)

-- 
2.20.1



More information about the Alsa-devel mailing list