[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