[alsa-devel] ALSA snd-fireworks Echo AudioFire 2

Takashi Sakamoto o-takashi at sakamocchi.jp
Tue Aug 26 01:10:57 CEST 2014


Hi Harry and Clemens,

On 2014年08月25日 21:09, Harry van Haaren wrote:
> On Mon, Aug 25, 2014 at 5:21 AM, Takashi Sakamoto
> <o-takashi at sakamocchi.jp> wrote:
>> (C.C.ed to alsa-devel and Clemens)
> Thanks!
> 
>> I know that some Fireworks devices with a certain firmware (not exactly
>> identified) sometimes perform the same behaviour. Could I ask you to
>> confirm to see these logs always when you playback, or sometimes?
> 
> Its consistent: every time it is opened for playback.

Thanks for your confirmation.

In this case, I think there're two causes of discontinuity; one is an
actual discontinuity, another is due to wrong parameters in packet
header, i.e.:

ALSA: fireworks/firewire-lib: Add a quirk for wrong dbs in tx packets
http://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/firewire/fireworks?id=697022391e46614184101c59e46c9671598026db

I suspect the latter reason [1], so I want to see a series of packet
header. Would you please apply this patch to your tree and try again to
get logs?

https://github.com/takaswie/snd-firewire-improve/commit/0d9763c2d0497a2b24405b73dd745896c6c816ed

If you have a knowledgement about DKMS, this branch will help your test.
https://github.com/takaswie/snd-firewire-improve/tree/af2-debug

When you playback with re-builded snd-firewire-lib (not snd-fireworks,
this is an engine for IEC 61883-1/6), you can see much lines in your
dmesg output, like:

[ 2308.048941] 042: 00050088 90013b31
[ 2308.048943] 002: 00040090 9001ffff
[ 2308.048945] 042: 00050090 9001549b
[ 2308.048946] 042: 00050098 90016a05
[ 2308.048948] 002: 000400a0 9001ffff
[ 2308.048950] 042: 000500a0 90018370
[ 2308.048952] 042: 000500a8 900198da
[ 2308.048954] 002: 000400b0 9001ffff
[ 2308.048956] 042: 000500b0 9001b245
[ 2308.048958] 042: 000500b8 9001c7af
[ 2308.048960] 042: 000500c0 9001e119
[ 2308.050924] 002: 000400c8 9001ffff
(packets transmitted by M-Audio Firewire 410 at 44.1kHz)

If you successfully get these logs, please show it to us. I think logs
corresponding to beginning of streaming is helpful.

> To test / debug some more, I've tried starting JACK on the device
> using ALSA, hw:AudioFire2, duplex, -p256 -n2. QJackCtl reports a
> stream of xruns: are these the discontinuities similar to the dmesg
> prints?

When detecting packet discontinuity, current ALSA firewire stack changes
PCM substream status to XRUN, so jackd show xruns.

> I'll try upgrading the firmware on the device (I don't know what
> version is currently on it).
> OK: after a flash (using a windows machine), the ASIO driver there now
> reports the following (latest from Echo) firmware versions:
> 
> WDM driver 5.8
> ASIO driver 5.8
> Console 5.8.1
> ARM firmware 5.8
> FPGA 3.0.2

You can see the firmware version in 'arm_version' field of proc output:

On Aug 25 2014 09:06, Harry van Haaren wrote:
> arm_version: 0x5070300

(This is a firmware for TI IceLynx-Micro. This chipset includes ARM
core. In detail, see: http://subversion.ffado.org/wiki/Fireworks)

On Aug 26 2014 05:42, Clemens Ladisch wrote:
>> > I suspect these counter values are generated by the hardware; I don't
>> > think that the firmware can do anything to affect this.
>
> I do not get any discontinuities with ARM firmware 3.0.2.
> So much for that theory.

I think this patch deny this idea.

ALSA: fireworks/firewire-lib: Add a quirk for fixed interval of reported dbc
http://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/firewire/fireworks?id=d9cd0065c8a48dd0ef61acaa9584e3e723249c57

Fireworks firmware for IceLynx-Micro affects  parameters in packet header.

##########

[1] According to IEC 61883-1/6, the interval of 'data block counter'
equals to SYT_INTERVAL. At 44.1/48.0 kHz, it's 8 and the number should
be multiples of 8. The output from my Firewire 410 follows this
specification.

But your log shows wrong number.

On Aug 25 2014 21:09, Harry van Haaren wrote:
> [  190.433203] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 0A
> [  190.591959] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 02
> [  190.749202] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 12
> [  190.908270] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 12
> [  191.066267] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 0A
> [  191.225139] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 02
> [  191.383942] snd-fireworks fw1.0: Detect discontinuity of CIP: 00 02

0x02, 0x0A, 0x12 are not multiples of 8.

In this reason, I suspect that wrong parameters in headers.

##########


Regards

Takashi Sakamoto
o-takashi at sakamocchi.jp



More information about the Alsa-devel mailing list