Message ID | 20190804062138.1217-1-o-takashi@sakamocchi.jp (mailing list archive) |
---|---|
Headers | show |
Series | ALSA: firewire: introduce AMDTP domain | expand |
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