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

Takashi Iwai tiwai at suse.de
Mon Aug 5 20:01:34 CEST 2019


On Sun, 04 Aug 2019 08:21:19 +0200,
Takashi Sakamoto wrote:
> 
> 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

Applied all patches now.  Thanks.


Takashi


More information about the Alsa-devel mailing list