All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: alsa-devel@alsa-project.org, clemens@ladisch.de
Subject: Re: [PATCH 00/20] ALSA: firewire-lib: use packet descriptor to represent sequence of packet
Date: Mon, 22 Jul 2019 16:12:34 +0200	[thread overview]
Message-ID: <s5h4l3e88fh.wl-tiwai@suse.de> (raw)
In-Reply-To: <20190722033710.28107-1-o-takashi@sakamocchi.jp>

On Mon, 22 Jul 2019 05:36:50 +0200,
Takashi Sakamoto wrote:
> 
> Hi,
> 
> This patchset is for Linux kernel v5.4.
> 
> In current implementation of ALSA IEC 61883-1/6 packet streaming
> engine, one callback of isochronous context consists three steps
> to process an isochronous packet:
> 
> Callback of isochronous context
>  - For each of packets
>   1.parse context header and decide the amount of PCM frames
>   2.process data blocks (in each unit driver)
>   3.queue packet
> 
> The result of step 1 affects the rest, thus the above steps can be
> changed for below process:
> 
> Callback of isochronous context
>  1.parse context header and decide the amount of PCM frames
>   - For each of packets
>  2.process data blocks (in each unit driver)
>   - For each of packets
>  3.queue packet
>   - For each of packets
> 
> Especially it's convenient to decide the amount of PCM frames
> multiplexed into each packet as batch calculation before processing
> payloads of these packets.  Additionally it allows each unit driver
> to process data blocks for these packet by one call.
> 
> This patchset uses list of 'struct pkt_desc' as an intermediate
> representation of packet parameters between these three steps.
> 
> 
> Here, I note my future plan for ALSA firewire stack for your motivation
> to review this patchset:
> 
>  * v5.4
>   * Handle several IT/IR context in one callback of IT context. This
>     idea will introduce AMDTP domain structure with relationship of IRQ
>     master/slave between the IT/IR contexts.
>   * As a result, both of playback/capture PCM substreams run on the
>     same hardware interrupt. Thus the drivers just support batch PCM
>     operation and irq-based programming model[1].
>  * v5.5
>   * Some (p.s. not all) supported devices don't follow packet sequences
>     transferred by the drivers. They require clock recovery in driver
>     side to reduce playback noise.  Enhance the AMDTP domain structure
>     to have clock recovery target and fill list of 'struct pkt_desc'
>     according to the result of clock recovery.
> 
> My work for libhinoko[2] allows me to sniff actual packet transmission
> between devices and drivers in Windows/Mac OS for long period (e.g. 1
> hour). Then I can classify some cases and some devices for the
> requirement of clock recovery.
> 
> (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.)
> 
> [1] https://git.alsa-project.org/?p=alsa-utils.git;a=blob;f=axfer/axfer-transfer.1;hb=HEAD#l675
> [2] https://github.com/takaswie/libhinoko
> 
> Takashi Sakamoto (20):
>   ALSA: firewire-lib: obsolete ctx_data.tx.first_dbc with
>     CIP_UNALIGHED_DBC flag
>   ALSA: firewire-lib: pass data block count as an argument to
>     tracepoints event
>   ALSA: firewire-lib: pass data block counter to data block processing
>     layer
>   ALSA: firewire-lib: operate data block counter in top level of
>     processing for IT context
>   ALSA: firewire-lib: operate data block counter in top level of
>     processing for IR context
>   ALSA: firewire-lib: add syt_override member for some protocols
>   ALSA: firewire-lib: pass no syt information to data block processing
>     layer
>   ALSA: firewire-lib: add list of packet descriptor
>   ALSA: firewire-lib: use packet descriptor for IT context
>   ALSA: firewire-lib: use packet descriptor for IR context
>   ALSA: firewire-lib: code refactoring to process PCM substream
>   ALSA: firewire-lib: code refactoring to process context payloads
>   ALSA: firewire-lib: pass packet descriptor to data block processing
>     layer
>   ALSA: firewire-lib: code refactoring for AM824 data block processing
>     layer
>   ALSA: firewire-digi00x: code refactoring for DOT data block processing
>     layer
>   ALSA: firewire-tascam: code refactoring for TASCAM data block
>     processing layer
>   ALSA: firewire-motu: code refactoring for MOTU data block processing
>     layer
>   ALSA: fireface: code refactoring for FF data block processing layer
>   ALSA: firewire-lib: process payload of isoc context according to
>     packet descriptors
>   ALSA: firewire-motu: more code refactoring for MOTU data block
>     processing layer

Applied all 20 patches now.  Thanks.


Takashi

      parent reply	other threads:[~2019-07-22 14:12 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-22  3:36 [PATCH 00/20] ALSA: firewire-lib: use packet descriptor to represent sequence of packet Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 01/20] ALSA: firewire-lib: obsolete ctx_data.tx.first_dbc with CIP_UNALIGHED_DBC flag Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 02/20] ALSA: firewire-lib: pass data block count as an argument to tracepoints event Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 03/20] ALSA: firewire-lib: pass data block counter to data block processing layer Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 04/20] ALSA: firewire-lib: operate data block counter in top level of processing for IT context Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 05/20] ALSA: firewire-lib: operate data block counter in top level of processing for IR context Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 06/20] ALSA: firewire-lib: add syt_override member for some protocols Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 07/20] ALSA: firewire-lib: pass no syt information to data block processing layer Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 08/20] ALSA: firewire-lib: add list of packet descriptor Takashi Sakamoto
2019-07-22  3:36 ` [PATCH 09/20] ALSA: firewire-lib: use packet descriptor for IT context Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 10/20] ALSA: firewire-lib: use packet descriptor for IR context Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 11/20] ALSA: firewire-lib: code refactoring to process PCM substream Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 12/20] ALSA: firewire-lib: code refactoring to process context payloads Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 13/20] ALSA: firewire-lib: pass packet descriptor to data block processing layer Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 14/20] ALSA: firewire-lib: code refactoring for AM824 " Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 15/20] ALSA: firewire-digi00x: code refactoring for DOT " Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 16/20] ALSA: firewire-tascam: code refactoring for TASCAM " Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 17/20] ALSA: firewire-motu: code refactoring for MOTU " Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 18/20] ALSA: fireface: code refactoring for FF " Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 19/20] ALSA: firewire-lib: process payload of isoc context according to packet descriptors Takashi Sakamoto
2019-07-22  3:37 ` [PATCH 20/20] ALSA: firewire-motu: more code refactoring for MOTU data block processing layer Takashi Sakamoto
2019-07-22 14:12 ` Takashi Iwai [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5h4l3e88fh.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=o-takashi@sakamocchi.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.