Hi Clemens,
Thanks for your comment.
On Apr 19 2018 17:54, Clemens Ladisch wrote:
Takashi Sakamoto wrote:
Recently I get Alesis Multimix 12 FireWire and work for ALSA dice driver
to support it. This unit uses ASIC of 'WaveFront DICE II STD' and TCAT
extended application protocol is not supported.
Unfortunately, the driver in v4.17-rc1 can't handle this unit, due to
validation of address sections for global space.
[...]
(sound/firewire/dice/dice-interface.h)
175 #define GLOBAL_SAMPLE_RATE 0x05c
...
181 #define GLOBAL_VERSION 0x060
182
183 /* Some old firmware versions do not have the following global registers: */
...
188 #define GLOBAL_CLOCK_CAPABILITIES 0x064
But this is not proper in my case because the maximum offset on global
sub-address space is 0x05c in quadlet unit.
IIRC that comment was based on the documentation. Apparently, there was
a misunderstanding of "size 0x60" vs. "up to the register at 0x60".
Aha. I'm OK.
From my curiosity, do you know which version of DICE firstly supports
GLOBAL_VERSION register? Can you read it on the documentation?
In my opinion, GLOBAL_VERSION offset belongs to global address space for
newer firmware version.
I agree; if this is how the hardware behaves, then this is what the driver
should support.
The version register is checked only once (in get_subaddrs()) and does not
actually affect the behaviour of the driver, so it would not hurt to simply
omit that check on the old firmware. (And the "quadlets >= 90" check in
dice_proc_read() needs to be adjusted.)
Hm. The check is applied to the other spaces such as rx/tx, so I'd like
to leave it as is. With this patch[1], ALSA dice driver can handle the
unit. In this weekend, I'll post it. Your reviewing is very helpful.
[1]
https://github.com/takaswie/snd-firewire-improve/commit/1889e06b9593e16da2812010ffd5a8e4b9bc777d
Thanks
Takashi Sakamoto
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel