[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