alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Richter <stefanr@s5r6.in-berlin.de>
To: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Cc: tiwai@suse.de, alsa-devel@alsa-project.org, clemens@ladisch.de,
	ffado-devel@lists.sf.net
Subject: Re: [PATCH 2/4] ALSA: dice: handle whole available isochronous streams
Date: Sat, 5 Mar 2016 15:47:16 +0100	[thread overview]
Message-ID: <20160305154716.1ff2784b@kant> (raw)
In-Reply-To: <1457179087-27604-3-git-send-email-o-takashi@sakamocchi.jp>

On Mar 05 Takashi Sakamoto wrote:
> This commit enables ALSA dice driver to handle whole available streams.
> 
> In Dice, certain registers represent the number of available streams at
> current sampling transfer frequency for both directions. The parameters
> of each stream are represented in a block of register. This block is
> aligned sequentially. These streams start simultaneously by writing
> enable bit to a register.
> 
> This commit operates these registers when starting/stopping streams. I
> note that this driver fails to handle dice units in which several streams
> are available while IEEE 1394 host controllers support fewer isochronous
> contexts.

Regarding support by host controllers:

OHCI-1394 mandates that host controllers implement at least 4 isochronous
RX DMAs and at least 4 isochronous TX DMAs.  None of the OHCI controllers
that ever came to market violate this requirement as far as I know.

So if you have just a single audio device on the bus, or even two, the
controller won't run out of DMA contexts.

Regarding non-audio FireWire applications:  Most IEEE 1394 video cameras
require one RX stream per camera; some industrial high-bandwidth cameras
take two.  Some DV camcorders offer bidirectional DV transfer over 1394,
hence use 1 RX and/or 1 TX stream depending on the application software on
the host.  The IP-over-1394 protocol, implemented in Linux by the
firewire-net driver, uses 1 isochronous RX DMA context for reception of
asynchronous broadcast transmissions.  The SBP-2 protocol, mainly used as
SCSI-over-1394 encapsulation, does not use isochronous streams.  The
current SBP-3 protocol revision specifies optional isochronous I/O but I
am not aware of any implementation of this protocol feature.

On the other hand, while all OHCIs offer at least 4+4 isoch RX+TX DMAs,
practical experience with the FFADO userspace drivers indicate that most
OHCIs quickly become unreliable when more contexts are being used
simultaneously.  Particularly, the FFADO drivers have a hard time to
maintain synchronicity of the streams, or are flat out unable to establish
synchronization.  Though from what I understand, the ALSA firewire drivers
do this differently, hence may not be affected in the same way as FFADO.
In my and others experience, only LSI controllers (formerly Agere
controllers) and Texas Instruments controllers do not suffer from these
issues when multiple RX/TX streams are active in FFADO.
-- 
Stefan Richter
-======----- --== --=-=
http://arcgraph.de/sr/

  reply	other threads:[~2016-03-05 14:47 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-05 11:58 [RFT][PATCH 0/4] ALSA: dice: enabled to handle several streams Takashi Sakamoto
2016-03-05 11:58 ` [PATCH 1/4] ALSA: dice: have two sets of isochronous resources/streams Takashi Sakamoto
2016-03-05 11:58 ` [PATCH 2/4] ALSA: dice: handle whole available isochronous streams Takashi Sakamoto
2016-03-05 14:47   ` Stefan Richter [this message]
2016-03-05 11:58 ` [PATCH 3/4] ALSA: dice: handle several PCM substreams when any isochronous streams are available Takashi Sakamoto
2016-03-05 11:58 ` [PATCH 4/4] ALSA: dice: force to add two pcm devices for listed models Takashi Sakamoto
2016-03-05 15:07   ` Stefan Richter
2016-03-06 12:39     ` Takashi Sakamoto
2016-03-06 22:55       ` Stefan Richter
2016-03-07  0:24         ` Stefan Richter
2016-03-07  2:57           ` Takashi Sakamoto
     [not found]           ` <56DCEF78.2080107@sakamocchi.jp>
     [not found]             ` <20160307144306.39f60537@kant>
2016-03-07 14:19               ` Takashi Sakamoto
     [not found]               ` <56DD8D1B.5040903@sakamocchi.jp>
2016-04-09 16:34                 ` Stefan Richter
2016-04-09 16:45                   ` [FFADO-devel] " Gordon Scott
2016-04-12 14:25                   ` Takashi Sakamoto
2016-04-14 21:30                     ` Stefan Richter
  -- strict thread matches above, loose matches on Subject: below --
2016-03-07 13:35 [PATCH 0/4] ALSA: dice: enable to handle several streams Takashi Sakamoto
2016-03-07 13:35 ` [PATCH 2/4] ALSA: dice: handle whole available isochronous streams Takashi Sakamoto
2016-03-09 15:29   ` Takashi Iwai

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=20160305154716.1ff2784b@kant \
    --to=stefanr@s5r6.in-berlin.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=ffado-devel@lists.sf.net \
    --cc=o-takashi@sakamocchi.jp \
    --cc=tiwai@suse.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).