[alsa-devel] [FFADO-devel] [PATCH] ALSA: bebob: support Firewire I/O card of Mackie Onyx 1220/1620/1640
Stefan Richter
stefanr at s5r6.in-berlin.de
Wed Oct 7 16:19:56 CEST 2015
On Oct 07 Stefan Richter wrote:
> On Oct 04 Takashi Sakamoto wrote:
> > Current ALSA BeBoB drivers has an entry for this model, while the value of
> > vendor ID seems to be wrong according to an user's report.
> >
> > The vendor had released no updated firmware, thus we can judge that this
> > model had not changed the content of its config ROM. It's reasonable to fix
> > the ID according to the report.
> >
> > $ ./linux-firewire-utils/src/crpp < /sys/bus/firewire/devices/fw1/config_rom
> >
> > ROM header and bus information block
> > -----------------------------------------------------------------
> > 400 0425720f bus_info_length 4, crc_length 37, crc 29199
> > 404 31333934 bus_name "1394"
> > 408 f0646122 irmc 1, cmc 1, isc 1, bmc 1, pmc 0, cyc_clk_acc 100,
> > max_rec 6 (128), max_rom 1, gen 2, spd 2 (S400)
> > 40c 00000ff2 company_id 00000f |
> > 410 00004697 device_id f200004697 | EUI-64 00000ff200004697
>
> This is a mistake from the firmware author. The company ID part (OUI-24)
> within the EUI-64 should obviously be 0x000ff2 for Loud, Inc. instead of
> 0x00000f for NeXT, Inc.. The firmware author accidentally shifted the
> company ID by one byte into the device ID.
>
> > root directory
> > -----------------------------------------------------------------
> > 414 000859be directory_length 8, crc 22974
> > 418 04000082 hardware version
> > 41c 0c0083c0 node capabilities per IEEE 1394
> > 420 03000ff2 vendor
> > 424 8100000a --> descriptor leaf at 44c
>
> Here is the correct value.
>
> firewire-core uses _this_ entry when it generates the modalias of a
> FireWire unit device,
[...]
> The configuration file of the FFADO userspace drivers is apparently
> affected by this matter too:
>
> device_definitions = (
> {
> vendorid = 0x00000f;
> modelid = 0x00010065;
> vendorname = "Mackie";
> modelname = "Onyx Firewire";
> driver = "BEBOB";
> xmit_max_cycles_early_transmit = 4;
> },
> { # Added by arnonym from ffado-mixers list
> vendorid = 0x00000f;
> modelid = 0x00010067;
> vendorname = "Mackie";
> modelname = "Onyx Firewire";
> driver = "BEBOB";
> mixer = "MackieOnyx";
> xmit_max_cycles_early_transmit = 4;
> },
> [...]
>
> I am not 100% sure, but I think that FFADO takes the vendor ID
> from the root directory too, not from the GUID in the bus information
> block.
[...]
Hmm, seems I was wrong.
This is a debug log from the ffado-user mailinglist, August 31:
1441054790505378: (ffado.cpp)[ 92] ffado_streaming_init: libffado 2.2.9999- built Jun 5 2015 15:13:52
01789081089: Debug (devicemanager.cpp)[ 354] discover: Starting discovery...
01789165571: Debug (Configuration.cpp)[ 163] showSetting: Group: (null)
01789165589: Debug (Configuration.cpp)[ 185] showSetting: vendorid = 15 (0x0000000F)
01789165593: Debug (Configuration.cpp)[ 185] showSetting: modelid = 65637 (0x00010065)
01789165601: Debug (Configuration.cpp)[ 209] showSetting: vendorname = Mackie
01789165605: Debug (Configuration.cpp)[ 209] showSetting: modelname = Onyx Firewire
01789165608: Debug (Configuration.cpp)[ 209] showSetting: driver = BEBOB
01789165610: Debug (Configuration.cpp)[ 185] showSetting: xmit_max_cycles_early_transmit = 4 (0x00000004)
01789165755: Debug (devicemanager.cpp)[ 616] discover: driver found for device 1
So the original FFADO configuration works as-is.
--
Stefan Richter
-=====-===== =-=- --===
http://arcgraph.de/sr/
More information about the Alsa-devel
mailing list