[alsa-devel] probe issue for Dice/OXFW drivers

Clemens Ladisch clemens at ladisch.de
Wed Aug 12 11:20:49 CEST 2015


Takashi Sakamoto wrote:
> Recently, I received an issue from a user of Mackie Onyx-i series.
> According to the user, snd-dice is not applied to his Dice model.
> [...] According to the log, I cannot find the first
> transaction which snd-dice performs. Additionally, no error messages in
> syslog.

There are some checks performed before the first actual transaction.

The kernel loads the driver if an entry in dice_id_table[] matches, i.e.,
if version==1.  This values indeed is in the unit directory:

>                ROM header and bus information block
> -----------------------------------------------------------------
> 400  0404f507  bus_info_length 4, crc_length 4, crc 62727
> 404  31333934  bus_name "1394"
> 408  e0008102  irmc 1, cmc 1, isc 1, bmc 0, cyc_clk_acc 0, max_rec 8 (512)
> 40c  000ff210  company_id 000ff2     |
> 410  01800af7  device_id 1001800af7  | EUI-64 000ff21001800af7
>
>                root directory
> -----------------------------------------------------------------
> 414  000639d3  directory_length 6, crc 14803
> 418  03000ff2  vendor
> 41c  8100000a  --> descriptor leaf at 444
> 420  17000006  model
> 424  8100000d  --> descriptor leaf at 458
> 428  0c0087c0  node capabilities per IEEE 1394
> 42c  d1000001  --> unit directory at 430
>
>                unit directory at 430
> -----------------------------------------------------------------
> 430  00045246  directory_length 4, crc 21062
> 434  12000ff2  specifier id
> 438  13000001  version
> 43c  17000006  model
> 440  8100000b  --> descriptor leaf at 46c

The dice_interface_check() function then makes other checks:
/*
 * Check that GUID and unit directory are constructed according to DICE
 * rules, i.e., that the specifier ID is the GUID's OUI, and that the
 * GUID chip ID consists of the 8-bit category ID, the 10-bit product
 * ID, and a 22-bit serial number.
 */

These values are correct, except for the category ID.

The driver already has an category ID exception for Weiss devices.
It would be possible to add another exception, but given that firmware
writers apparently like to change this value without good reason, it
might be a better idea to just remove the category ID check.


Regards,
Clemens


More information about the Alsa-devel mailing list